mirror of
https://github.com/danielmiessler/SecLists.git
synced 2024-09-11 02:45:30 +03:00
$ for x in $( find . -type f ); do iconv -f utf-8 -t utf-8 -c ${x} | sed '/^$/d' > tmp; mv tmp ${x}; done
2 lines
4.0 MiB
2 lines
4.0 MiB
141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931257058635662018558100729360659876486117910453348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800700237877659134401712749470420562230538994561314071127000407854733269939081454664645880797270826683063432858785698305235808933065757406795457163775254202114955761581400250126228594130216471550979259230990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901938971311179042978285647503203198691514028708085990480109412147221317947647772622414254854540332157185306142288137585043063321751829798662237172159160771669254748738986654949450114654062843366393790039769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296617119637792133757511495950156604963186294726547364252308177036751590673502350728354056704038674351362222477158915049530984448933309634087807693259939780541934144737744184263129860809988868741326047215695162396586457302163159819319516735381297416772947867242292465436680098067692823828068996400482435403701416314965897940924323789690706977942236250822168895738379862300159377647165122893578601588161755782973523344604281512627203734314653197777416031990665541876397929334419521541341899485444734567383162499341913181480927777103863877343177207545654532207770921201905166096280490926360197598828161332316663652861932668633606273567630354477628035045077723554710585954870279081435624014517180624643626794561275318134078330336254232783944975382437205835311477119926063813346776879695970309833913077109870408591337464144282277263465947047458784778720192771528073176790770715721344473060570073349243693113835049316312840425121925651798069411352801314701304781643788518529092854520116583934196562134914341595625865865570552690496520985803385072242648293972858478316305777756068887644624824685792603953527734803048029005876075825104747091643961362676044925627420420832085661190625454337213153595845068772460290161876679524061634252257719542916299193064553779914037340432875262888963995879475729174642635745525407909145135711136941091193932519107602082520261879853188770584297259167781314969900901921169717372784768472686084900337702424291651300500516832336435038951702989392233451722013812806965011784408745196012122859937162313017114448464090389064495444006198690754851602632750529834918740786680881833851022833450850486082503930213321971551843063545500766828294930413776552793975175461395398468339363830474611996653858153842056853386218672523340283087112328278921250771262946322956398989893582116745627010218356462201349671518819097303811980049734072396103685406643193950979019069963955245300545058068550195673022921913933918568034490398205955100226353536192041994745538593810234395544959778377902374216172711172364343543947822181852862408514006660443325888569867054315470696574745855033232334210730154594051655379068662733379958511562578432298827372319898757141595781119635833005940873068121602876496286744604774649159950549737425626901049037781986835938146574126804925648798556145372347867330390468838343634655379498641927056387293174872332083760112302991136793862708943879936201629515413371424892830722012690147546684765357616477379467520049075715552781965362132392640616013635815590742202020318727760527721900556148425551879253034351398442532234157623361064250639049750086562710953591946589751413103482276930624743536325691607815478181152843667957061108615331504452127473924544945423682886061340841486377670096120715124914043027253860764823634143346235189757664521641376796903149501910857598442391986291642193994907236234646844117394032659184044378051333894525742399508296591228508555821572503107125701266830240292952522011872676756220415420516184163484756516999811614101002996078386909291603028840026910414079288621507842451670908700069928212066041837180653556725253256753286129104248776182582976515795984703562226293486003415872298053498965022629174878820273420922224533985626476691490556284250391275771028402799806636582548892648802545661017296702664076559042909945681506526530537182941270336931378517860904070866711496558343434769338578171138645587367812301458768712660348913909562009939361031029161615288138437909904231747336394804575931493140529763475748119356709110137751721008031559024853090669203767192203322909433467685142214477379393751703443661991040337511173547191855046449026365512816228824462575916333039107225383742182140883508657391771509682887478265699599574490661758344137522397096834080053559849175417381883999446974867626551658276584835884531427756879002909517028352971634456212964043523117600665101241200659755851276178583829204197484423608007193045761893234922927965019875187212726750798125547095890455635792122103334669749923563025494780249011419521238281530911407907386025152274299581807247162591668545133312394804947079119153267343028244186041426363954800044800267049624820179289647669758318327131425170296923488962766844032326092752496035799646925650493681836090032380929345958897069536534940603402166544375589004563288225054525564056448246515187547119621844396582533754388569094113031509526179378002974120766514793942590298969594699556576121865619673378623625612521632086286922210327488921865436480229678070576561514463204692790682120738837781423356282360896320806822246801224826117718589638140918390367367222088832151375560037279839400415297002878307667094447456013455641725437090697939612257142989467154357846878861444581231459357198492252847160504922124247014121478057345510500801908699603302763478708108175450119307141223390866393833952942578690507643100638351983438934159613185434754649556978103829309716465143840700707360411237359984345225161050702705623526601276484830840761183013052793205427462865403603674532865105706587488225698157936789766974220575059683440869735020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001264560016237428802109276457931065792295524988727584610126483699989225695968815920560010165525637567856672279661988578279484885583439751874454551296563443480396642055798293680435220277098429423253302257634180703947699415979159453006975214829336655566156787364005366656416547321704390352132954352916941459904160875320186837937023488868947915107163785290234529244077365949563051007421087142613497459561513849871375704710178795731042296906667021449863746459528082436944578977233004876476524133907592043401963403911473202338071509522201068256342747164602433544005152126693249341967397704159568375355516673027390074972973635496453328886984406119649616277344951827369558822075735517665158985519098666539354948106887320685990754079234240230092590070173196036225475647894064754834664776041146323390565134330684495397907090302346046147096169688688501408347040546074295869913829668246818571031887906528703665083243197440477185567893482308943106828702722809736248093996270607472645539925399442808113736943388729406307926159599546262462970706259484556903471197299640908941805953439325123623550813494900436427852713831591256898929519642728757394691427253436694153236100453730488198551706594121735246258954873016760029886592578662856124966552353382942878542534048308330701653722856355915253478445981831341129001999205981352205117336585640782648494276441137639386692480311836445369858917544264739988228462184490087776977631279572267265556259628254276531830013407092233436577916012809317940171859859993384923549564005709955856113498025249906698423301735035804408116855265311709957089942732870925848789443646005041089226691783525870785951298344172953519537885534573742608590290817651557803905946408735061232261120093731080485485263572282576820341605048466277504500312620080079980492548534694146977516493270950493463938243222718851597405470214828971117779237612257887347718819682546298126868581705074027255026332904497627789442362167411918626943965067151577958675648239939176042601763387045499017614364120469218237076488783419689686118155815873606293860381017121585527266830082383404656475880405138080163363887421637140643549556186896411228214075330265510042410489678352858829024367090488711819090949453314421828766181031007354770549815968077200947469613436092861484941785017180779306810854690009445899527942439813921350558642219648349151263901280383200109773868066287792397180146134324457264009737425700735921003154150893679300816998053652027600727749674584002836240534603726341655425902760183484030681138185510597970566400750942608788573579603732451414678670368809880609716425849759513806930944940151542222194329130217391253835591503100333032511174915696917450271494331515588540392216409722910112903552181576282328318234254832611191280092825256190205263016391147724733148573910777587442538761174657867116941477642144111126358355387136101102326798775641024682403226483464176636980663785768134920453022408197278564719839630878154322116691224641591177673225326433568614618654522268126887268445968442416107854016768142080885028005414361314623082102594173756238994207571362751674573189189456283525704413354375857534269869947254703165661399199968262824727064133622217892390317608542894373393561889165125042440400895271983787386480584726895462438823437517885201439560057104811949884239060613695734231559079670346149143447886360410318235073650277859089757827273130504889398900992391350337325085598265586708924261242947367019390772713070686917092646254842324074855036608013604668951184009366860954632500214585293095000090715105823626729326453738210493872499669933942468551648326113414611068026744663733437534076429402668297386522093570162638464852851490362932019919968828517183953669134522244470804592396602817156551565666111359823112250628905854914509715755390024393153519090210711945730024388017661503527086260253788179751947806101371500448991721002220133501310601639154158957803711779277522597874289191791552241718958536168059474123419339842021874564925644346239253195313510331147639491199507285843065836193536932969928983791494193940608572486396883690326556436421664425760791471086998431573374964883529276932822076294728238153740996154559879825989109371712621828302584811238901196822142945766758071865380650648702613389282299497257453033283896381843944770779402284359883410035838542389735424395647555684095224844554139239410001620769363684677641301781965937997155746854194633489374843912974239143365936041003523437770658886778113949861647874714079326385873862473288964564359877466763847946650407411182565837887845485814896296127399841344272608606187245545236064315371011274680977870446409475828034876975894832824123929296058294861919667091895808983320121031843034012849511620353428014412761728583024355983003204202451207287253558119584014918096925339507577840006746552603144616705082768277222353419110263416315714740612385042584598841990761128725805911393568960143166828317632356732541707342081733223046298799280490851409479036887868789493054695570307261900950207643349335910602454508645362893545686295853131533718386826561786227363716975774183023986006591481616404944965011732131389574706208847480236537103115089842799275442685327797431139514357417221975979935968525228574526379628961269157235798662057340837576687388426640599099350500081337543245463596750484423528487470144354541957625847356421619813407346854111766883118654489377697956651727966232671481033864391375186594673002443450054499539974237232871249483470604406347160632583064982979551010954183623503030945309733583446283947630477564501500850757894954893139394489921612552559770143685894358587752637962559708167764380012543650237141278346792610199558522471722017772370041780841942394872540680155603599839054898572354674564239058585021671903139526294455439131663134530893906204678438778505423939052473136201294769187497519101147231528932677253391814660730008902776896311481090220972452075916729700785058071718638105496797310016787085069420709223290807038326345345203802786099055690013413718236837099194951648960075504934126787643674638490206396401976668559233565463913836318574569814719621084108096188460545603903845534372914144651347494078488442377217515433426030669883176833100113310869042193903108014378433415137092435301367763108491351615642269847507430329716746964066653152703532546711266752246055119958183196376370761799191920357958200759560530234626775794393630746305690108011494271410093913691381072581378135789400559950018354251184172136055727522103526803735726527922417373605751127887218190844900617801388971077082293100279766593583875890939568814856026322439372656247277603789081445883785501970284377936240782505270487581647032458129087839523245323789602984166922548964971560698119218658492677040395648127810217991321741630581055459880130048456299765112124153637451500563507012781592671424134210330156616535602473380784302865525722275304999883701534879300806260180962381516136690334111138653851091936739383522934588832255088706450753947395204396807906708680644509698654880168287434378612645381583428075306184548590379821799459968115441974253634439960290251001588827216474500682070419376158454712318346007262933955054823955713725684023226821301247679452264482091023564775272308208106351889915269288910845557112660396503439789627825001611015323516051965590421184494990778999200732947690586857787872098290135295661397888486050978608595701773129815531495168146717695976099421003618355913877781769845875810446628399880600616229848616935337386578773598336161338413385368421197893890018529569196780455448285848370117096721253533875862158231013310387766827211572694951817958975469399264219791552338576623167627547570354699414892904130186386119439196283887054367774322427680913236544948536676800000106526248547305586159899914017076983854831887501429389089950685453076511680333732226517566220752695179144225280816517166776672793035485154204023817460892328391703275425750867655117859395002793389592057668278967764453184040418554010435134838953120132637836928358082719378312654961745997056745071833206503455664403449045362756001125018433560736122276594927839370647842645676338818807565612168960504161139039063960162022153684941092605387688714837989559999112099164646441191856827700457424343402167227644558933012778158686952506949936461017568506016714535431581480105458860564550133203758645485840324029871709348091055621167154684847780394475697980426318099175642280987399876697323769573701580806822904599212366168902596273043067931653114940176473769387351409336183321614280214976339918983548487562529875242387307755955595546519639440182184099841248982623673771467226061633643296406335728107078875816404381485018841143188598827694490119321296827158884133869434682859006664080631407775772570563072940049294030242049841656547973670548558044586572022763784046682337985282710578431975354179501134727362577408021347682604502285157979579764746702284099956160156910890384582450267926594205550395879229818526480070683765041836562094555434613513415257006597488191634135955671964965403218727160264859304903978748958906612725079482827693895352175362185079629778514618843271922322381015874445052866523802253284389137527384589238442253547265309817157844783421582232702069028723233005386216347988509469547200479523112015043293226628272763217790884008786148022147537657810581970222630971749507212724847947816957296142365859578209083073323356034846531873029302665964501371837542889755797144992465403868179921389346924474198509733462679332107268687076806263991936196504409954216762784091466985692571507431574079380532392523947755744159184582156251819215523370960748332923492103451462643744980559610330799414534778457469999212859999939961228161521931488876938802228108300198601654941654261696858678837260958774567618250727599295089318052187292461086763995891614585505839727420980909781729323930106766386824040111304024700735085782872462713494636853181546969046696869392547251941399291465242385776255004748529547681479546700705034799958886769501612497228204030399546327883069597624936151010243655535223069061294938859901573466102371223547891129254769617600504797492806072126803922691102777226102544149221576504508120677173571202718024296810620377657883716690910941807448781404907551782038565390991047759414132154328440625030180275716965082096427348414695726397884256008453121406593580904127113592004197598513625479616063228873618136737324450607924411763997597461938358457491598809766744709300654634242346063423747466608043170126005205592849369594143408146852981505394717890045183575515412522359059068726487863575254191128887737176637486027660634960353679470269232297186832771739323619200777452212624751869833495151019864269887847171939664976907082521742336566272592844062043021411371992278526998469884770232382384005565551788908766136013047709843861168705231055314916251728373272867600724817298763756981633541507460883866364069347043720668865127568826614973078865701568501691864748854167915459650723428773069985371390430026653078398776385032381821553559732353068604301067576083890862704984188859513809103042359578249514398859011318583584066747237029714978508414585308578133915627076035639076394731145549583226694570249413983163433237897595568085683629725386791327505554252449194358912840504522695381217913191451350099384631177401797151228378546011603595540286440590249646693070776905548102885020808580087811577381719174177601733073855475800605601433774329901272867725304318251975791679296996504146070664571258883469797964293162296552016879730003564630457930884032748077181155533090988702550520768046303460865816539487695196004408482065967379473168086415645650530049881616490578831154345485052660069823093157776500378070466126470602145750579327096204782561524714591896522360839664562410519551052235723973951288181640597859142791481654263289200428160913693777372229998332708208296995573772737566761552711392258805520189887620114168005468736558063347160373429170390798639652296131280178267971728982293607028806908776866059325274637840539769184808204102194471971386925608416245112398062011318454124478205011079876071715568315407886543904121087303240201068534194723047666672174986986854707678120512473679247919315085644477537985379973223445612278584329684664751333657369238720146472367942787004250325558992688434959287612400755875694641370562514001179713316620715371543600687647731867558714878398908107429530941060596944315847753970094398839491443235366853920994687964506653398573888786614762944341401049888993160051207678103588611660202961193639682134960750111649832785635316145168457695687109002999769841263266502347716728657378579085746646077228341540311441529418804782543876177079043000156698677679576090996693607559496515273634981189641304331166277471233881740603731743970540670310967676574869535878967003192586625941051053358438465602339179674926784476370847497833365557900738419147319886271352595462518160434225372996286326749682405806029642114638643686422472488728343417044157348248183330164056695966886676956349141632842641497453334999948000266998758881593507357815195889900539512085351035726137364034367534714104836017546488300407846416745216737190483109676711344349481926268111073994825060739495073503169019731852119552635632584339099822498624067031076831844660729124874754031617969941139738776589986855417031884778867592902607004321266617919223520938227878880988633599116081923535557046463491132085918979613279131975649097600013996234445535014346426860464495862476909434704829329414041114654092398834443515913320107739441118407410768498106634724104823935827401944935665161088463125678529776973468430306146241803585293315973458303845541033701091676776374276210213701354854450926307190114731848574923318167207213727935567952844392548156091372812840633303937356242001604566455741458816605216660873874804724339121295587776390696903707882852775389405246075849623157436917113176134783882719416860662572103685132156647800147675231039357860689611125996028183930954870905907386135191459181951029732787557104972901148717189718004696169777001791391961379141716270701895846921434369676292745910994006008498356842520191559370370101104974733949387788598941743303178534870760322198297057975119144051099423588303454635349234982688362404332726741554030161950568065418093940998202060999414021689090070821330723089662119775530665918814119157783627292746156185710372172471009521423696483086410259288745799932237495519122195190342445230753513380685680735446499512720317448719540397610730806026990625807602029273145525207807991418429063884437349968145827337207266391767020118300464819000241308350884658415214899127610651374153943565721139032857491876909441370209051703148777346165287984823533829726013611098451484182380812054099612527458088109948697221612852489742555551607637167505489617301680961380381191436114399210638005083214098760459930932485102516829446726066613815174571255975495358023998314698220361338082849935670557552471290274539776214049318201465800802156653606776550878380430413431059180460680083459113664083488740800574127258670479225831912741573908091438313845642415094084913391809684025116399193685322555733896695374902662092326131885589158083245557194845387562878612885900410600607374650140262782402734696252821717494158233174923968353013617865367376064216677813773995100658952887742766263684183068019080460984980946976366733566228291513235278880615776827815958866918023894033307644191240341202231636857786035727694154177882643523813190502808701857504704631293335375728538660588890458311145077394293520199432197117164223500564404297989208159430716701985746927384865383343614579463417592257389858800169801475742054299580124295810545651083104629728293758416116253256251657249807849209989799062003593650993472158296517413579849104711166079158743698654122234834188772292944633517865385673196255985202607294767407261676714557364981210567771689348491766077170527718760119990814411305864557791052568430481144026193840232247093924980293355073184589035539713308844617410795916251171486487446861124760542867343670904667846867027409188101424971114965781772427934707021668829561087779440504843752844337510882826477197854000650970403302186255614733211777117441335028160884035178145254196432030957601869464908868154528562134698835544456024955666843660292219512483091060537720198021831010327041783866544718126039719068846237085751808003532704718565949947612424811099928867915896904956394762460842406593094862150769031498702067353384834955083636601784877106080980426924713241000946401437360326564518456679245666955100150229833079849607994988249706172367449361226222961790814311414660941234159359309585407913908720832273354957208075716517187659944985693795623875551617575438091780528029464200447215396280746360211329425591600257073562812638733106005891065245708024474937543184149401482119996276453106800663118382376163966318093144467129861552759820145141027560068929750246304017351489194576360789352855505317331416457050499644389093630843874484783961684051845273288403234520247056851646571647713932377551729479512613239822960239454857975458651745878771331813875295980941217422730035229650808917770506825924882232215493804837145478164721397682096332050830564792048208592047549985732038887639160199524091893894557676874973085695595801065952650303626615975066222508406742889826590751063756356996821151094966974458054728869363102036782325018232370845979011154847208761821247781326633041207621658731297081123075815982124863980721240786887811450165582513617890307086087019897588980745664395515741536319319198107057533663373803827215279884935039748001589051942087971130805123393322190346624991716915094854140187106035460379464337900589095772118080446574396280618671786101715674096766208029576657705129120990794430463289294730615951043090222143937184956063405618934251305726829146578329334052463502892917547087256484260034962961165413823007731332729830500160256724014185152041890701154288579920812198449315699905918201181973350012618772803681248199587707020753240636125931343859554254778196114293516356122349666152261473539967405158499860355295332924575238881013620234762466905581643896786309762736550472434864307121849437348530060638764456627218666170123812771562137974614986132874411771455244470899714452288566294244023018479120547849857452163469644897389206240194351831008828348024924908540307786387516591130287395878709810077271827187452901397283661484214287170553179654307650453432460053636147261818096997693348626407743519992868632383508875668359509726557481543194019557685043724800102041374983187225967738715495839971844490727914196584593008394263702087563539821696205532480321226749891140267852859967340524203109179789990571882194939132075343170798002373659098537552023891164346718558290685371189795262623449248339249634244971465684659124891855662958932990903523923333364743520370770101084388003290759834217018554228386161721041760301164591878053936744747205998502358289183369292233732399948043710841965947316265482574809948250999183300697656936715968936449334886474421350084070066088359723503953234017958255703601693699098867113210979889707051728075585519126993067309925070407024556850778679069476612629808225163313639952117098452809263037592242674257559989289278370474445218936320348941552104459726188380030067761793138139916205806270165102445886924764924689192461212531027573139084047000714356136231699237169484813255420091453041037135453296620639210547982439212517254013231490274058589206321758949434548906846399313757091034633271415316223280552297297953801880162859073572955416278867649827418616421878988574107164906919185116281528548679417363890665388576422915834250067361245384916067413734017357277995634104332688356950781493137800736235418007061918026732855119194267609122103598746924117283749312616339500123959924050845437569850795704622266461900010350049018303415354584283376437811198855631877779253720116671853954183598443830520376281944076159410682071697030228515225057312609304689842343315273213136121658280807521263154773060442377475350595228717440266638914881717308643611138906942027908814311944879941715404210341219084709408025402393294294549387864023051292711909751353600092197110541209668311151632870542302847007312065803262641711616595761327235156666253667271899853419989523688483099930275741991646384142707798870887422927705389122717248632202889842512528721782603050099451082478357290569198855546788607946280537122704246654319214528176074148240382783582971930101788834567416781139895475044833931468963076339665722672704339321674542182455706252479721997866854279897799233957905758189062252547358220523642485078340711014498047872669199018643882293230538231855973286978092225352959101734140733488476100556401824239219269506208318381454698392366461363989101210217709597670490830508185470419466437131229969235889538493013635657618610606222870559942337163102127845744646398973818856674626087948201864748767272722206267646533809980196688368099415907577685263986514625333631245053640261056960551318381317426118442018908885319635698696279503673842431301133175330532980201668881748134298868158557781034323175306478498321062971842518438553442762012823457071698853051832617964117857960888815032960229070561447622091509473903594664691623539680920139457817589108893199211226007392814916948161527384273626429809823406320024402449589445612916704950823581248739179964864113348032475777521970893277226234948601504665268143987705161531702669692970492831628550421289814670619533197026950721437823047687528028735412616639170824592517001071418085480063692325946201900227808740985977192180515853214739265325155903541020928466592529991435379182531454529059841581763705892790690989691116438118780943537152133226144362531449012745477269573939348154691631162492887357471882407150399500944673195431619385548520766573882513963916357672315100555603726339486720820780865373494244011579966750736071115935133195919712094896471755302453136477094209463569698222667377520994516845064362382421185353488798939567318780660610788544000550827657030558744854180577889171920788142335113866292966717964346876007704799953788338787034871802184243734211227394025571769081960309201824018842705704609262256417837526526335832424066125331152942345796556950250681001831090041124537901533296615697052237921032570693705109083078947999900499939532215362274847660361367769797856738658467093667958858378879562594646489137665219958828693380183601193236857855855819555604215625088365020332202451376215820461810670519533065306060650105488716724537794283133887163139559690583208341689847606560711834713621812324622725884199028614208728495687963932546428534307530110528571382964370999035694888528519040295604734613113826387889755178856042499874831638280404684861893818959054203988987265069762020199554841265000539442820393012748163815853039643992547020167275932857436666164411096256633730540921951967514832873480895747777527834422109107311135182804603634719818565557295714474768255285786334934285842311874944000322969069775831590385803935352135886007960034209754739229673331064939560181223781285458431760556173386112673478074585067606304822940965304111830667108189303110887172816751957967534718853722930961614320400638132246584111115775835858113501856904781536893813771847281475199835050478129771859908470762197460588742325699582889253504193795826061621184236876851141831606831586799460165205774052942305360178031335726326705479033840125730591233960188013782542192709476733719198728738524805742124892118347087662966720727232565056512933312605950577772754247124164831283298207236175057467387012820957554430596839555568686118839713552208445285264008125202766555767749596962661260456524568408613923826576858338469849977872670655519185446869846947849573462260629421962455708537127277652309895545019303773216664918257815467729200521266714346320963789185232321501897612603437368406719419303774688099929687758244104787812326625318184596045385354383911449677531286426092521153767325886672260404252349108702695809964759580579466397341906401003636190404203311357933654242630356145700901124480089002080147805660371015412232889146572239314507607167064355682743774396578906797268743847307634645167756210309860409271709095128086309029738504452718289274968921210667008164858339553773591913695015316201890888748421079870689911480466927065094076204650277252865072890532854856143316081269300569378541786109696920253886503457718317668688592368148847527649846882194973972970773718718840041432312763650481453112285099002074240925585925292610302106736815434701525234878635164397623586041919412969769040526483234700991115424260127343802208933109668636789869497799400126016422760926082349304118064382913834735467972539926233879158299848645927173405922562074910530853153718291168163721939518870095778818158685046450769934394098743351443162633031724774748689791820923948083314397084067308407958935810896656477585990556376952523265361442478023082681183103773588708924061303133647737101162821461466167940409051861526036009252194721889091810733587196414214447865489952858234394705007983038853886083103571930600277119455802191194289992272235345870756624692617766317885514435021828702668561066500353105021631820601760921798468493686316129372795187307897263735371715025637873357977180818487845886650433582437700414771041493492743845758710715973155943942641257027096512510811554824793940359768118811728247215825010949609662539339538092219559191818855267806214992317276316321833989693807561685591175299845013206712939240414459386239880938124045219148483164621014738918251010909677386906640415897361047643650006807710565671848628149637111883219244566394581449148616550049567698269030891118568798692947051352481609174324301538368470729289898284602223730145265567989862776796809146979837826876431159883210904371561129976652153963546442086919756737000573876497843768628768179249746943842746525631632300555130417422734164645512781278457777245752038654375428282567141288583454443513256205446424101103795546419058116862305964476958705407214198521210673433241075676757581845699069304604752277016700568454396923404171108988899341635058515788735343081552081177207188037910404698306957868547393765643363197978680367187307969392423632144845035477631567025539006542311792015346497792906624150832885839529054263768766896880503331722780018588506973623240389470047189761934734430843744375992503417880797223585913424581314404984770173236169471976571535319775499716278566311904691260918259124989036765417697990362375528652637573376352696934435440047306719886890196814742876779086697968852250163694985673021752313252926537589641517147955953878427849986645630287883196209983049451987439636907068276265748581043911223261879405994155406327013198989570376110532360629867480377915376751158304320849872092028092975264981256916342500052290887264692528466610466539217148208013050229805263783642695973370705392278915351056888393811324975707133102950443034671598944878684711643832805069250776627450012200352620370946602341464899839025258883014867816219677519458316771876275720050543979441245990077115205154619930509838698254284640725554092740313257163264079293418334214709041254253352324802193227707535554679587163835875018159338717423606155117101312352563348582036514614187004920570437201826173319471570086757853933607862273955818579758725874410254207710547536129404746010009409544495966288148691590389907186598056361713769222729076419775517772010427649694961105622059250242021770426962215495872645398922769766031052498085575947163107587013320886146326641259114863388122028444069416948826152957762532501987035987067438046982194205638125583343642194923227593722128905642094308235254408411086454536940496927149400331978286131818618881111840825786592875742638445005994422956858646048103301538891149948693543603022181094346676400002236255057363129462629609619876056425996394613869233083719626595473923462413459779574852464783798079569319865081597767535055391899115133525229873611277918274854200868953965835942196333150286956119201229888988700607999279541118826902307891310760361763477948943203210277335941690865007193280401716384064498787175375678118532132840821657110754952829497493621460821558320568723218557406516109627487437509809223021160998263303391546949464449100451528092508974507489676032409076898365294065792019831526541065813682379198409064571246894847020935776119313998024681340520039478194986620262400890215016616381353838151503773502296607462795291038406868556907015751662419298724448271942933100485482445458071889763300323252582158128032746796200281476243182862217105435289834820827345168018613171959332471107466222850871066611770346535283957762599774467218571581612641114327179434788599089280848669491413909771673690027775850268664654056595039486784111079011610400857274456293842549416759460548711723594642910585090995021495879311219613590831588262068233215615308683373083817327932819698387508708348388046388478441884003184712697454370937329836240287519792080232187874488287284372737801782700805878241074935751488997891173974612932035108143270325140903048746226294234432757126008664250833318768865075642927160552528954492153765175149219636718104943531785838345386525565664065725136357506435323650893679043170259787817719031486796384082881020946149007971513771709906195496964007086766710233004867263147551053723175711432231741141168062286420638890621019235522354671166213749969326932173704310598722503945657492461697826097025335947502091383667377289443869640002811034402608471289900074680776484408871134135250336787731679770937277868216611786534423173226463784769787514433209534000165069213054647689098505020301504488083426184520873053097318949291642532293361243151430657826407028389840984160295030924189712097160164926561341343342229882790992178604267981245728534580133826099587717811310216734025656274400729683406619848067661580502169183372368039902793160642043681207990031626444914619021945822969099212278855394878353830564686488165556229431567312827439082645061162894280350166133669782405177015521962652272545585073864058529983037918035043287670380925216790757120406123759632768567484507915114731344000183257034492090971243580944790046249431345502890068064870429353403743603262582053579011839564908935434510134296961754524957396062149028872893279252069653538639644322538832752249960598697475988232991626354597332444516375533437749292899058117578635555562693742691094711700216541171821975051983178713710605106379555858890556885288798908475091576463907469361988150781468526213325247383765119299015610918977792200870579339646382749068069876916819749236562422608715417610043060890437797667851966189140414492527048088197149880154205778700652159400928977760133075684796699295543365613984773806039436889588764605498387147896848280538470173087111776115966350503997934386933911978988710915654170913308260764740630571141109883938809548143782847452883836807941888434266622207043872288741394780101772139228191199236540551639589347426395382482960903690028835932774585506080131798840716244656399794827578365019551422155133928197822698427863839167971509126241054872570092407004548848569295044811073808799654748156891393538094347455697212891982717702076661360248958146811913361412125878389557735719498631721084439890142394849665925173138817160266326193106536653504147307080441493916936326237376777709585031325599009576273195730864804246770121232702053374266705314244820816813030639737873664248367253983748769098060218278578621651273856351329014890350988327061725893257536399397905572917516009761545904477169226580631511102803843601737474215247608515209901615858231257159073342173657626714239047827958728150509563309280266845893764964977023297364131906098274063353108979246424213458374090116939196425045912881340349881063540088759682005440836438651661788055760895689672753153808194207733259791727843762566118431989102500749182908647514979400316070384554946538594602745244746681231468794344161099333890899263841184742525704457251745932573898956518571657596148126602031079762825416559050604247911401695790033835657486925280074302562341949828646791447632277400552946090394017753633565547193100017543004750471914489984104001586794617924161001645471655133707407395026044276953855383439755054887109978520540117516974758134492607943368954378322117245068734423198987884412854206474280973562580706698310697993526069339213568588139121480735472846322778490808700246777630360555123238665629517885371967303463470122293958160679250915321748903084088651606111901149844341235012464692802880599613428351188471544977127847336176628506216977871774382436256571177945006447771837022199910669502165675764404499794076503799995484500271066598781360380231412683690578319046079276529727769404361302305178708054651154246939526512710105292707030667302444712597393995051462840476743136373997825918454117641332790646063658415292701903027601733947486696034869497654175242930604072700505903950314852292139257559484507886797792525393176515641619716844352436979444735596426063339105512682606159572621703669850647328126672452198906054988028078288142979633669674412480598219214633956574572210229867759974673812606936706913408155941201611596019023775352555630060624798326124988128819293734347686268921923977783391073310658825681377717232831532908252509273304785072497713944833389255208117560845296659055394096556854170600117985729381399825831929367910039184409928657560599359891000296986446097471471847010153128376263114677420914557404181590880006494323785583930853082830547607679952435739163122188605754967383224319565065546085288120190236364471270374863442172725787950342848631294491631847534753143504139209610879605773098720135248407505763719925365047090858251393686346386336804289176710760211115982887553994012007601394703366179371539630613986365549221374159790511908358829009765664730073387931467891318146510931676157582135142486044229244530411316065270097433008849903467540551864067734260358340960860553374736276093565885310976099423834738222208729246449768456057956251676557408841032173134562773585605235823638953203853402484227337163912397321599544082842166663602329654569470357718487344203422770665383738750616921276801576618109542009770836360436111059240911788954033802142652394892968643980892611463541457153519434285072135345301831587562827573389826889852355779929572764522939156747756667605108788764845349363606827805056462281359888587925994094644604170520447004631513797543173718775603981596264750141090665886616218003826698996196558058720863972117699521946678985701179833244060181157565807428418291061519391763005919431443460515404771057005433900018245311773371895585760360718286050635647997900413976180895536366960316219311325022385179167205518065926351803625121457592623836934822266589557699466049193811248660909979812857182349400661555219611220720309227764620099931524427358948871057662389469388944649509396033045434084210246240104872332875008174917987554387938738143989423801176270083719605309438394006375611645856094312951759771393539607432279248922126704580818331376416581826956210587289244774003594700926866265965142205063007859200248829186083974373235384908396432614700053242354064704208949921025040472678105908364400746638002087012666420945718170294675227854007450855237772089058168391844659282941701828823301497155423523591177481862859296760504820386434310877956289292540563894662194826871104282816389397571175778691543016505860296521745958198887868040811032843273986719862130620555985526603640504628215230615459447448990883908199973874745296981077620148713400012253552224669540931521311533791579802697955571050850747387475075806876537644578252443263804614304288923593485296105826938210349800040524840708440356116781717051281337880570564345061611933042444079826037795119854869455915205196009304127100727784930155503889536033826192934379708187432094991415959339636811062755729527800425486306005452383915106899891357882001941178653568214911852820785213012551851849371150342215954224451190020739353962740020811046553020793286725474054365271759589350071633607632161472581540764205302004534018357233829266191530835409512022632916505442612361919705161383935732669376015691442994494374485680977569630312958871916112929468188493633864739274760122696415884890096571708616059814720446742866420876533479985822209061980217321161423041947775499073873856794118982466091309169177227420723336763503267834058630193019324299639720444517928812285447821195353089891012534297552472763573022628138209180743974867145359077863353016082155991131414420509144729353502223081719366350934686585865631485557586244781862010871188976065296989926932817870557643514338206014107732926106343152533718224338526352021773544071528189813769875515757454693972715048846979361950047772097056179391382898984532742622728864710888327017372325881824465843624958059256033810521560620615571329915608489206434030339526226345145428367869828807425142256745180618414956468611163540497189768215422772247947403357152743681940989205011365340012384671429655186734415374161504256325671343024765512521921803578016924032669954174608759240920700466934039651017813485783569444076047023254075555776472845075182689041829396611331016013111907739863246277821902365066037404160672496249013743321724645409741299557052914243820807609836482346597388669134991978401310801558134397919485283043673901248208244481412809544377389832005986490915950532285791457688496257866588599917986752055455809900455646117875524937012455321717019428288461740273664997847550829422802023290122163010230977215156944642790980219082668986883426307160920791408519769523555348865774342527753119724743087304361951139611908003025587838764420608504473063129927788894272918972716989057592524467966018970748296094919064876469370275077386643239191904225429023531892337729316673608699622803255718530891928440380507103006477684786324319100022392978525537237556621364474009676053943983823576460699246526008909062410590421545392790441152958034533450025624410100635953003959886446616959562635187806068851372346270799732723313469397145628554261546765063246567662027924520858134771760852169134094652030767339184114750414016892412131982688156866456148538028753933116023229255561894104299533564009578649534093511526645402441877594931693056044868642086275720117231952640502309977456764783848897346431721598062678767183800524769688408498918508614900343240347674268624595239589035858213500645099817824463608731775437885967767291952611121385919472545140030118050343787527766440276261894101757687268042817662386068047788524288743025914524707395054652513533945959878961977891104189029294381856720507096460626354173294464957661265195349570186001541262396228641389779673332907056737696215649818450684226369036784955597002607986799626101903933126376855696876702929537116252800554310078640872893922571451248113577862766490242516199027747109033593330930494838059785662884478744146984149906712376478958226329490467981208998485716357108783119184863025450162092980582920833481363840542172005612198935366937133673339246441612522319694347120641737549121635700857369439730597970971972666664226743111776217640306868131035189911227133972403688700099686292254646500638528862039380050477827691283560337254825579391298525150682996910775425764748832534141213280062671709400909822352965795799780301828242849022147074811112401860761341515038756983091865278065889668236252393784527263453042041880250844236319038331838455052236799235775292910692504326144695010986108889991465855188187358252816430252093928525807796973762084563748211443398816271003170315133440230952635192958868069082135585368016100021374085115448491268584126869589917414913382057849280069825519574020181810564129725083607035685105533178784082900004155251186577945396331753853209214972052660783126028196116485809868458752512999740409279768317663991465538610893758795221497173172813151793290443112181587102351874075722210012376872194474720934931232410706508061856237252673254073332487575448296757345001932190219911996079798937338367324257610393898534927877747398050808001554476406105352220232540944356771879456543040673589649101761077594836454082348613025471847648518957583667439979150851285802060782055446299172320202822291488695939972997429747115537185892423849385585859540743810488262464878805330427146301194158989632879267832732245610385219701113046658710050008328517731177648973523092666123458887310288351562644602367199664455472760831011878838915114934093934475007302585581475619088139875235781233134227986650352272536717123075686104500454897036007956982762639234410714658489578024140815840522953693749971066559489445924628661996355635065262340533943914211127181069105229002465742360413009369188925586578466846121567955425660541600507127664176605687427420032957716064344860620123982169827172319782681662824993871499544913730205184366907672357740005393266262276032365975171892590180110429038427418550789488743883270306328327996300720069801224436511639408692222074532024462412115580435454206421512158505689615735641431306888344318528085397592773443365538418834030351782294625370201578215737326552318576355409895403323638231921989217117744946940367829618592080340386757583411151882417743914507736638407188048935825686854201164503135763335550944031923672034865101056104987272647213198654343545040913185951314518127643731043897250700498198705217627249406521461995923214231443977654670835171474936798618655279171582408065106379950018429593879915835017158075988378496225739851212981032637937621832245659423668537679911314010804313973233544909082491049914332584329882103398469814171575601082970658306521134707680368069532297199059990445120908727577622535104090239288877942463048328031913271049547859918019696783532146444118926063152661816744319355081708187547705080265402529410921826485821385752668815558411319856002213515888721036569608751506318753300294211868222189377554602722729129050429225978771066787384000061677215463844129237119352182849982435092089180168557279815642185819119749098573057033266764646072875743056537260276898237325974508447964954564803077159815395582777913937360171742299602735310276871944944491793978514463159731443535185049141394155732938204854212350817391254974981930871439661513294204591938010623142177419918406018034794988769105155790555480695387854006645337598186284641990522045280330626369562649091082762711590385699505124652999606285544383833032763859980079292284665950355121124528408751622906026201185777531374794936205549640107300134885315073548735390560290893352640071327473262196031177343394367338575912450814933573691166454128178817145402305475066713651825828489809951213919399563324133655677709800308191027204099714868741813466700609405102146269028044915964654533010775469541308871416531254481306119240782118869005602778182423502269618934435254763357353648561936325441775661398170393063287216690572225974520919291726219984440964615826945638023950283712168644656178523556516412771282691868861557271620147493405227694659571219831494338162211400693630743044417328478610177774383797703723179525543410722344551255558999864618387676490397246116795901810003509892864120419516355110876320426761297982652942588295114127584126273279079880755975185157684126474220947972184330935297266521001566251455299474512763155091763673025946213293019040283795424632325855030109670692272022707486341900543830265068121414213505715417505750863990767394633514620908288893493837643939925690060406731142209331219593620298297235116325938677224147791162957278075239505625158160313335938231150051862689053065836812998810866326327198061127154885879809348791291370749823057592909186293919501472119758606727009254771802575033773079939713453953264619526999659638565491759045833358579910201271320458390320085387888163363768518208372788513117522776960978796214237216254521459128183179821604411131167140691482717098101545778193920231156387195080502467972579249760577262591332855972637121120190572077140914864507409492671803581515757151405039761096384675556929897038354731410022380258346876735012977541327953206097115450648421218593649099791776687477448188287063231551586503289816422828823274686610659273219790716238464215348985247621678905026099804526648392954235728734397768049577409144953839157556548545905897649519851380100795801078375994577529919670054760225255203445398871253878017196071816407812484784725791240782454436168234523957068951427226975043187363326301110305342333582160933319121880660826834142891041517324721605335584999322454873077882290525232423486153152097693846104258284971496347534183756200301491570327968530186863157248840152663983568956363465743532178349319982554211730846774529708583950761645822963032442432823773745051702856069806788952176819815671078163340526675953942492628075696832610749532339053622309080708145591983735537774874202903901814293731152933464446815121294509759653430628421531944572711861490001765055817709530246887526325011970520947615941676872778447200019278913725184162285778379228443908430118112149636642465903363419454065718354477191244662125939265662030688852005559912123536371822692253178145879259375044144893398160865790087616502463519704582889548179375668104647461410514249887025213993687050937230544773411264135489280684105910771667782123833281026218558775131272117934444820144042574508306394473836379390628300897330624138061458941422769474793166571762318247216835067807648757342049155762821758397297513447899069658953254894033561561316740327647246921250575911625152965456854463349811431767025729566184477548746937846423373723898192066204851189437886822480727935202250179654534375727416391079197295295081294292220534771730418447791567399173841831171036252439571615271466900581470000263301045264354786590329073320546833887207873544476264792529769017091200787418373673508771337697768349634425241994995138831507487753743384945825976556099655595431804092017849718468549737069621208852437701385375768141663272241263442398215294164537800049250726276515078908507126599703670872669276430837722968598516912230503746274431085293430527307886528397733524601746352770320593817912539691562106363762588293757137384075440646896478310070458061344673127159119460843593582598778283526653115106504162329532904777217408355934972375855213804830509000964667608830154061282430874064559443185341375522016630581211103345312074508682433943215904359443031243122747138584203039010607094031523555617276799416002039397509989762933532585557562480899669182986422267750236019325797472674257821111973470940235745722227121252685238429587427350156366009318804549333898974157149054418255973808087156528143010267046028431681923039253529779576586241439270154974087927313105163611913757700892956482332364829826302460797587576774537716010249080462430185652416175665560016085912153455626760219268998285537787258314514408265458348440947846317877737479465358016996077940556870119232860804113090462935087182712593466871276669487389982459852778649956916546402945893506496433580982476596516514209098675520380830920323048734270346828875160407154665383461961122301375945157925269674364253192739003603860823645076269882749761872357547676288995075211480485252795084503395857083813047693788132112367428131948795022806632017002246033198967197064916374117585485187848401205484467258885140156272501982171906696081262778548596481836962141072171421498636191877475450965030895709947093433785698167446582826791194061195603784539785583924076127634410576675102430755981455278616781594965706255975507430652108530159790807334373607943286675789053348366955548680391343372015649883422089339997164147974693869690548008919306713805717150585730714881564992071408675825960287605645978242377024246980532805663278704192676846711626687946348695046450742021937394525926266861355294062478136120620263649819999949840514386828525895634226432870766329930489172340072547176418868535137233266787792173834754148002280339299735793615241275582956927683723123479898944627433045456679006203242051639628258844308543830720149567210646053323853720314324211260742448584509458049408182092763914000854042202355626021856434899414543995041098059181794888262805206644108631900168856815516922948620301073889718100770929059048074909242714101893354281842999598816966099383696164438152887721408526808875748829325873580990567075581701794916190611400190855374488272620093668560447559655747648567400817738170330738030547697360978654385938218722058390234444350886749986650604064587434600533182743629617786251808189314436325120510709469081358644051922951293245007883339878842933934243512634336520438581291283434529730865290978330067126179813031679438553572629699874035957045845223085639009891317947594875212639707837594486113945196028675121056163897600888009274611586080020780334159145179707303683519697776607637378533301202412011204698860920933908536577322239241244905153278095095586645947763448226998607481329730263097502881210351772312446509534965369309001863776409409434983731325132186208021480992268550294845466181471555744470966953017769043427203189277060471778452793916047228153437980353967986142437095668322149146543801459382927739339603275404800955223181666738035718393275707714204672383862461780397629237713120958078936384144792980258806552212926209362393063731349664018661951081158347117331202580586672763999276357907806381881306915636627412543125958993611964762610140556350339952314032311381965623632719896183725484533370206256346422395276694356837676136871196292181875457608161705303159072882870071231366630872275491866139577373054606599743781098764980241401124214277366808275139095931340415582626678951084677611866595766016599817808941498575497628438785610026379654317831363402513581416115190209649913354873313111502270068193013592959597164019719605362503355847998096348871803911161281359596856547886832585643789617315976200241962155289629790481982219946226948713746244472909345647002853769495885959160678928249105441251599630078136836749020937491573289627002865682934443134234735123929825916673950342599586897069726733258273590312128874666045146148785034614282776599160809039865257571726308183349444182019353338507129234577437557934406217871133006310600332405399169368260374617663856575887758020122936635327026710068126182517291460820254189288593524449107013820621155382779356529691457650204864328286555793470720963480737269214118689546732276775133569019015372366903686538916129168888787640752549349424973342718117889275993159671935475898809792452526236365903632007085444078454479734829180208204492667063442043755532505052752283377888704080403353192340768563010934777212563908864041310107381785333831603813528082811904083256440184205374679299262203769871801806112262449090924264198582086175117711378905160914038157500336642415609521632819712233502316742260056794128140621721964184270578432895980288233505982820819666624903585778994033315227481777695284368163008853176969478369058067106482808359804669884109813515865490693331952239436328792399053481098783027450017206543369906611778455436468772363184446476806914282800455107468664539280539940910875493916609573161971503316696830992946634914279878084225722069714887558063748030886299511847318712477729191007022758889348693945628951580296537215040960310776128983126358996489341024703603664505868728758905140684123812424738638542790828273382797332688550493587430316027474906312957234974261122151741715313361862241091386950068883589896234927631731647834007746088665559873338211382992877691149549218419208777160606847287467368188616750722101726110383067178785669481294878504894306308616994879870316051588410828235127415353851336589533294862949449506186851477910580469603906937266267038651290520113781085861618888694795760741358553458515176805197333443349523012039577073962377131603024288720053732099825300897761897312981788194467173116064723147624845755192873278282512718244680782421521646956781929409823892628494376024885227900362021938669648221562809360537317804086372726842669642192994681921490870170753336109479138180406328738759384826953558307739576144799727000347288018278528138950321798634521611106660883931405322694490545552786789441757920244002145078019209980446138254780585804844241640477503153605490659143007815837243012313751156228401583864427089071828481675752712384678245953433444962201009607105137060846180118754312072549133499424761711563332140893460915656155060031738421870157022610310191660388706466143889773631878094071152752817468957640158104701696524755774089164456867771715850058326994340167720215676772406812836656526412298243946513319735919970940327593850266955747023181320324371642058614103360652453693916005064495306016126782264894243739716671766123104897503188573216555498834212180284691252908610148552781527762562375045637576949773433684601560772703550962904939248708840628106794362241870474700836884267102255830240359984164595112248527263363264511401739524808619463584078375355688562231711552094722306543709260679735100056554938122457548372854571179739361575616764169289580525729752233855861138832217110736226581621884244317885748879810902665379342666421699091405653643224930133486798815488662866505234699723557473842483059042367714327879231642240387776433019260019228477831383763253612102533693581262408686669973827597736568222790721583247888864236934639616436330873013981421143030600873066616480367898409133592629340230432497492688783164360268101130957071614191283068657732353263965367739031766136131596555358499939860056515592193675997771793301974468814837110320650369319289452140265091546518430993655349333718342529843367991593941746622390038952767381333061774762957494386871697845376721949350659087571191772087547710718993796089477451265475750187119487073873678589020061737332107569330221632062843206567119209695058576117396163232621770894542621460985841023781321581772760222273813349541048100307327510779994899197796388353073444345753297591426376840544226478421606312276964696715647399904371590332390656072664411643860540483884716191210900870101913072607104411414324197679682854788552477947648180295973604943970047959604029274629920357209976195014034831538094771460105633344699882082212058728151072918297121191787642488035467231691654185225672923442918712816323259696541354858957713320833991128877591722611527337901034136208561457799239877832508355073019981845902595835598926055329967377049172245493532968330000223018151722657578752405883224908582128008974790932610076257877042865600699617621217684547899644070506624171021332748679623743022915535820078014116534806564748823061500339206898379476625503654982280532966286211793062843017049240230198571997894883689718304380518217441914766042975243725168343541121703863137941142209529588579806015293875275379903093887168357209576071522190027937929278630363726876582268124199338480816602160372215471014300737753779269906958712128928801905203160128586182549441335382078488346531163265040764242839087012101519423196165226842200371123046430067344206474771802135307012409886035339915266792387110170622186588357378121093517977560442563469499978725112544085452227481091487430725986960204027594117894258128188215995235965897918114407765335432175759525553615812800116384672031934650729680799079396371496177431211940202129757312516525376801735910155733815377200195244454362007184847566341540744232862106099761324348754884743453966598133871746609302053507027195298394327142537115576660002578442303107342955153394506048622276496668762407932435319299263925373107689213535257232108088981933916866827894828117047262450194840970097576092098372409007471797334078814182519584259809624174761013825264395513525931188504563626418830033853965243599741693132289471987830842760040136807470390409723847394583489618653979059411859931035616843686921948538205578039577388136067954990008512325944252972448666676683464140218991594456530942344065066785194841776677947047204195882204329538032631053749488312218039127967844610013972675389219511911783658766252808369005324900459741094706877291232821430463533728351995364827432583311914445901780960778288358373011185754365995898272453192531058811502630754257149394302445393187017992360816661130542625399583389794297160207033876781503301028012009599725222228080142357109476035192554443492998676781789104555906301595380976187592035893734197896235893112598390259831026719330418921510968915622506965911982832345550305908173073519550372166587028805399213857603703537710517802128012956684198414036287272562321442875430221090947272107347413497551419073704331827662617727599688882602722524713368335345281669277959132886138176634985772893690096574956228710302436259077241221909430087175569262575806570991201665962243608024287002454736203639484125595488172727247365346778364720191830399871762703751572464992228946793232269361917764161461879561395669956778306829031658969943076733350823499079062410020250613405734430069574547468217569044165154063658468046369262127421107539904218871612761778701425886482577522388918459952337629237791558574454947736129552595222657863646211837759847370034797140820699414558071908021359073226923310083175951065901912129479540860364075735875020589020870457967000705526250581142066390745921527330940682364944159089100922029668052332526619891131184201629163107689408472356436680818216865721968826835840278550078280404345371018365109695178233574303050485265373807353107418591770561039739506264035544227515610110726177937063472380499066692216197119425912044508464174638358993823994651739550900085947999013602667426149429006646711506717542217703877450767356374215478290591101261915755587023895700140511782264698994491790830179547587676016809410013583761357859135692445564776446417866711539195135769610486492249008344671548638305447791433009768048687834818467273375843689272431044740680768527862558516509208826381323362314873333671476452045087662761495038994950480956046098960432912335834885999029452640028499428087862403981181488476730121675416110662999555366819312328742570206373835202008686369131173346973174121915363324674532563087134730279217495622701468732586789173455837996435135880095935087755635624881049385299900767513551352779241242927748856588856651324730251471021057535251651181485090275047684551825209633189906852761443513821366215236889057878669943228881602837748203550601602989400911971385017987168363374413927597364401700701476370665570350433812111357641501845182141361982349515960106475271257593518530433287553778305750956742544268471221961870917856078393614451138333564910325640573389866717812397223751931643061701385953947436784339267098671245221118969084023632741149660124348309892994173803058841716661307304006758838043211155537944060549772170594282151488616567277124090338772774562909711013488518437411869565544974573684521806698291104505800429988795389902780438359628240942186055628778842880212755388480372864001944161425749990427200959520465417059810498996750451193647117277222043610261407975080968697517660023718774834801612031023468056711264476612374762785219024120256994353471622666089367521983311181351114650385489502512065577263614547360442685949807439693233129712737715734709971395229118265348515558713733662912024271430250376326950135091161295299378586468130722648600827088133353819370368259886789332123832705329762585738279009782646054559855513183668884462826513379849166783940976135376625179825824966345877195012438404035914084920973375464247448817618407002356958017741017769692507781489338667255789856458985105689196092439884156928069698335224022563457049731224526935419383700484318335719651662672157552419340193309901831930919658292096965624766768365964701959575473934551433741370876151732367720422738567427917069820454995309591887243493952409444167899884631984550485239366297207977745281439941825678945779571255242682608994086331737153889626288962940211210888442737656862452761213037101730078513571540453304150795944777614359743780374243664697324713841049212431413890357909241603640631403814983148190525172093710396402680899483257229795456404270175772290417323479607361878788991331830584306939482596131871381642346721873084513387721908697510494284376932502498165667381626061594176825250999374167288395174406693254965340310145222531618900923537648637848288134420987004809622717122640748957193900291857330746010436072919094576799461492929042798168772942648772995285843464777538690695014898413392454039414468026362540211861431703125111757764282991464453340892097696169909837265236176874560589470496817013697490952307208268288789073019001825342580534342170592871393173799314241085264739094828459641809361413847583113613057610846236683723769591349261582451622155213487924414504175684806412063652017038633012953277769902311864802006755690568229501635493199230591424639621702532974757311409422018019936803502649563695586642590676268568737211033915679383989576556519317788300024161353956243777784080174881937309502069990089089932808839743036773659552489130015663329407790713961546453408879151030065132193448667324827590794680787981942501958262232039513125201410996053126069655540424867054998678692302174698900954785072567297879476988883109348746442640071818316033165551153427615562240547447337804924621495213325852769884733626918264917433898782478927846891882805466998230368993978341374758702580571634941356843392939606819206177333179173820856243643363535986349449689078106401967407443658366707158692452118299789380407713750129085864657890577142683358276897855471768718442772612050926648610205153564284063236848180728794071712796682006072755955590404023317874944734645476062818954151213916291844429765106694796935401686601005519607768733539651161493093757096855455938151378956903925101495326562814701199832699220006639287537471313523642158926512620407288771657835840521964605410543544364216656224456504299901025658692727914275293117208279393775132610605288123537345106837293989358087124386938593438917571337630072031976081660446468393772580690923729752348670291691042636926209019960520412102407764819031601408586355842760953708655816427399534934654631450404019952853725200495780525465625115410925243799132626271360909940290226206283675213230506518393405745011209934146491843332364656937172591448932415900624202061288573292613359680872650004562828455757459659212053034131011182750130696150983551563200431078460190656549380654252522916199181995960275232770224985573882489988270746593635576858256051806896428537685077201222034792099393617926820659014216561592530673794456894907085326356819683186177226824991147261573203580764629811624401331673789278868922903259334986179702199498192573961767307583441709855922217017182571277753449150820527843090461946083521740200583867284970941102326695392144546106621500641067474020700918991195137646690448126725369153716229079138540393756007783515337416774794210038400230895185099454877903934612222086506016050035177626483161115332558770507354127924990985937347378708119425305512143697974991495186053592040383023571635272763087469321962219006426088618367610334600225547747781364101269190656968649501268837629690723396127628722304114181361006026404403003599698891994582739762411461374480405969706257676472376606554161857469052722923822827518679915698339074767114610302277660602006124687647772881909679161335401988140275799217416767879923160396356949285151363364721954061117176738737255572852294005436178517650230754469386930787349911035218253292972604455321079788771144989887091151123725060423875373484125708606406905205845212275453384800820530245045651766951857691320004281675805492481178051983264603244579282973012910531838563682120621553128866856495651261389226136706409395333457052698695969235035309422454386527867767302754040270224638448355323991475136344104405009233036127149608135549053153902100229959575658370538126196568314428605795669662215472169562087001372776853696084070483332513279311223250714863020695124539500373572334680709465648308920980153487870563349109236605755405086411152144148143463043727327104502776866195310785832333485784029716092521532609255893265560067212435946425506599677177038844539618163287961446081778927217183690888012677820743010642252463480745430047649288555340906218515365435547412547615276977266776977277705831580141218568801170502836527554321480348800444297999806215790456416195721278450892848980642649742709057912906921780729876947797511244730599140605062994689428093103421641662993561482813099887074529271604843363081840412646963792584309418544221635908457614607855856247381493142707826621518554160387020687698046174740080832434366538235455510944949843109349475994467267366535251766270677219418319197719637801570216993367508376005716345464367177672338758864340564487156696432104128259564534984138841289042068204700761559691684303899934836679354254921032811336318472259230555438305820694167562999201337317548912203723034907268106853445403599356182357631283776764063101312533521214199461186935083317658785204711236433122676512996417132521751355326186768194233879036546890800182713528358488844411176123410117991870923650718485785622102110400977699445312179502247957806950653296594038398736990724079767904082679400761872954783596349279390457697366164340535979221928587057495748169669406233427261973351813662606373598257555249650980726012366828360592834185584802695841377255897088378994291054980033111388460340193916612218669605849157148573356828614950001909759112521880039641976216355937574371801148055944229873041819680808564726571354761283162920044988031540210553059707666636274932830891688093235929008178741198573831719261672883491840242972129043496552694272640255964146352591434840067586769035038232057293413298159353304444649682944136732344215838076169483121933311981906109614295220153617029857510559432646146850545268497576480780800922133581137819774927176854507553832876887447459159373116247060109124460982942484128752022446259447763874949199784044682925736096853454984326653686284448936570411181779380644161653122360021491876876946739840751717630751684985635920148689294310594020245796962292456664488196757629434953532638217161339575779076637076456957025973880043841580589433613710655185998760075492418721171488929522173772114608115434498266547987258005667472405112200738345927157572771521858994694811794064446639943237004429114074721818022482583773601734668530074498556471542003612359339731291445859152288740871950870863221883728826282288463184371726190330577714765156414382230679184738603914768310814135827575585364359772165002827780371342286968878734979509603110889919614338666406845069742078770028050936720338723262963785603865321643234881555755701846908907464787912243637555666867806761054495501726079114293083128576125448194444947324481909379536900820638463167822506480953181040657025432760438570350592281891987806586541218429921727372095510324225107971807783304260908679427342895573555925272380551144043800123904168771644518022649168164192740110645162243110170005669112173318942340054795968466980429801736257040673328212996215368488140410219446342464622074557564396045298531307140908460849965376780379320189914086581466217531933766597011433060862500982956691763884605676297293146491149370462446935198403953444913514119366793330193661766365255514917498230798707228086085962611266050428929696653565251668888557211227680277274370891738963977225756489053340103885593112567999151658902501648696142720700591605616615970245198905183296927893555030393468121976158218398048396056252309146263844738629603984892438618729850777592879272206855480721049781765328621018747676689724884113956034948037672703631692100735083407386526168450748249644859742813493648037242611670426687083192504099761531907685577032742178501000644198412420739640013960360158381056592841368457411910273642027416372348821452410134771652960312840865841978795111651152982781462037913985500639996032659124852530849369031313010079997719136223086601109992914287124938854161203802041134018888721969347790449752745428807280350930582875442075513481666092787935356652125562013998824962847872621443236285367650259145046837763528258765213915648097214192967554938437558260025316853635673137926247587804944594418342917275698837622626184636545274349766241113845130548144983631178978448973207671950878415861887969295581973325069995140260151167552975057543781024223895792578656212843273120220071673057406928686936393018676595825132649914595026091706934751940897535746401683081179884645247361895605647942635807056256328118926966302647953595109712765913623318086692153578860781275991053717140220450618607537486630635059148391646765672320571451688617079098469593223672494673758309960704258922048155079913275208858378111768521426933478692189524062265792104362034885292626798401395321645879115157905046057971083898337186403802441751134722647254701079479399695355466961972676325522991465493349966323418595145036098034409221220671256769872342794070885707047429317332918852389672197135392449242617864118863779096281448691786946817759171715066911148002075943201206196963779510322708902956608556222545260261046073613136886900928172106819861855378098201847115416363032626569928342415502360097804641710852553761272890533504550613568414377585442967797701466029438768722511536380119175815402812081825560648541078793359892106442724489861896162941341800129513068363860929410008313667337215300835269623573717533073865333820484219030818644918409372394403340524490955455801640646076158101030176748847501766190869294609876920169120218168829104087070956095147041692114702741339005225334083481287035303102391969997859741390859360543359969707560446013424245368249609877258131102473279856207212657249900346829388687230489556225320446360263985422525841646432427161141981780248259556354490721922658386366266375083594431487763515614571074552801615967704844271419443518327569840755267792641126176525061596523545718795667317091331935876162825592078308018520689015150471334038610031005591481785211038475454293338918844412051794396997019411269511952656491959418997541839323464742429070271887522353439367363366320030723274703740712398256202466265197409019976245205619855762576000870817308328834438183107005451449354588542267857855191537229237955549433341017442016960009069641561273229777022121795186837635908225512881647002199234886404395915301846400471432118636062252701154112228380277853891109849020134274101412155976996543887719748537643115822983853312307175113296190455900793806427669581901484262799122179294798734890186847167650382732855205908298452980625925035212845192592798659350613296194679625237397256558415785374456755899803240549218696288849033256085145534439166022625777551291620077279685262938793753045418108072928589198971538179734349618723292761474785019261145041327487324297058340847111233374627461727462658241532427105932250625530231473875925172478732288149145591560503633457542423377916037495250249302235148196138116256391141561032684495807250827343176594405409826976526934457986347970974312449827193311386387315963636121862349726140955607992062831699942007205481152535339394607685001990988655386143349578165008996164907967814290114838764568217491407562376761845377514403147541120676016072646055685925779932207033733339891636950434669069482843662998003741452762771654762382554617088318981086880684785370553648046935095881802536052974079353867651119507937328208314626896007107517552061443378411454995013643244632819334638905093654571450690086448344018042836339051357815727397333453728426337217406577577107983051755572103679597690188995849413019599957301790124019390868135658553966194137179448763207986880037160730322054742357226689680188212342439188598416897227765219403249322731479366923400484897605903795809469604175427961378255378122394764614783292697654516229028170110043784603875654415173943396004891531881757665050095169740241564477129365661425394936888423051740012992055685428985389794266995677702708914651373689220610441548166215680421983847673087178759027920917590069527345668202651337311151800018143412096260165862982107666352336177400783778342370915264406305407180784335806107296110555002041513169637304684921335683726540030750982908936461204789111475303704989395283345782408281738644132271000296831194020332345642082647327623383029463937899837583655455991934086623509096796113400486702712317652666371077872511186035403755448741869351973365662177235922939677646325156202348757011379571209623772343137021203100496515211197601317641940820343734851285260291333491512508311980285017785571072537314913921570910513096505988599993156086365547740355189816673353588004821466509974143376118277772335191074121757284159258087259131507460602563490377726337391446137703802131834744730111303267029691733504770163210661622783002726928336558401179141944780874825336071440329625228577500980859960904093631263562132816207145340610422411208301000858726425211226248014264751942618432585338675387405474349107271004975428115946601713612259044015899160022982780179603519408004651353475269877760952783998436808690898919783969353217998013913544255271791022539701081063214304851137829149851138196914304349750018998068164441212327332830719282436240673319655469267785119315277511344646890550424811336143498460484905125834568326644152848971397237604032821266025351669391408204994732048602162775979177123475109750240307893575993771509502175169355582707253391189233407022383207758580213717477837877839101523413209848942345961369234049799827930414446316270721479611745697571968123929191374098292580556195520743424329598289898052923336641541925636738068949420147124134052507220406179435525255522500874879008656831454283516775054229480327478304405643858159195266675828292970522612762871104013480178722480178968405240792436058274246744307672164527031345135416764966890127478680101029513386269864974821211862904033769156857624069929637249309720162870720018983542369036414927023696193854737248032985504511208919287982987446786412915941753167560253343531062674525450711418148323988060729714023472552071349079839898235526872395090936566787899238371257897624875599044322889538837731734894112275707141095979004791930104674075041143538178246463079598955563899188477378134134707024674736211204898622699188851745625173251934135203811586335012391305444191007362844756751416105041097350585276204448919097890198431548528053398577784431393388399431044446566924455088594631408175122033139068159659251054685801313383815217641821043342978882611963044311138879625874609022613090084997543039577124323061690626291940392143974027089477766370248815549932245882597902063125743691094639325280624164247686849545532493801763937161563684785982371590238542126584061536722860713170267474013114526106376538339031592194346981760535838031061288785205154693363924108846763200956708971836749057816308515813816196688222204757043759061433804072585386208356517699842677452319582418268369827016023741493836349662935157685406139734274647089968561817016055110488097155485911861718966802597354170542398513556001872033507906094642127114399319604652742405088222535977348151913543857125325854049394601086579379805862014336607882521971780902581737087091646045272797715350991034073642502038638671822052287969445838765294795104866071739022932745542678566977686593992341683412227466301506215532050265534146099524935605085492175654913483095890653617569381763747364418337897422970070354520666317092960759198962773242309025239744386101426309868773391388251868431650102796491149773758288891345034114886594867021549210108432808078342808941729800898329753694064496990312539986391958160146899522088066228540841486427478628197554662927881462160717138188018084057208471586890683691939338186427845453795671927239797236465166759201105799566396259853551276355876814021340982901629687342985079247184605687482833138125916196247615690287590107273310329914062386460833337863825792630239159000355760903247728133888733917809696660146961503175422675112599331552967421333630022296490648093458200818106180210022766458040027821333675857301901137175467276305904435313131903609248909724642792845554991349000518029570708291905255678188991389962513866231938005361134622429461024895407240485712325662888893172211643294781619055486805494344103409068071608802822795968695013364381426825217047287086301013730115523686141690837567574763723976318575703810944339056456446852418302814810799837691851212720193504404180460472162693944578837709010597469321972055811407877598977207200968938224930323683051586265728111463799698313751793762321511125234973430524062210524423435373290565516340666950616589287821870775679417608071297378133518711793165003315552382248773065344417945341539520242444970341012087407218810938826816751204229940494817944947273289477011157413944122845552182842492224065875268917227278060711675404697300803703961878779669488255561467438439257011582954666135867867189766129731126720007297155361302750355616781776544228744211472988161480270524380681765357327557860250584708401320883793281600876908130049249147368251703538221961903901499952349538710599735114347829233949918793660869230137559636853237380670359114424326856151210940425958263930167801712866923928323105765885171402021119695706479981403150563304514156441462316376380990440281625691757648914256971416359843931743327023781233693804301289262637538266779503416933432360750024817574180875038847509493945489620974048544263563716499594992098088429479036366629752600324385635294584472894454716620929749549661687741412088213047702281611645604400723635158114972973921896673738264720472264222124201656015028497130633279581430251601369482556701478093579088965713492615816134690180696508955631012121849180584792272069187169631633004485802010286065785859126997463766174146393415956953955420331462802651895116793807457331575984608617370268786760294367778050024467339133243166988035407323238828184750105164133118953703648842269027047805274249060349208295475505400345716018407257453693814553117535421072655783561549987444748042732345788006187314934156604635297977945507535930479568720931672453654720838168585560604380197703076424608348987610134570939487700294617579206195254925575710903852517148852526567104534981341980339064152987634369542025608027761442191431892139390883454313176968510184010384447234894886952098194353190650655535461733581404554483788475252625394966586999205841765278012534103389646981864243003414679138061902805960785488801078970551694621522877309010446746249797999262712095168477956848258334140226647721084336243759374161053673404195473896419789542533503630186140095153476696147625565187382329246854735693580289601153679178730355315937836308224861517777054157757656175935851201669294311113886358215966761883032610416465171484697938542262168716140012237821377977413126897726671299202592201740877007695628347393220108815935628628192856357189338495885060385315817976067947984087836097596014973342057270460352179060564760328556927627349518220323614411258418242624771201203577638889597431823282787131460805353357449429762179678903456816988955351850447832561638070947695169908624710001974880920500952194363237871976487033922381154036347548862684595615975519376541011501406700122692747439388858994385973024541480106123590803627458528849356325158538438324249325266608758890831870070910023737710657698505643392885433765834259675065371500533351448990829388773735205145933304962653141514138612443793588507094468804548697535817021290849078734780681436632332281941582734567135644317153796781805819585246484008403290998194378171817730231700398973305049538735611626102399943325978012689343260558471027876490107092344388463401173555686590358524491937018104162620850429925869743581709813389404593447193749387762423240985283276226660494238512970945324558625210360082928664972417491914198896612955807677097959479530601311915901177394310420904907942444886851308684449370590902600612064942574471035354765785924270813041061854621988183009063458818703875585627491158737542106466795134648758677154383801852134828191581246259933516019893559516796893285220582479942103451271587716334522299541883968044883552975336128683722593539007920166694133909116875880398882886921600237325736158820716351627133281051818760210485218067552664867390890090719513805862673512431221569163790227732870541084203784152568328871804698795251307326634027851905941733892035854039567703561132935448258562828761061069822972142096199350933131217118789107876687204454887608941017479864713788246215395593333327556200943958043453791978228059039595992743691379377866494096404877784174833643268402628293240626008190808180439091455635193685606304508914228964521998779884934747772913279726602765840166789013649050874114212686196986204412696528298108704547986155954533802120115564697997678573892018624359932677768945406050821883822790983362716712449002676117849826437703300208184459000971723520433199470824209877151444975101705564302954282181967000920251561584417420593365814813490269311151709387226002645863056132560579256092733226557934628080568344392137368840565043430739657406101777937014142461549307074136080544210029560009566358897789926763051771878194370676149821756418659011616086540863539151303920131680576903417259645369235080641744656235152392905040947995318407486215121056183385456617665260639371365880252166622357613220194170137266496607325201077194793126528276330241380516490717456596485374835466919452358031530196916048099460681490403781982973236093008713576079862142542209641900436790547904993007837242158195453541837112936865843055384271762803527912882112930835157565659994474178843838156514843422985870424559243469329523282180350833372628379183021659183618155421715744846577842013432998259456688455826617197901218084948033244878725818377480552226815101137174536841787028027445244290547451823467491956418855124442133778352142386597992598820328708510933838682990657199461490629025742768603885051103263854454041918495886653854504057132362968106914681484786965916686184275679846004186876229805556296304595322792305161672159196867584952363529893578850774608153732145464298479231051167635774949462295256949766035947396243099534331040499420967788382700271447849406903707324910644415169605325656058677875741747211082743577431519406075798356362914332639781221894628744779811980722564671466405485013100965678631488009030374933887536418316513498254669467331611812336485439764932502617954935720430540218297487125110740401161140589991109306249231281311634054926257135672181862893278613883371802853505650359195274140086951092616754147679266803210923746708721360627833292238641361959412133927803611827632410600474097111104814000362334271451448333464167546635469973149475664342365949349684588455152415075637660508663282742479413606287604129064491382851945640264315322585862404314183866959063324506300039221319264762596269151090445769530144405461803785750303668621246227863975274666787012100339298487337501447560032210062235802934377495503203701273846816306102657030087227546296679688089058712767636106622572235222973920644309352432722810085997309513252863060110549791564479184500461804676240892892568091293059296064235702106152464620502324896659398732493396737695202399176089847457184353193664652912584806448019652016283879518949933675924148562613699594530728725453246329152911012876377060557060953137752775186792329213495524513308986796916512907384130216757323863757582008036357572800275449032795307990079944254110872569318801466793559583467643286887696661009739574996783659339784634695994895061049038364740950469522606385804675807306991229047408987916687211714752764471160440195271816950828973353714853092893704638442089329977112585684084660833993404568902678751600877546126798801546585652206121095349079670736553970257619943137663996060606110640695933082817187642604357342536175694378484849525010826648839515970049059838081210522111109194332395113605144645983421079905808209371646452312770402316007213854372346126726099787038565709199850759563461324846018840985019428768790226873455650051912154654406382925385127631766392205093834520430077301702994036261543400132276391091298832786392041230044555168405488980908077917463609243933491264116424009388074635660726233669584276458369826873481588196105857183576746200965052606592926354829149904576830721089324585707370166071739819448502884260396366074603118478622583105658087087030556759586134170074540296568763477417643105175103673286924555858208237203860178173940517513043799486882232004437804310317092103426167499800007301609481458637448877852227307633049538394434538277060876076354209844500830624763025357278103278346176697054428715531534001649707665719598504174819908720149087568603778359199471934335277294728553792578768483230110185936580071729118696761765505377503029303383070644891281141202550615089641100762382457448865518258105814034532012475472326908754750707857765973254284445935304499207001453874894822655644222369636554419422544133821222547749753549462482768053333698328415613869236344335855386847111143049824839899180316545863828935379913053522283343013795337295401625762322808113849949187614414132293376710656349252881452823950620902235787668465011666009738275366040544694165342223905210831458584703552935221992827276057482126606529138553034554974455147034493948686342945965843102419078592368022456076393678416627051855517870290407355730462063969245330779578224594971042018804300018388142900817303945050734278701312446686009277858181104091151172937487362788787490746528556543474888683106411005102302087510776891878152562273525155037953244485778727761700196485370355516765520911933934376286628461984402629525218367852236747510880978150709897841308624588152266096355140187449583692691779904712072649490573726428600521140358123107600669951853612486274675637589622529911649606687650826173417848478933729505673900787861792535144062104536625064046372881569823231750059626108092195521115085930295565496753886261297233991462835847604862762702730973920200143224870758233735491524608560821032888297418390647886992327369136004883743661522351705843770554521081551336126214291181561530175888257359489250710887926212864139244330938379733386780613179523731526677382085802470143352700924380326695174211950767088432634644274912755890774686358216216604274131517021245858605623363149316464691394656249747174195835421860774871105733845843368993964591374060338215935224359475162623918868530782282176398323730618020424656047752794310479618972429953302979249748168405289379104494700459086499187272734541350810198388186467360939257193051196864560185578245021823106588943798652243205067737996619695547244058592241795300682045179537004347245176289356677050849021310773662575169733552746230294303120359626095342357439724965921101065781782610874531887480318743082357369919515634095716270099244492974910548985151965866474014822510633536794973714251022934188258511737199449911509758374613010550506419772153192935487537119163026203032858865852848019350922587577559742527658401172134232364808402714335636754204637518255252494432965704386138786590196573880286840189408767281671413703366173265012057865391578070308871426151907500149257611292767519309672845397116021360630309054224396632067432358279788933232440577919927848463333977773765590187057480682867834796562414610289950848739969297075043275302997287229732793444298864641272534816060377970729829917302929630869580199631241330493935049332541235507105446118259114111645453471032988104784406778013807713146540009938630648126661433085820681139583831916954555825942689576984142889374346708410794631893253910696395578070602124597489829356461356078898347241997947856436204209461341238761319886535235831299686226894860840845665560687695450127448663140505473535174687300980632278046891224682146080672762770840240226615548502400895289165711761743902033758487784291128962324705919187469104200584832614067733375102719565399469716251724831223063391932870798380074848572651612343493327335666447335855643023528088392434827876088616494328939916639921048830784777704804572849145630335326507002958890626591549850940797276756712979501009822947622896189159144152003228387877348513097908101912926722710377889805396415636236416915498576840839846886168437540706512103906250612810766379904790887967477806973847317047525344215639038720123880632368803701794930895490077633152306354837425681665336160664198003018828712376748189833024683637148830925928337590227894258806008728603885916884973069394802051122176635913825152427867009440694235512020156837777885182467002565170850924962374772681369428435006293881442998790530105621737545918267997321773502936892806521002539626880749809264345801165571588670044350397650532347828732736884086354000274067678382196352222653929093980736739136408289872201777674716811819585613372158311905468293608323697611345028175783020293484598292500089568263027126329586629214765314223335179309338795135709534637718368409244442209631933129562030557551734006797374061416210792363342380564685009203716715264255637185388957141641977238742261059666739699717316816941543509528319355641770566862221521799115135563970714331289365755384464832620120642433801695586269856102246064606933079384785881436740700059976970364901927332882613532936311240365069865216063898725026723808740339674439783025829689425689674186433613497947524552629142652284241924308338810358005378702399954217211368655027534136221169314069466951318692810257479598560514500502171591331775160995786555198188619321128211070944228724044248115340605589595835581523201218460582056359269930347885113206862662758877144603599665610843072569650056306448918759946659677284717153957361210818084154727314266174893313417463266235422207260014601270120693463952056444554329166298666078308906811879009081529506362678207561438881578135113469536630387841209234694286873083932043233387277549680521030282154432472338884521534372725012858974769146080831440412586818154004918777228786980185345453700652665564917091542952275670922221747411206272065662298980603289167206874365494824610869736722554740481288924247185432360575341167285075755205713115669795458488739874222813588798584078313506054829055148278529489112190538319562422871948475940785939804790109419407067176443903273071213588738504999363883820550168340277749607027684488028191222063688863681104356952930065219552826152699127163727738841899328713056346468822739828876319864570983630891778648708667618548568004767255267541474285102814580740315299219781455775684368111018531749816701642664788409026268282444825802753209454991510451851771654631180490456798571325752811791365627815811128881656228587603087597496384943527567661216895926148503078536204527450775295063101248034180458405943292607985443562009370809182152392037179067812199228049606973823874331262673030679594396095495718957721791559730058869364684557667609245090608820221223571925453671519183487258742391941089044411595993276004450655620646116465566548759424736925233695599303035509581762617623184956190649483967300203776387436934399982943020914707361894793269276244518656023955905370512897816345542332011497599489627842432748378803270141867695262118097500640514975588965029300486760520801049153788541390942453169171998762894127722112946456829486028149318156024967788794981377721622935943781100444806079767242927624951078415344642915084276452000204276947069804177583220909702029165734725158290463091035903784297757265172087724474095226716630600546971638794317119687348468873818665675127929857501636341131462753049901913564682380432997069577015078933772865803571279091376742080565549362464641260024379684543777339026472512819416320076848736251764065967540693621758879307855916478777274739272002910342949562447661308200729250734529170764226621047673037863169954237455117456522022783324096803524667663190861011206745856287317413511162292078865132941244815471628182079877168346341322362234117788231027659825109358892359162055108763298087993165172528938001237817434896832151590562493347370206832232100118637395770567473867102173212375224325241626358034376253606808669163571594551527817803921774322823436633772811186390511893075901666650742952758384008544635419317190531363659724905158409106582201814734799022359067138146905116051922301269482316113417439944714833040862484269139502336713412425123864026657258130943967621939655407386524229897879782198637918299709557924747320303239116410445906907977862315518349593035305923789817515891457650408025109479123421758482841881950138546165680301755035580054944894884871351605375593402345748979516602442338321406030095937105588457052515704266284600354402823678768550982678161765520375795655481677896038927498355608791541177749423573400764161093294003899982199267257086957326068774974224802023307525187650255968420760693229988587579898896460744381788170081548895226516722834045277219106991415764639485231126794730865803195076455197675628957428881796812090026387145257858315277615109088631740243695680567873015235427804793414266495223833707117511265375503942372098784668049139473446530714079622597287130503077258714875570502582573466866613802351426056116197405543436548698005444879295970287590352258409782683598666446586045694241390729095266249932902973440568160683805726626057277088407073471496060064561454070734432782514087474275506722304845357006092214390002992981608211717047917614505191008132670375214930740567853311106058352912781007391749949197845112915913681107394055175208019630539350740248509553772500367054665162330430425087442324262404632115078997336929985407041656261041976700202415094892411856092409637604429612002364590706449770627207919019235964807048923636979860198283087284228564752353162882791324295524814447505521909672046080689545181712204930321853740627247421519740305769043602686360780792004776232429551829473522027244376339027721392087767065716241639751785859254426923428535274328856336850789651962072519416556061870370550218462845434257850383000095374518292958440464918838685793483961151297160581665745096703677495836666693121881763679644943617130416037243050658485131749264055855194018005180908475211868224616976149243238319486434415908558011073070311201502243416073157929528752936835820397003389112114170685219366589789459503154389589015303827143001929589074149943592894083097077078362875914484037045038618966975811201852319231868659968038583812370329156207578835948780941688205531605128190152647592807574958154564221341459378167056992868299895611982353837157880480478704584175394665497690173220310890070303362911767308448450372145669644401469545173857434157810158618783839278552609399130570255575559060947051498093487773320072797573038245989466809680822221348485873822999281794090825665209581655472475244566743697594474686376332428904269776106791933910983300422310293728298798903209391092682836306173610173878123679898645149311702437128285882630486298884492207415640607147059137405524665756971870217355287245439427714809179364437650637861861324348635797411258520863459927803688792498354363298457687650165065115345008695721239507544785683173631557153527046524235259737513408825461609661440746675514226836031959801072152463551069171871335731685485631280857834435623670959650949946968820661185118086034202821331801249410991502601435450017432730793625113070298250499417994284451146479329154599555909587807621636668591791065435966065253525320273650725989121255686842802077246487722010996631829559552903393312284364864475973560859840760947298389542433932623153239918981852264180831296333546356874828863465618504810632288805596737844562000941465603499280879405115310057587129552571964111506850340773710604380371259575596985949362058477512026354947347534748189262254190352671614429284899857536740692165271630086060654373736823556588626486343689153218095572204456777137368310458075584529612832832606319629728527966674362974800821318627921869044284342630735760703999669430789508147269730253817375694922751795354326156912040594832860949992366412287881226419148504856328072066418557059520375030322916894489427578306090910852410601400683274205583969773823150734996108758763704255564964086855071942256344966732430656259250474581762733281816017019698166542426378763601453035946538450325476674999737340835665138186025156520283637389171016545414882674448009105704186162626837971120886141357279611099088292970229692128180978798951391504270936786444983196420134566833908775943006442485623012124614511697921939634409508083229281294270436599146482749984375942113020418297308417178813090379558545603247170819195302771465794555475544754284434408139388908609776017857389307518661906505018077165001840744325854024184360501118242990702323417243674525365349594799063334540754371812699399833719218485418735979845348934592268515068182662490078029335012658824974226241885352526636702827662499349829488748331061764208429016923052899608978604130065109028179805040587107671179041130217482796682353001960220253185576789843317586806378359968791601538922220236575765581586611409199394861599209159917553341783033347643131635012705390697079326567812415906434284721360235218236741214733124499944334155915274315931687477882533155092770336202901222597794809855392200064527162280855398278906584233447552821276517650572663267691141075034845871896996434875775138479148183635100621466818585096348887081456976722020167991199462417776688907917136865945960726468538810778783002161368276697026223459418737476733537998884403427046803042551694127158739320398444374604547816113056625176412759821181939661101850562880555942566060032312116180994622129301002470913347150682268430458680300904242861682025562140946087900065191099495570815816505828983340739466084457565780636690272843462018587328252924796505286681408503538519837523637451925622795490290557907030283950104854835929834542814487304358047053315081510503001521428117175393649133166172621235405527863308002083177055630294963594201654333094094177196326234119387105161570101798053551679370860291366756986097124120368583812957695307798141365700174761356966986146068491439699573837631695824602513342108072621713601943018087209888551415024163818325975259593165531865833117126857941527206612218422661411825154657484878312610347834546749258308729985447421206445095233245050877431496166555251797168020991720026409374921907569936896330281391647208963581771735555848592706524504862516419540550801343510323389813378302497701822754906381499964723334079613041469739476372650869273347108415685608430921316240434629863920841660055904598506491243505264766067600344441618186403670083774114101094320588955598658670077863671896944089622321374034113597199133135946553685446692367652589012108413777432482191812747847892287264892970032371873456157981599834839100412601050746964599430331978810634913923812490503061433407918328004063907098672596197098311265960147473725330526853717742146554005873924623727617364905198713368067723952570781360686683261395014329509474851594724667527201684316586608807512768584755541184381169011622005552113484488960668259227431319007963011587084670117654935393046563356225311244727796669005831190616101972663073970542531439818457379449486780134618217875939076999602029083965677287846905736401564015047696448993947541474608339918696889271156942345492651246645507792554028105037622035967530558601856492056062879090769453339208808849477828894851122154743230191383245562993881020614490266876010207753210915684977830740859649857967152617010039475494539917698791323546550106407355816999409756248149967443278429202762644189793918158394562708173301582160225519659898769376164019861207466755048861110855726764507052622446130222335852072273620485057289238815884938754535229186399714380884061757286220950122506515863104258884134355431973729856217753072022629475552483044445340434888878581170341345342522354319407877972846760181583227097745180929342193189815812482832658950040704855206099893783900341914163044639163880549658786501375046341695655156618298878630705842306967660254053024811471007899784211830489010464056896539702885595530925558636052158957375114089564905844156774937105859648014315874614491250549253191164653821585197370093280194530320572628452658046046337816631429933076646646530760590548962888724189716060225882617577539922055131509377200624863085562820493575752724995567089221634233983602565328731029194007041176919220850015116735670101958971001797019578120892910969417754369904368202563024054822625401905696507710581574240721496339560365270283334407305750073674562260584649886115101689612181119058471714461068719761017456587373796740697137423238753839030317200200207205928488785123911746471673743737923283881966201687622191346233893762599527025672138622112458980212130501407288904300322535504095866818724139369938193069148744717186646183111942603161664070377316487001864799600243044003242241809402278533309011509880870678268835317200767522553138008818780431690190072804831799287414125476123089606833095828377667688287578688683092976001011974533898331952588619630132917094385816615374171794496319177154312506959853481285684619377669894277459170918802520012749905559407289696594793331672243621567896776966708035229039018485730806275670867658627104769409203565593025352743418965927002227049233186829991560936413757004988537304596396152734629396974951748062696451793018719986788537581415975799314806608557232568374305282764175670050288040489429899580948103534833934144927885925262192415547231997143385086637320926632728243514933640704589683852345624744361175256766987767597223439206357507471552918102762614012992480422883990297879925418517499129630283990729635588579890593317795908769073905646025623533567221552259468838298452882922966275137162422172954678670715840924184084147557582539385240963302051349704740695399567897981727860920462286839735779815111868152659884606949758965481314651150392626377749513761557248195116119877250344564710738513435927355538712462375598193813214238441581929070046389771683887207916361741432497079109658162746429717072871725142745898356897095534626820169085356108944898407100581920302176945120771774588795519510473384184739980796306767885845167575729904306971542642383498009870869933670912108394453506245922432312348278549660374657188014892937945147870540607924575900601219622123928720017215588666345734971409533721151655985757941724419889026167016101611557834315025460328781198424027484608510722406676778760855247617773833089502610064388350550205456324346167859451941795669874968515244883847513618180667108316165564209369270520611898517292617141714434655508706306063551012949400309759167799158426049197120954322702678432654296572403272088714321999645313202587109677165128549669962552698607311763718207498827399770601991362093083230736838206455732563765982912578131492224220427971241441629951265945639792759380383804782623160424325399132851123032247037561942321733047854078576244013291717992979240783390715757981426816864655382946847399205888631655934919867896962840447344968024077092831376408103352255242717404107673565424441004483347440101726441052954787296345898640501203608024451190350994974493973617181575277093780209236668135841636268319263406714182797421342546220705415600050959674045616840451771747952790353254932589120483385746590096781730416000521088934610768754004241977803082885181200173369559127137714195011361304409753279190504891583246399143483531648681548579178632935123925552510211182788573696060276931301469661433449642302114382483705633532793858895267672076688971274435815632088106650149568143558796576909857765902768707453659276364975553449617308078160987103248013795136170367763457594975686208013996374551762425147780628722265971455482906769295713643572152674468987889418820751292225756509143552828874614195097862427527881571566400763721037803194043095844272549269987169234331890022141503113998765260688761566740210197201719602390861082974927639569541153032275460173870795625993579785302443476716399591462317931239989986928437975702492369551587297683854005227651495614447105971962889888157109415171701518114743513643854005116246202131174800791983749700100471363432523281578911355450453371905275068229156185003328469567926226208190442473340362503892792071585960039363153368842724375366799698647934741133198328619441460653922784099903143840354565047056789552024827176011874335643690243503085631309559055250390492731613311734922584644609024535079190184411299321699770451832853586480428556822208737213616490586303256368913084103760215679927020005322355439804653119339775459044045078568021398465009693429547310269249947586466058091669984160684646087293943808274308285817479694172872990311013192675573897984091364253479694943480377703364634958476862982590103470727861218623001986607987782684245933835638919570206853521603211635230064988744600200170413056985365154668752023859375183280372851143274811699683692849220447380570633496618711240947835915869626858643589141359854253577688774932743634514754488640868818030369652431755688300205860773256959716086485415834468432489963077011371344675156930244885482077124133557732306949458067267845235943631507872728157901573070033178796854436279525719023623274614262868732738009497741122856237663214904653294072026197539071740422259539242888164559796570030957141389106936845036268231053986743753240052701534745893325679514941854537808827063457295962169085383535370381418115573816378209032561519869745357646412125498076005156141707298046994813593483150568116642793219335279822714715767340186088721518799669350252700757556099719882863064285448128275139280694702750148163289727314347348528529504604883271673978981563678804780443602109007320727369749344630499731442571560433133690387618100948873120713482710815889857483265854207510077953118326861708037070935927614936782530858340482351003632166378957426202550350116861543407379504516482896755698358935522020173679548075781909502697981271148703431190363112246128295303820512870430929471974594690821025634788995431771524379696211281224503426066399268852133079196370277780448857920573046990800923440186638113252097123096476059989947925759851008173039606822219975327301606582628527582576695078547260349382981335825281786706085126560022688717811253597829337347791412736284188656175920832879447410969703879854736984025458063294835022359393543587480223989760916296250110473931169449100666907230634693130169711820632535269244043840093724284428209709364856909468920087371753252557030543539828727812301139808093867015474885803445631871319602678548793893316205007675264112044390237583342724298699654786368534102848857370254725502365663418680919038388670787907208403619402164670121534837978151832826472578628815207101081499558980338118961569441756761340717046538512170902123777884333649651872119905407581877394397528364143953044245913903178813004188791887114553148267469987055587931040240388884083850687341625071657274185134952084963670955542450439483948045979156228282483787934152720362263369561805556371076814888893619275742659935823559431530887933052767558747512365065843969475604297192002319868024351719937868100361102312568364256079597410574153628297180046497748573718378639037039015397374911654685499716453941611216417610717145401765190565052520662277883129045719693205990241375395983861982603205495839501675552509644137118222561496014003023035407899209698677507867200038074267970530307167932296015648622808518403352350170608589512912223246117830253163628943946073652771336511631646446199099021224922412315168992767855863736315526002503488487813233001910189399616702731416999626511945742636761965002434737172729028462209798394871065982270009954918877696188505432653211802219444282228425152556141187434018041946141394514712872527592391255964437356833972896331267678234910356332961294719101515714311579549093390326141191865475237624721531102079369115848742205822747343201735585077122437969857965491580627950274097716886114807616315161855306856692457171769220443668433127398933794111629722451699985468562215702417594711769952916550211685500108985761934639455908826270775311465775223884634351937653973498480245497607602440308084489010683878697261237097835782451668011714859836794055290461982621656691720274262854823933960018254599409254308169691032978411234022885600190549342750223185294712829609693976813734197704278121300147328677605719405969979275512461718434956985641712872481183465420642318714551824152867630567513116267717735061751124546338799426529127010578995671805721436557918350691777930704075732904397494995822410623810514917650238504182730096620171750940590805408957283755406355152219965820757351315707592361539863945921115586400098809755261053838256899272158478504174606516151133788336097601211484870055601658124924706825684427204547289630942030665044529864622359422600855499158914995360649842803457949275700949795945060237877501947062463239495495782308228306684081880252107663907423097372091628533717680621644693543231791785530583317142084798863034084657264269395570026857605753934788858709460058272323051910811751423491268733658596079989173292891589600181509181633740080603547520005151175102901229924870961545928026206076169827218102916731554892942374085196743307916607849905578210193571366243599088361385980851615641747694605478554008195353067080308969763045294686823321053287823743894411568517627171163630940147990964945635459295013073900362682100732637008235615069126964318335171625439030469898931426154426359511363466057378654951244574752621678954703628904830484996804037722513431937373441236618586944588064018584073147633792940386340435919419872355263015654608051868676068043160845128459160424413269879125385602991599672787661951950531764883134693257366894644382558139108486209663742674579831301222343872583124422033094571457541470479293875858238997738515213523723895596643122356432626286011474890868171592810668727084008203377186921535235269263472268090825989889840026208152178282611229313118208660070996860365409818326807558247767069504109975861436243552161945353029200254667367996485043373133495208210751199258926638995647569858707901856123791578864374469037871509500112550210038845311923652965599461900474846620642347942329670060529003709175578188708193522146871427235277632559898086948721113845980014123842163827824412736542446748833381679716201128861914154019367129094789902646664431560983729615019686242282506723061667209435465714251493086424887785986827595887490650772602509518295367651811823686169447243607837642947624692263194989219646440683169287661615060508138463194151162025779078630718012311594586038965625265542233462344545073947886902681594975131168851436945210216883190446168629763325229863851818850049286935727647668238555646365544964006317648285575785866610228551564859908820958689444362546986795238226861159699100563660829267915337538160661122478695313261585318717638859893779291889029987938798100036973078489592706254104848593158543233956831042390299070263443797875691855434089764407601308444819786265079476440830134942435834281885915259293471436317533749589701072873501270788980481635045676667693207553051840432446100740321676471836083708475065126930707660849825299000317850305853682139512735038638246056425103377755809864643398017186208142663074172592226000511091342681074670129014301654101064933212283790827515001003530015654597508323772965439697382047741626571065740821649960626227496187953347907065988974871779564334064841745645747906925170149499810095353413548908754836327579522407206986291024671703579251441766703886609906985726260581240825336225218992000418975745765315123000064445715931701771688635483333051921582055946117357716321132233931965320386199005116178171334001070576652689919708169202219464704323795356411866063920558609034457064151797782145054722278852987210197858846070047420028468873795844228949974333656271877991721137916164492541329715652879529532639759538535920950138633380507561369530899547584883024261962758985941513780515805025767540401785795852448831172105089277089227273431973823884687307168230248788688585510108073522781405371406520758107270848167263977098731455162646911423286103036932984330300323676162714264067587806731883971515002798163374779078775038307986759404591073921034587404219617034925808189907205961291586420202885734009114955238865107911371495334639763988183948804530075074740372280936820535430494951948332833470075161979008687285439962981575605891637624723069162871111137676086480323752459664930411753946136464337804671165055504670671836221285795048067165630427626711429999113487698447050370637900181096888629721757951732433802780617470496302042492916619171886243355599282093243919445711886321556320161654247055375938696624656334121541014032286990930159132885808831241242882876373872742838038590710292748633351503090445328052597795658920554562434297982794134891756382400771612173324736428540160610044337641457220785921715591401037832020132133833096380778904095723810558829392796374381660686835195059277019515361601722158904287856784820682919441698718192862730827044416303962547130532843883379133747687358261221162583602728961624559041896770247453827583966522993712351630489833012421417455788591594256059792427721819908556279848605617453684478923796907975594555154646853163024462325674034895845462256744858202042457391994253094264224504202689038150152683602412559807597523648162809304891274615119623154611400822056396780658535407668688227542650381225999162076017089556747446524234452017661650325945665912966786324621379919222961458671422482492880647680321086477994100410060033906792752373625460277429600734788038356687522003482457694908456862696057715701919174892260635208129738797443835483286136939562450392976805783223402171676555917766840375723484409461762931288492689936871389838822271060279037990019045583360079739277410926655739233147025909233890654388422351324115388018559234956139930223919645050450369352927011566305153351918641864823442499919272027295345959906304872360804159576002966812111683172366038110542803591445720248256456105714055462420821343520948108417158289572445072063546816002305120140848054358742526171017681853883557558717415424775449772221419261315525269109175563331932322243218525422182729149159810583689702503522813002141192486014248068079753699647771939490680468355280834732761030604940973309169031678309793463661183278453186871646268073883365670456601042376850580139507443647963922284112697945134773004924987864965636794909929132712528977651918175427962806084932375520815361113240339713165504391887960198382138585000773242461778849187581459642642337889793330819488160040113126525635693244659398400636890315254722923991414474377069633893576192603918924793631780083102611419548543605157787160049557886565797066588551042882466363057207778902266777042512681571979533225107638903681976284402861025880539233932947467202408854127649238644760216116262082421299166036229918492378223630098347811952291382184732634228575912097980547828525059183798336801787411242644746002256241498069140074097972102327853957561512834580616541111792671042799057939449713494632895045651286884784187175802050458328387485313736911351025506201027753458094391050010218339732456504728894768792989259450198750767122363791875864720121496606115128048709648863056228440839369443872169212084920085155838125107074195518720809374694245973117281172105192890389637039423577686212766821093182763664984042124938144097959863114225436483965499983479084307021764385554351257436828228153032222380834767951113557014806318200453220723794891863572149106242526993994671015366846234105153338142684770627585203524099207972086991453730109551641503317628200196916411546026820723669255275141842996992053985343307306805737238050416719722112737405078927266340638850686734458560773266648384578027718911475801323105519878413365218519071460681389868867103147598264611293795439526672867275994833590259744587868768496462683484434414135917714587766088077845357183932937193739323640835633757668846821111799350554102085561884901020160050563954168745108220603555410817666460524124966224422804545243216032036019464135609792001959024049792923673298924553990101980112140290868699920575891777188074146122205024728585715367530747814389730571787268366360157613610077228631963885264623512553807731945956356796538236249992655180433079635962110674552852142902629498265675533527310046878865731047246649332656792733134512295505918623293739332608607745135077530901574443829487339779605322849358301361837958626480321297368474817516476913662110360369509106666505171711508278200932788358722598394046306837631811808904423626219988123682680785795262197216687201745517472627818032683058548803970977047934831035439855907843552776676033139884605271503138856332467688927104595851932895139167823857735772658100479825639355193520055204080028705967824973937478860528356493591497838037796496000521244583477900175604246586665199807702883943851638095504304921960324436090340085174660429627430976838715194598264473594023424821104475729111777958773134155360952759570898612586771456252399450075938020609355024892008476733229308574222255020645569023912654366357852427242905605320575403082101451238209021746697579765347517250146583747884808053773515042222404295760361375432486199655891939220504699982106293160967565179075132296077785755331026585842576086686764535520927748275567545177169950878941180593630524994496701237598006553499873966639539441701705969810151271933311840767923271853953980976404852784674387231643291002906549530861283330266400758012961849920702200255597215695758837616878436434679275586357397225356488413306011928957464280935785808113233143311528748217976603971257952890036407198923328131611640416937736628013259738222237426818917648959642270338039059295964969648213311447316676504197678110849096646942571706945700787126401448652242846948897617256746535220506162107300101926248314682120355169950152200731638400413203033324231216708268546893175843663043078435078592810447849266395265239871864417338008568169232134742975458326940216125333283790096064862778549412667951367404587741694559614076265662502990069226726787603658713793279604184883939339346926354341548095183623323317522937035210291464133127520371171667548720634738923293785107290295144629274154676194794274716691603049782928896147458702649979707920638724082502300642554499590401197410853516784440901880646293748354439614400353523310304041178457228902958180581032123743825898702747370401068377771592512645357065083009214792583498924751274536220061058545759973693135297078143742841340551954446721489415057452839171603715453082525558343202512542416624457524562964457910769717152147095185055003550543906316882581057850746356562047914667680556984384552027709969719889807233714869563567031776877637897432734928293439051455670607446079704769316462781214171381827437856146219708808702106421105737785147135883737738824076528045191427137488110559744718310093937519765980210024101251123081368260338474491087716132285766026393884928495989823656572720426357202637482564949491262914191713064628059566982549360326132019252804346170439028926027993140436137026582012131285148815857311178210413103357288871817295262711200081475064026830464189887697478791731737038139991888242416994212152776045185956711909418073734793310997092831554681656395271010461137625406644958618385463898220899677832955011143149959368039822230371363295742321735744647342109741491743641994731958840052638726959231836423254918455955045343778467094704509594201202114220864191279049359945213739248711074323149511380429379365543637217263481907571135312709307952729522112479531498969908089466574769556512436056114200866399056099000380302506124236077503293413472890501316772809713162683495963409292243031195084878867103533520023712730202916592975252657039210421496349523857085605723434621576956985134068304548331545907536471146996824209102321431171769227738534770417794076441001301048596092707211320523185382227444870243327103987811479127546080836115687792151311310450083663631007517511025900280864277150209627136623974010752884454683316182115027892643072976355761055112462033248005310599511150543148482955343295983057427245173788652719300073232173623758732731489091094553740270481185557199051683938745352067970859211896407854895041094056996598871598863362077955045219321563361246853031747054439402941829263552401554523160986825531389701880153970459625016917966481250155593231148267300563383579726032860177847414960045697257834956205873287301245145557634523029864814954410090788352980120701265410952518460666201767420452573679946907719084537874820608029048251670176619820730618331239219353569004070521549893903446593880904750772416954365185807506649045944318886297872357160302248135220460109063521450828063974927551284769435499620339916448879197437902095718886320024750207910237907307296374632633667459427556378453569136734552401489712590948036856628232100500394007310663207525728314711519263328928520696723934717509829526021254947643301953574383509258283111339115390633766173730772363027988986998579945016592376906754883798892940060516282614004815046948281403308391643424865093963545890913280595111633455036563482451915058317949808318272813479505077271733594966337188214919283787116463903566925779942457394355473044935559396848032790208614196815082606481092468854338332986639074547805263629161562798803187828270745163032786390756653362197506322424864576945975359667320060389826293000076125149479800895671245256955982758548576901246368659494224227727177151849641751071598416357207241224371968067203927064789427894217128426413342711831847944133460647243141150155098551171241466824331235206284065722692606904747919644729752832274956981963277872816259540120205380732958250049744593080978240952991296542331849879880077168163198608651208831586725650659441406184468374963189291374599342160348482288315828973094216147368925585169927155311558888760072170341024458744020844342827300467309795555666811501300338889583802314643138290026007632285034758307808788951803139810207627889851743534782251208467594974300244378958428956807526632036276962994601808349419949127065591308400058626563996391104068510412820071532462564263714563557576945284927112635577196325065896545536482125459263355257292595281499341587877651569223119151023373440716991656476398200089698462984399775938539811213321810328198969945792617649358297483733877523528594640351382382306269453634581003193672502069828073843334117528315731434263989641634712705303477569915580031181591809113788026883854757697292339888286032302997704306662886955301210272705763395989768941024996847949816842011992561348075644040655946238370872368881254894914879487348086141681055211400184551700844448429484755073273664282722206336582401745498808291301883914015680905000084954657373000327477972099175074617859515799532022372852359204007425152256386166756203188398117618611960221628474319079702503674592828046781785366473935600354038278281845766947823374571138221219326167295010427069409520265028052289859093500239449087456262053452217311940957783019536051850385496140621825306182036518273370621119893902448897538635818099449181578487833652886543654224830202789241704968965110417275947501781226785814391748649424357300909171264877160595920974458114629554223100220085120522589764778114827039426776664278274625939511743807198618722265586504030028469146927864680031836034638172640570270742262034297187555809938687124046562233389146465830554301315509528510972630050805188265272685335372937338569182693717167730316118647494810424215127915910146065697953331337740959367493264414637024275245393350301309928336485407069840343991212452492755802997988240920664464042585966200888741916498773027540372920421581093781471313622628866669454742124495528490914921933719362340294337125575569988652966236450353519202677763794248208286056893623152152317885014521313214914698685483594470686585010981314205892676416115162109405356780736810089734245872932705210853572676380564228840929665884477795279546710735193295474713015079220840328232204428944678218396547110902117340725139724757357008555312743219996751259582568063235880883884366203262266191414934740436498000247398332092411838667429609269460701418388178110714282439657796388439864782313715424989472583041145149526872423618996763058816820846327437441210390552765218710735564525713360114558045585684558650432859917676519619327114349866540777451450047307271171479571222757201812886446440777517460328242317338533765298981044232240467724632047951798097157602580088576897513405948054826877288477629384645496040270370508539419092769937066804551719416040376351180185513657545109524703460226002074174282384948178225490636599208474903758320574467795910675566064077500934712981700581876940802799269046059498721176341519148822518670439557310017937100046657292180372848797971569227888839704198254565706428908985827958625659901375968750078569853420944399597152366767355991155709006141301885395600693305082611578831597901882912877765396964067539208084858229047556190518637549059417647208090848523929966365377746870985680142361370763704674236180292186795924769777652926292904179839275053432943384476533398501228283627985150263745427966717714841975733906572871543054321575235449320534653754238204844850884634590853386677292538520444984413136863751894117684862613603681937363513393254080685226921474307329134467625293226408453308449386471515618139413634350364817794755097633925598827869036963238633034257944529229237752032874489020040532668139354752855017464531717214599508145561364692526650227115337381817597855795041988075485811336289154900903908060775415757361373755988018757307536248737001291223826113438103923437231353689889153374949378632498494176428141704528408296939917243232867725641504837657731144933521553852300178110827616363037090205259503779092534110470570046565251977925679331410886632640592623178893126031528575871642421190333798725775874290129037593626972723431489357257241883794186276864566775868692027601439805016387143520477673880900578928363381779738845734410014996643323582225792535171105948560789182401521998285226946509587631492471279520164467647402704689545435103069826179991402234072854891546806842095743207506621154487626644675798636443880232586360886918759442271521429650664161384963815027972173071265920578266002784718140034209265693070309044570245964675764901852781393148131509203641049845969060225314474822945707025270436304061114455142227669366501254252372074394018277525089414329152151705997454593125946821214351062276330331850433948895127672063729151249368193570319104693572905276288768782500485054800597323075326522779255241991315961791152206941968547918734156699781096702562993993208164507174173490564339865219986639055709352119852439067986150214486239284387398201876022854712303949459661572587509650320071247665759381372124801134153550616754720369579105597461067112541711745369543014719141993731972279716902116135726252431164722893666441426212438549813623694963571282116036854416071082317751078012983042538141908922492085953646108213956481132053160737077720760559934981503424064077512331512158999246297497845474385785595227089267102479199199645043040166005621762962340149282181611520504643814051201017632797902693271222701259270816304579408695938850308858577776769880577120277461858372818585997017721116037109827393241471979376638648431600084157927253061164085015150016520300200142743376390418788622635274702258984849469077694747613276391052599405660382382371636943555470658174827307182474182726362724046239944028444473642458644475104690299765267497344356985708539057819159958599609675061283091019474886565075126139713632927641583491304208300950851100414074557443784927898576072610576974181963369679075518838322017344376439805368296268732851893953081597213840998753657746635493253113936255978954300091191426740753859254969015797341918371040169991790094567835962857322447147907320456964719786315490862841233325174812784828809848761022100974278347516462790553938519668895696510876062872957459088920170238672074010602453894151954739328142466223126892362650272056402643021776903189555520611271146314671703891577339006545286923272080811157875737499103532444669361653517522124688660805939738054689486755602588706871030811898922024217495293458219535300991561355360731590956734699069924874268001953821752462105349862701061321590757260240804300827868356293198384271052198354727511764233027995892687273053118355805687527612409197424447633568095687484441045467028352365141527656270080436309747745376780982087349803849825992488106702977549495352282995165465598506874283176285208571961393797828505779014996232139220462341524168238038894466242673730018965433764765036341251828509512088864856294714398779566559280749164896256218592671541469217676839605450082164216260561064231444357982306919657804705747148460072968182372287977560496089158178686729363237902415792047283646970210313975180097841598550007055364938753212574961674875872583259925957615074339186228437988301346044540880817809685491194541193470268965059919860410997653211196581062966550051161836517062029288087760914984616731644268641970892306484630567545738872024760165257760852937721093358445387107402729259191524626762353817978693064215340131633701135735635111098141821129662210736726269615672674830775248874448416766573702400485083937025583859101226694835806839154547916601645691486305239359779324467255886717416048550387114903176075537321944728305822191558078807524536969327446017473605242058646968697577061218677619720587491045165142715495423853920232526975123495465463090613294600566507283098728033873735155375223563183570253700649409263808031737463485403611466000484687624231089472379165007451797052486284672766337551730368736838564403704980661790920083171078821049818331552614850537354075035108223939247445630109692042278844737169688950911185736926890336659718522537770329622016708106551812675800940852515068477579219138932138092869611953122090503801810765874883683178827814252786261879667606821977039093260067296151275571252786437069898354444096139173790354548518040397333137480523587910955583040481534804539187854038243236907304310274062641777762657301034703384021129669084818046162496487394734584412155302581522214994582224994194195472564103175021144228086523028022134240931939327276781959906081125986239673394589896190716797777802595116314775762640285882625148158216439944135061960811758904619511585390826133549603880323713522245169681180597512189590028591797390866524495280407827130270045377437267855532504850397463757394646098408565893018482234161498658315034660821862236058019481145549035154742662660612950268784097547798140726823956931472487609828034508118938340409615343148630112486764653154787584549465222275318773560890835043837081120882441759938586466309397048117253004020305813409044745051156377054103501416686191248525269493348297851018111472329874045396127540222219095844050872306623268888497042234567000119497518597964940991489713853622794588740760990432854228127730581830402494510870633698694686740089481097539710090849476830410711529550638887652490545659994260773886347394552511448972036104793757254472396602354774812749416069835101314764023641949146105980556375704465155667123652568282701574452847602207817539723371640969862649205576687615644577446446649254773467297255570538828590789231759706768639824966294555601938731527103627201242931201764252246448031819544683337639946131383614457041608883422253715587835807016115602717754142472333152781356694009898004445823899842006407489589238923892752289147329455312404247755208380523795101239384358587754549990012720682866599985790984293038460073296238426290797218233372747669464015269204881430422739438838386988072365034008809524512726001361525704157749789546427459286696216415427519072078965765676204708762910259298887712834058061317182068879509627355230802280366588530930270461940061446449186278566424494208162102038327611169622442138639731157130118991853169915158165025834281284874149275360507355014927516496556894986881445782807241540090116176936589862811374592790322578489093397688160867085700299534572157942098099722053214575142715411220939886987456280116533207925455196985191038428157268351201092367995242906867995456830838859301366721852113536417244228370492060364815444971779988618739061970126506684370640425124459951909006226082179845415139874086156189246593084402747014710167254716016686017397691997662011119989301553540628177813282386798739883185480936514175269040502739923269532293931036045698425205947108776022321016774679279356253076833772206929809952133275493410764068293696256538097982992215020076190656713323330719175311095376967431445827047452191856565617305618532166042594645538561688375993453276738278878122231537281113417355451707355320827604407745254423078545374811259665463557459604327036854215738696224447960925936750083098914000685383635881778748642710688257878740799283418251977140842230489497915517987678274684754084928993864763498391753924459329312913808073876500505220066666272734384454049896801183432553499976250119217678755809806723324167826178257089116301798088195583791075401180509621601093080422570180549297646784115387691430708824753121723137940372365928771043455446962665999926233933298641137100126804081160276969402287136507298106445252016551733860468650406212924578927147227426763861426823676408516411947662651437101393855680642700778296596804860775179492212156291738671635464988985383575153249743158354139913221365051551384109030902755433236441202253007704282111471419181475709618331378229434207254341031555828186693283866836607269163836967793201021420290468133704915343805924654711497083540122724100650394974216418866922744736899506252894502777189894691329634675858792642352116335464746864260548561315778403611431490269544275056480384788879432956556048443391840602027045146827824231514065070221048519592072312004933717673835237093088565264344841946773453824132968854306302477825543502819595717543326873583172827933774101026347172525800055108998087920427447783853642749720654309224796057214003306615979398156970613660983964055202876699917225472402063960609642994542705915460007353673154988077390830015813351603573011111410928015412280666670587855509270333850098311567628516164924255092928303908770988934946072349028658560205422067037156804635003826052763710823986597931848309367641656360790706605233434111377931216120205880951461437739476835388395047212945283498654808648378850194676769456232670199871331845545348373608451276718005678754235887195105895652797804537834484650468146951677538136951845103083239037496571621433079638601544816144955239351112121894430238269540578601164673736647956520658725081592753057131343835699200489996180432549502052195550206179277993056424583665872167535192817503344992391833256236162650208149035578612440518344040381599135827173843373404529744999640599186566641535612424308001626179337509214296580882832219570578431716979462845513309683824600036989961805929879506603760712432725597536508820386360958809040038001760475078669744332587723215438325998399864395011449541507700972822653695839438085091284110416290966370127424988176163441016674234005068361676482327103889422394820253086967222925243407506026512988576358781375008510056886874328274718732324289847733542581504162589550238544890684967676489282970728115843511676077617260489135585109814789508429849836055936593710532020599790443697353401662876453206371886938218978015732190762998103612568387648387269853601294481607317618658066805968373389411982650087326242669600240908832076226117839991574402105842789845063036014199339283624554027683509989720421859620902016210156519223584211948820209123783927557185605541656205455347196978661235058348962821286082084034973119988107725904545863376610850509582385030751284259642859749471596754259240349558609796434019664667217572372370707851846466383706717029954169832988691247281876802738125496293898760722340846570950989432016548760479339467946851343732630392230933179068730316994180074048000687251365978579585994780199496523427286889887178135161715505778391587138640405789565918232137081400587138088365230471671271822006018608811257260339862403542067521276908921081552260329300444101890637236591957119530302882485868478256488300525181260810354213518122471584004627510592444870583709540835318975215236103420408450764137674234730058822034323160474633043506281423210829487240902594764411891032233740497947408578277622048261821951428217981124372676625846895195106998673740227323002602615059706421527460232699949700615823592828222978328684019972903653781681600288411730673324496628384032435365041397536205509105219749095799860595726941384024267555967486377429308583140664803184453153290815321549434582880442937355680052766701800094788733588609136494945838526892791365594342881741864555941029617929958126080970645474650902342618403450108124033539000610734694120978386716277216137083614515110500772011704214057510295511491370255453350206814116524476917845869435403411879135071947286833389662476101183017004972618956118398981605390920089117277245282732995868083801073781314001876067250126926454645097673374700236767820135235673242624788804823436290099963301097657305710745086213218779682807434398964835524271448757305830321802494521092319912041786298321106456189823450495054397161803039568512653801492251694878479554724186382786275823278212993978207428675547109249821824468614795808140835500466875596261579061717590219271869723784547241129855757317937479535182955842991336928140588480421571538074685311302335494627214184400563239744587537727518071466016570650353750000780005476100367863699111323985862132218224624643435010363223985967017289928425234113154343262930390735953429144139338742821872148418613127907162685826684720595466403565113327927292836704215333378156489787872434723165771081189058811592205341344776752129774635506551109801811454708921701244106349239492424226738349439407865465836386859700260199154168385586155789670127220023220031686195419702892475742166676680152480824022111156190982909528829342278406490395339672008649956965447075211846134340977857777364263165869169876274954188683133247514531590023354409517149140813592731911461920067757921585633107612547070933961164415088007272939456368492532718589155168814720960114154056640038921028118648545950411900558007928394716199676003018770007299166134878103899189799277933082603333383340579193386012599266354350647100912606346252385743463526847492979065780017287665968256219468541077987421844550471048251138993654279944593202443898985134425672669327861329504851702042670416810423988787766282835019312545495101087037669638120603127617996218893187778305204501948120474270520457321254873390393028668085392898551453951830701677372533915679276903907336248590343351476117870517797664710107502450768161655725395482009480911058631732989175311841603640219503463573219594755860083208292675123788495516672506492207206097412031293135743537452185545498302580415651798622780164689374817239713381123695363735811057393910536917973929343197751880325243525860808275537409997210154008004697992794342234544768970758031314906549976457271996996280332692090891558381760321398926448802376910082742090668080043739925045412236849719409774670467316737887852049416564473707132543728313954096231813376473848894121827756876058275472115348406411192866091980614228229552490758852587114072134140163523811998912747789131397574682809342472823110218984300702443999642906444508447880276686539463578359786330143574307385522480118057855163003059480351702305291761937668044897455190062298141740225468793859809142285837449414294668405678447862996873037366863397510139100798455883197189398404205851783126255609907516425666609144857660683679374480652972403709933396292834348332661041368713447259629441715366168325692987460751934900436754871245012517388228959426432206171837705951665664903889623415903428365924676238921543162109473965009869257089507504114157819718945799485168292399767685260590940847692555560320947301798892618229473834688688478774214747821124629005048761624209757229517860733959886964186053995691274261105379964864827288214729865447937270511431036415399504302492489038987190473804812173705725663713465147154131222056319569952971074484542325785409319607037480624328873057403741431323821583556267142756875575513618201917633010862837972585511567417230504719060873616277083262964429580482797563630823764361615455540616980045819644670667810243347845988069248477274895298262045169437003711201912953531129197138017595577974532179706899810786979967116140647258355731385280378144794618645821634745203985589751231713640797468385145592041450052177212291446699278647652010036539788997094195677954229000414384548714348852855651763080299251676444247682186490621512191723425686851600605859780896623668832012839653122703074654818211999482253881430040168114450362116720244462048282967776160165637897576349795548725510809105781339420347277448474876989841921828085630416492602991762303626322504418296296521543856287607037421868140047386309450159109132542103032561351107575582873478656260809325645074346337233422408558581633853715306945878269202052395067272475369001398011496431659458297164868632204841795219642449832794880631346462010891393287053134556150378876921145927268505146771355995890632238650764778282690168036013061708569828863363533982166411661335548040370382100344583808150558303401797120822493909503856609585571395374634762832404217519342656686392559177433783255482070386105633012623762876981734728224250946153189070215082050421810397748940765721499083247852854595100246795973930841106272522541569649389236827358143460772759803346264312598278889441818491738026870449603886707186477083156478758911780354308201318656582034354073422928347455769651498683915039761412613360789480997559164824906255168553679482474050984649608568188917203699873757964398001165295270277237226019357555720232631014768692847626362851893048492690926409854724936481814128316893832831257956621359883554452066740895840923148625755911051962200050308020425737002899660124136355648802803399956946560958857632199260300046853975598028765558317107063997506660476148677763563226116127152242671096736184025291082552446153885776660277960808983028370687781398492381254517178987577906769165132460310875518147960012167620168554361388753511114464644596594898628685003842938167759796191272999045913439604283622782145743849108066267372039815968331145831327755737193964762139470369487134483796533672088650760949443106748938628101668608093548762040629531426836790162232434421625009619198865282501847807500930929896168789351440485278448521019497293149122933664283836109583591179266973210503286586371961913064985733208661524319891775175613307253369060628944014036246735791686124190767973072153896099260914778003921829096605678051574245394812705158278656086176628088767548528264353457929751091037432431480490509972013400938712099679922667327456972199757397498352955663444532434557032626027829313689388962967691490051117916415739641516223459624143879984997239721062591045242665562829601459679012861764153524786433047855814962571113956032515036318374506194258790732974799065403378129323435496477095994159702169181036814733833330641513877132215173398409381746568333237521245212042635149480179573706485748255881296241114146469266177478173860156155696776808063542808133926222268057358604395739162738771435084847701866265316974888647386824309419601892875891202138727709615384880950656532073442058984978568214481099344327143794129234072975479326476182962040361443641127465240436917542835856614059594332610091323144864164204976494795520171710865170698122416084821707217101649482479807749180166663180760457163952518386095827183272086570529825589266492312740506731234877203497799829560941063603051658168190384801114703042390182045758372731652085922539947510938900121122194266654459086779269137115495078966657667654609628827777519957055450729792366620852350781689434003204754374040076217990918813510949939669431342798599215806292704213826756214353405924672023502064258541096859551282959888016794748534882762322608988214260279669494883399735380911531026157275260615166467574723112673113045630210164427562827821914879246698975320978326529216825843304790854783365426975843307795571952000101207872401988134949844384367638270411742100369511690111801683269994661201008605320941579019288976139784035165111599346420444148276820545506341848306161979946027048964895243897025843417177319031533093214798054202089619512507592936490162781474077322477257322019135045680559997856927754305465787984285946840858678413411453824124072065675598264826257619030338341742518485385403847037100690876508085350864021762101015672829143567367711035116439783634404283023478073545669143817704745089458721178783915416653092472697951952686392823300371685067876207877548178391081973218290478799329139607887417683308186531819994065979267822132271345963247140952946307619739674998463493636097580672536615518078598145349535821601480260233176252015063663993913514287751153532124112251505706572311520853765028432210158406189825700470439171864907241208917145612024917300437993499942065866379857873460604806192281194643315629256867108796971234962364061937388112180207379159818010975908011327225784300250111378803495792043918992883005162429217600337641079337196813319206758299182607848524757117752420168349348194140053916463935218273710489150036580479259761583436513553494384319150921462930819950183591670942530265403298032496761584396347114353247143703922148617843828261138668855215984613445058033026369143941743559917537871666881400452968934351987652723008458465501565659895211301104852881693941568670635178319221855955305000298648325444774777199550165082658896713964088988056795806691606580609404851392801022276976156138260831907603324548465286614649429483966773300807073200675104262514142962447145368750970687850660059394026518778610327654702806325729906196897591887386672305110123794932925976495748262551959273944717640092556185211857724430888945893130457097527258670714556514236034181989031519545721886211491710345305965784508261868074364977358317577008647587996432274454895007809667119616215136769508530892336123866628348110293980460743553427272442810490328075676700337727112094912843448745081356882215603305043883517541081483037534434208412208168360581326234576775427931619860454305044485105558004116794337671320558147058727208825360473106496793184796373527884478852058731828660065633493256023590888983537772507970200505414402105594610720764924409136337227897399466397512341178836631250900614162322765702854104850679744981271814676430841410300237525653730495276727548454599978716332533105061902402151814681001465126285103975983941288236986211318315247764967957774419133239479855287165302319986980239839847319817881713331034433989083795800005131965345233833901090970444714347942650262857403151815203546507282311838519865802936213522437975431938019834329143125027577667543168698886028656770135003725896964458686834176473878390665444218192358577310787002319174454287141600302682837240494643603478769035733261881143101081321885527985897303450534403303722769151404531823618783217199889890550829089662419765855980578341428737306480985290782145941126494992196511361256777307699460580206407239180866900201756956417595527211359337589791160475982315587253564456825714374658566889820373705497045290715846973763555870609280120176978053293579678380795022792200105201676898873254108389319250907174288810810708623207551018480041769696826290392399839381162366384787130819320185559267865898070985022953739494217542469625354704395473241339247648521037611777311231385001618713047106477839324875850063619911967787753268071392468984403882659360510854652369222619272403499121038316226297241144083556868049980746048371359252075390170144693739164092864863919053757393294556536775435632948953085479197356181168943469443443643030871444254910609829482881581159563562993377947392209785110406721664480320531067091303759488434578734398473707653747404793080903438244339705830532695856299847938304808177975089019323978819644747281348548648563997367907690393025212859195095945330313797518529818662620117612609532139263391827182563275830591189372106915776438388722784228529009122612514080523150812027262477370667161537297962365171711830918171522805265375933737558128234864296932266784713386959887691580950811504993633735690590084289200705482525461768954164710778011758607143286624044830552364259377579855244869608072673059076502488514081476189179998962929079540606916509862750703309100886611993183653478110689500553232123231040994315669757128432110589272907562665298306834612688174350276344573487313081278785396682594804502445089945385062622281565720665625908071060090719474158064342896173131515706055811399896076568427723954812062465492792246644108673930170526784065224750410536043235086881525438218840578152295198789560649956069827453289227327038537584520927092429466734689593377789658067695128590449057399130794876253979899894685344867084276328476440980465348855120943606428893738371053515595879507510368199958600924794052205154880777749983061313790264128273715757106128173624978364745020722775619521267432735816854961196988825831126166950522240218811466930625749538470869958657459988789278684738719864383790480463746222816126871276345113094783166175997075950853325746028493740010436450345565804494429503453183381290785088833385837869771084982066510206279570766983344517793452718037691141020755747743154293290326295321149788262035159874125464228843952777954992895647543471058985851590055084900569690369399463805412744078272079588120610950182666750528291004286440115969091560260245872117456045510940768469797368274814597904045521904841801154566347833534380881534140372398178819077576306472338368480766171878875254440731865830501186475632030171398339007898754244110262777492594557872631516087487025048062038162606284156754299711008457236079436838831775697116071774760197736299860847092256124190334430386806075160778365027891666283609317675969553014936812797935466652393898654922082126132776378982029467995816243987059362391705117507050493924429371228752072100479003695203530541747026881003131427531174456246407354520013033515441611612845306363822062031827141203471057333057060956104199977441294378972333619529368071162946497417467460616194428419577150642124491154067073122138420641412696715456643891594717779694935195834684336783221413037431073429174373437635441590737738077683355454522041607558324500141271289974101494705488647243415899129609228298624074551605891496310210005958713471920979723983683128011017526431868611183517017358675406492657915137405821629724201883751029772027692280780173235365852486610373552463605197417587182349087381977451996041351604688086082725590610482822257576746358191662903439070547597034809044004304333317413461423454127456779872589232409091510873059202427900149673701513477215142571480238781897278909931923211885180400304976289387311988687633977056903190741451762975055829507905515712897726034354672225187519472277750347806298881580276408830585887321140899356256544526325626293042854399332825503295028936990777054902947079622008390293221444112657382089568543447852253558437312693375479376599430699100569908215603145081988649438948867959773652023776380526949555871454270658517474445964682352694105685193373700491448623760659795743742949313762849542374769629842362040406990322328625482822335420165228291288443421575127060202153831784521856484115066939436436446339032946286921500120033173722315945993702440466546440107095463778627366769045642599775860341423376275925853631264370897307579552699685031320690918306791326542030640031482455986239265759757317759128625308946541251662284071633701497902673843253016190101372978864695403425694557263052203876294232648064996238163085500312651680544788556819973108967957554426839220485130919026882403377120177863986046398002560372060692953460153673513009351664904759969041534844228406494643578396273959796970119995996897055007139802671431539123914611613581834068087605346672553050422397928096566221091111847789650335190031281930814047064787403671555521140340703039890722323391594235126529717112144915912874696964544557092280434733841013858874280507251493201836765498654426190687675030397956939024213437475259202844493707032198240950852874392941278159586475430366953365464650438122955385696018708146303600068102231935356775884221706627177875228953937497394498460688195899260579042663242818188329768257087830890164354054641753677975214014916981613499304491042042741729907318379698513124559586063991996596689961080050494007296397098959517574634950113152395405436384247715767305796899780935112310127000606831560134705616884208186210590658438546853522653099408095506864518196431045500569852864036972272644964072209107280506565175900536331942571882619016852091109444623049387276226013009665098018150216116189314991755448664845101939640892424535185862966853588072370252086290396375135442408416767961062540774535439718720220389829258815048817462632144019324591263846776453878214900321873605288401615814676934097243424966959679745512952152475413003838241759677554225154868903498467584610663159419881211797133452509275307014085614263503015271473708797902296635683001787990288084193893922491884489117670080380387588878016977011134533491153480210658508757002551736325688200975955274871225357182551697875315095569086898546483794843035187061492313573402963136527912761526230610431409239565352297493261018023574144940020107575292488958929324580351889348336232266211070472227951789643113533222151331112813026996570565423666607124273606758337678351910125109944370304629076346614964495599673032125852284006812886320601384391535239320911579060473413936297323492759180894233656526093948313364810290643586311830825965878597847150234490787476787995667424852051040103999757103940220630691734742020896991756005288898736759396629367401720982195418337128233932862477317196438625665314551269922236776677708198643496799841526045194640459016395789604927913929104349027568381726840470522981408906713149152625044175452710112357868012989368284933913963833660781422917945543449168097066491318845378120257962155232128839888294830960254154515830155645623132845031741857697997991078955656799608252916553758612233838070069219579639419837426117676769100507357501471041273917783596347944115924160740964918923864162314431509843379999957412386084556879065017966046590401190093106491459764550874416917093615978054671746589930170413753904682544419849306977396303361433004032263704413884245648531960009102403591486043419567188919858561565546577508901443177712861645686219001284594607421607429571045831400462012463901102101932368874623187463906390518460908247466122225868317169890636064025404893508750600193538323584777977777184156692711224004455167705419310730388369438797889046242175900466660910401636227006450671672563298135619169577585613333903982775996522509904038709327898622159549437997063064807096494177080058122705593309162118440046358937856324358641910615400682047879016214044578771739810295260717300099121797113754243334882266618671805934535003597940626101694558948798528738239461925927383005865786236901271929638265926393781959687776344919278138391527346851031712835011677541289696340176336880334761324250065479448355160024231256646080107867025860376099390800451756260090655554130984042735743005006687743313528206170729903389370532225467004205889640465239361428307918540416966678324070955958770942320094156109555343344349138543884086108248624289859619741256571704240067876712368593537227109156704060621943472602040994139547201317552449158345944274919192913502355834404187206974345886053833701858976572062254668638991474061713844091114054244489241812528058737844437599033702714432320785204641931475594758314291941697190629769790449882130801925875904858757010280498900927646674318174193127387987919086670564601741410451836547363921120183127264213529907507531674186041139085079174044172658009288966400350856182993724721368434131495692957040198130016060875412795746641903179733259392402107416767024235351742211828571516183297681422260730902963694871330880778555666323972833422527065650730725189030903950229751455450814134444281654143644104921750622706436286101757171120483665814970582463578007550456264537446280525932841567885798506901058045279756262857220830478354366813133031723323813526470752577952330152891663952865431899957317457801678267281460222640381899566937994842421098248974200882331114001341044095160930831309054655031595551547397748022146240676110527161375799862835439696657835524567007936049751876795850043478594444834874734552599963239258820104452878957672333911085208137994842347153189526128187510890512135465496924606655767345185717740511398090050749322800709405692065544287992897680913853288239231274264963790719799785249090304609585020328130118819189798753861277050983112679686721178100609428860334160740802044853244141445794547210546989291664998194159975081170839975855253125347930707237719482373833676065541850211333735753571160498408863069626498901511556298277922304333498449367839151985626850432520084479855462969126299788313029363064633704503315526375204047392241570728577799880296353289006984007678189697563540217661942944247537256498457226550678735909340572389793781914608031982711392480497941100492298143175949919931032808979574725337681460617454331326448924803701346264266926317342443574270517747565067556341333600591783137637375920389020426517169186542244841360946598636267754333221729097280677212181229450177664232716733109192752337724245059080858927565564344115484438889532132702856054060064352403401177439426383149269420366767731249233446046152792228711747373206820737950407753807024875139736974872208079418362724579267158605875684373825696601528845015936360579976487955466689796317276414458267140983930260584443731183219527357824299238053046097925321759529437646696717859956554797526010481116090019255987703160369289053546421969361790098547207855125725975325768780341842823941930116764712780200132449054170687194060874864250992490041243777990256723623875213448754686801805700267716590457174167509358537466327846614717022291277538164893581403754204131631796620462601683005835840278084250847061028563214676349216441559656539951244111527225209885576318078808628374443953733638662891394399045918693562979931691320743108491238782696708173798380276007328352371305703835388120192178074557053921312504821976693406394280234533509698054521919641649696642051922322293325224980990680943829860823933868677395445267363219444015986590406652867020651004940978671302450896050636311474978975431863273763793202279530010877176844026182180038590906077029345978640932969511233853261494565585967711754424619462086741789881434778027023789183865475073672507012316459542104230368253015499272923049706500688744552908893664655148193848056374554470319717186422720965870630049834366571830309458525285629892546132607901723746233601382089476404721767102107836353063283918528942630970835241842688066639724543519498745949527236882351106475938370531361494523326299006061354420207900800784435918514238109540624635928800749174723260142829150664735646949149075313040411948746127584251725422993376561913228344136159688451230509792290809347780610001202430793367546069567188678475890291671628151047910984819968795053757476103438392892981834755913533728342888492285393965950164594229684902163576984603656667706884979061493789586623897851395030195525207115947916243038057133910441235127977174258949971813208993972409457630504381765420237749372929236666408582635630470188942847136621796280779475814106472039686900573358837832383938515643676929109532126309530237234188776377595132558571988684156351143465444921346183625820017739111963565973620917480289510711911931216161504935661400198915406771914740604502008489007852104489840715587249131814241237453147390958592854919261955127528154045555489486053043951830551638652963511435855426789578843322470303223984629694037003638667059755189622821668494721551679940102372605276192061750456049663717076263845953005334443878994432854366301464142075150267652998714841483859242046843515052858926483541295999641906383622255006162029851790807999551716142892743322162806963512162902965050345455980024292038066113122499875748777814543334957813655800830045879054556552375964308994728294156584689806294311272597554693021887912731035300216864227633661031890511086335963986070974737419552934178507801365337868776791151473833252513002371910235875886798039385529704998321830389985333735331510345804434025730422758682609723983422315017640803327317622631967565989772971839422971652277619673408573444137475914779317933398924359940581396032281346592478558756550575159428611613176739552834815080851852071547951439266728751057441386769718902087776119592459359290863839696200576865099629303818145491280734180972040320363366766499443919936264145227145073503705907609385752440000947482297136237721592630836022139158855909461407406976301297086569690667624421861836355204727903533175309360779778798470802390218595874487896074523749056283747418931026806280481743381300198221277706092184700815252327145986723437854310497839043649305860764535756025983828162540984963998318112971881438639542654408280086193057291799568887988182572440923086077708626351313609463097677409970284727668296668542908454052022919003034322471898204993824806075163872794566894084973666516228133694882858339531350502170536111817502101016960937372882174683892618068718872117122032067336498312812545726927631056482587901068575208080633928751364817583758109695596993384841991062692241136561171129547967778123862393493414008547053784583782851512327987308840937357211004586036545449453018681073293761108679782828034366133339780538614863594371635008771193119559848021828992677797694091393084926892397161087516259813646427951911630339179612919001760953221655734911037471209457900418602899221551175915683036249471608650518632279742956136519830351897142876022375071605999046852270284824202570096299382791478180154066416917925969650230616749677247841947414200924297729713888325116655222730338964447305270490241477275647154092376806641652822611221660551903510495321695382999570174114651029984898251643905699093945986820498552583128764456838984342109365894310511407555838492789369974095013891988212479916209888392435587365554523753623890641072663136573386887150143766765743928298320734613140394952617095308448965800565584630952329631871245183661663042774985273620234906785915576936220534724261112532638914302528937667373926286064609916642583999874647434141639526777322469333134089892282135236716095628251349234859268040735518153607196567395027069135357634343767443117249084553776703266698841449114808884801324930258438177011878566635729353987811406465883694172838736570843375751044799123597365972434455742718384733620516409860393102195921211225720343651001396389064945296714205608908617698288316388283825229707658189611895457298258107339454017277497834540687764110778004407429296639807958026689312946890891500618618418921853041643322169492782133921182771902167520208059672627494630028053887779459621856830743842989256463024089063366760647389704968736267734714319346437826952783760286146583892789336232361603686965888599440717090143857650085623703570747288123004277647474703779463200055437274736584724026183902508185020399413109503970812481221077612832459563995640730378422829494179041799135365337060929535804128449019567717436326558733430284401481499075465103281813878210907214339837454150957218087233216393141184885404882476133156499354030311313197143885666833802176668360829503236040595136775927155165679680295859733803613440693078137573011613002657970242655917863431943626466230186872587963057556366078289969536349814522388660073014771879198641606614390805777255192448707082910976735549911200612317536184781317654395572950385452923653669413348562178789261547404561504523088531184389783350748069944802081583047802929139502742186788691980176555468181445443074191102292721931864440749790317259939771362180997111761468900013772407009234849963308320304297321967582789400084665235071155111834810320144835294744885188632413303960676395857662392727435386476553325926113916010589720694912160419438436276922502040836018348118271585534392555374582362825523726253314359699646366678255933821009175987444402718522512906425157453594796130527189599488847824353172256275413109599850442774753526388871189264977071705502201056823253071154389564758303122551162876396883514326272862981524075588799596209804394659688932951904490105741914199814985879000053348961206916311175468253485829007683953766264145205273936078651380572241506897185582776538952151358565897640730148811113373869245888909822760229733951244135075100387258948206647854453929055116049254655683017922363526377554626840904947800372684716102649508826206935748463164396897896270083376303743017561945738907884810424309285523631029835517451745446606529767081994743205995165291596008715652115461296735413957327751678443484864598339137584856250554601750792209883587719338601394896751483376380213903415290428362645376374580878281537904708544575967614210377236123296196402292022895146968811447058289309803570015041036948417054728692275197044694697292034951969766217664143620321098749717299081440003715739281891528408319742294373367747782587092187172252984069305556935225836786253877699037108329877979505169169629957607026624877256111532102452287179703093738005633540592931089018740049575133056457554686458819253443722717048411076045834505257242917684423561001394566824566042880004740729261916575440953365000544583331333348665819727492760012423238225171846893069408572324615542392813887422027661693797935663441045037115598236757714312491279623141150164528880440942390051734645637803629395327787801636044104275918642025167711823591081249478448954880725855125745496079956918012971317205403842490960873636213513109752862098622426241874243578376772912641791880137675200320563326189241018616513034810244006856808606110481129427409009375274857858586840922973157793668860861996442907361574905330345107467921392139357341469378267840533131992354433034607195155205700661001169301061146455648916805009145005561378494045436931348591061841933018954548638521986008082004028633222685779286594749900693607510578023474201503531773730083649498916728935090935421209752074727250436661880061334959093061140711046459924475971754240199654073065408416973523925041563550039026440029227515519108629413672360002694120712781130876365316152244335162266919012310171362950133169807700976703122592334099542352764898442089109243902756481617004072173927256602429583715571067168541418713003571310230544725937706454206437302838147841910218688218466567138326128263780697530988608290663303966984683962467476885114506491315186155246294792481115987311090797711529805880920928581622770652756777195393112035731943345934347337295189941572147227619036780043087959047999266424281962016300988837148845043980122446245560266040861613319972328497876159317126814004045056189668690984708239413708551813261996376889702124152313781873313001560112199565703541410653535638452439655642672721743450531708970862034765475867412814640719792280574469540684927959945904582090187317658661625178733129693572624876301827480530656002946241810151431318690240874938411242158215083730741283373100322266839576907350698817682754848177304995391310318465327838386562671747600180627887580492540088784039279856464964515527892734502001541003131905096271080962889523768982872651391408194511671959166631818853373127982279478096384186330812324934368273270884716848408230651068049840198996614184868219292371243226293284424830236101798391004269904077447991908376102111123960672507192997931365177067316450479862322551979702992566531510159660459669015088706888298252728640598951425047655646438613971390930202571945855825271392719811327758886955446292060520268767522136796682746877587452876077863449138269956348008254414413182534720494801421265432982967846686054377906133891020607653897467837990904198226428291713569800434724666969930157511495371520437403191810795486894324062290945862326245220966757449528566016465787368842465402656045769732900129583787420171151005742659749253328682586625702458378115218220127757607872278753625441767851681849197994949764910003693490955081945020556381122496479676624965078580232712368944622866979631971539024990109911767205329659201024327415836646285103519400541457190714863882469446903822456883885007824410392501635971537484905694524560531254037917603310165347750019986495805835536614207169974117331055254042055211077318581045894610462735580709471466835287835222442439519510959648019339972822544123729119753352333978820050032094830778066283364606324667100180087066628897715761318039445308517785997967916175623642457991318747995295187367560206724336078627831644655047133342557745622032970583706520846148146180327955657231128913791506107878236724170631574279086027582680483282048253059594486535530533557360894366837877887790883577331658156656404633363117896557755386745135965474379288244327761776652997753788443212262675878961266383306843849005800577613730946043245733141597876165553722630161642335345100237463536829894247824255806480766433618052377415631403789337126999008115460840814240586928446408742389124577519366466994637359158441193177950085848065280520451386178972329910964611770976297169880547414864040358883927950040568096688268252678332587535835160050579458531484837770296761832636064913660564711850804916359111816805735686256767574836279625954231444084268694441780846545900109830083247012732767325186296528101198756674251237185471917419644610996381436922527648768652429643328488026710488044888015591064476982918336443256383798347892249924247347347492558557293151861103453413733567227462578276718755128522961571935018632517217599994227794412512769491665964117645331130767839435875570151126833978807782308932767292196739065650167909884959899971836201837724669791646815888400401508326413390170244028639070088310664906834976762880088097131577264334164705251536471773066139272240563257100139729989909559374773055963634856006159849612535183107450428280599101135615276461371873230740548644387095103762391293174413926799644747323618213633118585804069936583777606558414953328326602877854696894300229268531019343019873705871735821809800669389125076625708474659506289918468346949911962050562881006235243400502407512125659762183568345522576684049165251570758414614413289520970093068729022716370563859061059216969457351312296992925835675318834452109537570173563261816644245918307191732592805373518481830987229456262172540444189864039750384513606111006210718088689290538855653803212319776645007978808922913907197183215533766071468815888614665937080218118486409491244157801586964737239095958580311735493963934232398121883858322269062273043691547964773290362031023158462282118660828589608169094090006189644213461734468252143386306086410764913030963038606156122694775672705661641983226612829559405418526700993894418145266998151219653967190513843135365503213138068242451734889475925031241924841752557403818235113902616355370936864688471015259866820062966604332671588470284672528273675136369158934985721514957696957393793129333387868587015586438472121908813119471337087338232750005623992374477172103479216899958700150469805895623651885426829398566671272305833174739467989387917984475726396699725651509335049449623932989411838095115220273859361991620893155937352131938012702984818829682456924664015891024522408334073529472376766018719083566257343946835470483622445461993712921994552160770522653798347510666769463255511566494911680705230528173086908826823801294125418146730584593435812734334074634710981016973378451137000361466614777973756676762211878253942360370654923722566475192700250824888860406223409811545113334223901773684113599153372373184676634050715689668193810358548079907399613453888826857567243504591899740069104470411162878652679201061613247199984482371523349978363752301431351328269553952901086494205818604396159053058259754001573475299749827230953870577210005396418869704874528973591568792707994416581049442687939022278200261738842463895922113926387495411419594330027084671423706812813778229848743892258019606732295576646222560726500832043734636892069742573101488777832814597005506211252970943955134820697067809204578900900556359931930300746710425701791847467995201645098538151015396961735455277804306267757948771097991362593662234937064837059816841914409008692838417581369607702626526373984217927518655855340018024947388424795076359369625165815980054901107970726953244886137434993884408366146859209020138746292972909384539568930915524703254564948483425584353927500268398089195124385714727889228818004727979105941649371664175676509443374654097289014406328130189143863392806334434942400260228810471699972553393957076410706789505905241632902212917615707202813379630649859882322426710298264264548227932715480458764992124132126818276723090347559579303115848248948301417317193431046635619982934226608452419772743000894757519064436425070401157381317794809599533926915579884005478289536523956367416572964880463463057367371172158099902098944537332554066492445556570479772079145812304506188806693477316115492135285980811109640356420103206503138783298144430856387206579389407056232795868744608528406980628390128319940403175369817291011930274216487446018619632159446845380755709872212964758426105804371014414489107488133766721383545414247871366665387182071284847617070028023077139862001523285284674980517160094177008483060781630740674129158570458579809143541609290613494597096889257105679100556752900747504379946338211192119990091221539655631726332987359358386665001897021037681056553912581127425650365892142910191935677400796661271382307140818828418649325456700504789023579983462966520539034526722973679711222964757638427953370703079415632893117466348996286910518604722726888778758797953654811330971852577488362549950780896238311682394650511685470862613640217820445276226218509468771458466676588999479371028457027858288649455781921024708840980548840494289202758632513512032768369165509333757568774231103616106683832158080256433346454271722024956218060593586057783683982546182236449833541991908181754923962168710528049514224637589120113615979984380345538987436863794164300305130378895831279248454986839906586006407899335281278519409840167197297270699322133907184209551782475206802684636165397716512345743403044324661478177119961085537282430917112635195011915381033226170096078197922946035526018787669236212486362488512903544283973792325138955506401423913076654675381145244024706837652806414248720891345137963859994493516086771074601432747723851028474946663633461941723016077362976288977251283002580846877265301516820292508730013462199231565387199041060550741930363390184442397874423384998260696760570205353684564642727270348943923664845900245979494739486041667113357170281209226805278156883353132643317590299465385748521847109720477182480567215619231319966276378282067062797786438225580872740355388755763722582999050673591541471494743726498397870576633115053342116121745340896541521554977462478886291183035260403687328220250708935308435234580815071956958892412605287571839649630550766286009111672617530072817388845881237359853726929926264266600217297690409322916645780080286157310501383405996052151802023374674932941095769139999676638521753746488507214642276836486091831973323639215924903900069678881210112974635837340525868785445702221462087368587279664145301762633541558879405907321222539467073782654675608107464960418043395795387211330646467992861229485713933856329761617850891155827661197902337999866357704749637968223993509579545082055051118930347793570244303528304428347024105904612246808113753997074287434351207241798271000829331913714192887714098986370546271136142170603160388771587341075626603462603469320575746363265306120596147410967864366328128489246217276990604400356483137270171843261107628690706296287678248337252181678495208701873888835266818806885615538210291793846881259759223871757568737766365217279182935988891248129048499965476445965554595153192301986734214396269052453374634498603717927205427968168892955587945755341314658812833102455747928050200866695716939577801534143906770746884443719972294731420962430984645053185396521906026711006056621714505652396167629158214100393073338929186256703337144724170924079448220819579349698115524925573254088088316481951994849251885979718179165071886497535369431957636602624261722924254800560595721748153559340925382832433344777942345089465946829548015616400884023550373234965498786621710766801062510274472340547773872282337063244223465713099833535636179045129664535920772793879392700954660146105091802732697555135713654909405170986914333834373538622395662531670508132212346736878144276185478830585005810785155567880769397324212208730661826200908305041506079878672078008638748314710467962218043947575563099086244244382809070751636039213609739671934940819820051893084634184185137758694213859700251923572103523597814756562837006498935806194277478376736716568604401242535394254608374734622249608298272472402187537341510443884271408930329039663170598527274357572249198043964068936908330704606903363403761135669272008017206016525870166209246565318321783590348318466849633623177354463039337934892379583823380148352466207076888417756468257271713619148355289440361157962468253470999577854148164846673573561133803192065822135496782962945837948992590906571508585899240368777247095602252060304105945472235734307619920200387034244022234909496718095119479811812317662161328126574188879267178040238578005598529232561568824676516359048340588004483845823024199841762420397502821442033237813646956129181609088070522692744785023579437156142854961033099970139477214606174500788247541700679178188133730735538786796010124219243417398732897632280986762293745343728998117259300822232462437598540018372660873832647120725544913064336449951001947825445255425611985444689633861923341088611902366362520061671773407268444876708707863399288518785748868906955952057560806553597236255486657680659973002696144997913863949137643343951178186561697245750119555271398766633102419936496159367342333676593518995108210508545586590240452439501495865709751688017729800819922259725289161528326432871330191207202622505599302105520059364272067206743658081959198389468624150753802751656622826042558448723696342315273704964736012472937470582351894637772876085862713952359990692232587035991070927536077178731275481509403512701381707948704002794636433688427716924012826404447538300216806055597399111532756743042507916896649365346106649030339264547982624507527529703551170293895493926050261167328050806361911350415038722553548052495030725922083212991676993938578960521919040226593296893201528053855848832676736575685837994286855431488484598780431993710784840893374197790800338636966596327000480075341073313028695828601359287661350885694130726895270622119444657090135000285078170081732969360699447808011650899774698383275335446223117890041424456125659236190671377822188309901262050387138637461107547138243333426066111911249960431197487300355784675385580931940536564143872408715930702800223362024034209266924841036541392460325281513910602580690086792469478464151377425304908113337485925659032521084378705836901803059338532970010969600087425044814184589259856965345569808272371276255400483792707641017020870006758524443257752645790361826803605262387899668756268684575871134948261702787264207740532779178396605930246805376125287836224216318147642047643334565869242915619461741479293032672745331987962759051058255643906412796059960516294105583577003536563242856713972433093599861784854409718181725544777914093209591840501649984386128073788718816754788756505663196319767304705864894624045949269766453285109198744337351215664488814513250978299799856828301830292718126587579974915259421426066384493476182366943613010007783474504544383940594638253164174696216796375403949152116008355340458730070341674476885386353724175911919125730296287576998669830602845055125425577813049196573537081097538898051449828195851720963288792497596687858557626872836385771428233523466567958926948548919544874241952228540275810132725725884846046549518516222527214858969727263289515266100741919597178328836594559768570577262847855954488372407579162883631484906477914553487265755850111942264869962439109009594842195050118285457021898741034571838981790486364649082967773150836776997335515074170081220258053885245195363983453187617781231829233845161492018946787202174802452815919012422558651698747259021550762497491226737659456330761660211943484032397991440702488173434330292725710928657389894240649561810909797654985118424771133900728809299016301869411421261170343722496674766825988818337774891530013580023146024260472055275799319899409643161144298528316114869897317486423082626493416316845278016222869452176524878906995560991510960158794169103884595635966852936125991245729283769357494996000637454051029331252353719421156501331547537362809071428157731851185927633100144847811577305157277411636321762995559710643742787164040829830710463054191559937148153916125547811264374389039745212073575767777507421150508298100857375238351838357539933202975989157824880504120705904644073227688483087435345122645470626940975444513697572570891505730232425735672721085168470673901113721018280580460322479166007383269145415931982924325433746486049633965342248172938325475111403759384377805581002679023593384798958654860787419414168840730434173496904240691742895829113388157394322771015619624776355190240217127468627824721979967626629009191769556438105385692640185914761669543194077693489655590603130341579094455197560296624875454879091117532699370937126380672256751463060740233445983148205780778552538169343648053568079452045386888722145805202281371652698201162506165729737974807500297233921909750122049474941700659392967296028738767195222550630864385036022864184376624009174719032833908399536747468613101093275450853701032488164563575489558603679918936112978761908356737312274823781827018531064263096134724871436054931890377026133291202074118570203965492336859086327290034787222376598941863189523397575264482623228467814741678394175878779284134112230198805548371919662085993112969783033886516758544622791340538447608394235553449033163300012475799652761685263194532930959627313146726192661819832194566480048912724042165730413638330422266489785155626456553219711447297326058213214861528010097276801510402989652020638606860045981614285237499912085209347292307977350301533905977647834289074748778151734815736268828728847309608641886645303294760075330935853802770492600732884329411952086482971131759375253443889588142555483851732952836011377915329011335759811747590808295590475065765845686049895198699305066250601709707832987606304681600952109729778751360186320545895578180059587571719117232350915787137515399125515052606959476059331576350909179773320833613680719455156407495330357188422563693171183439732516057365037747321453500563595638262474936382247058368475214260727919955251074551304244338336405493970033337134880029978594657544942765183034121119702102998733619911776479300476493264915219099177723625580527127257799284186221272202594729578364241569518389042618629319498502398088279018227708670870719353980183576382804721762702614902491846340252361295645126001797544961312208728483738833193857402018908281767850298505262156335275083393941014555472125637636854640790946476538165508050017967373743140990894748416914300650811821039900941917142905544287434869177808284127163283349333738760189805192382363730219765007029919984095395364081929393544844337867252570777295959613871007157921472183707580415005441349860049290749969893790348810208279250693005742360174677126398250444798794775513836887538882077572120635319586500300839106544714907549279711557218460901553945733251863898128582468776959800827417655549925565263787184749887063291494390803074172603675896802548718373999961968293266122412170677133971378809252017026230147178208006391621359820529738550555820959403332647089156195552235663806264125747913463825374925991288014312614436201171810061047225858418500286341562115688441856620282727660065536243416531861727054704601829523329536489605733307453064730077394581740556221801029658695455429623213626808519358450025873573058666519561744637181113447756361029316422929997712848473992479149975246975746167652401333988711899350291995072594035417767887842758631733862021231433122324549995210226464191705902063721563648704410426983363333138216958848319812093693683591904114931623478727636627592154568410702417405297925694298191498174063952714478690511842343371955926123191937579062117858090932058847948363057956121560105651820752164895293647504997836425968788047609259997018653611113136048448104343137267327149325176406779591282704180928409930214809574578663493779227121375537125494983646132191054790119508054816377823175531880540483447456823482955282130638303595464797553133860371316576407833408859359457376719674086252518097818178803698601166138834712999153771123834154528740489956469028260300688542763451896235735546181582222140719678668431026826557381151949371316182349253043654779188727730395772916676035989068298497927532644579302056250041982158178336797583245820167033440163751943613079360668770605961550745818730074058855418570777129376539546111235520177374526753650277123601026263711408502493754519972388118497200485295407605375755048633498517603934340365895296086073448055312295533568821456711805760475884194205834963384542165377020226288732032814262719241911346980715350623640604880106101761396430655066646671459774792751275013133465967646396069944057031186056087812280632896781657653727506296728357626397482838464729501891798560482491985007991609232399766719647678330126384650808804283111098502554661296861855650350012361068529743566446561984920921101266375831195462401126619489300838284386599999928333379487659821355883933309759653943516874770254203805203373382317893878282543047736859273772357478886566858736092568691056377446851131559478673651648492178603892046920573921373965976293426617993875988610557138473901586953800144003377394259635248692636896090870539526251096127290887376798222410747678488299026259214172065135443271991645998333033382050970236703791891297771139000217964645568170138089418258462959876893635924393798037012604370001954537532094758565668626186913776932365553855337366401811426040117126345320537251244688083925045538064254766280934506039108615119488314246477393594536113462632539790305310615515404757043183580698889116850882783575406260470081334894277564198811046150339108196697436038560732670871560877665885891060896072087471582697016905626687199268158483351741024109506049761333221030468320093162948196664178664108925963354038629241301524764041519532761824707235278977276957745431491457204054179953185788374981085050571576711105815852167055220110024031214717157984645854332489073410987610992956496761565447188062442849337194222747404498379859647558413348941074260833361521207750192980151294656720842115507638816459889661764643697603289243245105302982505122426807037312128083935122022554084151320294799980575137686493365567616784994713349269562577390784837182482831556792981972877868629036310560685800990722240215387661471364480196561481124538862716542334288756197979204855730192999750041758818622035508435269374224183477542357560534672554956154189883817856029267690850613136595288039173555602456879717723106032174576049759502322562941963790630937955810449095876213591677865829539303065765309230704398675706257606714270638526055475959525321304780063261071076808321621001457946409776926800691390719372725319228526274289573895041376854774592960335922726252666683521707031894962827245652845824142546063037280407774797988541294635397999246474691335524337231830453538489080808931525181357684852728589173285917464503656120068829470503204716904153768678001929305063669577855088550542369890122298087791267061052356297358060222018294315807355521909375865774736264736992888812797829333934998697735232413759931554636311929820706537274786072589973120693062721040157239438426087560393263870639290221903085890987772201985593853726881479322882922369825904643093397881652299859711143887919168112556374983131611093190611563255289261205865159851493976127055624087676714060590627593678972863204655894075319271591295117018443755758535236978206034603081114085616222042904289052870934871938753668199421196787160344751165632170440416053513413901731366894638873855531386368243369975985970616457062670413045912643728498914835689045560909348101158092318073018459984087990904615749310986143133159197840606356831884195057075962103268508407539511046071367743150631865568117504568429109859360948634686959367227758077306072883798814246810034268587441953320342225922259113156871855129884383997718184817757527652868727478679975609559814433269798023224692517480084804373540267386844464825094568371986966198330889858783525793232810047849800001659240729031466028150564724110345203157652765771714505108046030512975963903369048782270839013310400538514937353749729516134897226397902119889634448662018819029576929504346472305784526520058067990645390049554274873960333111513343423239392815392857552418925427533689936707673603270769534071539778317693299858002902473809122227024700301497321483099349332418808211182569586232946518575636897541635746895986602665172871063731782115440732830840958229371768628036856451591525703290275690368571298831278118747345960741731009788473156283864948619310435016618122663037695937267645885383809430494530230302680142109755025038907214842460093398754399153838421377545972464098687379266027941662047086632843876627366087827215003598927765170744547706538396196028343102852384091338723785639795368257883705830489472663481348213171908883396336724123153639729520379956140542026523557331822605360301516107672701613667753472021089952406019019073107167115721315313139910873460499485588793055573290748667569249917791477776275257215331530591915437576402085562431149445372545956809702564757642444230904740701449387200931485566126738641899425494931363104759618933034909499307284324090098660429647764160636212894769517265674169221041267919762026291755853059616058835981509438139888155464739539002210859787185924059647802767889239242804773232416801150880994290751300672861497273785041600155380972786910116538163760299560019987567710528743417964863494875902284345081024845232428506194564649282883380246745314360076653939325316906934715341110259091559509809996077710819240434008174019090499522416945936708415512633504468374235408291264653803549416953846871915947864482169071971882790453741758978656539635436417496421138332391272660853829567746264220437486137508696560381441154467817463182415780125489762580240567221816519025525646655104178403139931552734970128274640783796773431039575001167643501232392187217369395615725612096294658612581792259971229360156048325293246605900074675382891135887696605023043275464415772720413553534310692302099040958828028424925456609225504736786633535977670114754779378951221639503917488370060692083214313105651140321659149716054503315260875624430397512016270444756654974450829108449142753286512578843201433719161950742434585426712768110260079969773273109108740407138883985930205685477056812837003241060994880891203723375156916771294476770105736285175269226738673324904110576188363433437399317405736193536907770580699187001103875506825865123396341929847330966787573203290483700569033536216837286915868224849316458641309955612807613543158394797965036457984422529399803252134609728622695362672470762899717796327633461411207041541483053044019675458162359860634665727330574033424675682539988557003842039565097719954100268376282975119707156928778058823190261710147580089737378346499210043057076158595322507336108729570271507431229792031372110315120578694581824201741832056515117533812845799817329613000972285911308282090905331476011967818503836753034704700057874836099759090912963034418276550511984294261174212501745310883761527721032091623308833571020857721625950992529864364182068943965690856477512431829030183533951091146751371853424630585177074434321613169130454456207295577914988904854785029494251869923015642048236729967820854327708171399372971364728551623691028094394904980957111479873532633610861544909213621071957862718265898464545958700906924924882052343511286873862691252933569556562440153334475671624094781182657115595475669936842356249997922772333285678478624526949813038295767158836825390348461671496801413859919405559791791785828197578481237247802296273427132738070171213159345402254416861464162064185495562201758027171741932960403072428557591403748752412558364868478265305790211293015046009300979113289391102092842221262887439723987929998722171268024426957043640826917512394728858097663173521903477402078301082500823068674816599291621420437855969070083963431749157040070491113309702304687661585748313508014447599285202072786040624690986245818371056631825492066663392868941642231681397853741745589835502398141347627568661622118636756113454018506123014505064146476620025479372737016911509105700588058385528775155356834613555088814313744985636377736943347307792236920232819512601988334853193084139129692103451156646155817184516091865304897119538011024852574989315864723399926745372521914878779978880756267375063872378056469764352686130677476116156403088981072299006136202913855386468368424583544342072490652694313192636306455791910328174622465230508681145392237903469993576181922838411783111273426609317171605472302748587000104786605983536876204234909356314679354437007086760444160809343038896416912293846293502166110021076164054661453282613302509899295539192759629946278263263211656587431955173359427872479954828722781079314977711035342554381663505021820047559845719470764296782715877268483623611180659244515952829152301818089716722717634965228375068073131741445335093301055862157197336759105167204885674541572816321725939792701826776592787907269759586524444798627848766953949146101776057760360711075086603455755571296234540663775844877314065805021814441457012161388944294254301272614399603975154880968417538877870997710531568960577955363596700780699856501195536169958191091853337403661999066186774586536593782895158619216835838537205517181966990029062252442971964776076579212083499798148310842533800664605646546284410595975870105383783766951341441171157658015291972393283182374190724182705562114292481259500862193482545185655397012584064777459094161077898448667987879836035943067050826469850650965071424287984166501330336475959713294583569058759697058365984023752645595142841527430934760028480597374451154823040085774538194414235491878380929229783184414022384436112322168850562433541858843251154472064328496208456328119410827058831893542884543650548453563300884266856935636428902027669230848663361182991429872638798806829980861239497632951046359133826912525187946694508941539649332734549729944898362994739917547441647197173177987268394360240105216610149815265541625403854517795215840024958798797410495248004753558164544116079649674374767184221183581573767370489681657618646684473995745738638952849566518957447866597778195075225888298702478900964065318520474237695238933550121847859966007408965038385951470180407234577687838560758095616453392168848975425983059917537610132320635432534424048860000309082261900373063418486886143876373649417887401204826095051275986339050977024247252980175882639229387079367325221116705792644140908543740148530459025037169637477458607191405425694381561170144378884418883091592292719203584129871622866850532460389435650023073416708375186459536802527582405209237446765733512706016011703490806822232723412140846959667332516156575806659024310130320641153751168740775678740603592587886171973634936771114265430484708113330323186633985509494314397480484078764776783277053488015967141016984435669780845487805182319957564073978831770271135643924204452033300760976436796999004095854955620131358480587537494725693403309091728323941836921932491518687235477393921275611794664018511800138075010277721713064204253265553611432390788203509453770750843488923010206936485172849761293833257931632804024023662247707358488505586196021481895075688961464986471085846445373294965523337264188383262127117827240693226571570786417557289614533829164489186520495527295263300281049823109857339430816022566981711150564218030749436110781361389682204877365185667020919787109427227650347063385085500842117094040508256992457562828262781375133270805294552322160845405765437854007179908127688366953749752286406714615345649011269387426711403621513820477587549428565722785336658487290869174951010237587497660723016951857365090579491818691542049514818950633136723233600179192443975940164167719835945106934272172934837133152708252285878147644954066168266066328173859064681708480980195630954019100230303837721074832278139011682082582389277936139561206216213391578640790409627777430623945887116813593241244337109448308742299489657270496966891909767872956785683749182662280759470730876390942917918464672898935038166571603238341300482214907355731011475604391076423070499714171792722498893625118537718445653611243536680334158347109999781275045931072949201640040438736891084890000220658968949509883554543303448063469068362642692622526048050382229656658564454638172578720242239306031674501605397755165542460307432569145384140667700093348172625337857836954968801819714207583047902504544932943440806547069667092081966871809574518223790333116866601065885464616222513680755807281783990499382032540352222147912787357337924050581704793436111604657520350964992030094306338515155701039654361560042502091754083680251075696272405400706130739148399782154975269620067771746125375177474080770421469498072465669210313803655901391446319337852495607651289588470395683600524056037732266484889767598647222236870457260025131465330278949073668317542852793043641684491309014822977944414539776700050476454539441997442534009022064970795065778667625625790416787951719322821604842790422281457455555258501105051118532051282481704493408500651110585967966113480543157990100271163704146255884514695315016137653098634679351398306442172125391421048484018069955555893386469844709722072920441600174464574485789885219133254971330254820980219920946867055130885041123215989403060607764070886215302252839630610614984492974704512812064392509526839331630165354068929280565187157265787411940217478091727995418741181137373534823204924028544437285424144786673531720397284099921075338521376852189920275476375155088032382034514104490336878610551139745556445344133528058933149507241545365042536863587651146455776385286184222500373544338608419457202578083624670516135441219360521249265478557979011265815919933225542147336102522035640035827908575507305278835431594674179374264974074094794894477957316609623021732397288402601621550899074510246296718368591603789059816357439266727829502991817957028068636510124544515441318142965418452451978873052020028802043389552095212624250682073625164648296888315050959701000226437213534878582602533578984284992642598493826986555915745522772230447836700451292620325907284470070718264639429939710579650492402721513090902016322578929364662069079114189091709554858581709996939845824188862304346386468537094692019086644250014237049070605479440163636224484204946141454073340772056136753779947174346418696144163556429471591970959124572988939233815001041229439585288124290316381893911829364047567480132005483777642241308322733790168055134561187865263787390846029832484496777676526714460909842724092219442087290507772474227128491998627528840954536122442608122367302636241666463676956582340509347865011435452230172110431829674611812712477267475584183473918296468924243908358983041077861222164667413927458084410934467091407688908115480426990464476617903706913186431644872934811624753142709479512183711895430801606136867423308652068568392614804784456647494574832329837112783484945756818482357381296729860250944563100213870768049043011088410435606595632913551363659537905774508634658418379378550213855073066062032361892026534379655424091388667805176486602355686801024443819982174081868308063265793445013660695883116352765901963710912216830217994317817811597562569334811817590163704539548800254386919502939484296333878802324540268683115920771472660964081472974256413523770713265586567292609352131356326973863345139232379491272741604407165332837276663606992078289885158189007406817883560033839550249105442191369494384025928975768041647987388754419071010073882502600250529371571205988217997519052515481351289265070350312953887973951968071463129797393988552240677107478132966112514244409425462058656056386484117697376509322232005813738988859893022336308095219342652281506753067731168349920030749784495333173923562877249889011049829135380994323467387064792939183829847365091741599344224180136090702185376839482371972551488138816352825082378087561773037185933102376901551814895668026451066955667635627033163755042821846935526079312867717163008152297052501399440411109952375878216898707228324155404378594936488165971060194170111775308197796006102061075809541843822637717441589308934402454807763589859838646004481913063291821212522007280634089056273136156282514259729116909696211674082471631451891747360069596699142308087833837868659015986702232142869157014142480704589721910542004790420726183894565916757662433748165233431013197777875062648144789623796854491833393254452263282389839955214350864723998824618234678333412034969696346523102970980070312729811300298748758845155628443101315609908946158784058400383614543062750283843451683679399431155194067233688033261838130190651593168620191839636438811828697041164945876942211365769814951731860439447681922394006701455127928254056530324642352419083789115209165207534501147751337617613160303463500158304324119830345045973111548023529147267556528539615498251732218702811891475582192510975188147499627018320123866466554470962703221196735206682568834873759645072512079691451687396399872950892928615057450939183524898641711515633710772070437194298978525854106512202087219851152011968200668515495090775699216193168057612255084107995644735723621151384426059118785236111157667462461676058949088473218825118818916537294130184756365083622904096877270759063075951737344653812358167205699861544933744135511580828599979725070005425695844829042157032963296954183720611253277818507824353239187267379753901060421898213335680014917629276358973974915103361029448548755412659458830826273087297415813599878505897081564293241595652057224388601584207810475042628112904425526350548296613431983475578851932222671869303645667271026495994005116630866373172740445456949737487485211033177549364625380611334474310806832630846622039370773105244279995137450193526614235225514186805510400502143876778592990110859251867499131314500087258371166936982497699408416160624284063083328979971618705057651962404924316599951518966497547503900114739890318968783264557847453725180452235972687766876242850753816616792488000823409032034807146522890222308061496574270447722125026619237142356260929122601825058373181197103907517533857713780776213177245287947915831714843227314735068371778815798520230352800599998697766693700822670880420433042717610360443602119574053183239775082537624353359925874480669523131409508267297420082719591871616960153406545781475710124329470340498901172403145627070070858913555130659474830501092675331050476766851006872795324432368964938724349140188685802176697065515885025617415207031509272651458735885771669074118956676294168134057842406773388665298433582820992092796000256053731611957486517297171140435836830233310269244755634963018267857351110563974947335708175806329870766803421309668272612847950604361526544217036355406583290195474112632161794143686238782446810885100608798206571969473153168872765582925484100600262887084707264146369814546760230690648480001950891529208834752002948330118357071474860460032318036646630113783461481020801040824162464398628580275352540541481178772578449824401215358088326311157679388344399416742552671812706870485790500170018827661154025989664563822695284086125700000312015134146214627435881881137521596235509096186934825303819680850849675713080265221001754452150438824469635391354522294838227521939781610063081571394734757164331002885720115617471919226677195436928312826604396069925463721960291425377797398316744381208097218818831236226603387075326789425385591691829772833273126155084174849512359891579860193104630204088365812328283393282877527485978705364732951561411429853246103430255531301949643011670379286563766956985479637443740469514404752486274767380255896740849630272538858173832095777727044265967645023462419588725735933861552680812047751364027860596714899368123712011862123490548171292454815430238041036501487535674543111800604500426130787682215885144267302962084048226136949742620817609999350033446197688418790304159595153926411196546477482084960353618894576122048571862646143232749719188085841721650249255612284867044407945280918253914446987618136633194396064637822450816138177872928278397648591104634556227172221781769229741153867862146057242015889821754945547494863631767227436470898021546200732501302370572121626662522005303961351678831013008568016798771386008087441449608596103041041197485369831113671070824797474197170808243016916661770771312763331363815453158913375254168398408478643177506675039488466367772146792112185361223631672188803806610698593702379096318692240259119146345846149741712192550199254747960048460063345981864608011593744703731663195351890879205648107281187772402039744024602129739110134992696648989782233646553651294973293415434068946943373818266377860503474934332702908375618011054934690179339428739905663796976347810695528961987646189850722086345874757753558684468723357249179047654807751039237363961854667533349597089174705010313969438090236340457990307072485296328514308887866880742498163585636339314194762523066152520565896307037142091574467866737683351558224442263717555290549395328823666896153326331493583928128224584932540555941071950713799703563742340097316130986462139379530870947165361256508033157850445730000941413946001474525441403816920993360411596583800506303682545663080628250094880200341800214558417554634801876535677644115164771043843669008537061169050325303146835437133581809292400768050958188888031319229966049866511923553334427159951307690820852662967740310259473022591776820132591077731585784477312075886450933987756187266253938362357576251588056203092312138665780721626116181270037560534462263494983862525666524229234436513969720823782599576261080998493754227356751224109232447930724282802917623537533863708763873518155274821112448002459124640511151114996644626198433900579254635394962288892436232521864025248104905959554083650286893574890542000912533867434313407342265195998144887626448318552732774941228785613062258218781200116285735213380860436525201235079083015059632454682818922475989132871694359851422675732581509249821248990518465907278237639649232119042056438491725564318734416229620060447190161161278608069159705072338317990240010621164747758439023757467891316957011822646217702894571191364126858718686358249327174656270672807513674315975075657747583764063380449448206683521783321333278967763836574467462017288395723672110981540162132700681687402313661948332501044648564646036412531741333323796075672937330521229745793335256616855892004375962513420306383429430609715847409538019741154953001028216505595925945919485334822732715544487352136534472942394955964530478805317945586293418901077793490276022180849918514125716531651374508750314014667742519764762046166931133260453878964516572908438615194431140161514230702247163939901004379068641034162367907418506463768256603895503347734896731133431362942854314887603124731335419670980008452642740142097631369587622585910093111299737936001355335292074829853672042761269847640066766986610534552072872187381806791058162907487010767369652166873448787438277199732718649255424806684238330274106960918550071153548924174440794337042318254560683867024205233933058031730647788593322929965546621687057128180663158107596988037954190286710515896821839986172264565237272159212726998561668843085968396028717153852669414793173289354584495315021859300866891179713664949241053953017401360785889154713408500397680364538111157208612956394709645574270823873126874988730970590053373183461689693417093000008616802780058956741522844366300229652650701385626568435888629758589271228973122504501939753988019599295859466744488527923464103724733413533839025948077395517640674147646580145330375512587839152060027305459805828008341586750878202182980291241797731523538577064067711668452133686650109064439918466472914384152284355957780524178692213439026209703590303502527032839798676548711129716415065768915393509094042163002921262342347128521083954216649117518876848901601635079499087251459442840907695196996180377128279292330631394632150965793664885286718536589854282324046387338281784815302092030883156972673439255833643216320660898884580711362776399966495706481333243008044307069228179629683286131639498341581788714262196654990514044999490513227583290203973389028542575136640742837719838951375846035685933196763654229787959796756828399831018152542366659857278588886806485189459707162034673703516804567897410832102068776915310505668766877329334920023893505744369544516023429794578060306718931576795190895808112827048686785651794949425317989898545584635110166292415067016117622197572925577322229957957026951427313412587036021325937476429476772338553939496080349432963081459079933815943114610237436482609052748926091149978175992425233969728695252416687315009238204121285426136163532491366251378662874417287369277732668533899905091442880593169617682577285592777855488912248808866962902222009071053198672733203501256083276186546860690046121765511410345328312712044352295100167947903133505342535567838691922343124905213327943612569046803304540642593143348598935298788225495318574248810376413754148449982952274890279695089814986469076164438957523435665064979825941525032426325529441165969405598958665076121533992974864105280830988791971237287616972907302953015863380954319401820266910469313930352663628358321962934195022055821562811510082783702191422318615775289443074012512069822362570413511621279344747937375070858534490402518946776914742064913902473152404739223757035683312553974447363697759131016724855642522704985587132991847584382118515249153210866087093894774655589097681500909155245318437110167970439422720060659347278649237655946958471716429025786327183436043870606152679931992517807196060181997889618914413296815327355365655317827878987704548492565683154048433686635893482791153784996014629433017853591892226871356021156380668887360245242861517707711106712851439717394625668407770725858919518657200283026878274880646248625804514333344541330861637868233257296257953800673509106053396523255759682415048279519619749459051008217962365670147705645902747898018100630951888962137903769365337298726812820884788701063082554158504213341014958285427718069494633813881682451903444805049224355100033141429208942257683134801951041953956483428383168994699706893612395299336477360596737956301617803184226182619920816348676196602758664471180876032530070874535085357549089483316670801325348249711806765228158023607082333904142811702294135253600330633026112455168649227533897653332750883730873546591411189798341977081211090804713744235632419974361958142327674056004446749156949455787149355479222541764298223075736651596039395678729520830762129957290564633327979056087360196683806841521600534098228717682054303049482964071437795896778917852651344209014796569969586033217610283983223252420909187497569528250236244494235687350103470187419905300293809698609087614945672871126806871959924240064653277115700461234695506725963015667229090544556889669490363819793746846586653406795597194462977563164582434386240379348980473005757098395158216139214440418894226816655348954143282061553926819933381323414313987908720655644117610051979103079211594464124822986954039586697896296360224807663263111856093817090755322596581714925458095004864281930723758653310934741026846088351017655232979279258864296905772257139082911909071964170853845945443359918962961825813795766195253377709395930937558695979150585469590600816003435570792205728418485855996164771561906337685043293655454747429793082284034010421477940049481806545729224483426104801520489332597893682357594775848939079653986132009777388783890023066496506731865265056828395821962580338070209708988714146215856544262375254313938425321275734074533191162955171187913699270353917235081499866237794428418843345714929271033322663099327159181177798427378975014789433268497205154307237560639987729616687253234709907174640540240739876530764999282725555733397102244685228197440635674154423398952240404254833976955371473159903911519958160949598512103745365994424396455866218951207314020177355678185319574500159138619106408997869328313648390096137571062723478005228242118426427552831612858697601566046431833533610397233746019991538893157302858826916092049488454130092262588377714048796551601554359374511078984718088470096060778907622069368407378496336096342509584708257256336812670064291029822279991576193941230501066561932438529131227088307156747196820218627201948474469147750995873774866029631262112393626268432315339171935691378989196606671277097343228082519847506195406203449333070378426798379941771882384778573049239862558566116335286152795713435314524810391638351705507787722297623979208407088711586623991923319336495574109949375410066796880142650207310666332190372968824698040807054186317885193804782714122565417999942520847288328203476858489725525747181941141110041741566799999641975328403240933119063192104713467023378515181682298661343846179559222892272724792951269711902324963913804404399574050092712081861325429437494680803495274028786638624393417108857657456509859476694892184500640546563007857601863379039611427130965704638609176346038756811696167424770017570120962241599529760603853488570014814031370011280296945431637235112508802119138585426221056899489951830180914171906159263693473649530715417590666788072282014882919882051557077635832956721911220357704249516850618829530889889133774280092605574823119088319103131939299334559231342822908244952580052392312035468409591811803767004110412429520600416749760555822753840278557228994429097079220373479880867350017022354028870748724156877915062146524891733255247701844863336042379174274985534336281951376593862764032817426362481472009657057617273393219713701624994376072232561327874249377778589269330335964016213344136498402711391338427470757769543778601175664910861942707182917441242654445981363785943440204322865897546386434827291483675790906124620843234390391923443343496772773556111421320014394443227320381369085729795736326744778943865774890385918099259886296977925891374705285779546130320543303677522033550855052641852468351949293468352432860294168994575328382103070059714264453901409018029918233366474407788470720216230623856055975822134483772962995988321194341336945834461478359693702832682714104848145288290526166403281494081840243768279808314945204633401314793187522373778064144956575621060530337373631466749971428199074239705585981535036662090465058448358290370627882179517010954976396032910465540606926458630212687402703333762870900863607757172312759161950765391337763291958221560239574342934468871298084612180268971042434170908330991098588888835254085942276917768288120756179439690119075663452417006163200810141847533290811300309310975867707303631842545293345309766615291752366323656474216904228061697515605333059925079176825022364645999570337747610841475018859988302655204068322532391058724489413214920420150763661972890004060592720424962760719992999765156898504788208519098035733115741544655500524131490124398995076737791147971421276661555365700029980643522358559463340291519655744773725774525517368467724114822876372680019635844862426037986498657582130805125486775367180449618700159104473879342430418785461787045785436649442843850304116481926667184975252670736583993025400618865946300442593498642188736746677914010289921935190341984732576022585319484839338206114648070364899786708653140531734815143246518534005640853019289907636016009140767076874864987866144724164384262549228598167910812920521882291519447434704103619261982249688650183287881228655261494487243355986406705534886676421607699601535508232824182707156181963143431092962804052569380172100643874560935856366533754096152099368441090064234555949678992586527173749829803717638644155408339933247328130954900909116944267647099606051366703401744118303662250489910202822410449800530639392246517643281963200444786431071064518182924901554707466301366585027750507967666944709231116950742845792691986465479689769857442471202502619936276904918689385379697748241302056076304338922473675747538314713417546782974962447706654093819818294053395278667728983884828299114239277363245716014373375263048026324942165455657671976751934720546499442516009891508526537508002510756054326553772723422307196967945272246615973866021741689039122722547133825915532284525152266946972817303175525367108519113588765425443579041298241035431744232764343271370654209963215706364060968713845246245663352691301220789207803854120376020634119553945346946694930916207958199116593075741982692987786665036590825853102107170150184413675291384847390819223564708665621950319865198555690374767109471408761353154871815930278188382078139400086999967045174005890292947204951246680739095172243055169301048038278147544641937702694249327243368125202460157153486104406075905633203741788371475352143957277788274638618416087213432549823690048373821826384009251021559976282492414832391100246927892536253848077699875241682775157981445345592180912352016230923561872620356180637137437050124625681248863511622694756689681361908739138611682781042246641848813774916377582353071751093363651592078320285074878177329456795722880270292533039303562960965509081112345990450064098314626001133976600372981338813161449862460738400410387389523346770156047656476774375309135303602773064948548181815798555845871362783153768046482215248418050024360485920424819532883678403638789956319332163183177839752991937552421965960896506553739404460898228965083088605090890249651264721191096922940386605909137826663597944840783267636254438297382631612385127135883189511072580994198572394263896590594982782417809235047599580728228798338367066100204159537645690875936082090530464645605498351090377847790876519746000574937826856962268923656473689664002376142139140408853022853014229240229342391847460728918244015840316196570370051165037483283612130517927679202949584496107578731219312362792490708774704940277207668639512899595810379182555275737019903563985512824029479351343047014985331634148827241470870511372210732637816770795704244352542402658784910323099442185047657104762926221526379911773502945540414719797361893916413646795825081052536221009567308707059953511023282255406880818424246132905503411246368206259564429291757401920097057467517837870949738346200035152023509658220513234951881288097417013828007277492706073842957867654565122328069601873592793842250298239452654566153768909500376120416256518301073537003907029150204753714277894368805917320302711857789917666634257164269537166959331831417686469920393292873147806545499610556358587858035598893825325627842779752774869590582901784353170386419677914076504812980943838768811633599534749783496325840425665564883523023097152638961085263284139935517370055701579243314557133926350649126910328745743368016847088321019831805725899635641749947999141176464087830985873887601262243929152513512743163114240916595798544231194074263914199573700819368632439542888918921590733557117772516588695449446490515695732422360494291061139881878797814569230082568163508933768853608784915097614076727220176526327006304042988298532360410002404018299071505820953486678658549147523103917653043924444519665134251485886593572530618789331732908416340355221647410415435261375821818187912790652821080566445817008188462120953276418823619373937158454165450046137634755726916725247610255780211198221219161676924799468148510221108354686977604706507970232697917944664058254587841235137839159878685765801747173575840055450021699156624893432775705316234398574651211255669761595794165500430927839580643678562017610936953432274420323727782921264107279273315388054265718719523146147608512412071162145370705234609873528525352639855517375988621522832527062331717710576468344207112184896971626329212490614166624188760417868396533520813403993199974584851636867649088685910452680787306216050214958591937822714926533322860968536505039861403799578393235926809107789054855586108859242822422592774477365117818270019813885316073056803365796762717845777429169997919369629629072997268103049709697061750361784872804915714553234024897008651825057184139097089981443210863274307629534648301060291760317398316298855807697144339567729015294792494892573053103628809298857109774203433903894241774960849678531158757524460721062635221799957944832824964981796880877703560490697406097558151120951620501327709107803913461147510049698677195780467282368221758850855512187378823843550239713535647675312848875111455843944130756166908021940470540250925616388730579959357100709542152424023897386614498430269643615697593835035800086525206634482325093428912815946824688131107670648072715392133808549088932174463059788581127442534488131962175507453904692292260778682863658751566809447504786267227357076953714897264860136280801508442263265972211471187217154458187742615869707938869559231035534774484427102772791812654193912554760484431809343679664633404282833273374185062986549946001209056686091094950352084418389916340306963343519971372234045101839365628394905715741199173881420686449188564896816333551950660009288433325248067355841713374961715055093426371894023253035425993843941877187420881455435435616430348910314815205765886944478270644910995335212843251910491246905432173805106794185988054401289425123258990996231232405387739821014464058496559741586595232058144988525103769306549748931350603293607448181499898201118274927781520113240464303834000930223108054725959755121674670665922944438571075829356865159801179019948045358247172345030176398914902214494890216019868415175873791916826610983857384537652804189009337550323487675887576583508168084898048899461346384675835827589450046648026022470795960731123470870190122939638421992508876853711199854331293724294847578836115174083358437533109066594270132580329543981526920681054804215521024796511454543319711530574099549378383693200170656410239939685203415131733092513860829839610344837564348547094563741106045616668328026369760559410786005301485403212528253223272517323249355788226593959508373340095059845300844861549376083077293236978053902069489843652286792858078158108085806495326331730564681609178514712540008807225793713598591960203211769851661813820572666448797145605056476417427368418914506734245675641604829030981897917595674479970441848154395604702337843568126761771579873748731652445882100164106192876715295197730961257950401327995125123044607173765330443488975837750220067414677801697322800545673449942537241384582367759639957228554593078385191403950474413617589100741462268192976969498861286529855178802499331966356382483829419247431923558426763507319858030301534307486182437832522793357993835685378113275565386473002476743067237584455570664332239670583789750194011098458453031203974160814952863365122483951151426513952136199492804776145672284844312856596154497313827859533076736960149415863707036217565867010430358696114579171483445820548229597116654702113627728249354079462907060140372016903577892399326303272607254506004036460502838092961007600067621093582161548809682798180459087699075582797111496748587103659798177900559920461992108621883339386436767545357823633698908816193564218210955951100939837537477554658607786559433062248491278978754508135580009553618632247789455782167285821565583485741692055782234361503253551913069451960052894986940468655864528839323919612404399594779057554351905822581270246825732160269935312376217316256389732475711628596069997082939495981464546812429119289449321675789363587752365870831262612976895221403712133337137363657009749611146795473894021625486684146352498148656843712993256610369032098432452443637457892832745325401013787354608708578491533913301848796502158881092990371435011496211919724372703633189011799293100919897206605891949918385269867800580939230917378195429850851684668129923342594667076177767558862080126141261464088615606370386756461288814378861816884069210573731007147127556028255238461049428731994983801419274943751006947906095976275704074256052792040373513225643720532009690271261787884195824392343316525246682094254662729793482420950273277702953598156498247338180616393871547749197535049321791743206684340920620175808477830518875496124423952011896490704766018606357333213987937346739149080881235134551377407155868222354558845754468634333775403138713026260714622401171706024010652254911986468430964157219449244602828173252536670353723004242498660648053112750195435652322568738263515606179781774903631475049573203258272282087901580037039472207847114408535302162674050665051256166950057399083273250689952126975261606027252472836652446769954693569475947257566855811894258537772576809839768588064964418575387172908716236658429546000645728360531387581386362944104313462995374182776271853061591934261217713201031002114525657669028709745553310907385811128955140392716687522479984987499178502589268902148245957825905186445482530867096054152463916486748199695691963759719630398096105803354613278943598184350869745259200054859003037296168307195762268543536417311817450957993316477690774640274025905255388091862936860458673952113310468554748440381710725066369101455731473828250535705756613939175526069518689649250344686647491465261560855050379139420298199422219947354382317832230368471373302474855942982638040651298489197127731269793994244683681397971930894515313010228207176024113229639122806181570953761845202287863361784261035310734175920397829165437023953430922591085010805655918772527775548002700192946141441537672275682553321417372014074713478844343631675916143872255943304949771961233842226616048964396242053267797041430802411640119680891010920634290380279255156967953244161928348664108382860544153699643659319691377778700593603048202291302651459229613455802971827243841968767243708449263675507056334050268371994493547326526563206627438083699582633516760708235495298561583433119524392297003987910675268314944224875870597119750135716880807708801638578432778181513027786831168589194611430108958921839289713359413928885648854509163725939835974207671570746071497524605986398966957462315777686048797201480357679564845898219702887616123194701320955924214488355505762723234434842642601175322306182230356585080470110118991932525717205499629266412977350428504370262289723585281626756378963020389847435594806121738739066853543845303929312988193883304118342377836147805975750584066225413362933578093194781966392974235039084805932006978991767883396869131974825886474708627997131325613717273081653340613946256855059072754586450686465652776825553429721408833837278820102890293240313242102002610635664244369661208304176869322010489934515597321174663009086712008355724205292251062850302940669270580504400681819227351425634658435481109593207340127496949000254472079736037916466970319503383284835516767605831036545270857655498002823947822313718870396521642078414038632005016875592892442489164321079620031371107462606935918955818239988365915310970042358174294600735961247432905721092909762924104106566209235037924431392689030306220340787058475213684434981400664399682817772883283068082967474851072684228563950311923967939970227828083290403918794270125640317319867054809038172901093826770327618187333823329928735425179121467416968444384160995792173492547541151695503632929460672187983817798488683627829099798430217204175362522299672743257163080332626794270088346679931237227789280490726906343593863344827373494687180880694508882406899726165871343751874071244353589993574950576391055026023488483193010977628751845555614279728428487603938721304909025418488426977514011626937613955045856899047300398762225695695285227027007070022363127827564720918907236614533831506450866015716672503044253134573076142482529934735508200948111074026427032879613545589972387692438810975970444457279722559558214831857922116838192022376660147053550332990566389961139502003559003953143148531999733956110064596295558214961621580455163249615249846254913386661556613057471073066064947612592513473986724042947052713945870057114461774359248919999779853985891554580117570754584198570746444171573528708831815566490671161372052484212406756883333463263093946744059153928124346865274150763671083329467993079601213226236297192288906112943956865890674688582258888398916501883553307523319815790355358685515578206546821833215907429103474695675663392485415223645371500388621789026343137853026622744881799998738533234152500505075994452916010384924296473792314485199676400312042619311018390010745597693245743996519682211157017225000078018520076909279952748195722352249009245510210083294350604709038217623401235278483873772731431981235331216735074162478419546325344615208289122378046922908509386280752677373364891675275108867186907485731511798719112758973717212220069790268627015397703337623539168573023532778080515008525981753295550807877886672815650966691615839112721698699388759112688648485453452898384500172007531788096127347744030045241675032393038367061707101305504380587173067566833533745378303685599937759086951306218465528579235933917419171205417969987256132453266577397569709321705621938004614828574998937523164351347470736588209810605778865416514732489817870094630138507925592226072971522620388194374843914310594095992584334465657681739689326110459870100372754352511637744161227299994101861956605142159694120635513144859719545286080974868254874524459036260473138064839379734468186624970072155471060193500238648389343756227635012792584941732643662372023278553594194930450011152493701147634634157542640955747394306944563542362081212241176373576970867776359301935638364440288936305078333228036674743943248657079895085250872741832683527199515779265271987637499790762084389463472126203607830817381428047878554978289786227472441770030163255013397053724176828153235161769069219970255699962054642437265357754725102403129943553864594831470194940156026684943031837836936554661866566254708258607489483972825155891603855349506451384744221188275629862063313569213435053541753254622942738570185142216047979181239135818570233638135445357112771171943216604661431015474198215549290475621090189572080606234908802904067854566746372417724868119007420655784822192950106596683535208679087585534490092713251073537813112328600410529188355048282568212439318097857966641441641974384650359754316704183852145907794335773149648457421486085488674529131457458931518483420505854272116027520701053028812182044257185040797177351938264441514303400003896508354760695211261435151449409699151517833258517247989474052420610045984073638435113829829335370285516415328184689878043592175819760111037188260115715212198992803575460838874094737522040639123362898280661873195323552920401422000951548088070610074538656397258970803032798551240570967529948775250348381191484476396069023998008588751011612900600807691194381030260949480659847619690480593217852139982865901636139729473334245297578429975902328892122887617453643431583753143784957460887473734258795875821990193538981422942391794151561315397930251464137986089598876754136943230404870285554197809229580446989901929045589068465978383379944925127160494133779070648657858949675759940506175576329347568082892202911154918648820159214617765449921182725498867656896225170636148321951406030844868842947490817141227669895297665284671870107291933779292824435324313828520635706158076925928260322211940276877904292408365323232151023540753423210947605321017167804788960416851071973969399186187946346189679713546786722440290516444396478293266946358491866150401165503213795823884640354533706750014682450893963508407963388339316440021557629487655451496229849457357045563984582865390103120311995586329789859964274241654564022155269311761821934040528049770013958185699504506269083218442209858065603603966505204050926529449163112247412243985455233459397360215848895956457603560112394722600290911023235818327077603181928957893191200422829722719276801057856446673340203186065797599897673630045155344121222746492117841921042993023304754593408148695733885585311878925724359962470195810494083427130065971636437516574637102498705362916929006099797979820814714713112899508518492003986404614653025099491414340358369556884216151820006672539858532035670787534474101821344997039591787397534962114723677715107506443419320670978481013906119468142996565946949980301501505043949916581936434061754712006023253305100568566199539885210969917968103065156627611400123939441274050406560022170985477796442468587486319694618955103513339164119590397189387610544264230246441278596632014847955273227434092863462009840598245338576386151933644320983391819574962950525271704159411032941605520070797004452742655032910680168291821505488657297908306573320056671104039316642894607397427613272069913773588877646840767260164503796909067376249123181569461325842146511243018088628385018727320829304932053488349080225799962089315382043458746206252362968122407755716676147083325307435180280156466152412335772666545968950153512096407409879933525112423683932555080407795389065135984869314857268748994901408530010625403698440243398573821267762945491927728192707271007595054194545037909180516361580836288870015386724394500702749898432185567647403247143923664843411160620931019601825031780683539857258391335713344930361449170866597972333881453092174031811747752032581674338945826496752752520361126273672109764543134023806587201125134514611723801638359472687522817638356655896188613216729989394014941251035646583363688776090658837696741829191920311945646978094249838609041603309637645292794234193002301740054343225854625094743545517096835436975603565019923851473718492670597233277579791173815247435316334241172984589412910750455504288587776273734066330416039180826874172606596159893360778633070199222318466648889304527152405511746120223016036619219393661579378673696158162597300582128112825576467959494028146674576045577470673902200197698318259700293819541492759081133733236058858777871610067258359623260496001605899148893422047361613271007545230048439431098999163722188623262572247230711979182304944435140335744766397083610698607144570069276396639734920292183462976443818601893766880534512777038481569085406140328036150280386094903353489323035792511739353041584113326547129056739888443593082228303303222116592985419196559797184885423887158089140369301617172570015570614836906812742295502793463522645006869343077482074666368747614762002275018155179697826673741459504387058872387338963291213957303994663054340289132774681687546695021614124655037009126591798302903887348417613972343394556935660083801609435561378553746892071454423377646719631384646526315701017132358397487466544236302779285419045015666457881859979478971251481140502377690261728979301308065657163121212079142907054215088898379545365916435512334174598794809276941751149031174605522455785458135586702153090077031955655899599746805741613338361641691140099233415564386836225866442807940336267010522666936192467472371364090542898520518835100369268187997465647052545068268393626406994422311791299733364106678173591597162898327417728872302052609804248757771006988196240372912716284558358478403404924364878183372432037161878814931836632132424242420147187986601290829544902098739959542872139066776982756308916794217401688235876539750420302448986418896369096316270120557681969929154992775142543788129467665083250351267168466448444547240410124528064217832732227760436916102880783588718437100518084017958014108352816351636038053463076389194761501869867367060501475565451912556348547440616202739383503562785615295889468170169994014332311095287212448270472060546025850066704075791114136827906978686587117792043561148929968719888032590349546258685078645156073721715399533910705457420844700489981128289942160212220926244947274540561035820926425126780398190545265944373751942813217137033612591057551698992847294695342429807232562902588836268426784470298363132949660544162538614748828347981673228810978487694132343671883348297513277555209811183566129984856870217344971594558142051676013631681044749870916364943156667001634124731526314664694470222860280711813992815888751637214266832121415092317205731891117328825980525201560900415547775952404089135009403651970848700749678332743233588694631268790098502313172066141132108607604861957063566245230487204929701679457814582009036192806782139458937433777693126987686811712481640849105253884239333690894635409235802310817255763499799694364597544489485664773280449886762357891730215026987964549842771233602523960136788902639127631673348690099465888102863102237495535995017161877940595427203256807509917230406040592447593475587819231150708603864364001669769358844410773687028457703794092834941402822129586407527063935399304447238508439688527577798355208317581070948268654551492346771164511885672238076006299878184487827005272031293884799820971943202275713635203988800756097935496850722217381909642757568466440784384976235954164378986071667348604995364292157690926961517095282542108602668881287621322828870123941112135608499848560226167435034883052115199522213094722311882454739260808544121534421043454311042835336107232244610950475490308238497623378772397985764670714850727011550335079176889428553256555785689141110539376812300764172733233555555695819795161678765161127158802381737058125843376445496393209033630888423831346474132541575834085328701621478467527366035329814219899900103996516639857816270835896248137581128520502746831434621865421002873579845306419721733111903252007346192981287229517898245111770328323475986403956270619085455073580791658971007776402290351977055165146315695428841424375579757096894223288731250154465913235682234856323088186214869175254442042503115517112520932667209352445385328575930785720519631126771596563353595646066381215699176134271050357968934692560977592291135575500449546809395941988076919375288865024897112468591619511911805736623365074921836732839574906693966899486388125465885588838303308642792235459716140863913280169686706096747793497025136967094921185182680683710393297681827934909048809926852979497855733371545681229119082889999649617367275829677225427182642232866400132724327309242950923056622134697756027497131137749640216045186933589599433451701314743167166992535535262519182296068551102552106617693913058993047044013055539478586631684376918286472343532485938877973370002374344405223057833850423369748670050160028663716354807214257274236347165982592000599527350286342941390667926697237987304373539379577587467043870950735671245544966030978961181945541702455921930096405938055229427692173509881950338542439019622355656650959811895084955834758326794413719433477706441743068760728732386031909376467452918921839273405652449125058695651761156206981250039315388458184406490819305513822068081023933630856535953832850815185286024907380888193971974192664563416144842651154131695628352519591124428382628810103084755454897369025403588236483142440595060433363721723113697973766253778983291481467685475411897102364658779329452455366084629871709766714521539359362956508416867938874745177684647019705601206291119659392716942878200104738422691208420374736338838627479266343817074600861816517701247380026891028324861454672894643770339434204648424196702561879164897251838674622230416516000185643129965411759820850056332395241632046675535001335372968491746764631941349922374424722463302202185954740646378821188234593940899689958667766370114295285312707935566323783256196678213665709220602831025653913540119066214292393816411208069617216043809938799300327913519396160545906725965724244388667309883949480405001995869954087761066913890684279935646950245990878656104815262619488029162203772854404310761915233096761345657898664927602310346708078390992627547645000231115988151525016675637395740190577034126134204163590448083907653748582777525966628543162988331420747782612095040776043338836635802430892448403488354102870614733963283464657835796697459258740113463457623216081042397622251689597347681742851273772134888431264298689167069631623873420014694898521423020835510710710502557188462778564403760534154873713405703530471604771067752932007990830085796335058913648697747150937612256284483514279338752636745707222002567691274834223794366061319862676094406210515237198485974737929740617724333077735380254302218943957667695095667279812485008486264258848457967719356146646462601496495146347149006188672601302167481074660541119266891840637883531105630441708083578019992232956434743032959791358894379380097270442582150692797998883144672532976896720924331096787787043725470404969378268535332779967817629151867127754136572668369349108729256606562281591526335044669497567922949764583960403124782609680807632457291796313570638055301817950615589346192005525020421276892047265235195908441637059762275805273353990572737729245898431134662089469356846280770879593423614342618357397284121665260195438481774502442968737870447818458084566985918167574593630071250992994559021579797126797928681418361794529381147438345911304949490625457775739657448250418936610501567223911406337904426932767178357282347840242922904037674700397134683438554640642707102611753009130847612735756388934449578014367197801389826534243776067204873056592069332816973770772050673214000573675534498089554053868887867159112407602402876493610914648563243513922828961692053847422089604660805903823099659189334258907900622370408006699792029798194409277173502701273368468208673831027079479355302208227752154460927356207151719553874896681908468028606626805266261730739559289324327665608205589264922811457207893258778236808279305050030741774353514258764320918185432669406906760079190821342039636895309452563340221307302098645862976896554724865262428461104736657509041771732052323741407565848993239270868216794264326875694735191217476911115775407999719992668288850793903934061031042132964682504077064770521769095572432685966471769863829141153779769760002581927239446920104966004285085470014809180810817266504567967186688064620584788093007116714190784971339391499399525524545209494650784349719810361428778184033220570694639515476946972767747706424864607939235195654366350830702520798246537427425699694577564626119873862943453280541508276209906622774358444862703767092488431396731265635680597853428581984460900825022815051063672691418876039788319773186265729314218073290550935385624444888087051585120556194413737032854054757221463407137369326552108693222709423907542994089944254445906867574114322524261672343521912782585438845595167978299328323642737457452544546052939896806263513733587214850808820205518659958034081488329701253781235056793050818818568505731233257555542419605427358319447976432499228822660435558523349606680905502905216337784746351934749713022329493965510415987839740167516618593605179338950392466205245511268837311120785257244245799623294450168341713595140252095179264681156829820313618827396426623321676441524695487558164084358212585044247670699693803758573003905790110515414779557179169312729095998221364115981595201458613678920666663532183944579112942949372746424648239215477975615733670895761840575322098504748583570891766352727809495354274482525113739382912378335184147182784881809377625946725543342069023837559765846744498857297100153365702593838609837888370559661656612261881245463878074036437755829259340136451738584462455407649029616220229244791778901424327249245624610572832994427679678314481934670551757083502942567326335264906514141210237861093296718863103717170461762893116167259029067712239858836596414924553081207285708410066076168543516663530341382801133819677912289974126655244951348338934636181282256499053411503179141167093830767768774232569803429140799802919107611396530776180407622194451519402604063470356799353883274378588152011080406490885175270082056238020512864218424823002632432055997998346926232665644701956357300679539057244150398164239082136235132717714586191210328112357269933087662553440894151205179902731473868182626644475280406727464085723801550389418912595893739926501687752743769741533748172422037707128664490771162603154417119414108348606899529507444772203362744266818471196563615713772424615456070479650878312900133434911136292975583609060175949453796861506817908507607566212738100117918293076118629911635574502602021275654360951138569094815424476722607340061037334261273608044855312147578890237559057711317455009411859748652962705885639173897159515988987014175869648654185324863779433780506989345553880505233124949841887573046444733144459850552473986539970734623381939800857730435695476169828265893810030602411218665685980207253371656135335099218859560107881521955992984830737114161764839950330037898824790345410532502054955693588016154598918936886572124748963613671862818854644786179243581710112551851317871774504307353645029761507292301108330802551534951869294849716900991730394769733378956502295614877878048366582834827540230192303690385819788534303828558273006721561304247679650997367389863963084595330994467366005278953510077510623540518095062072959121477879266263385428792589775958630580646504484526239133538342627050430867009467036220406339767252991365187842306583966702262580562122210733541161850293635641616655779237766395860494693244550805903617986442755741294983021046969861644931370103702775084860153961665864512853545304815598296382985981545562592486591863288176301101499737206920153869877418621655782087885028970856782970192695827695239408257958934666666883918358815549069436830703532763207934945109365399450972042836730670351441963155288753214822189325967173707812714051334747386080963694563512019018439160557338408051663829148862479351379403713197966875856259482942074632416148196268288849800968875641317790265769105550802543228031258589984582872083257358894763134926062496271832200731813542439536437705648192953995700144554383910878449144193680471065163474031170374482458505185788180686628844170793566042698003163236349120302919753700996010666193896217318762267071826314852284417279433406818103101838417534997349697901352604608389864938417085293469279158345594247787414758186260672246624811772249856862298974404384392184024560360919123698959782488064463195555559308328167346023120406670072487747599806326845273202557015621687662840583268894930505193900504950495870154003485427760246248588466667342385974454567161141984303835706397426666703855560964523903570201073652328352769206772213666358574608076159948257589026155644286649673725692080468511746267024678766860322879651197857616442650025536622079972039998656146915511996591892609987569195721982755095064759786156264742355786450113897041993509976406676557120850295842115591494729075235534992741008512949193855962594032638202524988224921444475588270029003679518705235762764423558418333071204601246299399154841958135512551467709344714433092476373215011861279838185602557163141744264421039231841248615613047098148024733881256960519677269438321490104652409981501183394145060084222913194160995009964496196330766171680279966145964908485717408237805713129439661036877272697904349031896749323216657233190372154146103647188424635680197125709771242045599277189401630807555791531803886385226329349122868944587124407187398513109807299600005402969139086326671417923649756297192502128839909708484680439071763198298386258976031273818102754934261012824458351039724617260027124726441028393060367775439840384623746557117766042747940447110253227526070881915259623881035944912100259215675509990359849028736639465333622278560198785244807812000092267255630431187021878325473868804409188331048255150339506237035345911575694871584408122253546614612133683291417713871207911325632996961058630638814550382930706507642500409597837720091354284328731106694070419993253056831695331854406218096083461319779933817165917065487955211443993463691039132585349777380538014249409345036276165813689500309512610570841234456296013280703948714675890101664115170393932146989030266726605846735059647527480561780786795393551032684912986766565426312732988529192700824708774002213743115658696907606589908547798087756486559413089027045689772974195596550109221935693238497816225875176465524209255740925717695468860519010003160801289728987052861085422973909396815077500965971737146008611522092622608527082988364373624387798127745117082236808061077077413663347955743533547250663440979289899184082181502006262900581367815452848577595273359535974840872450053882741039998701952126233169862828034388497269141695862950362027229748868984900397414716167457511413346027344974235505878072186655258735064125308324573880356085157662659100847907204770453688975071997435665063066316758761134751644189050994953044117199851499167397662294269445166214080877491355367345306518299977582014657530815794081675035725631308268975276869491317516603141962741227162095782997451259507368949976478651309830445539167618793163664040969778731171580041226555288637091406258178846923903643987679438994419596332277331510624171111117589582042138226824715855862315936615312894321916548928211959762276658143596743190469318970709546254984802349550186923112936640292909966700863878400428904420862483661779064302063305933920322434365160794325702465868466897715343280772170987980118148551579281644492135430015252996137723601077292108595131459952461659422716415747632365702571880611706348762926273236008312525699654343218937450779674452915427894712722894704464813147441242211665900810057217233044387008737360533164683029287005557200190699431998706454465506242821727117124592068124294810550504047059241052883574006564845472456074875624763472596201955416308086991308656786967875539700812791176866919496838135150988085209582767929487854818158433903895764802898509257246086253006148886286503065719865793656157955982572991894328947716189620569354672805441856350184626344267485715560888443376776775181119587963168418536391233749766123771258705575367714255354528010236191288246608468567360849341333119579933540423335773588963780531839093444280492270352162230871494436067300423117979682863905171951575052097655902730996709989020051300226332647381845202399769112952460615572933669965418267875614644743693887290887894259922714756326206666732908094698629295343111076243281643273608630864133864864668368334034117417243361379086047880568004597543289332721406080344475032843441146117190967017625398428226686468388170610025364990074317384700086148176164319642146091993738188776548270699793984153938974909461030806089521056237233733955299064854565477711132351150583518723974869707635229334354972561003011215891267832849264645292657116115146530034496144130407078693714179233116662476964087635487399017477537102018211428142144824621320489013665523144244134042877529811835667348556593691796255853153675107980671452796637458994210311881547454807524651853170218249967058200928170347143305649061103029660077886218643958620309126219537459319155011169133155954733941172086135358840520458592736046321982702240715420614033109614862990759081033133065914757495394365387018430653038342790401430598298810968662879396068421340105866813687700862550410669655362243076097486920666744068427555947082594037595454393281264615197860109409221003946623938100024885780821530539641236263035680445023302479433432134418808431469281618392368201869189398393330782579391518765988615852658830313054820647419923861166216919045975656253336318446768950752992586777308978113220554526893234119637741580704297917296184933765166937562151464881384172662171532362271080278418137745960978655724521653492678760880091880707514451795591893207464840761990517355858488913303280635078797052313167676931577373187959490721237263799259715349422416504918609591639298051537541530560108354141244266350884117088954264409770274228232128737818584813773935509749335551140624466436894204535523793022955699025688892472476482856987927771770439584369247240062220941325554943292326806265100656067112487799788039988221458634529591716662481653228741155327526411248966562365362717905170820153100267353958824702235281639972401534641220320257977808273135512050193684281552081855499751491511016991412711608445400907620830051416461882552963462036087371679019058251894683895404682662971748668008393029512607766929924069435225777438631812759679506943700156062505627855914341512413394030327712953253107118617480257722349489292521980974308952122314619576662075923556359726690767986661233291059527961018343106907702032228716252083611956494811752997132749730597835528521285785478442861816852571073997916448507379463019479486010937938364054003035089249948913801089313227030643660409213615225175033647591255299336234508746206252211615213453346405907315273240795593956003274879097386942606636143145093479579364252820760576736682245561277978857985090507465575999523325768019785164732223573444661249477999064293351032029241706181476957105077280191727166542272028024548065568292656244457107484434380924735583240595727928137009317949584280200678166703023483010740547421926860540197880276706177331169854901005325265807003919332218325517622195004956023295431880724870989224933073759045534887851895773428251250967651971856799652910171995101746478143027813335716956422319340757137678346086967122438121730798969383121704204911241451586221205738198926028132533616506332709612681127354457645034386271837391993894379695856116712668383393759855826461542797813317912057829123789989227627725615951258427540001446320445791065468667324140533658619184280422625821688273710321538212290016053895557458048149707951428828742756657075814826054824202210612037688341073437044616953135658473158464995233288974086138926037436545571031357309787030515797674186488333083334683061776199649533323434059168678388645247041275531439579402788421613759684918282328600669289116050761181598098057229676116423560905478275530999022836011825568757238788125858293421121206435351362342333545480003763735392284413374664475464899727153248706234324739394940743678490417272542657426758951827960203343622606184340654829291096947327758106315005802505689492133983705710619553810369925100616045006231958956852776338414533870921568787580321274603112849248871469759238966121654100784516651875999266072990204583456279634204397156524456500393326975841615274186890528103396227728680145702700318962787707751372895137492853891601345118147909121245542835114507476620614502078740552719831064913195084319393794051393560862448712063282330972563106568067159358712039921409666332251191044508321653543621993777585843281227230971764972700282533520236033469451608228728472752281846877737507229883391318768369026382449348885643460614702141015933553708337592611935438143753258368050686926516021319638590042494502607779328982929749310257474851915475821236842755637397781015150277718846739673439741825642715865300921367338800791231126616041891722846890638267871722469773414700303377094862942467836229172179125739785889572304938003585912363996896312161385831046483707963766267992976156682119846593415593391674446886200355689651840618965020995787949475034213451064682941891357624099495577188337647484493614890337338736408448766512857990600569180355802175743282237209829640541398491768614254113578019232843223566220125337569971038210371450536113521580875443258875177314981234159790077484154852468747186982843716427756796612188225898363586461233727087316163958782993815527341580288062228960322744791973151341958948838419529290567529135828470288997290468242178115881254450027577348975661069369938306002844248830408556897564911615693828782862045901715920661835559705573502183092691196050687113637921989163882647003032398559982585297372067596850212232594796092137013315436900473475800526697316366280876754686843154412005445181096396331779963270733270078424261594328719836710018530522110004993585898093472727826132452225547446633652346902607995201882984865792935643341058619206357658021349497123815423332633081824963302038636180607430078936284804945727476555968976904796307725843589609723556268852771769509575485467415631893654443452682522268733165858336717410453518601689739003705114038721607492565728669414463434281934220107879944479315289080704416783720859140380787192020468714895404296577827423277263006754826839257204742895691916760052052321538211408873240679725588369972297703978174778655445133936952804673097919875464405405015355984214901764939708993368236817978618263713774776189924213964754681521802356570084650624621258009338239375893985352553247370307268761318693261257733337290274919695015084048179987728373665255064027193614777325988089081494639422730754621137974252544785730656206162327584566336871604105456555821963228444258001613092292561169521705856174292971169937298798552686573679816223076859491733218637615077351715337805336399472531737904670385755272237382781358856453237660838981202294975179584990141689663452187860835838411893138472832576864873474621953538997800875424150586749780156015931136540552070950803525500481212312377181521072980032310175918378625405659625399485447107620238523408341501421890183896302766908646062889973158305000605416610521126183324563088749423761321117383235991026715443333980903010767519215606860915099297579489847091340484776037253316486633273997745741707870588584989036478250500607565276677666730181427983462997863115472471904638130827026950271552434583777132888840113322856123276424758054914145334004307351368200167103048967407913220417329365588638081990240250424758979906199739449424061393859002043745081712616036278391241147268209085690526837422506891099193767722077768737126770152907129682261584375714966534629615403528980698498199023815881324900728284203166454586451867787181771772779283212526968322976641245496739715278796804347658957612653385245739151343813784500518738591532963414053689484439722550801196079269028116229367043437115837195386577860034194671309665344253552356135039263743335590248778009316758556650202614245175520231051803797924160186816532721349074474187926304637935701957254656870769649025628311394908306598139258771657534329051829883074422093153945626718913650932778527585614188691505843112818062116453383461456499861027990887831599923320834970349900964482897361997260841303050161383437573503350269679199100394576485031398899804053476207979951035562800942711980771413862537468942006711292903794021105099312881767863557121288220584525902329882784488972855767643376551320983720845365197273566294540752078683774825993769508547458537785440151866870321270325108378857553525327422467456165530175294697049286034935237663193775815312691121571250545649366284046131575493234361611438689415519179552116040327941387040597365968287723555493695367249260335274498928882204488684436527515895468955885890718317292891292345774428441927250527684755038702706328297997585388259938790678996367663472636799709113700050045191515070502085744705320311342837530396450683734947465152543161640695883965696047762481007698125762324027656324714558678116653563357384133203756328577111457947736117758910978449597487134549945405008974943123702669160022779621516016443144632155674657986969134302091737537932953736310293482594184851531345770064943739097642085895731774231457672882967906750299223152573286983302634123352631634902064904297082100632648815676763242544468703921333767894896001251362652354725651702225595569986284251088668968471078726001673324221562512429272130805593262213072140936864354996898787430352676884922123183449241907637471574744625215974576466357242752795222891504064277678656611519193319181783056716465304813810106667342459156864174457688390624192018654102252669706153890999072549984285484195668192454519747093061422753151298445309182757715136118167303580932146032258472352811825504706062154262243245514468964572693823166555250959895041093425374308599979713700425885834030449726710962996976323360777674373479878835673010286471384545928791637490145406647519394899352212362474366131747830486884631516036592243576762762344666539589796468790552923902702010757218919138214831626852490495848675432931241826413466272282093653277283976675572672897319381293419430572396207232920071863867466703063646013311111642546802512289430533112509853860120123607044969978521095859875329303277162267982305510767692680002207418849030165005038534475971018301673782681943612416569639252294741035743185176583656034123276433900956511863260791733899126277207213516175222255241829612433962825182328696862544411862381233064034533155601640695747232038365145663557498734411685994161655182496042597983926781613148318090253450716466644267026276118597649132476829527278057032238343515063672177066376374024903046590962859602719797255378001418201998101813981259504234866248344043921136487236662920206393962884531448374890102608403614840731200674156229159669636694083603264334149637120985454752501773669601971461784645155559941672637397085864959877953242158328218410939164052835679070686421078034660757197989148155400542005107300962796234727249970112217781656798449194332226334150338567530824467734104550327428561157455387421400071928430177447314230098365760751551277796281014722053066817420350596794105098046656313637782517247091409925552471036812670513824675211720052849429521974886284898527787835621060048781271144063499088164592445189801044293570832904722016072696604619842607722478310717143909349289737950750564710538029161874918869946353013572935018732066873115017315310912967948625497958151216822075712318919091383383534471023659794480804712338827444035053467999529133546094139272844651391190836076226579839815642463829159990441628452768189353279135674740322735150689098775472181557499848834669462227119434351395727560933187767215742857830330183042225170496329716122968367527489832947231506974978874140021926700672065677292131084935729407635928956182812900110978472432830384651974375857368591230981783603031405282300813026631330413992533992179415764798534708178636113772001408570838639437703529183497403741835116223700401731882693932630875054875664529093265665030243944536227279170800381578513252902365105680962589179424001638714961212169469925442398674726206005713115387838833883078016537883877521159311944935956949179394057884886062395944418497289287230849557926072113297712137238869698636023682916222546471088062109447913239901540667816028934694282155062721260541798291781738248919973382953016826679061778013533650471886339784273533585623279185357977922662703802445696829686254911874868530549785796598918486218623748556393532156304899283486556154154064951221046610376548180602506765491340332738629416911776263813834785118364105699966094920204489502629446168466855106066242088314537401268779478139859577769903987707399417032565319355613000528143599456061261608322358990324895659567527576985324574403560761288607968185761977178876556198523752744722359927202060238916718790814708867068302793989768378023337579683748471679204205611884614435084238369737859482588497825952141431676898495921319389412875069596149193271147035874533660814943754697142919529031019389435637183593749148307423044934029596281116652389958110600093862221622655252976610650745271358949733447407281673926348622262971347155532936244457994650823197908769074458525370345709007744081534167863870148099674124003837808523427397788174691080535330509119443313873040838043067506030686269532124522901667503856318585859317437769494157410810572749444384001399152295292401680667458424696605569107697596987310950784518251857689800093942863712191016698078851710571144669507031273706962004730035675368235205815249186823908397408809264852704581680063915340134937352547150923527044161926572110042345848085322398093081970121586417329130532589871715885516842060650340556996859371591562193954595558557009347711681179835995842798195564356365309389050941964641889243417661217711754573714429402729377177659183107443058151531596094826350633655723861413920813075414610740512741348138890687520896517547286443489020150187201836613841728079882729582018977486126338360371109414086804414638189975514419051152014024187628978688233866528874956474011072459905537992175155647819809184955876752778280803822629818043941563979561725694090929518577447883651594478720682678596369454763706238206696202396620665921081278183219127468081453031421779867353368489380826681896912999835199422321272638771597576428521321515883717146485428812423122468402839056157796819989785562510271070628379399431907357979753622873719947845210383168668521420822019266723155810117372442375609151489386343666526579426037168289281580693159057152379480256619126870887647506950850111370257880233381801903021002975975592681821635953507064188571900594974446797417420252130947246191950277213237247025702961631681464762184643644651799535877759048091724695567396794553734971032219369455962778937791938340697253788415502062958387483096195420461546990222684347461767711319737486600087935443607302433663280865368473350668707408900184703067698214753133731542862215155131814095414979724670676343697696458309286795212019941406654043266683440819686918622917654410364920807857292423388755061809836591222653797288411120130691018576030498329532694214188425942866214695276880632082571964867134224698526419419022236241186339130284171844724822755723379969707482002437580371792180734202080536935740618765664169607739120909813494702120725197213699642344209305478465069237446490420888732630226156357919606309236991602782364930003449747123779455951240858239709946570275366759813304777505050536634574715516558372773100785781787153031613276848925357607846211478860351804029765696058486717567636659308748016099927950787178913104203849478943286084797051504283326524571886423198399932856342268607883443745309272893146092544299060787111736766959849633062177514884899337787867859785265280570548661217379213552124702395325608190678852803832422968075544717437748950143023150146961225494895338362756944869304674198022922555065087429772758076095106879827109193837142290968268728596321942836727242477443909060036804852784543854819955828743344189095523099265929588482897771967505439205771668938552397736092582090693430578986742357295312051485090384652493140068996173731735816222294455416149357871477506270376192498036384400160913611713729557661808926386467940279365670385305779912988573944783757639092679443336505496770742285963808721870399582714758000440222404214003303590360960548004718847304678286807740989832225262453168032034084435109374319499380299081241792110895423927096542582195848586679924115788447815219557498322258335674226798960098032009354865108549467676713405310343499864349758000215286835835721365978208435732604661260570464409200520643748808684041999585408697477316017505390253064903620449458476440882040053860571525182217793518019414711660086532948281060021915944692783460379829268818677784883782713148160668128480874790430234200377130896464781785599461837510620688441358628450630346441913942893762354742777586769014678228907006092683252250324639953337566728997660254246597951963260902742615157481865278192977983681101331339651625793318419407026964988951386923961261275369592060229690087420834720840833188415826838019383358973224335136412244321174979404766824167809635203566415433254150964501977910541460943749815990445792838028880133562481814072611423275972894824141887025957454934254722746989976877162316099322885042028070838100814091887352633318358420740748446573397838429805347106002374219987211762683334909209073865337959074928089283030107207550472450851183334676304759820661789998004462744803370196555021320441396423674506953708781697379969379061637848201169796270721270358480479488580658308963231288673402963848241128765952185362411256969749199057478280326299861231724793050323637705845698785774531610386670675558440682408910511818429025803298514096157331538756311438547792152983663838215871358824082012778384097362326475844352630281664756079993221483927156321249990837098930946329559859928728433521252427433494379023824949445785164936127032642339094544808620028353526261752981835525297880465028135399112847161281153414460389703165467739525876538384445746110351561641809273346254142217903310714720310599294953895958436885773489495225982103831596420623273071483716691798967444541841890372511272835300592982739374737571099277652356370360647348724784839684203742309758998874387876542841593565973588345060936129924492587467691542804598132815825872999110300780631592481722052213206010771492336601003182710066727266488949550942336897935481055796423771544954137177407995177501466695465574100801557934179598301318715461713838220333287263136997808093756281698575352925390236568114358655398284283241700051641990051764383512005756933430421802931523685411424059868057389737717209032816486238395498050084360235358582554618855942442612928921434147898267094176760452225134929872997435333820627622406331004883774527381188722581819982219428293676666000040379914870018568674554412319573518712379305995148215954867701054047820258539083335640618262225208028648666809763156107137641890902360603954124553570380667535676524726680367517673845564696693596022634258001555720896238403647713214296692193472420798729629861675796746082959712748570679034670391578658581112738257432519039782995445767430575299283028634186242545022496241979163982734904359411395898404348957578332464822165249725331811930555856140503105076548589915525542652886287528895545773678742029770378468475636642494767084854307354132840361634913471074468329858980951110201242544884643071227174886586964367223751257407663807577968593851823215803790138851324567042252785387661013519568286523394604020035673386025205513475307900746894526143616381246602094339688182998572534654355285404636104131214993769216302614831518234694209627911549417194660720665528440044356575326641438934277220905575184236912080347379886707969228398693750888161460738382464200081539367400188625730736953499730836725281014943043645634975213545319519500350764823703618453849756361633974429430988638719898808188086747495831760222984672501959183717870015464719437744024587964419343305273778617450245249707149907000518726929283458717863091748438785506397547781397976147102974805258930692216662225235373449011353986266028141926476293709768013187204140666876255459542229249384946271177550175862021378876760029805157411237809551927818159082066363654035686833244556620095160463375225688255854582920019306381533873656517945743702588756264732107732276466231522699379582538162507411935992575434703207518963927929216230912990259044551217209318966179934694954150218683377015220759113008886890238579915282639867824654608874627852622681424733188588572416651261959000329224404728408961960264923773072793032869835071995091733622206904266211379357378789633982192711117924375186838175762134729227304841109052893127397566546440159910892056359539550622684903481778340163888074775859106047358664560729940094200063120435623081164981455149655513005854611735524052167155666041333475875987920445592175677563283767227690115416492112246422360395403368455011342654247448989545996792036442429665248273506879964950157404621482511116740163812882370549267667972800574632906194561799730944487237467063062834619376926372843710250629430239838747180411277944515182108640001558475791284640128739950977629770826226345882505207818345760505308157127681646160126745615131039107176973845578732241330030005534719511669012581135208015630373046908093097927353658564913574711350904412759076490299193882008262173939592861233365729706646410270587838551318934657962685933047956026011545035967710140057993336889004022075384825139930863716343366007923712406457617650036410612205435688688177406253057006023018982911091534071177517124423703643637158902201162317102635650130243991215404270127303916604348528921717678005443537960268144769874794055715993778356399662100669274192714681089620407361116347202589862464744081961204033687520897010880633542844369252180174251211967856991105833494499916830944946984707806367546667767825383723040528489291173054802989310613282285243013974421278401082297992256374991861619095395092292352403872656334962447446903480575135659465046250309625011185996363024036541878244570740245894880605074168390715058032424183755862679604489403118420715618426638993005968351960880991550054081911609426156177996494555738936233509560216938453029407415354220170088505934108021537744168969765523900070011310946928000344435606360766131030272873892742266524989909815901237651570432773192185028448811193320110357105719444387121835232255486772644086673404544135367403990104641792881141327732957052332339987800916026700289290467003455063211355182259645456365580270462153147060321476780387345442039887757315364197294374658678276336231119864674608317162495938051631791016021743160036372135135506555681162767164832287962390037143316348095868924384711690483078965100591104965015992831438312018932525166768955897310518020709156128212794785768231503099654870137801420342350862188944511309174155201212503779765726305117588445579181661243191479349987937188974667677782724332922702482645480284999856755494526946870327503783940036651442685682081309020949057899622100814077366965566279789587599381603739294081898326023119790605145978038449412185507347234440464136333171482978197669866965514005181845419763310556350448849713422360339130058979717346782373472329230517388505004636025681998062728258112455591586015018439090409864180971710075461884773934911273571127107533095079036197946170873344664805241788806067731106455884142874312055368645075413123789205016418245598529170285529823491756815198174953565040453735880040973693100210161974099408857233681398906852305802152257830798584444988490026722154928888612925028852813527173780318207628086658198702133918612113360246187362649128598385704246054788599442082401809197362711751540474656341180486288643987511052601860076320866403208005880981246682872769158288851453555992972145134318817716645564502666336275157142261212702829023587031467862427302335998951338331069080367912289759223209005353398361052808487974347050510512429799469695877329008120707972879653583923242657673392144380470361706529595672993234416869309201866257158203504592227460113349178476867831063630236724355370932562694982307261863131091050164320612674246086791670377930940669607135447772041240171387152541478713374566022914274536828100929205588900795084837232678718659556212837654930431227464459773811156396674092749919903096783157044379273964166675109789264093117468241878846539287943914280719137228194506211199604942014167567514155226569328596939900541011164776752925649440428795835710036845090703458019087499993092734233237906647410746289811710104027788338214509831606137185058427903895394961345986945534332173388380442292218684824710117148515834710609975786976196816012437330230684469271055789326166001295993498597491718450334461056240840010952490311291513102073536606699142509744167108918044279263850255766220625664347056888812091343129654781619845396751548210810244160624449318587351214286010858155871519419397655261062478092540814247596466270191943785507186983496876926575171350176402003599383530178302781767102202449288655654620105595674157711590472858301654225614200548268513719162768982527266000770336835926768927117466145886443256295441705121686083735716597610278238848606701446329636821363730331746487176320142788006742493485684457268867825525550925006154697582885492108122224766822902775116822369502543987324561861209996738050145752145346770108025915298160421223116328760264578489208814442541782351787729463684916863787103355988029352879751316600965034502135008786148165275693425491575825447858789779004210159280113548097158154932538649021151389857756639270582004783308103193586172095928503098371977956384664987334554901336566062958993312667035425517958589534255685222167057206373166820932241554656528706208202685332600866580058396609069504970302254534936941843479918148540317521615318893601698982971238272732961881513540418704927348526265666408136486378871680299743419921840452670036155802038750040963721886553766105646252585967623112091455580614923744622486559052594146783412301336488120864513178145054641794164567238577509045217705499758332360916182468663731199597425637392431936836066334687888366489399770870992397517694293270431571634050583519899477212598612465956758031364020077933287978651130119476790122849334559372745446777306994245626020238875493090223357398303966428565992346239434307543557661485851861284466173143979975977684470929792773827647093562794945093757497580940229719554370143859221216058081004239743853304543467119143871226627091401261538446277366108865182715566402048997387185384279740871780398587857487216892636293407937055160183714050877149628160787383362335559788371360809666315218932287510522740371018412548297128568954164194927943850639454838617154528632987007434474646146503414460256193649389255719342320962385728409362207205517646982530400643228756038069773146999660101861018409083474528089280983391290914925830365117302996765473925151845027724484495376804763886401906348729677479902124856127316639984427361862308855173182399678817158183206309699648514729573723694647944254825014483727864303542669964431539815277168679844685777773176724214993063597651813595392768068710323045802519156036464184552722886148251459740929971994529105998334724104185420272085136054307357487622738407920016763466151090614719108133008769243989050542838285871745960020088457644825190313755480860179403410944189883726523194071831370537998352344375954898132153424084287482442809898880471971054529233998476551717751441096350331443841574283608079013413016396157944559087366278909144275984522976305439340866678264314016375717056188134506536372888736845773001897543538641536393817376290182296333049441891940659730575385121339862756462498470327918415111491211352501046851190089611707902188891880624882538422836411906558748088381207312323141344233353144433609656271921082476403927206088886262852588519928301333058905765272829571426194979164995894363177324749580959841491639960872405594058974095185184537010842391107823544795389772207975226175997379931801766025841678345852154531357858420969913069952099187860988612444010607411986374471530993510334286163756809485035927570474426589679566193382876884746673876270357798755596549401466289989209986971648540723033988839367611013303784045113078379970433116053326219954425770307103968439752796919730812802511262236007775400051308597498304645404951309704803426138354091344540564134101462193716056552804448400880453039649492973826865022745282299484577467343378675502800997560510091528866646587902625776895712418793158394872973887714835384248129311916831606013543029978483686352773120290302971077830277473895813465194275616066742843607020400238768610459207769656762678781970656061203397304722965481373446191321988589232186743912322415257741929078225709141401815695728457383362291885079486832949330533593193572091676364595581367992386963556749298651132482713946073162855012413231173726487739829651492342674132247288632846021041366966644267728104149594302767238763428606644807904842677191598564512608618704025727442774514307901736151561773151575005988399640141880497306997550669101292407530374958155784627683114837351610082642105686878635684085892011926825243703903525176669009238408264675261709260269710407047148153102057397997681579182981289235304146491987593615632212451682746172277968157330253255735223022968339827799416034826498569382639736059056232139294855074276485329426710589699458926421441196000845353331145040686537313195714843485415041517234706871596658893468794776160506525205325518877942762000677929174286295148036393715562492149219289945067840972054346001956298474409674862465363711302087381417548333816616561518511191134684732365538248531987858181814501053869413158042894105310850262582815712311114555123885490445347986700257077621741380291892762345238939140280529309686455602087074750296305685666872397749985911356208348594264702238540331396655512294052067722982107716988749068312321865667889253484373928939824303927063104601678559287530601787022213306811299142564872664971680328549439089540115982149377017032767620929876361529476102296386400390994665174286052716065117214013250959270559294839736129981798102567138533177106675033131782787325121501327837748650207033135506227558130481080029460517179886418646938301427222915794350397991778016490528277130295624570910278494445900502500126475623251401612039820325502752696951967074235168421191098209014734553452473851605450203448865261194845794673910324946017546065949133473564878481268188018707352591838083903679072721987136512691128737953771599527413426674052986058267277760841997469706419659029959562956055600022176378828180964658424294431160434101540324161837112411833413369086040738182186785929660060152609792043026905143222568143657469655420071610492607105516213629879300555912132665254334472375154831796125640786777424307070087662202918140655021360191663843859998861232751529035298703495321075289690611404016598021882803768053487149020830871917804775313608584141065967519604324017985891535324434233629910033903677261899140466810276148578721543032757524359320503117165170343024273760823271009896214950638496910029025774167136585044898207551353446944194185199121456681506843573075876541271316654235668122273722233387587767393622874603410636815651866493228134230424204001730539139580450340596804482575134055549046416335784381605886860227991791515677699184838574581978981362012970538786726606889518850722007442610297073712835694266977933820878091270526740228190344887810682804959591079430888100469561835872093432323304409697612377196896298211991687870983396113452620176959400345867383397823414732191382499749914065896773447434028358031537479848996761924969985182240176819305210022455108578603846905687663641289089751554366506561650619221818558606395256352043478945916167981232360574968374823438905559643350429275477260719321983082538071553885217730924299413144190263558021105357988665362641510146460711985598292895490755148136944093607176494262910340381718216143960417698528173282088210369061259770468314059876589814268531700310662742574082809102331168159759586548561781614606434476519302871734300921800100587395483454403762764601382427634053294655808884773746683625616908343097270069974817824245741942626077709798914229003500843321192397735909559457468156646947811010103696356946867890309337571102762086607087821065555377926088164133752939155961539106238153813148131766276032319888049792167796110491023883227506396471007696524744146098226259447672975844810138808410145215932988735385180730698100946012616786893086024378498607208280266924451098153916959736018213287944079223067584129848490365630343690870142583141989910541398522693075466950199902772011993438099809657194828591987672414559171595955750006024391473464999909496228073208901853177416621570733389283886391644137593974177979961906452774096579769282536534878288646972253655754525228031688471039269429944017744150565410839248185380972246265514689030002078212754945052791543698175496661875134783191865741255835539740773733416015611445281501716175117999639940611911008630470479571340953158279114969755061425259661879019404745287573343889299080029769877893086987339902732472293618765193297280946392158801058120917330356069608825523217970057600041590448817939229844535803797460712947076082006515168336564512412811294002079114608274243109520336002850578510317812969011196732086099490036742606578833236759989031746784188273762112822615043735782612823923583260235062150253881205038087610757792341102006638835964616931815750428606621212402530812757970025787253844905787402407677517611828280220570076803317314373322249720895322231769914830922918525246749051877165871928339145127222439107688038146764776825605199162428994666415868570033589710058172746117001313172720152645395750670172388733144385271949699753724585045185112124532376009243047239954398933276325847419966021261252980566184976823050412057268302788959012984790370101236347773267203908107116393032892689698589802760428530981257919573240805314535999506802816476376786162049908722050571792632644701380210327447578509598153769279437353995599069201108684572761587374741497813219922100979463616836883769800680193267246356331393619802284466029082574970887611612619391798898914147203605599369088389305805359369339114503166658376790682533810154946336850527021605286589896942257096353454924087953244983450152302310368334930834082351682915189641667157504762901953467655050454331891572657051498776384149079126728380317905379403906551343242579313304132494807608810469731249545345457856264329245753975443631106604365289403443842934131029921856386196903953622936190101639935285350105729932771839446878649027719241196947766796743216916617401837190656046390007652119611483507207555929101785378770569542074600725347546329875918008302027150297749789152839894533255407195166657532309264951394211425540451153778645696623468005001055766568622256559753200069485364386223037984856936822387490319549004916657833974366986091833919987237194725884528872540128464505663054723627109926427857024582922373042200103989251437607418119767998004961158488903136574404814727769349793351969079124128680495050177445358305674042673285789757264025168112914401728938893906007862203398066619650785808534824907943715105931869232064049673865635312813040791072222135766548218780519858530019883207194602635121427993700694070856559587246813655434167121600702677482923620401452985056021224418548337825955416419100110698441606111936134157284385573768224370273680210549049859651658297294455519182415160406551183970720272020846402043930729863001390554348608057272087118125877938449849043705292103749701001663998151949476294999864284937367525363175218833130871088807978839241770462788936077376914701380205788950494781158875639904502685755056174160558994625034600921021093521309476759343508224228736527388837423211347106010920493956173174885378022731466288416038867881534237539156003774078668328693984834808067071923600158571920292311134173510221745594119959835444561375619179631107040180474480380943839754826744551977505936659329500786951398347929873388781017794560817544738135591808299812498231500373506626543377645218316617295923566550503629887119356012041679383725200771593141903519272458016944939389396886129000119117055885151579807832197586364396223411559124784518708290402202070552688856767767572084330196215790085294712798233970767046678343101904313793909567418493179487559919905514096196893922557331938718224016540438942429761659128259606455657678962695006754576610574970349472098549641722192264151810279891105903306539154665967022021495454292522568011997322331862993012889772600548883051801907365617848724489615573216482574547538161434670840182571136375339420168400511442960030308232427627244024934395610559393307378279093954401080585108538114412665516154280952868117050960782891078997195299893421677946200201699898496514405533694909314415663747898278927807417117097798317152252276910176290637536782986869272805898815004823069790734921618995536707907033479375433604945307207964877016335038661247716798894046172089012433709581716007094122493621549649575492391338905213792848132560065407087219295204117451146578362108110624285418078166194941845801094848226063578640095318038055317525908824674419440837169751263837722218999035166081850378401036964191489110716279202497884078503577014056163478742264000063558174689957745981617176542473582133634390557463367004182631314361141816033296676296760016799420553340364035181666054990897216378910193314935297881620939541968206581906428364266241323705903925680464546366588202705763264918291587136360468736384505449748883936255634469025847997339724378268667920048942544022238694891720046655825732880233249943539810894646629386210678261585278995737113648254919496669990046514833047867362138961073979915734993372656791738205067948903357851703480156848711905733150307323648157543719277078267888498830184864653982118322884774599068233974621561258538266237228319698602520433786277355751555072010160597871217465069736999774885058236861823974059628238990617184581682396699394042340380271521493416458066506094255166330604931071671973308360331180912226728261653649177815454713336139513693578970790381291008172086749705669639627505283727439791628764864557681076979043877788536898437300360143129486649262310772749037059562142587514293266878284788078762847818624595678168662583026820364459788509829508925259441721135355859411423995153512414886100581148133714476205748937224169221906391313782811620178787608643888605065870832408698639465194511688837952774635359778005996422511881275601601791590224752139769106798632092833840600861021846713981186612051037717967858647158891191978082065110498720927329367444664555227833315561279846519883483619760801583131790674551241002086775238220655461455939748978692163232155531192906025885276633670028108500403677602024625577852652669770340069592157761564764259634743356471602185512767526489221675998015472591183530177901102148470226732507958525275484231626158929674912801498005754149289437240746443811161096891279255334866504394777647016689704662497021733473368079477321086193443422642160858013035024637111089416681026503673752140328243429336919373726378916898338751375557910265452952313728785719567272503523272501149088524011122123152239535668141756360827968894201993232452749115000568066190671007305621131256401829504993342817836112004413870830454117779908282985239103165217553221739083863377240702608516018650975472284511975391203976275960199053838294949822684160694237074685285118596668768797229864602757184502991246920648994694897748305050135197459222778942804945888936266175575585016684911380345406553384045092547795648368531413220672805295322177576799732975000077209030258510443246399340674510943312435873235986285879361322862400827815076560815539481580746263592719106228645291219548991273889934768984063069350153058083956513944024323250666224298765923968269410311308341511967555361378398542211792194114495619165388491859795707643267369745935938106687751104593905615875963496617956775816312907314395200211716241602363878096329901332470378593865529140518948540202174774349411807469378036532613139946208945557490603976970949550080264968790833922207730630331527199447948997819818289566397872623599650538450840226160712887069191795534834127291556345078392909554962176378094144760392676202991209797852610126161587127075355867886070133229374148009805349019787651172350139260320282831938137530461743861854870731522878960438016260215193217278125010153660955395939482662978500964721476963041420928560836755369714576744658251377926893003498187673095366561540940181812138145157189348521141376323974759124935970455118111351262638521822684142229057616723362217416385969594285558415266032581735696873478715282538546866170831715678979869207966857938520386732793631311097017509091536397157747854669238984188000859849849311591372836081341437393598408772681388157631645299040033170061435515871321048490860408630995545829324985126941508965889662019644103033569857578797191371874747941989023985576445427531759127821820679194009597944889802165519947491076702194965961007134306836058843980625029333392918050437874958457839559752191849939915665684207644401577026373497360798043894373233710357794629495956975286424169076671625974311702801304335272139209895910162931503144061676033044871310888930329252095324604243871580713741133334967521894678420435201200510171558881014072790337090139060829623257365434902251585715973438396432549682824253927771242235747636514746268630421600367373905728097415180263325364778806297783650316962478876630494658904139814536834964837676379724030131546539880841739693614258671793819140481431262211849010477107002065136340198655824595491518936088602077543374425879392350378338502501167727052720609919380261179501593818710043945478642611784251461725602723804763286997966113116147174598788554203789603048511936947192108774950855386289958503777799044798797681917449414290009803597502443144572163879873259333474843304573940812551247937720838298860465524871445206812031443287202182491713332412389413032203595572780514404956058136514098616007905100746445574326539394539164730244554090449359189950093007018061723337167982022317326195486552606537659624069393912796408926084161148803306464994054074645973148240396568634321593129943937077821600270955871259263938062653090637227159030214454082789035367016709815238983270423840016348101274986996593833187719507936973083569436728856506110250945352047041905954246820198982796106997322621366281673631229890562473777629237557610116540065593852372739150669064576794639205897165228649774345022841403508880830934461816836667371572514163826056268400920108841378388920760123000864027233105874037792368077723633760999633454914229514026340740695000357192016355410390524035290727326982389146458549806071219716833951774684572732705783001650434385226732890660418884113825083413613799619810169705273677247197959326117762234453981953204724407339455212937548499646212828779894759263556471124809844788635485768440400796454086534311784469866699631550715355346753318278942174905295408470023651559371913007076532061016462428460575445913627408024944264302474203872311368140350116491673880339796281288237086263147773710950925211669667728400056696523553312357273447122505849334210006543804671533515249182317846165102580881801644604999405884890852354086151838940436071934067129236726069448064599978077724922090290386244074458697014205902219888068460965151709482306000964657014364407668066372796875694071351567827990649079063277209044524503248575792807082252032623968335485158606931459783852836169456336186314956895751252054275834084337654387735755811332332244587416913044623332885304034168185327650796295332567196803046626222693929242338176147406217694381301816446836250602887868826388486228440768649870505438229258065848704040355625732567495201114319375477540770919620795371814882506166306925483188887162368525155484810807574535347566506910899890257900674711653610446354848625845329601116605524812366581334844340230338387669473085311468229529009285203397072972478459503263973047096928772755667410787921270676969147191629646778484264375541857569851081658718271514749550361565003713207380545212738607371349328329950679483810466721696131667455649838641066553851957114779798978040531315313046953559560125012230730135122823590308974131531872460657676506927312075405356228053969566709404554331001699200934016030151096700708703308962865869548111711644722242956459262470228438373631682761826381454527381901157150895220166955589525546220679207427677769230811522647511068244339134165002524040693302585989456339270364194407539781200821821358504554735215748043870509653774461478113468716565558883519727921318504550683553943076050369009362962387836408667012944398938544441878508815883750876290001144469012888129558556775237521659868493432422064333126591574887295399533862251753806821534505112447440946911045116323995851505755123125829401236747715157902678546634378329976843751816713246639546430207887683845141331311200438362720947289667797439488890340393339347714916556098784406261235812235129549256259585831916362448449112395365765871050788073967088109766912105133672021088490924983481410808514719793119832560149134071181692653771766948863256773850811309929392427973112696774583490608959014679711219754532868794910038496940607005645672377105349189064450652802955744757018578593533302534373141442053035818947250256597419922390085503338479296623707672334636290375995008754307502579639741502039884959037585768291001734410030163901748485633064220117520177885798427457959125026072781470357311880310825407223370561840398146430866701326413991073500244188772556351318020125185808148975409736973081487305408871737347442840919291643424402102449642639287357398240381058420037345869531070327979850229309466268069017927241787098062523829754926742717401093133908440060317715039883971756517156642506614086351975457345974732854603525770816379080538731580692280533069866107176170472318941722385413267567686410850693619772850880899912059322947870172365995791125474049023042173561164395489353844038661966783227383630991110052858370782496250614551882569385163576399303075590707409177917689600909421662686399459309871665187527628061216776559917910290609779887602911312938589553501801828282284251271767414232794377249083446842157094679010491342939738156593513336070619125183966348987890494708726441344580810241396525389714439089177752252411780220168874982430162373290165423895888029875750062831044553948727701249308315249497974712676481104179236903256497908621475914072338569985684899320722812683150370989919313076022276809177596019419663136065337542651454170789726564216949912776720193565187129742389742007742270600818331468689266029409808583955345298132643374294839713715782663489388817585285996432152468492022170504236438629715317037861202578285472396855010947264868652733936132705317091849608428679730630043616542134626766101017003598757979069986223205488026418532486292510961687965980769538976545361454574455400165223914248148929729381427906255885970122387283489024057385524642344391199345027206577171521049912790899211699242640970409416207231803949694168898542656153032807224682554245811114270095732327190155988537895755711619245963123390013892387272152786124203816814896467821416667587669182854585244394137306771464037343309404136447692935783257567547224604923772545306631226140550175638115999431970278836561469974535618662519921774758789668022046667762597743833899566039040362829861482702138619053606636684579151451491296624149189690080815398786558385378115703426603443048225501319786604767627111519141329606396129679567514855605359664271764873387754842166807326793446827374535661080150860574339919862152957878761118559244723527131690090072760229277857204073949284081028003889856654021555633375622291458982640581718488090352195923229845591916946392957967530091549871090141039887383479249362893105797115046206176901054689301366912564960764551910533627317915600645964827476548057231889471398410986013028648665616266629576250098178394457435203937949163186162324508410436164555398170233396828075408160676789235051027647052040995697148193078321599322556225791336901779370937542504178257657070596223970542412067164187424641557566178175183211009184626487177650911903345723077873178804849377654425394524714942409147933707351348787631457698510024967498296725718389578378464947863985440231214546407023160932103605559461954760831841078154975855244947322143893205233734975829477293697854244733192165853383175552249465848759397461203136817692491287900551784037075161061508632843344567384956658915034942405200789741383221214924671798085284634286820447027578369882865730447370179875498833918216443632043836027526113090044610037477990279490761245993811240516191996059651390077909634293583119034305624356715734095056163628748278205876154899881362284006319511195201780809674906704976589428203193245913242559617114164316694416180155240661886331173995068796437781553809722292974598686743643437724460225008217013149369918140245420915767683955013168181074034283041126865254986803264579323184502950977452013898055358194141019131984833867985554819940171661584883611814850491864675639177286330583746651251909951762786218221778373921604284381236585503598776831679887691766786403769600339672806404573452597520193285403903843278475185561475310226363733593846397999451197734568566544674283895819110350875024475420750117547265579343040641644816400018548961723573698765002091463124400680506656182113202933685956754722666466024686854200803926074056629829966228278866733064506550328841629388295625887554096946807070658121980508578924056678207301913200670603642168364916525631353776254830895948420536098722955582752459315009433419009078154671122572710798521222737556158326103023920531679278861411832982264597557653404542346104902957223958753311957961950228946050308356974031984824793750389739827953899206897189129627097026816017999488236851544102490634503793304638505980500689368850921596092493454617018696647022532619388193016821226484368777952396181368777350178398760142879720848366410773287642886925358714697839726188810338450333711815171148471575357282911137713631319778212024568460969777492196379684737496910945644214623527467527261285301800789573543032753550589002760724171082427797722732735900626663866696013522302560850972996315375782433792507162172074406333137963875171443926623811455393900438867851842471758753790306636660932688831931210323207235140907033605416575082209060337201668113885031468464451916950436558866152125950693828434458152870871228293140727555933699681210990351591016421256071107576563443063511705673167435289581947549521611425193110025890413452890075077583181812267074861693705113747405144794546197953017476006106793453483773940552135929988183465458679825875860431734040554601182336493553306359083224391666806121029285929309962757245031274894390964296332087307746715007773300833934315885963701244337695776945482607716097670861548166679423891035060904614604413039687136894886799835087804068064381621772406347917811916200629577770139937093439443217249722182319521253794132602753367456855860884410590851123027060655379689486119033343118293391087619618565414570968938743695706123428019773355738962407681631584433584877073360720706401263672416841255098300951381957688615124648660191044190004053873335671201528782626114531444001949050115641718014623553003346080217675891561479950371467332745815027281127211826466922555444131883985950933419623985945561184947674786532207149201414043587348389120710525816364490692039881387927289928539884606794699973386287843222510037432806665926419930608469361675677484717995553822497857465567250556748949309600038811165025990005993740173866604706262123885284817010946710138768352200253700490944667104755790008627486998607580100559897397752748532074183466193993789997610753993025114426156892048551972307840758227848383123586478168286347239705070337701551080372168639415071758912025235200309364453816100089088130502039169341159108232754929969978413544833229671875424182246552003796227904310697702416765482939497616404950028309838939426022430461690484355804747722403871786693491539288578630229892431436841730470301570109023060675037024472003326413487285601003219723656520159094929341482621229998231733207306487960120379727647315563630376092938373423468209183320342088037583199689240992749363529073564984723927517964835646038113180744527184622345859794497228431805274062500057844200483005238238751084855426648661840587880464120681035919898396098727131150641081845490455579927609435421840067176453548615105282475682962685981806029377282987924425294387085412073102529404983278917912774900315217552148825260347141601819538454176711806252183687581941540703676815615766181720477998692331464033613803346520401842615803902641825361857224684486061288736869992720274162680637666211206929034619695458113643447415987140189211660466226582661590542069763943593123662045528756034216500347360119434225614914032015794171185171542756396517256864538467095452483713059489858255974527756437837209390373760644875780538089666661399183963055434635153154818588677926291272536342628898525685446469814497461892414958636636719814006506858886086022426733798812768796940649702991545245272132575428195324917311506620858665207749095296510075340404922735654828295702569062935888169041465106971777242095544613025854381786304850806058990637380905430695026138424222705375354598590993266967332165151948172534532747333602744725852724539478578704905484758633115718366332359132347588259340641521039072871936326796375928473313161233978154985650774595742630192501361344218177865732684594980392574196969999876459824956709409559549064514319299753296990292901811334684918939731673374047376102153497902801317223379127998639147101057364580882496403779366914426022522432918220359694796522963241504625930376366432840865616023121610990271779794048244237437724217545327436903074926261725888065223326141060338165320932320266991087084758681985639904985750117619963690596992541043687532918190720041575982623454667270157369711333570414032093793451266060707990655868796161579984934109540903212436544310873161586375727374817450178665573793984866922911759920434224760064859760054978280629418739147496645660197689263616598289656557445804099142689094724970673522047011619153600945273632530666440201002320187322781976148686634898913273470144482032429311784100915283333037691119705125251189029708294297488398137149977805278164934370560432600535269810691898658868981610889926992043454781553574046529382255475792396512578169849867342182185312407343115296082141120919999406160101582191273730165017695811861903668977927569046785710181059393731438811929147494435652218962602863258663651901745365921218638768107774209158364690909165182739807531030664998062448492774756188452973294727139148997268407785897786865604872330575242285717247344366674181812327084159179147861681978003287524219464801193159379351523941740904190984125780990903889407794204672704915345000248604274553073068364722207589308219944523472145218428256209291437681438780213969363997860221263221098220773571441294126406537652642854348297069365511680672830614815535006779927342874671740836666020537292204848408702523012585717914569665795239635968627064590372072680587943981340066767014117658125223348104838686771740587973689615599621784654973073934095466043145860154049561577645616734472126427468746140830206387935980428496622472232550466095231768172458636261128483387407650758288956774589588736109519742072321262333556151933824717602181868389530067975021207690438838128356258145012500711902715651443462706481495059019699613904056079067372607241129244719947702838483531863329817619994731283314491596877750429032797703476193806295512384013842291003576769296985959054439828926666087801034405967055905207668370210159521951394544773118741072352794560844354946676079288268193567646665891613621404247856427926815625448506316685268327524656002747765241279427053419348280546267028159924539124873937558094012591977834653365573562593766808769975257460270216696492529983775381969384625470851886151047522647513648918833573818916971219583268100419576537702119211827256650889668246750486669965988504204119161533208988567238092601814281176234479558294288085813698860737275497491213068743742194301486676625969169519536885691174938231969755955794021793887372251515997140544728970839551036548666281965036848684661039274556841436359017774403875651208077145636487772844383315635724968367563148103943896809211928233741450761863056577773779414533302578207887933713552328193066778103474487881453302276711598246301467739131806469901714532318195729640171382993445866528104239029204404205030108503722889707226673204164075838352116255472935420977067186526207629467204363364327350566320411252128722589414997628046891485550759736146505117641257930283697453203604650615692381197213251056180613452134381768173276284141810216441341702491755843656811454797775195828066284424975037917477236204204245057363060911154840242699564336003530143666597511828032803953421054049191030567314210754130235793487723423907395938930043689132814854688219705348268064061334476035746590906564609800971717699575204375563545216850442243908278083480721568003121380513744755738663358066128982569525355723266307395195406369794691392739195092970992913488014867607271497851682702690507107678965765304404633626268887226274293120287517384975542143150499890745646121569554253570152014746265873588291544869367168210972638770366929876270333269267640511235659178773632477046116118752837864088038280136349041450851318295587380336571592375540437403660094312662493744735018369408835012318057025510894184693666883038062360436168998681815046281454399370843946723795281953032886060996315478054110539798317391048191798793376309918240071636953592567835866999085256828346179992044849215828682554266066694806590558837547674778900630307639773201191626441931231373328223641811934383050586585544982998689911466813117119421891601793736025759632185321048687499204734702994267871276133342376683428225657565015748972028034318032062448495723097390057150931453891843449438283973734515799805156259164322627014186206236944759302141050850281203604910993905368478056021662704636855257274132906042289956351025228475190703082532738499555533044957803309025927531635221809889882629115980337112570172176766904545680649223051574746891557171017567240354189350611288873024043144319869586521866760733038549036027746096354501952529653407030159703240985115025293058865671901125083284714968064894381300783718623924468179021621735691228872394802164846473775176818942122207103565559650797948449900827193552814791434040371387172081760903198856458746108109910593691774379471287936895032477418648580648196799561464367082487089936839513150720305653030078868598203607206699167376164147566542877193535910445211691676928163963645629783407370647882740618340543570774121613832028737879037858589327455361495644612550505547826687454455090886889469271859889494234495074838218501843413032362004668070019175045926284083850536431267686980340268115807098103458986041308417355099569441517991754323348063307326133913997978800038210913276601454961115704285802816067516233813538630524295638330950320192878164132492230047611795358249560591453000424644788062130246897865596926292576357402879940135692116755390400269966455602568297236950495909960271709738166616867800483272929905942810296816157469630606061010622671702125396674795138938137485389535175783294513642600693613777744000566993017402011366773178770446945060129226074969110615762076378933450413733651195600329078352359646532657474974352867211162980756758510838501606998969358671522596463057009139087628741649254170816909684730954886023329828880010165296280897698772319690742102700934888093445551218818833651978431853559606747635072216117872873563946565543427614068559412425912141707811630308010192587621993809895894305093968251827713033033492664885329561879526644631906349389649279747796305818237760658035402279669108180932267251426142876850855023403639597056214125151376204672244428979978554541319013720560029456706340382429917807512572448446357715258934722336845268000504905794076592611834046276469983532198933127117327105112938774627200813172632086712472478310369532505711668466933919993838341653013309247729429358470743882634240070132171320972827494796116356678261507156628250212520627638975156658513406045529010926112638166224236689927106490418862700144211287359239399825005658006432506075094589358500721807293223082461082581858746713340673344326805154756527611229009421546556183103412687017228654162269075744666374025785058198390337266853912834251138897761037015547059697842843812110416674964236193689840635613876227959545215146892881328239439636612945013878167659092925089753247166912368348275154607827280445182434537596550492568064853230999281451475345509275552779627941424557440525521882532395562508572117996353019567581177443676255097319751155651484513728542407490483808199558809151611793921910426190928485781613905148231474455310151615917841459994712239051659694410397272957411583397459390620500775807095967658989249614373434878156377442083749991461834513411785721356576510028821653437883890697229988629462268685195628832320570537894217895936784489997283808225129585737429565314870430403219543301647220458139790574528802074728588103114085879874721186328648984473405311460440048001118964742165719993115889037205900314664181261792091194088785006677801099918546190934892669185091189985328175801561496344252727420213230832626253782975374780849648620574737729805950490214555010896934806451097433300599798555320331318269175191591950065584884365516563352350794974414869955459346826667617498419319232391985849314290703397249074104335315507161857712844527045561514872082178790107580994599078190340768484559080348525612112446388323887760077256405950585761450617292910176342106201632276313357086984161133384335191595521993423910456556597310082316994799784563195983411430563705888413585723243945999371608451544322473332574743269029321113405536052609072416883753354361412870234237825270895382357658516596417328110042367022479426589489542002462779779309893450760213624171370310651327597596134899242700470471725333264227742623475663202251798424952498212765595113945681412700766231548515825735963353826717922669936333918066855094802896639701633580306357779206151292995868181602332782682875613869534898338580784048677565029162328102232126286237036471167259091116220744994447033715467171935579603406495721839913243157175868905635782011935622777763421623672475667687617220610152133894288442755463803914298293409706376846651169968454977492484216234549879019005901223071102488058804992082026734152133452619482271804045246592288442955419081544921458089045704939272983216883413429953682586746410836728468331328743219812300745130314440076835740244627809770130021421871235118844390781428645714867130316274381405338857603885294690507769112439640284427539211601124684855885908711120433136983355129831770447543952735118094562627365072134238675487816235096639875898907810584333722039754420498618992145343945700107669930233340450706235582283219793912107163390447845740649596837368359996102705598109343275457182265819162737640832649194463392541412570472789300121814099502881776632184985453085666790070376265770583827317495612091752324760127284885442229898679988266283950867894577143881580967550580114816329510134178454949532484743502461668260490860543498626070769522068457693088810199363886020569081016645051872181500574347274692400456628013524424290432379684768326499597859954187679609888240649742665229584406972977619146264897831510287400669792362033206040445354794419819989475253195717052085531617779164107727646139215711774029913555501516709796619652406222291416099722702986540871469079193291110174604012065208119033479335074093396733543810667764425162109106409782774039347240922697139986419324018336762578795166166921148570844034731109857718604143806570305811408965227990337070679277771732401960636690599023966006174759660274364772334171321125640695730430073871896976082625377840761689045650369641210172605511050631805878307177104571678917209315551005131262488507497125708827760818462973515666064138131857756923219422161698198183386159109111212964068347645414987489259676939155208899974348348251097717173347748490424157044765736574577528870313708739190721825057729931772042125966177890946278107374893967275333669497759775761401339096400599495991247742405822602276743479140436597750071174906872762693456375287627915386103348098692957428984900870413755216037594678764398436269591372899723772007314533667335269968366292608565705839038823593831189614763613317043665297644360749401649697173956600232484753127826135116274516934985914972842578011566354011257488383449578205475651348675253533930949298777856682473832247136341278156638245905023073398325360830038730248396399541840286629808766899600543606746374781759738593200109703840094329084825214860785580072030283926248148421073567689436508478291723943135377307833828620452560793714347989024775448000157389116577894911436600367935436393206776263021105215210135921546945449970588876283657933406061323911023381234789116513396064823273430276115853432570782259674566926399445065492819990540278815070629903621350504523173250136706243941061807667613786614145637857660442074924229269770349845012651492167176963310516767267848837295490056786572397844276311347324977198906007618759140896073066582151384491345615555711510845132159738291100111428738959946162393850583603232344208288145043391507378081863193720783803113641758373487519765079335205354261064839646800228318032347662678243897034382828567674099388012245584182825061658871841917739713484249557535536154283510624483282114107566096796995104825227942158706931518686822890659905445428976768340784284686635169507359290059446525171865184120454432711637452459124940510317749743271643304786104252035794032712103848084464363330137152901498842752377949834574799875281511965159434402988721491706555591849396373620235346368882181314372081349365898041885261814616685646389742839150595583703947123832173452734821361569612832630851650382152956508420824710834855636841528927797777756366598286215650221250746116759032116542096541470122942838545756721417389929799800524641816847334818021732521988211950351846705828084292711592599970153750974790079509303318805655801013980812298456546816187153857992812861037660068440830849839727976370041660306524614826604283117793289355874205593451881326476050299179833827163739598602358878513460926732319515887297292466770976350989467701402822922459093649319251931742859694152366564659951119254685886480010377793163073879444378711516343580868385509803616734117746795525054156963255517565930011098710343833359200752031771871321169429737366650481616228139743691943602197933189113714775792846048510574542832874817932872278710961589682604151910321603588677947479259298850999499049216484971385441255339167379832698374244874127454709620633713904740483607941575293633639044817954141117349362026048512012305360554368887938629144807879100525559893282527733543592470673999726922739927756533972566967152409677307351761299221420255506531429549087426170533585033317774602589152893788654307666139718694743502046969668750567663782500133665443412014978039533409484305880408087138695315898917544323055761484459929712872562076470023808833082557863754480673545385987638085847636506952673628098611990040267981130204610101944598035927435305744929624227377339552016915800533206697551301973113370391256119133054329794169919294829390557267957952817726968793291142577732050021476019969815220206152451794238984581852682797897974405416564805621008330286054730103160503201457405188876198453502969999264657956500190448278241738609540179103702546381436244525088702922663923366404351967800356654544364250362507952964892139065648414018273697145021452643164662100373809950418558874896308246574073342630025309949781559142128751970527100115710171637749883378795656865393442661195440774144399248742320604226615977147800654896433496235839622113531257289820135598481565702045748210917373786628025393070446554368897474906584779494095981224478743221866015300973454802469617267129477879519441513440173011883236744872044780623663700352425861765683808485736885690237092290882122272083417008979129256543541940782689930557315191699011807050189588596474048139046260970734195449422706775403353710296483606203275561731021591434684415539095659097465499279153763329473599602008980264079468292536127789832058536058561861189451406113222427128611166867250257033634886315857173971160328821238663749187456626042953189852087917692798532059687082732060772049087562497623985063918737880636107372115907573362989705665746883773515985230620783485667267399450197245706160417028656143126685079755716895080673861961335761307793385665294261178995576128220396278616303669765729274631760052262488130026201593446959933230130444390851414406961294909514351132404372818037803052701614745966697318233961655755091009447720112313016992708211043728483536465802279843531764876043952080736225958640787345819153105945582524031075377215743214571344778184309844749991891988572348815392190452015661719255542998753345400238110974852027005371147123897974701015854753862680281323170286201290386585144236448649286552358171372029388017529410102252028569118718607964501087652984253297163117441865075201876929274642106131317620308506790665882560616162451232983338560212251996132072858164070209062312718344848223007894040924391632745240874566781367355700397551427807392003435331321282287328689542061881883291418904239295829349293059481391941921015430324356744769924306848954952023954564550306504709712589530864100115696873272805753462888209289499803769427671523724690745276874941173761124890701919879296423247494837186391329220403340476272852904805702005887722635976788174715798214217641766434900548515322233513050200474266084260275811143081158773578536814136568366713391740316070565037908528432267821646435930151920709912343384447619748970136375189516849863063347124393571993453325119243402486722685096712244422809548620967064207146038923593401068440047536963864975135973583310937832600190925157443192037612293770890557454362847738453351375649811641233689229522888668519991591629961786720819183717347307006822812701860650275302983390146699957479446107026716111602787170650023445485265531804615279803013588943109664382224754397716230467646353180281996449375662371151160519787587083429214674980001529714109167257057969361548756157178235831117710135901253539556871274579972017592606546190059379608978461902722181450723587954842714991331503962030512411091650441966975582513218186178356942755406145597270535238267357110231808197208539486018220548268986636028695668183486685245446144084069521826332804876044469190082669676296454907545722369233274416649131955648643994588993387758700988054331863998554049323067761591828592874389605780464098420897405506832961139723922222697903646977678755173039666447415747265846547806596395648953581955700357971668912269469927151284486477227398117418148866331928994659470600892113189894296771965704861852768613423688150000417238002829767005277922765540848554333486168898497387186788618987323238004240096386406798435171625112697259246586787211070538015319495771649485062981579894694171428204216416558665990728619849384917548026958461964229477931498122383641538557038089789007613901032349717969632547196564912274558263541323414243643574594749297927856960776359148472801212182057123722912544332455660534074849518144676905895980695200349230012498661937621085005123644254782643573382132966096697316535354256247308090288177611337397206298364305054086194062218385024498547566872126006763397437315325783835487482440978097393361487310202390453380947415977664560313768110629892140901661232700390050502294761351885912410647065603129801460888994927862354781233707563735243212718006105308551717034053603307376301871136693532176984282601761121860063584896534143606709141997792464097211427449546989146355548286434011040147223008474005897193942555677557844039936570126377009233040177201570971402261897254902499639625668908485897750415713042927159289338014627628178042451243346115672917087218116986695871312610665581097155155569633481984422493772789984900169133406501392255837452536445871131537749642845154005364042185976909329790072008362962024673223965883741317529058662626944673521044260379193152110356061561327177958332423894101137830862454629514095817189416538188260985813625507028147207441010322838569770121266793214647280115968243771101640588292038122298228255056488502000903159908409669801425015995974256102202631836172557111491392144361101853384556828607031576644860576825091946215850695082849408530180664499120714286759898668841279064653948357153197916296821916428762691256721694722877436722690746310853419544061133608487163008322078153715481543546458370259485036167470707302758499672313280960162936123357408505167586704703228598724739808647326794039491393791308497363241413902943928457663835198421867634664301808689606921433831960422100947209843976665228225443683042220547014325651194268703971992934248063911831147159679288276590160658481161372294419943326376901682224343559260799088203400234350990585913929771576049472707702830957584270709136977043713575902026722712135534497330430506741037054407734595843092276937484039563820488592647043863621119935422550000256114497085052705009162892960498473983059770893141204198377018700063858078442617736127875809955159503846662074848157250182123540825433798202752568074574177955302589468194577646065374993269932888205395151847408514744363568210924250171052586349534579159028715221299536595915807697373406864938135614834686259397425293493723922991126095352789014741520946191693752339607918005888183785066885788221740893022376707892649055901783573302904986104756624088404630174420916460792765924033500521369750536665803340501312807124279897000627372915259070166674643724566787432560019555424209445336334393919567680459087133098344796212966325811637654664808900711247402815156434346310814453273397154323345449268619307448373532903424290227063234450908155379512377571610492712179818535358509941553871821944942708611496926208222831105450526017646944214984796916249383350864389979794372572585034947332112364201564544595832321025867338212082720110236171813291628134769361336231630005551854169945123703087471769347530638094914882823181146014847359176501968305714704713971680541712076085415277906148408154352770547111386619355191825554967376875375655901891589207674352614885293763210787312387572064840823737530328846402348829287586745751741196425955473254712998878441337697174478289514806062975015981041096517924873725424158606070926343451122180515157680503952320798390703844559080248976751242811186831122353594495362332805156428450911638253284682769037798940560973049659821677479429060522906427115409075963049075004578669480644240791416042498973639622383553426568824892490309401353227598292267618021399446801899603206758034293979479500581123563398697279023670197762898407331986142970899455340903726057682234474886920102976488719461875862934213170932727776916518710024989966658550838113356789617481139240080692044146256653829452233915516045948248702775240265603080241608406335831049915931308539474269073234720884119182024847075732911507212454468985268553115998511179393810802097734738174933999888973856536994038759525336217482394715478348005894603936659188928996217521047163046603844441237345091038293248389456001298364934173204224321656427582862696462987054943708647463427711852938248043935821601986070062171196591832591807574493655660319057421033069753707322301404429391360729974231482186205712797240843229742225306478470222877289889172044541364168301862059266947810650015772730346839982955110599642751983442090994298239413615583265388406852983750196100267432796083226766089824373992304583819359944552036471095908251899166291593196398638609984425245591944423740980765055611750578961464359199255642675963119627783751287465379652386652568169570032696428785072018471660573792272520952321099076112702419491396280748169651494320431930648996967523523778013360171535579415272267440438354774783461541713610807197104730886023745031213890081325624317204976886802282925502433493959917827467695941155443098503616431316394425732596746141758066342449250604023220280294698737518293127065541377829886195848109350266364520750931961525082015023951281069618830208378779175314247378006661366107125561380956875490976302248182547336957774425013633346505272962419515030700162982343399091000615550249467371288432197235339945293806722341962170161634329247937574459146657715626682851107920980138236027790852490861406132382047029603361421239678916949923423217152888329799391129466525384726864053187319793226777027601787151571127131902216836416945329045195204615033553473446978714152244708770708456141208314980110666716520746555367187872873746904987162762468053085758352280419199560732766591756957730028792070628730635622829071093172254124410289965621943930339359793127298249018850599820753028058182687345362620769884288389289635517726997755270892807119838327126416498135850566092974668194143322037636016031702386454010380419337568874559351238398276056529937969463111573623676580351575643680207979098069735892895033363102750947847813570006470316765317984374893859319928446797050501465842227782696067591977743142284898346229638095752245329234359223513044120345909610127448589140505827476775911036197187481126259602724586676557147275493941205551336228916904263820835739952061572394645174449899129702110657095944985564756710539101364046559061659117790624364595739346071857771170611184517001545450809988500405931558750951206165545631462007387394433274391565408222265516671149813613507373995489339174808637419664809327817100263955025914047775193472052693611721552919289489112851231256310527709723493867708930988562479735893275980846342321851624985305036273164555086002448011287948708902187528734539294131614662088148268086141620159155491220419860259848860991001008935521986004274340573101214273402947594356726977628542777276759795406783215499987080260583813286902818386210006100337642379198001944237044206333199893214651697433457699128223182611409070898614415408199147374743368164498243252660816669669733619695332127776912977263579843015097108158562779524101403121972539950098548370069915726381749334231984170867848596330912936697738356288707840800239223578231036122923133431387087137560726479553068785676787614086797853884183975085046835092841447196834356692453914539697267038657031729624183897923545368707062910535840958625288172928169247104639591376543397751033038618690541627854067967188564523146253468346430020306636243007728041839150504839977463906523527004766822033701569158523770139905412638347648466384117910763416394509626576134524834091389875379348887108440822515024794471987688839920035737926073657685493015534302684384838893140272196682038727684904065078641498395483862399144327100354841428571466367581410868575684974964249205885698437459468657448018493422802795823563775643882682326241877622162260709045198459326773477350182854360693935241658960117450737611406406895988292994464538186860664747288899190982296017892978047357912479632186915368703655952944433499542516058090830492735940881012512804591065050476649626758222413393315802709420923435482413754573059087156567567670109209505467111783773210475976697943635702499917247764099099618422342259389668469915441887720946530070344371831157287057320673987595782140794073633423608496383233359179022771268263032769487753200468018475770539434300795119666775243961591663082780839590538322951127233820755074415307889777628677166251881091187535197330098637717478618815476411602223903031955967898153733333258298360045188973413138579600929777458806142401045915014782067973943636291993558227602367510347827556486627121882555285317825358601035108225814502611204747092401718602564690068461731767990573490110072728768926194527588335875822194738432083457863305280755745493828952390059845682729141346432348817148584606783059482601453596876215967081249553230576378156493445652578255229382496265751170749498866876544103827053374089892104036867736560454285845169503140223236337570264179657785208175448924655709924081323665578698526453538880111889193286251925922213556676815576092763061557593066264739260898327834768021460555713159391575134197362381437944978888581196334372829232196632033578012611307701085721598982028012452701419440551082110912628261670708062742710620807375623747391179018806303915191898251718666137575727597103898114628132094118243212011578288178755591908312841658981012959939724582828850347090530282922251789724313294878973743215073413895319923645094033008944417799497855061146956152948565531122294623526306051560149924641646941653581717906597534647747475189449033886376945491013384753795701243435328321449298275732064946005703587974137284730855685002414057806994944420965645454206704067126917703420558935459214751399465865637953244989394807296345359598977325035224253669755202625966190223911374464701515637749468173440379453288595394926777638755908647972478088680068172355853131435632975431766043925383854057568997429850951712778248854066092032655982812701957135642813925406613098387251913882874323038507006601992157068887156531369864586671792836573552565862718814401443171436793748105969137093212168062424716237296617153934399533680541456986793897178488910159860309541293529874616910919252380974294455148855831849949859479590242636642554865556331493468935615034148837488463129465300565980746769773601945598152863062761262676635577359767581138421612373314597087298604713841740124888891879713327363626251131133467653762929984089037789520000853939976358474428197985767807210489634599077801542669717456754261723840220327733647639755175491665338447273368535249669156297692483436265047461988233594559385423887390136417704694539579811875271215977684425117995807169454668617498200389141367574252951992353630286409958477380806675941697155808335426239966791371918119745650950142157414450246559428230866854834547550417532809049243969757733834069200365962698238063210584211683115360806396000302983486986250141895196159770985309893415906918264474621242983607543464462434641837589126993823538014384957364332358908803400365035629450989571731821193875360604033750257331182525704669344702757566572460202434358051761798043050015766122068591071191644783678775528755576514955386462900314778433524201822322818628898360499556710094713073625117504656828874933451108004370570085720732275083196736841092108726460308626987012176044090402806979491118396436605218431492307351631588904445480567978322555962857732503063907386237033313393794864907355954685179650429666182553105264598245173537563250283739435510180592720530901051429092433527312786900151513055874053955359526490302813127589266878502683802775398087841969542444707598265277147636801344512270464696586160140500059813554266004555304125645385648993160312805596469709727717647751362379318695356428514304456301276104282649403679748029330190134439986092840586881002688832877860690700575222916378845954295112712364162904172492592870335181217772457206347444140710457987011683486538940860879346428858140532372205220333882782491606550751428498895026730473386894146657715191706700715462849334130545953261782576247455778605289070556812093921363602079484001904534822717501991998503517218198291555373940524474881608401142868298542198154173994615194467566539911086257026617289157211616708612807864422596878065405524084076980926229798908974388648718812412152858621071441713146827394151245402315271846416021045875096948375943180736202192937400119027475027176567343594247367066180398677673056064018589905357512300230660837087116869147579133638408623253843492671860661390466843378796516790070950960770044545355631362405135816161738439970087207800572797374766973300019518157166514482156340621818656955569523059973209613527960436084916464544009853402960861674533438096899823943693824949550947169541670641283942451714126019162473827086697693118069609710155725814785319462574614535039762605546512543502145241434329824924138121771320340323718671520627359281633744103154710463963111770834535015448259457608665977571739145766095877536672498405172457008259582124548521961643789313109882481700384223320632885004325420849215944237347069301246933339188876395624142540683244296139656862403164128403058782564652342818336566518958550369909432595309425060808246841425531437037390665109896765398087358749937703345895301949519517021752264520732036027546394131137116116222899004570802847540361406381477089041361896398146793609058294820541858067653745684521520114145135847400424917141834979108526755786923646084051029640568547162911479605166051298601164218923584706774478369791634369220302198889638490152417264835108736731345839534421502246261553366336148347864323356138053007496676208428757530744847676122129520464026842561574021989849634090361092184760431288829692663808182477416243214918051745760516527671485956723605854481485440213290753231193378970542137669259894146244375806251615321799734696371796455473353549249001405607436631064741766799857256986302528399444346379930518242598412579835864959062789069536518549591816028252311296488624546624741498780234896199049347281966658307147577253201586835547077836728257562399243554639377454477973382960292239539101363924842457990895204656398045121789111868368461117367495659523732158831922247696642959496940073685050284037768906265808500246717295897639915288552871279469207921220672013205280939645226322708682212314758006603178586184106934504552579097773956618012334187417941362215786050078339034591252524540485754363277089363734813762506583880204845701532917287753658510284304303738094645827944631703476961344868288054938747420783607209181966956077978078659557407096044302978609309079720730749607010815586850159480975343530527293411617148317473396610051752170023014799010869034522977048775984057286298941810215296900745556597243348361850377715055086033011150531761641696187723661381272278710986517345203857378730216612722258062394563423895118271063899938281939468089089171426867874887032369742369825435588883246084582028402348362623588364349326648017559046034282151721956396349530430084841662178271514494595409011794488525950494726556911945792036793654037611386749376191352883897654886121318115303047160619686704364428843498822552331296875029163545865426866088946046929370596495128448974048567800358527040399356260489828221525557199699352579454526174074327085989113001429067140022594327469021898299517955344274871811164211742934346618581259577501754135341180155914001252399483939017661752161192300632039269350307440800556485321736481168158330203170589764678232920238182476764490923997157484669006626848707926979745436105026659791718725654581872259956718471895396896356398273911694540082867722083973564852019605960672645551934292523068186375946771657471639851037580102664513149058946532011702593902980926721553261881121687059584164729322719691537323315514987881303473988948962542717046310852002030893497607474809695231438144859523362875963931570347642900052519090875253165740792449294631761411281605006043323678149217024471810409000252357290745094008754190944850132342773779028203768777598838891022428946586307188578363258401140040295820151572777505522049767174180652296812814453596307746839919743615077556084901483048815266226168875496803462833040684967248845831448961089841116418534724679049542984233687929502850535622738086930362906434961063890273423981644437129896752462213499807179098325385375182451431822981701498047147440520820677173482930757424460717784725245946185748904930509650979539054225306921236070170383791085714698302257724852517384591456079105588537047066293052686115149625701677756605098715221893119931908608040958932727146520031599118043637406495544985222116311079240253084120858743275083025736046735590502428762009605821782540707253588194242748229061261156506709906900009646228666919350261335698044849903060697708791796420344947066473435831304985932397059589076521205938976976179995460990255750129252950517564633281937784817982728921626883979150390284154892848405010183293430169393085976918820760983272888921135516982344564447333253072962398579235645767684446557407881847532800320620409124850379079033696967998575698548117548118386688492826248933731346365620962364360176047562884825574687983523166892032758120831192672738707762830879194416406020746280318221576402945658339747608798691752555031704962919619171215072124527733136375472863049900375024593485960032115144992840662158257436742274475501063912224218890391206885714990281250332229301019625987938312748207951457466369086901110213105305738750610287625824804729782975970378866527021744112460837370072764091503713333614971740090516021354287018659906055371259092989698875726878000679158690910845740780273990101872583402502706752349279084556458472338387936948393212193705663102735811096309442346293573358743954610171509748417603259483536217516712490048287878693443178634077789561343147653044727101587308359186544227533506094500454270943829595234500617950815499122260677053695403470872316703773580038588820185360607740785920309100130736686153320514309483297128610836602524555926973266001032976141119174374276782789747510302954650308104060484212662927492258713195804378325583814279728206104671644545396678275066337611956154718081141066372890445086071121650660339892385555376753205387993468505034921858653621561162560773785078336813948450925056970346054311689014345656230772431780451284414990211879930904828898966619644774295261486897574573204681701313930905117056129681336246565767032752997884256367261046845139557876174554261407949927885159419323455730645855363767666277904565194687523590507070290264235937689217411258335714398554727179693347166990452457385765734636323402095801122354476444172330199688759484111588591938802652082412625415775923953557139009940619257885762438343967082535985086771745203064771259716871629271981108722640716731620311995057495353350785579058055228056768709400358862145084193945110212966418030102507190041435180262583918416963342871083924470112172842730327747013437984117330124469137759748817280837808632835848060410924220865767728752209963240080429944929304986884989845824998371385891669131411594805379770420015970689347111831573389010474647987808156521926441124175366266821681770769432381466336419486790863825847134143907867852662542025507987500598344208643353203403385407169700485895423819416463202364499218696935197625148758953644751634449406416198941671134104435014824843798746391600097858007148865413513572346046623479297272831424155920800251034678954542752194241325704026306976946540161354854687985714429486803039101844108638904144811237544371285330823993732836681962313029569185695856627411377033885853664622747193167250336110407331565700765207124240797569995015171682190064511788702874635229298088187710072903397299225664211305601375775977190139941236326728084538940031909615421499319261336411225553601183662732783852674019875478187635393573394928471029582528710380997565439732567129487558224783626807452739034903745390658115194195726455858788269618859947491839526549635447571365041228605931178327747043171702175554273381131644612205777914607365779146307623015698777942799470800066693339080866312852037258042871394552756934418643828321630754249357674340668984292481754076245634843585997894799507358408972112726010980185913187269858204360215449353734228209983215127996754771510867255688821989769067943231991850034564659754689420908586518688541565005301770434777447943867270393095250807174811438806676944040880337002762289229403949546456869467365627651215744427275561854727297092316077100833032761204644001950108825543666118384017506433079878960184957256409227026453638384878282644377846764678894521861373535543656377606476678170898450543551146912314274141648367976459749610075175159580739164799319511126936601648584829390733187973916908788195618674358831373515539061314098627551521295444877104580897721910582763398947484910278339169952254377681439407418668237567124423323514823465867649964519452476330870536440687141456832606639769454801930943710086795751239891190608598079561897702861704671402026390040755211696790396797200717133559771467791845713611149407966712462922999331477634216541227783574825862753499006792111978060307885749546973284196464487248154923884504168748844032656277470952960677481195278592514810702849070915018652287534294183631406112370858732629402433909819838680897918601274620818939502098874883195920209202041991431102432886184043867214698447218058827477611885531433454775949915708112154724304881109826753085018792712236067265424722554951167783499513760704930313675989221645767417615608894882995093114276568187950445739072603866015581213816955577135842043549347895364202338974649549276685353620131752865705505880944097716682618778503565693248837006191686881325769898892153770164294154770352800561194842247298518748777495354659986473128376681023168478386420803571506610437608027590099241762684102073191041168647523492506036456386777296180495366105618145387474536473562955760076828385002653903382204235925539829328419394494205000899887248918062112870490391300294855651474954344575244822871583406545423074678494274930963470015143263124161298211097657797808646208963643472088059155364232264831264515021605196502658472066706130120493386969922060721205507484698313250445679036197937511451056109940597227061024553164341842315931353905307277364315636726458013226763772668618633479296099412432700177449539823043204002544985446412582181492056014921887888485004281841829538377471703679191289376308701042720721052793407615909556056902878841543593704129448706773764271263821528379114630861459968813851549589693494777530091090895645062887987494998791897733005539554996967223113032996223735743856778002884728964213358326697472583460615280371262743221724325293392575924924474115450585976031425395401902732717953482453447118183267533772568831319357002083161783185793469555062509874148085073837262014483584640035336912705562119589062989355562779178399088576495624037971430883909711102642258974629317668967223404012789249994400301464679220203830421619880771734664735164681098205658445677184987499742916295695277744170956312845961026901454223339536443247908988275294511632099275307499379381898314756794441245959637262578848779824592170128005575802716147579216877302876772414278390459073912739294267884385771923968052299403405334707357333451836725155426582639619999309836730795037244868646114937304957612941570707066203289181107238915527538336663817080430330556707275261677419463060608701555657445230874655839612405030148057910614581630901314898861882107938274751304764124868278016019084967844218901110183925596780158884405085393976838736014191230960600868884840958759093979887545712509890277211540144019262217279654656498959921437569114290202041111579248731265080755959728472786996827891626827869491152476745851922811086526770098192794353379135535005146898579382371388273535727171789383014221648571714102900699728235323288484621928112894081707974024421905443693038017492997032084340110873321114536842359999320908951566908596491522776672296396942242423418831803521099116402806434847354437983200003628081909768558492561175239297741658204184481090895126836470846247411739612714881019329455867381943250861265358837368559920259078153960821287907306065333544905988347470101680869637317737325829139402014992329209692706783167596814766966752080774826807111167849293584619841862617211092532216068525388159185598806277687216438183516049553852793642109031310360781624389147125433165370049295435731311918042841965032161578090425201331248560532036085914481767170549766907392764895140552152060925413291657024918171664437203666136857876733251108285903819215447665286225246359219175013034284393319549122972792697639531748622320787892026844508352041249612609478597647640505134461645779957974192093941387311276724057940541046207559701574182718191565611832096658777408146769169774837664183860817525478596851524694807752817906293992706525231293089486645014790454710761515539979963895457354995616420964604747459853772405194520424469515511057601494221445985078562898005200150144217236030394428342444870888738111756954845868810158847305082029360514301370104506990268158198945951504537485723487980716132368998892862049934134778445964826238868934495641306886939680162402256960972590583690359144783046409691845826547581534945007765160758195664124007433611728666605780640979068506843839086550136603417156612177413653524666292403852731631584292475107182073761997425700526636287342485276970912414632604391164682571938447497652741279128833276475340045879787567219728508025158776549056558922047149620525210401201669876445381749387615396217620998186695643493775204078670455027574954208283438265272799066404046308555601579354158018388708877140523005777747910133607583463708160374140335816621710523779547780310828789311389894479586116939228137724820976622315374165551870724300378446838734446101858764966248302353552906856208893670501291450337471297708298592055240518783105621652132246122880034754732559325711750916176594166482394972913352370543886272408483705528170029629809058650804794954624582240135714158490067330844573881811967445142911521434279392699655622571986439196067753038374686672221703556890842503483294766784150367836819897475626360760561739594959045378728870880119654187892476530782025541234215275554653752784851164219300210400696015444285500717437035400703359356505398651785707006582099804195744951235876447812486104147556590450055377874542573276631373882502017264896961612910104812793263745673134738711663877099845420670270029601117226376272726745210181186559105258614533881970128991196384735029017400070680631462301308053975457760287247409909750691788261928319716472128495873791803549559085450061798813211982114298258375305635097899123594054486017902486260767194835184423490587190753372944339592409185352802957201038394209623342775620874772317011752756872410122453028153879584509634857983910451921318634956903039125641139059641254019436292949491921353071715344840968420710642282289811864026763507160796935047021002318781098561356791065930660078977625531978982500663151562983354439164449258057007801061628032102201957047579865658116809332423000560664896736948762426172410119907596206943468594040616410905711553454537680923271287235399907443591953983973721101334949165692714299302802031477456050544661845753230590170786156443038197017914956765394045943560606605070173938931321346258503810731950386744835560194918228051677305768502688432549589089560814199507525651893554022636610084816146203865446477107121879516306983362021407461243273856073300741729085341371467646620823326530075778457801275507872627830161825087008428187745332078797789429648585975819284204996482962042735407338531005469939541254619473472170399527022703577938585129683664406788983746565636135444780666838466976517661499961854398962350237176711027408909193995831451468723612871384972420690809504422367855102876286804251881635840261629851807211528332237580970905745356917840193816002439654325782504544519694034884092434085789998277191512303094738055403082315560818607161583433955617281063733110606015264964148156840431946235604363017431750920771304908868560472738551730953808475014486517604975677360783315447229253433596384563021521710498738592531020397895814333663841559299255089446027807017962274521055506711913163262652799366963598923830060969816001670881344300203911771916307016377800383003711264182414601498704171480566260338497751756038495491915791417929536849597062863297174522149452643640004011685127587387943486668837572288996134299386640236405894482452912428201658004781669418478063660478483817618565155840174603728978215856590831489306511779198572317164764724189304315319990881549971377420721011833196861968494405184713480510376244887581817277233442721570874000852493919493398103083199952288542626308518145514104967489642576817203145774197605540116651437193376372188186506524854450399937660922677770747939980142258086621498719124701387469895676580981634240795135703733486839946074001483818809109122785049874225639471028589036178924869455199904917116231709297408195172163625062371420825261190713179187638003738209989415516736290310549402905372537989577370008817865887049043920910261127811112935519422778192147007436373735190083294733687322396549476329928275318351812624007118920345658855468095030263042519219879777374432637260928911109005219868755372281053055764147614824639858637189772797761937308767042649704411511412890062126113885306037367229595816117021395030074141766112848332886016736716732035880470158024784864639807999576764707923310644566260337307361589922617875267426013536007295278511447312992791452450623340290963971759232197958011191466992839606609054620079823745212245036016910411563221953297269544555151828409453955078674040937185323660387796280514312676627403643982398318817605978528134663946956055581184589398070501135751682068069489438552913508828544734828151760971542385952213273086132204129233077656558692790957004784303955681994015964223359594550228105654377995470862448559080037069501560801930721464897267316393892553815995861702205913973027090063858841495346162764260442837389125191847819850025498263035851006341034437633407334699031270355830801124354815866116467990470409954792381287897186780109815204978806050476668203662967250936939607313669337472036724300318966620499750652520175471357865734643836467637926850195846151069676536390244748995432199723190611693296228778946122656683064351895616389957450772210945127991885324449376487789040544224233470979587265217693777637079604073278970245582953869616412632465754921044812238089336380764949967196348615540609091415949767808774619122770828684460532572718019232463199946676789260303597957811827900047139409217193998740760009997069581634479233605106166460077875593954578581356191179734847242756439544469001853703038899472199830805883405836720473010593371645853777333738261881997860740674509062922554889908344358447071868346283907929470801169686394851185081164381346028123477126650093708643498081061192511699839069112411278849225010740467001002498755498035240563673715644048348352246102196750403342268090196091918367697539184488898103076931360368464907518519208998079674849520642528150398821992945016312244419290790582175500212464156438780114736353486032318176976992568862342243651161413783584860345729184564597310145801442339103436619091211751414322400433814714649570280368174781573399255278767581363359753605595393840176867674304746201122791642138790162717829363320257354064982943159500554714114406637280225906499077297215318483539621059207509481870223099482546729701848378246112123226391943500731777620066954059960374037654410628719241786662420882146482782794381136197446758843595640054338403532921278595748814000737497083250483278575562787738665283977888843093724219594555535436816532937198863634368179075180196127350934580410944655172588496802612101534669727381161498560713593318421251782086976441366280313195926629980080049993801799153449183914186001491765200955505742943903063235405129132722852895331838612800900242018592068301245576885159986036670882144036179949757693010158168404896369505707194161819229869985461811066431624215434388574483433888071994766742309255414252204646132633302192541233265542251790039623700118772248801218997398674540232783101115581388876253275234665649792845609117583939724769569229581647917057753460630170075274314017131409347082620758055636513836577977785668667231433899715854051283817539517288672679243351932427944640427484557220427137038338428243358563142551037569101814745835641467895345086856290184867609167706199880065923053443639571728250888425996639289712477574013093554392473324079182045553817663723533222093512540132481590298902642974259278789454750065499469212124666206626082143493200208055224057223984383044936328281922845488932895874022579320820777499212636085911890296466098389588810029238820492462297133229297037751993136100980352670524486853226374478046384325646301000814486291219945715644790099446084293682847965274461276533324488110332420251747386222344906972367553788033995966640307214375360233103696573323152377229874426905668961779628232189871890962510009667381607994856169911256164664511017559716379949948745173586586770840471684474770849909769979447071072216462801394627545923362533618584457602386869037340402342997958662188971415880457537565078504261021206974369709692144094113468994263087437856931812699404387145948959983500248233904352960214104347987103068353429770829833207751807152848088283370145995157366923408952207467531109020004087766773452083041072554159390052576034609120814028417742037713070084243715867293605934806649256089060062140073524622034669434043776297371417295657738443594005475357783364787173858831995725380639809960264540532720562873151122978157160862957374684566542360082900430576533154127168989746228513385107670664275111061263511316160924243466569700709329952178094757112910514811469846816362099491211915737590934654666176085925249964296490499530084958760781963600471026739400740732084362442003461449470324239517678532424534809937752802805259240486576284671412186729974077030839307426174014500322104972620715170167184912813438981955969766521920190813700036727820825480844407705488949773529007409396411521592813098524327606824759522533080282483140911455034964805588336314363788086926850984022754356109530387770701212000289803251790104923250778850259083263414354851687722009982947719960230524388558044873833160358617226920300671018787426069417860407069990250750049323362692993214094658099646531428589402950507599383742467138926990433088969689317122152250932961528322314040152247200696225193121876948328674200291736644356806635821053328041767261515623021242888554325019347747162804383419392847933486122205735240128775008941153319230976508281811189635502495846710684529264484555742771213474285886128655316929049767845662596418247266927783440026607279474144408370664575851237670920004831219403483729208560022902779773086485414746185881115702402873149042337471022051225421059966070353839506482334592609712442501847780809771726739247319401655039607867012304739576533280658508348412526008894658467311915729174574224177949335497989190078206213086108038655162237581246483554065072432929291154509266713185929676930903243805005047057980295747163465461868596663348164737563758253029528629237343678949466010883529136131466638328071198371749145500064298208172745061751153316431785068605599580414470505145134434661354349132377733690004775758504046993549528650821231068855209618997124393434111680987953962481708529338557609002702279497412417974047571783589151301019483114208868324943314817802337650953324299552859443683435519727318517804946558350991943093702256819318024684488318677087309347278038059155250231204064223609470988530160758370543677837414644116053421760045932648901251010943688839493750108078235517849509082358995407264746204374288810508396455884266548692765048403283121820919225254911472664063622030793455066039883857248600510852807898750922954152053685929261987791689221592205220551985320147926147108591884318686574115963789931121609989761109796335654449027343590983289478678839749661090310579656789884814633779378097206339058401025151480018804012308861312975542072153696492705801455275021614678086913660749812251621634354851006334434910353420533934694524974769550862656936276212610915726891851277303763839795715936693067949298648386633844544863127608551005181894581104146470845401536291458227457290153410579881693540552831867360382508835230473920214607034933191067272651277179914138372267050300428895154913480292363239288242207957730865773544300787149940796063032576958992623920596601385554180341966989324367028510494283621790242444777381925654599726442141645880183324265738561878678959852363478423536809059927119995597854014483596606215632951638907300427568254001923588832030019113497523286130065109787692945531139668955583476437080703315692464770566831708735818394804538875307517147833711950768797640772884648664979182318450231538105517587340718962538798537621437172436820710468814205249239365508704489135541655626666713154192176366666445461341970658844048039586284011613603368548134550509359031416572525760552586987870305119319075536363454402515452339582336587160381608528218500714103549936084662784075061236838764462145891921779142593006497312418546365599567512958502030822784103261371511351983906124159646333982390087897387993371672887203567894869612784691802988400077024046141684357096461162379484580024369153446231929702763704581054668618648920064818578844704613762942820614210703480363084411167800614815023913690139665758030939659044159125120969529735812730979032583292747939969282438314920625902933092860103323917403838342745711351398457747832024488386021968076716331653498673034745401399921598221116711151254425853760916734327699904005844974347590556420630769469347283565064991077767958926507983234810840182244891170749665104061875918474857697210367432681514842019569722074734482208792869960836293587631653890478390048742747935151528419727078614321965828417069390496815772568280501220207510923634655176931515723238105018022585517518247822341364317881652068506613942262653446972893597805755792607832166738898066125192388000169534325226200528899561086132879950759573554749552474243083287019180305647708273670143445393759376315501750935185158798505069463905231958292523097514074052545956314007436631365318598857577378878419026141186895445650421603370647862526272470854341759779500692649026951120275026309543674058016472131592679453794369497526101844660858000783127191316021235091382970425870233641604644846128470918634315198653654660902676182247471801225355996813235223866795597369258068959753037126480244820458137018203432869086371659833775710858330103687434657741106218143176556339621006385831674674809188717077376535589866220294998738274442554792411634654679406036502474602456189525909349966735951227127320524011111391852302706761427723092229472881013319296333997818550318293443263220646980101295170455704300632501562504315083657628326741230020495063971736784188910051425253052496886256738738477796628662164973624028836930961735437337313667758358357017944714574708124906980229776815688257225708949890899120660554025206080132245048251208137567437661986796426412986059431128300054088818812331334729747312126744443118675943209106681841781026557335326213877374737553457827904151159313218518285887774417722966204691386602093496942560536450662133317325961987682588594298794267093801141054153993918960836361924874187916930646357844807215658399312037940118324480201556714142859863727859846970740475543618234815879601141366235245480672034561475693978012289565852162256169671298369008539004383451036299591188765554858501038242000728257383191539907527071272412720139581995535663735512890906976251070304892027945259155650048553046678249437412341710845111272716022109419314554015799975257597062357119650920779653514558284969464124712726275202638568898807683516345882147443822121862964661262708267422635057195047392386350754121166483026200971276710048982671613245191035278362070128544446701113052325226930150870306338451974189270634069245458809137680372957533468067793504686478745877073762192530528748136198511385757845429291076654292834071343502250882818892915244527783987472190081314380720430207245467931758778466626656846528861507688403122321218733296072442684943391394823440048794731810015672345261770257670886790779488435759761351817722330324699911665759663561548880404973201297560095265988234960223329496042355117872785529240802858776678063370228800022181033547073381937382622675719292593356370954061572778057244148311164042802001173781045377356971226702822063493126905454981671849950281156890107968802900112565891790555923454722921378528723282181212503451820595480967722776607131017786034388295733182064235872369934100981061723496382468683009133256534492346840680693901747353201504440611383475519042887754060775819161781154130039925740378644359130190784611315598122874333833098537839728020727286892320298943973394819817757139247491694646666789612342910937033879325123377397138802549835070664655016435659685314582650756107057247029983740904860172437641981422704314803738452936874360053639126726507615680781314200412241195949403929770163428124078720808521666306459230567032070981617225290269602306308129260227978177435716138102919298062250972902342140272119169380327132983200837285066796162815923582866865760999044159915872039418368224730903669496907177457012177714467268351119457992357643789469356535420860629730104673071982276607743930230946886154828109515202159705255023615647835579419688175556091385778521922259647769941023057003836674762355069788231896556982414650286786318921131224060618093860488326451730840169501420821573260642922288691115250254993602180051041932609690738474883239140241558533260115285070430660932244424825241441746074448844534185528241403762246430116084929486645829985520542671517405454420206280703433294106933727264297066891081535848401490945693824621684799297070687378774062892832545134226040883718721990383555267472209412312676596338155725024484611269592746975238144932164044468989516224006928370958627380688833629163724004187595864552046374627569583050798453815347152306641100725692362934927639367109131351270403054576969966845535847145591819283771246258352141244581202749660784771810569945704336050816850958945374630795183950034717251948443599494854468526812973590190690653598903356956031006447968263120457319101154449655511226841732515227738630308135975821722905976613762764176616347690912507016199955375964321155753439662168827108403675119299960008862463219998754180943600530874133962692998207629668015488090523558718680761698556060434175392524049679996465176000269269165516987526525067739508513040805388445060926010964368810894202685615907389985099082501549463918220970064845536636689968589228638215971107671797678975011542808723039128878869961867893071982867549919743262709341000268510325929632688185241489579124432764872180145298218574977142929436668937836438222965859111417940518494207357064528325988459122593949274445571466776515114569290313952537580463375857964158116362187227661518982412205351322422488256167742459676541254033178449883841113760735007720085697277626487365278338916361424964210630883493089033208487794286440497222682861859946689343794851334855905828206964612394649757412236283139773381908745580331675172722386647360336322942216531277635847730631534297372774923149739427339168139875171650178103261317455063776577097886959767574221493716352884568741975606953600393373320206516493697081492295834331163103727409098662574705051470227230962962287676893693773871239020465167295592539637570422968270137215978496180362348043379063970358558242210882352987239496885357705045182895099193763474732035193828111442092546739336782292584965322008001526318029140864688824845131277306267980815595476482850417271139264031553850405835488218720632498225683083781144749672788833320028717670034369690112633377140681492485609922237095518547384457179054176873927917178516593198682887564181867768768410191491807939961128907075158854552469947650821767567721164663642768199852241009652130504650834072757448496619761614608405906074102214449762236679944848377775461200772349048346804799553637492002228711271851356066168229123239218005582781418581599044062405262546367710924438317339847632851470653500079783184915824011759565900535027064038408707123341254904300589255268336910947101885680630974863894076607300957659146215650501976073448899217067459599010087108436183443327787653682587723082233443454329275264503508275103688527876967792475290543516348471778306004342306802510416927098404294232615492831376121879256159805549617993488223404322283765653188612575026407804515295419719419547797740615546242676714336470510868155403216644525162310712260123089371047550682508603240463908671443690773244134398492841467882847147933299621527265676834010400353802720252754184352253722834489706581156085710599336667745198566047220084160190860000788059526818266913138417341819905590105823592902013540514610372925984089244405799629261209829819631751214535332103905565185435755015506330230393983217424163887658141828375495738248135795353764156486001991020976353392075484934838869281611240904286051688972415625937579583189895007292459604679885544190931123329852718446233567773599333480407470372053280347069763700271572820230730576961414871966420425572750491950366323004651395418140725108930709443978312110733276687592803776507172513608755719376485636744855888825788766133918449302119188229270901950014684234363699275319954611567138685704507441432163390407802999234905814465652044962335154357201055418206044026298913181811835652148013865548465039391744227689983209599473453261485153380908818440673726935784293194085081800541112501203457445303331397380446948852770989980569600051914114142279477629690392241524461598136812557513984940301589089128390396906823715967622826543755905616030020457274561527945965191825007133487156545101752772344850870016671622088134714559577331251876805648529105407392802221120032862781056402439800380701905697739652978779098800316200668984037215519624334297992810095608616020149108819115097937929003694499120621765377482371955324580636150130098086504424252934783569851494288463384019650862826192681818133145352271022161786885639796180425572709401969041952782218972371157604600163990908887257182510468842834618913181202969641334893176005480461049509279897517631114740226421967576451984887245324003253302518248307749123252566884756169542393488977846191575794422770855820578541006163487982613985550919249337634419693864702415434328232827684568414269943837235402540939373073804634343828207196553140326715847016941483313914996741090812530998431631207310850501690632931910182110539558556703982419629169520765719992723071763730813642389401482326265470550903841961663957458368747626735252558119907191836237358436871834305909221799544996922233003428708226933056544676836776755877960837571832810682555956854316804574768968447920124443974874700573757245740874921782756424733258593382718360118550637271168238142462458904590760296921428081805778560188655269099927922154712708959240179476507844514414645517172724548476941607662478326065735413894461988583756749847678053698392957632660226472399204136521623736361466640323155185415154811185810844339855150436734807098016306252475101971504669545974914141011308661681636860421033880745651994932458611604871116486279983802481253941899013637727311133834266778532592324533344853759664716208338537412263555308937443901951541575679942453238033408307216841994789968124268884616597060833397337177144364986798767187972512615063197288554063191512610386496203137400515441345721044904467051945156922739366732497685739160310543114816892225159257668780953462048818191351201284162581472102780965979991944160344384182326231448081673218912379946597469447371994734475461447290698588542010162523064196805972372284233732451140654028375526303970784269804597321019493457002525055959469814542210702836906765111338008271970430451924780925117856272910352627916974258068402627307584190214628440917898442561629867390910053700297885506985823190928855440993457717507878492547917137854322631465566615358702116916043172098426523231396606548893085383019683401924136867142069727633671975814778723614330172612555205583002475666557171155769559720731113661647649212410007432536721117181902698647349658130101367113732229307682146982330958626017552721672584247759443215834483251667717953813744964440656738138326645751744905748004650568402111858982706460025498422293207274982206974769806226082660110961848556935211806622929940380157261010384282960889874606563046798502292990209291932461771606160384801422508869123734248586441731267184746634512149080855321275811894748251785940175844722914259381996647903390875103666661541646865470072022022545975348098423501364848574947885547459213375096376782165427914135474670062812767442222991188279981357269073785469091101556810429717305778842476385374026797415237094624639434605121639245148210507976032685986609400873234156423535667666375312276348010107704548905103240579565966741308311579279748096695434726072474106920153392090933458277744733961650093575247112417075063503208867717412193495146667638712637372846116040877063015837600111533649212190203318068500324666379221737979268046636376195583620471957455881725511200080419911461363395552011300394239159753566741136702232551901934176455731469482202225229548333297745560513730774251770977444659807607594546606593103127348715553264389083383702773822074314568944586437175412106604933774542490470014903959465745943771237897280058429396210552675039566321492376729814066350061202360793595072500261188229881702440932306066540097229824335376524377994159185149339041722501469974253353780504362141093577235490088186907390269514016697214836261672332385111763897273755722811689919980399572937460322172819284534093325844116963040623830035426887429021182429856451245795207347984627346195104552425613736299433014983937291110870529969519183533650534844242848046310476522083420859365173096584496130285833654819543598186756220294161384321163257685982562967201828906781124186868784597313387140418729700711919867701293106293096949899354813921875928804839845138740758643027656157147335183544073506255312343664960053109148813032384462652043513629026265933306812051158885104358569945649938869570706111923572757110294196928994187655436884256928063861435130310638444334313396196979733561523242666417066390240362365593574944251038356824938543066369565628381349757831909024277049909445141111241230206043422328892597491438231575907984423517784541128724259493533330985710978755386839817548252121751810308218176505155563452429948453904577562674465785517591489162251178070532881170459740597598645830080056103223325384300750981134310120450833190422865468587799440122965616563890815959223940343922260010197221765736217116359902575752900033866022749259421935596129475518513699393249692786635065238826768941167638908982314619095968338612311858671495757270575686399745427113036591818384717808180841752010065566213047632675249466820599746393688064999076413425808930820409023632383517830632217617206433632011040344099409158405146878326260477568040712615484260346833880268094044793089193734239036386440254924481157390763168026646799679017556718706413633240288705087457165871395916429253614402597840290871343774441758956655811307376296889347527173711313779000310082729387122487986914124280084502725122546352721992018762423508027844796784337023680736143992859048111112541931101350959312727661124888954689194535563621879329974884586783481448626980470399009162895288368911374616731561702410045157757001603778370339572539261354053250114657419224801218243169853035363945988575041132622240054109705194916292574379281916876204926756847774860345138396946799094353055861500427944483112063090593443247000937536710056044926556034727477807907836395045187624483926979873135352843484638881332304397927748022015296192355486000473427309507867806253076736433322824196132427056557794522660656950161892625626948238005695033649150471162428579689682908969058363758278283892895520363223930960420462287810637658111782742762532340505564585343287393682881055582302015544340256660561199160833124527637674938321952334956317862584221341665748262887744717933870329083625039959451591113255050506004055193310678540221401392893077471031783341055948291837130769245697952206414022795846705868857757846872528947007508518500453068757078397466638450736019535737073785356700362585582066737243338623835066357323527255029874737157104957827619393563501675928367423085383857351276128826173200948780873129781099401372087532187962176750723431042040983005430754543089347560999967053006260089395875398030047816817127195093934191068331792429451595438511210909172267321832118162279570595447822536126829509548622172312363166507257218634531741072397650382647261206586272339002819509088574096005768787459135373146151589768102894467346086010997367803156129155718923796941378351231627407516945694908680544178759792003655469263444618177373227167003444266776046094924812058797064658497352880792415315639324344125789177935725901786375825693806342504430545882795813741075602287584447810965427651767062223706972419791802152291454833956256228460783866292668106052637667735843824873378258642885012123329247207096075960682756058028935698068009042477941448052246140801929827445359142613006731539974220398080445375011953972619448484495199114028190660032628026970954487165779231879915526503112323553639686684530243015961973492262352274323053604223375606417777316238560718050405591823508941421612604389373200349753263396931768396397408340876148966053467650020180180950179015247573815905144668404233204625195859647960289531559077547204187516804221048827397952482737496742588221229084184267327354050629747395625186097845807013227661151733251592801250066103078456552279339066119554676984670693114454341653858729999117725534075836267307205981923186415819683344077561735876011585410628859025148597066302566272781881934320443544059426417472874446384970887538924365482695425677051955005030485739671925936918313224995238290395190787500747741928834128339315143605456554992740034000514752860117649136881975405835181301064281918542772397988891155654420613295214834039746559537469317679712605932622735788936943952814037155498125622918360289709884483519995909272476142927384761134273942707646596586099675123050324376092528374535447598558719279745135456040928446312383889192976387224509486946643316458586117087884072595663446488772838981448069759334634892092084747933664114769169483043759599830298448510466971167611803157567043074868319135015108662681481108066267644488187637341191046301486433951333169438648671912530511977122226051292720662888283651460221944708196954631978248180623064295919343803191070756728911303416669390683766514373340098291769177833502351137723780700801344937512480505007321973812385162506320810496669536517392868858139774907719078245297941956168869722316752104506671379192086538936749986314866410170044457629958945321955986639580917941851056008686137283520554464203327542845960428433290425439861323590988961610491104037053812955077468163875576813162991902508157027190764907757843602169772279041728321524831115467377986753486330097098407188529177293638378968670454493802201715742430599092277663302429744170450074589944751500765742782902593896377634935315947832002254243267251842300506882020825497212921405633725581581127104741570185389317829398787712798274886567150463224664385555348488786876641355612761048582420589186519723435336395723609948081681739740311903093045100043961806912344770855514924729667850895219861090165524898357700496192037386165583736313265234598245319951059160583790003979969517770697952469522983676074314990085485641433272200349890338404285312421123402100498162429185892422243495753608082603067624015469578806472961926684527511160095905378548316367124548486778820172520546398558650035823500202150851642366350078776071519856145256264951591055507477278537981540632716819511175410228892983782225453367566519025121682301691819839425989997594117695875215092794637661963360871925094446859022136218571040722049966386358712990530555270284104677262021274466745452154577237082364445335706452251497567870517194800500802567824607818185487583892258881641762049036112904312816748320766934852285776067934846458657669095206610087879064301681675339162115205681084467894159123374146368211388337577326140274624666451509892104406381808305608040137010089074171937662958444216912279089328319826772333212792007680916610268387238432454420686797560394826736582067345155042676308818158558039319161732754429557643651620151664466855759372594097115187836921732999384157882766022670925291474618234186636721931122698423608685452041883128019978033487875658827105870237096130274799132348225813769612170462274224961016733754788010634085514866228699569152716263350178980339827364487742823153814829001343256788832287607165110115958718714501057834762975288743392745818276860004527757177247880209896564385294238817387999187471297587411654133239155651089087752576862866168071921090343265030146354274920447493124652014732319757703612045011747939862821525354972026717908950519508590979562153891218056487899678573068849963903277813229401520730505202096076546883252517526410135506514502980213435336587555916168367494289441214804865998225611198797208669302128499501664795238170649564273515525846846289200141881385743510670806803934006493980278204084501559743111297779680235822043997189182740819520245230161759947970828058600328892886741062471328690946946684390420120577410669946215723851109156923759278558684493977360688001922934914717580163165254747272854041117825003154049416495321147450754966548023101855184474204933682149867867387892495751470690246623904739663020066157810935792046362771350394697843435917414264377803119021954752269208954796887825485645707135566698502327546123988230278689013175732191716784930163650138955291315901174224896073749460202948512798559245077379356908133386974703741573965582588573741349035827814340746255423551643968904607795838664996649445074756579699351493513597320013303372081166289167650986948072944032991761290723011140465891138242727263296851760942841879398026052395654066459330078965741576697086719209294525393155274373528280048234575091448533542404918205830211736693760497384227215913483552040425761699280642854714019368556141102765828085704034232587586569465009202308498308267843272774869277955040661110043597647686786538495502722558854224986136573631739614809989360847409717649547154334062370732658697527645921337429714124207051122564494990791441924448328393791380420636238002970028206239318075619226485397394933083251970873138458119857017100249136525227198684083184047846936429025111292751766993988620343878917517267572217442145385761100283487432190524333293992809488390615294064110187937539411343031719168526355316735298536398677616350661196822472348640340968103858504606729601476131074024007426534024368037921068446153419708080881220768071106438905886342157852825822877436754701408310031138429853493528249358504036234592392668831144807754671059106940654723734658778941924873236437024020240175175970468295402550796773098444317986354134645953902276574320351884311155975463523304523550552928506363115240811767846454714132798134065927467320835452822766343059530547343093817503778723176464890964910442558796940411705277662970232569524636717758458788220284605305305466181722096550981839675444011935670278272108335560644665752280980586287033307578738210821129210210389616523122848792032803766538720195820518561825014424096283660984633225284110157417361488234146028737749849149845904629889032849256083957399140591024120684557624803459047235953688392746190063530060252868443454660057857456872500288797407812699501435969649476414931850496255521694445285574529480723243302773655574561042966088356974253073611130310823800031585387362868849210917491803390548285054627864100013169471998948894209530864465026796100715048439262063311711860861208187157327345513700141867686921967048859010362423315167760172717422330504953061585247919628896759444213462356519312219428440714309789550559858862442017362826073505116384635711187846834715883490623342588343614274793829548341263417416882602888735547816653238321540768359096812054884548171892692062036709653605640898759284508157427478621941367169943229458693304953537229679978004871910203478247394917971719767262538849528173051360089227052430855648745041216033551514931039641863808926595190343501979503662299371070610980328347286934541513596718150629766374430994932369570495349591419352727151418737658694512236367107938011524216624494119800446557212597535804639991023932797708387184753479985436030661774685481674302535091141422536356338388354354468600110863848021479276315847935107106227221232890003040085551034607680665195521686567189181334850680693770039068701376254055246684976710144599349618422468980417018602351019649901337786508323436869443782163920218850859965813111265889482917734897361101747392459963978823770846435932564640554466354564506278165078910000603578958471411788114001470455657924684793389859044356095193955983048411907085968390826969646301033129195405483566334707548255971622409572456078995227513743172920432944214571757021119664927329504589243511542249892841829309680162790999014391000651606646547657233038464624395113830677701241619910309399289403981160616742076033829175930656604400871622422948641209276800548402635460460212864312968617604867685458733245904904458154468976001291767593717828778157463447497443174722457141782495933265895990123263165431809785578257753550495717798199024612577728494463535252170334339313436451383042589815147736236791994181688328599187157217228765199470314248248787596411631008191276660288566473109611646667671189367634721290963008692396234207088629338631255612873406534679097419938288166385060278732800485054491820199337871130829493390254440845445283110790671755781580093867536003860355768063981064235751099733184028068507709966620139938302157057490439491154383090561583001130141099139583290325869583767619707448919113263121640981843472560087662111596951333890462589050402103971688752976341156530163761401724174127541567757338515633409689244301406179749753717442566473493454579246967993011026194337636448667537561087691613043613748330479441225952612415148981699807681018481895780038325763387804353118569719951740840404292157320717893877089593155702274272826581614974080133206343384008689023889391833314200451596140089861121562924364169472543135617018117920055959285439183334369451919451431715413500742006390506071676581905824216202897696844090552454470012818868581435495454205566898387862448320752121741094873647410915786040991025855586394013091551756002797658653840756823639735834723364825533520524772296088193054082105328131130488092625504406239557590391944317141526527540808952986572630716340732243950379987148815126244606312813852410741435979408576657852516943899274655621805886920662325044937029212885127459270213767483429277774127189221554062683300828600901792187538294862915016245407247778866998890070980505692506985818373901350763943654187232930311836581686333644779329007078574510611399148091109971279294384939136701584241896910938623802725764521667814022361322904680977248778268641881228779934329767071638705695119901896323092458999902179757131345174259360325136902088395860854675047773229290628464817203195072814911800959505125813447571570554678484436237769148191799840529066771547929117426693348858567088139473448486214381111595475449852804057422506951464720084246244722993215792264672178814520648208302769361192173852367856740962791085234229560906326667104802881922637139090737684448093184449896992931060368700953087272410262136788706972698569734002280363504755236880049558697359039020691931283070710617913556767421587725759822191294318645745477205132894587827375775210307119425545175288583633445935800552400893120991882570655486639231448086237441459530559003065809529244042617675254206771033553684955246546435770101789796416313038674952396108289032577244899186229965198423278274995958934083103129326766102724108073795462818807634269861761703310093468008306518347713287054254996232603250116192827302129934934139799634261512648506347348327591363178682472894449321466061847965057304067187482841519147416841690897229561606700728197766108311410618692743573355356462725414379409813463832286243364133478978890912641531873040605317247738103537082669410654440622661293766233632590613838197631940130398985582094820953918602481990989664862713566498757014979534006764478586820491076270969775705491508796197691944139015941256832679426395790182782545568969968032231781589778225657613871677013214802115527276731117341653118922038451473699023164776475938806016075537483382328545825950629102393600165447353942982876682073712192752999073697440811342372020131423404505259316972775590585657003132022465479086657583451266545682630554619314754718739127923972118469217783762006326246681456322496877656028010455006968281528657542598234834009264710128328430643025697652644694135027062145831911049179319414349301770348702633346016871029183608374125327587763154022303956288776844723280302142987294946474939503146491804133514202393881524875937371592838326600354064289535416985061992235303829218610486918255269025574988931977847206199198050179722622476371814459796413713846207982090839588211870480155631852081343051685237415842174781458011563058311767877089770942569153607878091136284354824022828394565804195220130311977227965959838840936358355901185742704482665056343842162536049834085438904028543049268993066135302956244002028267343672871926207940297350617969254101291753762660825396822180621641812462173118967334743094220887670606305467169963141821559029243513784364350632262093120680143169163849781012271071502167924720562634687067390887567539442448270838250878826535655819744166357784924176318814836216441222232363549938942990784092165099611235325120110314233835506549388909275961105369398083023861037130475667626055583092784943578519785639053474326745056049094077085918865106554530081982644525281740877465478991615116348753930674193023342758365049641568635388344929702698830212838507501173072253194741218860306066086656547714244902618109150955830742760829485811035201107033030587092579512353389221572474247856716767883589737676177211751305869343355367649036743738817044405436987385939266494471535038152596325055300204906764624458522605213931219629970578255032704577980448589560702099021534466953706842845217821445238667104694081075061673174785697189794278788716052834504290221224398343390694767646413145818070481842165818603669376409894336493814267999197179815233510841570647616502760453863299952244303389384486986948796492541509969476646546897692164861423923568275318509654088133533236031501845430918115897953009608823801822954836466507308346158753739094675311255426108040965927527145627225527350121765782432201282217368454018834091125636960586741735441883030291042295409312139163251665271628121402003934852462926770253355678013212110007468751049272921506773328246340543305146411016945801523928106487165119374849628471452059228602216430922707329113148505514626087654910369689708578112513994774893832884265980561212183161153030419155186977220696407051706558307454295568020558606479198561137208320213973371589718010093419529924086318041862299694415900148445348986206796450530773611839913611440073059304205749678639537317291277835848215629148003084298917636403425821977585909988615422915064881854893919464924424427073460653662824110438068746346424452489217270080026988968400977049906879061899434905998791232993931686542977873405363741086041168212232803214430184507966819142023711524639482201770931427298845543362729864739836067619735520646544148606206582731163150571772420887655624872226829266602037148511214624414964999515202973569634689579349118486138732356737272362867229569307022272826189362420914468343426468002660771995022165093651912429912989094967348869160997557084153856326697999287231066968120038735043570013902925124556125259003322197307426285577090519268291420781601592068468518949602680324164502321797845493500368685311200743998786753531880447347851395431773960600553611144063536421618126021263865730946905932559063972194920380562876788287430919096154068691521231893627892498701245388290743083816074862738967877453782363709467889116034175404550891697540592273940492666239120406468558191112089876130221444569725686254529501304112171998091066911541574687485849599866199083983781712633106815336413320408361685895059251501682768475240163473441553578291894992138591091122483181871721948688386571304048294777424440601099690156383523782761290959674815107225829181329982874270549873596774842208562067520671599421809118851021464388153607962345415092134034300612997868682579602938497659187127068051527071418619605739031888512824338726837664102076717571266109274582233522905129948528281613592546990669160185027594016816244982303860880138242498830699639176230939613485459945178006710782255193242050873901267954978440156989887507912316527747212894791531731284579690612883700197518951091669085067985676051658730747998414456849249212797902881242410088408847783731591936132045482630356747492775654138559987303215905407629514363788522298669818514967083486052744652644981763753211029230625903686358567994891492488089604126511073389096634435933844124958326982682427601020989659454604773652398711801751865136733933944944267677542321191082309423728968680220347439593248623769437410866602820174765563194951087225889202215249803245839271724279586677378380658016613729297771184466502501152581240730709630180406940749655684993087263042183001570412013792245678731940258213109454610936997492226185837465197323220368127821679785482540385357995868520967119563235803556744705872326862792820603648717936660559441175390180898377902808434422479687088565952716127883634043276080005804509481613762417573420339477986303223673828425719406058354743783890446415406579099993185608124308463533967991722881263788799160033833788588455471982316793889336283777320641146617025954208508851805129008431630715043310753954554199079646509023164428834474068719718935466735649456812354304961298884537609297708931994214630482207660235398243215761625487612842541210616113313364882245413244897545356626534914240822491340206617500721126943061249663413321878554680294591249172174641038186713621514571649507321984896957276872688364311053604427157154289136681571274428332133397633430005081273956718748263504621039314324319975491958090961365625700243201665807095188730589919787067936829524404853420238652758845077629278714634221930150056380457251317594012285611355436854201081823715869013394106131783292979204109913274541054713071745330047233839565461871634457034018556047181381578089815947036849425786821926363634477428221860596424745794721701500258173333022732047386573215346948938772327005556946006475062041487331611568622852690741688093499017469127606927198938505564840024337032655975293686023874269601591645095650888549020898484988762500950696676359381231697790345117805540667349228798064769733991389207356808640524705632218673824785071644611430980954948809247373180071966058926964767438019702682241032886561113658492748669631268073768413367434448435491569475817285335944010063322752305783993875303255072167800795954106798161051287012353251890481593561721703239862529923914117857155601316674495414313623225134309093811713897244019512308210327892658362850240295904940492941532776864235979783872458059395139056795560489022429600734317792826184751933955564593715046875619975797431690153572144066875808686554524850048273571308531731244135792320993581940084780355302666178999034001645004709491013833401772294629926564233454788104605647714030170786181447811161624796255323924406800969011790922851352731479550364501613013003828067884533563391135173141024267843977071244855993926430774456327190903208839351852366033052369976131317334834526825772849605743916715539515852956333008194184226563499761732066839099307221655802854054586971189012219660240669460829422781432154324365761017502059129601843671261833291453458847496239270976581693940402863874677684859859221382070348649830522504843916857753454819551137494718952124618141523990215336585113352535414111656440333991014817160305596064373428680323910031407094111326232632399839699537619227136973500148398583884971448168151714974590795901774492774451113062728420131635843764179209332924316744005546123114291616263976070663560386006560837140438303004134347463989548459451126970333775832905533641222535927524973455348333723258625709633843342035966408972856443178958761351810094275452037400888010727884818895951672312621189125001920873733861336501373434886404252252001770462072668820070446561847389682355647147107826826300452149043241055363554525591842135419686511373978866630975008142564319847403775914587895906098457426078857863202314402576460524637248392024315470427111900318904204033381700098642286434180747777779834425559893089229069745701872020468182941675249134855996061980098948447489166287604198006025970012736569393629754093208594546675623408046150135458215508632072266038934013767305762534065551698152777855992998824194642665167687761191736222702092278336052507704807075907180343633570756382836596813995390760727068181365657591986683751054611521808378119196475540967095824956017828245672736856312185020980470362464176198682717748478222463490327810885463141517371814329792883256249937115629715737390115836310870448602510300496946914258386937065120377046630824216489443358000596868730214852492879538242286100073642036496791486942425477306447281042550872919341960667052564506409608790024404064247311413566099006514678880932791384938464806546101789056276456355644526787973176600856459859045759450452936327322914034062409343851631402526002102085325002803141809837523389639583076237367334254811893427718926930339828412036495177176010034675192081583382936321282066313108914560201482252304552882944291740051438913118279809819848432290298386962825148739445820391094065328018875407720949074786117915770017190387912806376236617440144045207022924523204540576280696579308502039812183784020672025012026675295531308349435347193634177273406360262579603136511978554856693728464042046848927715778043458677610085289607369314413346487377352501592452119765975459087695020605617578193591077403625835765360080893765328137084369439022722986532221828843740013882581116297155345756740321498609755428688657987436900949705097986093770278357223388331453980493989210171433582618967400312252799730336457106160728496826402668234770455830154585574827171372435847099486137265871302549402449573855889966053537090338925114540555812456929413788827165199000437610796725728059987482047989567855938858499483469651949308978149972776347330585707179027093568227576306393049702296633955287633799130785859314207811335111432012102601987304216706260143575841179770790458083808849808816662618535883559242006305302464346289923082030708064941073041567597710077523985586867594573174476709455684268903853112849498801814477456650509614898991517629924164287800047413850804520329530539184097689946319969559127867694931959273366205430918120556692462152740786651432352659207070867879558641686045277535750207487671433377060119129403158574310767777795213590261308082898324883948320949988456830767241759299430340209439932270827548357388507419917136940049879858619423446279608414447356652037928295317016335118153029312723025435629105545863957777802211658866611269335740729443614557490563720071282544811355783402901604851760524329698135502747147052635429352648136623886958489819516790476124747446800847725887139455273671088784750842568825983963683066764766451330823429953840637149396551260259641269166395532942221627797607874955291748568842182486374632474778324492983235440257156760792867425952849433898967643436575482307575478403350369653768736549802239878011920354404912882683594195397184364725540905314210556663207320463884838276837926105500380573953794021513641366249674935373241044043486238233624920495354428579053065452772650722034659290443202201716324235831378351252109576415274124465776261675436094709743356400769041436221806829935515109138556573734119489032184562204438771527004821101276120814078245264988636103832650848085252951495226355426460671844543042653382666861006655771695171442956555905423681933938717532038641155224288474087963872655996503545316017872842995906248975694314657253297995656442753810259566672558761130308635459508684842081702309037760107313710623429337807454750823785605494798769021390566558589286009199045602603206378272907615539703831101800844901121481192777967483910272882057559782053508834615002190348376576463110568401425042106378331650979093472594994266170452072326910171868068931598950080623997586948389705241612230171728940390466998494272133929568126161004650902845621267573941439279503195865023504811047168563578354042648572127540263881287194620920381325464811617031358676710643658766055165513311331702271823215687736219584821685646528460697066190543954014065106309733365138119633316594903039216427085354228049798026714911895636425174891344121426361554780892145283670822169402598711263211438852993916963048048178929629882011238074901305294249294801611435330239008067065721378167971985686130290301299399445124984690100198919360598279169730514759434649602883328969660815056345056609378129236133490585780550945642103530907360195844637121650731982015642422013268456687741832331024731921868515643412032717030573066078517538509706917170791725285511743627871301600952208920242405030575640215372736959266799747810707279372391235577709346828475601076301279131199539176281861594303820778398243261731966313336206379349676875089524023642469231904541673862358360482837439278866547759485902892040201939593770656732119490991043352855179871403502030760557820191483882880946496482084241766992456758312262478070390557653141263260242922436203719532918554718091596443185685205788235010309107612806044570442514799758960888028125997862387743549659904929673220844972443458243503689780365184909951214229401566917453416838309035284779643067608611599763678720495505795636516693834521021205712467189023635837908339119080206899596896990188122321855252869348573651888630160452941028179736080689549524036066488944683485357371170607994305471921648759431314126975952516610252290957537550950933718544900072907676126346765291664645580371533060205534741620555668380872331011456706082197136019911669601177265351241440510936203601001758405334468987565349002447580184990285112905603628154372796762883123816577437517662456404578370496485690904281846741434107660754984114657421533437962825237739351775877039942552131816901739901861642141354392779733470876597369481710103318186376892728376366023019205919792959179148224416394031804147790028285712517764484105931564467536330924157970212626481304280838933770672398228654341731736481424562966180793136953250911287546949801550317994516691228413844646308741027987820955877346176667793320063616141299836112387852698449676224949460162224198481882844175972508965043238838826776211538694490722314080038640966747955659603365865500834501574668100371549812154559177082855269058782746268018954840985480647767322593083364643266678951981323034384780554257118933244880337102766080664261976800040145768192614123421421090837882603488039871589674691868127595035419040689672781395132198842118325610948747352764866436713359368373719071671361534428920725273057077805616065916154423589107846465547369563439707372217818591230109443692313952203010113674073457059526133029367437932120406159970890681203507862354127805416826582353742593856966435762710973540865230333395749249771995346662569428121211926674888665256315169706607240021939626684282515447561496357933365845237724099687357953227591900979741551721334845333578681422873993851902093678274021559991420456446438381600099906505371881484938160865503572270641774386629751678966655499987889572179026230908454480646518569309255696453172241089451645426796761819728832958413935133844596041672854573991415080495944661353439845014276180542209659848671099440825081513239252136069510626733736792233221425995230222936409047664596154505594842048813114413172046469267049759749059935116920439027605157446677396870803247804063437778416725021988849435409828211600072772915050759869365684722016941046189444582618551160041549451062815887248514034519005556346661524473749607661135778748374003886293884886101950281280781792745034958405752928452983890915764913247310105633314781346402650462629156753779092137247828970031963259689125133021524656120543583762268609282030777416870045904352635817494636724551789784931750675390464041603363847240546498075003930024576610714660605719495109140248232735266912214960160708972207220546288100387307622968906215262971114289273463392143785758381679957096512975121288247076229375657213489062361860141899595000293934330117463300332972907834026382527837960530000473559275468487189299720656136533751537477921962495517969220085573147944574288225924228767773212885980653704654024619938729649935943563230213110848242495018006757189398611897262182430778317833445857036118160941397634465162725658288616878213013425589073818405734222752790944015079633506963068315858425959758344133931666799730480514710420516213562175409048777330227396980656495900945695698536584320835620615934529254241892916173052220979352465712270664005413539212620953741607025988131267956667461709323717405236296319608936529844425074302280497664164038282925713716360306176259672499571761536958524866449317201096085345723423625450385444144127163847672628333308189585593647600616352498590632887445032551137768181305334664669950154774932420985686593504901062114129914177309980459978865399855599720886527297388216508774800198668603163056123011444933193578407633418331385977273234527021265265772962648846204405032377509270264409159921265248626771659965913245715413925400153811699661401449792205985286546311988145874191873375518550958118710196924176642924238937549451631594772453110198414508008761556264407882172093511259342618446830352107379400041838289360585440706517264491688578728545265072810491172241294152234684844898973496533155693932685540211665594490751531039708324623445957019685643267568038544519358687335149681959769600820125379900840010546335233641891279605446876357037106514135683715512448361849192509499414144624632178459676671911648776744489599464431583958487181884662742027844189992880327512449666964867934589413298602330348292887626063713644580737134010172699240031409996289875932823997324878713822652547419034882217749819545570796378004278014587919441189077071435801103026624542936251505434616515198607934238562390664551545908689970098727578338564769103346863889942896361916953313831063514443194692997895215042734302745054891282240465675168373840917374148437318197118822641196702951400104844973686883604892628854074537124601578468879477813170839202770185008395994013507875106453561461548450353467874901534027514090183464567541976045483308692169390248980675092299229407155069237778782666991230158990938081337285055529905993471678423507867390580365538952018111477155275161383726656687055032514568315829590653570060806572699022721433791492375242219582555155273904766415152423084130932793556194050053244414539506109491632703871530370152810088754080933294790986591783965408974119198714373411365127164382405244158428876975714977114147142795082958870299279246833213370515267564394231135026287768903446466363218444592171575879241131996329875413120183252226786967899641329341131763665388968320511916362239963736400650624218691982230644198135153219731985910156362569862181748547088883782202161710149124324921653238655769085274725478596829812494806860664444935191830374836655081755422573352685140389878650300704028993343819723019614734086482834761260730198222686144117989843675583891590084699913140541383193918165643088434978829915171742974864909638389673430651712173602754537578343113521721501826959291493227874737425724572136025662638413895262627930213000996619630032325220131382188448222153852531276767630485518700683146840399268185487653840563848319210024722319166100913439507678555138370482142849151016989753390789756323399217789038804763368137484651689226357162307184064156632492410866923967601216010814456092321337429145784488061247863773882641020861802495130573388369415850878231970981515867117095173880286795801510678804493390248068909905291953284466968288254552920787080905016614853675330813369070048013388285854616540641332025069383559631742436588406472615757600993478411408406299823664823574855435335905053612627428200187848052953044769863226366278296327416370115311182340817867398766107281273257785139211380768154189444041763294630490061864780759891264283257299873528716127741833680517563794195244023212888549117741506531116818362269895319004959229250837626080500331743338563784867495822310586318894073980761449692017917513933532988588534336449979130016571286809999515576368835796903449984723426041943185991220465827495644137636777021611431270014347716120164648321329271182571328791058413578619311893745953236310239127088901391290916652719237745868641703648012032953287516120129170609592709077735616740193911744124471246014178496797282493661458990725500824349970890968096364168915696208984519256267193430471714563044323998155688693543372623026149800352837166513591216931783823097964852220628541884734869393594384325299875376511924923350991966689310683934309929177429112608797283043316638758402370220112172394561144733654127633402705845417785774852486316499991704854769484320531209292739986610752631319764337653802952214163742360237221850677911388725805767775543742535744238997963358197140322779356139744707119461141651761515123882362790564886358947268605733447972830925709439137795165630585389041681689876925808365068825009361192610789112427098812226934685319851706637174204680963766557289364171324938644334052887352790255086899509376151204649845093084820946460641779407759272735187506149345281817675171084502365204423677681513267431932510951920058767491849302776955965409812253963577116946711260602360694394572136480764649901663784374841097357300987497338721557269597603311371288315838030624903238330486195211498262358667333635943608153309620435231806990586725316679671989775739671985056332039162769296127845043250930278493655757046636650050423538070002104337905436545267691563211623070815386679328752803991810222879667549274141381460065654850877794899447855050889491480528826587688444566272939081961440068398308052403725695064114389933181166377016307519304450021566160912397787650073874339861213776763163799499160358002942539415093611828779256489019970636115118334377322878051378170068546189397707800275450470574657440961151865016887216781580801618548641080898632223340991247492258081118532699879573620303636012024863397052946712401923986888626998354310920045622791699844169883212018095594550534885326175425495363851506311896253092176652916582431590045834969397068765865424328194564764785373552515306898910979666887810025698390687113192142541988664192866687545377244317614463541566576287140553536428785180176621964712668996243194827310093974171042590552437496873330365968721460188999669280258230500025049474319578873617743981181941294800460295054273686692310079383355277975003835915620816472862995161814151182430486495587047642038715770645275872367708081805904084235237757757540088468775611166581392511935673190940209614289011096489957150397207159050424785782964191398186464569806900388364679836798101237694632288836091585443010494261487603503799034417768599956759933050225323476525468899552580628931781172182316379508778459343728786415144638730344373009824804924955400332234343780588846442656516711172540890242516568074345760295714812822409478460558543210753456382184804837562589157517060137146819642168971776054953019924695302390199614826260170628481879635799123969700159444146867753185645831272547174394450082162982830493756959752133974391203106521261696229281178721499149753725472129306870385087565061502752264203373041216162349639788099435270804166933227218359322427911165736309254664967124992961439907500009763571020509135217210267487838180045968331069999559077825546489128367433945158247815280574610341511343563810566377035487980940326526654845824868458290675564358632459180753460775801695839975806488137704343413010596884392991793174174742867125143313255177595667391206113546736483115197935420861547222832758560401773389173211141862365202764491763082599430939167130160355550663966400637699177448238398404527277641720112291229061185595127506650649835460296102965747543759069555507510185935075883789469234080884424210404435178451018449469776602243257275763372138266732831848510419137225727990030230195198814570212171657227651891902737558032398085602854179108696330380502830582541552079221546755099881660712637966690626696222880410521943755535993478632239333088074294403163633929743184574294796453048481266724296055477893724165925475425727294818303585240798970601383390192188164731155785052643281067107830425382786255073575144178094379451520876964418039294505337106958002880600959261554240429538493922366928251865457871541550543768172161949416243980236697017645851682241848234949856122612205259406946868433558288000423604267164920519830030400639082160494841822317937800187897147326541391659694146628544607201166338527550831900032819349165007915757425415726422107319213142403345326076600054088324224303953642851701019071959689962221685724205827008044884586616008524685471176644033745417169725731664357129934938871819929175946631813286486618479719449399756737688968894218741250518128652265436890284789523945318907597818378429373869271123324522402704855011368071301499127539063765677619504082472945779516147251783340582936314389374727744967896513648114070023132746198982924674668855898433555455760427757376276091205804848027199984955395267234262697175122246216969012780081098444425535915175083609503915428095603229402450125344480013590713294374264407657156719414139579192271365410090161702991031998657052584092579984341415907909404761270738304781789551094730906625750499363514227862650746766596040918727372254779472975212156735685726097885664645754101381930184782123365156997722636151699971162308147353868744559534540138665599995625362468346296316834097975504564050102772610837878518203493705332792138943408370417286053516274318097196418515813346386178640580852899326162674792028229007798061487378774117335830276131207960256078488189046862289627843902049983703685368810277112776491648078939944439040925075904833289087283241424493352364630816798184071019847693663055389540287367449033739847490758595035606072003587845043016881102144264988472971774495941058452003823012531660787088599066303712804121528907855153422131215471139478438631378025693727576221585767928915212630006697169938472634430828463068278319532124797579764030143681437346152646919895021034218176259365978453266760250667448846712460966866173009706625245017692278852056906735900843160412459284748056689469781827677947558847010378813457163188174944289989298716727868572546655367737283112444617673040875235065054391728319619830505638090014071189077122132920908376622049304967945786678841810035863738342709135352809394255181980793497854644802496427368668433552167080896583682049543336741086899344362297041444343961098861270196212361682942389358044719702097389199208230232314642350567106499113603577319563884719181976988071005806703870572501530190615358555901464126696691923629059503854868733761219137217442714461555526745228257400058034707483503081485510715399389168383731109275020581701951231311776778518448777687268042139392860342132389958185132776669365598180645571558540380121592971267768643842853718880917909957308068010225411651642985479859780120053032532257524997410354310883801984322002357567408273306083966425559365951758305161534971344382636799028771794289082660425974949114770714229702525112586060390052960240254582624832575575756121613127958128121568538408559162780570929372466124367205888681576790769303505178957563934003111259297972535777544200569966402202138347356603769169544131890619160614468251813160176609861677232066349745604650972882659512753972733368694175508487217889388640618398460037168689685091852298344657755164156298149054346762684211445248399413123038525805184868019570889226188325223553643687364583479146903567872259825575975596021681452229949197379268978806572774996020618312361912598422999744591793191907004469955405843606932673167089261261701339842671888934212498755699024305950595367665402753307550309490689335933765557321753833566489041072878037317426730961814074515620721259831472457483012110660947978796294904381332427061165526973317981222046734271212266413819291473278943660918278788827641461469764222050291144484184413818492376352771491469069743360808145042927657615875421705249394092838637329473577842342407795488209531262353402755035057102890394313368148199515356610924477427046999116723789895516390463749839660324274199311394429039057605907415555332506554821517929225476425450871896221311351669933045431200007471829800650638738989262564890543973968667943212705493923274442799571733635910633348441851469534298128089686874083237540802626059432986205629181754412222900184021005925843557050011626334138911164722410329354306799246863155390027951392329972227662129951309940979505302073905595811915124333040407885249710925372417474301388303179701844108570451357681512915362442949250375261611011837321004651896146782697244426178043464984407081819464885701556647291249400183231574748921227215054856761733105517328675555551372752572280701584444306909116842079448527192751675238846945201405843654124419006882995745900543574308056155946524228819312720329234092490339765471465181113145925190572580493515112436689165402260062755458017611743528143148949991614671893523814433684640427672953871675260813395098759620778572778924985598283482328917720811777733834663342418849227919805296830926375673184709704872233707624758369814717742114804321363094148725478149263087466784789524555610053498907888898459211841022359782737316521280197485413419869770543953887497390145741221190480539008552547517769182706070979677126597248844196823381058259943529823826723631734242671557829646010506831004613792748906560307636325981027936611235706225460930384592230956994474648995943528035957281220735900214846748760962849701879898071617087186011317039698435437109684351766492479554420274224706377160003575229427613743288102773742437633846548182324254585865229937019088847477674002680010096731972668495586454467670798787717513539808839832073277017804624993278618880767133092543389284289547339980467826791459819674690198306839892263439290357185733095966285388450311226586325701495178443681391853583920429643375838949238481221756550210355406710582772688757513784359797904449145269179059270350881467187781681401490099155462169014256978035035958724739149761619033480456499169804389482848716057330970807205046654803487557123331222248624733016399867137951278867986438102554256042535792751624131624549552973102364591993011349614295221853169829571040685148038221398883769639075814255195711993591711187550877596254773775135923387032299401391763658037067844008595624687639951401471457224685434012807858564304393947069971219759406459214429010712931914057426533471341641286645107585645881239511401177955080732163678101603734337601573155634925565939373671656193550045881073223355930244825696996555838830534131866761689980856668282771323568706812262548462982103131760771801239058725534724204741520016176660218058824619496648746064563878996315071244291538840423245075603214047762425803652609205191482910102715774592414262871044559729269995650112860668854627487571876650669697796028230413811084693087871684835790925462780349442642545861204599719960800316630347958992894563255312542534431739985369459805836028674518508105331304764752853762874570977776754130771424300232534740409303069421829116816439039165574700321658811000624207185247579746980527651709727451530250946186599372850401168149577814259636124014780968378688851125147127622317915331487044871205793776550304016642970150767388550477383288817873121246007452761235417666576881701011494289925734910123564667639625806511271339649842282450273056693708923735816460953561164343750565029963151679745340938235328999702562718021656243625511798697216249832309565871968296025466806500004671622240239665382418550573065814460635905595549641982011396965284439301573931052062830891492180634287155353700590035047086460963541097884106096566034365354449061700707899583180561453390650477052743156641760972151791948928336481286604608353071881948053442177304236040841191576164461309136759315286399233963870540720547988479579886169962180644201535353179004476525582272767064593635057287804275734855898768296689233572428808680624632489791895841694457900295928632288829382800916032460635320238223124737736787406179409010413815330576102830088488649415922557543809460630258626769891731846156393679957705382514934153048349312243480633331688402699767024473274906189736334543327828082077440266709778178207831208572634456094708554852142658489101849573503186642174822985673406328525642088746642534053395045023102754493429019160008441503984952021532560016392766936647780958412656042906452568061709558520418712814813474344515393746475496344220538926109954944289146367538957876055842484190258311817288502158858378806898930594521539281374654088777536100423510149310846076543290946086796910018840384162250090888837411244830646123775233176545420148684333531525807526673468582177646255479877158003780737152412484086925690704928900666781140279791636537433395145161411107226456176282259912478849099284872988870529808306524599355173740824113367757972723356826803378116357549983476669908238378145543916215512856385576818804480343213210293942162408135480262308822241912311925661205255016134989977537211303331839809636216624718633004541360033833053057938607902112932032887174995145272045062395800542689317348183540808487347093887388619010213621756502595911351442127021011648093093037494167291593624568786003466022400339535225142449151606042997647942423498377961134986659102717829299312465284256303982440607897986973420603951700753187578630616126471450010032081159416960435788247184765644413513385091862089785746218053947270574914758885846342665182414683879858080482488208055020192887763490205355158562400189346433242686366341174030312234237172519433745140146909287147290589015061523895622846152031461702617566758586209515477682835625450643162643745807607141785780027587608048332596758878853180959596581481600806521298179195843985925295184458469272466477076091516851746385647187622149193215623010127131052844507481070026502446417858724356779922130399652183827914184826528162510461472116304790782242023484217623506439141529823005543625701476369958878450144051305748180118673087237596524652046435093431303966655856293925156810381694666620313639439917344896713982981562741198826272351095251221821704750686253399267537797846680999542042149911343540701022056926819994042516658933928498565667347332579493437311852048961480398907491103503139468334077786693687354754911077611269470298782112564765681491566691909552936732055957727929512982090715157730091788477963374300214580360314477890620077155490476480542427051316776689353266943735909722400831594023758388314763542140440860421299577016536729659902048363057779854577067028190587186483061382527527860075879070243587438121184097439290836223989125389316731842659559659548495881455735273119107469179828345743767858841443980936994532326065725996975882421929358791454369349104390422637817675573224987314756957013416041498872979606838574148390973894482340813010956583016594628071917844798263328455536359745121872603325357817924068700106861650620278236810634292874145081373060954890892474450662277330838526810902090813243131511849533596968989039103170864371432842682490648126662406926704213367160470574265531382424342208560979350065014126838867933302418654622307472025320717893805031719917873491122677621899708478236081116007980195606821356266409245951405941919888659605278045961898798897812460445075204391195108742576253503374285344359966802548772112938561910122074296511208884295468554439251909040934596997623225136684493959391431058220054977616511932363355784477387007275167088770183360897310533306167400940748760848572870502540396522062498438780791421232920380618831048172321093001720191485125537211230915157190161271374065368354640345909017516919077376312212625722658664549644959123749618371939551519665045731490348698140453817457369758982275113774563078672356216976682523924529815904675621852858455891453014822265840535952639098539371766197101587838732782383755847244288253637262108186657407440201307721398294034324598455034889846916089350460604602972075243052225050884840981344559999075868131547522204656145766233140452632696535279292379792937392919037486967196463071806072478474739655051709747509660626023429037646844450582247222021323863885571451323474982034996604066211777772978606443414673662111064805331614307054651648294660337643562092912703240902104351027595403970654729979272108961839673150847030362204984020805668699225246595358373749601331417900353700524645605869477674688973094413691010744202027223857514205225470819089634991421944317404112374851728895430801845740910319994611280556433442262289579340517365029531336028314329702493656220118807383796596866938563040365542449375719742102493740570193694513848256986001953215162568971401835116525496006360110312028199534967046160974620829177365729978564571306965165001622777885273834072598355967397082404631525917673804229743178528315649444954503695640110936985581798511502721191591763800482965813078985947039731206537802032276034416297329698012059066824690143029493995250158989047710508025383515715842805178152642640065745840279170365562834115519991778849951688578980881405096867648256081575871689213785261434824019867008595949183437996872749380392439900124089292676454523422192207578413785334248788335354749324685978019743073891678142961050444496628579719868493170449749155067552127911161583805706968196572594815298667213335258086767899959649515960610988893062288696613263121755757586483262796857114153350264721407950235985958527648203136398655628137447612938148477402022504450859121825095624779073889654945265020370785100531156965622029849937475086136190439762995990313119008043197524580940000914558217454526625805274039981316932570018276842172231805140682005023092966177270185446003704330143234525164686645610521720692906036720273335396157708284888237288135889404534490226994538768784657248578192875582017026334879541782535545557549068250069979739505950461342053430926981905725531230338713302912850319228135696396012838534552115943569140977460158198777412381988958667271114272958310827089863920462180345379455624339718562497127140957925961923078188404535552979777422106889367338855485881072236768784859382251540354409948225290592834847801360135009151581145329214423539629875548306801558853165966563394478186222393658069731261285120024220474114337596177699106333914637580520358154703062295277217035148212385304932657058446113196562254523852860644493309181674712723697272029500262669493867606739072357441326860714781306327962522521358345146175319707352809011354314677739453471024006089517815558307572118215079950055883774454731926129253830499817430402307022389098160761531109928886528725602179498866339642061820921316043176801177815429663673507872419183405805978019413641380162857929818320868424446974760959467546593513927192027086066670096446912642578969760050375281909661537566185545806264352294921657908349843792574319715877064686820018182320486899825645633405013849665576402970834480618786696893121635133966878313623511774979419930548228986619040064715435959579227544277779439667263372974662779775357319608434724918119021011929439259038026026484174844478200516856843034661441250061225441185536036696829948065721395351334078869245327059129149828017411210718841342687878882980021071193184154769063232133035664704280199834162572610516704131168493867700277509498844108513693169564448607593170835467673690177738942973154551145922770111036084305577182412122340329282298744398644640191956092300014394993453060442579969384917723978161494511312042048686379167525306349006652395804402898435392555784845807220033202925034659744813261401733733484152208726498583672364880564331283046930530487353905968489776941066248996816465510182556276908923306543747477325157482346420761826937202001112884908374084156663787904917715791626174472533569211027963136363961933383031690960585634786515836410409521854218925393845365190009456821882351219678534912907472733457619087952770071453429642885777891979700517737331894256474677870595141670950151254363254585850590927777223574413690610705925417965794073644894013368462125974037769436292671078648069165694144947649627554797526997506112392906590555602998061827757923211986904515905942490767601449443302144753811078861683941736268247379536204857866736619434018375399507887357076956973633489060966234152033032736644168409155972675060681869195428972955496780074208880873199984229331801642263918301140795970491267195672661938762353423067783745037399215560497316196545379184136237601366609873437405615646163459852384782852331973079137019825090585326929428640128896615562366533668086796762690219338587009470620408502701789450516817868277031934278430701645193131391148579096169684416066209283732083338786764148839135298925848184530866997588412889658670242875568773123590034961649957608292377522689365557076354134082655772488902435754853975257909113420179830261153474517489394228238827710449742344359228203662147297399136740367101215970943082487534476980106697699031419407850208010006384516220354274895328569552580166987140127909455465844685317297663885922327228023922957255162170439537798680918870851195550148345006535420589588172819071594632777061363476090473165184177320017762749668619298300484784222251662526812410603171436519456728348892810958904469510765410361898853483266943402184793134763806133555152023602176365618271131545325315248318501600255035300235099811874568401397841324504129248995106356188398860593998518606626698374306821560893536408037221056922170621065402903346895715239006679969843981971994494884736379926562713791440855451262773768033692487909647451106309430481047440825975290276493019099618286720668008381247708280425348545154944826733517709915865139720744453559629062029789651482279964382284624100494925380966317158494746496877324294171486011775792546480922293925634847344849734476876789725518676844578041930104358838478744984719157546612527742106519834036887682177098564798974966417963758532760889483399378980386935905003885915004182247692621391632221151170732974075729995059216141953417954539564825806957558191410105474085836697638897485443567038088777622534237252366858625286860701112073766444177034759239022054029211833635920768287468191635734436212258468551849117378281498933173294328687866734127709419506140678430955963466118300937723559315500840818820429901112536254951586587987779332016060230253996395820888578524640683893060314881551188185106339280138068829477553386857687006287381871755096202301678908295772993703948123553225117730651413774797053438937964519477623368044456610377282423774640653174719122855087525701248555303495842547755111923104174126089604176453047384486184959876882445549497422370796274252261378595615081527071735522514060924714662877076575923280000636236617818518201466129968973204506701938791223390280196792848576421517536050324280495374126017027574030305342271641863949578600006459952392766917288951034783250731781367442373727643857425217753618604996157784516405621251200757112686925439127054804174130629085265480196487981111437341575547549991708223661965071527972205089698520513649053554727844829720710781457451456846086111572956596317579388647484246331637656494481161619216046287370290404097536728861306625138090935098491430915201368594034990362979313644033125901186964880120878666141208928978105070175592631593289475933353555853961535737486473277884692900514837562696456927138301087192984228256114413262879693085543514821959294806708059222682459066959870498056520226321886000458133848213383801071401193705031999865589124946066131408979946504502916697723288306019518497855653243552234794761767925765445820526605167994476072270550260402538069305498861065092174655658888730178883841289599959659159322793045738084143789823577978122166391540010741213360957168963667005748458952054792616196173666179668924730031816330776842912398177400293806904648200505930567210970470723585762765597152866857405809911535605869057244722420834985942707651457804339879341679576813796362083390395083293449558059536376048546223113625167923643813542477484194804358933214598819421360579294167412261599983610855016724402649352902692947624134258256387230319743507861606461769510121854106322030817166112414886764403388729757658443952202219610073743454148508916871337442678359527056131521252620738693321830593565893062103049292095355381454951160121464198439793903718964398693487841589092209093907042757821905935709430767237024389005345312096700350896192224298816087686432982939714882496041244651328082112489224188331444749268803634239182966671662822415678183967524379665967458116991492813690145022797801359769313865394554720684577771745913853617847926695371036950896377227906128123654791570888690766768908193749340610368410673860054110026278700874705947106586451439196980559706950556505015123393666589057173313364476421307065675731991903938811893825307521088285951614750680946883924574001113547027478698216862127432149766518830031960333456223553442141736811700595766349367622329069184880323734519243491246566532971823841739691986587133313412071051707368341724123447237186724941510842704961554950379550152873822486053846067672039287586862626169843822805601587578668309251223040159989753848922836009598075215949025807471715773537480669005001534985359036976722971043715921098469391204905426246339608550824918232865843934026293826856371525962389474471783369996618020115478824991332365221595665340485701123258277081886215013071577934600274395168927524355182396240839150123473924668651002227673515415339817443806293681884318702195394674578806838733045026699348204740930850952940088706951818632548354824966260706650249956468194106470407122731100421544185549123163407340196180907498723670338997499343924399165880651283667905641695736521605028224488521757361133174294735635774830847833098492957430573060450412840297114897365523337025293332859341544883137400581072624246477515535611897734274294259684019406813333814161074909164044307805277729770093827687366826928083628346772591003284128128935787611886533037994391571099173130876841482981473167438924150708123330466386665268851715228773495808650709021102713080114880705251086164181615255674817104786219400105612800134647100048960081618136339861314375953783573446347009738022397066733317884712174216623797833950508494584056480430059112018417300502241962981137643255508625993667297921212396833626254330792019745755537985778603339936113973147973585880467482663190555031714751074082657545538452600524391171639479854543854640477445274442320820115805894011041094538330920475598313012780340587673381134517847042396208849358293399476294892749263076151959475808635230500390635269755089737196321432027975808869585297731621983594425668946663498655664182852784053071039460383705531953070578143320616548372087637305421510498196398231622394615554016244819227488988991548181616101412911142233274248071051202784972384904402642968076980344031601013659880856422960754069569557133508005356595188841456265319836545998149354703533396578804947612732090048553113590869747145353689015718969841577548117779410760419019145652728884040518827950849008264536013242915228888937975199955998596828893608911271091030997306757062186597296734639843061928429550429210546691609154182803517832368415521818655679634071112430643855154156248975176397718812620984087360982992383637303027505941877062626357378481368868368293339698892774446869696629499689660276916003698605968904718417160001971841236265199793012787419139272279869802272459522940152432208404817539812400825763713606703033447765411404274369962054125145048270021051517411890882549260977472146205536677900755200879989232346535925261273772769545671215444999501484526854325974087574445023559503175888094678670624279504968122317381953193469955615100420921536083260321530691857272259929860039539254734318064647706444154409630859833209894281173897950682749552487066282732805364792474107235461194594426537978749869795964322144950143520616632736083387789574626900889609416213734426382002676575339103418924761056359888170083539644955852192240769813052521731950132374196453428976165813540733130263030285478022485192552078323237454832679632890712562747524612292929641409424850290594741557599275124250850699663473537642940738391820741909162541609728445916256144727217059082938576767130454384335990826160862846719632875160286080403534720853621937494941366551991508536892373512748507429481445196541693822917931530918037820472872238945587726485845658358368883541761056472125564386401518568769577988275174222434711115526234369721170763345046653272476633423782119587911761578339722874708451279886599245183279164144598280214437270189462668035792333375174806410499318521884550682118360856897563251181387504609424195574432639719843107892775247235667228839552735523606622598788598539632877284454683694923676064844122735368292191324554704074421666820674612656707964301200553515990474170854616373362027038659522738064231262187406268909039981671086150219582650064497781735731850521577151608476313142971006824824913916249289255612638476738621823334522830285701381554374765057846569058839482531341998139629573625019198571058084667923649110592908805506833821771837094406269993826919706824470532005794540835186100366116156094508242398650419987316238383574666454521887359026121934531604858339212666377250620851905462362373373281142581664384249889798596679541759200369130045370371962753606871830137648121274105614824487959863510850054873490298447752975753493966553071505515441039093865374166652159183354997382566893264526862082359621402396340971224268268700253395582693224380599832426908453047814199149893110710157169474955576352194587457686296301838990582420127878675579693472318503074461060348391459879497794871139135462902548628222497438944743868266164360683181248859872326879107661623053800860292158338144328453224074623554187998881747238128535968382895006202252464635731610826636036431485635531605049915414413088721541443317452537321065139611973306948781391309687331861366696193940257200499308099995348219427655878113235218778124571834239764680697306979340608138301890778537922762154846640882312642981642123941745697135666153982555543529498172239014522235919257419431464218266477688866772502171232941522897844616291056628542007145388341678148913456674450692912906319135618469153315855813507648754132185945574577015648665261674662085801070023556816875810595967699890198547270641753128848749413907086642080806276944501319670197033551810041719242513644274485219781537035777096179780365547150100641818050275407358363121007584869042036045306374303438876152382898355737285260279010965811358399008202510641500684886037785145170399362693832261888230189959127100087907541662874832239445228502391848679138156920568635432170416335863703532435303860313824517889442520080485301480423264006520996296009664177693761308208068702013088347209999166455805747029726506424859031007184698953106901743228378475715367509849704348348205993122322475198548535455451980842281450746416932517417116603293266776227819083489722751003080897525205030246649351264612784890874118303858779985696639063450520022123934526686579920442386148475724289010511432888381458370014867822833301640727611403694136211573716998560584173544560803368889069252435338105397159315045259209401288682676195785113132383976361566212857648264097235668922065045948831798586410105643818698894289927631481613114119783948514389640201616144702822217564827342006461530161701567304518618437705212706257342258715062895985488617620522961688656521583778424714947986648770706732481799084249744141303077278122172757039389853107662656948276197633287446596045593501802123231361682946910516536799613149656188142307979002819702075307204137744966745306251107845657924638003827385686022458954061439361499404848428696980648326210846438074333655839868808998847151429570101451205496684289667486610186687651297313962832144102683416586035991143893180762564434460927475028253732472243963582314418661898353373236916808695029220481436237204812347239217482268429106661178494353167259238504105377931104908157295800821890410996537405229404620198482059471956546843007682203732839906146792078803130621080742887826745652227951039753018549245010806671435652203409852097171275158839048613112946667339640992434926471623122346056816004405457214628656625616892869974683821633904331762863708095828508190969741762120740550851100181533020817181367176854348727208917260674318103868754990964287428041065285744478313994874978924434353732018837509779534604400528119785269275442489632574162987942882550607639516510838711766467376638752697508837939890328835740211229563543208743741416249491051576822711741771193223294539197409213659086000047620243281888116116364492871555990829981454358403717095653052756790061038582200502577422429256977373229660938546733692944968154326056858234085073909150459231508132267678106363250595862745514892282856540694522210563558028622416764055769526032218335623963739880801424611875505460955509412272002001667329078978000709638482831244629559654502212074332643657186971345144689688892295108020016256807995121841316098330970217827686024487144336131445923206014734974814869132077424597364339492007308857482067224118479268240533045986927545897072131545841540477232222083920803632412721763116289188164339403686931713558268000635173209745052437830526334298205158572929372906514408225209314003833442860094371776965082929411189712087370784093552754759466760770073958299632583886106737450792618043306725140535211613376789603653857985032218450837234572589397448244920328733860279920420127995062845861769293493474864504649196863533839144956932935349913992245366418810063103071095056877344542309645895436141863087624149444741986669834771340530095779787207929146238962639088463929969063931016383363832131953937930428049848759627949597793364835848003784161018633174149813364342738798030257797021830886503641810622157102928202158718144562664355191289239074644949104273596927665231146956658445818114476377375235012859312659257607505565019843356775432091750690113587867161954936552029139094377173320155808072273331910017793165196815422808837057650759883759702175411773808713798533896289683026298162805530110755775897853482385481298281050149628858871823221804888260182746164487902917284184000293674697066526008628284388308813356335802435105776352859335154443801010244994217478189655318847087378155223644071454282954832131189537540818216074865979777622791023082336484361723366029171933992616788286898005789119115696128611373040422299624444564522881179747153663579146150494381217969991171955339291546798588856908281911031471838112996786565145305967981319080042218270900569304480748300834564251502360936375255638319351742703436292684023477641389903904336235185135026393009596644489877604174378603817234206079071437119444753952284355167788857090934059098426280075550024872583065055751125935389631517182606584600128932682974216179130811687821272103921757969833700705560047926599743236495254475598623484474040961714756628827532509173759154603250809601144327041198731596968007968936040759775018037409417146998188504662898263050340628173028231979912553091836280779925113306555777258958054972193754768545034660721841155705309674742472328699207294954176864890518966875077362184297915115758515906698154334699735695187655323006157281995740879843326878654838770370483886796963447104488103666255295862834343848046267812214764251660197642270203629450879879092306899776262202336341177118201539905017307149399611554840371522826857799838510938400452826367576126056398439135294087394557427764849924141468582429138579177562329540201682478667600210215138266641101300421780062344321791952368617769613880500659250907025290015574994875260137231942696283769173901232800260299278068310630273490101100314067077900457927698279313684945163089509182904830296500190892833649883721439618079320874232876806864909920444950735986052895721169951904040833898408356330664385412889007147543866567070850184695379003257164362715713573472251059295865110984068456897156582545572563335559457657774761802015683785236403149785380983156625318580942578510581390461546524807271983290957729580553008835764393546571457913592767466432544838454558273091398616717779959434994550317477143659796683456454234578234953022033793923089622734428667174667986556825373251453774300922372120275316938566597761078235980188630750756040836771274187145896698345702753848703603042584280212778831071351132772777499204648303734048642790225836760077390083656159122196628426903636660298543235363179945147033963949613868716717763056546091885655184434451689033462458468291241431753586574989124759556089604029215539397744642887727951622306124647793088265423574801071780915277401654871046826553570309898131083104309486675394151163167665828140370086686554764383397704275712504474922142296908062278760854440485881399571274756130190263751507387831188514410053710314183163474336751174923205317682583915034235450586022630586870277924322969161754595344045744739971171211920778991581218062470944155069472735140123455020462906778337817621419189014690880707981810067348593967972669348769652383220191082087313696579981377606214334560839130799199491618842615176620115163301336524026865060392172540343455286751808258010462905820836468110735183372975196145612252537135677118878425199402354396224247751737334535338915072628823213219610084406315154799859952158888471159978375100106259724395444290564783724282711276886130872971766745038778447060504981792632630112179328577963021341729058450693842312785744709828199036893333232252456587848649909717503202216728521499882775465830655901595843516185552054897826736135796279574933052201119161084208023699613890043993283506634518164076838998792241323064158867250047986219148727609138365553456717578454745567604129133224460955148312535361128714521074304363554789821369772009279301372617048908280393909998355740828980056130326328048784070258801908538773031881871273074613664205091087496124190176913449970774575283633978323156110356482124709035953681610393841375688337715782793829413546239162705760560227177983532110818251344199026772861049687035060733720893553086400814265991650872235972694624860483666589113039585075104744947269939264526460552266518924976453080721310935209623157608488311382603647916682468008414223588777410461155693227078879326874361283795757685381840746778209846776273672446911189165465543048479710421523977928920676389663589638356641805894421474539622623175326557972526814663117697801299371109824534052292709330039962951371443831951350573178805666396104212257787252801325283848330829972881825074988518314717684205642585248475129554534338676312935464407773405000721996838014052269594709199118955188405370077231658195210530473114914491375858791465623887194647984526528480268964713172715150104012602307121222879224688811363287433466723782055811179420272164792256537042244877632969701292769131500425202259810800999798855902356890432902314785387387240209474483853941778367943233256130938177205017343097962453249510339055541937311556781096005736046904087935062129874882405284974393964694658467774362370280141430030440166179011657976026979051136930909194130040439925056649562424683802034050894802900026376220057864055215622740155388028003468955917543127621861314760525568998950949893238347287908253998423463975791200470117076564797800856626474611921493201815268567633485843782147331176775382064248945809658200413472695716237038372077935659762005227802251822529632003253692765319844596583810375507928342527858259174564350062608434416311297019553754748518566666109082130176889791760811867452945298815710766128602140319019653862395629151313915405878496630720194218580207054805464477547695567872089601597179073617241406114197727650252901385992813531379709256036120684983888215192251813217998093335978213175107048380602194223577108994591747051824708603819575788002816155616116658533162847263728589024423372208724629332702835317492841004434726304179900869416928737222783808028826637801392053292867729280423656591256451489454928932008400609684183178390593490237620500022433912426191828329180108477069574155867364119280128349645820683311575462623391664181390619885224573436830677398361010464231646413313553235227375266445338203004095510321928897610402878825716543401817838874101554129489492109750777460955977152478691288112448292842571974688204885654909561576851286105935267802656143938335859217886735660059653009853654620642543463791062988857389831835436967921926477578037976099151997763156973019113881696777038313617431644537854570073193605219700151735410076686960130543727588160704998778936501742224661743819326919286242930106198425416346048533061312244441005381190421705295021020394928499328022918752088000318240833795363864223783182669354546763785703606403992213306997783815919525955558887819155273311550013170879490166772728426303449497471356587672814394265492052630061908000591094495621854521757908484182984669384194955881207470010603768356344103320545001615165724072012529860495889470797218342597016438475984865828098086905490367726146202153986362941637717930476272183136596809685002918031141079704311381186418491415869758498660224546492765131028727586293867040021300059517816358644077874811780652256850653071350734245894460268346208345803133921453542233875444863038607087278502777777508677629920222402710743245913400402892872090265865447356210842527192228663131418011220286876581195927271283513242150881645019120899669021973736772018155467098939927354219911627316526245069499200284852366347161921013531794460181932739607212488739815750393461817020822302795639335431676555278850293516327345947265795104011499734482377420658757303463602505161561392726898206604832108554232208407202400309137515825417460421057455961533919845890027397157437538022426415567778759307934804245360144550080463441240544089726593996633007997972592129223109419470783842041830759662553943244560963589541422566136737969285423713764749526337556977162602199226734913942723609178467619658720575970336763996591575636399342505878894376683014289164175738503388810078600218625038800881754282047678427259567196048406057121007965616492691699693920855774499424977562114141333324323795150936409664134080844752861415797124250850592580508106462051245722168848201979344115322991552482048598975130100755988479695867649524880279423231241980738873590666649649151139629244887105704564341997817437109316921664762069094056656347912220876673531620143957944457621663868466016550053394793158087747107647644547839610999272348900285145797974434466044051117604558617700843387605314800885367357021156503610454879928403753217591482018829939970865269064553815917395418408308262969421422960361926568803854599914531553195305193918345501858845493495578823746509856082129842400795180417637267312953711599532987137948096818664554688514436258350366624408525585930624414700201882122046421925917234593398961925790163177529238655519765624923716284656853893447270690882441102813258419107757550548159667543119569943978415163324068894070439266081121561861902530322071390646769773268368150661123769280024896835575713723112884258276892878231095678118996696977409489348724146614973972794941266107636940295823628303482422371763319971843239990398128493939858682724464605407169925940845181835718891094351264176846914779092252837837532395601947453490905510164233807811599663448262071415872381354203240493175757533707935096946134828527465137714683420562623632197172961999170866638304381504998872606717267657248389966739493478186405997311990052966003532994139326485263280930082210836770501971287076699002478130085130527296684406061016437823071913630704942204938341960095350999398713515879252197394280615135656431340816156888490174782485783660680040392675996290863093790311150672767194187688246283075188795068973905489798893999883626631762238054216550097343843607589214242046806810224873073877809478772352739016455743067898417558609780598011596558666081808783531930027125973791335895789733400876344311886148697683788112151087712667757231018332511139198516665079680964485325566384175831166949388592161416674567555538237860442445571263339667721462244674158690129562054565276810473636826097898649630056827907376919863156012916142569306478100698919702022653867416260304963399712736676795742895556631401488118461544582007593167883566826708991945569858024090677654274445079856845354905475878108274277202197966003820209978659519699449293354316949164917055441294482092967609251479903225889004953954995722993018062179262112407110162209578552704888605381928423608529570140657674221348313326026342177054373095357010890780730221354982636285288782655869156856346625947313258519565913846892446244583440227704967066534993872354752090977064881709000110639125571874068247047136722570921712228672111917253220469145969221561229752437455506882056173695494066627332526041370446290865446151044256007632917948614510692258879443748157789125088591113417223303156749738192086397220651352015828008698246876537375323344666978377328101114526195995886665010821688159759495666029035275833214937286435874599676476525820860555244733912117129797672981403798909728650697649203220992792404020662929795608333348370973437110383136407411648476005069852015674472277835899960842557884272473530611705160202186456818014842377128587661659119901186881409516094024580682619905112961121275457411927534638229399475349910748595614107959401047161296588915916567992554444225077969298705769705847914304011825454535611172427337139999943267212771932319339130006890262678523004204477598136728474379012867170965176478255946009076012677038666595545097404684858912713323990972933798358653508097267094853161645453079087157352995507516924250275201254820633988339034478284894862532638437039404450543436312024049568194850386290285693371915547792962898845325057659768207643446294689814524433420558044994658582375053659570536224403818429935935441506813507092057744497999051667690538020962176636560683578158732037923102676052862595077654529057952721042041385246156860576562821874755389025205785080074069337294298773746305792569937750402685661586616804076154221619388979463853633831125958244187970971954952240747959539519422976858251390076954836547899338635688061829056793407651975802467421791025033221696437760044128207799049032330812317611237997257214692833121847175212958011916642273935144376698375199845306457873664077738069965291870312319459500416451412022582697246981461488184628904987272836192381272041977916155713134479968757570339354019325461289360256544031228921782203409543443883693546040895445802479018084762970341979623021602945161124769165018600598116417274382667307289529784092440165695776572555572957613024253354790950676198191970142415166593574460395967361853255106100792443466532944181807012147646030124862963997533347247459834339008685160467240225216136263343752004066323425499308421418588260982094361574324084564710825443101883090772625857025112104655164462007203915374647393215292063379797098517074773038060536283898151196954606442017113929566885311883280626433431701717020517026485281318412516343924730717133554950605158671361101058050469783588061150722926127576939521408030298283970431417265709132950829112534317694308075468655132922242764990417404748134107636819495739774643796865183044465668398318484194824417605986382138378235313730452285949831010176224943940539018649427132324272489432022720850526670401611065492980272688629950320140783550068178326612442947337934708704036933947444883640146301430766548886919995190654063116647678194049730100375198570541672527647023085919922739984234149334998390978640343907692242729337668926604934944169471569715547059904217421925882575342592999565986426768451410612384687880654457917717504027762823606330079437584074366948131901830157091267666207989331700172020539549068640945149774097741094373452109428596847172702340645067100714287458635586867823699633907994488074376088353368203121137324451571040418642925879449637775145772351175866088174938782675387764130377951906050406476302680647426906879414474482693519539380970178496731946452891438922238632801012183431411809807504797024389919357272570527060547047281474647446208222454074714169406520696951676001055917701364897132278420170033566432055511462217933132322217119327373477715778865837696990791171131728353740193571986318244470476154481845770252344124845509681281166649709060432274718336680981167836515700468018768170956889324184407362310602566274757479697637472090635484029491734727487308120195052709637583607462545479352954234171272681981339902641902576337361165697385508744130241104699836432221001267728682180949890762368689263384417518856262832129659941213751796989052092475199878946684512057837358450431489084456881613840158803969872920098540862969471322598632313171273219428914135494323359122937242309660154616499698557962763275554577984454403223040904934659346663308857369596023285750180268502120007127142076555657726407983020729194806512936021776113609391135939353081217736284318944173962135545360500246138787960676040805316930025093441825713421613614440119152289530653007779053972003396628941794659641777983559253422287774656400034393526477351783515933055719947159812125038017559547577745951520713908433610011537904901507890705670881844574114508830512299700209969611309712189372853308359428809904927007467960128096971829283941281989605213233610705214431760149950199589535897183369078283138634236857956796563419293049769815209974528878312145973684607567476636060039687917435421385034895326295820544748769241330366118328689112778317546029127912955676007418733225542908244759673043008045896634533781987536994863350537722445159010541656658870698989013753888024327585151411858454353652987491572718865356408268327225110147009098986271677224152877689862267703698396995978281655794088825371837645374022181884118744813382879471964454937570020723469625336015922182028081797260491282924207267129800242376002246485008798898857231588422146946147491027891554652123059424861027260471269813241493814990176735748960941182680504771730131645894682345409075051861661015410701795541759759828042293862715551077779967459122466163847477146011178964858677219186104417530731906039973098127182191067244244194814711527834303920653681221424655022693020656758812764754343855734742632815492770562660066546711848765207267335654731669662177069833645835826830207766337778647489587312552194785990526293246984363824685738723284277789839925737597904038285297787397684663809624175477591483096429915528145165803728244231957520927726582693230597524612450564355755914053401429767508244334746624398583437614879389964144402514113002468869371952157830448693443840734559086690946448138235353204219253479168899801439178623237601755214594654274459179747606361665240186206188847558648738058308937960029471475549016794959042815618428725158529398298363206691979956738947880019958798034828312599253297599105020735073626602542431051328629403495541763991094763294485429044481026891525958952145732012266399103321680006863504862007357034858961061790277660718167706817936631804538237919125956198438857609518028943215796521205657611093989915496884031377549393540856953449908009012703840172626180182046673795994682954369719423257922064747097589525107002037741719426389346496757154272504046938718835727756344487694459508498638877616835505884970028685726928054212917958581319142283803871372827552868306454333148688092151697237876013755279811045966988291777962410970709137037883930450645012459886785895788637091048216529811520583322780817799156082638433465541976031504888419198608484062649003995878169329427061962297453127136532694441514636256973427524160873440269797879002146362696262012037753388367754969157208241546392424135057574943231795379554632385241993089406051134109851878055884092735591167161670187118155350582366098569193922700064682288358994486575226714800463165675219420196618307034521639282318251127783428328954142472172600810147875803021229475153440371272332167086572434181080477957841442651899778860114020271232948237623382689209641111630110322175485080943353504340776283415930030005339134180446423526240038073951095137011158509534732482237438035089352893521658778097600325712128354195312255082041269876035418900771365110860471819410808843111074253639171389881359753193233465157986477504684575869893919631188241144154303570400082640126777953841106665096407904987522171722641564904349596267065632899045783760113685132624683460213484557564626077735218836021662216832732675246600907786809348433879198156466120824848678050644296958460210293045372463348760259962242700993707358710745996846332376105029378740807906736268831432224002634254183494649749433787642510786294049435597088950968013376240248190955811349132979136137997670206146980435014907067331506378762402066239070271832790480285148295606115474069599725619492966830210211930502506226826388089654062984556197933891284197588113582007257435616857677236659365775185363740768701008248672732582705594735875949915271835476599156303913785716729854404027517173882658738499177463098812776933411133364070227666786105071688504509241776817981250769109509091441158337030312240850672305458124543727125939201379371298950497688964104658348507481945401185770235917246901296651148215007434229928281222799787375669920071296284554728348592496576820307884679506470219473098014949774430994977910414662850090667009042196029866331103011001113278230180588984555896639346087537285190743600228423038962151716195641806562700099995601348969285573932626572516364002040799847141233603888674683408729576146976265971507573970514521674038808385420153198494093562083494180844821651843907186454857935411988652622403271917749385275782250382269359705400549454563248668816693702136705498488652755267963759254295311527394338996216801552906883513703290248458258150712763600548356859654294106517041963038966990987130227585345904165117509748613302711360435317037171841680987314181958503156487077214947885462800392627751845665043091260341422184230421013314028569150289035417750909654228140833298247325956328247018868131890697734122400982457204778102124425786794196217970824549471516573880791213055942557982936591018592952145889198973641057489089488774613063868425977564232526863463439677983839121192848155904632572684429806903801848937387866267760146675569302143175290992680576999578973176289166009235193383288594182243444483733745857062267504976827361392921256590388559093917896293628679219569856722077114516768711517036384009901803018928779566852973917705416096145306993759159622783391711279810129843002774890935874894539811735338157684613950841856380458329867284936286928780127547239866389241352820450578035388536484709732754492568009427559651602910345775124513594193215268950901454459524169611369806470811023153333882766622987028410072488660528760375404302185784296422316353133503406804027844414752008268900378635478415653636895673116883950433545631780101661551036438448861498271395607957291390579008646612982441522813477864422645334901586371744886261087774283733758627720819683069638318058811078938957283767783011869997008943365606245718983815017674655124808934944770008373453061948200224387252360495475711739466291361825244605762600948866902565813293113506744377932320250380205435018529949807781052599853044887550724931255065100388571908248547838993266028603373935687364455746756966011919160143880775298766439451357947607144709888932776605307411631153013911049232821931105880973670474323440589088285640026797594353464274210784149061540929624083387910815657899094988157126902366200432802152895896157752220606214579882840491823383657351254312693680379872686847552369200777721381179649240036159023457700349411534068335573824873913135391914758158527625413375899842036188795513807317346224477123585367279053008355143691747085161009147544822406092245575761039860966356788289455003336043337208465567251648946232727869309895094558630983011437878258832122990671329181939765220257245584008140241309321334209506896941907787020261535758021821051232908135283195091572599255500671987968751463023457131529536331288669612988751046150859356338391507026224045056795116886946051109466276723760723750528845553323504747748998015828804575300504609169021596452383038262921063032258517321567528089135848835485487124126532742471657522015793560433819846488377660552702655267847083560102435686088326611788097703136061377909360911308723407720961810239015785329203547127196910567479470441464331213143956096751662611289444050366388193402864204850380728609879198298048731334990048455219406573465415553780146623057839211851143279665124261860447837066569424651096974621110662557267176417196320000606794615444473830095878493631232523528518998571980916000681419191861683890151812480464347190128400070704117380054024841599367102849240755930396348724030137535199115751180444162615222008808978968333324522000440429731261225161765569424603020753595893240208528924924352707396565138857291831649476344881044603214390876483265516729876219997368370945854939343383325884620594015729844642978627786282332906904492327659329244991240461338339690152475856010196827612372034305510897923175286777387820132668450988071802682039220280484921574342425680467306971771218734560857152035670621700838936982753619171973710794073999060368395206127922854971386002256544673985627696756447769925630094957092701311919298249557757637508594236914490683476345460439443713186795630258838268179289757907386757743819735208131268068528419443653155109713356812574828346979017890143182775261808833136399736028295990100005197243770152558648191061236176764114583236934795506473752503406099278972307195082778497001196031316247555100872885217381291856087677478561960638935124092507858062866821553712362464896932592034892191306713471710997703373628959597835095325235982712896491987110448156130108291858127392922110179269486428196832862469292108464389599692881655076958228987337238615783294284880756219323095740630838089146283641381169292290832336756904067876535761639617542666459380243601974719954034836508568871288552924293518679946556844513208663020748995316987888798390898954565467592320605819226177883766122253354733863709677295930239911805566228092649500449877527733462521733263893894949146540382124321807361584536114046021555259753667202239198810502846810737704377232931215975362275051572387645294363483879135289887879058215501111042335845183102276113343358047897141497715251577898482989361644918289793177903264672287494186754532691836408798282666191059531425286630926707017324059507062273866705792873388271849518797606853228061480881864659328799427797461245295409526712496904410461310739091921123969406835184469699304716866174240505192229767529852966848673483681162576635255457522440318439224623325561652251410423592327320188833636089013605047263374962058237061848468952998652674663630219587161369367867248353561099403738139969890044051538895903910328279457281511397587762747445318429305366136379516981727460520885464692320417591143500135039507534848961569249509002075560557543841702901460781818699249239391194382411002570518213882300980354585878116400455303112771792666147437748373662374602020735384034823096876778936230561678938067317856631371635387047158740172890527249125208271689304373982296588377632265870582768134735329947863858277438165477936098561315677934180002014758042455937737830360395631349135763401350303484073992757865953439127551602075308652365385274503788859712486671650039877419265374145011160495071001864930153582757306955302684228758483403210477930534852209549079257356397702757373204550799101581843679809773130351644989780684770092412465890171794998639015234524231446407331462397045474526050430187421299438212570644915073546929709320638029037759118818739015791038279468492628606493557705792753569998447487845448455800506346031019432771827220312508097750299519197688024658963981141533713506843610011310996298251092340076886268173814285820414110607895701149506894308627965260288795353976116845807304352996562712209219685525228849169734490752782340903793436643175688240831929497835431473144939914844944463428965717965533285040094675939963594990733864266562187481072632478724304062904946792025384859153980266086302820683710681925863675616167488300314934301281052995998880618862997236896416520456806077951010091774657308145469192581327312967302559205871656588042033913153974415917287194875701426222147192789110660275076128944273224291366994665927065725104193631023859817549079869943892438890089393463412138281362194718079811145030002043390157920439312553995192226090889997125630923302714291250144039818705004202596087808708135868664901772444736952194467034906502238409693051825939968039421038583216016400769477891924212148954359374400999379643728561303628943116743708946744737971676182086415931683561842400484542707621856066439597880214216431665190096072817460641376846555288918618196034882585207484555661908969318905511599162690872569882176388463745955064737773914158066740766500977834149348421618440383883109376015393889363106315487134597252904837036883415016860751585799025411531953560707703814971227446960968940953052600980817492700921933267421388744897485958260981627811239347933827705619740666378971366211011150620641783273090943864210443410015684879462446967599935247049308499270573111248239759233598986452827704154827762908516503796081505783509823027587421577959779004592060888004354874347352982814703676657845392604783416704594176917489468082537728362160668568691135194523833890891891110912798514587414076502852590672091111527992591421284355439757589985220717590994624144692846326862634021582660249829211586948010765766605491619087786452758667194236834434314341938123350021289777131425000529224971673107771001716851188822998892084729467521062242455347160799120832204726268215968866450816735096164393399244775114623696703082302094264625367491347034074245876652408826191033625198046411371161227393497964475670145458128842701067719626329369178482286279120561849828090900732388615464457885782858409709604774411265916188951776629166252716872171876251651363170897961764648430969865502038327499036901395661677245334777359428410507910768933523879355498187846781230812595819765132635425639402346170289036070816642417750144015178987133940719540680368401437775382302327416865127331446717927706754152593737093421319759704093148149199488987228678226746965193156630529145957136183974955247480194339279493656351149799084354265713102019714434595201177875945803750787462518049950522139898147845950331786257848999775100918367587992192282605503802850781001785441580731247007138124481319901891828791517297480631535418402724973198667605030469892140012207784918654167062889461437398736216971466574033954035465704207132586866333627928321215614881054507326446439898380024170684921991297480094285081669435649295783434412365261698482303194094863341021660698828462310983387014189280782073748320543074954164289632481395094558993370449182618664265415081900582707235884189828099801915103517706388164396642793470437736480269578536810367986653193903768776582660850368718103572836664336505771722786667287930908099722192218881367130934805010525726415738134064117816210480678714302389166811566310728760536945753778478065058502995269117032333037167196011235234440747526812892835586828684026325716056974500194444951701806618108190644105455246621997460551083766582885812981445152674903802269567811500703052376160976160751647435839334104077980557722934775991343313672159786610550734227837116776183199485930275857261397058658470986866795339609462918867805571711368786100785500743881857106412692050966991492894227497425451085029268848939544748228630674993942734032486837449145564735830378788605984756918370045423301286627585792709510678969053335973429361420032882467148804583531441386307976265974048930871107688512323078607934245122017154558018416921640760895771328756451994313802327207500512875563762033975330060539152081158801054294431785558933982463564583104692415828661178849010046341407609499821446541460392837510247350589440734919649540370272245345722012446368700313848339842309183240249015795186593378599282947015985795919685983868598194490544129809748419955368963699635471720618181358552592623299539916937591709242861366421855846766772062305444148858262537053208245437448229030278027065751038001710881783281865145986558325871955464585253419757769782177292361207133364124028163497001437315008855271291758919608289738898020217608210487754500133361319171319762085641491481379640663040654035429084875144609304542879788815724796980056566079959438836482028316033894667904451136553073142332760578710820792676043953535466422536781850268292288474386393039583740097385870142651086344620470517584760549904572725750315085058585681974684292904170671661413318850438469807973560177710481176836641077939679436202684819117731482408997692555128826314527801264381391375696394891108464799849976779062995454495157317870080407124802833371117026427230154423913602066185340630711308281520749753719314684009710622503719592163865824282289408364927262824559605155252350591207841467076056758736733618941117427616791555301719943675684792853267322657804559329786442566694443389254568991712253772984042896325472825553367989035077223103164222255936866224029328970790077496213095713496292896492938787597564476663310010012085380491365778048694771004653842197087555332495654302279840491862319679062531769931473584528027778205886769223247796532393559859917992633825686079312971530659553948783277738880713698149746405066251751431410646697548078882506210803693030149523602476687170177830459449398213546668120189155589510932377910663974321717152861012900733351801133111413566846800791039962245315059620716207040285515702614335810300780277816502377517200967856240169078815127492674101606302319578673330966741953326317915486900877212517307235789809252253022563226541902339914103803099343538458027068033444271651927725823425369059249275644499599318933730202415613392172868821116886256585270998729060165657108807389487583616952170620956326824609039961837889787201822687023785356834418100121493461723067675286359901128088910089647377924597956882500739850238077509591298155530669248953573727641323856684678177814057638772348760403251294676471359436659413455310631406958562634633689731065163807435534312610069096745376501440519811834923531887194079939990955389289577987504772778032708466093615488559657996970259562328028461747441648263204872412829894947810298822837746185618582323346671858688349581842191943883222041292566218213616277944900410223801402421658236604363913231229544346569498272220679082328807024151373524162312274775730325612470426854433853224701279777859978351819954302148759477816076188527083820208483499747127552820257969469966553819395937982896137784430079530185400369661661157628681207957971615356066202735762672471209934826291145872585661003020261654600684814387146083727979259614599323921101703973376987349543904745166541954737744116188091670072852497347235348009245947369144102322834363438410372077100134620579466406707530982408555035768869970078481436755104015453365221491888383202132791737495225085910409412646261587266461619176963173314166337444938488514859513586790187007958173647585040709656344453006310865134015456864546098577937682284642303310173279927121446955531396650548172764019726579062195388132535096325094744598989108785901696922581986048732516163148722533208681152503877839030921096397314087014632627748736199925160369035164018132286384101577891383454820869539491141654192122441037258823537352832966225404053959955125418804695534701692796581808422169114677949577090318147199522420048905885593746441615349093468210952738190692493401258540162129838882360671129904727853825109322126760086356788729911106064744385406313070269157932911471683574893086073417620348424225579743251001003864368816055246682773280148166978734963320996341723779237883035166054871671792874001119144726245671247002497622458224027397707027023503237712416913149130844802726400994497259572092359302306992730005224907365141977781182720305259060505366479310184870828397624359765410245471902129646244072187868542913071991156022134359810926127809924492988353214211516880443052422313351720366875910920612181715721501323049150385243127601602678071027790598783630284909951332333256554242832331269708260482841091164629355307970134715999285642688988970076744233464896500451148248944884381190520316202395612515508011429345593840225890445235491606770575264177519736090440204483367881891568970277893660449983167550333460997434539066796812379833136398445862204918269859801850628083650581758563282867239702164703792611575436878345664046590607888585936157260733764794736283941894928357605048336449401134986549120821004813255068375628197025686969954918762197639720450279004466756395119376131560064544864855250749799420850028954444995335745046836622766872082483164135994803070601611822309156175259528490028995293428737617351026742418815937159948909697922257721440139091272246178883874360805196751530314791141433573207365859049304277337984471291954446454304400959751830974182337618633781152912801517866360090164769745449589573231467955499389337513949564362601454959264673734721602188531326544686008853720772213452751031059526253071110235537885691649959116922083888770780517354383985678670150963780886864757576698253235404424542840088268747777032853826199762542581992934205912179778082778705118584523089729856387686511275072763410035994146601222794895749559203609946037804848385525959910817123628274420401784980211031762787788750303630226361609766675801060395554799787456998157973342339974244475884531393345366459175525813475504634426716109489081799689592267046440216917680510059071844735263123541644248647774387877651738534789750140252040693299113532556148136043532968312928991295356152904027591317677341277704636530852213257548630793354788299638340699937151542249438088240647332631233504613882159479516917592545098480979110892331137789539664074608345730097651170607524143628834660918003849063569268532964005516535997857913060664047455719084866250414627633572044250876603320764120027683714720258395775725483081763522817065775941532708326625539109689730585045622593689849897562270215826526528062002518441648981919690955821207898972671764613380083956648772201932046367188172395470493020927986610411846957048684700496386412595306737666603894217618938754237522401874581597228442522907977372292551018088673990839885492144913863562538863789161591888424051299819365171369259169577919988494941497711519431575582630705994857586353474963975685597038626780540072008974502527051939796981252968831191645904520975630528337309486023832962721322569007376753391116829471981277057426243752213758250320087363753204645000573891793465923557708362204145285013907946406724667360182753798544781407692125608569448105416619567526475074523902545170531094066263668247457573460704065275753577743201023913341138135775033225611439009760994695213981770284146108841360856591839329939313580819527070692709276077217177790987638546344602405169049949774757748287300933978940641473694571985048299051348428670709915093304457966391953558914780109443450982701736772409790494805928838465752690821406840936752248884246612560526950978010126057728228735993798499770457317611758694198467474290486401231996744622268636332600764110702934889723601262149845968416031874245315843520548918590453569419644606333798849315311695475836111574976677407031544805789781705045731922588154943114390257934504998955003727042361826456804158997001369770936461843182966606907313547636451203468088044854463947988105468098496701317954942866813882765844465058517977123681426745854755713822907266346031643813750146542919453599343608206282790725318865751797342457466122502744301909224296277693665315871680944424278624984074946655635268045027684357821136273406943561642515379232246664582371079321459044461110922107039760456510101286976059355657979972303939386839617991898691799159386947086324241601016103098873785439567731482972348965947671427213412840043762106602005505662023339519575586451283024177142823715776932876797845227571042372817246844546162244727036661864054672492501446712045654783572692144705387980542744365066549190036978523007037200614183725711309111681021722867212589594857460043532950331146957965649006244622695391251125286803782637520834620109193920529940673531650175837826327641004899446489071950821478410208366699644155548997311854445953123278819884351936466907561917443638748986263627650302720686092518809723608847938016252950392255210283185911952095216030879709223063182430490513612517852667830989648407626187112119385645233258801563584566325681536597414006351665385278330279933276181873164292843436635161566325528087740547669670001881483129926494975606174499455604840565169206606294419074711647405755619551834538740640464663446523332035103778447675885666660901728752098224471156450455672431109195734666267791950351111912484914064555435257725496566392678522191762385475381971083198322848394692229495373749317257755425809647949858910268635945357613551466037513914968451229674554784247177930607499992487150391737113310598418240045774257591786671219505174289611967389888904579312607783631612978256941136845078884344497866404495895781779775376331750386865692143284565907638770350854549228817745921346447903640967193788480015659908526276175097739401643740642321537883413005026201713197591248645879230068500253381354891513199847109339798843654460482728915497107603731744512609717170621549152309355807845628392179950936649904409609156994214938711242914663120546913223860633526874046418697649751346003184289825747512025844598310398201406094846870769161838308623878910614682419728320052615038511068199058351769563236569694142362610152155381725036939198820292713685444010629436726451203334424480829528507786502235886684798729233633452675826546136476448809927763316550213007449452989543396175266117490169121300581095542449122673852851223438369598397804839752464510120588267428306399960890765573443634480149048829835718981640964510119289853987608822969226435420824456841236875233258977838524384542275920567609260795846727938663976401333752981741038008397136698750179251888900509616272530290638512244815629473486671807921675743950233541879714637034135950706887960310150164644742239232867292371725653842901470659068867294069484254271590520534093390143210813138545825970434858093148550633941870543754820191702268823175109013294136171877005809113345796164220301259802204310738296686490703750445386844284408790945807138389620954492075996155366557130684404695271299487830971345078827572484489989734970396224651104987770041793712631986655042482645042713229161230932461641353303916768945148358569270216603190656899930352729669425409329858504714285408386710889273443108736345700269111924324963772982294009440207520246620664473839172044257548340145394080354627340999096406907207562290737468413119858657879885591425214708035178496735893693353500754467232461312525826870463756343964639059479070392896125976486670569071815846029936042856641652378271137607745621090317980865717319993431281796912942962045569520124331544608359576565078324467211258500776099689071429906214637225018370319985169220050813910205378983915622992500646873567979540662782950224745926656176868862932116256560500845429455903291737200982085881735374687831820644702268612764976090634339415664902642621944959997262787988742068653774840012402712025274733443616681302272047545870270464098643467573641494455604018046902564908532516727167095127900523934217027430328861413233096169647556020183862159978723609621227570421099687370007122579942951869630041295418877962872409327846179804864790769989057773388605583824911422831637486928785381481431462242839849623378557735086051101050926129323099492474189267513161881862075325740386848069649046982799912216113866566382032601913596840251564924790644398333003180789523696165184056141033843479937617818210047435190907065480640320569117166432209921547124046169424710431522220510488536638270472083522207228179230772437862146298606683003944318403189711959387588071981150483977508624928452053766099357035113846959784295954406485751505062084971228123360639541480452318303759039230419312935804702532239639115127937593601514087053514606298995194074575535488686198226932469553821021947202124884904426365539530539435330040506133599683201666987947720795258669143318990921186522605849608814962683654672349840481438109431985740368377466370936580637339294587946644516826114833345980894813230142344973630008177003029015416740179574436162018422076053577654231628456427644093755689715537872869598722457407255862889162754227400139392489093720555456160784241539561883999055824797402970741478814357270791492210435577454609349005737681596828196801977159064579660575494254181445329924798199665711964551885655656812151334909804658037684761826601373717568372741306170464438082924391653713296382616530723106068233388999951025530732744120942699413792011010466320874971541058744582611599590687724094286978759462694298805477860776458005229407570308406385160436059312555658553312311655463865541030072699344773118169078662801195532248099561712788155639351901256077112884694732263635778302596564232697384744696747938171918349844120102842351921959479411888645207796023134306321717435406924886237588135079501301954212568538960669312542793294445046041439975110593068307589866631208970917867381443106267328572913524733573733413996498162256056419741787984415602133012302960042148911478485752643862518142961913689838222749415586395787408237809038341408792976445118888023372009886401223617417643050637038107692783411890172940132946238563930853153224422276881857172889388516865007590484415709736636539394113814143300708417983117234397432128982693088281790845460835227616883923670670181937790638751868898267898592612248770725537077468090917381219556815424678175824986359084577528221087337094710053447043162645326509875418704826040850494328944967115115564045037599221831531506218941768079740040267805916373594923058021891056162459013019130734230922011877489054176347523478720509575083012458009760894490201422832151708178638297151787541023277937785407268363951803722727399072461328116672620238536295804476874489455893556129416678771151444595215072801124528978389889243980579261133951171633727247632203561341376655493609107607754288639415375091128355095389101756992734810580205244749886065694140688059815714553496102116404129920711915738223964968790061577179595751167559084819296904355934449028936964861900866118483640844547092298808201869643501024165892806728934618921288399805886754723382266287467489827600721396917908199418072364514382989430173553032251147891184679935694376925654535114088246264417878175405852046275209119455171507153223229003178378639299726457950413622430738874742958842038653796300887828497491015367140448727060522398327465443452935652807696047722150302406032996082014428740664630902436955822017514819021276959194854806500251596627667211562658270387072145811474469794369850676576882350350632790855260275245784521393118971219595602227780105217056312396344461127002125867235737090090246740694925766696530479737142762657053595744879087619929979754915470956745686626669331781602694992456378613345040128648268256454678144257343138486006682679767270827808689640327625941678840571459411480462916488128520010261056198452785431676734301941800287392809461519481854686631099079515044881336501254612214135427912283913036947262589780027331680030312219807922272339302333969902493238136301781213601131368310388677339001225252410376288392001146874739783019681516234484584417084711540563067122150252400600956684502099654423577855478800658445306335458651974851727110468692370821037423834451621446359164268326469767485119161178393419514216263434572806939369671644034523111798133136747255810302330033564709193131184154932715418721453955008962151995577648095322472817056846283525646275430576200001721499028964513843833117116585841776451061858250821047245469890855260571543347364077660598021844622302303576492869835354772286691167255092926423495359112977808670676400914176047251101842295428946972427193139578251117713736466128861099385961544636685556640632424096551152712448740813863395840329068301663750515937889447003244679444205006232380567807586140516179491567587848547537980361332045886720131374684222777393383010159278738266403520793857372733187872211600697886849105688767373546820717934420516918691207339060230403595314402484827552498849668639056151812913549133306891980509583195474524347688558773831041434453993397826437905600793257790326877238933597040892906379862359132688276912048235322685331113094927661454578911147071816782987954873977966493933404999580445111442637878055006181201942856580115116049659751470936084824478407151016568819151547630853708991777495003154677919940554302384555684329587122807033930365508052035902690222574326941773378330207785088164599774998435514703041899310927886362855595498666452151460832243270293986535471171461120978644646443256180023520004864169280901251955587967777071201415854032429272796513998214262542785238361824897440083764657199183395660336509497078523288974588149334773099486397383182019324468791919227598192870591900590754067357185234811868346434778505415782822449079858408700586120528447163358777233043808270913739688950568455535232618221110237312713688142058398385474704900053609386576177773048783078559721753881861727200525683687300867217691544126287754950323922211648722178615226209112425923774670550161255823546154420874458421496477602559572740291847164531588852588278842868558894965084270394298993544274755784884092534243675964612654381092025562998205154148019374700480357966774587410088413181187258238578544848881668277133032050914804990270633866946909935124879227100509277461414952914626105176485990692992381759902441618794970235657180951442585499576517929621056744600221413367375480798603596959468569833797726728528759250604441846435778240362377667029872832370604527442555068151809555888683589147533045701169217308190413682196197924446042649934384845273237461911371108244643350169480155025328418462873349226613456894413900247066335547078814160548567966865643266981303178362164646588208300503644548129228849644616410125023757682821894551184580595732090939462064867750938024379128960180082794047481742206332791471284209513701056194327176292868579090949321805556897906628628915473754867319869373846641958561889977082799001692464942519034737770398863014920111835283723279199650777155816340617619698407222318678270123540349943842916855650515174383773539203225611599297568796557485637139984984188981872386344774773551501353507919108180826989536012524782547043214097784693232943801472551258437608609981460219969863154847357629208099670223123077999976689261493709481313117612672502902025112501769538583175793324823747587160195989309689954294571523802778922356850487641824139102326914916557444484512460830514578741750738717674417355110130764553789788752222185205861330107591272012841581609901291829118566671573929980929179914916100046603332922577608675656663596534181854225605988431844272181094231810906310605967733278403950596066977210277736141182720643429853844246587728471851788363375281932542583005499614614837350414191861619862910670638791195176205055641054814853078236437201653999652095042389041167497643602902434195676224468514208945656803232777781828040235317172716161384745264342561703004038807168888842147579572813241630693977190486932101774849343952208897797746064132160659123542873066349856495138429915119375415682688046403440740031916487524228128990849604910887524818976629544394637536219830608530266297677622972823708841064030679839570455079864255624132956970690312606937272270497385849063548119466535336602643153554561276200224543650140928707010384502494229968246989481931106380584896383496684231546895857394178100478027431024343617063937322667141404764505532068525452777271337995989719129335109533521837623781448282123898331839226954036294419444779393386294782085653916027686547422160219745416250347948657330874869636214605079665721155856826471256401983236872218016273702740854612331531487465319393626134387278498409826789986196912202669754590120334748717152720342378485320199773941089399183239935343608383194483504071701605001971940795569291694412482684602905546024805566374925676902358565496305630549909473833868200225327275101476538201571896891764386176038466914712705020901016679314353889817992613894958205684315254271733398458496778421955422849693775382141987539836280415138532709515070677831761849268674924518788782565238807875593398741899239410646608428415951768002918996744604562347684174628436149052409961460913299078250776717299487379930049706095219029159187881565502948692499482638863968238495608685005799920812591698095762500632522742977572235324464631299191602952782838780863743794848781600798669184494495203389091181996840014360193709330547221904717861619952110929112791700197667202021639669184222413495352640541503434784937300948107500099230370915388201550820033012007604036740047502823812172353310546983710100965755488116614281741971422411114653964940881068713531679967489742793722635135810389988254516055367251021364169290032107312234300723995569142252464301262735666817822859016903399525588647085175428439793423274925339989258403923207983599325215743584252303743666138993863200080064574750880709379984627470966570809436929936107002734538156848014398180022649796165498392424721495385516649061338869947944876407062566016055171789113105157898124840674415404386343218080496035776369336965075024967546596535171500859975076400045595426370119626833504239694093247325407321746536577121897863354556824170391037818242656724415781843849453825620349781174947104658950823214082047820539992217083096379247191435705268927378829630172045984163967659793992468451202167315575940610850110840150149395848132431432648317063835229338983573286296250064539653232340901663455349761453977754354551018002272987816661057242312430623503991266927255939838704468224405690217527208905973140317194993937576065170443081784358468902322640906702558256315652710399198787449960056696531169420178903331930791287640450024529260777573554483085149912160462604079663570042929414152107851793951248929311310872340368754933321199716941558224225323452699165148427080749649824320910870913027192207360528239889033377648244024821643674489283893271787246301295213777584065676650342254844795273438929626352170692482957223372372605212148675590124375106886361686206848107532525519080870082393756679930005256400410568687321345774201100430212747964046267720796028868075453328446116396367029616763610612095640915903922675977256127708233691017979324027600947790504939059499035509762328552456920149233803895551145369453798964243907753154386610796172549357971644803446126662353804145557367642625144590571925802222930640330494317739911077459948051848434169030124710528400114530117015926417603100466879843400676366135754159381073949023384595997856649006331001925807617965927489021730881865451249156100845649219173398418493640078924253400528851274097826072818449936233443967778341643032861707465557447095887106612285979843832898882778608994982593444570625520846669336207364561329951753464990966070993431256359749029656718468035188787644371927343228496757534874380605868393873208710712341196033089306023521935023796475301514159372862118229525906701857585590486981033613106195370441077208602330006694355982298997200389420507124130963301247398988986501613446041636976412991855139856413348024401090382042098050981881637076560253542288520642504748958680899179466861171932503324823024105980558476638045521378932305723502009715574760259377207677608746814821345225316302087888239853556684084620188776333889382394005969382347555811966044053660170851554314092863357092159448116017532965834133347177302711059709051781158901708660299016051247945070243012323067026217970114151068200226813999750725832130356166794912610054201286453229800672689000948209707585410219884885295459601974730636132842969855385226523816130889665914509124886813125953536296057660319750429504118843939724705360578947986283171400396848076421190941427568120273245423319593111952395056290622611009964398948381646448745866830754857785328740819937572748521974137180942967777411722239364135603321190933440755678783811304519984514862898000608483869420621852719280187780424866808029951289703473294463170946003859512545338683557968905846517230067044888968406108630406121351552038742139284496202225754658582086698640604986554258859081455309948434938427338421786450513985427397429095857008561462561834952700228141732536765397946912752974701317006383541596544634244968352635059485344744721078056107810829649426478810025979318775639239043291785327634203752297565752743408295084547947015245260899313885783123911751269225566757288513340439769625403931174933713994495293568010603796944595685975249877267348079073267618245233552121621496802344929254288655145733756557659455570923953342814246290317278154039983415564198377180189821124760855955518999506207300714034520815503329814975070244267726436033873753973148431374070926654492295204231990073459463931199653505680733298148658411091994439462723284536771128484736224606331360285910596352371938716345986963644390685405322319315241354693248757673046338170302944798352260205181494445850496120326909233752716235513352623432072194300935881503393598974493352695787457278314039670396910017073414932531022063263016925237018012024422688492909819555117195612083815501448583657166510269086648717323819014860992469913154608200199270504730568876141893298108310235264828108102485450220875722128344134379484999727920258354341720442598469327409141782143949280179974565987369828742826826748442121371546823275112853416523703165307043258283372112371376096959399375495362232222197465961933252907404248760251381952426973910175637197534300447961782504311533150675825627353434762525391425152757047878437678852418719663462419927008025761083927497622636549001865320645499515580290839851327262732196728478302538522190479278689389538780368699318846603104363352437327154699898811186443670114028426202615047388235899747281493343257065474637022451887289061255030273791902640396577417606898976983456646470520471635921448307099584306471727507633718020714597445652514188505037163773818902969685284409258193174410055576089850292327101600898257223817394543698529654769490187384046465643730713195901140761317428220388331360297085261451234907307147624534050245423763666685575740120604059886955630114415443141696986074032207886003132790553917869674163555240250767653085632242737847149746037784064609346812991871902892759763070159840887781745192690147691030030234979458511000180886606216286801110915116104098327308808995433755118718317378655877648735885449036687907416918253831330636233820582015488544982788382174243758054923815972964061963105821516709190326318730933813850113091332770930342511221097215505610491387050426219805260247611607505971037943664771529353491718612506611636738330499564878779365697911293195878277774060107533372432790009732407256070388800871137309659634457096041175089444791191621745516970964844762046174128154536128422601551301589525862806957063924443547802390516861338549861926656762276035823498556919224890690116459866096156795541549215758128354092025393170807378146507883203526651345707065536856992811242656708448017786461497404549211843122762184522441088471507570190883495022437569885049454241057266246094583209596257287203099477654010739855806996619801953450050651450105492401886108913417306075923843946124656986160560909454177290736400939132195676836433329961999796542434802656940683698670617587413167650506027135882574433707216458819522613397054520523441280923173065051989954502858538352287378728698291727580782420982610606090150925211090898996438929786294301411140067628774992078172379474620916899838961894863077306027491026703883943352474243421236712177024610116024061118571687050824404916238943435047025081364915515510432725074794102473747819226520593355136255301812196424992488212992601774080103719884212547447216029695002774268507752175866917993801362584224173985607669916543275706123045286728070763189470589544061884213157138003398487408680941446184585423034495144852105399124893245548665930533558457827714423774338533920824127763216596753832665064306388069556915620262225946941429007998769834420914699989795683266709041413980686333251565256968787899225743279613964370265431446393337990008198575307978817613374360948392830223380327973203865364624249805511402246922647893159294491804038298364903488863869756441485560856053717722873714822823686427811365720394749690693723991561003682807514117847378256221277599591677581403853298688851365523231393843174225853562807019154400776301634764778126132438024842186566985527400764105119010954528983825634840704558080905221476972204287382202064451116558020215813722046634766333517561799050089778088560093208145417644390323524193973154721892092020247427040585791354379260097680763629875661478264433892612121345659445680104222761652418376401867345339148807900136360352843217478040168314672618806793649304686587364631148328269804920227876255454017850917749772829467569293545166609864194814583644478909603830458285369895608066566619036031004530472002422639388157206867469006192987308224849001681634892125543375444758038873615865885924859755874278385999295417099172251153402542222969223436617778192965331349674775722097843019381844505985075080564948318967922058343414789051025761749099758200123472441028507941231843760147142137829511021873589939170816868055988133546991379453783137711413549197124346581093112783326621759222758936993477049843525192107351757370200545734513058731322143846208760277518405348937132376629071120552694905300388822804204808210851928761076772814548927944032272362841247943192644192430796813703829482005869742015013235319872051992035387731421588221148597431823879098919932539341503787689959695804327251777689866125889395442013917130641886295106652689606241452084480340347411331488004313864731715844681575483653167051260174664076072809596721327294224536104266792809469773583638349822811476691695969557327702827912099792608638170176542101511158110926832874859506462623629925924969437818222916923432548536160415251420636925214774598094198892681477644390537611191746302607417041449224194980017062386681694660798924751697185000942874444662410058638035586306506360957270979734930709648890760630190792334617019745665624871288498673826785462689451209462290548275423302517321328278531651758693405411184571510483463283200810115252541311936795456126121610319742783210387954825391743140987706525700603767196838304786929100326748344206684066735150885860916629765722779969260038682733496418758332118080916861851713459115685089314940448199610725023378967798991887258268670537757435124650813798628134835066431324662709245236546983517407042651369882414330883552631945475425324845884093993784631867338133661031005811464551518773050141308156660180611322683529639711462401049831484646043952006163735425846982605212545385915053646201416593061524137743303724644103975985001568921027909378678603185176724046959915723405290038167607242477016978152148615194746270546142211256912722538159050203958305146858500360242005490945502682618509587542621097399132209502954895828917423298134315406925757058801573654535178927415271289413143182694769025888547865991968988359990438854227484694731187519748877121501915919088858132637699812159080896918233505907971487461333680397063500369555394225907345369332638969616238425410479462948379374638132461240825306902691465021517196552425678847127229752667920280384129661575021846811088693939925268794395032672870087581886104930085975019692809520482375713894543884424162175662637351803364327740173412594274558202675440278812140928688041203000227063180825931867664814904472579944670459423828111487861177124712994023435319347638977894844625604174547802052955308150254298015709039238214721457480550269684443809603801644372619530044039908184265874879532636017477343963474133302927558182000846488609818329170786212437034594042815016041477058185644132223188779392163988961273699240022516053512829372365573731931938983417538439708309035853330857183693113650370081905654504329842209938149004544540044861822140550605287168313414262789644169533398029687951753666784755096725673907734718169339975900118989111396246520616071885649119266426940160695906161044378014986669982843324652576088257101089919591111808350303650797428123070939519840254801694462620592363635107199014815677440001231307254102560560159316840532816997339070715372088090132654154084084869464851337622748284991612747470532225505791833719782998021737591424344714866343808459910139255494465966742373011912156910484733069805081712972731380662922967849316570700310830556788979123298130375103174678340112081353091466073367511876218722324789683703827950123954449539675885373844664134720247001588520176131215481437213347926567224469179562586330030699458362891038126489523388807638438188092118073979276831412308688094691717655267197134112902715814675294427625213295015430115336903892213841013378832753935920209051942093938979412893807659530870273550773042219114300432566846240722890340217115127316890533946785187382278485158224704841277392682805651726037644584400682846673735448259249691621423903388931811701138913150192228541073818145229259218514857525247618384807758382986666755676288831008601526358935863571274217772895154458312934709800847178289672734129037076071597089783899342792625573818895631940507275208732599945654560858685535826313370849340641393491374917907721822853116009498270366792789235878843160849183895336236157657683342228959270239391538681195815299606645208188618438969720018935678548949422165123610171847376046060382961644273311730402586998521537216477536320660720612329293239624078004742806780812454299279509350514397602119291130378021703950829509906994439391195500340721574148017759229971932827163039713393800349267913341650891139464247966132094725089819572375049113312916698427371148958662864933613397030362471630128321007084152026276899630681896952666694405167511329378690500341200428417394295414458444754124677185087103019497637306464566186349406566159555902220388135713617682347784631098854748031416075183130544034281127035071959901420305881492321488412935694452964317031319035779377391901656912577178069851218011520363784718232894953444655146267846820263039666301990692261062324086257493667440265813971924801331606041280430940301178183953384569734777875549650522671989203980646508809876595990402683545829084048874359012102485707190569558518229964816324570157037483350716256177878402602480795436431427740975204629600770595232159378392656058476318316453946086912913902970752932457528311220631653077945599709358801910179547846822202981379496733900870993483523659252153174780914929635957680364164531574198408294970424039023534026592213525985308033243178585774060569003951749662478311461547074710152410927099019069460555923968305614807726537399849961888020452613695722308907368225836972534673293043490796231583862612634442408631410349974036550869216050046280979394259573707752242127755962792858417731369309036459436384493982339291854895536764735608789899719778070386620927463185198508519268526245382587024957380501099381632387082022856447402189035037020515868245711255202315308780901619437053871768164482939449118658976812285822828630588986102960528325443860452415988790437047737737136850213539382265394902342171088978371005174981759702068682570272597123999047773133208906742112120082183986777870565629424693820042378134913066630287587520925647732731674636966474625706120034671564090347896314818682134598061272968256545576749859197286737975381067421738580194869393292329785455610079000547253305167081854955082957331645303896672805738782805825883386743956721320161223642719023999031850697809484729803770517200091305626967205284316649649046311031340090378152174924340671446624526247884447970326708092047966021525362297779841303529182491667754733386109757717520892570062709539841927672468102127146446516361829038678557363550700118367241542895404774834328434837475643045274450680844294328800326353481326604760172142269400349628563970257256283718828008954760238666306549747045349843766403859894645814480531950919925945149823361365390441231674071296632618704241988407865603468894409807356511171908841621313370383284752715801402333740874605509019733708360472009020165095766376037863721883200386390086318700252115943278393284792647056206906139403648830945520239437276001155644876784475408356160399848851377292303432353009793967833698300912777997949717046285314100435349333822674849658177523531271960159061728284621371401030533439202703451301949107034461745657717921913241437364969396904896573282575669132764531083445687159449900509202240475799421485141392454572532607827164713056995813723489622724101513581463393598573917624057344627157841431895806876744880080349010473159581907241464172911598289697025937777675006732038336759992089814111989857577054569008806673510534703721329348905545549720535301055732469661053806609950070275475226267638316527252791548331453619391671955103025151941717812391244827611145322188667771767341740645237899301503710421102322388477693731425534798388888374132460169484945229905107108955879321620563220851565300740795055924944597435103491904411337915663666177246177234250577135160442663034312685087965410397347392745290514055124103029836258933623583426786553204778075390909094601404380676438291147830296465182153861892014007114945518626929913247375729922061152524782916654575695663832511478672525609757827406443804607071542461773873376807193067971913031072597471709514887374746950349152024257187438661942079828728831057102815793640271463453279847349413902420822973866014373548560908029571346922653311826406796525443498999697808629347038553615700103796998646180680289328572972529014282901970405011170939604017994007727907300595740645359239166638811445976418742692009378297052256405569829948514511625396658674223630839350814877821146971451562642183972324519725639392618648161829774385324106434925254168626435227043137238046625985568603693929750779400699210927268702532645880616669225572963522442048586718120450934271666318905192624501490846006880522350944434658274022582905129503049799614016607725564487461462709786889732567210192923009824547654380086437400109757236660924137231868007744762686294526391724897026767456792734869542632962933077993830606951742589565375330331982513746697462587161719676711578595912938946419005195942311625542655890360404261172499890930640509531999646107199705169382815884249161492363960011138453259171654027649547661729565903127916495173602942136281872645926776782768960296649722476337423458853255432357319176321653972435014685762391656504338768002101569443582360863484573501025317463807091205815681879683858394510423679587670566860802659482952325594202921026887529115436922289471789836330628408977303931369921911471481628943832342429101443255465123776429921208276392973771594064139740520923053096407841631655435542402370608217818229921582821565401767669766120899144806005952990654376236361202630598895100772357556516592197145167836743551290845111362955595308758670837780019199618165568310045570228278919161302403618351641223162709045429397967412823508433094522021606266842689197180814965483076922146809272437721832739709295506752479298131156698823159331096989939122543447935774560661126904642965640740541928822647854797979744559229982135300293155312717617221863197089822353116106940684881575528948162082091816672481312890810462376990701322935328445008140894151893110987965407214618275748055858024353816151391877200444585065798479202545694411477966399229790532027713023499786440344218249616320189181180432647831115159468111481647264547761763497871308668875695297626030316668412146343026244079468697828598741839503171394290013559087722557705373858205488953169601806863232587915107058893271685942207156076389078597607765508430373190771766931455239135186223631142711608544580408475000247998758230058708826549146220787267268063637453759806741647944848149738923875472845934387527928676644327256479556156983137246251045428885007334895130250436750092419290343543601085669208294261850388397292138035920978526334813384995927253013258210860871562799411912242653301351854683014758836172716488218149835028778855753965978890610683222861861952982764025772256605724744655934032528658160143865185373616114163075572970379994466511411405407942714753778111142551339728349611528753303886443281608116519009719605585040319934565279822223428072991817130543227748759230282529480265505717408619925237062968149812420426377685988195395996847506801203170391350760070019492084836887963851424058353860689680377544207064271651941908844817749095380525810448247391349962282964378356130937457114761509358959457926535184445824407348448910093955756022910560624484561256004382122790034279070393187107523808563892113640393583540105820737115659807256303077282358517313619370779490857099847401336685002084129819112235959696822259645458832143393571194834778926834588974007603069394540213572747663428486665759667909377976467681630158488167706460389706583275923630814092995503945837813851437720113532362892642037783484121359508214072712089533733168788100003420840576180389037755660267923579426458250463428582640582466470413641994747054661183354387910763314524200053780899955034741739824797089632306577880661508788209327159575654484261688320589402879672117198053728362406561189079991380288320943433112469126814143218206702353906652549656361761513240156795689103548807955825825328000037407243165059153059069416552440264422265534657082709714384284185626503226274931962958902475416534576128240935354062701440070911482095483336493865766285662502730215442597984538294819130149993816839032640802982348877414716824958784818180055520669101561370253273682398464025891880120337650092064772911586849770591281425393646332561493813809881934729589219122373029584341575051021773876002742570067130721327155850271832631656732297416556993878969323828886666047534639873633285056162548773854356883005726249740754685155054477920664951596322925802293266172296221390772547495226462179754608682099390454206571222320193765629382978088618030619528493132084967387233260394748697307938567850075940939478674254988202420415470667198240680737708036607512546417371045935695061956103385552732209810939122754665443071528565396608248218609920130748257076988534894691543197165697224766161617667065198873444896624586286251522253842901560874089954342176951754103353363403734750381964569616208605048641414584922244531855693921046091709499351230970681243367449929819627438739313209704016695375731733639240662067336606643546095104780339053198170587577123827378025247349903133500461177887772747607203425731481597071163454090918423175198274427763779402582949213724616142441229924935894614340088093891446700320346521898372728974239743797153198307296124285026965615884663944840556777668605819505314833709768685171863066764959789067888706831505251088021562700170042329256525775535714748807170330384064659421313222560288183751881800277819930167409986441062719982527455695968061642301490583712942032835260868134658206866112088199942560871923959865755990688479447989572847189711576011266352332118719974665840035802181340436535578951022409632306446703623964969102740141538402618604002521040701078265991504497189394637653897423395944478094125964467938810595401770617103493179060102858481794286927768025160634698186487615862337015251602363718178799903437959551150865145402587972642320057250444419433171201374682541907085310721520851269398466280177111026424456380791588249566743492875534221533673980070184145968906406936381641534693733580413486216823628124855196282073725171164471004843392677129047095449821771245997353794989592501819266700991923198151396872039240781317332882274061834899368915962588277943418125978223746823356556966161707037739424555386021304334936400753195339849108699633356133084982004622052379421261127386469773435298406141202933574769854283798507314230296086006458390203266832971066474859280280706222894119846852371184628817825233780181757362738656338576525114589769142517386579768133455331259610892167967599216200477777366017396981570051893055632093476805752082392470930750564865354014709692586332447535240023579514208088609935236904979271649529733073121762702277582805843309927781993804392172681117659365167746348586811523913603817239938043619137087041783245836870732687927591512421327930692493680672567164093795811543741008447431807984798184562295337831592094370585987930674314958421280917714693715998839338365967633328550845214487173498729828022872245972111003370678851957086364693267471590612320181128619220703781668982540615318307653843983956690719804851395299403331186528088123217077735132700970934377286450690552483201886405445912131117904412799490178046065119346213835182007919417118694779020864787750881187224477634397287600533491197235765406868201936808677188641543680800990685123604632696099408509903969483621715707186981568085994319275507836176310635228624435829757772397161712443900078527257874425455388265166580154504944151640169244989042683457345626173402057140117938253155396691786508532861602277977618284482128672946293714911091163510449320107800723707449634925691218904931357361767273707579489881987081480329456080270142457402799289156950749771877632590121855832116833245638324635426413663047442069533906874618048742695730825289285497755704465530725372653544909165505854490500908073608133007772880591762113407812702207157721799184691999647647655001009776601727964696655224452669933769931290031683521179052832728749544751298134025062913810954966857283877952905044288966151554228237601744913735138627397538983742878364570857778791777228294183786250926281394514140283818107124993708570349600679768563369686476720810794013433268992292032107971528543223093687838982497846997755897775841621288966611830971893956180558988873478822385862983606148281970638853766387023699719056887914200150058932781576679554126561532407775118370166626802333634507878413669795089586402858492504048493379617118032804557079693217083088711762591995943564413971495282622098711793930564122549381874381430808472755308389172693462948996786375493611546243336309926769946870192230881483903481460666095445247038837612083165142010076318337589349399962008248009986046283062432490492757335719180582605324935512741107358603022530576982049946002145986397578505832139101615820893810253664043283856221560504818745659654507487713704550258145886878709415841423636958253905004410260672794345106150247722806223509663315736125142667943414074665206353454658392226114632355783939937097026201916221347388562453983020165547146208476297265257464268723386362315313553556816636051903571895244664237586619804114480252199013025958934999070183464431270680599004325613871121045068905575067907676256305038426262251372906522565494265482732134998484160539500471824985656018473144907426919645745265811357026510716238773346883372589977864367259174115570165529248420631521873791595246448319525159806339460374218673502419803903429172882058569352678665815820119587606982523964929234891467944308478657497450836696232960790189307962445874843725174922985957167812557484233167303580613732387207900933633692574245789195386758667611341258247160307089431687496491257167276344430305543587943967279839160550213514833324054482959124012187831340304592944162129275049984501670946484953440915247183778255760029397942501489342146338675883458963870261127297794818453034442314713124407849821484673586273265362862550103973603017946321255354342329834650428782992697952507621176604162749698363594996032434957912103000462192014621172228858441330174290915199745617412214254815101274882630094697483512300721702238025163626542457316682915474442181002777612760729789236825861162066670221065842569816638217984120387841026448773556619962919187799243489762359181312079342126285808524547143180977676372136458404335992767255515876687292681898646645773718156713727127327069174460768370230278792424382140383043987812547006213796556007441290647108353130420289291215214634522567535668396813627818999544967628545917295133246231268627120730703168674086601595709916631586465223887456234496451599074979209945903431392149406798483027225457243051435304549078550468575655985031418630848348650105751244928756718289912764572460725925529643384645472945207641184438179028342584640929845681217561693893596597574042929557152915076829707802023978916969252199569167435795107281101358448780347612045865179866632782748015063649022752319205745215355728802481958656569366630546997062951144220612555045686914803274486028172682810274248864026160189341813654088170275190363279822038270382089835124557790353616534469844285133454838643525481083128499832894181729161208390713906848687892138101036796504435251204222146561436472201498942002143834420124097014662363438582726929610862525525118921290714836045667955951686533053105451019783216574176268285593469187149247242547912327152909308767435328387505631625953639199685925802257094130454164678572397376266871116228209347413738395309745385622839540124847808174876622182715157013569546601451452768614882194513411059801959086376897851029047454766574382151811345102502465128213078825731151825135732082734220695504162056314244492977578541810479961944429363946697398135936691118451577779926435064354447789078668856676365556751013302039206410994467486972380018901857712373933385189115176152917903357035783597959554448978594989542466471543277067082726518943783794806403342214337724047867869406306620720565027737002585237439345579494371757594822239484821309090539231169866409648373506830772494450468792906337053879637101170440903752038526402962570300441750898478007785474006909831594109288735871895339473582884735120247775144152864143330152376020257165466393135151695802886647315383404234437057963764866980429174989729433098371512156861929654197679087543590065885191194910142607559694653688445618809901450714928355936533286587807344656348810329886796716467813573843886039356754812673163834632608152226774336103425627990445807102437290860556394198440975135534819368989443858562953654998625886048571349208874795326091097703034650129404022860283613342235054786831175310480437887068288281500040827046669007244607660813283486164716381696784460515517616537118876351523592785897555315812735391683028019688722025518660905434784145591634664587131734675240423205137846651454848521082743372800134867245068256794125326197616598876523966888739252407998493528141270966542050697694791090919691843101757313225070643390879078608673290030639835351651598000740530826896024170370232670697644702976026046981576139529220964311841219908124432974534969714035525042861389842059873557626554353472123109964180755739430498475835897786753408277752559453469072029492901386136911719381317360164647662549743551192372319033756640399554244778394429835182877424641232791662248726116615311955651531837930374483071056491908637692464303925333281823210265162984382479889408161531526098178358205420475757423919079066108906172633363527535883672852532356699956862701830812167405280180002553689929336938678811674407772991654278804467841356200936297554569151807671331296375531481657990907293104137962847599417790724890998839946581298870509883672688417262456006546811448063717429508458798293125338228957064263555895195747921004748780099067471349081771165970278740048485584618443621880455975536139781877110016001209738065852060227467398432198019506909533162304589829176162586011360218289353059467362871285557042048740358073801752241601053644920727003135873627446547077793526648446408067183202372794201434472347416804982143532190661854299254690278390239469367565855047152011417500088637443752809863355356663053144742780108559946161239902956286531638308517479794311770261662110750667259113679565731261079068742527132102089342043068644265621908898010268788167758633391987936068177968001520738645811186433222300276066097923728491881652219262768209018854780389443560320424330725687346061737023245268043661758961997444611691103048605905531997056360086339357467682549327302610292972652219997013784745668336927819603268412053872503967733874100943023310659498597575628944088749450232447104514115759283854319043656099794417786945650590867372794050181035891330078022518367047129478583932589452033737115409652517261432458213651094928649637279067566775702907881082452198737279403819995024928527363407436172234914601313374188261577753944998175824449373817062049505167229424285374716677617880644347567422409659208038034162784725694268290229252125238485853373479136715924694997360835010090841599916137804841580776617930919159471885690996102325600636796509775882954357381862985180328592847704137243664895146145050192069446910055451753162806533052264007677708933108986747592363114249211964737983859542557785447923057506806386126902090132506307939519222133860918595065125949662111567524770317261323632703634237172046692361752729643717179484510462385604258222738205746694163997921781159413559646469298483067092014257797423800935295307642131187963032500338498464286036340724983128555939809627486824431957818590388875500902591367550437589147202605836213776664200909010705930533871909593483383302999128166144933023488324286278094503744594199622771925912129739618715920208473155346980822917945574110692956227707464682922506407698844047590191734774146649892635236134717021650665605904732803649682439836851481673729696986157231072880503086554205465345998321799681376938521879386471374152993484829918808957757606697549607425734899720499944592474776550655881309885779153221253482542661842900833581533004255332405321421248360436128192217295783844480015460029895050118238964630978560709107880102649379376565094718793225833884460889554615294626640019608389113091285689074952441099295591850870862987749246293509843054163189206518901022108368738507686044955836700884497199414711807644132023195029043987298197405881795755592494324694154799405009578634649107893595827727866007415601127758927156974669185672088046158595689739292346460865182597348098762780327357831228242397149180793499521896489149874891195446601846485979393343279816952173481047300746483125306807551970638079106679558987664530004506852433458445014194380760573215972428933294095357769028928132730950373344137444842404965267264912307457602800339029746726007190696517893056846085704862419219218955295012064993829790452218907115449969937914434089777511702614082584014441535739125752687821120477956764332887539697262447318790329525014752686425937456143548799640235550255624128656418887114956390547794276858725041127991197852527863555532605490775416372818787942166756748578561416230433638240765037880156019880957723804879880877686818853155071552135675458248621074536528904229917221564124329654859604047603401089607930001970188160340187066876734930116806762537583410194493959959751799294529013819672487642943530349403840454890206908114517035801938191590053992538549904281164432095981042972560098939829781428018158679033616012883408918242656076965727547631996722453307756635651498892403328017852909671591215592207966059200516647151130840157471985733155950814931327443860967772896845628669479813650313566094452938685876216472384194726675264827978036461664616546009384320096386651058793835840874963614197063437324407440617596395040543023084204531168926186905477455123081429286713145478724936722627140194805807208956072954026603573000165918462286944297073535927977913514154572363668056135103373594160579869350944593076459253643501294918340746568221068024329544721198860420889704487725978522293551441435958666171084057619129648024968957296336190810647342929158012492334159507279086087473472977792831022117036007855457695093136478690591301928975081368206937476624409797390608581957036947956217339092242356878719544888707655404175386489494700125053265954906591158579312704816593456876477106138345165728635656730814481072241362520297715123011521636643617555415377731353126073673845116106084151358374964999144671831238478172661278322910119023056934267889747688453059278879053490310507761425542996293875484175196399791206714877105669967322253891393223401564458501503835897166317796965033760872633416256651521685707737530402247944039875456930997611847595036302112888839234495926700379042225710280651298054546955321149537582766497186706631970791692260507908921887407617766347269293430000285444517296016471890156412069943099861693668518983340105486629594899465690353605541570293708695036832258132391740011335789122838643818662142763911201676285091701580132394079716586787519933592260677409731015117422689023963220013016501117008964085660915964199602020603998595167599336164608725161053738306083013854701146917863353802341074177249771296949823893347460978146663308890623941931970797684886220394489665218553085537196766750963598805177974726179303269128318267486205780926525652903428019088270590140546637470013833025889361601715015488868935910569440449721720211392456484749888583660011930309334050424819094808467898760038276692181719086769660182978203559920718977804292361836630667945726051889605382347287593282301195158655518017828313356583098613731652593503080582396255908286572921386547219577931224335914732375240378690825360216462948132048845739870513672463824650599873114603762253497782210301014542987511382244821367352673721070466677797424225083858464887294909600521861477477151996602465522606962127062085416878723951599782686120792232886495599471294392000996760846261445296688181911180944889919558814713799314815293295825160760107116624951556593720289303451396577612021582500179271658211474939898252164131398331629215911678786311490350370804672911346756645736776031670447118722869777749372049841155253422836893646994865992816389029333329596705023331063186454715946198921174696044074793011211416649749227696638793413605543628013565218859169191601265017034734921985779121559965545078845902800241979283614688616696872940673265794485514121029331647678050432030238929162094969940946268112688477619419298887283020453254835559564561049750752610524425580938627342063589277682844228129581464734736707362255972829437263774877683992863763234539366344505846403222027497341502487576599102151954483914148945282238326814839805199707655926889831544715769511831555106187300676856804057123078324335686278130316986843408552081541485255677208828951940358785837202454478168634608411970360599469204205022389505099905474622524732812866755075605926657023819679854436973843036347551353010142231318596659835501729091226635606839627244308404652362865284232381423499086766091580811529985673188270001310938215761913296593145799781199823426305914119833894125626021521474556185978394081691455551300017513102083825563173616215459035129106180015379921299481140928264215227003187999595833637241432647124378051975244525862986609139765363120503485519687014261642737394425538704104093401178690284831732444669643839274132175880980004949886150245568393213699722603951315999095278370145480127595279256570668760339430121291197850593657439413065417846820219003381050360714952969682719340824995408242161639655390093100714463887620313491340775627556205877748079843945811949518820071320525940334421340012436887461101510266689010672516105842324526485513982392400435721956683073657863463628471394771876051423987077753537119885446765729346358469884781033914667847854708731515042908742459239461326108929195037101182549231842072104379420062672244936264350959550337583817195105443116873279605675329829161312575435682524564650081228052263681461159753211991706603643597448082885621932267393686560625429382249006199560775333065246484430727348720887976729269681479748532637460821151712272174344612137262433632401184329188986371123475830738974105916818188166895595371823995831091589558651551079391105153715928239197272385189345950241777905515151572649757087242876794409731453020409590769173875009613264837074559534153513313449000387528031013378564419114742350224523620088655342053548595620977763485917378780621225544022592527384830776517999637382300909619759380174752578307961563233626646373083895738467111670927506441574763282421096818667021420776326837552607761110898894496467327753439014910896163618414435140276458122289605060381554653157323103591573592275891134925690093560714797768870073195410228342717487574907091871630476238872340969630253407824746509725002722414526033508279170509524408937573333123198203021541635078677826550932171378171231371611421231812440806330981536074376395026542557472387777479516037076025486348948281530335202194134646696375143271528080291002816293441826410827591952495181736937113651514537697574630355039688155770393898348715498840132387691533308860839615203879265983426272431774927686269635413106846562448434931165089668748446934710340534822954844042494454802901500871209116791765860652787248125797753474788031668900351087458568174549707049735995711339834554368894821610053715261453005639912424453996258031328022857815556753370517961433593548312607199002585111086675429079991703537006064368388657603432842134674936328479813459950952445941366688588636535801656439672455889752138057636159021484215833508687176912138457600443756081874548473053787916068543093840810194972061059938135377308743093608025437461836043691487411272220989011476728779478953951733778941126562046748007712938053458407655616163671403281364506738962178520907892224643916798604380401984876059535757297848080536465417964743416320801881522629972791753618419010572539102352610066612857938612848287211511443312174816440400561836018672863279325396928232426014000725989950970512646811985138070288116929747036513882781618018114314687279332331454315102504802737697359069296971888893454531535369515189875968892467578877943475069709594838918709199985678213907843263703165798784080761347005954231533063135629197234763111237012637437169883645699391802040236017065484741044827168499151197376191570800687543188967229491535191956193124787701048836490034307122021693271644873789074869716889055669789349557482685994538815934237990106692455380866035693093474851627199700083726662594609163691191866834087603981605345718730448837878445994564106619464928279029871448513829662277069771018679726274836234505524986843346217582535199489358389264000821604257858150101486886919441391356686968831445986211992334972258493374105532462372231784115404225791978377626057249768611808885686579798004500743655996168491050849723073534559981156167551316684195733447513292296442913651579966325538347945076610328968486987628172465341810383001694345217588085496074784900756730397047497994124351261842137150277561668273690261688150889213493507321826932280660518231576305416072303671389874837793340501584198071058315310913451714395671880125030598869506311654406196180647080736123767536839502282439875286051051135181419197379569469363868127453165281063503834682835738440551422934800799366821080449360686216460067663448303192249589315595404581694972413680574963656793307919636715256980718618747311974596214344478745387556767923021361485972863033894182374504989176974007142884239766806283172901190857403250338545222354033759894400897932960374120546035438418200763258809362869789359558085094975650679953503345837068005723967268132946214075401312828636882307453773754966448767066237058674528560526287684371031208597830707742988942333196659933706724709689525249854458209814394921207939343655680256945592260893704379680883059217354990280818723942350083166725862989891886521707048580918439451741645600902259738411457762210305768869092600196199756364983572315537116480078041903407349958308441455122942817760215210493581318239662767871573714998284140803688197142273883020874501573985852397251066895699623496283549272734508268912027147525704270506111845946471828532054542723345159408698624119906327074618266795601170127525835086473884920460278571285023478467533903131878629664955207064550768958438391867679066785694775621300377608024518082734525214320551606331504036994154860613067595336597168002359216089478140468185331471060954683369162184806558707134105519361745103710159921613619950970865013778053389759398836693787395482278968333613816287002510939802307692164016669599177393122483908264479128099857806405324340913718621885323049102890113716108308680874867238115859742181565370929674465518492928750040651580719202828052992244416273543223825649525174246715774826896121618525639989365694450558351032818566413199762669743911116778094871793696573690376143192238347665546373088851777088449683238058186610490890214787876907311571261412345364963900842699447080255146246808750232039897736546071330432841705373441390389323484250318168830269138738845884794203557989165117728792068933863168270043214700842467578529416604696403753841191237643274386841834063376908656334246919941284466004865121778043276898551840227751809879011069676458190953231321128789090149768694698126335988541954556717571267667883715576312670276152597776992561643721030108499313035437189899247009395752824298729692241071111800967264157307261862392713715782806114143002017111426482584889272072257212203277130099829499920651648922455188366142159595891282375248360621720444959024857568099691558623443816516714631633100487392293226221943195365465767781209844862542039608301127767452831340676229436884135422093949607182598326001355753099690969163734966559745037380554178792938203007569843076695439031187270674422084002598679309241436629052273054873320374993181703899256416167449649356926652153481507710571777303188284522175363855090902876005207644455852172346692659704934706045532756296067906066323102672442059559496173835522058814667667226152539099092237347001406561397500633569448750968771520848323518979421232259292010069507200894275409808572680945059064154821843092352059880849315619983713486308631608177530993431356826119391131319755311787891831559922775024846159670664664052848809211928532569954957327013366289102018529597151020987318184639442800526951909043300223556760197787053090664264844723116541768542221191674862350821405552416336285619372915602656303748519633798312493712512584668544944179398939503613056358538146534974294520242828047303931963919665686795097812119450371518494839553461857076075329697620604212644505057272373623975657440000518850643825547281839696475595398026300097329759096766811250192035086291396430856380268780542422691206708466695667793808428879759066333385191831658073331288641077969980277388121632164618197229799382327922503439232071557065563693152921882935546190236507169076916658534114162027868814520633343518244458692779598046627970127434881999983671416159300403854909347712321623085392496688136772265723665048007428664506672319728135654420431444220544279556928924816510679063605431422762298205106039468390735987427441902527429805800573784246772140507586893275782389649330295393167543655826368293342278667996908620188089559616889819483366568308504888361764603121668763086594919836752609718937985086429615427801315738842262690972075493012383476933259946850644885035844843865983493006017943549795468471188058153183483885467009000362390165675090985197438260891762970517516264463210468224004535486063995436349987617932954392450932753221167185125536171072025658333543526968008511489632677184139489710157968223712323777998170453134977953440975537822404146878310311873204302877139841266742843083009963756515199425640823532499590528093660801770815480297746804698730184428172248913336690764257349831495301549179718603868488641641366820315278415073016038287609047855070467970510297237624004973267965404437574346149263092329939531021385733403946546431380393284754601668289457039852028989705619905005856633168102542479612249799416192380808171869561768335559308203432917111861194066142459302341685892832540228112237514487838380437533386005245983771521980857484740911596560510126102135739087758744852230707278675102693405952584004438769166088899837692971157675464446866868225821631593841533402184543020044556787861653538779006847964816115461477425676643466678616571432139560580510685249293020348631118769790675737306130865804980539962498308851629744832342091870932486556631685998882180763426336180380330937080685655211630835704265987849396277425742722126865260875537703432427972131624718656218150212721001533814352764044674384081792139852471765606453271666305344360658788502002162008322243397547438846569080848229761095989093615129181432469419017754297201682602926069362867759394413039980700485624722707461638170802726093244910407161694311272169324596134669925072649358332736922363720775270567953185986989393297451923406580320289778734716023174722746080557162944886163769004988028768178344620062203271019135123357703649008084555442557682671091481559673655385825943822195135801563771197167936702062224568634854690598778034658974565844785240881926883092277705460494635561584140974535542394776734275305008393605426533858342924088679140936814423285879009223052915279991590500906519247441417091004770849988903033856339419441048643921902022566287739846266971296286873757221618817127821235633490471549947075886804059463249806132450533895452386272552456440081303686346872684137921937957850774989027824315838273235033109670899330157066419524016404802598619582946661146570878969931266619486819119516889978571382608897201650221151500004591675918314137952842924016263075906928102591504769068722721155458369984724422211012783008421494898542759892875796268140828424620273448115637761588585666606287075979845389858885397359150678466677440735588962117649026388773046312288150082414864035251260700750590426855154587308199448361425175009691988121471776942905584636475578159388806623954201893749084032275102063489232830934102823789408898953172570727814669839254676150509011338562734748228265353590100895281786892385130548337080121637570618687637859548021488100672071140270517244681807607601299422257578378515262372980443754897446037591002939914877675347724241123099838146911879572544474496042009487586321049675622617109806570375457977845287555067068133301194037028368463183005066807530624706475224361857438269778398335421299357934225135203492355031032263242244961884867197753558031652147106199584104062211908359669078979633808121363989284373107431582309352969442335189333013437082432643853278990826149765002466223360134797174646420807983695465133294537755766227252446205078516996720198999934010133350720758077104038265583648170001882520487386269472797768681984124497130143674446177383603784505886773104155213802955114829413819681116530162355989101477594807594117715701165086921854114710049853076615445032636243434205052785612868371178869862422845371122780475373192140489569910861835758095498384445660130847465276512015225164046008638825408921010246158353618988556156795455594341539377450291006612155870640166529816814549150487091045363602336962679007420452451078747671110858160388335049073019845459657543115162722501328826413273272004586475040035975388411508587123667673305367165176672359234741082205566207389714589673612442860131844809900996619418551265914031244826821505050968211722386212311526523007131658654273609247852137350152630873645042097086869752775065195387346837523167170317938647078333812547030567421606759571812448172415490067795539503394974344065110140266883233981384072995257794268605098038571003884722484823787587024923392172716067232378375966828065587790533662110909733434199797844334852653243507225336039871946098706430167889540908433831832738009554905680850927913218961619966362620096226963711045923058598579332139457181218497046923974684711940903162865482672781602334664124586755315372206986570758884561592003927637676159553914381141064107128036641827384857021316647667552407500949113768318919687594594576779755050543591395884768627920441607389943866059704875573603207618939929078473257012189386351243450402561115311061598160410629347212590338103396221076910135920641844272757256362449921884192969284504886557168081476678966093634642719375556300958026571667406069670450700559764523975309356692672134756563223105217097972678820117567338442025858585630995827722376701242619501402141241517017062574823919937573153980565184474781497885071568714142353624433273021226810854708277975682257009325701405883696366404360280186573558394491847903362635015543240087944455288584149451156409427092240658840581570274699062826291235403802457997574932701823914476262867197280067415106461578426087089210088433757773968560088108136928575650801843593099633922487482273469794807840647767757743508106481311385412026681801462169606348638693518228333021346613369327916859503079924691147833251308207669101517857971695866018579272996719400552366904988057652288340540382957232949566661061816310978922639940730115700245762837477357630818379816163811907973603158721219831381962034497698162064239850752283277337325833243728821605978861098735519137785588140372986508381751163266745475940834529696709262816998084488901044363992941713355049172185304441361275537274043801966167062333829738024049062982586095139350274958987505280720673183786473024891305790548156273669342031533659348035452212375932319892888437480373241078620860562246217556691406649656032562701524693947009851471160099408912835194756827483296722721766829934944453406790736552541717488658390103931928741333687055929138002772731477548697755411984013889604528855416461552959673062532883041185550118882984158691157708185373637750607133505432687135382591328509795856142302743603957649606785980108937955654308759455387321323500760300773010791789640837991887086196320867905115889137412620483854115784882203959235943327045245914114735078054550403358190338470648101424868919725638116863193321649762981484953964608387484954396945851525795180911626654523673351745016360833352973965589221092115691197831672918442579257575500403074904666422709066432242851324544080760503099725830217902579218216908237794388348086565451658032249266413962473396051152475958393563660744382993667731189712438143450714426349066833674626796514487576042164900465780456681089762373524663044865139464823196604072671263927405371480600202881411947914174210964506313055942410056398778030768315454955071573005820147925159590460246611517839367856016125324062752420437119250613796485089198190958777058099249084208560010388602394315570640926229658546194059909869647650740890903710204107377322833000194344131318989829114607687934794756379260766087148325864793093194260650376503122078960597372119426458074333932294645621715299286987757237442174524351059370152244869761304829777561255990175145475954309572978672740072177410442876241952705751308188966699039025134180461879139639175199961068803957945781408699435579293988614007114172498946051202315286273269232409802703440393572135190345840288779882338142266098933184966747889266988742745147726958495465807735894966320431968422729390540234206993659346551759464401935696808875736513565527378275584560031781257854725797390168904462967021262486121787662647754837065335028591870593939017780464717594243236240820479795837934985204559679902540515940494547744176083957797368673769058556479182794887136785629764703619719277273687581742206193421215839221471693970525072478316583686909212066060297781442291451540611950586526514128818711064918796979431604799651288474036540839996708323631467927213244936269857074070471305843482632931884544051058661940375587325025731566527539290215236220741530144657593072275088832670637058214884319615653104189017912554845787463405381875056140442314611978451309705654536912682557944487804258829500769682321898626238111107236874499214246915040404003133218668230591543595496718901355903146969137362240776144310312264860376479193926771749354075341625710255887112283009804553940333704873282358839765090952167265647472580205480906398927909594975654229061846067947625812914780970375574292480898165417448550967270889203351426936069221576656346844171425141884130073463421177091338849728156826975564830840913326336717247725008190383325739818737436603642934168154160852874645872556535076211507308850688034569682329153540606927242413612638349624302522273482207667432824462519534381686632983333512318926415375390268980209230690246918808661653425971370319964656365517841852252077400377550133609358614163704490921998912980817235962029538477316594515932545751276218265882696502308327487795212641617601548390384586984583193711720936819908328893259160168315237898417509554214565735424477030798689073885423655119403552999768615121850369118581180619655257629645824743954946388495230522939043192083470040859590624775869267390038385675195963571883814773408191367110130507853555897601972413186887351769388896092097081199608639323761143676107035675675195450985667726092830783033338494789630261029049827785167734965663017924045814188890168611037149218707553685442128423002943618462997844709902389209087028258677599793290024068740412895878180015512623850669835207610152581029222069185058987978076103175274405860231492711148538125250221206590865901782025878010422474264403050814934008893553699421554124279402428833016355600845480611425197360007946836767439289136803754522585250356433749230406118813478986495017912039521392725893518850322747972830455537783064856392215254818172332080667252766596431620541805944807093733762738519177931869947302459081165317084647784897935244335720380614698700923270065387351237811893555880738276143138710477321330658524292176952009865221558322707624047867472018538357834377022350425081424571284375657147968931036341808937329972201918567752838733601339441772638156220284901596044742284106914681577796601935784853607566769164334614029548215017627807940265327540169883435434195316982597257270323767232710438850214575511607810784903672734137568505475128333182816818068792348394235790283046532570909969893392931956859422151042753161377858913302623839957249246256520923809821631002200993851783878629128475464749973808460988491571783874044619813744839068734059128423831399226835506173095377600773344155197113447780113636712930495399900198370576056147210774583344123575225879819732015437084932129176882040450744949109305178697056711770114196561695487469569955457946649024598805818205226782805544006305517162010917064549665772809123128273037117934488881927575250994256805720457156003088351254835453182167003120209888175665602481564333985612103352180312220387245461764927719760756163989992555884482471253975444199575287553381607523828907495794340847840981905049954722349176780899897355542816911986602910505481900466341371555736993081687879278573666964628266282678449837678112704991616800588086998350764297274029251889063949221831873692325603991587304511774483342679125168538532935334055740695466163939922312566237332891308244660515960756818641377290495515788532889906154123437813616994804639083110947354161918944252795610239155036306202464858209675195205668630960889827424160266486843101853579201093414899591329401297008097920933872852450683677063522719375612107055299577005685216547395630934014599507090684943999526109950370114911485835658403569443924401813758729506682050712955420991850876507111812723830525509427097018083673324604796439163711962481671287816880866722863275435721997602795855021249960429342072378556610335213428835403247208840753622747707672265703221614598530848070143271133232795589627033533113301913893098742633572074810144260604122194998739520982043140940011739601500116374649373933374250093596798354959808168174942641161758900297445379024645100115732568115366055049218229071820849066730683734741354087686468803628105346366063639637050840060322594442368068407010904147914080743724325375420452945492320548854094472777330867728957284483519930624062333601489465701029537276931923980079137424612898806209404251071821687003541827178246935885289693683871233950818071126520323160694213943504416422118045865972847019874705877049174523614062166471826842276504309872213025329208062441013565190192429768319418422479532304887222761999981305934343540963408734149400983611379929010404902165198001696534510509320118652889500134985548157976486919975355400199623921830371557049566111407490698906146880316274565043092929685649204939142663256004909546724624506038670277906597782558864298724579515518278895492937913618643354949560747960629939433289895607101850074129740279027598329853445366547373825443050649218755849054725366313745370776589299887545318170758033901446976126120801219236484960131914537587384208870327736310454441031752042168170202492424685433938481832397201173367271437591403573249742190766283951872620948773642289035555070995680644813853912139494407699817657122176758776977413747693008038530924147025926730972434251473897943330822070919844429634936827345559992756543084921450058959498583889721949080480021103101077469457503027986720456029668290243300490195865656152338506601086085247051259251072368903914426044804191068856917115605546765577541313378467343572819135579215212524416342672879351457987262360684768794244924543295937593225680382412430804044151703233035468059302554598084018141938839130991313780395165866885640534425045976863068464703852930422812537128881240638371919682513155064045865821220270334452515002455569718520449427126617557097790765220163140992434562496582346327419996696591909630315077216229597379413304490691235466289997678706396442754397053072010156786676514625620966498520697707102833199253552221017907154255491066890989015714352252320882493548326405825443322899338818143324607762021192763535560554018124664011806449074865679249304575303054063589985810364305066917883604463376007252105930721019229224189532238291589093412822875051098014631623957367143457654118054222740156504411131105058633768086937833038419596945386133732892471602532229369731322493799729280059926755672479757909534963414170020386634196145344182859054952805340999776308793433997597891056860413390126065078612560823204380454544863133251066372391013324302318546652650929391180543257416902759540719084176288677352999864254605851448070324558508800237492198538899825763569046940203693882744668184013998417739780380225429149259195749277317837957450107291618969993288313754198076726491800130643899054963744840691458284642612420496167874919002870799697918853412624810879505542074352644179471940403447965109102724481791903205559775877384272738131058143603281196234824968770668087190298872341728952793641870640694846398010895643153523342290031479810166843136947919614720609730858013615070551665133391443324485869469012049247732557182305818857471699146360318779330138475975986112096170716267577315729761334685704814097969154860012512420602987885535337647846511231292899852004061054006583425034516346856303094050978983625277393412354469101293626170198997139567103939774531009630549010544836570216719918722034635756363824411161709378889385493935561250090479363717154224080610343811886033057556124867332684560694175279344094970259977435014670199502710791447832109784571556218883274107109765306341681297933459346742756707244134694314516216704733767358268531719605428171285887083015931604884149219032436305805033072196601828090094043271791799057699323544388105032406749186069157840628987344737670923422578224494543482808126567717321258040238692893611255653082045065306634056149010369686585620638108841621125072437468721892420926302653347648510064882401875311077523879905191475130170115551259365095027766386560475993267772695534780632704930394893489795980911778925653744326543937422785062716532617100491301276476585887813004808407118441426902906254200678976496169966203724074999018383924962308016797133423606997570874906266593733463493311747238915673444128676776285007328674289347429843541691406948981446418541344524728510222660007961380960752701040772759689266151674443660665791711951892709120693115700607846131048600959027972951465467723383197530039299820230677508614793783103409232516679305885809444971780201240607532058426904533209973279358065620778914455124440482552693035330351335901481444516470171740967805413422095299180906029126071568339276616892674456115532092800093355234193476248116875078333750521448641230046935912724551684094934356435920208400866397288745264476416812224319790057403767520411314593569082948636502886651386671870984019126520871938214610496291771605611241326229847291819735019232646934760673591792047346019502146850204222725499060500390527173983088239346961329546058235596168859614438551773255682572004086406671572614287421586562936534666765030539943726433777117552486333465468661747102947425707471145240840693574593305810664791058725770870394121595834972080143473202166732002959217783114654794156763235809015934498393436031139470196023680643647101552654833033229032494848874017487162555417843234598358313173685674119482164882832198303929378208900666864165635632999002589124253674659874275784244531350568116333665037981361610334287691399779093956537587469917820529512660654358748024953105462079082869238253173487093488509220298997492167707593046651158113338304783246584537799959642245110552052822598551357995433140780468738288309181716886504746473420060161594458175927648783175100615405715334080277700173393486915972544835849957031169089050234790041826961127743891011136824983651124352217329412770603813026341816523575148350077986826106893578108357868111581663802542863945488244743152171446531882122656033716864388552794908372296727150585998390200737043520451962130066826186389711245753979831674835802866090243753365970379553017428601709822852543466282260502978228192296797495070684694701411147182712377179454395424754558231763707200209395248030550248615291942583807464456124756630329362111940643853512617336383757851990930337789563507099848726475632881577185877829735370548456218406166516380521163355359561571365548830402308390484990534640227536350532213126285798474887120879742391971298065157156225145357376229649699578516189472586019304801887884140770642778982111550389340417299078428877913960319090947564277462823464504961855895718672708930505099175082590601623035608541002615065995829409418822317117668561034310940901519556035941976295271519144654657011462735647603416640733553010784066121706880487767658296034459262386475855747734122855909945512619726150335698046742946544652410747998946799784648927454814462927046102427724945172854272025170751372587973508902883565123730751402162131170264048251331975042822098951384552813626884177326700882525431724357988989275269871603988463330764027410207254286075391463205633419005178016954816417949317348878122444725186119410088351313755549049418167286424417218802638816562753985733360041105959943360044510938252578802766481442579095548425763256667686186591270514838980441597550202022308442316481714578201023087613689400621715918636966475668011505893950691794861793881106913573911192911947645716384243985067676092701560138762547387755513082161491786331107567699693263983636019984305639886793035036311014621259261823243292023050487397355510388061839630338392022445021877806341801390292508001654765599060390880691771852440750963515195819308548534943637526931428347260128632155695589347590375217333956986053558181334040468345871203940744923635469708013539670296892056415327057617850743694104216200281385974099445803948437171223780859161062547291289418501433733201139419237769927284987921679570485720848262117895374509959016057319145103301592195047799861639973513634301812707663619625642182961355714741419682519778451292399518094802761577905150529962456467685941080031965524777784431018487536837769304812085949347514957536351908366451038348117838304020087249543294359801839909611614425208081024615483437721590074746546970789568255917810215356444060139689315984451593321201982737877807460527984806318853393592553264056804758713927361712743904944420640017604659600972674199501118019442199470307638680820189152106960803373114792754504691807086633068304717712769938884349752036150838640309236770796659624074665303205885579543535898594777542084658544662131174173213638193761117452671984537710736595659498165968875953527256553052258677787436196995545270088885043127590941433023642951983092817046363671057700408235562634578787478523448239984694378073980038821035519714677936743948439795042261555530639372957759761213908282947761609069866159952443474072082548727474163790541203204376326497675788394491159485261755081482364352014490068449037552549504528711277590244026828966023991381226668728716943914242335690716721974852985490650286693853139002780062228105465949194965767734087173852622258531958476574101365001688354835623699235440122359693600605122970484808670655982833625461624988840580805683874768059241672148992546676970704279759470744399240192171358768929455771482444048370028276093844436672655795920533328636382118343620277464608717645601823692049975214261411194950914136593993959888496873253905456168986309629627745569315962711129138906875337142858168326558229153167341288902773433554934478868355341061282300218466236526025203082990557359962941212840361584876982844767216650605084309332357791634125986725241074116285556088741764834982071420906963904058285391826216228998268695975949380590488575368152351745149646614269658795620199766438100506150418006870765847045347714700596330723357790794376706421196119205824254444186413088962966896033391500132432796099227783533958918466257599319452669024214636598684615865059340714840086040303385526382246381589158118363359664373818562104058201328165698540316735563816301968056458734803967516057164490401683827820160310032606803266839604685589812913403117536801291255768900097036049925914526513977577298346853058553693635182475723337804400750475514350907561272195228462960672210621607461237715153711868850400371478628178842646139058053647502894690723928909472263625662125720569197736932903139341358756978228791242833507250272859563234780250407896120197892164132387436929916913977434727149780099649672978953914872704895812275014589904462389058696429492723035412933532387618921156458876442971363897816413221384394558034626557913144029141250116885199892287079988203332745885087873962019584284916999880962566639784614021609505972997287096124330457625312926815643291803738394819151464952919885361976689649877753470040989333379727159490519391803031244093812163606427205974993743009579616220470674611740857341097442874902407222407192008491185818151812427633852311408809193386990524737551796979153348369860778847341792375900020696454778980465442096165582454565757260109829279462120160358645909800121461108129748652676649377548555016380093639144038747044068074173071114912039559556476378636872521258664199651815527268261024910471618972792199637288140577295437189483001292061255825008809586482343503115842725044714417992408858316044363542631311998838150344747327397732657258291837424868253221336201914847369762675550760047847475071302633152791442464845831054261792732559597899502163649805680167217023986364221513849136789469665189599636981895289292091091581455804158302963877917869354121830040998688888707650560675784523488371448929958031397226925002634423933729377836121998946004608051929181573650714060521324366571174865186510958665531766993318173830344832523723928096067690523685146455827238435892090666957383546278011242910414205647458071394447904816658809815878347299839103102752287469474046967738211615109724712756091818216032132711544828799022091580995446717910239857757760075937066236993152851061780016222800130689503482824380598897428078097863373237536738751563996250020268891715608720568198038132159271334649860797832469882632505217246773232158505276772769080739518020633239202228935130743426597860593702510692638789504893955632192116661135515559813269057575409440166368942600926755204065333655395145959443033647298697252246130287398349730483019618694555657529791067787277547211347230810666512202661837023659008353118127529782410474176812005473285408824483885466837414233650591259942286879229483507726271457547046200616509400348912926039955431957832683200403542687182806825496525383158353257730798874142984638739305884324111675854532875489997195502300338352132642356527110701750793748806830785603325414601943320967706374935741539533003747883990990070253146296598041526455897799394876475410724850931927603294897917174136213784198103506849616403938713561098187853350649482250675345626451525297740329892753756169181748537555073371637048051131082092768493599453069558121008228531454181705533962376276768523646265893677373342803558785781280821115743061979155371243564354768881163180868339377582789315224641995493001697844790900079766476198783361464566192197575452830238998411280198621038498830157743708738410828080144737287666819032370967428941970934024336445816131807477228213377537599246894948856887259048714181460237646959950801386604347059435174986009052318312201394591848890753040173686996125439466721399672314030349362286270110183021106675111156974413093694485088430863920946963800556700634047876561037082409804867884265850559964776275293345172179481954550738493811330423859464446390168372344019907188086077474584650233245520572489711651503735461248395335503707166335469558335922089003314811093105035625241575155460739324444620243895162945071839767616987097469732773185008363285906286338132577347176797086008286365784771014243655708737137294057536068519961990142326153519121878183240382660104099322768038702518282689905013928749433754762826805592644380644635852915698379751024085994057155596201690611806063853047946278101163688371115018556420832409881625698054524196110805010759134257423116274388612649920868926439355212150847906167359649534179203357299319229870094573119991169784226885366510539372307341483362776594610820275072013548479905377197752110208021488139107284434838958337452396079131264461657388531821170465993665343126495903472419700891057207310514031003142001607836834277549263847812555726811479079790178690706587063474951441625253213465913541611593773542711274878442640103209138695354514175104568359401016226775468370908677917638329951341468046889569352868045362009755798588010754417592852429641027544394174983197584543691671545375831879858306467153427646260166170736520150241250941328917174724357727936423052842049153843136718688623786700688669902695498242234826535568866776437975758217353681724178526139621292352814651019033040202959808631994332812220298985891741331294125482553096868723311629218467821310026202656856968633389860311490682515184065358262028492036911080130045106582899768893986223020029873020266682395983433721483435941141868009441024239480597129516215285958031825836245884073891924717130756271362697428833359520054337402297168977565143850023979631220832296886854415180768757504850991986416003851929064901878184328260738036579415375088922473330912890232978391570165470989902590963377562583277115219769901272065427673634314435963386698378990691427314298771210280981354038990518196590257528717110177255359810918897180596906653462252559961087106029038506826103736595190365980945903875680234895812098378184566328475101226255811761539113972787869656636476038783309584586952129741360212303926230727583162017153270980917602947021388975447440476453541813844023239519271050083654112614498747762957664613152927304082624646701708792176731621559023521033971585954705802422838270279714940186022288724774495150192048406390897784706393683763842470276918437140113263995349055391609284364993786270814923084851585691045365720342141118382724192599609844030715132883908461395367071412105272205061025340510194029407497595745271749295390793858606386322716975883091315775480834273084500345820943756785117623829181332285007239565267328818090238219283414941449565542842602213790588610200418833919731786325472260696786349814689795481129245649195627574858991085116766023520108670357206241041911139896508056310177625446789940282116489206299309939504162691936328525056590712236826429134597500011438126624463961940292261249313966460082178386024222634029098826070714131013402251822925181145074532496117982780980909040598668887394654345337415292835273206845203742286706180187577441930845756845900830486689521818505462058364007276520648231602447922945765035027161024023604827609189292591418654431079730615857216897581301459977941667168583567014562797481377628779120199707733760091548850548543734919107244488782685079767274247498877503716950996456850662105235981331559735770965590640499957013762197929214384231902193401513373371463885699756025752609691992041679698230878351338934097212741361796713331802161065533514784012271805000560589962544108742917710596386148887121653420274202194001089823491632143341096645523645641574425476162806149948622628197947120995332656928835757076874231482565476213966576158701886088308735206342138180550809538710626433109792183401239101558732344978992864043400856643324403552063429457083508674597822201907204349182098165274154755619205328716377066988391265389325883009078593309732527980300713903254611166790612622091484958642463137460474292851212258409058847153194384311331074768044632952910144117885336084147241830788228795538892654286664484346740126017527830053237795047173946198949841265861788389973276677309259772363725112409369357153099344533436315957211000477806131956256649419026610029205275667024981564837479664097209386142874282180671772944466864229698980601045005527182047419353303659476484286197418817359912109181105178317173557233620487679773497979516425829722861089343501579983963113356714420777512245221594458881235393183178984277679077619574751252027257634592410599926915418595094605377094715366442336816034537749447820380314799452485419024158225473078010510922138304388873009741595897624392851682724173540249533525649788361744765198146214873797373350201389963174984048031417473311253576810877282054402753015794992122482281883158599032176421808576117958983050763104579394151675401359916459608896611203563607240992607138768703535308360231371618275879494370788026235451349994710057516165840831401814160964148485556955730484032393220524854208409177214991579667050539409497091309426035844241073566596751505941297650572681495317756547067231503130463608454835845721446246720883776265194604923072910857551718087040119262985996743739966703984299785629244915783679456050193823228919978420229143846192877103398117953279196400870648499992736416101929828283644198702283182353696013372952696400314320550427157165630034780171924642065185460756811038794804264588691923654859303362606440276948220974068354234243978019485317192026063360302189849987739570514319242794157428371466917177565362215383803955612588336253255619898881383941315190594078361441569787973390220266643667605661260341772385273381717007465432876226735779917344206401459575985605811985204360990748786201063309505039894971353174758183494361183335852575639212464655851461773314300998747082934936630501465316745749214912742258220888494609209423211433462825171607831824274822368063119758762681072277963874119144812076079613539844998783245877808558470791403580403227933215701389593658177353967847577538591986059077025714985199792918862071755406650441436740619597569024610752451363496607249358249381528623686592641392363275844595423516530266033702306645558408623065624456971108791978300610297648846110574242652954741764866252078704004909017904671035984964700603486476171102949367265149700987270328479905999347892818513060236900749309573793718138695168213954681295914649862341491832620755026387682489509567486763202646934551755102928182498391196467909182393524187155525228632683189420876997759678736117498348588993008982463118544784224101131019114582133065280581124123005358964903636926524369193640694048651607563283689485719246133771989589253365265257048202672064769802209837141510874808272712145526565400494632261371175565225578557854386204843972745128112469893039538513275572087385861363328451549809991216221760819422983295375288430849748152659895095960317076754986645374137630467832607288385165158982819059836624424098412397675433819956413887733902556191040434070925405873312271951500439073325700740229108927106398570264233945072301662562178032650525080887920390398302390563040930830181301726145707308395001842861952901257381244218064366115969970222769336793770489676516002294892551841716903012990721201296501333506270071422766354974111199921981966469870956664006653242100394714517812910000178032454064536894501473949749005669062242571460680569254946226479467048866362893504625320978470128681090305962783791319601090907816037257598889091566804943193195890596973623783181042943725339610072872574632977674802262448251157855302750058601415419087537221131528876724434954889393712681182357650797573755918622609547587939006855053792263520713017519988485814137391208239095529104948088632077345265344956069737731565388547835754306823098580903306345184634352421193590099177251932732912298929823998480331430713420889867686491831766482764551648509783183127571966685940965467399168666738031142877256054767215666764458975682178499580369793880035091827535854837351023803509660322552556599141555444173691944962156924331126508124794987752339716009896404320451632415661243250145503431660567536064435401981471072977478011550232305077658642923557297979550551397602321950701458779264414739212118715575931178810856734946743677579086970048686007610485539674009396682669252994853769134670998340658310623221364207499710367664880906366581828908867836544765605239961168746643503885454965793933667829994221239057546757896113200214638887514277042848516141037908536267285432992826190091240042693001842308974194723371882770765364599634437675073059724489094684373350253686017508317203951523600178790732272888524363703330044440927812905934536866314147010465934188347468928262998823630130601376692698821779885172124541457337848823038246719166595110517463243127903156087414886070815548311021325401335686854055883431018870889387613937325023408807965938201480483031644811231762015402434502589721776700525987685752911079948876170334681232019932311321928743418466125998701817465611791461186892683702520165299119898887494882924206169649654308944234634175306462620663204127052479046522225947485262988218016651037739152095692571767605139151290790833063089131384670767807136082989918994490539984327494024388971060176275164865432435041746821740477205357907297881903006476217956560515937853174699754367850429962280685938360583506521637181437581203594638980135385789008753863779994425275139716428576455853881509599865425996111121263525218353737540893838299407147671947955656533381033560920916513587960431756452149002108737452194070166079074211714638920928718476016090249231911042267151029060178956746423834095198359114240864264571107074853007624980220673638377984459884147751507162293219203102605005515090769789431943783482112231317197696873083287468383293986801931916537026638200348246498888280099530802191763804197594627304342370504981686266314633138199244995135040933685213264862216626143045638015541670299756701810799145983714301340032034976529521643857783420248049746048135655627876700141167645327657091594698785747109517077561758971954701469140528987623863446660752169184051529203706434167143445810148812459041088366769369630161221404303079623341879278070741455430961219509880330732327122514307467437929490847000111815787217604725628436874440299990349072352336477956148260727543047507338357941695208541185814142116336633188436139304608640443812030500873747407430351981258795565121015437961854018176835163955314297889210979335064421892206382792601708085966151340923101445509598050049709333418260346282226613652457862436893382874818080831166321408860189627933379691796702389260039510884923222262487914699524694482213222071622818763375411744071764408256359777491004984411315866456552169347946993853458952764802986158402264099994210004334206449394164465158608227497279056804659105802319981404181666468971070381589917825990524437941647676653136370381649556880784171970666908881871118929635540970894493508380867208740873858916782805784646387301335632900560817556570518689835182885385581894187618464318855418835322055865514919608401350510913042964386737267017692094625684048216955942243816283631760549072993983829018770713786482195962795827372843849302107651701114120971271895136778113363452251194325640609290920398920303114286931102996162897157416513531226509765663872541502188189457696063382654025201746274843313786593668353589272889441372227122323730318997627121875635903055240593344068040671658854991089223395103185228040031630777931393887881242637399457661735057804548647097133656122691054526803233517094657822351326347119775415664800121647618915383944543827074135711098802738252435819294527063872430289838878623739726994810190995647633987267797438188240786469637206134575020404386514048145408486372294808918749533368453833291856926116001360905269807485077880809719922079054938464491299811604451051248201576813423036975845979313525076499172671897835920462441355835396802043901129880820848792705993984520815145552771604555450916639108614659810109436485529958341589405011322175918918227407885854505737075417198079357657134764225664007855202712359649841814780918524754051782985983587194509009264562032214567936003200980365891403659248029705970423893401417849408983405889420828137541084532719476594015784918087988412786712883469730444534633001134078424469746761005216325231469607461797235227518889113661084728250447333876988089978824961745714326538959319891938094537356200697795660073292073759878773953340122426282463811760466552954932776015165444339879779657596421303648495380297336297340540953656602715666209562420401897254100269030887306885967583236348486080031367493378804698810817924348705558586126044335111341550683472102803886307988424864795993442691070980705308289506513928987245609474089911504991593266076126398135041864212683987924382810639019024427167350764624024576817524129773437704721153408616804178294996765068580625127475299506559532498818661118722169921472095560654755219761455049109990697568423675215339297355971225275715087665659664502719171782052938851093694472103279129972997894959537217965414822046848471079713315292422565810659649076885751212831515757008915688390775159233949705557155439612034287580617518867039830867833408101348168394370339219341974243163346877167554010287905951855469702441074836909988531592235768360501858756785573637458577148410634013348975908777490583345539770579535213590168266477382725085565578135488763598832002785770631642240468395161657169656331177116454122497180862165255308450802635618913260435962920096403238435463721295159475370293413557820560910346503148279361410656603454420828537160023113668131909196410287304920850041743703833744628104646209427769637855809342757875987841833340399660193542026714882612819488625539504381515336088819835281749473542529613052058898947452978981927653623021464927164086320292356592994191752454776144084306022379318567606483039434162187536270414749761396384298639152870831145938517668485369224524791339701856796618981007020472212331804541923079943922150899183397221294664854266918247805798787826538813387791747999298627164543339304246091128474141007611054200897125853667283631486089863434645693410241748675676488649993201676076913951174561630327374498044609078090640304676349444315588698973721502306022408768962808996777200829540097286219693697999085628637818920687343124342519125716658608488533132234261843260558367351735755946247449424091891352020742489171844022318266702073646768610186247364849275801473588812961571164530777730991879061029888628714930204679227525167103708071639439123743167928668219344462247657260407054599859682878959481812296099664498418954355051269746222228405582160178156384893241562942941023547244744065298275956508523080398810417675310953945082956686670098059680397238783071088873099167083990986667030216146571722478408522623333842572081681007339653460321498432069726639309186514925480137010383870547849580569239080907147014680319441188291677410010867607146367034609701658774793861986557251491603212619971997380349016484226754491259673931239799007483105538506866183048290644335568139253044901755675497722458655370131148854521455752765003400128947427422375583403216774265860294150285405959573417873490709801590858265302204657806921368634418238335855058044069078904876946952301682422689530301950384904574094772378584130809424481263867625452617907185667849491594475752589043298597155625391687066405003386911470252752877463230763947736622050212431711197669755407073331126759558114307664350837766138393741882119872814024301959257723399249774565359917373704823455256901746838618160590685025236871722925582045471781431991858074949168211910106141017546675307620289154632134291872260156914532339244678353609292392595631799247736426558854142993028945714297643673232226292360240155503056432028370518644027032070094133089307407897145934113546630626365872857188977005569179639209408954049496757766916683128261519805386857951638874569339612697366987222044985742652078573393450055218249597364838727810394612054451563797961203029165947657469934154327101407474577289265442299660080219143075163201211471223362886891100314198269762081161023720046209913211643260706919886802864097226678090238074035935421449915746197968355714813677142010284368270041034431879942143613811977053870570251577675008745353928774720196545049062159447237705651061967599990856948777593914911594201505099136774196405319122353927497551027522621259329031592920206322743156316398835598947694912780282598450835836799862035335202068546055921678655283576498156695323158588572387298888221915594480378709089164856729907213738605360437121439616910385695176160284757070741220885574454803861554929996011109008952930561509283466502880398315529188908659028176649338550360211301004261404612185620272908635851705705207750060330829518090619335033657336926887231145986400466223734847362980287798810214710192458549374877745311596289792540550178074749196477840674655279039319556581389669254392861168127028607801649247175794769004071383841871022921733518989407640808971431883089221639365968753798701420400378491301275010036189355286464804238014072668778949947024252513956832936672012672774688760322848694287301349973554634498410829039902461431124852884825552468148762739942714989089896406588465382777488201549894005594865085108465819786193302486083380072550353705752672616262712089574838570781071679039632140611479857589273165206651387414183990141524080694271641531248414657507367162101437285661506728048482094590121411539705704846221539045505320545140864908348169336750662852070850447616870476424706292519842182340567119317597738507121384356616120054129148709109996813318550345675525027394805609455333324261650049742736992368959557120323458164445061839809446368120108418926213314665672159947081981768665914883268231854601655417288345341670449309166374846568976763423120189832643839103418758413624196745799464920222197983459305656369275684935977767109310304141130731253956424863850145550075794360426654494747022596898510266337438301815326070463610412035069829100774024752336575842434925980678196106766125498936694745793203834801189180462399344020486054740053972919887064890835327384625425978152377016539340906639616141813699362622724220637338198430677526480387417719061345607086951288294213418894326141155983741984309650618079924824859955747397586597917835001625124791176820566112456878979546722894411612072462218215036111871960386759404634081534052093195489945280136392392045582070502328159177110790863859943266252683370835162218627906963513461000189272878972239673342112248855253794962334805017456457141696886360100538717492882149746928962534740324906591107947746995501662902714298465088391795743901191544231663338727905054893157337140084303338771179398455028810515225387855858852767867246546822526013941421263800251511052536202028508833681167117913145351827458269079362143382873636714785502540618315074263817135131076739357650065187225796621355848452519981400465049664429369446264325353422704810873584386515316574783693494381756184393891019209933920793591730235133613433361740937889433243636766210205752064049860033947626117730659790071733843508611904667283091919140548761824903540960361117175873842829531071297887413006781572900718720285253473736830526838820885190065288899206711414175614821804859030161269936302200424573036545063083444521271814048110646265502183349180872813431700059389454647778071780075541159447956636875231302809685638497664674164239794038097802400682239304397514877618551014680749244431304936842402797966380697010721859444694667569526315883828526261340027805651395416472679784720187392873431743195634271468612868703186802680513077833113336497051424345861943399376038313489195361652219857173400602626816423331526275325615269986604467428210001630787133567564176057061036539724403434996407552391445970004248827807009018247852047697306068182728689501112304020259654646391688265344062451389438008685826309926370738304783630389808601099489941257512561401534463844237087490956244130195998756389104652096675458776600865903952152693072494759346376552499957398136870468238357822213502275156277174392239955413454901430780658888714513281337076148502576852323638293314742805966880964620998422476207439426900279429172375897478932798562424729659085321594720533236949043402796626630740273131643223047124289657816081090460225680448819724706799349489374391507550517355788273674663011336512806280676387389443510734047785428449458103240215302688926709289273432162228866530807917255253664825319222486046719040118814979669189723839048992144990637834224725829744875713871639376603835319582212583899500531756700955293648507888404290003623246079851080944704118776696569852700224236542148408230742496591289909650888536308725432732151415989181628756781130705162568510558151267135934483217802678350896047258005426171033289518836389103244737167483205917873365096282974559694346240925565281665664281336902593075874044002346731373767779248672610262584036880816938609418304354216051232899431137753391065117317425791903877442755577466603040662009904063042605149202987043184601327389509099815270306433694469041004457120223545117101132875640395937024233171029839349008207273903649597967324607011744165743432549961178069176467596474687979151557278151624730605833452636485128981677846980881899113210039395551118696836023267657819460839277758877356094075598291775428086114543301395004552465512429100491137288596606867189535571189037333006490897568335165004948243750201336851572849963696746425914953603739411549609823443143510932022180970935978032954975959889508110435013606216420030405425352518200915587623321754421758808594192994016616000363439101534009403986138161418529659189582746862217600400754022405234914487411541445060350425636232969603659720823649255942147652077137457479512200232533075772735440666725460638556600200246857044600372754039232960874325328139244892759626369997460819803076121586944368125434647600582345170986588687578964346022705480070837900413305141721926594157615687911501913402974858505171486081731560973989818711788963997543859385148127122856592027869352860760961001450046862821433081002880034237990803160388504060829762941823082783808603522724981023677059060464634773095240249025118717986424339190253045895732039085850787195225501777037652162664218528198174050734002666372515280934052081167101126969867793722598569334951943269320125902423076518277713527188447253277802055114483586444782301154711844183522932511493257269886174912260328402072777884330020182435128895262643485040180117669218940030138462303925595731289815372438169530773158947855646025489012335984452603058421107836641770498438042272775618146361497082205297894046841964210519595297634427944938008762375274587365404368603239256812039681539780620318441175173406354964644946886431290056599239710398026055271913444121764931576701250232821586829133991709434721860199061499472704193722324481136577736478433420225999696279855298823483581345198218142567592434988631331576435549852201618747009448486245729014154559189488870773043749586720792483838574340109825006289616607997109441836998747844395676792923888624160244369027154652760022493934903690547167448296577083073924210015283272337960935692399033882446560129800791917643031420219423739939643744425088139872031104733044683994406298819697937197577353254193649997033298030950573019449051768134116524453593299051529119861470957035374526557874245185688896013513044654670270758809946090330183569536601327917187944495410156034369228648022224704476758696090322096842256361340563483682971743439491345035015456271211307069128196826386733221318404444149770373845094446175483054536899360682058038898772474119523892924216374678456249854279850314493299533158554300276671540262962651669580914607881017471430699174419986584732904016553566585762630805024149558847753348985236467223893416365653247943645100590252258632136464125849984679616184355234035232472111052122663609157360271302132944820897661410378070919365580262218178495712207585119042287800087459286773627633230096904378031370895252076667175727182998614393655511837166922372541946679808216666811103956604393375037280755451484806816604367467894326404537115665863750531512081271327549205306822200052569298501430885879183833858882722616677568345546004203873216650375630854083599997383442031879253515109883833853900329096587405487398852972968379972293660129231230716020550973393093605034590395514435053077998616792471614432707476245085130197897386992709933257895246455475067636682646452715255225433388053548362739162623925296676645875489467344757727335601383827372900539389665659223059857104848277439804972058382111553820098920966136946893177199111474717037337482698105962706129131399606088218772148525578898249605715119740995507139928669201545658383431014260308085868849327192298415895092643571831409247104705184512875869988410928735902874312039343762798516411032441226292631100110969149554450309453357692140980331567654806421257727767562525366210180850636818295792871608398234021472035362598206364552008523128058003267168668344815110463737048499734839907210272119035800884324222116433444508002259779528179717226997323743864517946984457648063948949183343852518042878693263275290244789047593794042859845274992227797210002389112154893838239138287298993173119476173906115044782792876911023764755025225717321948181473706301308841788981959816299954108339024441069270673759595699711953593093849611028657407650636769449089301855864987037289727234334572249278915326092232477022877262964249176980803027823621723937988540050362571554887536100890114568649828243767815051248282055049206761472527146521896630049688579599767752259397406030511028985803962621881971282170519263223089517468158647724940066347625239985417319602616103692419571597760197169490239932872743974658804365659364968801685286397751552247599976494185950268040500640969843511307379711044119791800574646549307802152125298100873140604694735659064689241814839126360000736247105564819825893808874576453627742993768135876541917973572296127000892968471369649368367896352518230389131039926337585965257961649644990890955243550865890255302785990775532590127306002355311241372288339546404865777833161576829861517865092413747423720887013088054395225927885302394309216595649098407706095942612962824796778811133533262952874797540987883556678790042919545157674414867840448236392233509566007275479391401697107231858244127989233882002377940639757536572516250133516367264435915977475061192571301623009093734510047452761801638070967737009437680596671422941358960082475538324597480393206079604490501769207058512367261984589568309379680625434025095746216595188797550577965491955049492867123325133755673871605735638002894299024885121880124056867923618924755604824874955328263873146464164205988538514774334331725912973171197400042649872224381061421103274992413637133754743240629667251815657913864370256202430396479048900504429852624465756623621882085409494236850573272737762283655293864213194617852606260499906254796884745853044130593739472779307753507819355762734410692155894072757362859694496638890921585132706101710614979762053857085281209575276329498576677719475935215242167687786817343705567423740243650963517997153302057143111464013586402829024515173261076716920225250063376243107416178747624311018029013318097223112382400446652702557913433386482338478240836415091426303214665547366175962561696659433120665985127670461450435565056763231927238034514025354212809618536406586065956865009005429840500460935485306206267704765845643230355579621397040128414507155132958915455166928658278389403391529922388233290253888572605849243307420504807749658189661060918105854541979324802037965568280399926145969205463805877136490314877440480911274281654824191745721110244974231615616924754790847307516632660981952379567646387678825343150882208179566747714706801635105964756831889832497120460920855699713375741446504693478302243271003842147687932214248571356564628340103242412826327654208160894480701691549541907889908583899738707067015416665338419583507169714519341920374457438205104077772973273608393241637456285892241337653863674955049543056637708434508365177004646646381532867444822629049601846860503688344077608448239700256776213235721377269139239309592523794220566769837043926078903482673734754528332857659917761012569555350192620551799398021571031241431145302306985898701030358942128852315150644414206528495349362202442156032850944544546287414074018450857333734350776305942612250192525532512991863421476582140383079795273873761052730263924182242641542150906460098831844152564307260014686146011619491302403669382475017141894225920208067077454915759538454237813886087021786642478602868245538257060700785282733222651056334456649087436158229522645069096083169561726052652534915020704138021903400570178831183123741998178687238825101059747512023490654168401573350143178373352481938619828717997108611704819560792586428195619770249670042110009538004738803920047245467873090629279686005426820228388866840290831335207688650527791865629012892131240315114784046500075712617797115876960036259178899584553203528776418478397863166507073750966908836131673914766831068048300176113605941255839026184975476669621728534035859219034523767151164313372600671055941435933213580593431965154632317833809081857823319571680232256364543546573965389158512696172683566529545299336653616507398029873401838864612441636517466666989389248273782645426314272038650117553097076155873345431026760891681516242126487058077506359278820073571778056908881607984334565970610092424036098417826254172021527883071915797667428851450587738133761448400083912643956891713569322761335281604797325611648002436478133941949391998144463450338977304830790172218978761141526758491378276713640481452224170097638024592754166726985901420341115880451518379364707694489921651958233263828168333632551302342635169444008445773426489193207412771550956432261038689103857009585219216284841848988273268655470423667527507529843122908730541983950440894202141667808219680982797670774928984971242388093354144951082942562973278266923004101161806478685421633930127455892232424786749160761576954116883021345421715965846090848019719649487228542292491332269577189910652192682352097342852936279886092116791707629485847496149978359834308720070047710218568974412617231091035586226249946839024978024823106107738908043031729059847704522430321003304957569659557590980897187735513274829633988645718778469106403556448961252735144868231053002778188431067681436348836868815197935919480586451837858659731027120780587817682834764220458041748546527255792593212754220935506709152174607418634501047954448472804322875904278532798925864532242985233863325720785494344100713049181600750957198178380956000287475827557145959121423798241034420119904298000834846679847791736676339167559812330736044998178330002714620794715396260742401905177826968287930733427372635545596820513214757796885165521578563821506100375744210687869817590879723105471878597945093416353173097134275573684804654936846085893279519387805483535183845795512788897107538526481259181979522714467314889783066814412948090438764754172032883679315394873192784282061408378211112385518592573720264234464661698520633845340600855266871699988254685318368450116433542242467663197456134600849630856057453735903033205858460474211719831580072893001356115756207174231489330479644746806496381293164292352358113902966994946800145068838572950498800317429475562367674376499424361295901887816363422319493407258497317389718473874274935509850647269696844126520678050219420428761073628889385885038732456855643881657884628098866182032035782303338009930591300723334132345096025973746052004357099860029814550957846283200151357359254602735159675644163653011226471278640324482400773799691764665060238733966563567934039835656807221965404885119322488205427980912971100770045002277546120661716691559139809765659822716963173713238023308189464381281348664524959954457359960273403749531981034137354585996149549836091761262853953078738457075946329303714882251930381717511543835002670899582654526381103725254887743926013540602522145491981699579873716453513255099052087967799440782253080775816995602711127758544868440276052939451428880029095380284854110122615778414915814077499984149629224019889130831785966691538822900994694745024784490257136735697263979283040328606345468198590148086774140892108904010576575031104192216149418743145878476136714773918305353143832266954538329922394045613360601782141188650929220792949664091216003590511538805649216270544641912365189082065327758919973892229390120026823222236977367233003938217236746530526507439140683094747321260320884009899014802678019948268585535148065705391400576934547136732038757724513069759606056795390037265846113845113230645833725058053167934472599430552175008531778636339819472177438498394166462144855051887706616890278874741977750727859461678481964887923839242970123021952643848769171169294191367645398975302213189442746898644511952336113580869952565738499513227234485893231138679783119517843877135064823078704829980344715507014188205310414266822948160081609502468235978893323946769501559475750223592602042472263849410031136704409745365861030801205930892752761072852639425752928436218637764253542781899306480066569636727516169718199072260193757116892594797447612487628882179865013674750750063832347988396497740048841235756668657161421583110847360913934500027320051307981281570222561690655268330308366563814134700708194221664848221041593434919082040564085952240388003780734926165030023171799931482592911800377474465950156593998138623869286906265238206123362367459640720983507701108299079028069034109175096357314561823190444770495486618716069228030350137359522412331696418348799080748080408689982217275513161958780967752165398983096203489409368385653942119612308102110347105174241643465517192077927713852950602675186424396926553672334478410068145595114903678283881757053538003894600276907056312702323014141306631680174679733509725414626095995788159410727806596654228530160830980948279808777995415133063418519778723030126639225399955941394962110041954607825206744250803288180503393892187565244451699554137647784167163730755847972338659392635224018226080316927670846826907128840619197491176562869996908497073082337564779768748466753052691929850792803668182143767960730508738080830144642975982541700786439730496108341861969661959632201840359163563411843581859820514136319153091251744066240493909245135885190762706889366270990559464689376680069204682836304625016402102743791785448024851286182161251211457000357346740692536790368909502592398915481716225418252452080600390600406155405892907732068730958006174997192036471209788419244666709204449749874824088659052669358894877525751640135436742379201453072202353576834544681206865951393272635592769965995737774411037909107156835865846562208586210713954935453912256732806295275190075494090489639438880642545570726221159363124394916459725649101842575408220047228888466345128030448319017840074011676477395615436471395235581999769359010841775219733620308326257616596841193661458533114207532119529276697170420670518598424997628346041231639081227908900560239147276254723044656137389193482911984549306094462945096159115367552528626105912712122041446841774978186305011129740039411193508189083573332905511440743044446758533039081986774585870646675310587332044486643819547370848098401901457110801511114446629507460652330517345945257725758930786370071957679284954220239137265682599318384963573717455405038735780540832235428668250983407424619172124106592840528111662009232829603017213638492851047735852983920870989263169843588574220637445799561054144370524882233580267567460992544022776840093593181777507857673345320731185308379736957382024604745009604524055600641568355404686418106415591598692574489030347146086368684207141529519539968886399441629850126219826547899506312921479605647184999313392444952972883378335522530665608113911155759997907138289241837357409051932411808327532105758344340786287664294881133595300781151425957827964092837812763167468852532329802856792473204532093854210158071474018094794611604862776786734377575114375923330492549945720627684233643946932701733610844401875653569316078803127015677432921109546037466986463058964329961957990839163885107358365539735868580394756294040228635209634721703945047038525710853133624475454200105259671217835787463335941659232356257039331280188197993487698085088538737901567888592495993380410450709566819780689097913047531270144691199081713805793823536727157978743995647891549064076938192367836672321819058213639903497314398119674217404866069196506586883151348340187681346790426439557385900654837580715281812895107414409604501704396548535905382780434813583077244516003786097373743147217940264953077294295524732164285858641931339046225557314287679022533447878688563797709322070475438244713707210817280726216192203451676638569854214600293710661317844674349494603427459097077940257119887375313991238132600095632063682362858307898741532274462127591793546312149215856310068890958077806059372828374066045173381475694066896879074464372890324045717468931622799152607670087495794636552981080060563205359323461491322115081869171155006556665547745497875592906074227619249013128677758013421084016288308729212261577650952210150804466374403297822650479584839492908809137834911052701891586665978153952243363020381943077972210074929529190141757752516992977147935001371899644889115206473629667612182183930848992602460041899154669973852196756729309643421698898063419295331116601520268906755263925108101725929474115970572467020836237914457657307631055046947966134150629498747616641845707823855574370474740572018709533927231232500033657654418215016266023517184726721533121075096401585101898137749142654529986669208708890369491023049304630341750898351467990256972876511504451026758356083496277333454143953879619686112286271837770262649999543789756618638452242447394924921505485101221670755524051021038733002845936131845844278673382314261769735636427084212028318843673819283471319508717312219101203167211411093958999228846748017416567609937878196877076344759701878701153635070426806203432221962481896791090562799268720631573443595078978529230696719511043330556678384953840961252779583891054879684848620867971749300845214435942534620011241084266566758689780827762768401346982941929580203305740047491397897105912264221040732557891314047746709521633731095467107147882434746973225362089718434140168951520932937289579617990097453132280763181828994331896956895304723703995389058396574835501508194701003364946075415680939094827544998118100311514311243716206028508211677160529015030383998177874986196350048908052208969068279491550381572239746651144204071213280056065362446019685738573258138094507943474066036054359116810385474554139010052108568269641743645926975730111231427615691640643829304144191258097001501476260450843029947397770443406025584831551837098621043718244490932449990941239696807273557499097475439290255798479709348219032808505910233185056595885693410369752178796616771042304942352351086300728128713214793278040206646142623007856140840325983489255712085118985382238513620972879195187746506418610105011000152392140198811550103331906715391496612736381353490620189880118606264888141694352927513020120744485069394971565696370052810443645796540085580441624842571854483720866433386657525228581094828921725783915819147691364603268447620225583378843070662682013656256706042916609673993739633372559817540236901883535300799015939672492877457231001781338885062942677684523610642620854720708060536737626847668768462104365662552545771558209684895512560427094838699004537060236388671367910424911491996301475646726002794069393629208526804159391655694283101370172150024613412555388032120174802466199405716025981142053849733099095858647713112190057785168213546567692543695868395539592269791198151056786242787386355969635159652578010088777516139485947653028933659176240229706578369853607110049534756757228407933874696396982052754885413863809128046556795786738024779624558074935723887491817201030089198899323795339275624929514306391754175652362056553753374784035475143499180169624212773057517531727140899284179971054379976646930483998576569703889161802688948286649839647382240305236838578791765498736162847160152275110555356422709303412906341214050374706538761104405763127767768795582839693606879749299247305575701450712864877603721671366639964795168121815089563593221450808534862645244138042319376365335527483533321558341288886647780139622494602435843022305917574155275447784716651515806015968314346993860224116703396103314344414215237812127052900415296832835814274572054807634173997685403211427870270994658214566961420493586005178320307495998499945367759639015443329837295987702158798404530424172368853956543113249128001668861432133590181459881534511564969308722687998154401637903625847449402767622314058383024632327835558970491228763755160993522863875948264709234548966040439552829693496327329619453926341254044358306491272796994144257715378660212159628384800807764860068442119512842811118606563381627587966850467909393030243819414713450444610996238141708045889385979634382447612009431475013914511029035345846423398665337750340328875117844562170190700826875371234894254845267952905967289911416216871720725278954130366253131216168718400290849140108824741929033100395853328090305689816195958414640350088183835447766161764083433565762829160365278550533429201734442399991298215606563923309683123260611349847459047534817572479352289989350094349507539637348289115471101729844079071163848822988417921854283174985756016443562226461225946402830864776638735945988424504709908678771675009139300382117519811184256499449961925019393804725337399459333773125252463064043429925100636277264404252212933536398388871255865028214839351953782912192325132955047942707747981757306909813981758364267491567563803402416350300899745884664455951052637730388753348734402177258548165703260033562049041773557909734759843947599584542976546367412107535150701385121261710170943881638681800325344560780113893154572325876316875914141839336568222962466009146205514597833791156464792666354362782330254858219782070997473109160351106470097487400073152228766473962912778621844683555002020430719142007284627901831863978702570277226878239103697244548641105888916691110592202944493294362703541330988052688008793461709563048460288276601190708940730028200664359866943099128838669523792986662817889842726970488860447376760942026153771779179096775127871974710440809155990679190772341720808085990428600454545675142277138473782341100531182443063238871528440862687566050697234784773621962023765844110337215904381189469829313069286115985645313989313994899983340440092422837912517555217462189128760513946898847267718746650478527066436257483191690849153712588054145403632674786953964910372400574613022029319950310198775060288023797500255215749964464245334988591590936954395808452804500493663983056378225410562624168321730113237466365081832155139049801939199625148203485233603520297989224377311115009165857010326003536444475177424698915893573470565875149762563268039695816969490397599461063976343230542272130876246685734670460622349378419919838013099392802365227419198605426424971179228205037053758742713666727148553094608077962908093583854654683498403635552168457034303500634102350285348776635304712506884408723266759056557933478459113321260789019286980993596367757831289572697042883799355130392695124058919984490604631927762990564603947687565277618898780750820211548536425379197075472907112634428136059928119173570992152555519802760560371809051890207185773505552327139139625015942725393023718644501766178359500536742452835334629660040084680727285331808352724863433160206496873873921616095592777074720918638361912857557193948445722793390984130659405999651263847999733328982724471352363001173194587972985469557496641486067831936412121572645340765807066896025318540147824874797280631201916673807223776392087232475421013217402193170524688311956613036567070305219123786177939256907627223847705052392706222283749423814306103440377982382108877414396313901510708203127545660795464337135345992806287196946972555924876234056085997602542338053560291986990956076137368277070442866704641224740569967492098598383612829365067744980245221678095700993792811010739323086789354647755651487750747946650087569269504913255612642806005988394995155162576408277981605727557443961201814749780045132178212978637437510997476733763131344406693221698979064814152245960579603637492938539058045809826035568195289395221669574156422043036643722991469676043864419421301367590016932422693491304924670270778248184552311346110345348927331506000123028538334230363824715502555136874563216693665604441464245556981823192741194508279688704694176702966019507450249851652980618680546381347525143843327899199609271085812200893576622256979935986992214992546471768210127651995959782470050142217475458619429603923945909288284181468774841913614189873828126483553432410169649346552629534556346170833510950168069402286750567763445714741321777516730620778218770649224444752082800098342557045778491919168841767717868863033212689549197645739407537009883714004870254292603296387792875437706956043733999010029485263815003262899728551130103698581932674488505222842191805455408227747527607465389890506437479816983471777490761037600628289061945763967812992880200275967294498615477065204732195418902967085837806056950268859915202286168317793181381113370084664828231642940194035016674892993924087057564794251319995861278330973526538433593841675247530968424697781918624343771115599252828273132951369787821407425451631268645232757808217439154214688943590977318156580220579640441942122537014799189278853790337774328734095511741378352019197915279650013938688485569374748216129271672957278563847386324693858405292467490402241343895188323801079314601834291621633196573700159794273900450006384165131451765590859700264700322130221985224974139157795298792909634972898511760181137446922094253103131383449613559931817883544164714503878554716659769824672479744031166060619891225041569090447646624571283638206166742756470277596897462784181051476701358042590385753062036572937840164916694827135928569273543067691788670004922027323162640407025502795620934962162273386194868110608449358956017870858831338441728876389093153740724000728025325627642840264865650196869797443042592258495804741792279253400552524744950234083926561723909309423006093663032348020210867886808965918168479273683301432714695684457049365421273852364197627489417603760297520161535938944876220235739135468342725946282950905765143194209595516072612741353598331918412357841964213428872566873897084383114104658560037688220324630865651541079929646904657770652379505345960246149402061560544843064378729945258226263609197006342345695812108101880429485136828673985213253451985198680652792016175389656184118252242529689346349832387862657383224882146718221239216145216332527567001704289399052465482587785124125185612578868945553166549754643047535031903559023214381285817927533984012460823890717054605835960586771990218346528305718682775107625066537094529888302119627302931858892708475701485689985296650573384710386205996389432094133595779644769922141537865511246485379439254073621927524684823828499731257186457655515086958241513497981570174378273366379934306509060649809298386303335394250218225663812732097435466224458876434994073553886358770672063368111132294229836540526882156127024596288572354826421831454614331912545833118125597914736484012914686221986737581897719518823278520809332782805285034388138019528455465051393246902691156026768435854439350762856672612665083945358983093208037001078932436582915508013223812988714648091356440292471252441002452525445080232461578220635868716711055693285438016246834619674923755227751310510012677605764387991571994859706517602138914640631735022338464345839483543502798190272879730320285084688401987594987037814617966864628754667039989630424833422549049244670132939247258323623153119971239894462176588427193382546662161038214006990230277426443857141757458794397897959481580497290597777262187482791915421390156710404249879603838398730807155042530393201138172623366914341884766267550325863449267294163554406164160581260068978504890246540953673844850804419948123152264377783589280107705287235798131917642254407902629775223299431624405682282404897958586204209590301675307700984125504143951737057720575555081755126017901812007351334177237247622081200086044079512395142659896434037642450608295996661560889038571068464029141271737657151348879446426891076941089531011909992999563093090503522277723326291470140178644514635311873837849554388250085692730878394745287492017688644731178310411019916006314988189299906101527781687084216213818395570791840511980675977695998753137757726887891088645916544689831334742354792980519109215146830716323855351038727187544676708295297490534595376525931925165945147933685063816797347866368832707895439596677298327096680062790539599982945777316823832607388018065410251461721628867883587066190936772979664222559336908245867103212145301576140656384883204620465511573100331062717763663272535510511401137294797424234179965953734894214214002365844081133883197617525505890092454531377560588422476286523876062724699030212670470780945124147162949557027040189986666320179842300550700844075332796256999177187654265257033125495139708649447191452729448830509460184152955625147404095257980099014633837977690212939408531024885615673506063386349236844895075282334010075202582830620711371905942678155214109218605705420961030713293725553682257947355874625677765164533109298228760283792259302513185165813377060520921086575617430123342890846992234973515116314217452542671397892480500251722320908212457411077611635359168604652376411852083104556005139095894987309707087231114254702312167332038108548092017873914879344888372685456892148778303900165477417622812605807283554153313690079313963000637697020076253505072612334415101114280709368194022369899913082474246540127019401132229999320483328746713553834945796358368992886232904397225844938171077259058039497162595066369160424288128254838697159665305547425435455973433201650174716942614086413803804665953223880609959689304939813989144177810804401776804126311873070380328407813651523786595055100874035838497378172321001662305272199478799074360574231409928334586615303026591088028489438826271928605926885462526118115065543143918604738638320149520141992401651017397674092260432548429456592585817768997716520267498641989074933642588243030082299140884230370334920003210947642357493708251538835961285540285715119996841213095132976010606223844678533043036052833245947715175211091321846929689013599203990675174666377175408931626352691592231667585283815133095733518294423401948575999288757158961137352500733529944686451772778107293555066200111662786406845834742122015354618427456277813956310035038009018522203997262759054682726991437536006586551263453165342239940332569876199032700182932290453802164698053155309882953376189673095344571303771285992545818022726137465569058225957869209898046116740093917323357544514241815594279041648405012175275111622248413764879395289487689110620834678757632368819950650817234936818500492013953969311504508406318331697956500115163300837827110749772860464151933114977718620058172118357176588916463557018448873306567412167110459918528506122196801107322548295187740766699796023038472007253327600594678695267905143195257354771411115730628379487172387990101107371970337951113879024422857661195134709382405516867298698709458855280989655509050058394797768163621359958964546693677411679523655933019625431714598281637637734830415853528871062820092867345131786705790558624228776977038033586718966440076045210507780109026374014363278004628628932431216984895696926812699655700961162978104880833322640115844498657886919891551164987759500820116547107949547616272535974431406989501434791552148701805244068880531824450548615105575082458334830601530515271410340134615871762049327376822811793638223772636769508996060057645760743490838086724953303401193647364221640318773501742628383091816033713053081947005481456663342292943943791296136117974299795978982220183820433937515139008187956757808498819671169957798148004686111102029985597696284193886876123274515246277330804465733695463654938404008197776097066391323765425391868682035668542766193268439028859199678814724835023195058877475641591064189912406912530941631256195410954353088146423434083316097049504493098116735398312937355393411873200886708671067629280266231313666098383643075615682433710032476128660874213918935675213059506263362049826465500820665018774633318404810965372693993549925084609322236389181879005872492386107832157797902600355622266439172544446062893294594542958310015673005507543724742621184651637120770245996827747589021270774608232810877746564376220508922117628625949233373223067991761502464359913563816206074085843974251331593898633831027241143850753208053897338011591250879562340729139453038627070681780146819477240289396172216441758486302045164887958376109298506760537167764010412278781795500182331972605746176118837794684547320398918381170197786622080801810164834714314032925450314249522008211143307446640136242253192598750915751217391324329653494012095392865347084631588215049551680144287064948483156384372726304816947957920355668445778638297228895353441185206100695450417704454744925970866988636099344700619938864727344992791272223165852836232925364825934210735524995285484423127322046747107806424366995842385286374322732442018283439734000322418590192380305900587222928961055149938830614135006493691047390212915439774945360510806487208013119049022311070723077062428339195289372209114877839087904495963152229896827082205304896560163959455860755352222215957383495960928649204136611204987681652094163269125894048452822290360702772755091042347607151026084703720499533073566165201608031588356387962243120890070941921734504778787740940714687067922594259052275181809492822953318214890404208439333772858902536650842632772581439486019593764875492447115208596616658830859553361607170585204247977505790595212049489913462737333935179735374909554018050208624252947155610087991541470696535457299922407093258038425538974677635148089518769883646358942549428422073120364510050271607803983361317000227633573220580504720999012877768935337598574166458520076392168780485736753929495033840982293979706583142555539282959192296980687772279663972939077790821785173247610873556418967084941823230292691324944913403757697788000085212068994885195011870424308197047767765647705166600738206498848571710483227234571192591806527116704896922909858075153627517095505284290392243650048248807448131857436465669844521805366646754837987356791642201329619035170864147973371577541061516174240444957995803155611157910308731347209903530189499946582192992196477105688228298614101420194639054232858443817124083633226562432512383859477635673012067644108501475398144634285931049496869363826400464162596469514903196111048544775919170658439270676024003114521271764708333200941756887387594777063240998092068463053477433241945220021763000466228202380827780419779493389391889852244085506866690987261509993432755942195136148946032754854002824746381855743038672248481457120412894022001415268847709624612221149992288764391919108994000764500426736360335956446442708189785274177077451339584095760446211432765598925712124640704976060688947521778888467536577313088848317041308470830281177925946670120877184128659419901877875096320028110237551436356123048655461532988282999046174517748581477601231334341731387710905577093670657365502031757900430672293031445024199197742809676221242519928632740258370400752972817435480410639345063732675068434688183887483323541121663418804241233034034909675779416537790841258687982886103235278857332155338151988305880458531534690431308980963694066418137041548593149666711598130899440825457153552300652508228496172872396746508251900453245582357486877200667479497121636028208523543027838653611711245321486487942413213317008523154337277460768066376699618895122880491089111765955157364984738860695247166847523751446415213365489246727612258539361484165143858186917384167543482781317663142911693785564618171660966340291272053653025444763830653355045114641522470865121213129009990019681516959215243039102294969643906355219906513943216303653453974715157350144591560970031479537382507222864326791180222854544505100668683826497290748132584808710208874950514269642937392581367718416906545215610876157378020535279580044684913613691746825371728035367843503618901245777758338646770048718755154181150371412945491142726968772088619529031100065214806047938943042612112504746362225675393476819222219200635168766825821506827988016073570611080555786168670494748640420270006144009779441876147854976458239562498054449551257091064027083239081446009251177787652063803937135711764476329221621412656483739471074513229050737205542332620863523012111923009932821647536436923790632503356825313554330347896291533044923115380919957555329449870528019033511674075276366559814722061218043857300307297879217356850001256233180674259887240109968969813852397306191955928336948611903239492535944158365958161383912185411951519926550704372224511063367126689625672758667738823879079133645093865117220139628594478654429621832667845170020278188419240093649036627235744372874485633108728789584584823525082015627422079239220339204508281946226152918446070619758228521338779696323678640133130410995564537477406457775768490351379167325321826500440150064624163640463117827796605357566760371613744202669161721891429916392304849738254289422199854547868948256705457712083060696640151754701139843828993193363522888572981154828691359603242851163621922207667981900638840484271526086590715537049718593352260571181041504579347353963276399887232560636896084103154413642148782611928541838499574304427686838514591491891874240066190283144798592264459633479953102863027801831150089300076576280887077688855667113610618616899624996387993702911361950062155095910026639429805842317789649650662756529783441514973388255236336446520362201321628032135004936195975070269172783237013837157643230288810132963328739382457387462450968950822383308441761924084760510272468601914474303915108037774819238710529112795905517498822939075512744080364169328292125537800884919287028546754254666973573970536536245400722239895620130676048113391563497277605671449640906404511480948248685117962164044280689719576297535622361816888500272856943365288001318441212141123898385195278511948146790166528406883821869586830661295903977459905614870361228980984113820061585914247128622986004171890645301008203279408858038576089051226987600864246064826948504861862965172218487518355652881466312752376870674667526917244167297354569567331667718492843943138599577385048506109731380578292094499444632394306068759581190038602619049210983987196993364746331140662945111471520556948040279873582430918597382639771340411416016623775269357722361477563479055527521664824146099814862813287663118752410741743298743627538504577774254205757662739315698404385677291438378359018235173687708804803437428632366590745228853952283577868134721953766050084686198962633005033093604099782229148151475257718379528138489156804919218123836041227135829611649724710802612545920595248651142278339115649754666274486718521875618162947119647138066877715360854178694183861466074853653955258090169662377800006558368188471976982444587322984453088699029933788779526571972808991597939419343675227186634378290793682444032062463960186699049723190315024362504081305535338306531610923789527333914369792593690728697404262340424758703379170022149258343524101571864539834784545175892241236136735291362601712155441084930332164423007596971105885469586957117263203798513719294014487119501537158791633212538307938969441274689227398610118372085142869319715028646909873284817207387381520159116379451230101019666620364454129562919035548105191253438713160015241247855045224548041708580097441643608403759638018838607489535266269503532816480968167944880176159399293563064314571114835166747565462775942167253782296133795200482904228816599956705076073487042908590849968490952949104632685176365224631701348799893768877984209294851296278523015988301533612683429917766146392549477051930205003105560549367763391632839538955788699776971431354461013249618901917057012018206670211657766541460513685343451173302843741097526751835575924718515188909168989486576041645332124170280811484675907730132725479460941550972867896718796180122044335029687962196440483278863799604098388253629382303958396983739496101712358218421774397427036469112581075159452663554646751436788687978229022955994771576430671265259718556151103574766104209641784124768301584033979360112118781120082317450371407570040927108374354010891993459498375670612740971769921395411095210125083981365495620451502436684311339897385873611306512474524232154257150917098311414008602648905393707127744124406690768316708542405730036117869052432320544268235686500327030306501507748047387002402672924144800205153067732701911145489873963492924892062897129047830449268538002831487535810599705614838069273730096866109888637890295573247377321839296823726596409999947667955760530718216186939459927781644525369696581224500935645899443219172791686763985578925399696609882487227058690249200178490271214863539553280594682884699335785668968529914380341052833693838980810654163125074949460944740888646908365216571068529029379011400101710418758204392619824337261561113568584173076286520631003127497144699781910388199260901664617975406910297256584746904507192524494658335276417463995178861690567326593163341245854517825808244900718850178514288717667208311599555929267262117825611904459506934896175722832507114752044127677657505086893670980336668678679866809585451635645045670009828213046712442375802553358494967834550276310756161856761102420062290862217868011243459156477566136273107961732523468140907001105009794586345724419026620057736717904612327442085379760972626868770094642272586850071636459572360638163384749434997520654319048826875825350515691074271345868417945695582717709802752816862020313195443597491646865492287630804666214313185341739865035226451902580545172423793197133547989443130184302401189808568284287635611511359254505175900660902931753419723703731662676310455267705728410826619539539676802350046763923223819889539040992691678591566892197646205371386957697999908884131768915113743462702375576135602359532129295133933068804106622580955975301522759071143072612099804061120495954470252902245829810326046036661079078461456247718072122094537822437960892084783698815339985784383584762331111455294499316358956545170743494100864563756823652452255289027971719998672996381621378347132538829807661287146255347835297146301393797884322985295845439519676803864770811999621581708094439895803825070711358270798334780985661030080924836334010664378517170500867285605725665824900630381665925027603594014207243253350329071534064372099104955441721929617285189318787667540913587710997530683942283296170848065834349711181400922782530261593481394755173603558408942664474933095846199862068129248429990069049530956019916735927003422770580777725794298919248350750002625357538268748323634227672480871144139303257644516263630141577372991358552647618310615475055054350039788791534532770215960445663570306770661001920179321401714796971673846973333970705605859892283092531295264942795361836760792879940177086017608475303934791124788612396945329823362750327417646243217820505863121003280810253530905228112133576906734827893771929083668640350282799470624862476886704402085953853472413704692825937227528959641559749916775787268700961437933909121938699113630197318971094560373016111097666244244001817806505557246233985925686553861168261270433407009518008868971398949213194807654561609544651226431496693496974361698396168741124092692508791649510122518675248363561605712348638468927964566676498484647671650465612669908654854037052810502823254158231964824582861497900418034575969586571657893599120269240475446862562656707144162771143207057262320457058642548648538642871832592358827210050178192591032186210252542906106419649321973848229246721450880276773631002510614658987528184567259205007900609926331793502930263391497547899805591598387407228201211160318474460731309264223605720140683187407414368473566930281385968449636781635546690457525318548265991161791886475069922132683880788802178150798752627095916528280767673143687407626055402771583328466679056225244150316045686489418112599997950353070728399541880040621837690405286046378220683553744365548569477836150626359899363478702790903099746277218424110017648215901270567118208766878227576467699428541130542428469796771293655637190811243475249918894104423899887655814909816313382834439867883056142206994865643705634568169510209714342381265370529023114891741626975984689067549381513688231255317855349374611505045803566781944318476851348291726795304651549598075641168998237936862654522544768231938216555988168975654498984722336080402362152126378985700273204797098350733847558808852656004601113636641069535797344908686214328577769297713883866875491736835535914853057824571910998302983139513757052525620958095401789769541394615172026176496607952106330548645811890332327753556080420928807954813104430831425411756469379644937008805178843906465059869952993456228849781367900568424690668982348037672283914141463938344197050525552745661524307031168939958640952184680068901136191300908934268278288375705639519533012518018235004929310697272580570319664319775643414186491957095194411520225796015794217433299871249539848164321588401682318015676822058890334434057690623837262060541947083026988680883194001517792506775717517459372238471772205082093070415931173622020003881306078884009111773966418883673332044652964644593441976859642812624451256257788632315383190956542867923083451240276168883596525102882925470174588508778546743233541314358139890052342270388006077143178342526680299665251595805267396825662975785411273245999963482719371057021772767908830058490736336401316479936837878094275476160827790635398026354770894899217773445189729100846164905691264458400492070830852606455660554188794101768916027728337257152926339124809056000282337920177526406893511804497791997323780203805484515346421441121574092611717531775253425231265652789565479949524999661341866856113717265753576161246756393636346585290219883593583139219249139341864245413593442816603840579430340585830595161258412086641797040450055709015103142797901457995856719745613645353724475732597176241622166560981547765107924332845973035022141801910437784872406174681283719961462839166425348030966724024117848379051186988338391790267930764956491327966578197716956457475933313313426260774897136719700587905164110575608680390392686582634870634540551576313986167638107741445122594128550754494215952948573989863056847155351487711933227943103860066287606970726922388392110104220541823141878387002847488883890566750633122209205148078706136108428374406008904461466797371582627202911168422932474824789178968587778059776094181864431634002885026453644551355067121340118869078555749941020501202058436935943833843142118798496695796671231829694191171815804943525795240601837585099793437113088026402154288164434430672028630306124498537156718090967836741275202011134541349983917111725353851702142430673210003144137288710554407895824702376490475232030970596062076120274233173017656903200367749269422733032275776275170079415069130235233822952293804237429919553110013757008735740489604930149100131051482856386998429294173647557855294153337949392024402317194271602902312715943693646130477801570469751026061543356023532272713255237816494055253651889464983903451788574439635435801343497602714738438551198478108928668229457725753597842954543499095269077618698050126097324257566739651664186094335038414961838737035093807038010169536630461609240729436221133735537225631799245208681827167064196100450690001783517268153921786584748124069882994394469284753921204769670400891751698004473501340113780055210563049882543493206799641734183811320822606619087198336021714825656239371072770800442603025786437546914140646737998813330627498043404884443393728585142092907140693132785150534696812734523204636356663009170263359763238861424438018824049100851015825229325655672793009966171516757110370227909005772432264519348539581533676201804307906634693859522827634852807373926695415340681286594346995691180472437660893831562192438656410313134058911508072193286739168832381494477607199208103547538842345389673265484968440806351067157523712030750328876853691661238860177353540400910880395892751210025497166937079787186642922014014558824562342414467031323035012810324420163216305765377138709905272596849408782981186152588849252721860328952218240262829832327008176345561299714577465837854724296746182466438490297865300776315937919644254783948828268065501763316234010146327094725972018823335388133530254565390463483105173008497042615373676406203301379064787387371214645255533658355828253129869085396002636689072550568271410004173522898482171759994026807464914188870306381471153296467895593180865122302663699720471131747863490527766941427342272327958087000259828052580137853878320031180872150984623227074316277615294128040427317387669976955481915380842773570932813737605617669370728806121195580689008159939826487645120033217856486984320906376025629999288897307612477412283832696161107516489152282506445462683064172271803383431737658197124639514478783200093513333186552223389556602516470810190022446747793987501087746162698894095028131074856975128637090065771914143770296754856231438325159503852517313664426550285981057641837070482406073207871177055295453096981835197292941154182519583530833634749559978987631994251041743808773856423077173325405197636112390635219894917439052550024775592393944610777614131867655092406892223028644317156237562055325359475888341884110318326056616085707801241213297274916600004899274741402158343701248157419129887709471169331110411304646457319878710695701135487660168472395555808872908971746912203692511897246805917112574573943911456518061060805637865308957847735391188780952243969780018458236443954482446565562789229023722984608325547054940682218788034731789918341605402685996748721800813207788553382430527889525289709770802608507881752684419747475030089442427002773032472938196957991276667626902535976229524623326878831389484003936817044687218510139571324767540822323043782281750498121221849238110607200441017372402920022571947628031499451547833447030334645316373131527491626927728719658075797656249029624121342739474949499605804582887192221824373601628086164468294217844866433081941654909805035061939353734418444988481855950496502632226450862252087098394179516137292615631666411637908625996619584832695382064061026825170404948988385791924216865098291704758395293260119443105729997009488200064628250641429808857846119843850931743499331587540568461844308724816903828496944549149121128389917442698035544256672059237594015085287584120562381867054311890166818097178919022122935188742790921955155180888689031344770845777714549283578452961724874657333204316660641302224078094099240861486196616461791573178124113520858151699182455410544125676216433441070173512032368369224702394752231986468094665767008441477627112781820370673947730272527129920311438451352019946347089810581466817328707877561024420480747530842041044301634872633267883450445024484231091775516736707605284105175214522934932480284264838848469002099445286264641842034722165709568643477981110366220426052840320341215341862403961367926539763057239176780823941973879373969931185790454468787315002799164768258851740784400056127034280313124159400625600806031689679607752678055851584447737573204098686615089568326179598719347191082425622188268900233410539718917603630564713421885935991661004043119568998668547095296307607868634751808876682139900467692737094847486632625785263229965264902904755726556426281710673612277932681885116213824241463851419800618482560202162079647746012249996696722868524506028513800617648263418596708376361601771787875847872113524257127483452764923176264625743670922662113077335552056833860543070541587402449290035756111655557169985793131000681933285380018287774723250914115819850576954509512870720057652266342717714995753519942375852010832755725591013419830661178092084032701596302419735914966068109019295387886496291209154791318409276234623131144410252780158536443513026311959243846145507833436871321090511487271230958757797122207183607136023614162793363027620066151301431755842436447252712844828608334767494112067999001847319319046961301417860432255267100830950296615161233914007232481274069433748481319458570184419485195460907139625406959265565362319238294985722128612645094639194954110726922190617568177212932823950981632942369731247240843462067641516583724295223693017432684138741020941322315904311230900855917808980986398114724234312597727307258749654507988460850364940355636064213602463672502975825882142397090696389475158521960100567087576174342220068818401867828964079713421198798942420054262322639109160808328221720623832181566009563766131150703525394313704384764067125707365986370470574729955770563329249287066767157842639748416481898746442062732629180918634569514082111262111830778423188055048390230182385596198689725866375383685485188089002756723914879675747587144770449639059666476388405551398320851105180869467334421469643889365198742929450079635793367763065835479134409437498487491781105259529349460886960396179237563635270568286632335693875478284960491495594355811233762962794911089627284563066959031292373894987390646454823452653011245970936916636819842940197570396110501809396370767769574613416736594918684071597994097749212951447536435570510404907182268047753468921921922396655988926401383385425649428775082404565581803397987528075009321325165955626489684326472095084572694267619620324652425361138081285541080986138899323175276100059368274818919305726879270527066816509473844112413522522462164058966977377662669472230604792593765890405451089087271966929602615646056922347083077659724942225173449004958810325871173498512933407482889628228684514065870595822088546356622237969268457727080062428624708391000127132274669329107759578411605552325394275509600607608370533448080696135747986610034569429050487428865415852057182474934302926645020129015228508576137455210972739110882540490195467902253732559437010933022233435336792479155486508905610315092010532977003311490993319144158254039376710385615125897084131515152832179811625094407838446359926982485147799826238367154228185069666716266201761609705670948611250935942092576725027370408358338931609750567830354428400003970020286423333532380030836727576947167063207271563288145135402665452805370561633756575655615604568397358211272334930266571373761578088814841695460695189245089776145827730564471156036723401373751239113342221350995201035617764307709080447304826899917797646876003448036444148641346346899950784555102030298886333848328181072699200088982857193684138915398111676352370135996047767943273521946249418339830341772752871973216535239747836661598830001870135480072549967794815641222507319820777374949369340515926151214725240913312432853522660950991788624206214707618144436516820590669370269728484430350602521914049775512614504465725697123159579764295821796831320720497667628657047131171465971689941414194155855279213291655341080358645394236043976346169533528984633901443709771031718852633529786009866930866984352639341843697031885743906286547106851908002382479226597066957969129228277977600811198961917051876577047154804076234201469014747012300723672006374794146524884880021869725445463705686004723267422019698082214227784721393055099639306665883512057342095362327068335190537432350964241692802434924637529131968240070383892099468207970820508553026506084172906467894329248904226662371493914871852045333605092819272200266783545090067219293448357187400486452584361950094552025533853015019360827545508148367762943173466687018398966327368706671738897838170585143556166265753058934928379956883715661905117469340198535875250672746157717542792976654112430661688579214663048265376236291786363447873206048116856445133196337759745210891420642621077337168716290579109047378376399934031761013295865660178686150841320259943918468802660091941207015673670527521044602542464766222553796856221129982222136619496927805123461358938800937870064458889553009309678080220567122291173244962194666336085015095949168091194431883188755727288072604920484225726950234777273625668174264307924072732430554923883140548639459295216734612059347331081226707443585443063905135486124584692352772955595950816339124034488084615574831651102805659691260473822009624298786189595228730193832928596279934984472850958341618215438661086913654406425908911589698129897442714708606373440889508112079256324343912160486709803726929822324855824995708943110863765484037375213836977540372535093086840240831865921894754342546568199331920286973641687638078055942726490940543186086883587062399303809324893776063958808816927882172328401008007787446855284930095356168133698782188131987960915707800606587512041368105515013899140721605454073209842445711240786902752955637176499692273209734533903274938422469717756042912196379400439291393993696383431238105727123160165462381860803416937792323608064841668516700884580070799053990191389869288678868501254679168252957297950907781400775837291959525923077898529009537496931446488560420183072483668164534888900616418487213140176197920673842538852829602398428554013089339238141175701208083015541888719101171220354396041258813688804892939409662947667940562265648193922536371686301060079822869890537184707195524863614424529839860549722667381399271232326979135267819475081542475158259570718215174779333083805385422525935868790011201769715069484687232397756960219053027729134417989533284571722569595139398450080818550502846173120934633238976743966867841162982536644122223505420632363899786130116046064276425247211995387977652547098991387573337095875444606881810333079159233516940026805099690092016813695028758939377149493311215724159021236225154972698785804236244127487899865593145938269756931430554981795065314418668327328819513027519956721753823705715225229178899738983906301739917299478596473288245148057315766239727468127206928354685997204915820065493214263737853653777657763105425649156377280018981099444126794727692115095607280236282848806019820301770557360355034313476907412760284240702785624501867604936809217966663050628579192569032160921550382981573843650495683338819914203756320762894376846024766103943520229448101014041168409635222224465266984042964025300170064070372331719352207617831350035742568452310201544861847411294624049632889836405515453802300065762431476684153339805267798198723759552846345594350875975308122540783115285645913826698540619890759859202685372792300841475303461621845748488155548751802807500870114860205663005110795262621816509997046246093820030562461035531104034228743366878696989658957146052636013394740295502774288600482358997616032607498570471221845586671322714100697884695817126271499385898285859214625368691960786535613356845007576646743331086324711580071025086357042200427551027969222298288679505160390327842273887381118303297732968241604268323692533434394805615130277475655642243538631283413939265597296620263849694533758729394690259628738874014880709463380659799698316511192908802511925602858173049910841216417996843252364020412026660339061356441401313893221202873062944532613198313335654125205821195292932149405364882300337137813069933752626752573427205471825985193439712284754974232282540407662617308559179774871262988700226674104747061146869802870273514819887933069078040518521698287223191317558377555383293064193433276705871185727668714564964750046792370667719907069138700087116303944297482298951815094107419158382849830008905156337499709234458126841189055720390138093744926726325991473345522166651405838474159317937747013883109292072972574807268927486362545010226180365457994969418363051852033485830613886089153747576814506890483050474323104175672544456786775405653532462442638450112540158811337628792279144576999324549020710057193890243323158180677444472667231766456076823483862792139092387243041511088833740482602075644767577685231345785784346498458293362407464801415979464521435092855444146566236726007057107442947148089930546252461505395466729457454775223098859383492273211814012181993728972747836391302422295422832265812729939788697581742933644005462333979847923661918522402262545620101262962274256238175300517763286375539542768604195767584878682935658016484751646810850672530738693501865443186067821174807067102386061328973257124478239794432392685146855870717593267869335876854716034489616776117163412996673364505897921107546018301236333606911449641883879341218421949353787499665237975153917630591596461034715212146564274723918539650213163259112308165283502948681956571358874767723962901916931991677686458730587552887475970901591888584134023149445351637158204611939295386500630901968781148725200246325005859550973265669759408809248852766267444246672639849454940963335885449443855070827786604326376695588990942339213345324374586923695535840844157854104867882308876591499258587761349378939338172395661267326458605886099833130238817706692933483404804894481441182843465637528081665602947298876984895191128972799505976303277305177693767829975992595734475281486283944418936299209900241358060024233268552032534364649358977527069034359880903887764835281141728985220615766577189745996931269049942745958577489007150177102800505102185087463337480281826723866376110593672121511789100664460382809245724443141738580831441736587686372497575017241805055648156458882694424136256973792922559459020506132103923172279468628689561996741923400739013168793818041821283172850993591980470599890853152550606111290296074552765416055543234626101670881285152031851635233054684501630978768688625160955392182019384304322085788084740784823651151685245792053763628583004724889499062322027715010389354247920672721803903231808545493523002157032240483035751683461419504518377046131294502206404923254337208233095668957898208001861335005068753785517389822960864579261346012293364278941293472373772411834710567199474988132556630241748551125446135307313825080177595900205755256882935354103329405824763345954891191480026305941122856290209919829708922675202451182220011255715792407336505746127588382381239480241104044907188979390179213491779857502875171121244970710366288905267450506250939260199653995467076685614565930046721731049675699045562486633893772473508896872455308678381939797414983908087007124844406148488248961310269733073859124987903741870626001051421583904088761237036537135202929487876505488851828534282484100383985536623133764576709237044770544344802824908862322096586644985919433631192058316205453101445784822337399509556817273414508503565028059306482927185297472128532388175324000776256548899011148468346232180460707175823781636211573793933365635143612655788243001838705978682745348622410331270982486944422546320518242977330631937828805247362772790102365751583877704457363802324310105913302522397460325442284253047639249936874122594125253442745719143579042619855980323554107555171796022257310079403792963224177855361778050880494963158738321286755542970688659515555216828508491818467151197608790723569786036462041091972064930041231501888377704583113976291870092380526818209787516650895211993782704945513992044479894337884842312224876272598929978954825746643485755792646037586224230854016062202312395837939679061860820207384862333850063860371679539464128279817191131196147821670008308089507854458132669548181663862569509252316482191782213462414175913354379790283414237783538889205956684619798105231928257665293832880911966876104818588964544244022054274896911206933353455235173072013952795452161236905634557270256085826606485383918088179160707606613864195339075346310423163143461455149546839215254571765230176279071346702989641193481046862487310912905882869305615485501098657169943179483204002046150289224283253987204035091938364542056806579819349237779739923616433923284412229124161310236812384123094008595559439212389026101480024118436732572185669286852117117438957735567136944036553418826630321967371220477846139672424239343820655757101465210839041105802549905743092709365971812132537294532761292557160338115993272951200795600781120533146361127222089311501471925179535242820970463835362813237330503957992142571430996020339068800578351873981889314118130306073718915536987311697604985511407637751095130499113983932418267750678612930933434194460047109297871418984838011031102741884378329204828390622011459245419765221268914531787212145133126779878455604456159595249754529857535222154681714898414511138425081410550130854896234243628497910419440009535419847829409880436504183375719505308169336254654866850676594860210844032088836979178574562358881459948339271283258175664781489307630183188450317518770254338151217217473808647418369178051185427139283059255152036961544265579274334095174087902928468948476751281828993693696380052096625809630952244784114162334706388675154201504131753538500081328771628081047001883468965555544325765680376567350202672652996826688446781066574956350999859617889432443075158310549771763453238063905820477318116208907400124014920080192386954492021367930242580246465176983105671485019785695873997555678750296617328670794908275661321638302579365272711723576493719772988183876501600469601980762607172973387195864987099099687247174947611141014782590188011824536102152204220498197618163530033988599978726056037579759868030733147522475640075715187922016448589055409022006921571006776359249857239955276320144412168491543577800552659548499985124797809019990908814255453142011174116939154833148205738280414543627180464686626291373582349664828752208969958362900365962129406854850887900797060971536150493030709714479356640149031120553080824095024438419875824164708605864899073940687544131101744503519464872331767462602490066115788861097162688503239042564216657930197142330777144535538786284325143360212501899094526144540052685213771778766749432239192593559065144012279953236573878596336671886798210051122484817540292475013669500504759670844180126373458801066225304001850669818109719049088130229187287636601125981634073025813256626207879429393773088340581698229404803439324680675520008530432140538370368119674497364266432990337815352550225246825427764482726049064908269772138869837559244207237728578067019484075482502459031366717778767945828097120074709141033453979230407021247047895972416306316793904262463653315382468027846299984929558297067770367361780912744865109613194783755421473472609778522142206977441733393023758891545174462184146588817406332192510663998626369368800156129053977489178692275227186600000648688606943843341695689761910479315504073790699480541423931403427721205641761019184651983162275524847093788750088883031786357307282918767303563271353874927186278478368802704578485708707347281843655076523511706256755940456147510817462888651388948901961691873586644017891139650331248286282127732341495662570381436670394964964220174269652541250313866715492577924258247183930406221193155293952472956596108834910773118465066108537822372276507233007298643368167640663482712659661133551940546215024279598826033934377785136896658920777477038091230619879767544853888493488615179022989513355151317816944793898448055101604475387293460208105642399995653132943818118179491682066434229861417488886246889109104015783835789046470338506242254509152617858172096015495904190198081724986333236532399620352998335812881844400312316684412820921571036500317793276716554859267887642911944388521823389650944951082992926077565435181399883335003165944187490157382515153491173025292109119075949224257483071597071033946394772901771111795483875324543082191957109711631365585111336167799267450022545674617270261926582280969301676526353679785621815044068552425020632774312078924592807308316095449322819905787604227141254698992203722558094193132907397952984690749668849730282861276834244509402541973342783863713321629827188680287704885903981654266513122174665068839034388054066287613241514736498011322568352453964459177880877465457020953889057559869620433725788582887664304014860288134785667775223167700852815670313517086993687228395979776142704304433875367404610340962659814007959537338037660820668071019298809834646112535217262647461480906245084356091832662332861476571788736707043264496423755831118108613532063045273135501338932584698039650758945995278709868677366166565272940966270953618992380834352325064535406536366700812380843142129160848939260647575042436077337007697801048622686697327206131308771242883807951368232596049354626987547850697608709062139444670987050435399717068285577732455618338596725841529584388095410036379769074832639223226967631086303998106796892341608259466054119657825083379100517643071960066914226778080310863589495491266601968216898487279809973651882678777310532850591912303608390383406391113657529384738732739647586951190390961292144657800965627823085485257649831923721384198581880491491408122029836664762563895359153095424421023811400942201054358733602176560751537841989836183058408095095792328872313144825688115900293087041948841952225155771425360196960007116347447439350056845634437690033574176028255491088852153239250608784485978816727896690263172001067206472074045942489005080762823397203513834604101168558951501894545922832586999099358318483888333349590571254321971399928556698368262705426927598788149893889555327752195716198846758409266923712272429452524398252383641763866889502393648767029318151507672585976784849233745844943089231935310651250470844594598229323390449455206919519475305035974627883356984613202221299389749069342840233552962635602769933229272508943020206397278510558905844300789720504880441292348947467288678389150262288852912874295275043556502096294224736793464035255126954479331493143201237484386524665786633810460290770251674067522547035447178168614852922458798618961723244658952819715140614101219273275694847104783728576946092451816916879953558040498412411049197574392925110095931428097659219158870146386551402977596012953584700768611682922644374888309035896186112660684982818072956009457321865073950634395701253548259150353689577146691650957644504336265125119916820408853488218399214903746883206389219583967718072126073278856195131355765752434134536657084865934159844354645376945359090314079655081066049468224721451838346650131789067411039280361890014419260045177269902946519122625302754503806032488518836047936463224990548258049577601974085448238309028870415973120470316393483654892654723025152908040772707730361851825196120166242493551339087586691042329502521962227426242566715929828930404311900679570412010084094782659788365032760310302848431325642110534772075835031460386175329382737617103295213812756699397374441853371632506355839050047644050431846555050730408990389269936288620469402695844315063108897864338252987917006595528198783375541777917628876197775025249067296380621847945014014371102715759436540408833825817964419430833308599847759889176852252902745784216896900368437138924036903256321745803965288188275818677750903504077856772821528037441782855392463930301793557599469619528141809981603585622724554127597453696375361955709805352345132665746446826235548397593427568458345430580915983825089473892876921029768874299871189541517320435806519158561327173516811149098354192211828347036572886744881559980262163347287343430001461760387865900136880255812776602634600144920817095907337266610360736242308598843852524693473596609937969756917834925603693389615646024653120908008670272784774156103600087897533676639449245622950923406638335836132514639323912202114104758373638153882739120159065947488481804948983636563622348542146894400775250800230777863764248086281910281820347118317437303493344261779754369537719481282156429854650561096435593803114776643035513388882948516981378638751307499107404631767287595323655332912659476404873562844117507971390474005513323938961955512856978598020477697600525206068054835205471581242947362801219088311512081693681709227961780504089455783599130934763228080151499698891356968813611105140234198784170595077656404824631188859014808337761115523768193830635714319409642574226714354981847395407794813508778895488544130013317461251000430733254010753142425362432677798010605783400730462256735948868856191266923560123298435577265000064743197514702226705282803889500570021520539080570268516881790966535977581263688859147694197974829700113258576587857266967996800320896771899522050292034907180214016910200562865477296008692638027291114694014711955067728439687724873271581274804285978103024505132899744107575415357075206103691029094313706923000275848953212511978468846423010680449037328919226058377388613091210711770587752870318746530455255581540388785652417324957369774887607670119504928941832459182180707700622495028789984059966097284353140332007498193707480320834245563618631659974150015818925437235841475658435711934943348597563546491917525117456083081918043863357646830719241410750040948868501060599618501420458616536896955114758739606606076195171626252502367814350592999274323654217871595338031759236278898782949132690189601796158873699583536315303050304832586192093522214594208207413039779873837909064062124779703439511416304880082178681941363928392496378920442456710399995289756704861790288062734238454739784472819355128116073381263279174219928320972189396961112814976972284264370275407503476407901345333133132456496302881157135538112815499523882630906800982570403252224821418954573119471050493392745559351320420656215368929493664686409056310958536598612765502965285049085025477459821566929512737113321745590753157180290994325883405386994816409967232531224608321089931752489923443811948206643167694320572801425335205262187828721489083506561087419272164437457408832701675994309456501459953883255648240406611283333229346944738229814758202131797535505554577624296325512225636139644685499789403443974936816101659194123565017327701212257496652664631173071157348366699751314182591158461432810857875813421737613298382076751955597554195717239664222676454746520021198627822878202403645259902635461770596464704118323000965795490248713711791563189956210816754283526888091179891832700151008943093350226550988041726814890881229128708295210976641544476183309811369127897747712298020213321274658985263467192662455538831927714499914083410105952487256903065476732185557814100283844205889041468210966905433755520653291342320411149444100772459855641528901216225842635255114707859555321360988093289506964483761877632525942710870131467907675027632598732576679119043428262705147524536494231169042157035922697585321023117194458974786817232156114440928449874481225597231616794441503445868448206178121426891723482568747787662783616836774324940877324494898869106311260038047886581813424621072084554473642151847287687459371382984280350920827521176899384594910962462437545367749182746541846734745927049744842547339625754198994080811398880961788701145201432449909586952926214021933973003160651735918939332358754137954654082138809127473065435451735664490932758490061726388976458421845913459045197700840345225999096188791933984028895432356279060824936894154632361167752940382683462355519428633099565126369680011564888048929462661936465231843409883458602730585413338744627054535383502039757154252212852521282183013029933266179041222692387061468284264574806844585557582486688721350254173093712604179691242764813199746114026534138005020247181395569397702665136484009479262014589759138181669048177231659380550527069076839774618455309912602312300839997984107604782938514159887872479842239091437645430731876545189095326502310947742636863639679565102799543304550196299510289841429099115580018885576177703373467445467848761475525096699445065903373930150031316083832059972984457035801649539935756873406560221992121815670455920865803054460810365368880519721305776033697791282130976053685806300795151760564762996410624739834969589994916851870974989444093459835935232634681288025988542531965131635958944314542006815724356053980185968094371494286556694414900349111556979734615304236866068945047000453891921643594562912220420454155483397818361155128983312621025076967436929855168320378541867742237633716951455530847260914293919256400680948773987875363904313284521095778702457216803676542536975566933769168937215968264275753744949741800541699442708567746862794334574127819345975089292370144992534455143533966206168461628694631883411638168732635660966844266181685087835830220172682727951594919629889465471415030066994178790856944502732408037778427150341385373556050507742961538376582005594222095940727751019318804644245589129485936453837844050159592091691809920932208512267292474920514401517221610979212210269157230236569349855124309230660305936577985029687173529133449972416296473482567376407878330294277507365219596517539511732842538480999346666970118541311640518949526554950081439314826648814446464020940783235393423612349538986248150164626287251406844154032324103038129212028434275834077158714583810420168862545619529592250289375037943829260402097400297659130668606595275532751069879445414339965551619498692094065915238201172767866616283443831248166625203883657625412669984546456630562695630052414535081644907959147990964778200244813028767072494468710070397159911375934701497108624407665152147198933063018602130504808607034518380062795641871228536242328066541232425929709109770029297212199474442622854330868412733791162698475208548230041569057210122026554698035671548157735251904691404309378893340797835766389240794583105380933986171461332131500267957972581896229057661511991624099919326321505998246815961203508619616218514095538350773709738165512965135202631895293924356239514539031754422363313065739019184123145894299056068429253759897791824573698694733042393692337352111541335847620381814269245862206816051705773722333299611929888870521300396966800044633671809692370885305036087584320402755756772967005007093445629219875590098517416117101049895879708446952195784811694719989150710844962635254670316057917742116938220772209323526005718234236239343941116792458409152606168641300255914305681111177970827773615183230788938566750909280970836933132742700410401902946144372591081348354917074104732302975622169328016927704919328931914111490886972438904204922187582597997067564392655969402138114267128981672957428040764685833698703542339906412061908925873490116640570308240076491226128501018729351002460461822256831532382619806998211838401071948228998960737201090757034014732667850030562583899804980719849773423190191747246598372272074210855769543250590340703340504822422614308762808883420167299418449561628869589213472341857679721081980546181583973331783147978139288506482582508818965761697179187141501706091545003996639897044841309212546912320047584424537510041844647710493477384411257984961966549943416890264371295126805623028208527087804399988117787752643841823140576165246619311886069040513242323953173313951449370956869460930746931416427616166093185970588956635259602377530748304313165254572812065791236728498218575347455538754768260270022662474815467105317825391142737172074582716509627640099158475043363431826546354402640405973284371165072254032651366553949818905099347937981985806978218655021813270393153600498153697632986505536587743634152179587756124518580348309948337088602548909152582823779836683487395570987066276329805725192187914536028557177376713782996157796051868521774624727977445894561254974374283190481535080953603345176201862224601260462488022681448903020869954053406814154385184939659903845911174586904095735814668336030323456446280634305244412220994971113470241456023969311815207755289287487893639618928372948700793311171332579697602283983177455775458612993110518107239694876579428203755884462077707173234133890415195554046475576327027653380107926590450199139991114863195571322212459932729859118497350132241737752767249833216157371180056909299700801812447186896657877268005455511536819797198826848078945227542433487036723188421035203504853087241154459384754965862009222207569799320338036937197011862068678541949525556332466091158655042170617676506664877202306733521287122957286462859329268677061307692555141372493400192765224853943270059561964109070391620844032832798986619398759246467689391149503182808347939986046658372506950213256921756490238876561524018521701221162127468589481789850286474477872880522352356822852035937224412799366379674282448396437806808494923017209468877774251866079593245371729080261399410969767654663409431271434368806589206992388966339923778147478935028094373660275900364624161300918734985959634280478473695673504965124278435885422229450338001132620039715846114551960415420912023544705338201478038741000722524862318388819378019216582103744167097585735374113408393955228578747068218429437450448918247514388781233455586345077626270217716576308624209174705004017086640127559230703925990257096154954742574332757651801896883382854955713228848591640290722819747439084329162549923360313093772591162447164874142268157619944324616057295606007775572712147755502821957088598761030861652699743456773684934533075310785509520368342153820268676367990480875512997682554833269000521950313002848256936888101150090070833401009054160543970501044880124123142517279266978094246624616089531136154168053097688007906225531274958649556987999188853625530061132458335482857506369488225573730403719252797800932401965754539426019497499777946963916736741873698798782505943711750613684512558358007146559799183227867154283537193419549062224893595622487235001596551595820360278287417452051357454840974327538257555219568073477789127242952528547537741631054371227392203054066316539460792954280119497228598688626209597057713657674576946422985856740408549931614689233548567863314418192212213688629970654031711152797921389343628299637884132778293950989205495568478674730118373845505613147815705416301181460518125831815266099326685656447494864272361110063990201531934128825983210736949495291608627029779390422363625159140824703432470368192463982751895269102279503149337308998377992792454394116047159119733154123209971781337228886015363032800532128349392282194279859554554166792585108532064032098488506278156616214881284667672704162016898436880694859910074525753019823764538420560472267979845632601505549341618925533263566771752943034111901878705682235547120159829502893609563368361185608376927023150693340265942304195620459672440770113647316949691061304972832176408469533539206481500583501825585103085490348803833748183194421881309584774220376952264714441724599395934119070544163630797214176855938286411209471656201941013076569395469755996400829760053541886617882311102017271557302255059529033501374025869285427719746698446360302981411834518321932934662119104972061197368362956703341942779167623834154639216655897206710021103908596866839052817371965278139213450154756878629131833284334547580722012475467487682898189234688032497121578622185846523818179160338762205445026105352773016917736647808824173908844525891385240418917053930136056205025322890909131465997522304654649626487270505042798563552499956894354846562905335283890524074768282346944251242205243214604969115159950274511921156829136198777574429975081994571497877404754366466712183671863998593864775848049737957431031355610692264889332379418862103430300996712957562506033035903221766749415535633723911688903236692739237960555947822231835025757695690484995783553419927080045371029096730804871931921873490509578327909293340979011230509535517787879742573025912661514733097195021283664439457963959427214348479182656385965253201950438972415926946839252424218603807287126616642373835217683934465689422500055758131518403085059725619469623569650725848509348137829283722170682289794264165425784454200928474864542851382837277838133513581940827953579228398897399113773593148731564341268557738938282797440373940385808905475853764692026568181661000376224592307825369028319760597426613455826289520007471751986613934845228586067098922913986007376721642745021841899068751282105164071420660638958780283243197758108844372613835546296124606128103381311012814748306492500156551239064926376056315572415059444644757897193493099102668095708148423810488418579255005136768429135114112517579390222625874008845364163387127757530258196237227159074255547573401193630835292546627694571481133866548463902123036916905804954067841731055946591859830350306583139906831697648387610119951936625361388897622661650846673375947846630420393844658903846488347282284523795317069941161364108194469699672444074692839236413056793392301529191083607535780895440722657842315084058834195478235687997366218421868049687643075313951636703662637544391351854293973863930350473224166952865438439549227104700120921738010383576095311569449746487595685772393959461254950830179421864512497606909585532848141303982833219574415699412308393266379517589770912549177973118459399261534522139961410983491061840577367414824444133572465291503100508044625750253745275459855153929486042330214582807131173753191394089351712155180430170462205544797376696674789317309627148178043205241537398501695409051168830681253148680904395232324376023162252504388366898685706616530661819045685274746655871617726585165073415506594517561366784259071595185264923266119894199276978330288377794111175014474104229080890236608339194065211139323726761359788538923428288900897730547336312680332517109129839261484970005426861602994296096384886444060049102945503966529170234236346606504222296021098785880069442156985770536698448410868673105069630296090619342316066387489900188289495125615591102404462820531593770968426564803460337817314814053845044990759203550906445909909091445259725671495302827264521527396612218260413461475010286492244572657657545290324054714370601234431217752065777645527190011539533425054180753912191505983798526157337051622954411970307888743173998914579482534998715896943787734373767516156639546476243520818653159751036668970777583283865057523580501714023236204182085387774679830295084423383311037458065364190794474970628477065476794829621886692590682176006731391606658160785832842513862468330626033667954679124922303238892956877289476121515363960309406276531197669010911380487405493778751586082757323635456685806749062716597215990299218670861389689513737068317315680091955482779204650557777506688852118669297652110390778631844336959067235202839999643239638768673203613791646686795031121791267912049422686319695226494152603183846016537045092592578800424405944349467622855508545255660206942268773218946333902767153582022254703312234798566827028252459880123468395377635517468912253678812381891995463784412703324187373763325613042233271184445074974242237826619704610401112265327588955723849850576364804940924804011116277087155527988407903612572788359124144608103336856769783495825697333839956169239890008502935353429996574069637795021408519030064495477747354841168405510287761108641985672662267872287859393358397028788359545126358807626541463405148082978002699115811418605476295128819943083866532048426740555551025332274613422199310361947772049524338821178503225046229221424569555500331377584285710265052016884487127931856374126072774114178698939715422672763228658486169677581873952946709294345253733506500569601346073180257767909915513450348415839846752650573742397471474812540093578195354597345847076500744709732549393103595244087802427666984630842644463867363801628651193925985133419563039265595711671123044979923211736068489759175582631622390226224898462286579357279624910376403823104080481974942859270246321273900690507498877317321885468936424389420964928566442461752642327072727933081557155886648416319531614117369090813201902738952842515499672243034890237632805437291613982272529908369088924973885229959237754501267808873261195461636209004901045657272381218607340291854477995352899592119455188052138295626177408041273303794209036780753112567600804260495074061905648780805023437355891615538992746563307620080099691290761006320537323126937279620073905433437462210258995721397889190970317550197355937869240463611160272063383384090322398941891672249406584603868835991272521420089279274309866163507957283790514385513872952711298366789616191813948640736857942261667117859905140382347291400900979224913024997870400380541456406429066379039225230449217160958905202817816159901170435828913409135889439304950965996051133242944825098365107498514890151282305847215258025185011999672909230195341591046634975148097657585419544419386603010239328940819094792784807830452404529657217508603472258594175772471071244270779869072099558068222519789986479329847328307793432374088524818024125993607628074995522310463219910682998081182041577020240378672352363041586909642813303646625339494940242686862576591833522241354102004887850569974716852406728657519434257062573473667547365031255720837472170777317324261128030775906546923950229067582820612767349847106351976446644271672093846156072556820379137520949039538816862720308421927493301196890650218554242991742579222620450885193664289287722877551300947736463000642410992990004593246677353137444054866848758777157886475428825132571024995835523050990406816463413145731448493938698331347774273521501166697679503234920870266706333426771215264880879536592993735189924206722511948073132659233435772079645297777548674384247689261606817339169281246359135494609645011156588572925382446911719755728510786552984542787165830234121111553000746635255504824523454104857318779100347623305884072578334984425498805845876271348453269204022568383164232223709764547140509123641344063619592205000038714900195783359807810085988860559728484791165320708745934356308021871621114895896268008973308214206067063769193099058122371610501633813599391835931871303044926180189710892820426100316149965985859667959009433747212333443895178821392131689613734560088472118340553704173908865502215538977424805978954172343536586149015842836947490060430889525606111387554385849627269150910862397554805901362380403582626005307357451248710774142634775125097739773093907252823363210026480288229727064109520105288380786769462037156395760476611450058080477176427287800131312774132443027234088512989685603831524657474367982370460127907578060892422712832226440307990061532314102079712380053382053051219117387093019838536790817347001559734751328332160254612250272486712583495315739005620693532954023597171539469246442743880275961486494129247527733741349507148780335377866363118562306153486757767063254901868295800382587884851764556308708777219208318388986225367791551404036491281933272346464104104208811093126098396184018558463702354359467248574915309080485941831260967299406674844194400842598321754803345986174002004313785082861832997568177657103119631581865995049067237979178736721907515640653437764476306217057669856708749227075028087672462042253538944741424134363110166436639699880878573350453467245406692181042688115669543845133919605697691307452133941219295087691112175255550250227078914717380068542365030323737486778702558389059893630502100871664697857118051661731567029479585884426271984103550946215100054672653266686174429351162104756739024197730966147242208704524111707433388517866626228389759505203128872018952354482173947821942443997589998350060780412387921930656793257248728701976858924652325066961147397300880047710443386543722688439568250088571648130946844612709565431395575475805079351426756313819362170242297318784812277683189574070484623353836216595868433085796285376160313676474784725658660926676629257608745273124622235504415865970636998927681704349941168127979282129692269276650708667244800880233097892820355930828885978535341197850211821400468425054674025497714173333668952304916831444376297734827205059961842796013824382640900540500505438995622032576940311410729669385541238618453416513571633768620415488226311960375395351579651156157916875200816745362241270843860822715495044441606876735071527867361649906840791020504384460123082621949618692440030831429304478409256311863207775126430594199594917717064130890686777463854391779381975761644681110663893235836184091595321163597880906332951732610281710148666948643961131017175536540332278904447010019763121234107646363624583097732689325932774191957149924498559646976173046729152699247405557698159349663077375470407104034797497551771084931213539242932997367572202934597575880257640391775690512155280231452102931304996533393730232009205054096856615040586803416379342521973861293658971856933125374145784827827008605989216540395608173187429758719191069327571217995208732082698186359846006727643387648206815611367912284097379440355613871405973903686799304742369235031065342146664191636140197023934232575269429902746933964408159301579187951544290533462614104915531568845012558555000913322061112701018443500695217461730659598641688109381630424976087706154578395449379187191797782140502257904967221220778160238014923812940085463237140405297277693352142122684618597821174435852420591097028941984624689995232422398165559046677132287636196018384874319465372981229633527406286439610417591624718206354197435685713007167543681062853835858736114148832792331046006134451413086470002471956472167985528236769001963621404356498533319768880648886200204617790255802270949683423461083492572475354452133926887369393128985048595882232814751038118880946045143978036923529233651090034139345846785041229174135049437061960586661948266564318216656629645606373347509328955343251749727379136224270823935645582443273066007731554713017808401693196075223441839922700118976889848446350552660726916423783790080479416176843343832284585376841381182511677563838892583940201206135674469196707575278047069344581827691577956860232495884116028959837840511525597978388184102901478476234508967028966728888964765797782306997988192708835134933044589817086468179711128381820020441974991177215410342051654270270319998466349146952076159865068488522031632873225903815064835501000845177843754507436145059221942402418726282490356341265264311926550304063202575366053150918626942304009333102482986091924700441157769350573870042859048669736423070558612735640205404826776438809032580278850876909948092573290173311716530546783923878398599208449494428235455111107556714179415670619711986419956408981974696503835985600015377631978659426847065320729130183465878244925078198783011235042612991308041293778671171441743649417041309599842774961523852311952163541571620418554261725773289754274896425245583690080520697198978340532795249628326415693415613998572867309874226214028851812860019084603231750133307807483123616417826138051177933714470414812118995919098022374678777281289045303579959340056720430564404493547802696346463971915660009263686421734741176193906414540231793906317382851890365239862900709983098625224892343712260609858103040957638851092438950976336494774858416747664414121044269967768519849816506753795395453287080549905298268091627341027240261084195694627375916305703069360493049551760291677145256732350336713095707817696108902556901313383745115817342608720809197689623761582472327996967626594917696890350001810871147385743498364099092793369454718156290345287008933177864626001848458350275093946565743519796624693962789671332753001033621670580280602032717455317735493275712812897223016943175659529582131377364076503258241209583942276617489875728184847630287518607461981595309145177675376142287815383246915820396855647131870682486414694355434186424089865340226529793504253105307455647445859877651882708589209421996518670330660554024323585305741249889718839646582694981414032729680400985674094472202944414410268192913411094218741513282873310798232925145066107827921012180103111970427769076943035449752830570950893363533333185109690238906980629357163430388150748514989827901710659364412707476112985186817773137047234454037456002862191679132213657827070240795099679141803348219625586266951974361124884659465827287656449897715944442118234927551749896827448384642155445225433577710157111531264690883868010392137927188857961098424544017603589273600925798619743410246093628989695597260191902173807009755802375380835506211199233147409088468143519903350329776225541026224766502446985717135357265288218568611239302212235302190516277356974128634983540839032773548105080711638965572944766845792174112094484019965561435530689830861208494869864517106673707691815725446046682028205264852335869924999080595519278288145869413682298976929469666575230382603431048858076055117083009197101198492536480728361569767818774221507110373995369276615245244965350910034528895977702974277885415339785881066071568949262130827794926549436210734569678785506873855611333520651100095167223844443533158667179835359535764511966809574527400042434015440049062666137962957470652740757837146094002332655677207837079450102526980479349759953631214724888120659995044732454052956949161135437651275923571260142803889143997132062841954681968858841752929226688644262143406338432354490358718369905053470947584495815394054529883914651863181509397362332140545096908945353116235023162645424287888032188619172536257980921796925106976631553486672128902553534276632117995418894408023111712410789106391179138011169084156147104326412032435201946687819777327163070488510951900436345084713867267715378928165562125093199330846173552270091856241962610481528464045526818176983236033294487179905087448562440525846670570782029673843869936935465436456444723004453622737526653145299219622309881176456806767139785437916584732095046944304384883707718650184325692701151713494961736980782426940804064500922506823933795683717612153905708238585482910045715628540523094477092336799211584887188615244229459047803961052354775294518432918217764704012674190255625784771039687550336529962214488179352640586781333262159209134904418941231255215399597795265706825746240764954866113924814670065722771960249573450805840870221307879945435072556036021889510992483703313007661853085253912740769203896980996769175607014847575779142527138022094159387748849404964683120257215335558064888819994902449124874438702696481904561785671518215321421458688965726342557795756265270062929784596450617489642530002109224798180888946251675732735002967714705032799875798996291279287466075781964794847523920352226455940631262832484175397548174570106570926022593172320874093274914009797818697026014374214786317938531308155711671801618419885007706082881144649675351462171955213852392511041984108164140482204424941782795380173574309636944364950635187482039605091070892098443141678406446191093677136150577214300475164292784627606125879326495558644718659029848182201602100499771983618037782118959565168922539341826350103713632115778121460237093669106321911883916952705363199942535844908602398083142987243632625841069153661791501171003458273988450230019002557747743121433421560910214256300472929521680512822156479879131483612303346110277520338297969847648751075308620962846476786353120230686050987180875128226550528198916999445054582528742745970634022960335685388694979938282801471099860087059568484121519647334347663376274351356005241363537190114791202992225315331886602515377068331015488909995369901717369429844706667704827932244823418206567425879146781115189747749072558489155466470043329222039895064945277075532932299426267433298828142825568965733266786575619337195939080664291914750311132844675148739635772879342989756413360426581430509213481367985288829257251595246368667052647189839619635984921134156953198638045581484790717809078695292727918404522943010294283671108395063484250638208555865392327654528622726648834185074874139385493074176302795550310290813677069430289701202531770184941820914979238296316560222983619803482040579523193813266546097213588393044852166287214352575113723684505929298249561147422682921830579426533469225932522637203170191999844767571541048969160820055609293880438561539393886108000388931415514251988072813467570939331543005256903783714451599730234429145056998641467595030318127152727894250238346672633173337455880994354439500367756703109190940716114115405573408848342833535993192144371060068593660264699346572009360316234442638215142442839171596146581317424731705156325348237931474944920069795480164682189884332759152807095398821268398936423181065489044804892768489218547106769788613503335244981138616373957310268025164231339411549810626704975020136128532716794506413100084685100521121363995839031402261910807289909816307020635413111542266607869548717738202141054740140240326319645639300962185517129143265244274594414418275602144551534404540028743249577705844940809840330272581809631796524917350701494846684157254659289949476236370059804890396576313824027694236662622690151478947116904980254949025258782220685372604573303597309077583539317030888708542349531223031802292879599064050177373344213062743143128615220905180899239090902879120512231186846024133278609750024675079171260577404575292564364823259159993166445098901914614802860025482343871969033739870536003763110023850308855156273942623157390714593247386985029721347782260711680996006044074990934185340057217199340913082088234123050761235269621245455084222401498616621573160299790401496699491727462378267301789409424959606884377389474315405894732714701696198582509128215714053085784661918613228061036503420039013081403792861284302253788112844894688305371033031235700434623165907687630898083954159168520545880947623711927889907467857536699281423524704411716652528910036053775597355884354254237465176941851447073145254768769289970059546134968039738232936238998019862056505624606681310225203680548324843349695689653100385237546675878567994009464253726661505467570912987623619267008359876267855503028630668799392265099377398846083906682082066230124612997303780115748296449826052470590020138856244146334105814533631328256053205200592926480830313212035078776629584645441891695373424281390351629291422504839036261444255735810748683489251853965653149819630557124199950351323821951186967238151458339349082859755991966972170453430432731619357189676268639789788684438861190418094418582586957960263456303755247758311154311476203593869850737767074276510824819289768101338596997861434244300067684394207595549574076093250167823992960045740357758333106586041155550814690850848399595861676625129053153032243940117244488740345224071805352218797147385313216889626028531253487585855672513707818686352116963311057203172237060467811950861142666656026580629084848817231556597264624249137466762446143719528456935221561844002089813015954860029902518858507357307152932312318131849917893637341453991341102203556541051010772435986055631748277847240137983474630972453826070078510252638166027436710934976867796097426453923241963379897682484422098019133054859645286814246290873537053411643476969647296675258300786930930798498427116879044083381863267759733803252682422433296807395064180671565602714268211230312342948551653653215269457610646824700707679329111011960165468779920874150621869243525586056608143500705463657282512899089865298827626568230074377036105806222664547996570037627144257157725812686825466294687239956406509728324077614389187704249767623422145130917936877460629168518390246803136439897416961358829185973655389064577513081193455198291814912845765152299640726298338964187393802463224707363927685951291328962522675690312898982088924713495701429446868226555957527745822828429972809777383212732530514169924655225066614655913575986554748942601571238087794284727911437223671115303827477533414242407179488602028340577593858604743995094332651136487754324221472663136485905777194353727858104371833790095179817963113508959960557056842175321440798955923184808524878083675500683459483934247832856563524764189493364922492977088581624231502049139804359044981004314932330105944902474718476398931631684443474047505681172374643921613431838126854709402109279571879936931386000038468514368458211668002182820129991748092639890989566539405829588860028274480269991698010642404924265810759212724690630992456074216611694183897204028455317073315231511142056785094965756120390076831567476272107045735661718784029626248721159176926327063591387678465536199985983182304514554009697426850377501200832133206958860197305121870854184388061088381433471343256668979262770244341992180768631001648573384040824075853991365579081178390854206293306812294729335597163936794620335391527090637206946734233815138342694714102439822438830866768989624415715064474790566932331808524642956292310160051118640956880068052259396549137978135636662786584825404606873151675168565871305305211587055927383753478689080814844722468403352770000119125467123303888615629669601587218133024728247879162197849116433286067222446352883105320858360458051478498520944223549847131411318817352440769169838170078031706833636151053133551533095846623655392600802125833620966795554446296223486922443190847463919351749601595928620445379912792443954761912799230415844328912730521691240813192340886616809185433824240294544610170882751608810427472192492094539469702686028526307940310706909913092204311596450429819108579944260900152451424283341581548822767582003641525105027903580048053428092302369982089414594633169359389907001555983506446908224449861971704430762869320144595156484877701259485011514053979796339301004384053190679074364712995847183321388711090998235667221263805486838741894010107540013788101839315914880874786587879500151553964407616257750818635821793101172614404666888481821945604405137924883197154571243841934389672475514442366589364718518226071883638750704592945198112364117809723074340955219414052446422009022216668654835608101851443171555087452030706681358203884352154987944960394947296065470806398245627394706397440640513789295335728586689990085990869067039434348708008176071405043256903200881536947167076099967808378752608107329924794981733321395318387783282359167370125831242890647354742150887825514984141423501301672675082179111002557972517427600739373192142103926032970810769819058988038916181382579914443432210529156905787884745821110382660549894669376430572820094574075292533611636575093600636734985028438872658171072599410784930308130117586486115832906605732742706030699969482400586086403325051074570771362035206886494623441190563168069892406954125655639819424718889220352243226097231754888531728266773910375723710106739337663808981515842676046852036203672407891490187927355618076617558781815383071457220388177297187593895662961497505678534508134597659282837182367192431400974105437297844510162575439587624579038208902934931501481048364513538889280304386036901642658923162207218966651935591627497955048009255515951904618606791880818722697029796220208880024877871779125810211789425072761319795431096246640197720972322610026863745530018619088598256565626527936608540782281152515511826170482175695615416278513963778247995239435931246975243690592186779426383330733739209231890347396557573966490982052618777270846169558736145592952198126893316443382397314238472615945308852540887188657764022385105108797310172252284529976947617375824995263247141181730160201833111918112228135088569821004818161146167604851873699956114717104896951452849696758125834536129780347732313296535965223906335742142020499047977949714036872153280706435798771212837235867186123284810142893866885703762072348447967592914421953864220121082077988765511025031152937169329199651538878042516256025746324085042288449977623894692696315286572937413430169360076035329369706417827787737793065010569739456116219240336676403090783541455138316434889449979237557815875014455206486934713086498330073898088056894346065207348759524887381452856331188696637177260653929012996245121362161821249758551092460860670329278198602652523263228264835722732391838349258202127593894057153041127362818836102715025364815499370099624982612448826291798672824976494874375237721882327023286078786741446467607560018209489067346574075767645525563642243021209167963726132117855243254451672661784549610873790374606632941769264634585023927554463003063866779511564310976617009500805367466292149031922893154613447952205175673050782240665412164309774725130449522884992542381654379640699109303726768644369877159674558387881782369993907291362951135658592126247060512379920709844530680675102192359762580382091795994036229322416000214494830694988847984025711575886642601488261724776092275527824931800612454680443270369494280519969324740567656213986896794541045778067938189867874389603154930808754485087084139693776973877043177428658169640187113187555513983743414948043673850691099689283408455486588315078298044442921781351968165206545962885924899472173332920607370072548385216598658988907709883546595044585146811251957872729831356143487873935778901650631075864406944483973846508885441240799357171892723876043392675414211824046241390905429387061282390467449182904617638581776736597386933106850735700688392261440049675224410943938679474310473017573522143068707911389927519833743170803283017996889374427312521582135631706351219458024320861852112521563609484108627492827688256250168628994059815893041995881642867887107620110956075974128723052213171260507160053682802813777234299991773005009432736417487408931931722894048033459985522641089298221544911814713634885180832952437115609605107576510978703876312812439595878309461734903983475833694660579154522058959144056918656096427650852458957058774828812041326123928589487352356033810431400035728912378562743250250463650074389009557274063694944618836528666054372615245417220582983085096593648284195869616911572593241982735832458538314401670681614873475086126487519897807761879174968270011712481891846613898797807611495726137823984153462245734739133766906177880605463474924802150100016241121217139454356212000027292737880906863891198335160811628709104432373070159783768052842819095215390089954681456048093477272389992107712708831199940831181902204147888292396454286509798811164285982169556628812903107065000093202373656256754844374179931102181762310080201404616668489913449894241224497019175557649285423992397248206504152537039228810588634119197203443941487016575998455338478687656777347709176671468038236731340163982840788020534954683295900144178046155394012922359304469985445894149744390975240122334235496542515475897214184893791435027789414016885281649814395529829554011283072905955477612250008820025122725613693737437692659490087374604434475687479171702479007356271678183376663649010405890049089190374645620178677383153699102840008228759819748535247250201437242104792848796759970557786331111404474698078827521309539908080311709187392213784736322633200766495163505108258978872205344514715051636392345586235874774466224273621281109257958287611916625415368465731854067726266281807464561236527057026139992916165305519804652650305545484991794037554110839891390539496691499562413086576574402038396516635578730617890614207972461756714788535806936170019844579843509116551020022736519845348479824964461874462583047674648261736123338632176788831250491277920092668848423818185480897273944618069227465490467321094749474591173096314265599310511814464984916465734889299095623605691807453782343016627431623595003450763718679986930718629506983311087556768767520957403143485900228811237823624226101946741693084249295818822909711597530124904150583934405280223506510308621844597274035293927698964695385469623728428517188700622734337169764549988286823553023276435037635204423303121918594735894560426683544961268990924013089983378701351245239487953845969039342470609246933983359445142833816687683906014541970792247310862821685927654723364212180787384299729325758725227419692110088899483495642276964023114275391244744324195895104686825138415711722663081780340834694446916054767932938894204339662086472722713405850346947698378481116592561577153522840427648249729162557314786408820040147197345096547770301284755681410163286181373244098590685626637160588907071996765696936955777186970008347826798465723983128062485664119583559466864633682410147066349690545555892651629622100768416618973454423248558753157654115752350824419774405089409900945155868296661067096709024218856726351302207694616474196101248350048832439909968585541868766773096136362855749905316728342790555208749417006678209583055699624947773343363507138316650091609944586030701991206362094726162816281543050557973001978755133788352283359301917015024377492382939563793589629549538010617350700506211537941161369245401779331106731368079062915857711534352906341740273374652512188369391593552057152548039141014116076073493255128653224200668287083493294702711238230448191080636701705555168166051617085257753897094270729668693022600648965741466207261504708613737237246453254378255759009256753842261930842019301417055445797375197530047041686118589733242245538937939958889725739655857866212042113770585010041536324733806348493087817055660615334112886073767434320714040687517684530102491894478822892467092476454535781147272683411981251579374793859013653631922285377259074594948916500890635310373293460482081275476655448033468975099417337722730080088351386612163960876950803327744632752021123833663890757017365868834071432495737637613189023179572011933183468407571300355600358910191442671794848640975070348915715578801216721948131742438746984840193683550642575388859536354064578459525802634894053684852456612071352028218360912107282448603570984859862149911072056038245919485982982354366474772443187443625938524431934988597695084769983030114427791664023536244069488936433666519120633002270696431428914178156515762413660679408644277393150876453278200005143114416938450213602453859527358241280822840514800724995059504215819802203211911703806022726228531527782250798281601848480446388454238187782171045347616593762607297088842176998044060036095071630593792353372760325679084296637714903184469807592422930615928875788093754556644160988810322733243261160955215205586557288084122820000875492308382839802493037018529206223877098770427810125622682864582582074893745065734680589573571270244699330407523545448638482611794977490652298806639691549161945675734171741466566677615589130228517249374989142315440420360083760231932689109975546265851442441306916999881628089074859690483068772415009109248226072211953662783562688880666917145514720406546986724461341839275466663949242227578726053861942662037939092649269513080814316765928250487647210486358393805609309137306920848388137756273064149155109110844125268842822447799765828045167088789610015596232545784169460313922987805452872155596749804085046227082625986099215606656776059196478661965350118610338730120681862698898317555385634933349620362545889058353970499641814143440022080602998861413468584239139340153564232472142530142859120565763856935627762470877172637820785953181433146684288614405778794843941854414553901189633756637537059024278787829869814914979048998218102052906879742490994284322732392927379229358949375634604471174134618118763775567553171353328694467886633685252997791338884062520535576727452268759094250269880262302902959198007187271543905075709204894742788081121617537057081777860657232739443689675971961324093497733807177485067680661100024970948317758504896131681710471576013281159979796697117964893749365801828293146885326670686356473845919381630061412473853884559004582927311830453194923750739495359713935327341573558516210856392947218980959393414820835849569334691831189479801443321814633528391077662888449608686963782651073755036361644921669180879049103339948482442207474508737919354745696156441020723233200904265039496704594794672172322314104619778179232279689115160333870859699947512842805010007507936666864488336267250377590252110262588133484892873136664049593470280206296700557077340622029755773349891842778084850329492415000656210226872992169408430237869071121487459408905047676091555973770140654311513641993910153221693197750605362646324562937860104085102597225325173092650965923479694992248331176811659480608800082618923704059498077040017396745821892429548950716877133100103978515335345314710685957094450605373359195365861719631497006018216015116781644587779937232745484370216719698324035215895168535513924782055912827961534916630151458051788841148097186706984272264732539627856885621860135755148025841191257861698154027609127050741951140396563792898288285227408601450395352112653895388386779399517295862927094784127391152433112925946400072613464924997268181094515144033606300528712881176345574744004968524233433988590299130642366501730923117254932235693646270826473653961470193614656488082366385687127431181462802429670841610218758998609649692350312982446820228624101581183380869587321577601822378961801576779989263352748408957310408461068537718696398441318584611504148287305023118066959863417933895317469817706686635251177878445758531114952252892091504281574922455591384711330427158913553411142349566732404385307357246228684692228408379373448470602916936013993040950654596190030818380252728256308220937269752752989520766338895811003934670501955027215254070784222031586900159951308263848419748777684991692392219653723166544757440764101009965061712627959017809881925888477927081016545937332535284128020075751048259116525137578340100895184768524910186221173555348636969841574019955602865124223618740583409084476878971542125953035591327072076061508973819799481185638356745062572946951343691678918263066507952431155826364371997603774446201879101613542447700627364765654919626761644468077219092292908086622811295988492478114867153425715536760311952454756156523696770385370476886604698021385248030561176382068757506758136412862878013776514061907267002330978458776691822833391651290787076086693751711689174162769080955175727969805201682102716262136069706041609156178870530540720979768493026637638968662736050113988988367335913513960315474288974713854169693929318308680021232896329599381271653722118529514501671084320746942049020976670074228274667222156833863413023286091104602401561230498455914095239210460975654364834446150855037499705955336660221346260483996012273273641910694943992246524570005239136227333383284972755739335649594315523090123323056343415235105696282286778821093084612156866114443870760958284067151875349808971433102743967023207286830105305585474061120710903593522245318973774892872122393887443165480209039008108108852669227724619314382529097258631124615779550275982207061668708048769500542419875562046699274663988639348486840142233528728214440395478422891745476582719454397372171674600060853686206659734305152428332728939125107799228171714059172236020738527892642080373792927864355780211583575735835906020737813547108144950490459183211755301545019836835859869923267993632243604356246020284705006583453866926334314789829914678538149164332937337706472856119777547178021057206562416780620492496050681014505544400083691585386399196405583027286332121027159254780491989067089066871512194349441699015818121629691645296566728882261734646998743806066636501254919352995156342670614836862978791948285828518127841377026940221675580682835676215271251002722532175501175391676185708244100056978635520154571775096098390350012825128730291388517597460971546374785158162912190028421493728409410165155706168620646222073668955493931454351822662501773714797996892061206532527541841391447611392215213461406928641935582165447967025369448854441712394333499860298027098502714181595416780254324505451516922268832227680705841685710882489400810805982436388069304940140036054058825147274558825823285297655543660060976141881745439506835189943064407677097341582749754334607411032688819736325102959868912713918327323940654677652057012685602158373854658756251286737197305200835452057115115637967152422854375612319367176856700900637354250309455101918511962299514032597437920935437420911843155116834985132549158654381928399557383125945367248250671147389629672990878885848882599701074227252504035481804962852257052082363485122693831562806728367147435055983927973260668429507263513827510419746889767672591369017306512365731719532431012869561072580528336315890095826698417353963848720165200490649064035498544923722942741837841103308077738694039345046633322001742224053633940752750598293574910869881854105227312991022233397661253324690730080270049025891197866095461412213341213891962638826661786556146344210813263307717607866380636342431909183254194322747324115237704877561380927960483576499695368748511308807062476127325750376659107831658785768550661988397945830269086027019641122022573660586407392914387722598907407359876447331552706846619167081990942108608514033280601787851430149967994736342366222291820690324453015250155785760152288473671518234944926548288571797699263163527538455765576440677544890668248996613455952180097814220867268863056429154013829653468573489967197242017176041456299913025141444752488487885952192226843723645329643388078851106993397696127782691625463097323535451462264137652139297506809924776597347261269093978722139280745585647099981589429668515562704033660587623053403109834593229001269832269205022015814343028080002236580154632882552904706825073630063078118956871980940767158512610334401938296271880860086116970723967039431812613097424711171790198574301239907540354716506288051264920095605513453336202926306649809154087581763402129960016194911103493751576558875248272142376797264256426977368198890882172269926555304987247904798100065046843426551930595486463515965834193256019953942725424637317151517635243951403807424423857724765659615245674669931628602826485504068591224634076966397694270136693882918560767582008669438337563145932941714551996669772822181470620906203497631712086466030605675614933109167359686926299803365159852130088802404618168331860877929665002779221347601161748135200060259895150218963264153851311775210714641070725779349718225272679005993370186596157932780066176911183167614715796464874106952245376114568879231150886303623840717691959989003565807547270107199166447759227730658896111939427586024665729164647782959517792521728407860744329511315658116636186290447363155515655823373410205410970553981055118587774847255317701694561977327400076274662916015578149893849915480067001588028727139647788555334050152578884671964802052467242449395518643725584409996006306300289818578112735319400344482753400429606559508922535186015542228917642946353097283905715525192200671822520448345695728302485815877783543719512685965426708169607982346616792592607356189398955902895422982006901135011999278337057617540712583480582780681238942856193111114132504933164260528023303981416900679889803737603209951643848905869936960683071012317961526692453046492374632284627990824233479833037403445017864480398812755922590204653660846910213794842368881452629696866213566476702014267253205644350313117144413771351467367169726545226546510614403820274351610225460111162195775537690901298148136883286248160366899277390833940514714338487476920116426194819239644946320044638474688479111517044843919386765303110082423870498152452040557396205818316248694503295350919858056458989087442568312292543450747373415195274236476418028199548731737721290125242144675404294585540242390647170225700446424875936387663670677479620244276809437785482576651284377690093142098666071018702933859331043773285303437168895184802547799127333139633667250697624004443999842871548273540021362280036387835780861930328130999490596589188937507538344269255703320890375832462846794994772016161849244806707260664239432321923207176003725231360026007938117888524025045773149253502497399425440513990997242778918511892389555672490883322532107988627081564000322527803151097668662283346777383494174612258945420980000290932969074377260138690910279140625985152505977668184401078167066934000751493482854055561430475539110533143757464229486209744679084475876468363178927730859885111355095794744954218629866774966961594744440927311320066978611380859054531762649459016781969714986139949226972233845270514380938951350464437551225486111708913966808936677797309943848808619331909104357860720849673073825937923963599328475100407272793862627167044754075719202503934191972545189483117279024614049668955179079986910253764890964845981670901713935120678283957996122631197331491337781834338419318523675386629019004633433285328343418249210719160927673080132353694726484892764429798706811256546280611726046073321917630474121506403020178932057956876051027752505304361222709604675845312738661652142419408683408375891400951141339295457700947317481168853640941835286109971034167235581786028234982020314998679401740417191402839362105194806048190182451800817013710421974592127984040242689630053355368549416400863921774567695344586508832862982165846016450780000359898521290123959007042026607449887850627176077622255060639074531947718892509905810093672989195409957663353865837809804479353779918771214297746197640947272121402353265517772361634196607437639153866019450177691400624068412731629586080635067629377512529343675960734271996751352015800873739548389734399012382565682907859114425882852136616920140299004131462136806323526508654112180847499875844111836290979089198341187537664960480936264893291043905977256329558138877674469546181579787041915975583350003772867246073518535088549546420293097158563694978576404837415055580991884020934333351281955145551857333488816491676944277824055543369773119201437225415419274505976013798414437359942028760525557189378041148926125798303618380107711005004239239264415692277900570279474013649422918479336925354324840487802317774451841779583558257547618425495753958785494583430848044173708798492674195289323031489589916006854228795789294815900068735373333333863813908420994872551172617108729440888684478508116345585269214154029967209886937158862322203314855817426826359506893623448134224737869394609232566007547212567414103421849013118963967654732916742471899342433028029092698507522949079709443009238672877439362551113136287615919738324134916722682612282631277938117508074089589439719002542641266494798017644201645415881317601897265962461441391319206785035246383065776401652297320470892011469171337228786303703845313419426441424966498447440486177385135293731080998594728151117365071913988126930748269061403928642276627849432955882859383721484750707783551198962249119558823704506458200561017020532484449021502294561765561859214574399009554822941375154413613291504304691417994122460933816513626279028278842138122077589424038840622943317279892594183668293679259604224184594177065301954864394817033552410287470447311715070347750834323733311632587672763683468584448656253918723946082732471350044895708680315032503867640173531507940034557285503700184560276996150615682914161170610461617408248462670335189152551882482127260072595765678899125678702014978667908471066310748764673098909147197987925985906257336497349823503126098309873468616273935805790735490824683049728409773238116708249151637346808705105219191762054169882625476054458177111799377677869654216992578557720426344244304207449548970339043450720611900769736351740195265632213928258312052824003746695459092804525968798460814087071953425476138836335351191121441431485055201235813806264923135383387675809188923797585515732036588317624241169167523814588592075164035236684372679175906370539219798112659770811394735167196299997052090170907589856916389066427042357007445027751201049039481483294574438097462603510578981954076398706078758177407249118450697884299413834206081242839014881487259985418148029294922787832435610554915641091748877067067820119859109589098386883951171838013491482549927491426985525951776536126242157266244889609614829797030842021051602796714785615940646136382477589020110251992342153210060175230257421223754210749591872867518955215532994532268942518840942282675774422227552820761560727710394718256680247106606773831206303146628474433862047432595685056892871626532908327878439965071672422061382945329166004638087256305952415328812093700992298960069813962796862795676351987418240185629319849226233364318993090170488199525882733880795326588514493938124115432732058916457864229452684117518808184050956904691381344307784890211487971211628397734430548461498079356243549671412947333266642248305004364454547027491723207839956508680187617327033190656579547539520692925201530706435047130688128903205385455639879921010956672982873047946610054316358462344874415554071338143234413117884241960190370286869624227624650240042081371350464015993472053275567950353390671272161779060302162399780418576334810054483887031730716255256479959999869353196813010156297097871167306964940274916657267494343208132314613886925533494929411831638778899032594010934111572742980133181457828168791351424395578734205915614587736898808079170711455115476266168208177757472484278797129815482385203689591652405437305246672873130301925829524987639320985731209161056135722017639271699598686108867606133843649616951865484860461684848240743838118074173422244839478939982780147342223057865410217729264820914094850350132241515599990163071478148527051614432258254780143440109533660239362642493138522940547536416836467041574300558372984704018145571002969623469850599778855736998021822303549238318797629894156977212363844088917892752775284714477621892057425453151037479977706862362421899063030962822117732197082303477454550602385859114038989691666220778768326012396174199976236550636326601699066116890886877413337809195161497705492141711819110149543478693820620980827878957313278990600208633911278471536843043814981509703047708868816359741925341341221913962874578109934248327141091782763176542096312507136692636588213575119987540115790280285078066983338418338266739455368319656571703194629336410927266727424499274732291380098357445091340799308568360484677866535421058668005211542648674972395379364215665358720818554125981945474275161184169366255632419359158569508890535314121833662399878022115042456600150236469108159974192025443787361022671294122829888805336794395032940480496167711072878810316146773037150218352890241464817543095490594488754104250168040699998196719379820827733464855815859107761788284975054685679139904011384562436040357440246191237694402200760421433573387260392537246640896649147146547300721952927374176796135652330678042682000242307412186674866946280587887873829952327805010706610138540288011913855730911380572755893681940309380718863793758215444351626559912030878482052393749351895597158155182804814807831310535096823567161235509631615286658578590195287177546425064129849451057303533243348909799720945729170095878408322140440501474114381709565771252671577981709767638478642064876136793945784423858603564966446314013104866705613462769017492832290043271120819229564158948152826558422192618902530513815911803423108851491226653917944817433904322700506874288819967061960688500673328353614680498596081402879119631127482546640437038478288400798157913445232101668673741121294496813451012237984294021947946916648150312431873969119602156712114227943068201040876756809373898205468421478560142776882018807171741412749367467817513227710904673001530946777306922329095349569449160116904681818272347781619751257278515355698616292202918847453026983015663874917702194760509417486684119727660444085483297504989078258061539020030103521802717920995081783912123397007002783290619371336821833696154082652039271615180227915286407683150329974060928048310506255157226287131327681824780116915493786248322401723837072716088641929421181718564674811856940087052996113141059458293870330528629791882649324742017955124423294762903488349527229283080401222637227611027520380012093752088562406453112503726401539964371233707903743951203202853502547482779809303020219663250932909448819057451029852172830699622421954710165193932976937065457633343243325643313639122108352913555770081265053979316468149451341207512188350547396859555387809194737465662790318681617136416152155407745354380414798454584063447474508568028086232412696939931122964056032731092793849169187933359614853517001814969826164800344027822813985879014862852128674617538485034806838652016807476744021147665569643873967579664429588640957755915419261507196653734108170649748222041913503522393203692779239073695588057799755260190308143550849247598185779798029812641251926980831075657465946935112856279759057800341932347600136961144729013113729326518877314672141074127522101051515586571349391276885573006456556663593525354509457378968835800277072108075468519790215677663559608589952449272204977529981545862535929556885865521908620348857429443548834017661683055326602458359944543309529736205642829474539664101759387807875790401431956726445025653896405200714870685370656271174667615719181064228046438268678064178170171014557998785949298102867487747167901743550399316968352859211648148786128628911637599276847108874366161776239309829498234064137828071121741237834222414406998486328823924065637743898084631704339814190170417704585646785993494113767101851048288345847591129859911326180631166520977109326025457776640478113979812027396279052178079656593348303196386372636054817261754402626843572645147411143619747488532813525432313210406553747535609140513357644845126503159949939847591233867625899886282674242141065631702826842027427753547852784980625547796730956213501075135701081437671209736106569338981128770064395086822635241957989987524453151326843577125269551165684260624979530056413423679403268694320221277155284522945590601316630023329786184272936970542564089572247314796084227996064312115572289888413406901570607916985539706270694986922613155059545816240665427626536098988246922842402217051092088452264193800405064723514106544629397362950062687069185743503468907870252668899031059030733202099770701955626708007842141750040248776436938270496675406914489563400092985235499129699604654028321299512881718293173380258934336088863956188145305493633210224670237123490797406812568724883352801820879686837674893286595156350015843734542714861534249712522615178086471835019904993217819915535387378562345508714313905038432869651387690329053401523842824396391325686729272248708477969680927365604215169040230075017366194993585447144041522141064749724216152303724661255301796533454354088980086901630718915880845552219843115742231294519670375862605877626333668485075275284790344250165376491633179283207357204363149629332621719841204149693900215789875840550688363131897828032706818206201147097078246477602762963513245135225192242786044766017845546358689564183440825955325433408871016151070367468245292204678084853185295603026039336998791252960230732785846937162703749144838891633750052621697332332152400708758098485646289779180984825342721202481272565551505030570041811989518609216787809270937241480471120320927521638219693005366775084683589386544528152235347557559076380237852151946018272456823639549056812593274728954569893447114180981315364959748515410685460978633032486429877701863553136745081107676386047334640295768821152889813566449309493104358903645141317552414780992535059148130953147122623413540646090598039300729540969213694564498578781314849834710618588580258335380086634822074587547577692067410067571778702148024906809935403404978086974752318213687886719206942034418621529900468668535749778710147528458215215350982709863527703575629384931393160423887168990739823956189887221884206119027709429903227573668718607977070772155923264181360169717277740702884134571773206253029881617264064980178019269641550387293286248745115669440090146910371466589528076907506309916580190402824912396345679839269565571594761366943873933300683738308181230942044159295951718719249267979297129502949158118526944654488816064489091085747384972252662561359833739178319495991506543998379398350900517433878817182955161844732570694229375365255153471178576184977477973316771607149942145263817047522727295570500173374401356029781216871886130729572008682704728150994493655761353006838203007248723891860455582340567631876262362589043407960239552914408186887350391637299347162815765862853465444767189779664009434202490164341084863053640849409128877119965069804578807137977951591204253802570919860455967388601901634414829009972971392282778638712630801766921370493497690438081956561880129790914650754406845318051694049624845495251863363242222261458699500929790456268865970393098396956023564388968632992332376590811424860358035451697820676948892486638330687917659426382009263778903165827050291137857297509740049386753580516323216984736338584197352048763394553946427392885249745167489904651459473884977874365758947077177943562707432572285536101492929675650265851006003218146153612928591069343214878686374342977020598254510958054174455625081164881956344323355550915407022873450617663489800492811148486033667358805224298027624506580641661646093309658322774120168700461864708735460759460023553734363668584630008298911593217465432173511755315755510186309658856027447328817436176453655926246176438777403799768860801841457644764303571298399555691565594231174530659483625020603643822173544096553539509045743693865104312934271665810521464773628560410427152372939781248710605985932017807577384367065631135068593058886083620234778064987975853178401672905978765702813875802603233337988320303896853999145202912912522642348966197633971826810602370959759662980918534819012504031589962520471707676639986835315319660868752912542311537503475500515367406868469956767733057751079235049034577877826339647387642905640164433316822456509039570066856800982518273305819042432261128948518491882214253968613100337137224301868395596441734670841783204007571512416808375541314824792400452430812536772968970444067964317974268159359203135821514639678923853314691684801923785613665706360942213296256718222140853765807068346168583496375655648152132788002082516961807984840474867542864812471892324572784880995178492002381321495055976860978043922721365667914325583872939628855575318985133904712378084559407184483283611533615780257058364385933712923478051058091607157923717358832712616456065679450348099079972050842273054741907781106494021601666662950945932469680827885873826896084877445611837984486573045432053689268403491423450881535101678575706668749563760666307293636497984091052840084546233261781814979761412181872861268653460711665095513547783230627411811482071716466526542709914847880777689282345795486110671504947364739973648066529953736779993402353274964801034460008563976973633732229471469730277640940775396288390125824662939693898770158620893799185516933084638159965395913392629245005644067609742316903078027155970074441832783863920059150419266647287527897954927703415082639154789692688330816604795642091123793125124523826289132391142592592488723531353414037167337993061711996480374076644403610827781509371989266789958837505255476092942001843074443896493496814253542442287548263467259939978795979725472244117287600771260884093950481192159674887395558626710654903021324022477079265249776944955205108056410482206802172927635615223773851063602097203137894838908760877304444339107037138713316374909282154921296609435599576542505065970239239800133971925439883533581932604235533464070907285804865214153390352229706047122013049412345535778954712486300047055628894550446086222664852384731073317223038564186531180217935120788367893163243192580644850051145282276974702881297556723041938969669115168403425219126668605613003845205389336911210081205025241087952203462366013906294095868063810486156703491895288995944342180753633129570224126076566283785776310584133249700802109639513491608642051940551379803738265147259899902124751359728276487048030240957692462436925511139223531786948292842185557243747361826577956003518901587687598144266576265825837773537988011685811161188545871990328237725765974792555501517035225204329594566895045977985931335460305804628712105099200265391999022032802985513499055895296203508118519116239331768415451061065516247882198069414695314021638542948465099305759018425477258768576414740917080050765864163376935814660781872244505837942437576287085454033501105370926710216016889742519017266477109118773401965876131923824401677866944731603643323591053046392692548647340576221166484269938330305048174397311935005367616450508447630473256376421666139818172167153111289102455851620731970070031125405052082382908931287575642187541678615691797009700938050142984666852120015915113272059232133736245100927185727349413528948123231159923461589690978967445413062762687256330468233531371596513000406153320056264213843223148270354735863509198844653383568400484168465383514752987266852104759009105167315924626485357070819430352359875504929773330753172203557347023651707931593278744454981644593247393837794365278003109277535437349297011203088850811385110362985620594883469615636232082831084250287376136412846726450367957498216344694599244023203866360957965273125048912012359996284808751700271355908821282445921236597263623626193171749930602780067270385204438694420239626594307173387544843964935739401654469425438918315939596750099329847553183201970958681114740341146430774907873234732383184316977580069510475962534780392905312278972028317103077044152040962027536066168775095387491356486548993528510813754662302301044164406078743379938865943431973972762809887255359642183688625252868429209407669353101746760614361504022410610065751838578184594309738166652742282235952326563156004363460606617992954342681278246980231107831922175488282484434894215590509624968095516816141784081058068173009002631527217960747234579744753439008266238408070488767662012566975422632476841443602996127063203642476725566239584136334669634201833963782542254474306328053514644920802840116935071719251343449175916344648154738160058964567608405798016590255748976711877225395270001783834618076833574250619637793972907186641657756554922398951160504436181020594168505418765847159029625940307677186938605462437938952917738297414846392692211185354790599095097299760747387296264727605210459511282743563127096059502375573180619545259876531988819158370780609460730104615314079672252575778609273091902469192988451739871631507685766351864937976297380660316503198618172065118786733591976523956744318887953365229088652008014049981149565766450135714869973922194603166589011920226137063954921500008096808049365156179044413993654732119422707627168066232679931722181257457609152455167050976549279875792849661673761936853435468604260079278210505029351060269911077292583322331389423980871654050463146586178672199499749697290597915791846480370351873886438202706098049340045567860930765382619265263181120218638592516569258659483274483164346145940369617235805971795888290583815236978853316823013314522929991540592302274058550374062853590459765785964573806521600263159177428881248018307666463770771998546947143246041543087106778821876907079694131367846057701838283928309479160915776228351293308159945269760684026594233928858711054408683063663858102047363209449653498877627578626990535391553279118811926335106919312733976667409148613974561452545275688380518228526608713496328388418368484801362645828954007306507915607410288908345465962538086962552626371159235948263845456087258368603761981706726337448128763726829988777229445404077067899401643812500275542016983023069545116299831343107188990986254101600293552441548625913761597478709185153402568888130198921884456611164910632688832423448309628880496579742710340822373667382825577250767715305186061648306335598019340710989716309884087467259104459888759596053032924889936385211939490968283710864571352345601580438642971035384668305968987968083587349785762678556588838364951627235452070877953346765867204916172087981314914169891375664645456974216663388028870931159655290890968583246620942368725955209587658676396452581062760953955291491765181737672918987667798425119216807552581600469267289283769650286492087987822244210714046467307485197437139760530743223451552532121235870851616285214538008368612462951548039453329683773642486296457024358189231686226499499218634983246812149467375119948195045074496597043271760401338355222360815340004795981936852230925881457545979566969475623894957247325248486607065428825628767359288397614196190591329083994691638410053218891869432565720667765232382473164380797696044457296944650283430616652216987080261757570512416411109207357726203970411688859403761058433130293144482906595568429648729637716132195073219971641441702565468946101270308245972384182836040311660348915371607623286396661656185600094671554915197467308423255867674109733402984616967564210763223153678979988580683198922830859763375092946490387910743707740084634936236240083008495007355816496691675977786580811182304770742469643604732793518203847198896117035900830045568512528050955106676996023738782353766372782267740520510615320189983806114919859528750026629455422735260581489488099794079523817886224433013323645543257410388370423239809214161496327553956636176867524381765566251013374304648082075528515649116718283454130472387959848889991562759190821521959453589439873919878854478785588393019531703471240250072072868196663188915409237562982477373635896293037302748649251369197889067635824615369075723811889000386834089303979375199306538172287366775385114171618214640630053993407936721095094123328350571426528319496746948502122505862740454811093958740537288809665227994913135041148573758189949152273413520402201771742697561032405390025938558957849154940687591085109004456698779029635899957858043995947222843355440391384551575459051012236770949004290725163272506438911414940314392933816049214114829869615126075681193004885160428925653343730686239962181200837591143173089441989980293377230506522502709849720595963536060693015540542358093562221999017615513369475682897390100935189886891023056203345606747815955637373724315051310463884368461660222105807660550163384439513392753905047198111267789378425274293071714287376055437904153578146194855984706040401016336531189306836965939759500845851332728473088004848774039317183964923212125759155986396831005033440560527898876611472430892073906771713344899959049955652866870431389745563864195065256263382007256053250254497912589372866069366527475695458554937936549466905956264822166011090722271664336271478599464599992674904954961512642308529764040436950307838875676652232278535937556772170054417615227578900688492224647258100685483167616870537047140293293794295759712945613452455275456568249439714331385804950973720607539412574156291011023260518521610876296113466237967436112342517799340059601494432947964164600310883776688705920048862018019633769761450582921768913766854755419381160747064364618355095042783676384472746207161381971191770444487975137788922899588473820082965070462231272806210512699103944589360789044290661289121648867329327712450595576499953164568888853937404965765716880913039242348569376445019991202878400273546363108028048839039864462866315940784010291779687774189828622227028532919145503554952435667446119533668970392803076336134227848130080590245232298645365347593792470097712372514855978962233505503714082373885598999635725768152824985732302910209663365529809751869164292807619274983229652194481696043715488475908552723586440480201758142575400529343879461964319673490293470269618697328305602126628583594142914176432704388399714037984862965074407226526416346342898291915406945822384005322871978130120342846511500021415969387560598958467433788321510445817334910293140849261962544301069475586326736133960131549360027028822653755016913194817216772727748879790713086459125176896227023434826717374447625403604436123834266368529097934730262217743440936100473438325947055617962424701479577599383961282821867040465947367134674003802886890673435056065419629154398232331916634157727577726255667127287567764740358782518632401429351230992652418610536526239068980576795900937826721251220551113158347823925141718932666848696741049338628805893314125836487308559685236487095735227355156417316000570435683375128586486798777626878911970174198926297503739016966811455310563963891334919478491126002887272022436295541133021032888312521790386091534116785776233880138563643471230253133127583492149626816843461805655064376864844321691600993297935886971326345948047658016730287623626375404641773711712333755529076168457609841203148149067126544788130874966926524950728376339582483127955424169984449141560908212342014466356115143987869283676440381999960736130356587640683341102908782368523045177162181480494326246784203403756912181002048571334683860316409189049331870282565113342259651395183628517923265340031625303117768583043905855303143470009499540428993106200690938429859849462576424364274755020092959821997053713856754024239958224936146881835783905292562766257814762825490521531188451672679258510629964112189047429032689829030019539195564907348181246684338993876522912442311981457466200937808079651108208092025003722176564662265462851678069756165122984690402876381965360231356361364976638902219792361723388549181980957352297014232045491394760020309831182651347083195790827421779732291100149811042092919972707939131054168843056476680682881432639312292484752803515563282795273265608341088161697961023963066523100437026823091533999011018517840853479666457696399564386232590725663075603947055135897585127025937635325234545460711578765677751713231407198493087072741725990383479908377522266238501618900013696653310225295738651936909936258963337910411775860518781920708777656099941098051551760524338381498578844158021483003773807294222057611422187341912017380974191603908969457081286919618687718234413339778059759399170408525740245952795358955168367104612241414848823507042098949464053346102981481814983849628748546950040743248430100423702377026935949778090939009555164281254168379512226340810340240060173185622836711787912863505765122105234648754708922865475797991986634913433674573178080001015922803245804156062040588149733690546883830568311188564269274466682562826056931827114971107908022216742737252056085239809705192876172818294917079681084956342092215680052226576590502708101059646896004191594139713443207974875200619703621436531076819492314665746833301942561772580296562871057463566793619642933509041759154760564372284823152054488326426763087111474606360347328343230094190420867481232196335598089298139013743217231902944033802138350378466582478492823716028457090185093998630876897463612139222874464372822230689814427108087673984745198685973565683247585023790229043874338656501635430920494975139465171204239963804851524043827140049987366092215951679436655209716246719028784972343068794146220933065403515146533353438176212140974995290813343668874219608546300562941871857198979654903892260994006458134576989890293752526031594793520517287383716670072154796195637574070128559260756333580436117856957032715108609733266002110088271231991637593409971230320261381098899642220973175527414255363413061597294843720485673053633453566183219602569723677437664041985539084586654773133442430617212600862976052967207859322562292355846262846333189292831983610002592187113703997150557749320487597831976713628632018442823365393471636379457127715884098417687777055114469465240422088538202824989296395084670465701934759746010821090022379813893938891736619958702353222196294149913960484299279341165867048778571113372653492856653689288750896260840586049730811807796500601006810979623045595480118976856619676242389312756524165598319456614716758220572051507331874386499592077292171541152707025157374293274060303889970181763924928444961449892119960087414559201197110619178135600831179394370021856788080126118115799464147173035479067670391626448036915230016380975095498647857715301933207587076728073824162729979856572198166844451931151214721539462606241547478844925314745222342898144439356689652081728352018491044685012363534665944391017712860590789232036981778144140657657953141693427566274427564792495722561771122441508205905726084814714045923953079597060427172459275216550600513715396777242631825934316495999408488134896294439801928050446990307433295869642023477994406085552980260168762745948165247001320475095699315825105659565545112468121674104418920149712917059113204648692995218936078725719895433268702764211207971112580634371790702853656868188130649315290358649123136625719028116080449925331730933188619738913721183963488792038092148177397515121555060714212378478249514649493285850008995173231334179449195719549373810225162043355850964044299950654948218174918298209802850161357646979930679132224784985129587419897623402048264287062020511304845432074564363054682985899790358840556461006745899723002864895895241453303792218607675721960300019984053461042369673948465981989033226447136417782885831861564108998106333256695880149087548911855294447548777707033254281654048701145290259162535198012387414010436036309205281399608185782175059199204440716799015338445864015420542276603949509852531714647656658866814588422462768154717748977060201619396947738552977951792063934259381963552380388424839581039275670564005177458415453647792017073426820789537842419318718112513400191354907522301885366424561518864030265041520622587526974644830596060008664808467397587469403100443050711008032857561852600337068332178341006973073703640321298250395459156645162518016358548892501886490417671308623474164512000978052671659140945866695297194326626136275546662763974798831324207660024708256555168634654157322730379846334974354176053391180554958485171003065047146570917400082202203334208427162102550699829516696232279205206790124999105979017238642175853690642136187723710913388149956001852273629653609206373168397847371498411623140479545716310285083096492946561428907773603095689141375737242200843195367673720751672340211743272646707775707205664465381708610430491301993304747985963516488796461944929528905825730979040950627720666835694427988054961983751273274650760182121520533492208085191762661708361357233342510069683104178207971860650279732577611571650724027365119908613767038988665032755774389422758156617307697218364368019421958476811417575765780225941229369376285483761501137120944477726788390726376506189327449474109264058693198959058559969600972046356710955864259422250713422810831610787854562083865526862249687755895674284009651707897439983645219402878969929676885522509924548113167981196095844999451283017439565864554253492467331927699292211498644288427428218962343777071491438577608058084856427303717135376424530679378694579057523350764388152181065660792707515725288399185157105260056188339108536221275688426153686799818073601708756736421701333242635306193463545436017260388552556774580621314638205488997794379948659252807324771277015335667243051287455111305227076922621510652614798139613012054825955398498290382216585400027871828179452759345759816062682566935359109197025317587895850786425123816902286844088555046233861768093743871255003062767791144604271750236904826053496822003468062797939752823723519731070856662324732554815669120184661565393448604754035740573532649735659449189907361608117631335249185747240294914221910553466942302866373906308379579526522916582302609976507409187334001330523431010303777850787520635165834627784483536836655902705583494796129835056123943390247573969305052295130811046709132498820483153789422613223556634309811418309866847681028257155028682748383397571925873474011536646716826293701552682244212771105239091796931923912773797717688015422468834962014009973227575932939177240864634892836464443538761811383414398882353435306237178360377270922206790149131574946123524864980368060944848857198938411919684715248368996081472224187543173353337423694900817626436893163678853454542857139636032750992289571258032414630563428729318699711759456583631036168351573519241152917458568654839747092069981588999971336036705125178322165870469415652062712941883036728616973277595474898327009337617091038055159386077975183164791131510918328012752515936515048860793988485860993081193493801277896709108478408470943154894557705504550361821811546026502333598662621190754572843333406546559236526779679009724022559037666277015717874530106783684597462424119414609270255181653574496408037076359218204807031707800495030515279198046841480292623759144109388211758454223002587105098974340538019608096706001729446131594353931902155249863917703060325109395966038206235644413794178842765240643899787215289854873908254194811268497400341380587702933160023497523314378325068346832390294862961289177107044987706230858455583007253858193699956274947316552089561794462764776882775111576147049901948228432386802734707467386281475267533372012101071646686196160063377135213782113885721215547739721693304401947166534830268285098055310036760417985335910839912135600946042118254828382608059451163333745999330985400909567553128225040676460073412663544062482616605635769125279981301615925942686486995004724775332770649993846444113929558969146522042990812243906286000465035738126952170225639216821773367320209158675045004788981687036460961518460048557414398817260973844721274644195450198335593231768829557830645802089829527631549073550054654111113719476304362617329785902846513191614666551676635064119334575866713781810984156465929623657690836271607223381478850855063886317749078723491919876798967463625454712604409541681977992207104276402515484331964773905581049610001647059895157852943991917985197806089395678647197363890098524223400054422376311640315186427938021795265684299781428838321389598243939588770155799078394489206709170655203496769986054155902105765147715787378675137125473044660334994239637877962711768362368962445967764401996978693027895704351674431509802289865012877454039340739724267160500255878549888894099384209100168173874898358456289352751707911705490005436219621706429404327806279873786676730222852018370415921352422427596283750372997349591431251129239685319012975356116296723084861743231763892988175402470391522806254684791030979628293430421339402288412931047594043460835668343232495613647542579862544554498896351671364445937935735007027731767348845174887099668250810438991556770998488740178829907494844233167883018060597371518899642950324199139880647782140200104111777478968839555108074211164804227507987793103151151108433831772887252558536680132319275233969078693015925808524191590883768045362608975083421104441911728556321464612372029116740614660357396431901332673511383180868544275306115682200642050776276243163090763395746802731529177990810125354943612591471988752386663993748525397978887930776928132087457027296121993908125462554625410900834305204038710838385722642176756302904930176929511528857908547895413427296790845515266249771074342215376569954921693119003567558879719695936089444056027985322829745923005729290225019186904996051519634665873845766286165583709262295490525587150988780191535985441716721357307006356974623664506999438595865304581695576681415188637516729582855194702568148675216121345853932624252174469525507007692700832805350536951638370248262056345211908643609455087863745556884165147477744660686802732090527456817539515713203754621706982626148475907106925055688718403630005305138681095753887480633463299948769553743481082454131098108373690707510452638146157137362035056374120611543698395643113673185097174963434058322907235834016182906087165871016013042159191713902364589705902734815681072289867195302579683764563989718769225175933155867973340773733043216755653910755754238916160702122717375920700563071368437478212135288989798668217762832572533345183230392747618654039192087965652589286081930704035739642080989321089432200851994167611717527353978882026618744562282022053152831427848303386860279965175179755819883331025625438230416018942339170386337835792103203778668218061890863264867419662008345377267213803004835349669601066224138642725292530005372917737061162348654387360333573151227139300475257703092179902691056833698681470070046680713190090063876906894203541867651074973393824758598638628919011849851605676272063568183641257922449828028996536186177766867781410290398847347627179023486383536719884181537764284357906836358790567005858121342784860173429927311498525829426381306584979321719602718883988881367210302529373730687284284252676818495032793295747070453752303208640889188204692025781143747067742104393146452786589638070408530744824078053943147968235436205409865242544613096095689729925320004693722765192645252347104386806162844150263272906125719272577676314022420185623514890590306131224408194389634712598106722230807362487403882344642804839175997118906930494868693118815733589463337313783064630758220603607272216512039408317360771272291089455309972771304131061415677302487550303033119745936782356969206929008684065517843550699097961301208591342082523653831972164002578438653155268518045595065276218297807292700162623807539845317874932145717674428422404980630487336345595571419216555990693160116854568047578569445825814652541056909421304151860787424364050507570011697845159928514363633141919856220392836363769807369642480231750529550137335897960359874442590363690717246275208403121238030892613188023207103014046119559039673478322147276210394285191545150346992392868606087894827204013155178548892421185875032601207662275879486610780619943166946023124667003664069456988033789419169279093056380077125569611138551110682307186263508781301659159665719956166392695240132819371226867383997102313023718606144240281675000278523701329742800573141233771076730526300291885432184952037726251725196654898586302752019858055528655670174124247813984411479456140361337235929100240288001695428252763700172605581740844534308051145690107092006853751074980056229956793937036094216558524012682608620139896639979818266838146426887629454986869869560183587213324687051751956171604085036070219265934907270251099475725221910842445595207830851434274897958314090611381368732186562478051997330989401100475707181898522937844381414345412750827098497919645792920802355036436353509601251717716805655499827883668720305795332335489227358143909560512229294254511059615665989980158806400542294318769492707622211102847618082615964466027043097290549291809577577590269624782434271968425210667370895391287926957103913170155241989566593796288840942869051952349190754939683374338510867886831129748407742561428880242025456470750857403395398767464470647241224405084157459877316927428065793845108082933471369745731717078012150465560773087987578705024420182513066251328457937966934267465917675447321287297992553229395654158286835862563929622701616958143610479646337016816903837002557364944013958190229025904302917933014131985196006053939593015118034855063021486381739005927865937796283974600501660024561924250559351652393899385785832922591711647601833158673958922691798677199264267707228044516574554501282171307485007367793445470248714883718847668824378185985568323003918292507222124723395438145081249592057273858216386717412145544407200077462566779999303388581438395224684186060994650551174949312624747545411490089929888024475117143941471715620484316616148349019046001190929625568516287760436851209221765372520306632610279260457121123463843089769100576076038205062694894518313368129757008494650362783044503424298855803363561984544505418523948398908251480866797159530872371873295246175261964989059205469690840452251974665477634065536705083961295269437798297198225507400872467579607375592988511922700401408992230997692507290824372529302536554584962933437019516944831600998169538217539750893931830881834902561945268977264011060413490804531314501071393769710546347665429387332788496507788911570443389987596862067766941170235325721969700633559801276796321735405701737387345600278846155575539188888190157937805544173152124711048525279597666087261897929914561575520979704048086756054469428312274540256332191157104455429631522523043608263630844221033568337100347482864619734312032202472443932293380297883927316609665734196648139711732905763186077594191418982874783291136684330253529252496479211019646490652178242802165844480119414837560870626468221705278855586660939730849211724889880705529500413886690763683994300818877934803775541180454695193374369307401500438691562902746936145881457045663729762794944061609311993111741804520449283545614699712876823501751445373892838376800720416806963953649250578693080932586432379583979185083667852687093943396098783481513142366452625415249275587799065325616332081271863536440504910181314864879728064836084966650248920735697536217190475720554079269663844354262130994352432518830971353082340787314154948096657487919620704298132176243781081796600003627805961686458583311024834331251029352663857765397147351005221181616567263513538413677555892138833561375461669015061175377649637297641275729796185460065305881543374664637502467661873682860135938997966104887037321299898807718930345582842479863258650832971647881368783693404315869944158405607310517008074090624232298342148364593754066689887990245296775038063088642462354000679205016940257668422673337762347007385086104194711069943580453445570489168572684254649000937125624761059366963889973127846586244379914413995156946681083926325223181911728640074558763410456288575125505680815252293927925978148617475452694776380447699595505060703040572307480234705742344672410312296534950506517011654313242852197592232503963491802465431634661291802225697714089021233932878860417394101352631152036911145392003875410900121740080037076406806582462780508755720410542581570457315479309584722082919046179453753955470558955349046238100816637319455023584810199222719291201617752024446686059009664014265572476843653318670352206558014589136521421488427956558662705933887491878639391231094985612126299412921957055098215904145913861125266562187945691785864140841846629181231277170185607642984140347592485979536413929570029539960004476524174118063609089107032993576012356745028948966724368311323482735638137007848180922045444878697136394407140683810853750237906792549199074354539111875441697879774458807061279467910261059726785068754968619102664289872660415540003559370620961468777480211955901297443475619036901503229876507442116594074948464211635836077421426796439831027568155546121057167915310722177793025457322874537292989194954644443021474349443399152619976461756050044687614144519713784817621178977241435546735467024250734783642218978843024064895284631438816343507529653333478207439874478442439483437862158000529594120169584499759566219531459463851706574494064454137708838532274753954622674721781641078597150626394829117437331691230877947558401624524346731607652792303833610840339322785923043706961423361851512020163003710647339236015940934876141393157801473755209993057143969093614178086869200812729995012689406338154594261804252487070552936951201209338500618267008961125574026292842893977981995365853346768901352513316544784862113897579395337638477043789600054374631526792261265540350013294479593320389950440369123410089565126418333271896351165130651176712022579372906101484235246743785474046961258221106399832604515812547546779293221601003968918351668673368303931362985329988728773133651400992007718115949585299647818660678895687304129796819333868640365429982502489760838987278799683224799486129062153811952781175065350076812703463806998532134523960704085038220311383731246735440854003549805598897628482182550298417519242138199529518355344031257843107666981982362890498595699397614720195040741534182884971636795557299811576928990294536517544152653286097253112470609774310064281021572319914392872471828409399674138326975913701920603934524244628182094162053668835891745861519946102892975861163326253936348579165089549747556108870430826578335339548720604361931381687421184175298180045024624013213889215413540631633023821615654645339912191886658802828303673099471289780816548788972062587681901474865764326474554358647966050544193140078330581576657539339176601496901725110135193032764125437908172466899998107870743298828606321054287292306846189654216257857556016125523403005801973294312555344214886520699809700430142983450790538092344582436794387491628148340152942878299190846211322390876235024637891877012267547630879194532414911410912534877347045290222856769737570216702723515203683228144986530301933624735824640022653017817862306131826734757455627191831385937038694232240607834158561737501481032037951001913262226859162075839999284142583607550237036751437347250061084565212317820690269323271707170180717500766710702438300882134956211420966662792576294753536561223119630348729799239612956100144117684309914435980655668473318377111148982516686052882431582966815773674293017505309619663515876755386412883686464016803290102098364145390136182012310600000775796607677144532374490366645381903303565964053774848637705689195214360679643287026511419820587140996218849541275905528966271743716378701546311823499580805167263878986901169705743325252330668811410230906371609653933829175424740572281318248528656220140842948358903054331768669388627252990137430129882853320414925964724870842887086812156215565905552011876699209953492885869512934925620588529975945981473505525503315145734981302496356660057156212941288201622999848145291580272745294336713461339895499251972614295467134110655087486873567899050526184186494670036261545565178590074743468302203353062126331982820548103883294377278480154352985423406909915122071140819165328421628682826366356108343235666218458349658424351140825271341844670438854605640891533111831123911860539878116762767613703658428481807313920056249047162328232991080660606647062640354285919007969734730188705856542992129141065083105024921181152561006374229243293904732428585904369109978087368701612715657608625272563041379461868532715908948468280276438781968830346901398630993534890439939614131385964628843854485451786146989483635930250233388861386605788253493820429754205348196605394372643477979135529870904409751671425654917341865740283310563786899303765618156623518204755499419434971521548912142520647079290437621284540363565400426443885879915446526504588441502208348189980825237626378349391929908774186331195023335535079509550198504429464600379207703264723165383716779763225510461508344705727864984310406919552119029089819095506643754003665989157129669037382605868862209431585676214169462770034461465588370961454183836781653264671798870475162420027698410568104993479741747427555662383448218723949255987248081790288697917808211307826673882271756995368158100683494417701411035314110709827967960457421557346773729313183574290098817251070700102705681610590925619773872526295496706438269748763152709963323153897802141958462837023585522802977580214061912503939000954972068969229351548709957962168186517294143002365100714102755589431262349994526217425183407314951822665413670711205435950477052984055164144082316040094148593227671833561041031952334848460795236466106998696317658850281933170909277543809750296912928290287182718686765605656010388362597476899331918150868463510202044431914159077236468302553916808891377426723321399471288497759795397734792296789362193099251120066301156617390657573683767636593718921142236849912021475571972230557410057254525724538555650568646053711226822679501929631039458441745580652122388934673777811748771108535856365104804007023513841408394344914958733631703374524744207690310465894028070652040490102610180630714409508901183652829100104263112612172301607303914278299826054825937487197078945590863342170565376911559913371696415252912586550719274834593711307562682233144193075059940067353636503729355007679804215121435197253256056226439454141131674729877836871409967589656307019969560824628014504911991240712185748053706939640389212346469787122550669606965161506813006062941074008047075701309161735077334755648772547369122521509813503319299338334382107885543833236187356907160805455809843670057435085075319940976596533687210434933222806188349920048278738112527503049208888174846428319016539600630466502915620890532294731999667891042999177453412876891030909976718814803093271626981236572060433159649649342053593097499554635341599843823862049425069393201426663783689481202199761417986083058983829390067395145517573549997170753892480315294109011851492614087594473721159393289263705069583299181008620840410286489923463260345642370424824257063909129380801704659653630724144928183755330479486233506336636375886561058906603353162911176597900236530121728575366201890101649815977724729054022670786268338777301117009431851403577621945481676206437531968784148518425893448140529583996384970253959762126359785945669110637060133227953341910530379540425978304137667516749768787465299649178342336427000745475481949471359866806915666645853291490308232059890281205878126815767430930721017613582263189992887973230932010149232126373267151796495548968924776611843154567161757493938401616522907844089423150876687054665275793238805549126661693777598953925561080406938118224800051350809372046686020039055009141165394481995941732187190340971882559072629584283719770085817941850701023924759988289613573778756435885496342561146780783340518710951312575999931805190921902266561569503928261947901601702312243305754431260654464625008686622748043866744194420153942603811557827540000404020712181901315746401093427335748336101469403685451256443203470752844838931754561764631572209287810279912029021892238282470350546338309419447797469130882924572050292206249855523551056541643045762988641768062017411348089234227288347454320119807266068956925882293270245447753472176552839080617430025428281598287674713598313924867754531846844608380481508156635419462565813296359550594829076330106815644966517880328377723442649573476209397575955793063867100477743934006498340550723621811989484482127172777851389956849044762700861312697815775722954647603359273556343018515256595829201382091502262008800317497285389982150390653559331282828353022910424849910104096008081292273713451581458295962514381717546634167630658001246761930273939749682827160964943723113557562907810196124240298111767982618671404839546685238558072759405609329731240555537304479929325649327981148318332021373111562324040925444193621712935732155195558269307036208693910309562625792884944657181752916336105084401385563679207115718885798851349629804275613855008281669530390869896208029030355380062556321403668177908180211648438779482785129378171151953129206025349939787617546408001885491126509477377940338081385165821773654742122319328208269808040149053483955039643892782029247237348271696437467813541562307929349307240336751699252188922405669614699681473878851860314289763537976243242698191015966561818629392204880958915352336772256873643846681697674177357449240277324427185217245824903794440288306738445640018536560746541756053710825468179256936469644180207220767950152974675083841352311356162549952917635141688384581887938427692077003633081667441340571715043076445505570862019621875090213884932155884931463611851668192193333106871041572192225845136232219900267083802223487321575797119113968268038488404028145926959232839596418866267961493051598203711862831094501976913355793881589511415327250422495358886450529525188569766476775406419896461256327822597017023337558520886222182600285359281446308610907067417161261230022530622943269439780326835730088162486844963806183381290631720666982539273397400494758569587351393454769511348187322641752631190577688592198023732093522988172495982321802051416465423317460267710479573856951746726028070968152504373358982055047400803013301755815227169530967519720161200920566230877542871069645863471374280667516783193735132565221483833173672308119816534223980262474376558947675692163436877669156494799894490895333548260863798232539491667268994167499834770469902146408996837582495058290814533142200622637026588908567589263050621772504590274990999327919762378666652919186395587687935663877764742766951607896083931623525292783250364155846780246181598805142926914406989652471948193396323136854634186509092841382717252169538362006323009210996206249425060811181486751298160865486378491683891420244074612537349911807444468004565780723476210113068446077979422132044175184816160101908431185778373692302853393992756111160625500938380159311511135907852162560485386914323812245904299772946964322273715189525802973366045356007075343804126696705867914369328092183041139251793786077259043301053693860564531228257539431737223358522116815430443635849742772083634227879617830153625028018585784844259719867132834248512769481082148289899874543172209779240360832619873253615859560141938413651762588232316649713661871498820913042815510162243911604524963384256540786205403968475984137295093158148777371240187179778380478989949436542977673257015705381263785222746972467874241300793642328497818478384187095000920272327654649817697185631159468301209971547273531735570252640974294862538148140078594209375626383946867371632446500669475670531599472687811256170460064074445580742901999701262105369442807140922166151821307934869897283700119529308107366672854879857871482235316879674787357526619385423624000713911305675550338852901423771854164892294155671638458861411106333383120411085276458284026102555584547225937596187234636430993963801234448925565298982720299003678439151041868749582442954626212615552519867450944465290221964963295540000703852105632196765824842265073312536205462602686845226609688804383804743726232331616660159127936881995940502571999932917673393102710012595360946943796638596808326643193164965849633977291944145183731667573688536451820230238148263770653011391128913691346249132791260325353459199163234527758142476660279547954070433050957305857105121982912094431653359432408468138074887538729708537544168280660988493506669963728979443165679268763670660592266495503521043083435714033518387756174209630866622504815251137848588257002504051583861836164507635919756645647121506198985206274610720778853409008974133378884529056064324678372378442381162453960789731143333706096052597301996509374395456246686628124327527788178576450978686549138923396145393872016099547277316887599733216771184419958948486142610389151875753635313900844721671593136105659055230688227016390060464654237193404309850825077350154851993174718357373044915069497572480079084269359829143830931389855487549423227449491627921911744168176225851532923090627028862627327172713736747288536386212322152156598140143461744208641223824870184217621137984800128918461150291340723510400996828163551558849625934702284245296564463145812208779641481397405213189828785428426965782243489218621245340214229187382487983128365520838811022350458713289651197529723939560011425296402196067696795758147935979993141849812041111542822165132392559070987481632337101916113979198131133436287560851913682356263775811195201592830109802456170110222573672111807537839399705619783478589980103958642732946843133101094687964634297877722682194448056999245536854601675335399408618117622592942776471534124000027690102741176192399224871721293219882821321458155833081032767665682157622328610235788886649557570655197671423095042057620106160092703642002340450972083564857718166824151192694485068151862935190561171280365926782136985075087749822073193348619790072589775826641428063197595598631453709706547766476800725878500630994010878945547097206380389483693036970026974582925418893568276976759232867767101698035097327693602728831210398704047295073357317572232713912886823089697758812579145493793429853594473006165593150559024506929018029493965319372764130759794350301861951828494006827945565927733810621490164498834284750153040835721432245892652000275214846886135202683202012356504519019118723235591670372329790345978755069469277215711471823799668074639072294512299085346532617467973382168394091646111762121075682647338261461487802212088546109416072495014616471801755745231575725649165520169646279706183473704619611947071931661127537770751989446486891611246406779934062221965068659137053103623391875928196574161078398298795138647707406451422449302925240762368664335949866113933096820043150156117174402845705892934250488997230280359024388557971513154588328461904663148881300544616501061916339253963249956689188558120768329613750231954026330963046940512479868495658727645287697099156573617747339190531248684494625872269120955020707217071621879679187760705580481015192295074326337820027918311553682643767887579911981167968873963177814529954425665773092756714329124847023022786475224533540251407909491825462535291014393522896664824298455993425575591777585758242352338973747484463340047259313572926244839848777017654813188066970615022889309610656882030057928247768456505759164018129455869688032645811705112881260506082220110294813788676234788832482528250394668865604791472434959362408575339314941285595065802576280008906356881492320951921640031880972999198025467032863218567448770476679740080524449412301925770616860793333772616679523723102256030456073494572063560313170703759627214649019425087954259668365673496784779640178627750094170839259651792113718885026960580859287154656418538911511244828095751369332743829787840259129242527015238018394282776423077865998007149900112718626725697797493558585882762078441921011501227555741779763862705852706545988937833296495187701152644142164487520863294241085419318611140968276285129014378480234391248047246668281527727431154896462556708029122941047036654412796194587245160059110000895993476482685734682460496951136801911314321302307246634163734250901921361990587934861030116849136703125159321122314328916323155148639038920490730467537906033384814622379047633637202231768335411432973333114189394247379319875513336595192369206055641815362927457172495382044574747097433811199825206939055925739070777436069154483495464543945550651751304659388351630848247463410990519949623679710358992713562010978505616249952318905021558146844677246361554697831683248275696313571755831470789709172877833718048519895459843828596699776869250594382809953116380964438179977603501130870739448519285162549058903110872332963148825592074274014344023881471254559590700119366547096738912587270273568527307775193968862038706430537341996367859408521578977244356095538320973712223499363623409298990125319603399472142957874751476855432173216712746227680332330005638232707227545294942172575194125105391672186433585944534926876922082387331430039261354663005729636733155649097959804899247266938645643746202249683380000505578982685667696711428018767262177865576649157700352461100932794682563677161539624379277129483813797234472909685220531233182015789584479574840496654262502039567468235473353258966746482118862207730244164139640057439589934451240708100231076667283429860057554936374749864908555630488045734980897457849263197751447359585777356307725467852982333254687020095719748961900232497446877253504533172730924230889057883062072728554985674679048486118049266536573811130031825472998778742263224505235417218301325634179543964983867938294564119675227721807970795055644450838043578920044101599100871056208654575358619881337544255212730289424165307580303308079636039796066642428157932448605287249560748740903618136406243020176522623955868368289209627492460911889429190221269876819746106434478899463354904936758430485143499806460954496732887730015221544029568123453448946932592349798557860792193479042487386442067922841925132730049639053883815793747911629959337347104425865737219183591342311892468121510056417553783567312752772033942084577330932293933774147462912041433642375845322780010418199175484164690798896663803490314042085797512767023436973090178204120231201633237068160980961937623835316642814678085660722089493781405850826582561206415669080391330145037873747008619163420786896584131327336331436338237259869247856701081988720614943101160093264302053451943668673098889365873618527462830468486508658931662844174281581343991205834318479331438251361257686530937757477371966080824138797890956863192427878213653414535171512012415632145577261257171154237575230435611185589196631444230869366705119913815340322621062159439742712076546523176519896642447526204715190969891744551184374331256041120600048106283417744951899906102213412644534006534857615800633640466882739220226192144757111594145475705652435388670821749955628890890167708239731020519483887183549834328808886071103617690332310781379630557273898112912770386827993216590405314689632598639194291520764412183740533566895819942652091520607223478701115078494599263794258273810045609373403738470052604324004765151033974426291589785942161902765461243710073141533133956067012099235705589355558643733246623936827338137666098856138608175608552575188182298236562059303984802684689256483157272038196342750244905381387122728365381381741189038186293706687965527401835160110677721544274876318669385166526891909669324124145765251754771386167907074687690502863083641493189655956235427862455158759933740486888805936350947640464042266902373943469381319809455398305963795278500402818801715189687315831068254147354750483209376687988786820162497720796546229659986970928634442711878404326348465824167244160379004862906335227396263264368969521863745855477379277081083209980065603785497861792816823801844373777396596758291322060125539286970613118307574973649821014731399951378011958363046578458621881944149784937009840275600685498026335735027690350133491599941063406154707873329060370723116124034187055078837900089817694702597408126366340233205234759494628647720279625211368644837784212775470890607510255301454648072545962761137431679308322714444951825155320253068899305853194831806190976281801667723036121660678136951717648759790641767207827490044745667114390302618481170988221888916649639386851319346911259894986247734192221039293185653734628244718989578758679611281511099659370100378346036699083660549953931420999423492601951720056003498594040963539910547277394697990413578702263206920254549841657267742794639612974391368521794850340618077285098742812276901141368164028467528875427664834717285451238985915716062110621038611504145324978791301213806889378088785741135694023601086117274749076863458679625973610019911702986963967536056330358598505902404485705231443082279855858042106676069784668585613992053252487035554585370101077350088649519635411914539954755706552627758435765745846125841563107474953677019045088460451789610356300964498325679803052637110090348336832738009258557839639769788757455040977616660990279542918858930891795098681231156305389211681423379581310829419130185387664983843266604890968801860786989969463951952355412235444495109149042793265931689165384524647612102977323804949102697206319731445768722301888645472310352033608803273451892514604283782723573738137990445139646145877241578009918294527691148925644955445782081125854974629912272326464903975079642306002619452609812386038941728525697644742742928937816441022597827808080938118848982866564507504699035503682364045702878619264007846083106256689672105151078759980626053310210012235808990878645255277392745448389494246097730976810328818104837755849053575436985478248720979623960285646337036722444725602653139281324322602774944601780118006435380465617724182884415379327973303165642625496445752478522515140333292180299436366892004502808793014583626559274530369320858199236858240582449286797047004892934103674324968078716780528715571526979538731761613935613259300309851874585260746042807145302953344424836352786309151458111677033843498109034713808687989512890927047103603336771077814083484462468606147254988365476714350789716501445276993860022792288731246161188868651454875712458758319486681960713512978097342890093482996091613721718408056889128483203073780439902980119776744595260872450178788482758220314160796646845338401373003633935223913261746422839714692012729341080322401486297890741356362043551958301512406087823579905459937055983399639642725428884443219350837396044412680349885498678014241201398479946947426725134575043284161152831893433625782555576248604469892081082951581213080747248488317379714406575523709296204687229229750573904325529358481198026632909340398949735809290273565026520968628278766926541661877936514649996335189185919828112371770580851290889147989502296980227753697818326436580306594608092400801768907232584144129719282424720380048659076248329843266612530268510334990265765785799633057285781580448150653414729103401186510752757591462138595755579846533174652421247970356296576484971699687784598414328136415062658803237353726720510020391872086548894049163339238448057175638872509301231379069730344640283694891453218747968903689080091910769648752267931968839730831363285516442848545438955119235162670552416610116191939562321215404474588449317760332645864833269999532761311560819867303179877709688547320697361110696873523008666132573282355451328892707358403815808959340954004776686337388220989994775888725251392894710257611581130581373079256950891110603633747143004818074544707123585696701876163044024859281029412448165330430019767812518488732429146546537476530840785629909045373784763916341069713494831641494317725925735989877414104258525650646992257533386670229379992990248338449796361658260177037602404285435251468929382667737884010050407781498010651565529747650230253048184829022351663490708944987681119612151065080708845289402983031913436947886071972309108790654545592904426962102412650896208002377548637921900582213754179945136773755029344213947834384540882496830055969807227427147523461863844963300372011058488444262822847183566951057836418070908711811976341346792304827999192942334443433745265711851958275817242955697536554765355857153715878867315582373179120358194336859024611689549358454843810218209805645667115227811115286631487979122410467150345412263591740231050726757815651690794975354569546610234350635178926282007387671578418448532331264748169641045009329526393910725514026380972345074214526634679124879921950424950639835057563167002422209788884501423549332644770854207329564200647999045672828827308973634240163559815127165585708760263193476035747971136732284425449546141241031441121365329590731844662678111062740199008005740851336021711329191019148172385811035976323362159445906860688581745827210663607832472110553988228531116230830772249320718760314283554972399990954386747911904120640958163503069215365395255939829108364440577894768655906426959078555889278014811531296052829739637830522396568797932913415829562315501056197500574788258435068389480272013168005449241765541341553672296781867226297521935729676215974572929982784576999581857012470410652755234709316760210887462018949830999056268035473239191743880352852394519685590226299123405562366816842026140659460166142689816364896322670567145452761552084031997755218112222830694640282754583090788009525538267001174808944008582442234484090144393099507604587499296092919448678728424465529426035504015366304857278457506789033420637548565180260586465453504923154636606721495597923199612838925660686245382196621379095614180948196268023483737048644539098579604117131070124331472277069438162426160779174735893060403221611731902362901081241463468239091014747845348126473693937803450866902011785409226918907211390842736264008402256095279536622268780363107499295189633493724780784246207738545646297469856781877946413327755959495919858741916684478301866887582598506335809530473059262795878826628135669574185663518366296779633536616256900065883452847893261230794253332120934313098617001394022451593986301533002758857448261555201163216558305401109024799131744318609478889442471917656585739383361529389164631578777520692609899223778427210762267547136296772652833826045803154881842918345790562055852313846748688098747574182995143608952757114896969846591330551571824901726406346947383162248457029568821347832186005021975794932795753714019469198710339192150346011748954935005764831184800383210704551000319729946062669081703284652326380242248581740354229851081369311162482037815682402670540265060927629574130039459067445279197996647299332750032387853445521820309695277254118331319492983745429967434508349456920794558330895721941669742554468253386465610665141619474027323306891805548871442397014824881413024333221160282289288031591327546040639314475650451024707847827003100830623983379035059208538782367438487469071591071661383527097558515843491321035012225586592857429605107691468925290223593827912711007177987873789790206010405379271265542602785723538506654446667038666314508709916557153712069207844262872580323455856531437854325903901816838600532754965792572606903799575988813473068888074744754711193224014850571325800645281485106494506217879717366536758124185561781818650925659150896785883853734600693514976694020085414241195861577381990261801995755581062254836164041062076309017585607457388473264507133385756546041732533711302801378940793857936433995336278092312108397002330283646942338620299103313769745072519281930448106053614889812723727553453645151798438699737572972344796175412263854325015231780839725572687850225687121681353425390283478101919154203432425934609133113642510731939943370384323886137588056827156164854936538023785090393483362248227318207409968453296642006626803726878202648670578298511928450302215815053035641756893775421063138794300816908619258742869875467550923494473961567075925019168369112930377480495519909703982336382636489135058430399648195723621157407725768233699070237446393542927020534604480383102314448114591379538474923915729431278074120440608030975872966973107181984410669334082604969841515771659295519486558164867577942339368988277590035789421276160470473421167218792048876942331963840544994751115932547961762393849853824019647708185209486485592422877324966873003010246261044667690852545609760525276754260972217580423153215767353290753481536411137564033449376447731570107441776235823186517003547205375940431782459913359833918178190963298981513912575431913898337254405281508154570310228968029957722750833121165977042219982689658324694122451128329498987297002528869278200885612715994977513562152414462120118572601525246972290915140464075319219928173428032761859964570258021156017462090635890751861757530000424919672009214856764015969761597040573694259035682705762172698082612584580596167061886633284026338564828642610385930749007326146476834590415787979304998205059043213002388639330297873873619627553321859580126622163258466407754647657936338085449649570965549194681612051155694391080796813539384605975006717950631025612247952719960465708625384312721919452003105093191236947954585612237929584674483220803838519266315323828450706222355416355752016048458595787727964356640792897731517789254324601637419516533248548662125998117972463576280561784916758392325772236684392313904636250636402302831723001378553839784405960356833268427992665461606721109596063883424295043002336365108733945914246608246878679142241097259955121353439193233952088570015903804469826631106954585363846429954740680406796096334008965964761233501181547182215652025938005625906215027290122242604041472615840342781626054598733857245637147779216047482744334411129673123767611986297866986308024179500473099054868078683929009975257836056842325273451249388464642611743784590176544695409651594708729976507112762666117578696019032897428626383480646025835183651959147287102541609034171076266775815046516946254495799382899617866660985727357260685506695869037572305499557209062621713947039685039523631294487087415247642250606521669707955283041281086860497392295365924315417259939327074860795667414593870684123275004166908602576148758879876235936734754629304596834705781824339237473999249931821377630383752990385151049213862685594862282898029098604098401166507322289995322405622348477842690882777333300252095707163878913757283611131615082824058677480612837809976588122450097507098479143992524014162240532859851784060267753381922826784952788667245689333759451607319568621685606351203502463099283741850780760420477384305325483876359241255753163645229316351178652228232896444831910269247416363399928053530936659261798644249549488461748132899568137313948309594995811247355548837387112521903370051546804023677832615442406566906224043635791995891916187319853048280061974222320988366936470840181232141747627673223947330600405172628593548541188246139912254599360462896971413416520309350257355936126114513964764664902106275445737497714471550805888268603135966157597888808251340841751240842314218875957026396166667684217885015116650295955978618415960547920178554811646541858311314120912782845969044480818199806314389038052207497099964459268042684734454155781033449320595015632019630539762141807399086270848064303217800247609014397715642312007226354349327379915731551859110065247277485199710198477976655689449196716486168670790375717066483562808032596486767340458420568650181937024269525364816955814590909365907807686812438639934256553533046505678506554865557128211838173965998363357678030887104057297206384819470482333079352209060843986280183867089529794945590339803975056823449353678374441469885388804528100813606255832951931121193475177628452066519222252738669692630025665605713798746774722632191103954463938461218455857756926921127446965654071571414181979492296144640390215239365217131970168237910162539056307962867690370366999872010105519727588390490266619397164834811497423911738704227142950498039184409203535350564648264709088316271727043914121423842292160092712912360067010295249048268895285813608494320353804135696451593092433827730106982907400363781910721422010919069241872160277555804593264901521505941423353135286277882691268505700877094417670821111780339161323107788454769589235628606267690636811548086194488650598563498242078522482102735571711682860437427930019053242147326980760359336634855924681912023947148092123328418605006258537910855539500693514325721418217342416965828916871047738311059705099813494096939955335172453464547253019452500219704236725633941992595913903004372603897653397233310189273199803667869665461398075380015007499405896396569604444634104888910187725401758136482992701898931874351475719511901643262456514200623107476545219553062209409076226563967703182232859593609028162523062797685291067138807712746419025705602446123783078902648548600649008785877722458281102434493870661477445356793732071453340808324961036860031648711604557638529640009288990565903880787201538168686057845360262395376158436587641315689542018451668042531125090612805758605185126126126372701960423621901669912907552891484255000203166394336803204057114116042375798035856595631247499469569849513586761717161486134211876492199857402360452581553140087609299196474462881338290732168822691315735551490184217278167785213038366037635612900768544531563881090587180694081778190789574514335959383903513995923221581547874786726203342273037795254810134334887011269882527069457297044292547385863958940316252418176801033883738925978285637951334907225664398213604080607695122990547942207745586977993303444390441999735760797502802035252928636562271663753010434815414543327065339165099594673587113493338216698948567055738078220021731209391530078265261286845142429072659990570958254860430354523299996515557814617689528577805366548948592631729117062620382979801608412159318818869629028287157978717936884904025766919694789119701664230794471163004796916602963366541165671412926658386416765584258346626506690416995107981990415638970961657836067803458038588754904398366811079462592280948439890034735745765722127802050766361242474530272832779197536870946026921102641285052046477151131959097597847520095406773721741184399590135072729305996362535527518365125842604722808130501701636458298879529638747352394422898404127423076692657538919129379270227358715890678007404859216483963090839234039884009512873222983061853071494441245528974454318958561187400018095275209628513711725684572621954387878592562737224001189285921097359177445309099137601857105133655268996097982796691301664713645669707323708148465349387888981009948329822204546100201720436127512031538116582991015118694304911447593744151199214827769884667239091980921508515824456105200887185460698730137255363463299564455463872644523269557824381689553110896531340698420412186385006905379902901129655602973049646054821960184977149958716016018632187928577655514826098688914664178674355486398857672164079809930784644700415892529812120080775469404448690228534770939508682132340733873815211764044476048345552930529995893020716502131845576085163782416290715979408661795263226509087062500009785294598803412110825577607201418877274907101283893632437344755327661099462982029247845727959599586690604600010182553848674565658275750715858729686771675111487265212206589305147029816991145935759706240523820427201676090897193644031047142701890112291972783281602113559756325548699992243388504519858282629103818226122655992591597082919786233193166881062975254106841171086259870307144086083889081617340183945217867616910217840007057215115331818346398109048550598419080653798403931967652618254901449628263813136868301905372776290221408228253205031575814491105214969340080059171842886747423281889208221098707510096094222717960611868752310865130548794073032475585515857271295685166711502658575372152497020735665542874804818838168943809294719392497078342691198162104713083095702791440448875294465222880916426932212089143735326343470189414186549875808544389783754276111604821944985733991946416345105882759641507497086868706533308767468551708636722004133550690898227033638087248324773623842767127299827900047237503365691359648505894871179717735895375235172704532988089768706037171689381311492611799076386817572277825030379948105309971413321067911176939082497857595017347343274863356684315499742555434287981387288858840828665550630311692303426240065192461820851294051384109438338309943373235611840834156109525474454266787441539452743808547815748171805542923017257708254215514552311689815984157630331041024867859344513956337205688588906905711908399969799521334483952287592283977865693169705450275524986037593813800658952570565487153992594249997173171679762518307807180065173051529563382632793212718062695948063416496910211160236464323589047724347766517250437018826211584376442266662047512782523518870217898027267280277118227731521030358726420824528988433168315791666499256821611449903424669515324639135704780768526898998489320525337210124674485594511686982516508631506559023350608946133259647585740474307164510219889646668576509308330045681872757241680767059216043554681009292559395648953329502797156721892027325708150627709071738710313238424960099196766657262124887134992056972358693324073811177055732346090215798472234521382771579580347220540258966441539053412137447005089033871538349390783651145807920272101479062979899235730340324996976240607889732184310882449308266190802622049990112859749295562772174646114689939294010594942097338175943828780250444099687534019038860177170124591227676884675715236965521220057724245036539737696902851785827201084335983398454456817840625749043191708774382410403186714142041720368114298950367725654607105012860183188433059026704135914468999688471783347040829146812415474309300998153842585056327604739087689049279322492409534991903416211544608213898364543627345255421371578915213206037656434612877334642326527949078838192386444755770595009119444142257604748727334642460795924629817046415346065133084095714764871552128608657847073529551768127582320953381637314429047417984026893595113836233619036522193686948953929298610560654350579702715511242608643085927282057320382452863375360040537159776632209913491222622982155246441341529456551577015191898692407298625805270698483128954807962543531974171285842576611402820095349691802167787509064096388938910484504664086575037294052210411280009547319660046500439442168485942209014452429272225584905936638244027733283626450303053353993096987770343090712332576249414960161079242873166852638845275126706030057076410952614298966488181203960638734084985550094173219877966753274996201186977256904144690206247765655350656642375914691733307274891543405830080707221480983167748193021736845370021228649151994480864391860713650673852662802901568680073865848269567625421052986411659338692482538337878752134922296988954977033420478617409807162101844151617722148191100437333711693674308773266973085990103719739779496102842916186841275756991398649211424787814353108830701287103774766452424063043283708377315256119447305575523791098461773531290644241044708945166904880695091460731826894492787888493093950009950702290353435392133255894765250328071052854241242946878306631082799514039926485381943346180295601431124328564846965317170173912538789746660971453942277274101144239387958959878910545664104268147891162685728035996783039870978666344440474495023780537494089169791738537209747073452739794605724927590824927825833506825690837808354569363668173955915005489117122945893425019397020896398720423360813109299527818850402771287385744354705819714490571304159192507557151185687124513861708461376219948138815550829388483756914525902356397006311126012211800437038477707067215788291447250470385711950858809347550637483829353177753808855894117419263293749543000850722248392228754394422626269598191189695630525279099346294615360936163549447879175037771374159070623175967245583685325998421558810316256244427655499025327501763136294312779601191643050971695953211299204527177449654633602651536565828841936387933775355221000752330624993891708860305513498245420332860149882251892444978971365438878760732583968694123983880820433462661172204379981330742351367849908458648166662862011101678772854932272589731796290083893809378368862243092816036269180732135646537153505048869164778779185842773790818861314754357370438396416108668454477860518569883643545539414674488362256907582297656680517777748487429731521740717222408996252027134463802893843314525169836380731179921467836533342174788805977284261602035843082892445143907954874192059946703109376776927346001157263547865330378705088255862616916954752736042627652426280382477111290356531092061375501041535163500294773602803042651560687044503456586532737488831388713636012808339131268504056973058262367506066185397615704174217427594094047776629585609930464445369693571312353313901844731016702853668941803502361632619326787257731214972498245087303034204762585225658713844171927986481349699003368236635925882060107514213059935405118239822139359584242128868015569496013163426588392290351702963854931431202685751720924341677167595367385459589156304151543408885004160670533466540828130700832897761488249696289240160421141615103617977793210297134762657997940215469978038778479401598816085214213535304149794348531891952830115750065558526423618771644236083078973458250523293243640264375924591800563290872305076297036484355086967621331082877017716349377640015740770619290997731183271570537209205365402970776786726653277933085996580010922173623890413584279519335088822145436519113434014342809428932147888483073872577049742533246466094835351665781767074465378364802847096926101318645029312296165994373555820292882023445072827713813735310873868156668468058416553952406315115736792154911263247750126529807086865320787180461286792428807755570652927825941943007588427801209591016637750414014314456516093920421399550727498787244571094135555045015722897094705928715478578423754955553068827716278606818246476471999729800367332877207475226535910397549640886425476524143137886190662271392033748303555382843444764459824363406532781363195780834389918402072956331227424040632911369762268565400010623898604781668629777784031279489991707396723067522162950965287896315037828467679161096745584887359347549108669196172246037943326536717532667964275759439960499766806612040016533028504949972860704275425093720773858637004154410260595244937075850036378413818607795676066806461723429500752397765145943294896719001839450853507115250826284545345273757796912248333719234276158203080146280176756282502407146025097160563093176724593076048688248790053847158052075074482030526496689819994025157949423211590278410432542583533717778889923951746366574326137285181100529275734664184818518156994434040881803768753519740663630478337284405581819299431249282069957456142382665305098134466430096988357988999333648249647226676786609483821820069176447799515410064831495092340231329855502076012976597654825143221427726580666575578245211435118357337237730492437142595702958551587115638880779956709924041678394507854184745979089815804130829675468152034660396987843938308183923747716278977138284443405134095116842773409217690725247631089224446647891168794325132220073651534562311855013874215233544503089388539861014611069074891095663596629481504685467562292894151089237294319319561491823182561129060258364287817219492917534538823527993628588963636795180669943553947379606788386394329921827855684125586779954979546133028786214646515713991659140284587348702705261069817062568063586601281644979724666816416196987988677368474709635196349675767724117193889891161841016757249065281230163968169315003082520148974579738890015268240237779830972400463108506499741059120950157077584141489180528324673061835140951749137078851259753482476926500423685462358436015970729618280443091680263700578592151137220121658572233654137444476594139549643955313251616096580180992087790835257903757726750622322518588306075693231895633747331807153668699884986386914370393791379690217509625869284257169129054200208155469777726908846915524811744999365707260485043950809189432853044749398963006031851877274582105246557741081225485874613984102455231546972860561599004919730133874530431602324644992651250170425989598182556523887587795429109096721908835535777249868613661528049587621544173261930411792496997142364803945636309930720835169224953962020083881511918372444522752636688920992957667709566738351889661959616053753500860232336482872126727945718259271787177324843095828273573981941079466564284153735209789228890021037317202758664290118383502401038262269418554517462360055390533684447990378023149350091043351555983611865012604956960259134576936587622265577063207518025910297097449295178885420211929716912663104142091401078642523861320813476345472977531744085673221032254607393016774189560202729920316247975376862780784597105213268572645373624225531925095186171876013451124337629905355546195917525480430389044173761791316962743448785311550195253699780779344712638424889934358191719567296122165205346223085534104546175351602853035317060140881213637333458637474490071286834136213074664314991962645876623832479456855495264936646501737302526991190873488938380822049031399905056275443988904463472232565858598791188668874080697010320268203991645965393982763139767575867563066119124852892485699495545274758259583805926698056690931527911877302059789706313787089338832207095089767335300855561529457849364066391245229601266959600962624923623543500671735657509324621100978763878594000378111225548186286591913026546612160749803532560234435636763124118158964697385615082951931800657154126306228994298631809447088299969778236008373193275931245373029308031970839167921123822037759386912820570401257724448615797828970323720982431419952191356933990701376486572379409018973102677314647704915431246335314923116498284611912232044329798798865455048855028172241271964129621425524408143383318483554853164891565559472845494159518329931788517978572333349821971674522093982279470389483093870068880950095001760186510756826190182122598791106735765741023718866272469935107575855314875850606889265301101838718983521117215435351275938264329690222339493804597637855809073171634956875032708986570450916388205248079423522275356870825602603182812925772700379918530126352379901061942595703521979786946037934090907681690393742403294222448564906242924069041355557978176280993978467808750873788927217350541572168610625243531297175287017002171389265268626196686871238222001808199810556711287217886692866514086857307314203026029417580061475433969961445419578017347130745325184665024873918663122659126015660236378626652016174160913156721283704302383185801183603595637611440219634198851777358715380279808392396230695928944502881270771132659792205383647524900638650538467352654712796013927057425335723992843925668211900759207612282727238608562138276534993392172288313289294444554185591185233251318300351279137925207603882293290768317757284347671056843279974476200796878545960902303706015474437242611467397637614102508918193427878230418831155679580454124311921034413514902690955017999960420723226099427493619621259445847015799426738408269168070342003733428173588242204803457761918055384418670610927864754468711090427656490961336789669320618650990481167965986055034049205961741584031837366244498788910350470616500092549942339456621656246048636275236757195846212709710103586783737628594551903569480784184420461164274326860787480844054251871227322220026214347989542952826749324038150098184804657007841619183863492574776926460569176755318367548227892033180272665310931271164367933819622800959541330478706842758615783981596678635312212649107416283403637584898673238782661376903593013623242961560311663457950334806960414680959998514167331564166366106381359333702910558095186100259659693358538133702667209303857425742167864290636425462777371245161425008963865385952758013222891865379060793284411531239571944333059711167462664902389432667179611307945823104411919007978388171522300067009440024006387592269436228510839890825228755833967504535432742412656453948010664801879337026477967864356301541959285025624393698024440700414898101285038476125576653219679989499751165166552568035436426047314998069415767114957179087061914479972522714795293279630735358761120758290680564592707528771761173126629456760366335713353483622574923160908849973395000823908022708340184421860239715622689469759011211164176352819617880020135508986069980355503955076960175235571734913676580503663480989176623747277794438892098679516938936159532508157610426498077187885831916660258754558558020712496020356901436024116067650944175116399552511760463554583545586837333273783538558665765175565323846658898639838629579349798658078391202883732216541805510150451839104689209505644292618713072718897597198522462131429519367378454725128419139172808431950208148721448681809122621419507962485836787251200849590524925366352557539713012825226663193126747271170874016874019818205300956901210799493693240463863410052260628335978477750993619741102160991533412417456322272914289845315460446793246316585082059900844430445292356835613059585727698497651003576373809488904378981497133894411215534047828538341025158627345220929813789580151252679590501688381107977937378523140754536423832677537259113972316858792687904119567525558325589432624746316959593237932807739721523413165102332695551004256713478165687894432590102030761299318706117131114724468473809876166132982158952373367323567167154561417555162388079712000152345311199454178338724608675919653156964945975434352624147173770273516235218690845881694332649543609630690327863678272173433787234212201277914530736152844291764593757545276655117361662493776258341232669470386618010995264161414469436866655412146535572510882313260444302059478295706469642084050663972063931736507351317300388044526225960365484863659694269514837219194053748866482246955138001416617534413109439766963048925949723208317530996261430784529933180165084520803236358264421016274310136612985587054229184691858535800025965709361068886707408368708490761257994716413099638885977280605725438367777594594948790395926558763192110322765058387304399870435415407721708153371228169725347084804606784815303398274253546067361331062553648078235171937319763829231976068793186399739397093292358465259252548784756066958736726025074964686593205347603330267022587893997155938467073463822210871654311598711083236359015069170462543351422056150023399316362122693161416451634672248700890857559784286720908705035059539110285561256499135175964493878468536271880164502150234656608575440062129328084245635478066713704565685192593359224746434449681389396409572880300774156674090238261424501639714899267150588062140473638877177652091612577430113475195452203749089616312210490435346518019000909935215196404714588647735602146512247941780590042351820766796507858002638510826166678848558950749158645126619309838305834826296907131706731071719728080776848480579658754441379929449107047471829728017872590170340333000923039253806104167548466988957313506803868617426399244369000507783234698240692427033122344253381686955456854241317436885767212185233924551451954366292887749040043945594665507408427025138815422580127799362494827612553010957594107015575245701740197885097699952595617208689434091597258963492835929491764187707351188755733523909753386139046117441975491085823789453594881734097886394506170092273558356900405856227237806491162179925752635876771733782545081928110810215902388311849529597030289045463552392776037669718046455009366389395271293756618364987721355743227583521179617697402893745677711710209601970860998889197482278183406451496324019134198595466675186304382178229805364768085964134878488276513359060703161660080738564502367408632651047956555552390569324136590617673191577439406138380081622869421478366058122796601378688103642239344928990155827756047672145288752696518498409757253114126969799968358313111636230166796763740682084735220764819875198822986305280182288737400846335839839835119179770057824481995867123744072885425542588206733038659351234884997970262313428093258461206187314490573933429526185556831586472346508233563111689903929807462373018589617512746201102413502530165047359873912996687731657887933146811462093006882223088720615833096858364793811717587232211880440756360456266510160834436772313414846187126693943558094472992220580954003417477116924948572249761131666871509490601304242787861170021809547239131794441841677024576301402297501831938044884481604777014040813741893954547596552735396146035191133930122313329913329256507989652308090598585740695106919203279334733972661495541705616616081542952178792420850189261589084277089990815410205163517964598157545596880694260180013035578554702715987600680733145181619407836722122385173317731783658569999622159384875883922489929110687127774169313747256956513343006306522737924551056266921880807811832586731369601120907714665794436628833001440815863098631726419063330440445080582281128154889161983229327318187999588512737838729385096990500690958150559968623777129423176197294040813941813602724051482082073795136314843354227939334277653686103525407725839996548618746068110854415993782634421838393844858485290353045697151099125044231382524925295400896002776538738663574156388274314110235995339222746614280895030235763018473899695696878579647614813385274626000172840076610353359970011074295886179093448568823861402212026281009878419477855669576706020829729728493217283594788507478562688354139604520503273390011597689975923488237896003704743509440126218101094815715133050052696734750515957930241419246771883779907897096741985620620603365776260662003934751458951212313889676805215858321485875621004939827433779291000856345960847872744334605561848216303387229105564330934672192647866563146898144200381872110934389738986303817212957909299112743076719777291578376748546289285218082039671437850793363736950077276642667558541999588569725888941718854732457041265453872792938355542304128413701321311631686167649503182078123352807867036057531692611111413192742877904464559074531083030459561199477889297649507064639716814514629453124294363555488686361248826561240064409327046272099193802499353896059744335128490659363042830104058174606123204394459678619943758818210788705529097240315088518044697672070493219326427327474947465735270631400846002270606955967696876993581612208087614289082438282250827162654510150765071122548776783127104898581258903148080115323482235485756250163613432445755489708401852562487855841161559062915706400186193826787191671454229784270131855635300759233917437150422523687143080286973897230659408747261558320028856056430543675473012697599239121409307820516347305683944357660805054953912914586456418951984212667557032614040165264647181916825561780500043662639868126326051567703737576322825572372240337326563439926101072777491347627176169780024202417454219633542368342108998205098399693090096683351729155605180032912375027974138336346557054527834853747615770729786028264231698956616215364150611916911869585076300887739841331443323522161086480753762756279535732619276807505917919753822080505536085921437064255882040794994568053209984521619529034874717291587880433789802719917575528412495164553897366903667977458510604923731647493348513891310767047816893150928005652508074003360262558797465873389588650455491059441871151078989476427723914132008590273134823051471147108625684424430556126457313179759466908304134034969841895264128081303923795354233955145164368583297176727033879966070502753808844666613249520847059562360351328876356928310404235142307368983022576189398221045147116497508649579313310230516400702740418722925525312555050751962630901419042881583786080187226885330334260324188741994743094870980900779689622152127820403638718498691155689285267885143692081119896699199175939442227659858529607316110272771930392287503735276746031364987286014859087801089027696481017841925051376836394432779858978349967075106459160807997814986746212959429929495103455612395285189966483893151341663425625387229042078570031005057667238782499422930433187629331075992163341034881853078945786213043844699022597151095378424839640451956139526499409105419348027833381410505497503863252134416652532578346241054313724205134365610070975026474975060187932989700495263510803848800122170811344231159233018250655232900080532960950529674761782776499033804649275642460784400622477510229840904464576088284008438396537572516330908693659501131668059031760653994130467831860450062980954641179322276064394545097464031190004046101363637566525147633922056408539488115656651564144995469997989615517085192389641735048616440196028228370231053195494455715777919567588597530366609882202496886496240237376974149089622782626717164709054545896434251358107215509931278700181094793378001942881169713845597813034375911744983050397272005088385100204864527669175972913171516690414586990948299639788578847124158215181915131193646592655022469952252065861237108617077752972480096285573811172643504397723991591353337279437121493974863979262479245746309268806016126833281080137307606789638853035247624795772962330363206079753131170032156315773961141417267096845791988967823317498025009040927698398894869465840619708837118717162678950598037992818687908359676744386739411089537196986182976738458954392441121744326072814344156833377839658009332416265311975886386314575969916282260607790333739537806861549954334396662534041372393360583761357136631484960228465675347318833395976940602425850333822826967160251488264837670313936615030465569440359099795880865306477527207618121415394106818553151735880056317978950810699820712326357146714531162758252500806200983530299859876534561587726559057767770523506800734721160449806488391234431496994566296883810992317937596151519832650120598781441617932890058633209563904496732740967756156579216951256957573430650111772794467699754846396367647409519787469857405002566630430496930378286467308890740676217208162910009270841088021980366469032006604898295265441973616508087089991399726806525622796418049464541564487670128005839444300387771355707804656432991321870606322081514275062240463573963323033417129205307955186159422189134174393464269860039630400508002042870415729593735309957716677615251624524092900687648409445244870829637234794663408346767889242904515984050860716953416892727685702610071896175287752516051145757923487582896882725005829643483257250194887049167329327414414693861611008212073014894509422091561135319660150600951530042151879680050092567027746169752691736633588478953104875162792541522915736474184880129370760082642006574185024170407054317172875849453496755969256058106800091735532339246553976580561150626685714588862313687782502707507793892985221289837675733944406123896019462548014968669537166756920279450041465728456706853099431195910398723702492709010435325525980501157121226328470745074590340596438552820872919118498395516680440487215475323391256199459302810597525033416854656765184945399888524327757835037208347774127463818740545863929254471150555432279981820868187969864701046561341186800539651313467232381249441404741459647131100723335520281233852214050723861536931660894605930756758626679075053701611040703409092628267488775028597523751023854526779620553060275277743678194057795338407659371912339041612299389658775405042093316578069596534125892927690021058353472340561065145554293200917074504394701995669836627702247022883042665069045512194383705684670838235730118163228543400184304949798582621768415619917919935124153094915801007937477404039276368882693841499375805717517134475581593103274577418757637118775713224689227224249337777113957558484346931432056193522817599764563384463523667932694166365293829299473155416026227810434045971282582242670197609692542335680025383489465631124951701468994004640091188074087077329964303094404358183408414175801847899502624738956907547819266522199349674054172881911050332527900215854594317573458873276958639774133830265422515748812728581889273284977696911085259385652172391840425825823144703106476046481450202221028653330865637440225958804713218694501443668175385307315892005190657548015823449154844317770817671252046119649394501886256763741453768645600601421512612924246459673064284648851049761119188467204986645475999926801775664337900340056847037544756287824934898408714007702362965041707501045403006968311235317293403026317221317086176202960434454820954348676369524939415384766753809577355121463749908050382956467090205230467398556435582380712001340517953581775926611792974601486921320263060039317995648494444473161193725369420623475637450478267593973212703372805781343126621117387222492806333639834519303680389259309688995209252035278571980992380576236122849606523276970970764790391394231402133368690394808687684743308012268869946203470823716309724704725028106033141647014474120542138240308128347191009308620269749091536072252751286597749519507014468359570342661460253028153384827277644979007768898074458301080580762580282652539846712184990443942589188021880629759956314281638485112094713499524227290966256213105720027860252130271652435730201321995053171120419333856243218115968535314364280988660109585436852601085293446378411885371826272165074541415429092412576342816834642480358183339986607357730940949860657066158440701673506468455108344830410340714330688613506481612313350084423362414174425220384716206858157780034407442240899773795250772272242522163252707982864834239360319936007701578145485499732791495715242047771832598625574711721760004759186861346576680074791388238882526059503696145637555094836455249433184937579583447082565112029771305489059858893604904198436615568028063910169315079412398442614146314527207490634216746665622082073387405441027555277326425726662603254341416451806464620135910746369048140913948817349150190905887865886575608054633191153957951992269151017526113553536548044915380523524309209568391339236641860218486574056531386585891803888290100495441053950428190852170956897098522266049149770344256341520113354359560162080483345705678582847518288694326457284709415507066390042021847428414815072932114255525384876823984059640369467558558706507780528881184370543707668539402043667908794727576997674271743908241142251517023195532601492920532485233164430336141058134808121187844540168004984186371953775079122509816883959439843743490500927690743049721973216682690786818942988655432603934799602791528666316742452049935768321975982961409060960027750075411611823413659519543647682659743538725034335575607603094264593717684435256584561894133043626585493339644881366781418994035378125186361809861431093804686084238941765717091983753027352946053182177484980676410072780689353948778562080766076462886434975781384916754969480133361645855359234218744439048728220232748279000438097437222409055665798279254079201827191764073156868788990869823443332429846171348077941579260789437869378793218192762383208856219825626205370615705336509986660437335278004302978538582577725820814349306895099746902842123214805436252144109926584513208698356950379341219278770154837668462588485148035328210057622595312384395499845597718366177469694877133736029490243201400893695435246428467039062829612925333175609054580152415336269704633415609477147038783311408045532720266985169165505458088526234722700918568381152913251607557514732983104817451169011854473890500270796628135737332891521947351317150714211819622395064036066250793766101141090975719875195062790767199208415618383126232787053677949587209348085310337003707967698144333986531947300553955036137371690354044122744184825089725543411329141409921010502794060781343452745457489103978703959255767719730326629205850021841243056110147117266588588758581109801362242719178360150563008450612609580351146221868970392656006767752271278115086918240931263983238895143307309208061818367053327222199671221382439249413384503085537429139510060612140640152772992047216247469060199687536161293095944353196702138702622427471342529519834641150215258521719073343528760508969489859661873724647148445754004263211169130661080007590199276852772312294338453753734455619270731842077003525188819851000091058869702463614133946373640362916764850243139592226108914312458431080249185337663654737954281019800639467549165673882209372067955022453974952793604321876041673712529418689041678756050715819184628397499517761898470120141728492253165997642491396155346304559673700366982713924474617224053775638845250605738311722063309952246138275154384262484183054546161423976795807575792892955358231583791059988100013635583580253819304960874848406232442130196731285727975696380891589114151062682936713253390443220443935122562713425835719375807555547099528058650927489148560615014905867221863018145395527154337744115748430146045421047237106590937458945560185074706555125049620797634952629628585741910611986843374359599027675135124284216278738270407361790182264211619056545235598213465009844346847498934255194190612568539471215509383577839973398535979920804409140140130196920588481624165779207438506165929884295428759267653257646127865813653869302306432495148722915683419489339773257723831101860728599213827439955316707179778694631024120965629925156369070709797657462230224811183699337954003728904003552813838791669645146305017446678302677339156584851313373322134555912016942819944635586911990104670257248863039143131892690272342788076559567143550810085233287367618883314330625840285446138179091649151138986886102042441096949303994618815643469225923822715423732556186576373191113839350829844737578763090888190669748750346261607736201056147649195858889526175730298660002844920883309869356389666935736583154321980511463029180303532823912512265145796045112913620481416074263483689048725347741460497928968665471804311096370206936618003815649264601763228235467525772510063481083324604963974581894856250715927985140068823456587664328616964994470287617278607401627879376003134030536537200163361067311973540216574274552661377246414679701634232210948392735205399216184668443165780514857874873899561173561574229271079978937830411746342331723123687062988799395637969323438140930773031667385587583365894879219229299170292532195313106313751699564895556279207732633443995606991340123455661866002723864409129577681745674556204269696639791492485463176155558347884911203132980810938202001667082142619538393913519494332455874157725836948116349214048473354670485252762669909591444857090831604238663433552347995241933217431270826427571501537381144704648961477923432391883659760417327606918396476067866322674929193323161131877673919132713156449130569370585515339505822922629793669280098890127374401107299130758483919483725163875251526812093561550689661281565278504377438567370659686571290407450402139678640980501628716324266422673376138215295623652204021188430916924496201670398377240229007751911990173388725654945167024884231446673301697956493138953858612398111668308257202233372469857377872517673016746885270115642775820059393570981225869012588927727534775124596954525038982611668021287757380563685631564442199458187402810656801753185564565295582288616955286274200281964030614391059003215379795396930218519423268807946852791407258771948469041176416915227472110682439096583493681740724391256726014139205537504438778509718690612830895421445090454534852381522612136091363279625618713641431649422139355442206005338273451530798672306688013562930131650176555377047163009150624792123739193705754138726037784409421730259112504923861549381900703973226982708445933093837163148061128341179486313084619959430789684964111687084337933440570079526478025532429988270212239589071572621544918831198911796492255687257951873764372652104196188623597080763708251916019748223448209944333236500401510330803345098734208212792141200420480180501079798561723216473504401369811485541058811972608739539425490862873783903746809883208172214796830743130269381543636845378457615575201994791177412336708593571769209592840288800006291720871627379774153512958050297099442419138076287230850635785570220029013432709277729873751576166247484047392851550863164215302820835265015575631195908368230734030439271518105002752650033708689498428813235684965007249398847401056947343380563733840238243607253887330911137388407645000377344784709100186480455411711002561405408783699288695274139261937908513852292978958106283980590449924138727376398571948291284483476597401404143259818850245391067059176832462269483973611571814898528770650237921321789269536116379304464677102539916568443144432020298116859366166592552065597956848269167629977734031737378030874820811784876725458683733424633452419941410780153692124159877833997466997395429518681820090649697610367821528098952987606995710356909602837100859978989894633487209570802179233665748707146777367360972463992215753219402369880425601500007584041175731957498416740333035260394809737885653902886659099013584031964803732938986045942039868966162227548943655076000234581410708961509394692645277394235114694011127719149136925437858539483527264857552160208720481249169101852717995183756073284426677184767954071116218015353987918247749816185835646452280308632399771384992835920927055530786651556452768959162186920347015645557340287669263841325770360160596459690403225512310202955997098916418090712914574898624430297707113894146283648484871576785677948781431251243293550247687268468946933878930968619372172452421687392718595032641171831981357089270756010792991851456275028662192436979841781141404540319609164247843921439027833868372641711554943963041940588806752381877429108551788002078811767914778773113638802772856696940118272755475020009359274049483769196417417474376430993588281149024158567172118654518195403274463085084900186721365271788742362751336854382584357260976576339859353648790620203688881027015850058083028005290525005920409954009559933828156055157808056927750376405932422853821694589247308372693348034515544089081803000097135903138760369506462952558119323319104201739769685110785451020588411747429566742640862762260667721607633383260924431171632661044281459586062506998686074775429041244464632860784627920804163161718877365407205146931212143251692342945354332472824172960433247902906354057442643551016576188688757552892490583073226688579406361072634713145128039096794093684979336814875713298697813211924730599496014027781864831950609839994902924848226451969076694936680918529246540254800772199089177291960931566054867802714844783766043906003147146452296723373821018725039173155245869955423886136497929893405730911868982296875692219878352678884816562012179932355718119339478997294113162503823771607476012250789091391360073698161644961550771156247518486718642741875222098369926251107945876744271026054910183771414939538460173089933449360476973301928779138027031350707321098188209904217747958244675990200835711681784488304787391475344935193814011752088137059843984654955705501018947463317851354478060500245322289869595610981274453720034050684331619519836303181703747898626632707244065379439277750611738437739100370156045085424417182946223230987415992613792310306397975196290621495493675149348295534255732673405736625456387820877247801701251910806138076329419104837686206155039901710577549379437198149860227457432768735866547211937247364836888473863695504723045861687577899262417991924288808684663276562154894537758464269366017054904106967913965856504723142697926688920856929628784233165154008797079484044606266020591420715726414911842725772544518517922522992289989255241793132955616293338761041608491996663174423087794058873508394787307283099169773983497943684774634480157906910420838749535492617591718541229359751899008922262172191445930678861976035622188127806388132245635556068069415255297897496905210255587116668803946253165815590264701717990003990248334019184741861117791425087957832200374313389994388787901749321783285709136225934523987992119413582964860423871824067417098622812190185733368156857032359430919908413100327424163085607040183967645421975659821525834228867964906175332880383375925188021355788935119163336359125653076196344688595555679031931342675338330663164340607697250337461204565785754274944560577318094734904463642115299853304353698384660984613766934308461700054908361012391654874021552018074383204637467839049999351856781079228972587469036774957913385350351336075507321325600291910315513107283177116250772551531257304962327220860225214648402202842798593292836688799077140819239883785035622052945336156802820375313954033176431589405632531123586823947289210428147770904529570491287593524120513586876032845142582734694488545643193344560610392771958212921941310874666676659245749138539157944635523988690676799695355659403400839266309489156370515518332939400050322641708848899460174496659076686847228668101834234733580748167860825699263614579414341577379697276195362514816047504644571393528525921757839527856441202769631859515199253706473854375073484198045852310995245664026394525671148305359686783111380040816192340692340326098970410456803793483601054492920692731323910928948941612252877254172588071576980029023276929926539672222312595423789781879617297369231269862904132940693047792690340796085936969553082870633498853589806317037906551023455503598110472263078432437887502680866528666197012358431075487193446996135110246538230763263859894685743530656058275300173591298306951563954194337812121118044070153615314384579873166672036184046659229140007286157047092318388883712590113775110154672815683126173135845444955569340401606251591221445202630400731678624212347398415663606157002295757951259606789094918071487219920115133860334201249033432690190315247111117705376749037925070477108000780724379721999748678051270543865809773836608455714159223131125076994385057495720844706161764642897016734248531307265311314113296922449973258986937933620538231043046881167270296781793531514792526227715087317841347201175082919918140024385165187293321922367139330218393718018284319234620686122487712481614464372623846672273871692704343226676282133595720865759252993357046930167137706293723161840281281466540339392997647994508355635293134044814997460821573143678277060209036200023656147948179616695338982033036431519760589388240313104586462453903945756376887059279419144635131656563853034138055116073830115234965016026289833117526654089514276454873943642900031046497563418646706338393702640432719993444501765362119418398091405435431204661107102294914795728223004888150989288005202982221956031371555319180723675808735157394941586386346592426492982712468742873788710721177960934285282218507517612031632878650509567859784696943970668574363944173341905638350440729438621752610060673994465714452565082185110811234734977092353306073156034383366681280289728355294978346861207930653666229848868445897302368695057318071709271048802093698860052594234685582421466323714836033470887905083467514163185997873182137711360933796792267130480840063571274044761901699021280503624955146493756285725553472201552916273600484207174507880795076184591360695778824861874794960279482146832553636964805579475195804226596181757545537257578006385007882894288015404514728664507693636429261656146409237609919442302530717760664764609748901300712832067009583444148679596428844265653348062698500890014358597934320495470073979019762402183186450225187355768195384669571307006288829263756160327876421596559312529249242216132957450406538220167262398618661648581434298883151920315905796007336630592644780176824280579377519254991161387408165551961800806191448772948511662569977245150821371463281903651808773347375322139017956945546985589460995099448197662316058273897392430853104944407870847269906403178359352904613848224060814013067392119403592658922911969016830434362279715304844598073159037135399085230555413585030330599426307530084474973121329228139004149372925731581039036715734392981372366096770703723997564711313836503606104054887160986190396184993610539032305603590895271652168824412076000293777205420054934505995932847657914451389480417920358508525299387445006490770503204262460392913479186052964181514073543083458770362016261363564753671667605974780085903142936133379293319175008485509604389718110409887752004921222370695585812496257133144760665069336788276888731032445424398289077351072677332667843932332201926219365644663220548552196362859886982124590594841453898355243171934249129900618146395923563828594061690297564763112622914667465366265823575832972216617099689212152632249540972530092760909689092981539854778104754603970480564097019438611243783216133017217352016953866778938051847299996113301753095363920200797294384334427132419629801071959511894080207607854224753470765972679570860437380133715614849302325710198132874943896149485487837329709427816336254436333082693990557968810494892037587507854537640505365757571955571940241392108268760908876905226368654030187082270188354758472399922894034079079513679637963507263442245541912809577059031587725558922077896911118686536928072383024038923627104980728883128755350717511334248096928769720158667518914217143425576390489594698580750060927981004390924945240817662509527417274156016145431594518522171855749552684752772716738913902901472023505989549615741731698904285539944028302783837762365010859093691920154027694868144088268392159342531859686296886770735568178360341970518419116791939661833729700019382298015027248308350801097177309111058708948946723054289271511824641544091066453295323935450519305278990931728114996492725306034702159871961345650020631071336136517861654416497035736820976258374943863039224877343571755966711011669312791920462088982875388710715363136881554667959015531454623653372771094192927484041691314541970017754019166194192795232601888253730337752336012196171161255538897835617670837738785260756313420586568197019298042050503450950135837302702058324470696463969223690638593311081122013967710006747724553614517398246578733436414551852124685804072880187810597648717763079789332546458009321561354841948421779175593309357859671946991950561912931679934411945972942434600010285797589940496943656661909757932956680542467013837449990948865697217529786249994440386325648873316760040767769071769110217133246166713693357767751796687482379811974164138932966510983219131889123061288321306175347306459432631236902194248765044265680064037237356520012431948237319111641586119940162345610705558803666260316221668784713489649977257144363570318750075329860063330828997051279145819777920607806942050549492682044404634256297157534094927435579725160157207979726607019969187009861222418896922478331223069883519302680013335158234809746911378369744867632078154664881263924082841865160249149549798644272098660518203571764568949935602043071048929581586506395191730563855938221751430131434807598669332650487479903805646835095656163984160231551047965988593168474522978453271156302256796382458057087383359848615942699923530317472056202203726152708976066846026088744711951867528525005617829728887196752466048954131079105130025731039262690888474237156518309916354673745723994383500092516539191810184237064182784463199649055288856993932528265626282428690760469591229338888263678905258896297992600436583512928591660168162711585038595099200450238288052578716079991485779511741071458789278928594455422975748926639149060612255901846742420489830696032609924160537319803993095803184587418756119655169410302588427461326771528604167562599716689009197446205707887606193824714430682007869995158218691523480946205994733672841618743801837624468431146227199718354041990857212670067522055708177908020764223877008302314596324376972484302281374748014994596782976524511116475628449488239112658022320723393967248735348379683470903721727807182199304579617087484668322607548311946463631629550461428918187034402551606610996043968227976008510510903936291091994211938826655136431104593773982337547022348970989382383349606222414458818157174486985800768017680983135448890807309801045982988406710128613818555977913112658579462797634402093254046425652321448785499837045212678648629596772359938670287589062826992794921488808890259752971774789067202993671236787634519865957080118747717986484510898251955339140452640402757528622015609839097436788392343368690293794902388062976992556920231250427705108943509783202370260907877221028883869173065202970742687059235430376889847491331150845727240892727685293202568303822902698549830926642798169621548264378964612836838042073209244634810624823762867848195810854733788917216503370931716230082783544609535500015708732585371829606975508170435834992204347823973727085823269636237017609767484500304109060401168774813123641572249254136735065969999743514683113000479043763389468381150750447983622497756891870633121598257365693430609810105810751283202846444444669225835877645410765424544616023777827884230143241483760775272286664586317686875728436203463872646470337810455803840869900184700132949067201629106732086656015272003570377008772363933708461915283204882311403505825354128671849769189874018370111971124740816615401897014577602302374503811231109971026466141404185726108956369605831244662510334421769869553123069183533005618851848711467565374712842537837536027002540478152676963868002814906708268471436627044938342088682979560559153091431959230537938970909123501683175231569389220817236677947717971362719241455588880860190380407494601510951815732199263163081536727786395339826503769350931962174930710360546827463851923840108589380482153796057037554136341945317910214402772440022859505105250788530056362548796203963051416750538902815483989382605618460596925430923050118448202444057353339948646232469861642715255204141839454588339064507002112028162690376437236786327092384808357049285566542256570041716643467942705669316946590355900250098110204615997069222696043039313415011238520208433078349276852128023229115251973791375174328405671719578654820096834839493549870633410451091155802399789655537286716719980635621882290898597135945659956583900719908411352900703212798486817378763769197501596503476210492679280029798828161442624704549931873587379611446122075041773768038423308899512489273821719117059951771345342994572972521521403834304607340293212929718359902336716755190204836798893485785428130740917112127491351889665038805950364886600193051774797377200603859479443146650104107719235172244725816987613573155394736063610226081719549477487334657530769762382929970665938113035566698283830832766954761096688653181122041132550888898206279798064803011217227923341819607984129997207200884183938722113903472473108515327748366983782486796544853960546733245178282183737129068488432260975031906355301794126482389535114738786399505486022460003357691360318382569522393043941627677865022636715905426082179416260627865341378178728420381565930074463640673989667549268764939571849031321211365620239026152298406287309564812816930350186968503713109547232937674722247857296417081985894052169659810525337889233503198725849488937286407683296645338400341397336846566429981296207453255651661075482537381673969227716956365366825813785392959280486393462406800456128973677765649926444527556162223994317489110997868141300340878616096406890919344660106857817399649669192940715197977061967355632780830374867624281895329937993501743770330412678463941074239000407519860591815646594775860969999412559689622869881578902426577897779204528945726859788015120391878644971604999362226461249586877214347718177827215403315790874383331809450293538191572814541832682112481972325972143223494026289546957476210108078742584765714780160883340496255465063241474442371159678992370589827766568589771945792599269290408338932723324793025420327412082794436936354791397957972039636639578210495841631440396542409386047528332592434350078130659491794990770388167056714485647590147081936288460634387083087301399925372529836689104103313594394347713254525111255211109279872778595138270891636659095207417092752512990262045541030803481032270004620819931349774103396993570520081349069420803787220379046438289024990240122138046339798024218210683934685088493016791828966213042549333879965487438610932085149105332758773226902672412929662567364590687559148963120501742439452638939790244232370326490359685257821378096515045449893186606855909756632394422618222951965642157254180903209980449661381395312098534796711469934269493824514966747515985290047518052766122600719775722496708151505803914346182401252180929356344269769077593665452090820250602780467149336326778720581681597025048184007645428436549500337194233565531706110028442303004205305295293308676376028645654611038275374154748491009312872595644205697610999302088104035318669489262396099535657223357475743158786184590483196642956322272610527164819839854633794370836572964093948882039748696069433331514579163972074807234334427069762865685088947309498159719068311061200102867523095201110639978597041881942784387319179548374603671903556930383994015483738186262489261815817546723094662836205565121691747032788728457031534544485852236960697986889224934532820969343567616792601084723826258975990526379232591641503276362559460774627417043325449345744488947721687627182772707294796799294070372568210612950899937024621719988989446787668627345794135226403349817753083399390670296652133803469837272890532476006619392545820659289701415261295072742629227932465791704383716269320753650111960155752594694061918181848737771342683444424052930660057334458886905888039317748451177410239735877528228438595867202823987437435295921155624322438928963002729105687288726816161177303569527231697743695929142484462118989457501169031295742514828451744198713371748657674635397474576159541608781521949380382190631719785463648068772488618103918944897507305385580490920796321483089352318480379090666813452717823353224661252194992676529142759089092262117510817467050005956809313519528400804390075726178665775125745288433053553174841429175337424877509489933543735835955457882706037397391292269370301243965689712377394516731859670419317393074231020539449279372556695143497880554570330590834011304552420883774530182347148368540570383980300834901466615756278297245438449473653894739985342875432822747853813731163246992938367029583215296762931690157701637645970731154556827663490194825042032716235543761606289610103177892081300713313496833865486540725269994243818874654827286727227810546989992436385383891710091592717082304906672765961623781686404410858757454793666754385969867095547499965912023647186302513423428660312308328872542614846504913339140845571348974212133262795637514158859383437023288367636142721091091632643811993071180581370532052181871689034040842283314956139714100091017150993735501625049869802128077552418620045870896844438306344598949555144009876519220044348268870127019830394069224285391443443769252569060378563316363591695975636285511685563162452502775453761962942890436619458968023918515806791438606554576306665385508979167196722773975207635829190576647967180388564538818866035064543168335512453205238283278277210925962979474365082733419069484117477135866941623551515418976650273652437782927375010905109308258678984624186849472218794509286730565647293726572105569324973753017203003429846293990357604055326948019752126003066980384350399536224586496757173536448662296086766502211476197190668367000787861952572772496077495301582704019156303489627631553591293521702092981509995711897771246908544676144850835054133339784826134395314953719150241321492525701145762701032683591978855164103614737647596250976223028811188954047134804246179115385416323284005437108464269095036218683372877564455558445132126070936508889689962610406609727149015825926516847763506236573352767195383297892000906729856532354522274816541019480074074983918823027932639144942369573528899527704109953394755282701081943357336971843195081657518177313617892037222004623202250257101959975795240224447773214620837600834855387730627390209188683525101963976707841850327839303456164014187654569380004166672187859830183324978043066841370878997780609708751312245373317921047765321963226929206244411860240382393958269384876943864799215827507678016075065363560192478163288489506739317047508196646271951189687925950485598142253735349188202252232254527064031100450586493401962683243996750270941977257999962112631549818066293540715583610274971906518427406565937254512574742135652740612551420873683195358915340183005643761475560005901887559432489987342354418536298897724641429112985184953106090530703685290951747470466217592782127028442720276324221886500362829327344812778190824737197178733122826245293390331056612313694376721597019056278625102314965083850517849547462579286335484676475056193895604871272476315354271306025732461970730588914499576286610805194016087738399359475968793420630616497610162893847437876270839809365286890936241353974223097404401233773452835062258300768194953505737271247291463024293420118205594285875409672998247743329952532893889102882623850029186860662230600769541453440141543780274354652779811248059501088156886539095810551792517892616859476198901851288548533001971913658050934308651373391567144253106933455853593690680573111213522090148984322616396432630776114024959572757551801795894194013197745734228922330997391962454237815316373992053247664553480610143673068325795760516674364736620234621205488325796206777946589615346666284962251255998837366356154573809942398223413977857318118526694509219333400278395660522190434390795218769528629536258345114288337418801389766833483451992354372759509972488475499853482128754160212142000716742527322818658471302437403801247212757715517354380686932178170984693047721386934362393518517720943809190247679191235016341974983001943492514392273283998952752845430980061397557007914170816782579339825803450530350435599716301845528168292642279637951739982625697213931034888695236503388767235345917921388311578797662440444585686266118761866077854423457825562175139151512175069970282671214823537616753390299724794386940098439803372392608257591497122524969990916251682241883027706483153811223687127561226085840232521772823899197546169668710046806668395139405468301470663243728097173085261750040540584635799643871306025046653245098513711350478406669674081206228084952470827367784896750668680665695204615935906403278260228102365520837977749099988133930572493066866543878693836289431253517516138530476569608483426892163795317644541891627305175221678972080411022372283886209656630432693750538126058074357155644252030153606598273724463194200272636840007290391352321609780682089800250397115413563807418433383843775594568899343275732876358995393433301321522590012083860051252010931866882673567260499879953512265864607687845448841833834136625422196971463251892117282500974121983889437996477424611182875649274008010958068107163190905554406637684199248303038244538612047639180787774784095532936773126665062304634915420945503013186992838587040497769498762308681601198225060378407782933137148693195576904124809600289428590147156300359952118751134960928464643882776366816444290872354236562624184913110970711588110759956848824186276594293115532643553365781078624936606809735256728328243880471495336516304463220419935623776365923546949824861222404369330506445470866983819456132717316706287211292233088278228768566112936704043109736681582156652530953192735760657553663381308114126150418274259197915846860975661711155359265047245289013979730748365684566763766075030008038868274480925601952501822877867751168351851390092399073510597032706696191540732872891168466075052090920060714564638393565915655426687110625860799966340457758882769823034744991771278741658923779796117044330665499088194970371992812185309204245501010187280970744329043394827028863200729296823007160613009672672956269791838625419239274660390007121099734961053233558472567594158335365038969578883612227716102099081807849942356230921096520200749681909702336820464796210938523210558762150886567676848354321163469821573876550837832037338143199007420263497842810116848957540102189754507098326654276214693339080399046753111520241502483200566561580635979236181932300762882729466887837907885397404896953393147003113132449309322770532613002885054342907789006340319100228559937419959054534198294838865764191083821664299146114191054104072171837577155061513515392771400877552001228409781872581662708931273964546477259808894904638744412033834039847054748264843421660150604097870387197604533296815945603974179277038661169175403060560427594749273731758060875311296607988071723021883091816310355469967899967681411322384058487215045110977754130927334808561399431389195645917913746129612274326490289450582869601839766326676818486367297844296108245753273532378558101279916957607536616328445715479677570022259203947901245647188595273323538013204986707161550915878288956727461343961549590248105267578991639561562922800247341472909294565424144238427975134894573060583395554662066270210014102767079458435211648908816862436979656823419770822333130158028218768411671028519113734962555044156500322013218780720836321567275832894119429300942017627734310749322216301696903711021196817814596112985080356782471755722595233764640402399244994117133227064814092208903934067741659079335822479617612719575790623216075333480442592524721663765328124917378791355454531828388653870756476397340816244449879336143123185696534013864422093057439128727633815813871255067371224288300998581863210156353494022783105631170331076712499040051320012934897027213099521549239150785904214026893130046098656152361405253039272543131409786703723671598135087041444155684740934242858068266918870587013314646320508191505624847600443520708075408782114949462115092792335641676736833501642284278652933928327928453321515289204094301200081708618584107504415762168102606083356828369738431971365108293621246800257976799115539990764840380499281718037565345951838459509934009339260311050879753764133549052939570876599134289972977018161429476080132837284371590590628796866400470614917846595143380897979017472288822130531415145267504796951734362334726153303000930497426565394579474740788563667819470875812034604862122119732683985031983988067512355607212314224839768206933579702545411426785688286857621814616682467550295237752661408949262179410234215163541177570269072944307695709089606441496588167174212166831811496370914477913934086779172036360471833759073820099690945012308440297824319898307429912474750965950540243211346298334415639386846663845113041716880468008283501799096954455742858132774403014003363683787123611627532239185200931510869547854040603851429675337051449228581682317546757859933248970433194748116313656876224420921196163984780749399063255065861047264994627857091184829307640052302395716940453022977484337534496934791042788046497550916892848110273355938094404693489578483196619161915687678664744209176769614601596143007118763711598184357094876341973991380856286178181951683356605131978094532258542655251653405256418983604191809877564754700933354564638637458818370719308992777474777651940071210016021292429042884377518855696937984137461959487866404952885179702994403417092257126983643477923420004450897240195642776843574000469180688578829638255568576955243348105923536963237766541213613659416589648936012690830391218907966934638782699462568989432384269479001954491764907992596728333201502040550563958228832298654215201273903857125511583389460147882679613070593684462714073176635850748773515360878547105994508157375037687217575866897476371420450858593475520371592894144903845551888247782248886056768179484488505424827117656020412756251081698730294789916929041778073208202945391238728850578047115027943406781972067987066773468991759685701709642214988438621317233301403648409062296336613973120512678548019751401068761497867822382951553014477543880094209195811190845593172841912844754245930240434415604684960365223220703918197954739023747928894306287558798955043463327292294265819818993849643390390174859190074549851943243774688971516350617840447658172638369808979750933160686709027362906796736528277031546320116423755537799298474640332327398535516109777781075212622968949860513517165602410287103772412940827807555891992535075849715477021490914683365543223108654748777138622887576081007927178589790259875918863519630604566663336319217407944530334592773012404904323289169886310725490859039501306666592730117026037662981068329188801540077400682229302138595764542356841724364975303391034247595466797769708002737594358006471524868350668199462078500178103542812825835286534039521232796603536324082231808982544771052047503704252264797228699159145224300070833200074295977322725795037652993767687202659189314667887983961876650840897212071621470805053296553068382337586478099701736217752518266225944889755547910790029432807377769541203788819385753362453555755538621513721579048564519552478272383904392255558608545983783242042248996058662215842368888782818875032877205784097787089910123979622359281304154281462067094690729430442763735707951946382406385353975389325145532040398658131876665067180128552920929028138846494499131489621511096573538273671105194612560704832112062881259687496905332546516609855153284705020721844897915130385996182707552535083094178815330737133334832472877747905181060994006506218469579141609025863337653702695033632515901240061077265518504085743720504028696419034506015434148258748213594896680516971622041292189090136519426616334910151777093541878234115944342573018458460479674977341123967367460769375849063542999397454530071743091496740145218588375807908410093952825123993941887800098000852983250117971552469662980523935942605334256683484171065964689960240675931818730076077165696460027491847845392837597739561010543622972283307967124275958191338179078340962140827730260945983024116813392425402102479082958427192272091231049877774360082282040479398238357631732443171948315697133001082852534017809175846522941747359197349372218733486503775663769454517348058412741929648062378847469600323632964560718750085619940062901963618143276961079101024847744994817747303697518992281355769357501446845470381796435604192748202966411484264755388461609284317366732609511714145514664208775937211606640057131871831940378249303566026421145554655096381561717598832630660635415029101213817574070546034758943777657343347443313614570695499585520681596871920795526467023503228932588692655211583740457176792697869830936584416052175398397969141646921305288712473482152684048633544160366671645452057287892065390396896570098833039278228312463988322593681848897300762029501913922174696391900812982244757810301784071241371181333474206915380637319634203722700135312823156128209273078733360657318822433035267753616851440128481421604692792800626149042372647529552898067238689801124635261708922360941951429831850549387764220559839784235496068384308044463091873898281103232617494249024592968705429095989327718867278818149022051859424964978643722019150845872524151377330865901634373899036909618394184660480476412857748573396024328884856159481653913099507843261527612427437304198132191310971382332353652196256565684132100997793465867125309809163123694545655240867099025795737378690735707957623330415204577601513883455847419623747926673163943170811046161492806358838918930129277650436642892222952486596196474250156393651304555422184136981155056022645692242688442709219082491387974604688426215352222321596952972046003562844801805143092351464906483155814707337390990940330635162847636452430703990228906910322690633577603648605519409027826803159378088265928386788589283339814431210743242105744407797255304875807543827180897381605829460510483029383863211204406323798531018120096800478401312104193172311588019894128999509449051823520285501747845472762059863697070096215053673678007104018661808141385962780769153033085973597922274297796806443236893084382221616134450290924444241342868204598923914410058649485559820602849227162477870269955897422814270143672583620201910469241114324811365678238853166167823059101302957723739494218220628532292532966281056278942937466150517532071023254039560695420249982143153977132554329758685525272480132525920496236391864282402295056529171734982073877274864534744992666383346808047284310211378092719503669398370888980792873532815339847426064500740808443294502104866023527925853133129653132245368773308954167066148363110682779419010528654438552547588213894308783875546974389267645496621380722884257239345052083454215664457739359032723197581717659160914992230053647772838127334166622533841472242629942411924622400978544729798291278440392639981696982498319988102820240201894960606712636566100746939708920646894033570492380927010705105350938561179427302169798825354162801527272038979683516042369023818835988721040292019071056087510016790371111051793917137546623683832541447178593865302970564626260948159605973111282072557182811133246076104217747759645483911179713618873474878682539845866897492106177035032173667065708216985559866053152727023642929621060332762951293492175214297488361749897305387297952317713765169565607600941025720965264136722804718901948453657730523247184576856434531334180912602575401390394116388610927763073561477104298203714855880998828077011820768860435818055569742895134939208502703609985291365667242000409340681562664800047750369267010067187565498302678403949779028498408041128649042737318787323574923351577792665464058755270197331741525534369343335878177439476676986534109034241828856004682442717355891956299625079790827374560677653849024226242434139444105147668328626098116986962995732918948031309383657877203054406356888087392173364316856301974958824077856564691100584485063221748560278698708254492343500946242878114247925570928758816037133370498944479355413578617677742593003501994878818935464570699898023884285943402352939573590363877995548580184443559823169084248835355006567840024862288539779059190210100832664391404237858347141539211252119664412719679850014037773781611395469455626393439637229169839703443161802263801853507727479038358387760381375783864701213631520655028504382092685471604804944672487705111529563991984619660704801990922543875919360489941776424323787824512750976245752855490091949663430056325042158247850394386565734703026506980027224965381622755412581238300224668505592701928095276632080553239136074885985495257698995079276140766434576464290971818152704084341168648751952915242506986869720912197272764166399894803529381557206103652854299804227933990984630926287867918884474582281838491541379025757617305573721909891733580870609521181391392283701733047688180850991710905044401302490736272237452998124794221658811858963808812967892860271735024790613642266669709655633060101790505226554257504425919798843096292810306578173471637056821333169546753852570412755704075586258683249666663999607717507142454243476380734993509255726525019287640864927618497173045897625148716488591598951255375228222955357809275515771773494254494064636532864388734334217530702797210788843935784080519477756982541739321292803528190432830422660811527761503372809322221614627280225517275940258914049567804027668536835600648375121195655603792908901749705688289249537680005511704451470904027647709526612617891164352708494766333633037504762668181349383168469838603671786180757090384099944166818885088571567337508594523816058288505949719141157735194691638266329100093631969376262656339971438859083062405002210685624839375451664538977952645501454384899174219683121931401372995118410097509794199237468840954250132123647670753289568716490593510289684443170331513881484844754291156551495493239860473470143099453095929657329964069617905657189155713959225222377996616334929240926900212172351354308093758013216123137754512348729033561460914816427581049952002360871359854964801275969333726114878220482714165428610972873853149810697327536968559132688931246588639737786052796473145774438703755129143836310148088010255497501850563438374232649428840380798143255578001639249929690852845898363913292517937062540150226681735964657598594163322441515757367266219230425695566601862213826190880192581203723881546007760038590449038861766421200157127662440876305292839786002937708353109004391865881200087431950741028998065659379888701230973100697017955799260447386963611607865159837648650167943285933431962812865551608452919059142677920493990411896788778786674303929975761676465546813424735632581831341226626900374833698503187200117460321357251155487510227692201433444170414759365038920954549976990021428049303569545892006008908812289808480549761464239812417065357454304376304063168249955435897677978729067940476948112679095135574378201752416467534613297580009812957790997270711903936380944971395629625872682383589471854165638473292427586950984276737772192332175276539686606177282371596570821130355810363815182791325694461193091588133531942734066542884074159970819492402918388497625748315339375254667365082843965540113896630167639046301783547536947865239365547983209434681476337898406578472456142075994498977412875174494581453465738378997960255958626928073950269927756990776084920221558974346739263779175303666438705307148525194702209570892828636950493585584893209095586866702334575543192545144251812880078499151418500330138018283582919167951015135063258915735687948767419183823306159137685922349833225083199955278486255059084867455046951602420521525235667638266643206244011346246184835538231919030789790489156492881675694951297606022618515957509091442772246331356835722350994112552809162282424069411322325689953200039030202196968217386130987969800721311638620390327297191995557705918946517770931086733435970190867546375077749418164213662458712283625713096904252214240927414444286294676411115733390260689928399591420734459182101298789382713047503738331667957872739006283488172123432793167900780179277820576279424741963951177750945739527443895863353347367966070550527012142544299479080491346447357381092368930786035662366461150744159419230799122635805375263596249358838854994535786088823490647901666245572094788231038700999172108651627001741277647893143063607031726839611668179673599740524372180120623481940467735151101150135753039355361350398387654046363031729240400443934542228866504375595216796385599047414810736635762226932664330642246622513619647559947939447516742830393884953878608666313656608760867401686825424385950930983900950824741461151827971514792538782363231160391015979083705326761335653050108925597369478256693522289815420801446620485501976532321021816166219530346571841288016502644831777530378575721075721672703735192224031414870533281255602523790965285517106044744791180673197071002068603349095233692899435173460169991071845070490952869577741317941205305663931582598080094541594568474016733761993444644185952484585780679184671826721457933027162864842332549702086814740691585705248301426251349130131793189738382452549317175403435106305944151858517993322891846398568766128678082982141129066850039256207747696005665324348516251485428270485614233397106339613269314052482118402280208764932824600707929518671187707464164573645634222261847181242843835488266056541755904987953693629595664972541183719335697984699399826697082328312099109341255994808198732203868645749761500731501308035940504067340560123257097874696291882994649670095532299328883162376227702344608416178629584181003305951772290600660895813030583131395588588048276225962517551839426498063120045127181001922219497057669748844596592692997691620797266423414339698096085014545299116867845278772258015085742859764318050407162254946512152689507976140983569243094174676545181719566747204449842860326968037184108259382733558497438685580513595228455287596361386027589819453100170760894427332474687242958911647821885362098458294683030407511008305466766121316949446563866233697314905363048789078832874042072673383396925834828135333246261196639727672957698744403654713600165916747714238618199164530627228981557735662292266108971779771500834627946440936058431573206378347619517000016581060210092878404435682065201945270285682643221760713581601752221973467223327780274398943597115597803812762780652604670385750855602556081051666778183826369162112027595476357509273561033756517976994657794959611449116213116791600460723425681348221091747041610254084248399240423509621969126368120916434903792669349222546351017403410154654375283162070610539082122669353971414467016387133919572456201351392040509186147323218293619518912364549208823904972248828791425729913397782224781865210133914143716010778081000716129662093680467263377030194059184785859655730889364507857936000878628686633807976368902807806198570100232244772514039330322119572056967186423880232186334776112599435486499244747516611783603166952637541604360063566323871059279357921756871199982281111089142464610154655356596212704209994403197587351534398333195609894173093865474546514099938939769355392245864303588762315761562586158746287281878133711235134587883785580421697764398525992789049962429065388962158212221897887811625838296590736324849697798761200713068188337251900370377403487225042973496099347660728486400016319929606695437071427118319214099244239469582566542054191451204553614236488414816026053774866149864110283759516290999622091232981921678339239642561390727753657077363937251198229736967869246891513716526486975965134435767122826858375314401262804184046228693588973582463737878484474816412107338167587759228223079154982210804795904348319338763433073399499251942433721363211915365810872552754939034970117953105652743688889440854746664727270780909808046997309405202816129582446065629165507696802356145139785999535614491856857949608990228154099318962273521074758244856724526195100482672561527017230093439430290688053019264553530429770999782891887127297756731225080121569089892104620610303265419535588308434633118423243266793502469894057473910493235573872862497868075144049873814343511838525582585965084861976534830516557746535484925184706235846361128961231063475613487829196208080290215418895671695470578412636065128050970044865339456921267610746489021826015136002176404207593430425154960471216560638269072668810603281420474122008886673494151799724644431487852302819566773009243452527803547237133249811211144752719605172852639093240007410085041013534953404377507086826929095896450567776975505181699765477424907498713768970805422231030736998621442134449704808333886290361924620994170065952755234994560840888352771199512564117887487755426906953789016658371705059760688177908491161857021874607039200411210127386634258458451236459384881049049889171246857392696221806481134103477999102853345043363529355994699910797483860730938322241856554365049764945838570957547589241810795493776431689626073436458913015274465652114578614155770992104933437132765485502078197577561301902631627312439722426741466016940435362112664762066895571814714997912220390593604531712953095554012285510811212102657296975654697231782827535893252633833111069657658155611735948679547594241902955820124457509075373370460353622615497103954431129334077832390857018090461357962884855271634026996506312919099426969596622558949797562872128775719854241967347530158746347073305073784579614535454252064423087824084140807846279673687388788958520447092790810107121198779872783592423393355755619371324997959387609841477989821381826503432240130638574544885493589707048625142787242965210065664978707015683883864539959036508017111436410426627869672414199832654733411128487933093439580866789075434070202679378477434553526566512929013433723462897801078201155221887239373120160937097040686325536770926191900398941884114592615370116668658956367315052216330410779848867721149416004662110658605248504107954794838142514049963682497073968941442466671748736746316851704563577542423105150580986476464173910628745990473792488810727430814262952489093198549576289832417190896199838410018154664437808237533284022544160414895993190873008472472855748818376975818953479390880198458062894211236113335463254004046653571731667323865207845030801661957708090271324118916546201980708955460918723854372611387496629976665825231471481880032379500380667011859894219599482184048922604588548768880233759401421579154295287123568227193941659500062439118359342678164048354162384967924208087709963757338733972713857005101721639010281400619964029555551092051482372788893958622506358200576235586046067003335451488830880320699079612318449237973339003311505882948380206876710240916485958888394432465634466757463358495322414165188032825488208991824102940683182206511712210563581095080526760824300375506483382815036583507743940163080243748097984829566487277021341700558911396621800935230435395488825590266709000657118853359523301307008761904282865576790762169073394085607061588936193013487802595249967031591436244219977851983004379844414548655165908282041411393767318104087719596578936089006009298571878482454316218024538611683785858623451078284918216914586433097247677113149590308273461852478922159576361761941580341303131918416077594410121574394177453130001079505644225251093067375232236885432427912135305575926210031122118620382975027538178425417311733755171196816524092843676630140284331236103292345231891837022303444549741418863973986508372860686169436251316559806429404159609558281527947448940796006704015606635423305660888224109246225581873588042827934696642062741124597521522027613182620967360927370341863068042962094801519011215646323354619949604974083444354531421150067268251668779506672541821696486833308233724458549241292167319098180229151717027639539076596084501594587459760737822363718204911724903037217284752147681893828285852418664014070914099177883713956921617076979010060192305266297842195100992184012322062914006048217819490156194790264663131287502908324448371554662484940386152485353273663548381024000726950375367248133315649581319529832958248945699470154098386358837510527445038754237416350534548439059129801016033702406509141965440640893099287456350361224915848602375132873373130617776438334911416797427956353582643265650934389743876971254048909954397610309447012230170495967791613454602409207214946497104487480382550964755792337840850157046965409260993752929750657563244547864017818208689976035501204605289875237228409656415401043048746627607199592900351813908226465627800691749938188975755041245526281187695373575052501272801592229277826773719461371921651640018071110326066546576457256839904111265510326989847762004945257320763366118794668546807565557788161683365059804799752893885934462182727482769757353481167038511000881206002684512193161349872922797354351452516206626446755043513009958875998659114434873302760578327386061081960325678335362521398537214632713714373366852594289784092798477878664746644957883589668082045147767271907031262880771077178087594465928794910582812751317845119390219204362173999271041748174735530055149680713746137668261024582297889026864070620871691840805906684021071179755073163609712321042997983319216599464118767390473835823972710206691386867582223407683714025128786024336013754569561210121118668569527576098387624201318060097300151094877041864750146034719095600164459132581601108870034240951086006596682466186137003404540305650156032108961119564327940113323206244129685271897339002930438752682641325237281181873418377266831707982236681984925517311140484292263600497298366464717470320358925111903145526378203697482737644474657963470343627745210955607492099970685966310831881197052675407608418520990745264126830901434767342985506555550495836710687190384924438850171624189592415970643895517919761248010511832662108395180919193168647150076228549154633210029492313843480405709777013982744519348392219713060823701654633725680139350348101212266051149768782946285862320643474121126266335278215774732452483124135428660441401919056371445619336167340996637827149600978057687541695344544059947939618148914947728839344493862378544571071502666829049614037984996997990417731453498520525154680296797462648196687022861642312147762924124296583127636615013215995687556303213834957850419502366939282044083814911150686568428096030448529697382538002417267698709458055882387667508804699912381136464981780323271388627539998143064746124047754171778696333861396561788596483175635190236538942860987981324310596410750202204906039359870915954779421380986417913250939151430229182359194529115029434493134123621519818215831203202948600394027669012663220706625706516546005274752240101992387346902997506116316619281850976779226093100513544564936116459656602849112845526224785726874706115946260327304926038731909842727022302279363717567119268583647185781515513352034020094255732570241356749792983260661689237477237909231564483699398221906223959835129277487404921884865148618006764683647476634904354685227044181503294734668805980259970451471908672697542090927146372479398724290800146596030612664416602228604050721331815082946098885070980566227981549989279243140532399034861738080214933410263315505110372233887514816204398816296144993711841473065439725635803732060537419376715721551625202628791243475176956627450405183387160885984370464672049769257186263068174611117896507127338941343126400421900228426884632219249602699285376809615893194890230425833901286085290213585525352287293692772573112483980587096220893068466462636341647431789867000474061566857637857107584274947429648579667625487697959410694492681165765692579106373912809174332934276600823474451226468172447913454112832897445755146507869565899052824665349909387151111696795153643282615119827898668897109310169591041784502488287352319238448624226362973497576843928226311202000471321872017017837109757566855371393824758533811898056805524561758925329012410446061386262529720144955188459248610761575320195237921069318224655177285864226604778693839844215191391884947712040124803222614617113859479756568591174574724441827556436675503186173710531284061591548821249719371730212674392008204111754985468363984135677460883816733867417100470330451223726996329675335035568374255932788505284843970995341517659032938402850692199642609108990684290371284529345494907934984037039501594365634463139951298245813335313896483039546853777423867582387995950731279166633912135762293008238137499508804241436770634118679457902022252519770235995448842923046328754923496722087300742261853262394415846865082615318656057785769972925335180744046382897304361213124874166495577320583031985264922840033821229619829400035721889609222760768921737321375612817140127894768086018461734761335830477995555701108465899184652647160290624326823097213791999950260020076779284281280102189046550368644940685163746947400979670522871746653346534766832852993058391752919256842294613330335029926614749035530997059294430175663343834322304415434370347646640492739502658109126488241517806384955847321292598486391433780405356376028060686127816888921524835645436191658459051120653701944847924254620558790155833335432558659101839153275563432530479137407024665888585517326415578510827116214091911502018761617581702513117007944140863486314831905529615541131867774760309553999986080793843749762273037037169749162292002183000135339181299918296040235929481622403757349964789815652622682469224661822660033465631554440691909194461335922947647617530984014456964949854178741721231360779557004623157574070164761282734096389797697740198761601941576015291091092531227618383478679518524193706079791655907057515180512954283101853591731863652920291308420578073926757411563134564106004814859065977727755892339730476017611861094666839383170513676765980608645465327538441719332482103500346143870064257499982174252182121892042469834596946017145410809671735478479028964900570936956585073602799626696168464311182371981949954017555507937248780196933765045134741237023278581717052728754067680867786573319191806541465070234693041076026043807649839841877624335388381358183139633229783045192735420001244347701439141020280583513761524868346540092241485555890737202921946094967830938047252254271539715644613932071756205105747947382556303404499840905518931225258151706446913599454941078976605283937995021912602612047720514588368772774203939349274661742316966127244888142028639142022781241935332974216945094679545206739569773828062800915341955720929620870217816235957315398580494059913096459784367461688033276247131332187163639467180936674734403357555262197725484420249996339317486166811685800241610193571815876391393715915310763425043384067749110062398885979546113555397558396530539242511338515197295715072567194931591445438867480941270092974257722117019767807775541153146444158888135464046100343675463395438136573794175520229837046337812404527631159587874291541420416206624891261623850077703928634847262333435064417462265548889643289608471692123310844633335053371471733303319017211530774818159753187403206520654666303834024724044364192958515662077201957319351948859162981533005510527995254001092334656798597064540514291065710504302628479375935938805412008468120716572595896827794362993111922904628749893381516161241807541838876597271700031938896653365652735965704729837055565100268027923851679503365206653091784354680053222118117845683243680044326659025462859459910385475796520912343895032510595830284514501945309892327719848928078784554674964362756461696626183648666203671557849813839868252876195638573608520419332025764108658530820783460937354267441745879179816509776067480342358794378816611199895956667944648382154771584452235751309630861325983230445664681920972502934490357865898888405205528878640659389827094109866215273716175244926912647222856267443179067066051325033145720678344046379514260173334959206264618127328737794001301535715736623761268528321103911201661948115587795504039408651223604194975793571897974081155637346720742742415773774044410912384855584519673648350488868309931389823442124854956202339198190060354898518044067135803314087241326581558085633552923565055624340622173863587100591091666902011060085192106206152172988987083613379458825841989297281359378463864081462097321574887645854545290564856934762540928991066919225602464254529100149820094514753886905850782157499016423832582661233303084236017133133019740264365928105169746006112974134995436114150778901552316163627582116073452193855111272300896003399371087363400847445858281169291728401471592927127197382253553963987645924738369326112803742994013875808176175069360473808825916076549966028549415839794291304417893741349812851299433175675824407673417695102424433117320805419812250315547648257870165086576670230978527121343260960828280847222735516127980217943248638989060292519154480885294492491323857532148964128445650583365153439839435370632236908681847489163408293026856719785796604160121522883409864495030061363798475278879019534177434844467274800436348276180823399161008740511223516596774451783081921670275125143549469966872668737082784919199168202590371147765982606846429716828871519648270565793794566304849953425828271002028745751425313487886988808012391825275474862935920257975002818219751009946291783785110346671609157650768942405764348823245410625517145576852355740815455232660177674320947901564520546687532565105251479763201112266026752483321395508993126832634930136851924284030942602387905323204787679384881578179912075883998951182420162549243993752925029268338089129651247232814990269823023788861443531898799215072001787269476593216105185240507686364891235175167193707377421624358856294062359477043120052660625697625096842178121148882988002661604405922232933162417612290874337902228780456170135772375061952160342686280629053786496887139338571256241696407932447583136988591827299927578294929575130482504366602853237140205496447338073824577555825709270075915358213622487873951980644753650922833873219737894509894881222431666501069873961667298992096442059681756961923183986619179340847425786815461594145893864060229613295003812003838976745020863385578266798810656903699908156782778516378293459936194336698065297922152215366628883994026803862183878413895499792007228937116950775706172400234487289868380888946932582186337823435691207402895687188566870960612738621934987326322409606596069917602005453603816589660214387177128755309837099020713308471230391797557448381005068328095118932927219123165494090664021456835987446321626557573979283730870286061293977236838581491993925841574254914633515482041412850525611641438473862157948502590959169401670192222715205159244638478673684403410197602254850585962037452021034019586721608171270192646070460795992871312107480351188250682335304496981265520956708088454194102253519913136835291159722281977965191751091412574906675271987992843990372741064588671698118350910120568349817677310095484699100664217037510129640279526680792620134649082657083731273088770349853816883018041591073508780278978144452516540770812748847379655033182989360261051517090092011022207100166947994860649884160992557782103329254222023824316169379455244507711661278195720289949059237178763071379162077328051900435950630278372052428607168631975683199449535965461758237933195492218355714063821726217011899062436301646834987994306732489748402990062675636866393449866870295746329559276358227417390476736646832709872540082565827407937301342125015787224693593360232027880213344754711692547244278823478857202047848109668249573259465069381839328994408562932954845234695473247072095768155000313628681830587359766552445629233370980039202446539708198088097516775900082945233933825387379751663668484819906191718923053029327528205228873899777985775746443306673842846683423819777822394151522436389874249517010656678530267666437085462406145075109823826508232921923116946593605521624370127430023949246000846441913713453739088171054329719962592178595836890022753546934419927056354499446464846356921147395454234209303509561912596294276033231402838156419581239921684357059261155218643672939081140498842995401350304582616685615119192470424806777874883871318987189673826192473974908922169656489981576717042890174496662059680086819909195664839871279960006066009833665085013172670506678073810536253324043615610980110847675549487749423658516371946527932849799057701845104909170153356861363244389487965903436759034956002166426558152444392827872271735945948307893872024847342032229005213360684605312929409749759889320134905015546639978806999170087371588917595677689472706181150301964728913257678481619091938845977305288817391379634191013912282881868957666915817506640190664257591185763887548293436299211719127105497738537301557783810188444186065783059241045272431966922764394688190230293660368939291435279006783454920522889611788605187540831049180891775926096257118288327086436346727818162747255714850253575093560194453370570429727931651832436970736387485609272821695707559352179828293176304039885438950572501794655341196643840611832817122580580931386536690163234155042355394880397710071250704105678774162025859908400717682098941448674622992276289202550858081621731508389755388405349427919056734487660483097079108665922529310175974785382557147194645296290878451956517409594789439633768568878413363340735390727437663722052802244591605345737540661837169580524217180032186022858375322597888350188042317887568940231975197437444613352597457897400554662442432497593440495376268236401505734726953980110100256582513119575389158493821251296799677253621276460763910672269184411105916667182317481206619477228053502579386189871073293114319621955835900757325454926544053448587623799704869639821290623046526023715456974639821850402406160647212247386285369145422758281589303257867192003815231307030123145001620383558559708463628872856866182958803815141259792427122280065807217537599560975302816813243190882675811213978645897799156707712334130061405072073787477542271334777231879138778060411602833892807322946298610943899480426877630904138282008249327643784456946668559691350972809296560296837842483190637664897589402297476523373707075902957322967641074447790285422057108331864160628348328403937671338148094153081003836346209867409231416257725926016424131076838385360967743938964538812198718470878357602846575850066264301318356377598343942325631956738892178647425115391464830610561761852266148498621173529930039419626797835115432471979210099902359950101850452263362136629541758790411552911630059509298870937205111995320951919761191111785656856314582374252733634874426217894373425559443882721099552583440480781533630123181725047611209858621391195038127685768422270602288085792280227899270135450268982898128670846948085869077368731048824135209253377992815178280722473043295605706622345618996569294079904301031800558838515495600371015362883393296308388611837572513442929623743625690286239908180896674784072154164821536466985251118356093769538838247792682054035562293103398234617217749928761143107112618698176716510102132817484322686049289996213744264891787470800521778991459793683257690825447049955736546073833295445503760545561693846299352695559825481436952274513515963501284438165762387821902834477841943484916754332208988657251072163801257455920500626138323533310017463563269678829979522312213359229559877714784256215281966009582480397960741880686481462221846735023846499620948290023721674715130176161834866485690095804452712924136107744855016454016588210094695318516709496532028368556343942755258676230939902626468802521002348398810810313959156722167521036403116827698020447084682751021600765291285961812328923919989837615465401528847640238956400800911170777168663258471518886521341810096309789246814277767444249098481946207209911860617837882725606027748920250775654960922415372184898191399949304356168693621596429177109525695097069900632310061085648555448231768169491892033538259383979779552017806002615045384660223480584280668080054097272424887098899181403017210837408519716844655506868668259576213176185347414437764098116897462020371211318615031805348163709928051005793939581839605381572799053173564620472564675646573375232496044286662754228334119477101158614822513290574723369645459350778630281397035026933558672025420653201911364568427852227113049930847401550832055345022071115182925037824584151595423857290920559093155527093715730436507139197066270720836605065359257807538799662427829626027190863678584203426179427292783872074227039258647899698885201728543732963891417985649549871231317421078111745847834714810113022006691881171390633223774639144278713501339101361465475823547313216387797859422925909287326603980617051451051893526138463564900758234863291520258655103110341381404910157351617886075764396461883410175654441487477439695871259318206839292181168088355971272265371195267463913547288909010252777742990668168005319870623247556963164794199431877289989589073717447913822106916830314430210883271873693722363715982485112777376585439522066498763027698123461345369762104739754844398066496855150018242872413962930020784239040770171753087400621103886981275161331107671042265609534206562796480309195917122225686050866069749195871952851172018630145722311125595805803005959045178016209156003392715813561939615245058294094238306752231048760275683319313953706159405690082546716340768851873806202839376494141695224789764482741592439389073858703368311064748295916563631940759787977389368568253656567981194055582946890756209748639705158628061604955380199298790107269885264068694896100332327284203406188454212897943218868970727382736277850137270114963870884664078607942655552555485664825367262388553019570089909441814119681927822521474367302375772647906302136270092943519353752024482465044502817747353031305587840428905295653616695575746030446840020130258347285787860347964296622856338390938504059599633820520131345977594954959152824913675826557737086309853431031656991864774935235587698561676402569436794965082659516493618563906776134086344949610923085281595759473244692997843787506957796523406627034893439922003933142022159640475307987724854719289903190331136067538740992626587614582952454629627447825306071370861009325656109106290159370323457846510942541565848633675971714103682469068213645950225938235868980342052145842415621097712594198860517418460981052180233091349159305532364021180135399382739076096018812708570022161499420235228530119785151482540926695185656765341040444548548817766062915333423935588304097708038262943189443850770239040847501710409323686830979044978493238921559850021435870077134287158470069302471676631228530283911202961584833228762187312702544027509886977752418671972580398456783452867233726268194259137689223732798696369957194750828057492990801609296385648875774366813059933003010651656716864331160038178433180947698249242660826392564722108563028212285843591291142036032720601825232379462931092541025124541700516649174969785017658680012863254457378725293267127745162433436012734039785930222159961775173614866679396765633221951493429837679037493082517016185284933834424250418323030264100557818831854428936408740320396600889234387100234092685238849673228445668736570423431566989381131170854980556334241109039029402069878836686500964163691705281565858356477475504883191164843064598996632703398001097062714315487174370481121700620918608416245963219627581891687594715082363689276171748516314584518070543563797072327895745053875844710075645587473724567162607587558263162416383017589481237273465832842643349842119906790332769950618788667306344903282783764859091686806539844039317138256966595923657348223568760950460020695736736953943537344892878945414299449242296541992068707171799082027511232288302063740933243082840768023659962230745072395482913251001462315228385669963646481619930610803501193409855128773081595450154979098326100700084351632209140971316683905093077706782579384891592132099286598075166477627404210228706958031691019769066584929411630144904175524152840798558419204594222472240857954524899661499631295674599317874497834135019747600248558309355697881536973136321445251140829284181280450249199295984561729788649836529671737406535027575784653418707842130980573575850987089232183386027668096878674458767393704250610529455934480000337948441186910343848981992721780045698408825618002774024697155696345353705817713249665431707954879525776642112068569434074073694165211045301707775144950296642015085673418561330879369079908598888195417742618803144141748693529301286286876979634971644124217738001969097486279960894609364253067910417459357128319040298311315505930386112061927540034742996012976984567285680075747868256852655888055044650282472340621226723098765095246795551167576075518973671081866487339135554730387177148259924982090655636246368887442816354759738020092703372797235756205852019488731175736415208568879983962553950672045765637086678684961673992899051663954734806468841632161269623214043004303497879376589552559126127334944313749318755851522035048877154206128323215542501036958420117770605811310857406721768844739241215189067429767995284346046208510422989295590153886171777859625965902453747996448057375425903395571736901793975160019987583699094035346020060061145708129727286492441555885975024274901019975278569583453344943250025780204344440868289075077439617367055383761578786385387000953573335902594668119751237389838726653687955430018415044807205276494457025799468680349949294168674710474523631365047115269827810552059962650022454407342871399194980253833385058853936499417336369643189980369532114631746171702038807086634906478634042245846913559042424514028142597209433680394042646957622035197605253746691968646840574852273222141126346820073268099128359680433712489865124847133386599958155703624128431192371380520698554630522396286001693260924761875232125700995941645450175979130483158522690092440553118658153197845931405135496797501971591305636407967874274388697431812159633202424536950908108540107486745322336694887417447584560189776395844902174934597104770315419794721755903104895515071303375092264289474366150114617112854048983628782321775540335581513089008600231119089283171979461527339639814755795610481654721822820928241262244086617316118295314627011962136619959410879358356432093296418935628950752183416094956286605476082023394390369382944107069073784215937110084355080993495125848055614260279488811735778231410921563097755633435689280906240147043040680967454142850010531291101440719318106005561952937599440981612645437443677397892845582361680657305686818893290555248377738869788338482126900338552557729632948503625724161794560688062505674398343584068858652798471320568203326801584011861225371072994592972198314039824954643013641412093794464784632967308041240315791671468107172154657975950843790654639268944164367020267173333214286872793000675256808959472460540077392143662377470366937064798928068343630666235735491883630674089690534541962549218595948296352991442506812421957849397624936269976684320117178309478976453428215921105441925395673890680258742952347024625362720586244529916142578749920154783492516043423853492438434103038072737707765701474373435807984511214989021387726113074931251848497128991745909500393219062568077239325454554691767350021142782515915371392247521510261957518125558991922377560556251862577787152040242356430080154406473786864717745485337568513303957730505542984102745208488245638018117432441150886669417202922513871405259332921890393023484952178373235334465326269377747325041092055082762701360107626880573492834106150143211791258410932812267491152949691944140579833540382007949205272620731238583327858875647790567211041654416614707612883610006243841305310501400810107987555773152250424635872420813465170781968132664730526526687009753901023548400543191030305850507328485666218923073610160979873010960457878627259697182149777459319121724208552038322309774373362726009107917085415906540069540475769464526935273895890894656609355321694271294261140189336817558212336609288093686836108412959313689766825463416180797337993114349199450619767414038367395910433250837896097654632163442968447504718087753879660115946910584698569346315467151967310540189434725327351012330555664924462530897985525988963444453829414488382570967123605338919829313649034991332122842196608736575713694328636338387496569415447710706138034367393954329945548894604432862117042281029757649010846130362580988520444565288925386561835543746690507579482110698111609436227278171946884422390136435558225224330140937115484011366213884108247980900542972492869087707863943383569758089134485548375376777196589593658751543275029493401163628628419330604817109392399879190088420348729434372149461239701703430337079169831624576605061362459054918358805245203073129842425880187096078491816358337632141776552648466086267449477751311633746098532615677168216013147819044560577089203080185215408812688822461085420684333127975848092195444438896671131444617893147412936651281987902593291945652736873448363988933899843612116806898657975674885165488863376900353752919877576930810573551739514437952727038004470490072857309252626316730990740006849045997587871320935334814799807297803068592527492154032508062062967936802909636571196554547498326575576094672472292408920613710562170097933992793206656709458921208390498460475864801144552327813602814534457954387336599185402955060100187896258232064467145096398089199675661465982370141287366468803859403266522240875088605288410671979991408544870072930220172202603047863807108861726314153139237489947781917810407754525553693605459036378161928639420022669648039758682263453758128535507962060646362022763410015625391199463257867883608702524372526283033010210448943262262753220736676529109162819988871916167866976986172106895009023640592917572185945847630689212470436502753632835065004334618318970305082839153585060525172234422933189629437257761631522268739500581359156379950090704572007260968988373875369824262186314951213988357167356388063005629032547514519966181726778207896272799165637748029910225094724409419801468690188625285100423366590664307650167100236787351898041750864760380556088271198478863911696605712575811161433220316239861953996081064489115129903832189244967115181985798502770446978518416280732953187522170737542780783674506060843688776930498302304143646891398370082693964060694562881641695291665443739084757281969614641195715806636881312484878296005192365381669691441316437821280803774582231914250665372731866015855576310005458819146086341512013406605686183053991092842220972227727666420070998758231590762943912951563496720838098972472304203873278350860147411604828520420074395960779396766574545741573438143762929561095311584820920001996834922274622233203492297879772093259373458931853036322002185233292266043263277738699295254400374606548044762949827240422914656005290459866149053053303411842327747134752876324177468600510351968025950489335416177387650238931910840665213804667466529643577196052289272879058233362671718010478707415097865327441555228155097901531432569914109132995250276991641218479890353417341802888078594370474700374687166980729136987810519134823174319971817569732471693411240421932383237581583407505032512102423272159997622559536081716396595545921520062634938327793871745098766955342878789774664436385517065026504485771475878951663905261261876717387540459387759244936972468702219846805151918260343414635153375173543983465840366500780082513376195811125396059589417188047217874636046685077559560876646149799759072572546693095018122660597563383204512084638644649947755674711048825818624518114821602417311351155337639418016198608293258482850297215641249354354937014722183714909313527465161404229884034725873584804710030497103678619969039664003189027014102187471439739304796671271469674524858219615904435885750474711610835582761860115988679925232776700779134880627067843058230376844322408372855777585082162732677755215753854931391889443311370971879765493099063043708381210797273160414688741044273294030727774363782884423977594872346291732896432364895042303033952547723285292251820978632941279227761069976483964461549803039103687476367007442072013486804209783446567078085008512489260912708157237896817953897147166531635417927413249374555104906770883053829104660986180133549273647157882317517022952925574767294380718432352827893878730585071721698784087093608489127582967318450352330091008245008946000168372896985534781567708986066370243799181871271374835942442963643209472757271104180443346013051070221778247291988409544429155924729679314766416864679909456377046036998870079612857346705087176357992672641907758648297958015096149717986439323118705902309745168343571252335874425716502513078384396781248954102878996867215558351818219767292372675088271913259289045705392169962315734135981016260634384197411159559871219485570791540409912608431534494729361825971466635209403043017943612630797077809538770794982864536667632635334220689453430306269748572960188084656490209749955256673401338028230788629806818705205412520401199904304289199124015463064896075523480019294548752880557065055452354879178955987440250913007416419180939972946822103570189811867672154904495028446259968376782516887270792953349935513985117238049116955666124418804935182119542314545793295497329011549763279700425725292885167605567069578881891666892649627826606842817888551356822010598648644268973104042064203886202141593133433565060797764837286117478541013181953882096326373978186750156702010351613827622355499078167081762580063265190907230973113261264539480612746157639746972903819915758063074587538517334833468607608896462270121404016579559790815513643179269714327811600039509295305301566405385440144681956741689143950050601298995325206242564025699973540563356851170626312937882096557630557832675616162922170394518589959392779546333735205016889846436488820731461399285601576461906088270052183882944905283501856406504336417535013934985705100635004423277553280516632501555360016855860632161801678822889859277739807082344301218764982988219507648793745273249775716467943768259786538077709093158268698932185675410221811370662891505071916924055717515372979854679547716944046087285834020071682558785035025806898027943094618467258018625571769991436669256776624788825636710239050892975798248952227094184674434146644119119762486308867522691737956084643416367635588308512954865371125074490373228827199257271519966000216669389560503827951906623371071029645261125354820180816234059316123833832787215450909054427198032006442253236001249893448436367593719142322778515962657684525307584855373583084165152477784998355609967914529055371289933804173580332233138043482601916191028053475986623854151203895606113270055649668928131675551297996763366535540470907939888668953068578101733026605688536895602118077216225892191992431173048925224971255312282117588225282650923582291225204138370082863879599408753314229202553788319259017888175978943077271131604891567850867837388122362887558552661186573367446022611736332880225562068614958467226605377935752555836093409891638296365998007307845001369945882120519742716629518893636617887245193879883914985074636701161462355909180891464878247698323775978709634559315457068005528207062946431076384817183641242844883222416345306417776492806003167897001913734414599529081813008273571202445417814606123726714401875382252745351515524245007907975368799187115671028453031873265631128191873581420504230774629722540369635233574830656204856108640934273833183346343273512715926423939004912797302888378346374423604644196581584384053191082903232393915006370525377701065942921907663931808108787655759690707840731732397323550634413585567460029281228194482626386918581367216041395463318790725616930815409969437600214768482366689595833864458433913973419577395445894737996499396501973180187582154388185804924401538657071887678789060589434397057243968067662330777502154247770823779044126904120760661717514583290656812401908880652059214459722368760226173024555463740562074808139937746700941252221532734488417063681524435825611869662613638340292866449700660379967501793763167639180694376784338621490896235618201056406140123778850988356670847311437168889139426847948538764665098411719543370289215848350725860197651524604154356067627464117810379580551105852750942447296557129458895445020468225672010620986206771821667486885596778133367304894138883039656612191893305871404778455132876728030143220992705290210617713921277375905261246803578323361223167245131430183282789876952990465506988485033434839833599227416481068335963179705040480171635758116961108988752650503945545081890457820333988805527336174058906607625678876023448996558182195071306798279843747014713056703678040027908882626096875179843306216168364975773394896181344188241688650228996780816279756256922749808740208876881035943692992039572656130506812883876144119591862400223644524800394799942440582531726824651352094895966587269366348840150992837598464647534240305615590651054491691242186078781176800389930760906904835067279512140300340459488292084535672716329501200711214683765449414070692596214332856787457468380185393045462431369855987326420707337362095268253300224659565421102188316355553221022325835419869926664913531929631878234901491587001477499219108946501280172618658424119957747844638088817923589672365496158227535354996984130293949320567962137577698966542096156183935754851061018736631402673250619956581438409588435459271042752474485532015362900288790273637151170976115751044744485750023258581485607889851283509556122124413532387816233318165611929257620999185168792428624230801705860076558534645099212221386291932006291667104053444132530994050314842016003289992319103284017248036032641173958773736439315805475634461166744219590534169466563680049974608917632616393699726800567119190081116460002960099906297666495080108508005158670385819718130552317324630173528769303497898533046076126706915198052104187921693861999113136828410258438748308631022755665240828141236888951950624472937522403669031592181864323402691929323768871517708076749523898992149245741762991858043348629606089363110625810014138063060123149436279306873326876877147445496118241966037173011732267211548894144715807643463644764575907033408588793793885511751946742353404539412252406457071214465904665673480924261538841750263649967640397964039506453603305846710659160869493642767063841875250763968961560317311929268633832386744633518113308307439130354337227907141030795282271658841103444348578821809080282082955442812200380195266021863595246105666063149576127025158230333522494707890466105078851861326007087053125210092418814033311098034325447218753564339432204046595402692850448855646142510526547958472166305729945635788271560772802148217504478700112477936570705673098921138721930592905808649783986319434663257922428340202752079620107667460469407170560953513333993760749271301176506022224078447808214938396398812005477893800566578035990431148710163727703521449472844806598021024629628637432933375005342109840248586097715946034626507089275768480320183619054988522892809537682131515043558251720372860169596095876425139501382209840496122262422817340434028089399726225773933036610298681992213377579163735603453780755018132559615693550103283299423849974751524338100115195012131780501387964656284915433248919433718326947019268167675960615918788976365260320865126585226424524119959018981878845082876944376766318492238487992413740076722940680731052803953540236603520998420550430592120388275565593048083911659730624501772525278790798854685084258555173838383385199434428891591225364411866964417124240013588796072191061349423083302978966344308827110746700052362997432610231802714226622261875057254396907738147426352215524483240080437569669907102947264051780301516189102680092635876981841801303452664710551995073160643267550404874531772816479749849316816351888113254614996403183140120849999754505654405665114835838717438107104444681995736346286893002713717643069604147832273275678903050809576914347830867035401616202818491144123200843999282131818484332288134255124888668654485270842304284009883138554901003794026484476236363753646511055008102940660991524814792631730877440642070953919991675563931676247589083224270729482954432815122952903164750609810715170949321661681302220084899907335192848409001433236988693791759977923872805644858636356047169644366020445259704868221514419781591232274757877216398657527609840899889373777508937404065845611540453448898263567944962864224707161326587499595583440080244940052564753112758294582455523833993886160216709540903950962298436975360579443816778281566351717190156086785010229710669378772149098891936845438672597300797493811034294535811892130291048572049967356221167333663500764326274058829544861575696143204789633059172525002965595468048765362628154975767658027787559023678734816250424531570274183539064997237143086239536428333798525880936563580878758721141673582000237858579171465416121120260342725573842215518015874630577677939529367891253297770050822625008193741645114168473736572522677789087457996823734527732736062994642924169967155086229280608031678771501902041616630204935075883776906618674616296470167705634418308967626618874403297051778814524340125122267941041217761721828885081597216420838479333398295669940349593790728203397800879604970137807029401457061832275296034853028371922261005939564499124150927787546136682314612894699816725882471189854476146641359747240400116726464033832999040150263527121857991381875183821542253047992153889028461653792947236379633347931270846642722737043541076853791213190343311924506345207673334380916812903926710929875717714802822273307085859022591392905258974002437571021699553265761333518518766386027619970039805239305274289337090169102367520745177016964047237538638287654319043029035798193044682863204543018914216075051699668512336445188313943158140465206850355976752840620968648400146329880263832549562721325827573448535583000222551331859622886497724944819666415281904070287971095056777558383647075089292801299214655089846527007269657168897401324328795719821723119028109909224942106911519427044773587520266021778729973938043291783216346721288728433697903169348592455772175986332169229101312996493456569456831267284809584292509355156153586820337367220136128517195799179067888794897787415579507858280400519879514379310240973513754244522910665873007865462514188208080730719268983913504925377543744202657016514854903903784915335783523919509184229410079581794626130462168818441217468062207228710462514938764917833389258535941543991358005859024298540855725044894291031130668410610525215294364058942822561951509029885349670118520896464332041879321533366847500909379474586244050094419795259305808470573044171422807785657037127947580934562908770479883469716932355169605915512903946546491946976956580104477212211529717885424206301449359990364704881686963945459873956649568446800827974064859397628886154206344959520477876479602222481404518711220576212828951209642426243976910777918759891509169674884969014041781462488218992047215397897010041004451916374635484937776724048963056176085749019066419920856498824416659259136411497972110570920048346356219112592053159495207728572853502277178691134317095074741774046112597710544066392888757183933236000244502603875999517421359497976494040004144093986809319328642332313807310726052347022269955029753364133333637683830769912223911477705585997784287425696452597304589798916184400911875473810469804380559517006296303294337501124376916592072295301512543213940544337789162781914062155168208847363453419799988795161172610284106323369853456622714089825020691286704441169025820479657650680608338935449086211438738256599464349788032327217582926945169986312673587510954845587846314075971720196243370852199677928830820417083628218867104294024260058440043773587533107041888142219209246071491335029636905846644883203194741017346112878673517942209414546604185340301551815562321431657473326661079898031090681700826887321019364595617858517345054728589800787287211541725674024419790288432253154101921401350912386711103232137314594051156147067212895932638196758037690723130321615824730407013885893346366335976771547070197732495488145171495615889159727040316443495121859747041467171509731132947384808502107073004895212374842154038998185951322490144185729193570943752415921554569296311501449384703394893076243553834235439507857917705875887328687263613772313179576318811917493997364582955995596168471447844151898543077414559430091627277706400678452622218860633810672484726902440264267413390721935300584244062259464253948368565478450534349052967430589748649564389293525069687282557307388653479795697379637394163125122113572366124201402646831987523491375325919651580619387266619391605104935926527132169220962246396992453394941681487697594502275693160173729782522593211392279726446990787079721129270100728931641413289755405112986071300454244972199825592301733559399196662588628489028016102977414728147217996074304686368394358376209663705921780035815169912947673154832624347225298003800959587555545136352485292336603666133452157849202685061519492034529021461785142032423310422848635208968797421845400387349417283201176273782264796397846777136587351119302070722256003750749407810394633895199845441663143229731608084404982813543030383363163531454052991483164256012510682085656900160302972916584678918322105869948910040780107692477825728067218658664493575923770660199972606595255433273364250389479833660143199307308480934516150880480764636667529086671693620624928739814887990436533387163969116727369702731265374284086097348697293255278854199301904168428232139585796602487375406543926084953186341346946867892358336068033944557618564870113259642775582026319256809971589448934540735451669323844921499118554933828244577076688230525469796128224404159966892371592950939237321195478945074080677444890038062443457522461155572389422683859305152775497654543180834902387291984674869316260887179215124829247615893514149141589042351050735349679694874918633443047936252036510556721569888239520349805230153122385212513261664494737046124818609901439565463727101755621611221104722479265060881879218785645647702019187081740982742638851785178231952934190481931571564040017826008047464154536425857968822131471202195068707370393121533322394296471014338817639918115074215554226048219902450082052031551588031076765688121985750384512044736027969238848943985040776693919191780385131179046372645787280056649950159576253027673424749035577873032069466976206793710953140878746609071909005478715022757386156228403119997936014817401814072685593464247081865137267612797342776412408940702412250575912833204487675083824823354900622431962572928264805660096775092853257303888341824250441019443837490829289077044151815134327901263186270934410280583331971839380845112478775779052879961424809685375809766676370156948434874317475748991463889163350433836273988511029559099726899559047151129179455591269835942930673857430486989898559443261989642534349217117176194986881381153736011925283763481221877710943925932205737095626981646452645930525413081768047684917996709459097562709945746416687312998517771315588620765543315102630236084922353201840024644269498222009388561981417423529421101204488878651762047723100723557737117569645402677378698782932384884658685482430725132245997181951763782065167701734963907291197323152110450838896369003436345649771388418056802984140532309783687878873323574584371677859623193118212996544264227460331165621899580738570914074817090777072060125825537255988182554000170967909097413385517915050346241362796294337527980392121612449422857348055409299617422186755267066387154019716495925804198284572723394358727384912980625052299082304144179642018632393359756408562647211409871027568423284710544204769273722795869343255162372870613062489483176830059503162735392722215559603719126092705632090016884464223997459907628360386145156011467908671952274422534153735630436368076582092944816815756244075835420944504148183694007247871993716080747143704805272412272057620014826556738425852761520422575616775663448908355159040347559705527811498513025087412165561605854272923028993316547354990791561217866471781343392824994159050140923632016984086805996772364631180032309172314490659601839443357324679947213636671430933226872592276995978663421984860476403833121515982463348157538913621374705062677609493915654344496650307157560190525614934341239865008633497687725820142616035876421886575309174051824174917841215303222383004188066393854558891787620068788140487669276059762638850841876717239068821513753446907420527968759386296574986544177629425187030091149613528443892051450071551108730946649594990708997930523401295734938668817859272442308152159066064996075502723760812723870585121372745528886177354454495938515895687751951802687798564825202662409444861882867270542074750435367998458468021181612451191791640838822097788641827568105850767756572864848283603702493287158198060435558799803757574763317200005449598498725166885657063033528760680930815901814105937213785607881031512925317504110509609751654253710308551748548992807927921650826702477524637499837850472341148722403887877968562165891841573565939687030319350750298138289529968303573043060712075466299805847951077322904191430681628702950900718814134214582841561163276458979779431852446703335722015183008067730098434281459855594365738971990326286100716746911509026594642792375562493742351217445080312134998741021050402625411576311412306403373840230248447393613277714317783264872278720000313243799115845410732008325471765533577884197388111987830811612825334350013791097326458045675356269284834551025317569761378314436825247785430693706314325509640762249427096972762106167981630745864773136210291691319019350539173633877209593077288021138495225308523356420091475821132150814163455937327663816462099641504181427926147848561122509697441807399401218649576170877429853908394199011888587733637311313017101357779033475620443952626076779765685385041517800286220260173983153578949045444271657055964920522231883544742831119346960371194121860939647436968352163008411309212213761236193155509118775346445604293737921516689620242547168037781827463859079682073564093429943342717920802887522112543317901141491160047963896033187722047145519259305894869335049922335765207063933665786108085920057759573577060563469345760388491080506695516093810694366212875882733161322864831431471767211570461923561465003774053872176274111366017823585584517310029820778999364681776875980577196904429326564149288895061617432739545348233166639979174849840274783540535912002226094399053120707660196672743214667313250599196153749191206109264878195377790614253518922346613960953196062526178425715869924378266091617174649716347204773896131486719429482490291989419167583088892339731174155541726809475331027377979970981756504505473602276786210697540450592614388377815161792537901060640229167380269625734343046453004211042527662303055207247573930679272639371318872288012695855490424866322830702277401555280342205573172609159292751328720443377723638154660224262722795524264047906912853466474395670390153666448251186234027804025378088666113535664410691376972388236540537057203264851330711800188621777680597953218065436753210222504280004399406185181288953614073372395066311517070005713863153021329368553801848986969630285108930120217950647072487750320999483675687172470029055814569840514467469450718871737636802873473556196853175307566120156930570344309876149723068952866444156407483458808986525661664379720289586844220392181943171512756411177614756371405936864000103588026389125969238170622763716762874806283816022759410511462692288809129433027766495947249738447309337632746003710843590785997667180055868702873018322966729256651195926100594158100365089290626039997891076469310195227174464519944361699915556415641215108714382080886807522978508148022862341353184392056663971152460890481318445192314929106328154027922489378228251545768271624596117639566886461742395371586574462664399615547890516373252182578333253564458989290595192605865979867134482744782626667898419196273605935202214966815704365569041670825752744588175728116095614818572243695464750508302844307531707792355713293487611783908130291059918355226223746867115757059377490937975793819524733163226623598269569980473433440261687965475130429346162426613460747325269570311488146969164293369071948154548179082929107206942973187597197310154261993356461532836182287015155903310706146530421700668825337970132344950607141683526860988131227220540903094664606618585799991415397814484774156408225890354064490646351061543371940040138616035071455973601427862345148657347962179784675702189899513333644381929190530085773995045234934957189684612711376889575979332349533208953814539846770285124109139999624094286153561549520156418899621259300512644209686597252899418435036681880480752910597233600836548235701919868550926035004876573788295162923741832713236768658494640005967095067783453610036744259491885819559592690251239311072595121211563382415896067374800718324687784130780969382414829151895604275501754206517442088134014543607071355602676349959757596004103616096121377362182022356398010145592493601568971489793336585499186349730410349500790550971037329489219764058869953201896649335082043100488523059429848680178555656453897152963868713982393892788628313053889870441633874853236655056254302382861317683147439934461560931076538494758464893162151583588989339195673294433479039090964500201525452974223609334873774857090601864807051699125755933251820304412057338911692494979374444181721018004869527481582486075771221724138298525297670352688504213303463703205901112769270842312247374039903446761895700102591785896614704561188690554318000135741145453848091623845601939821457698015403674473093324214164727555219087739691741737350641459518460785124018137745458837629851790660942517996950365872351329115406941185580040575610780435791910515438952930178607056885781172174213915509532072119708984152215425316479193046160498117600999404341319099118921551365122611550181311073519406748964186094028486928305502211992434386630966122998376165898127473066900407133131532581930320281496745570289271198050230834294907246105491095799550789366026346984656628188055490104387898957440931415296414337769026050643640983268217633628709882627239743023005506385167528922648375095088613721983335346069848906855685902444678886336439604378182364931607506979525366177704480786285210468209326826682897220715910980081977801926495253830472463607958939173700369328966358022050659802853387029968092228675427129133869994026633577360863754047202114992733399559638671394141599506355503816227131799287614329892459586632102280507272017663282902813951362463925987940841197742421478497488792853481329226175804296953605684964163335883612464776047176630339853772671737323232435192979733423764606700725905697847782259010224718618495510870041401552763492243058506497917469994122470166700310104432762653099301528420684246859523591053096968105843118551037608085368103331709534908134883131172235937743874146218392650171560903279402818993561269449639671433207829047319166667808518255197717288006277354539915927890340107862889636611570807579263712515753212564345879767582279860562178539046344387826022476983164473091167731376986543944139748134480038182981037549505885398354291463227532912260623917829319962139869188177111184244196277187899230573504472457753831194338517932212857660352121687790114047765897677843569635136532915149309638039104754501169967587802799979553895585500590455332979356370264077033348112055967910966088046544581991175696733538179402029774208446714055476253800166579619571991262008078166820288591586248572361559940162554777079141116006764078260807710789473437289911567613068507322496315912316341975884627647288192023676271637519476695332542049089161024916483733496591727080014711527101290890296121104047246206562282096328362667088897284648491945054852414755813392377362692127662809010703960329946262725094714117691214291335397513015143177467168584029059686222170801110366607146302062064220739673674027544451115318680357371197061263214355234685554438245653255194962230924422262761618107635327121848671103874863324167078904688522332921111501979009872376674015547916753447485891162812686867360422299435607682697833173517639411375681873118531093914733161347146429574802588661209843333626447892327799217189381104902575089833295752311385116384118101924499132930087784725362736588016792732391195667737734602923116714725275438773239540964407417449308810335690168994473265062935681240746859168925465092110914231643396643496535539990522603047114871175019510860362143788792840744982527033242516917795343239338053753415428633449200572757968191874218427218858846662660281339159122650870329556297431210060847646238240612020974088585109713450244534562696748452174937951998366013595995980442105533930579946354121565926037395454813070900268161647358075309070057946985951218576692820433593133365802104393580161079082794266448782035280157498477771875366638868714692849223359797020185921637526370647072392328071177497552365362417062631546327005902663040247398045335302040939313049739713079171815148863238516035140918715172725963206039775181898773794298335489621492988306516879726173233429518602919791235420914661761858081206578509755405181262454785358714234987228245076280218555416439373557287341317707953318264106958023181267827292621724790478673313230260287901476485433580999324437234918849958599486258306760001220473363446686800302177442830895673212065731090929852126853082935352033162609612387192704749103169411516483884747974567712343355744298126844614327533710603770238115873068862889693941323630060605042899652004510603748676961364917251172141710453972369837657482509286253199176103796050507004745275198706924383079720813365107458086253398704529503657739479437519432553660014210556464148224360616467707917165851176561085923563460948549764477962116551131870096990291407315148390390899181591857833265027795395784182519705615246751810745633045708295944288915066671592976041280335474515510043994933991135740036810821452010037166333769521213375323959064451506523337907475042857815969527569618178470423817842031599241711215728175313825528990831722270803193340184997462466150686413717867935948059327285196433573688027414315869007652087234546637363983186912020965620754134887411550435179457052021920866286215704650129595131279374407246762041922665567445333444729681714873544938733848016654282642378338483175654383336174408732187921997143097193907561528997991933481684566486989431576014380286263353313618572379316723660636754943800525296713997403509940712193373758571204555949602844456404613060336222636216293412245761511654193879168481328096246952444569546212508791189353983221963789994987057551748771886105104525870912001550271811121400833033945999772865870452341916673040685570047172861172633588496827107174500353890336310666580911221611227953520597356315423878627922117400279299276602723091008788964486719775106448528542367606806783287027160214912208907383598679167790798465468476544328863327545926899764713611821919363719709430918976095893307419509153578998159456268174031091186213611238703266328745925123801722185923759642039717801197330135454863031156287645397333010353519936890891716582118447202539404709317833060123964167270931216369379193323918425977305276147922930212301316365295613762333052845463774496678385572416305553286105327552078438940442472330870014940075648539493897085636662472351155496842637074224198534072188433171180862478510999981762322580581202049072702367515599603855846672839734732595961271044969489969280704087235561355018834860982733449421192795115963891421701337136254059591584006576371033621859435409072149507971926424741687886613509620131303193981656443184231910367414205125568633280985520770932399557422045837289243830948110842330087641536630847241689763751941939984808639276953179016437278029776888061624908419337641036450961260406512736947334321364751668674541875423533249045251400126199102550494220608990865348912185197785208035382979351647361636394852849756284971488562703642543761525303485679142181383415467656303629359432715688885113964534175501135552342266095177381781803893864430908305399273865319883923708251443497669579512540664055821324953476082446423795952046740371691040228650601644011882128168872783923427369292606206409640919596145904314517234161617915107061776717415112970097436263571691798097913107607554440072748231658536391707691259190055511285073280816770513474907414501195024810842767773577308103608450037555650268658270894906640961146299690429226983808434968138914924798862248716712812408926279700650937412914280120188192206542159389736338193225912707130384894216293191100490714922536282186203561764468544699594307641907271338781826338479026905141348852408834159704093166717645848516539046001096347293231702452686080786491800770245426053385920091663315079277873248325901604421715668749405791518967711591318927501780445182499374387432993291435543746809468340260834642526817073513602678441171175476803025782843274127129555092671085740230474696002644571189301805811218925757250024179106647302011294693754953338392710767838158558088756706132999649915893949904087497782355039210513630164671634086226936539403456769518652775268560312868088156891699160460136793560002887848650173870361186136616823370063762490171870354839165300888065752373767990681554788889386462338043367881447386263697514446353315136450336525098779541309399414676011222285012782734557551595619844872672888621691139127864441826501071593433318160552880980931375760219544842366891814048761296983574036801175518913300572269947591922872439694710724497704047329675133848537289891985144879126933995627276286301571782705735523845019366528869425030157128864909899305589774514806497400710813760206766061002833539832072435945672059494512168440253056141611504723767968712526931563193098160823297950425898166748008781526486773641449356958428795387951111209004138824350699988820915655540328925022880514169678792992662686222467052549066749536250132697003182451011407351929815270911682876316152545336231324226804522288961497091739711353525544012360861881545414708532046722994693907148818860332682826172282696478516984097556132809109049299420589020997586802701182971438113061665016560694050941744708413659317294603683231488678378340158466652627793811034718565273429011264696899513522043813883592540845087574293404830480525702636746819999711139249943082380948147319257601152853824735720831491052716081699222814186753299117955244774879202469824783577017905817684337666777689021776490621936995896546765996942872180109781369213674462209747830040927181905137635612325486127214522261680518029325681831093141396659245310344236884339706735287266383000454195146442303262301907189759856124702358650054207598252489819907503165380324950260169372305831481731475243043594249891487918906280263409122726735334485377798532768897047616726158528835140603525270885199292171330705785763874939374555940096761537521778280116269037726528989620344126159881063216825320644381640612917117212009556747383916722296235557461243901559905448832262644162568712687048500344921141575761431548788382262449382571907205282243565403066864339495278663919782619662128890293170809150693354760936306950387796483806500970877125842074421149971698556158998974787651375057853627245365217806628977750732715703498547747167890295666395835111199772543088210830083871970300163603754823203181103451963419971957080162637542560696966183436297269070662230614313186361811611331684184951612964799463540815516628864531220105617962381014438462014132524685102641379341166216666044355543396726083900293342498560592304772543016048596898781615324252348894799274995680405750878596158465639968827705058248080375262444099228426558107196531396214742222341535077003136186652290242424273397522322011973008959689104985405447427697563805962622690878847643676551937568195199630442280902471965977981411229976113099668948406547030430616154284052898460555610527743167094547976542569994432561515127041177684024726299051846873938440317490922778671374650487756540035261823361358220969159516531003029947026121379832699551547943004528250404116178992299479111764121739926937741658202028350242611557953577101928695026460543592411800668078233417498334223525119403957869035786809979573555664634818410923535663805321625058733961273016517920915269630774160353934361487650865695894416687593102819722708421300606989032768124813643408829145069353500784269002833896928900367663065196212569113708251495264130730020572342600614347947841846620763374247401965234906393029662233773082064022870408809540394489260237559302757838186727111955590362643818036944102698956099702240268518929057056341157634566345353091783644912706551465214527451609570926960198193514825042308309332402085693823257373246556197838050798236783914896441321211903253837193051261214351205434672138024917208445724067560783891183614420617219609324188787153906531193456242314305059597581389680014593272680369903153148589817842184140862703541323405714063724233441623052011460053724335454408580478491527383560537008329841944194087857728942894298905564111848901279881742427130941732502246499897761849958444824319633387713606417005057588112062601890354612585934515456181756840973147338420149518937581589960120875257562760332950030118318809564291086792993649140874263226672138684915224129903291462932026823734909566257903206428045338516755725663359643282983690679715448949144144284457366131214716525772928322838722519122781850333184575375231181388910468730112025332934330332281767444790920665632501883887499178312452779568780325185708787710821321817542299137029990346340824319822001818143016950158675647723184551735160193539741180681625549863346929742793638368312286209015008476329602715420554092347219774875557737277125358437929973367550413539009626075460177047832009209000043703047720623969311236199692306945192122807512806261090339608085511993936257664560584547489298456610516437763230204762933488331366455334573480473571567444997734717821981573926294356614853325635257380075373424585696273226443292539121854835008471872615376119359921175544946875172209534021714967332300854303127734300844217039223565805237469978119523847444933383738577485114274622522039346757212327850661052691327977306346288737262224195846716672022151680829100052670223641512652274077600461979496685044241492903303752615324755653009315314557741560785488843720415714060087651280761331140002151760928982489862945062647986397278120873344792984785453151232933405140684725574692848626315035477092571914420142218588780257279128331177982212336807793116875865477713999462395439860017821714044511587793376458252175919910881923830051663310282837236134127214072246237953912933883641879315532993289487987486153861391523074689174100662618607772267913487136322147516568508441991780694861954601934089370819232141926382775337591945703264502363043475687173452958399553670973947311374513943328197791122226939725459124938379823126607096382225967019008381453286290461060658685632097801508542233484811059061738522986205281789604950073257042722202039361363824795831035432598550726214034098596277860172168955987503032882817680409468520938864033636523649442857653338109795334202587523066099473777917483409964056208373304316767108759298266668435467009599704858953748415115221450224994544152838657802928530176585629101388144172669383790207050034191012138679134635465228748140715338202901919235146721268382751000173948051792235759103106294117826715838186378195464884312297363020759072949613132264235510849102649984741887018127403987203067935831231548287878038686720763454984951991134450991244247310505227252766832066034853805673485126369319466529925162902626465894163413960915097218723640275500269701088386832494142125712048869645658296361609865368598837883902802070607029639962089291692420117564629212717841443866094448415307132753827418051247560470084561419607860495448592558130716152717681871096104170286462445106386992799031329802393832292307860024611121256253749299206962360554973977933709055091506159958074626476930706146547336572953880108465930773709264393270961733589798755133298517353358057619820375607173964951210260568242153539432206578780654333681668379183925431029629978625583138150842902346041464285063318207802667408575042965493539544948651852756470881435132319597349789917141516937325688338933162833896451848870322639893055689451839191243082932515654023675385004309455227522986219363499930799560689684466187459894748823413664085188532193673114375894635657021422230371741481201272628291057331857839227334795260680041312240444469069570034326579109561734228465513830287770817092800437032752644557620090294898701726471822893276178823467995953896680114028668705263367060063042612994608494995638275599060264777652197025375830641181461287543876098578289963422105950225341504398260961876098352165231654331697721441251770038039021598137974891320292927755438711703391163224807524657249729623124765093517943567483811431528641333029089123777146612469044864551164926799346341556211882281756423024051694895444281683141404904380578860590107370067182984993650407494702785573862720327108426027326956900641201555809469137101298425529054495764506457560037403149458790821054735591136399067278064814591917064338706971477366524778443386302556983881025898793095019713128407089187196967493940026571940572215929586883457866981031818359493810271931161525153017409040319451723832245963305267862642100074573633679726461435297149888460552919078229572134569264638347921759405780513036734887954494733446456067966769127826799049420036288069900260352216652526648809722467212129461678228224742717834105358584909381808438207696712262215564925244641011600663839118183087308563542267215017218891349111443407423167201858015440968394172184552924703066633174396992032099913723079392087063326814950270241836323739355756594835586434275852715303647534674601181623121808611137993248354514822898630625369332793747372640469312673756534019973009076142621228650115856894482080371428361204858316174750390771287604650336123613522431214204911409620458582922554357490090271711431005620277966427328203684088351421899736766128515417417015505596692954335533849886870232490206106445807169228633433918553944346597418310331545329102591303606462266687977945573490454674882327531737599593723227310371044521133115338289304247739724195727440116541848431556489404892135805570855762755849553488919138564379163834240893960220978801958750476141645787338434431980873515751667496820037915379610297349443210947607327004636334366125907117926038296577650489833996820052846423420685449469930387124964664248581160442000466693398574168555172983698292635849104471793384468325043384471758725269936686233757079858637995117647437877422102959326217388171799211256496076654905036475301128460597199864223972784339196777403895823191755732599419379008549282598066076789498548433335533052044297814686422621546390705667804793891317765192204993576166388219632235722413875804881872875547783430553371416242915918144072491018337360725861313058583937963691373160504638653787616199765683527896039165412211971231637064638435087505880465755319672008048106320831182153795613800983535595260936370006453170806442028883772669082680094247506157736530695369994647344426417990880723658569162389963651757807623731861366280300067759525456983035935020931034010665488238760590630966715258031902701805651077417965996417788950664060278847170680779275557035102223714730679500650960753805342639820261540712721378560322743288616802417338945979050503213797484661490309530174023009549575261795889698360970314291408480458384201770593330872789882921065398608549784177022680019943172312560727966935093784616738081453471081329376345219647441631933117869064998248237276162056150244439447232337910696083968856032674365944761324366862391058343526372587026552727235468109736136753799885434022478297321958647384707984985141728538675277923065840917432060501099102238929818938645721604168949234020855940480597988871990753899448362457591817958726478548243687178428051181657010359994896167564581441177435999415574156405419809407770607818178732780883923516652729811729470451824894886940253978497040401257850170852522948003264485539829339541025049341054446143561304537123696168220242708754680322577722467645386906917358463290996597892708572413606852947228418998881119769492577756734731492045418824993538607544853832734931602494458301840052011005971211224881899260140903390584301410505598071884441547633560933892955827033563839189207244115662413634679375541673890893091868608031263789230912916607550098980840430877173868768493062385333509150410600038306016394885368792106123894105743940346062401637185484252177167545163976002550502264396115259942943086934986907462978375997016129503084380366066005892265852930563788669584667848757260025329183930718547261012014353181230082628245390756526384816628430671241409153532301737357772231705454533185733039863611629092807965140007625802958683252113035625213499854006783290579810026266376780517206247540163537025216821873552872040199635961887360693473067284096081288649892281654521852408328279128184938636352722030085982754459989899958351115743687878881270485571738148574030780362942048594206443341579016938395968153358527750878157439719243227798831706054634005330969611599543732039412995517719740924937281938691042471916807457558054131728168336553796527595104025829376600693794847630502436866930874986129115155790299089147511471436165509778108916891593890432286116309808961601543654239707131733987625561383933492789060574714538169156926488201510262147218325034091656245429353117328396837417555069788772460439855626108533737402877099728804761149157785765104752908911381780654692220721713254159467978055595740544953255877928432324750482025729610721193054272034454311190184326515998329511924254995688662924512061554435485187784337602284573185525530203857806799642333473943283255079768143174935290365355235708336227295402976036224596787022467961087290065369158110329772411271968718463171201531087202282912167851368328682889984100630830596997329512401834379280807586687788984960437727540275895229293668539226751399282371615964473732982701750908375680274466691591111497799446671135691088924379199309424721308073081984262593144347965790856700825628858836114463307069019106360685995185387041710623856804324112299406997697652171894899349718804503864321759828643313402327317350344875527937834864131041994965955257706690456718435502156201896727939734268216256860859224881131666473414298910138757127570483051459436636099246610627201124409872399971042075654391506863102013575984601467302651199034298650639676000696687958282892433978259058748567826269263303468372332124066157760295156537226106822903836613368341504999895934280932018654247036073590765608162195997593438201724618076958178347221271503991239373308059816434946231367174959999463042117638181478301910213344735692656258805710164468798455661720375874281490998433930465239312200035644248650280200221038723815085543608061085953817427853246549792311015101812667413846629462674003407290924306775649178579342775165295098460009862821986519350148631413113382340818641810195988872295935856034372242367239601514627896565485335331740074198424260136066735529840754402573177714954021927548762566366320979513483892323984730934282729939095492262868525828037625710408140414070921533779824712193346482520718387853744500723852593605676595762204021945192479291241307585464859181278455595125339485377327439546532520168622505372850013045372400046474447907459782510294447904759726899493753746928089331155435505142051612363683441007349842994707086534872826168261194995444598888503596079143671119639139320911200954133512885508992493392853794766561641592545275885347906803485930421014317785771172451137418462432155337224056541214942322346734100328640923722757147317038093058466611410528665349292157043843719387582548918498944658974892112398043559253649190865890669173908088675009132330542665482077157364025208162483016589873036086598083796157673641177362734669761566653921348293456423991292807859979878815204292215190914169078549736187251693099991322700067499723351557657951436647470237487661496440492613486082997609783626049278231738894979224685209775995080498826972392495765987223064695118767799160549567269969085152582265295227385885439302173427475574391874411376633994128594831234384848812794576013671006676165974395896325545306708168429451211409122120091086669899891500102055692484852372255421310716613919828276574298188291751833720841752386967682805910231519925312801445377221647436825950860888636443467208040799574561042901019656088083930982871606160491216360458690862228973756455741357430715910893672423316644773328296824188314921716494972514011949369056709529615270432919617564101018514059608395422101125300432032447729045095686728686928379789944533473254078320054283548804513088741363193695581682874607904656694590040744288418738123256769967164692679986955886052080637298383211238624681202881704348155814062949883062634593344998884038652605737422307385786640002377415312885909455125753539336940869444293940752218284710010776658095127567020147754082982594365539007779061803003710403019109218529328478241165518909228702901240416004521493170935775360816342085655233201443845388958342206841713882399532270635638724261133021723608875319692482011790652227508481546536063468432083525195108332160684317334365846805913015740878701822959876582283002042528355669320450198198817145826117159840001172323248462236802337849839057195842083394188330250004100260037883422114836730547496096779242970449998379947904405434971089626589676691300284990960386063046240093337979092035755162551666400571121877172390300150396095405184581699938643044980401039916128659347449558276066834824890933733862926698964697053174156089229666242891438192737235672603030501103415970150390759411599156179251165622892441767557720263927108978526059947131533570045904830124535860224570771605821233218529587582203051937289020017734320619428734214752378860830070299796531556810301128799258939183387796470067520270368877240584066436919090287438763388209714580101749510134645840281278011316813989780650900740767464220963899804533262076514960825977452275842390413450268461861681457953371759462268303063666145365992028030084325285149817881771272573867535502851338367923056743243686962027275690495694721422424679884360411922631691556788276484222391196274036714598974144543180061688629337635623975254816109201806289442065086508865174388445174402936157089106653051819134408352417385390895294733126909002288147617359240547275574100872211860248070655273478546467081003325288049487281884647664513871948464700273983663967869110872249068944525449930136135982302100966496626582497907417933026044796164678961217630473547094105905476778743627698111464819594676539533132602160451880568520123818538359935250905586730481695893931266888871072451637580786918529804644375984939014986408867291215615146935054468003927753771628002844461708872834613320160278469351417103718981359285654440473889353364342252995356306714864357582266150708472242121395749058812364726080795665391821078069759191962729961376825052719016801350182593650390431489237422218299729435910504766510198435496771583639035605090274409454737620008662551895379897398695524944209452836893729162255864458818572322005097340211242024270133813809750638707368786224134616266076141865890367575672804946851392949246947497670448286278503799394283278791220332971397543843644722779419524830053313308326594126816548143183672418519071645371183945618853767186114634510098763556103968824034693227431638685638936692078262878666463162305865623208034467033224148965844290862011917977518360789811784708762629615319400347815464050634565985845395933678392047177816196115197815991533483239756111621222104528968308713835459988065857801354859374904263956020172957868115494079887899895278594495312912475824817137108859096914070619330361800303323891913216840242371178559414793817512261537355292820484620119087835578241076795898728264838018836306051625874581323807170212707031160159931956653211055908684463723011219393528829932843569560659719893014841894192469651419504713100362091384684087143678688323812487187380582217796916687267705286949172329692975741293715765031048614982649963942542515355227892655817659328122813519904998628338917695098649870938852865224641624149800913360480941616720693342425001725333590241224520696627428380607915709746101932343274422842790300921971678197965979059549127210553864472407600831000588081819072447870343657454279475046660211686153282079367042283157677410978706565288995809215120790091062488938646517486033663048808838585836547541959063529016960795986671979195154726753999884776218884785107366055679223745515800961273463703729547099641448954403570700509795971249707914989405750420165030739210083757394132816578085719802851130424796134514504277763666054870573901649799638800674927633569990174214247086042763368701538895425544860519661560114570743110126783606189763376540859558441673969989899171468666484090241900149311117346206295823077870579486764638556758721099513646830997771609454655720168122853937767374099428303951557494531692065820371452045827753578337982711615753554754759598809028882500151326903062183753558815228008049946219926313951475900767150444120102864042232346757214652225543337464540769554429637336518329440811481655311231788856853449362565109233822325088751970064021785626240504392039311551274241981278661180457520379031352263821500210772130502406624183002862477655911114130894749764170442763287774736669514152962797298473622901963622315436319141841799696896280359277506155139875578536726635378140081715318318793314798031663073541838249854774614347582122035033039491346267250843739731331346134971878652215484795211328065589745100203248729792239256892753749027042598668561490405375284504662614426425991229576994984595616886612934274152168604536950858277105538068424706396860778132899310628551128799543943367009919152088861445556457442279253309475103278639998286086647782469776693646959682093306304832523027286162884091854021075857505952335491745175635055894316749129117086207384696004878978263910905625739599487492495979011090191614659080207484962639358279265058364767670838301196885550505186157980972185298078202754679077735284594885548642095718480957735502641837966220105606201767241016475961823177144419881009610279477760819625624682085457499375939175577255504390164427090909940333682021018189188094314468725119448839760726106428947637705083816809284728704530854716107278666310122036688758290646249653294421504042608960795596028483768115833106563981887154102229185636375546808614676806062617591254751326265896334165706265117268170549301094065863026692204229894830237644323671421946364900320018910295105537319742039399303809428707866552914769288138564587814966477980823314826640216655484671340624018597141217542440978712771828778534134383738258099537774555668639030970006149284077302470091720199524620624539198585923713450742399985171822495428895132343503182334483788319295955334879010992117189922536529429365336258259539094655296358137449729369974651187533853748709421770808174570174225160409043884612157412445285020237983903699911389696734778804970420888639312843891579868614995357206376948214920930628125131228080499666262553224283839917352025667452522990840994632586468341113042084589880324142878241486082621057749475330037706021516825542168588825520528913719387724986908202539336294047304750500997044070946935891969900533478304463581196491048316381606807432397475188737745048539320801189209217620032541285900192128507800878010809612186997215672787878360378342850502233591047386100379003368195821534795312420332192379118697973810932850103678278806081274528288310391831570441480372715269111958913827350206266167881367389300589434987192627542175867837758616929115641969549780500502717441482142253177166456489762559437582676430949126055292857753556527311492956087911082159619401757024920446262077946805377695544163790238444286270760013358829372290589561353109924487923773970012638010390621036297100540090233266205286855129238893654007663966398392572450824496898926245992439438450876557890902818985683433451099619638409116437670596054841952535056878723052067916205797398008695875004656119615450401629767770096547018528433497764467949602803722422923120925815523806451507317582639784897165956107629449587379456851984590609369134973227024282382935848347620097279573203973908244049026524593739625729544911772960859885910979831916191923715574314777305613275865030186712879223339994092210626790946258508116928279669238172379855127629935238608831771468972857155910479691135290085367737548995512471868903957446600048479540144780288223208242567018451147545838594639977604121232182945120720779081768233151618455421959874974455890151199270623605189634073539348756409531560340706935958257608166769558749209824048066652756245519232200325145294175539646827190235219576379637897594175052158675420192853655966620145045633855278357125671205128227519609295390924578418855401271282860622031840304162523045733499198620336839418549191744312814170274683480533123636546408009522798679980816786143876702299176420421935770303028892406338233711883166689234725665314715426197369248818567744423683067628580803557766708524939432726759182713058028204744986831092388451839656929128269141358022850879202638155759445885778391763041538247774502736300479676856895905742907753282403183887419532847250575823699898418557360973793479262107564800127606600568485628952962703650334072849924570768216606004308519214499399461592740186790670249250918808425497538250005736411527656278820683168374561361164661059452960987647876178106573256994413006960404412757484805908154315252191475930781041409918043677066395667263443535624561935640751356546727167909411879488480868092309383287382250042851308615564673823134489119765303305903494885070904364085511708968159681885355596836776708287592695900122268130634079052180831417534288387501316529218766333357431437101016347796658883618869883499832898116400702596550204761199068845930641188013743352809379510983052205865755190255331324739355184215726088231016831817640972417966428217055392357331823599721055914675809909601571254536259146573583451080849769670807172669437183081249664139285293242058148352262744693758585695716870345022377577778359815858095456674554627297947307975693205085626405035283025567228667754448284086209981389793037092532642596403853499617054638608372303148948100137199901319701262801084969868327908059952507493775423599997878374465778371237535757852677710638143561367890794737247924261815992801915542363584092241092695194986758370140080691259459445559254670473203928004701116001559541702028795035929201770396860113456304449233397743545571654572714951735345290462215877669321039725654053386823913058096600212123248311387049072616349881777525063398803735283044137885040535291419573448626221480332949544888908545079248054268374194066918855516757216622110920899731852667678293526613290427617120717343300234525891953735574750926874315293634284496407717856739958438148942104628518103849643427735519244385401105600364091860906598300233736845914995840144499012936937258939528898348115564558106103079454580475664650489357678527521118340799459874420567550698461628297481692743403195744811212692198913243550319837054664442496096363374848655871436934240008426830694664726867821605430760555551571130105499636942141201452860567154928145035636088579354204498831255719599558707858336533055121083928499841126847905712972202465501387082052447492723419195036030393946034767708515347254338076913543021032331182709941052543731637179189960813384440367350920911106317337658740160001869730425298420244888527033172514692497475393198235035252261761609438480970535124570875131868926737005074427741207097904073463122620529000639189290990331964353335337782773033800956435520237281189341422221316384124662187626562926213165374744095230545401691905912102983325487384431499690081791766624445625710550014060366800133249580906410283487716419356471430409550576380385738522098716167959104852220807083954438166529535008774606811360273082488566261392866772837170303237832334671640641865105991624817670706345653146764074492658990400249294338203476654827303415226579042351013109297567830484813632976397632274673272990989392744963857214412908487064480704661630671832626973018955052261750367044376560638608975474809199526394403536046543998237735619024650269312958914022210598873408816322256258686174453244115894930355509977482474151507373411947573337355652762741851916424514620104987826294536895088446232117635800351184183592675986429712813985384144690969171907995167404678189358750274435035511807996777624987062847592913272616884488849391411287453205724835916236067416163446388013123511612633214157350735873789089864603319101047904951088053276243634380195320531364134355459364704198439973273192818302576008576753025832169671464683435884003914203707242670826017616253390298986715267562219813060352959484464640403968856006481766109033056079065038768968446731694854343891836893537933416898764610405060241093598555326643129997593902636796969251376936926159102285117216541488921572622359773667701463984585521047074763889722549022179557834738536300819334378988748156802769759994951212544157027137649027751507877994910956148957426227398794033221282575324578456195527149717737489231107175800448526108753397144093342364167000739474760533876638025429586355293691303476986899061333624590847353805299916952374065057657039349015473906556528925808194469628401221392455111987603807405660994105231164360192568472205328510725875883708878783540746177976015317304950058293812475052503021700236109573670907840223511622259723813014440798479181330321054432443110271979100591373809348377586361399771943672006559245699381470276191846661211804296171866528310695776609243771615983151245936172801039016365520466193709252512536313965592011778214276801942804765865348581587470311992677097913350491107205165243246231253831574487512954156035527502636796145461093444168535781027313899699954686734351810344325525951693002330050592572799781590482022358905260479203482507504217173455466425312528525947844068421333789797245599838145290249134127724342450971795118644615062815283928650237212926436840813268942316931518881895385268180047631030778038992441215187198582722254498999677875145879160239707666604413330594001772519682882761813890254014214115403222188075221493138730394389483863488048858725731296054402267540119444344271239556902379071500713861064198583888795688054863351728084446447248132772385956105213013091015106264293276316247222859852571026371594629994013226550518804465739898003775442184629979193304006051761618798602655576076891495679624033020920353382300641985751212805490876812649998662968202160083935774256923900145096765518968300114985803950066246338616802255066870759127483197530001455406015411980784113494829465680601707418219448269420291459193117972944253523513933101121868831678002326637691951938989304956559636443049982636233222213173795863375272901598026762438208490894364283124967962162500163529966893044625845804167249071090414279544743227764055860644979937748159790612922202930619833526180042611796654967580548290181068947372216120265716263043635302282129337245083943534370967854324380583128895052786635657171288036985284548714950798562466555779317050790289986859714364593077973507014015227544766934198239263898929453534319021801693875850287786879702046168231973519928076697586512760646823839169601486711150096038459388200510615266462562727086373994715025771810723089620436264155255715212790458354295905910120518508605199833582952027644524251235773515361451329122133578341196718707585660635000297664587218996568468098354225556797699786152958316206574320737210996844061946085275213997207746028379618294067782659809969835866089743865103656242556250842354354563015121971111673283365507058324791727356514276941098498635706661880252843453611977423490001604109135980658253251047772348737585884666978580299992241973665041155119628160047321576507005166289845399637919414471961275368496384841840783539219495160760752984767084138274604403017707579996667675686125361051400391716817256780501389783718658379689761501720984806022721512087636711163552935619613040209273964185286936047265139668755630400875358568683131412868609228255512422695956799303502490113667709364034990374845874198910890189457051985781247844035757867139319708554989380999706541057916902095988974987384472726137243518065616499316389735111970331039397804092809479973433772650212249714340982378236519658928862792232779903941820506856983767116623772151441202276633794917374373422831797279401193745390490579714461718360256732214055219462186285914543896562340248945379811955964968707073021860780513193094678528484442021284324993071541356442307938627252658520849226948439939485305352727068233586394860817057740751697385212021062895941771607925413069913460814382463286693523126590734303668095385956084501673932290965428288540978637787221825907274341956466116595934087134481202995796040005764146848563841920840258326855212379549624891158626009400987654135858706192511365371948148608571077083760209723746595531144030733949423484486152523722666253172090816226940002112275918342552982816899719687610143851919012898807424280528355553325232571548587561447752011946801115509440542965731019362159591875821948220747561530783348030085499433087398213402707000311285887927967396273660920712697115138195377155464106337455584919631691755255599189224089797833124273545384179602784595898647060095284180866467711094641598431500095974947022075958749369609348923513155308795226753192288751932690569926959011242800843780897580223727211128142771580921578619031438232822215843119736386797272276849581363281470182765236169987038316548057146175201779780107490052009862225386713437898798488104450302717738606821067182348566610328159840918571490847707412577372152962362895142819394934492310024755294687688142282688263381992107050031482296907812706850236096795245615631762537844390868388545471766250548688614538858940190650918410158852088336961298773167275269197562386427609513694583842618521833895705186413263202522931391348380821287964338813629845539042373128573855900623287197915909121817103349208828736572596006751034516917303484066477312472853649869703225505802851210314581397165500540219991258467124752296233047947620417483573396512933884625986054669020687274310798920093600862996258526495569263422443490758898712075405572391778889837474006283110359893639753683143163791553508445994998151790357191664595797264053563579622852232320999562529072956596862566647611821743688936552658420973588048382356327038462917410427463403276404424721791963389233300452352920028757301356303821117289713316943637220617508581520290849724636905566762892184262651781976519538524643036425620321295916089585335981540706502452521657088226438896955320033071238601771994269799874271196603530485283581844146085491345064443171308666656732474479432280547339137606275818904283656586598954664885617098590233571893647110221915544801416081086328652657202503734779658698028969756875969566551715729978174149125519450833779497446698060268643181523422924316776326510155053746777092041564764624751249672301142884839539706060560724653142273218895838355013985022479806163823494536612899404093559178092658682360641984947863949273925514675962185564843402871639984241656407922432049921519352709427492550972098376405547995076369623700896158531420828549780644065756946107401242830116770917540880488062665750487449700100644817281703371857168769905205043126912675894235464242632192681612607135255937799846876848766637463737084830913023031875975519252439917826264027996616367094369112530086284350297886671483877355700954085095109254267237087162850872049910014666606934352543968132422775052041208431177836208642591374140370189390584913088530767180337775977981545040600450842816926539549424241734396825797942963322331213218107801293219793602750388852631045872578879049933017249371699290336354529074965146405609127548752881574874850466564788157133643242701577120650882647257091154529355415106455103509471072017880017924641359721384299487104597755279842745069774265641488340683008092305464626038948326722396040624646594574202522108428812826688967527898024346826557896265626637974536891092934689209248410970235713162753302389020769867314325842760948183881245857587340140970686718956181311222947002197844824158154450981988915294242890693466056260795656643943393427998358823571167575116329255621499470951835223312458109131586557735917584703694148488150386326409866052441608994421423724467318576854052616459608035904616045947747232056287891088699234201957552645554915186288103709855628981849208453628176074175578224666387907260467755483451744348189049688056376503250353592627137451498862405482956247369333449623309027391137081058407123726554039444066616546669812794016117438031442545836113138700180051064222504742126749539970759097152710314165536334773200549635491466719499256643771113519647122484421338334482991474019169297097827330482096570236574416621640413859757199401107550548138356750975367702086214802247690575931284579612052010606527221595997455895639292741610135447771486602722228078789190310493304860642348889412653650919804680472667929079707702290502025767138443684581563482900222665872245389242075867812648074259843103723144835073934916328568708798935308983035538438395007970780150899316677212153557850476824480668120600816092524900550656068820053943975294042977799777390954812182338828159978628439344893791861555638458479425929894905438450373697647333225685242402160195904472401639944492589154522209473819728573560814162944201208296923421367519056921053373592377816006656687636414636657904357378244366516685104935195776579079193354900542453748362582641051684378644502959183589839644056859368882636863710502768783853127777056659956030015723582371471547219056714260143368796646843649143949995727221505804289921810098950799344944214199021446892553928676917510398246758246373438052397350830280687187344606418762993203121704070483046129164263198208628507869517290189970014342896826244178078191626441719504450757666856324245674581755185913604359995857459882503553846674132820452537010805090235114840481953058880641604082355235129412814048454488103708569426260002716392301008603721424248429126495719569873219052427563394901622464546259347456703005672837508467249825279836734956177089836516547827889426186105183276920850360362178003391524933714844455014157911625050689091071382758022446505098609868832767797118325793918716216767883562241988675386839315756589776865201639452827388674406517875660068949821735574807444325577590692736378481805133570962701897152058909708119862005227679349913304058284567203585664724105889455308752236461838439640259601125485287660886628483076360128700666722802670003614942302612541655045829616993163843705829675070532292691091611967493612737291631205863688479052509527351543806222193273002895992407939074438573669093529492586894401073422178024370771528161242531908822717327154338237401474543621843332568029599407713014983323704510969965453202745335070217703707061138191051635880307474770819808265319510552403434618908040877285588710261912991092295950882251819205851887441986348625188245665450780329536348102634843303083724181136556278301939101618351740322384509791468752162387714423922323245576364107974700125539832471226019053048866664933322848632905380868351709643540440256866791168844434216940251772691672005423658795245864872919319419639837059108346595565457374554274722525638720491964846804561216346755578001839114580507202910409177461978829650486123555287269755200042382038183207642553640963208933924544967598152309215189473050197853510015299573530542811283648423659474359596095956980162027530239594199533446282082649792360794218868041106024158741508575194580615688808343018541253781954596974142367787418706672158427522319352770701887762803032337402862660420730505237852035421042577244255914042700874907643524826938681071637669307303727237417175424585224773575827029599664985410231151013874323704799159178790299448550168255865451538812548574254146042912012322855614889532717717240122627994410826869139972987438255681581112623873262610426424919146730313932407899673786143290414208441146741535167426897337032190690287477060200884221903212516552891171738567477731136615373439175196270795492161709378005434045787378968957940658402609222670666397470647461914851144652443807415205521286862020067172326368471796723154915335949245342892887485931766426993620967340749774505307056843141013326328777592130576231470087437384507626030587577497873242071406651361799495694560108192843193736732841798935189595423519702289347297697710497535864995673185046950987396628013953152473360674595746536734225096595010987669623734140606839350348198382718211868440601761576560254701139537357267834526945596079177094497172723469473343678038722377574791686895552041362153801428254867377695283703841427934004400130568978355622798607136070596604468533433322470819960517276152201080667106523795019070974937418216335299386518917007788988347636092361880526906006408280797134349789427595928872026107851555411239737304609759231788346880725383510590800218660449028979118967259367552139647290685797350736757182169740366706989613457874506109712035014795653751641661531216473254416789277507245943628192382562336298103756532891328239232227250679417094691318566996226763008474933294923772482025168055066631619903457800502962160950971278313497549748497080750146928617797205392087735573542634465404691750787836297830371222126344995376045870682546656732927753972286036781924732607587537503639605557551524704479046892790074174408099162153535237955159316825039170841157338947214833770587893695415348273160717030232024929094546655312055250126322531741427372940893582323130414035967091049257183835201953577511103030189373873667295688347590028046690150280415692206279410789768280962696610121374881195563119677798046812493064783740531627476062834586847164594382436775342760826955765323442760533997129870805208989856144206593472215753513573135315096432568632699760118167688723309047847387826108830027187650260826292523319447690994041670026400655559713699181466979113567780657451057296471196382643806989602338811353072149858536870862858717892687962978016089416393630120941635523027773429963015263435775125041351983411873620583345473118538074572684337206905220856255010506100937942856140474184559211793392727085972511528800569402805361411449240209246208794874183622485445370167347935902015006990894711195009547716996064515693409809576087230611679859305447424945855927637542655079098507826227452414280564196195794701618141018859396702928840881750713269491264514792458713883472209570125453762871154613584471013113232014954909446401476000302376328571713953654714900135558696330692581126404792005317280921179128700967881389373295949068769162309178222864353334059339679160242893274844466315594574856113204517830646491662241813246295767509185902988333230655145023629404347405492556117642216093884711734189574071998503527366986933866985170257393806602302791062808535254935316619458529388540134761981829790192702699755397627097213320775214288831363827940377954810436396846216952494822984432296896920853355530853174095397100274487325283527573624794580127804455036106064558578035736262525563606477349056863832460058826457299672867064706881971880489959182095387698672412610581231337188328153873053240635171604883731863483194487855245340213105960543269787362789902736235815268667728648413763217540668998973488261186018002936002236261588495903893818383478150216473108913836953738086831643699087980859301283735287622060053622758728767946579168057635814324092530550238865482949257251276097710430841424132714922301455502491538011651570107259919660889103344587780201842019868725579834858927941157916548984180796559816529244002860008928330899598461251541347364124755370565807249607337289686395655103449758583001718801392934081593465774074916873140199038284277122623332446058875673983859350076951311855631684573838655512292940803068422036256724591811386063504801552261670635649642867323459656693799243587293291166884983936420697970390191593194559703612592627063708371713607972229244838973659949263221859430952934455170540094592748703284351993881402670859152894963595076363807323470534623093244150957569185048089195717391916531000241571429356686909706755384850261080407434064574263428325221102071034503745383407217192728609307970908786402740375603419620326095180233319446604704393480054063586910294183143819807662636922920151962674547889054873008533422088159740328925356782478045723448555663884299365178593815428714734705407762504079807108683257127209659524702809312984905979030619675080599444217988506983161096380431857573493208970279214433939134282900983890292760099810349716753400553502665754851358206981718943173652187372727038665243420592696839958587716580753629304917458210275330126702362227330521370927475754927540322486653632392842887880718119434477544394315746337377421905144626384014838452230601326365027884514717047905831805834894085694942499441515548386334237720406996019335803137534497602844499515410901138156066413232943105354035663349825009005341362149597475298028239846197283670062105846139778158274676579826017847296576463958941877424963316958842283911915905656402281934968017581638401394292081420882045469029946376520599881978317544801271199655622131732442716080219316644607184506702451604612011797638272392113483394387989629058401796863609432553006506288897323925136163270239075239598265348939946806580594876864627514109406499311534198732172991431259100977718868694557124444935828613812597646375511342798457376202343562568983122530420590214907099967416032154670753881650296586399155315134290551333165324830885034701954905567448410103218765899567583945582382868831081418628354731947552527471157540254348046617748038786859837871569491342785308294728873541204319023209059529543286106613269760762669266113521146625276984127734085241913826858280955075837578751829441953816699647593380581097441970408876883252573743856182591108975019643147937257207080940589605539709828580044556307859986110829784519803998823094162509868026351628228075608165070483489644168361836594632976919733266450443327026529644073326083594871297205636803629992269220555502193613130943929256168982589380953115434813289518491654287254628635197810302373003490379917930768861220453265131810138168987919567846678661443310580143812599127914158876671702906759990712229281727452785443191763775186488544690552141829475460755373456060855634642039617667095752874549490120466035196463687357729297428234750549678654459273606276089892469782418907136691030092667819130305591951169569317831975407962403384211046644652404581868639326096463530334711292131543695714422067237270190321612831636606835353591402798852609531474419767057640109075306047213865706766549972656139956259081850853030455592840761412465221809965435307163185074886478933137159804019105801024255417135661896120601106976120338712176953627748147024046287959447965689291666561516291177369461849461776831663594528511716414008796109655867194211638165457893559437474165960191040265069965376089108849054090880766242236244525313285217856872117107507287258024370274958356646245635139772059647787347672137096977874372222228544415051625814759001600103498734216428737941520917280874385287068745299675850634623615656838065684685866591288392993987491928045097599357621915303453396402416281637564573379859690128292741879627625038064030579982239393509589219952785102916463804783293620919278040771504187300689178573817825379312653226956429848057505704338593699343393456044962325937243304357667147711664262056671619377737577018204936159782065517759604455742714015958506242086143202210279470032864409749853119493397220525601724380678398080630198033038714010823737020217802399919659484742081004162463139998938726781296983713965334369780639466764286002415282487378563941292793538360770760830075008546883668496834473813800019480999463927939725480926175571232307228799147294996278293181211799953119139336829142170800391710839203996253246571242671148076218732388866302732632605102274855876858248299627378563037502052629488316960894901291631372634885804981924875455352488732623943936750450165476893402068214585655661710507751194373805894134256960413139475819197066823026324234090244505409588341087688988058360019058008561994910332388450133139604194546882835906148062791702742550569836303868190408076986074650884423677617054622608454397222194035542026520331044552690070468827745821456966366744699942884173471148070234795179430778361527574001167542381049782265169967932701790991325359692564131021203176759602636795510869259891936051529316116399937906052216218262573447363342026307505726425225525500696250372133805324484465377149717057771217385550214036410911783897214179763547317648609973237020876571662328627364066666525224448442370474312602701940529325392038812456116783922607147800119571847504556116152503844822082691866745295001945479554742670311953388463367504753411924305172890558306396064273009317899033971343931584059161008586393822138202271708192475778210015039163848666017090813909135953340619014626904240956805262401070564777661840736519965983120159148619124791045328208490037696235790452049281474814484658172687429160111256780098117726912220907023785148661124371445919846685763094737512094243352004465053297391251670830182554297130226067466098005260391962755798389509069243190047375640183607454934859101794475577162863150554887610286729181867586476644478659627827294039993209905335496913847574304220358026682005018352485651517034209943110726037475082164349588541432104573557419801182940065163845907783130947300992993954182718180599773199552253765623522616879880482847203149589062569689442427840761719747852121117086752944603670533555703336195269940643523308190957437080465607841235006193415649510049733173836204004227344378915789653495861159191813589724449560707032232278280157914855808866326700924042342031392716468963013705622185503990346229467917697832970152412757358458013089759525863985502154636770509007033290797558326525697330992519942335234267432452628783434878039320990147869741317281125496445904277797369126687707533793810529597921956009451964724521456644781129408884259739950228931567320489003595653148818181335248844869869480061253647427755000504204046210344255558808662144252379324645861308670915261439688781633677349695124090077391672641409412421645618536462085838052194808988737746342851400043979235067024246706670697307923553229765566845704762902563225978319618333972491546952552514351434797307250589853935034414301037276933082870107555261221323794891532424850154784570097745683673957064624532316783427160599513253350384476461804529889100892576142364568920937121623357779190101698527465074331339403860558383560512529911464752510497400839238188040952466569782190675007745127340413746948598903243038421773757608092588363984942852491661239742134030663996839945731531459218956185429736941639291274586602149193256062908354788945387058909910287768426344909242758195382277154455075508282078488360093885750407133806431446435106635772542001072151282148738012783255219477266669643519639951388097664532433272355768426415313809782298046321315377462523540429060358017056192744688484775984917808674554983296585195346162001081254224267667244659198500373724670009453141832851380224433867264250159567592114147496245184912047206467560940593359887917979059001367488538645068696206561499083496822578568113455648395727288903768564734858702787470924437841701540033745698274823246922177670738059985075586166871378718683096809676558370216611140772207852210640268269888730728960516843783520367402250033012942208799728073355203320849825187947636617429055283759128564164974137281936511433254132159665447975088966378440583413844824557338593122367508775691745807770666376143138370336043345867465015719999493570926314983135394760109974600000537658144945733267458610633049321502973839393544273709938641506048173133810760582530943941987857532365723323047959249575058023465548576017407830040764894676825864095103880437439926955341506926095520996684963621960975419902566892730018303988411552635487584101918625856519589499175436701377526296212355626089075981447245106345316843742039269634125122549425532446603922385414921802547488287657536406695665685449904948149152805038253528556467200442522894314635745970560541321113477618345914350068040975165789396711785485165229206778357107525513953145282312224607743264857802147106967125824905495325200298011874329803856098208474987810516242573853621749468345607944013868042725973721779959761348492683692590494544728545348555476728550926269663335154395319199262090222901179165035405320535415573239628658778850100121050944836436935545656529870251042733731127036864327018539304622986390184984977908527046638100741060641993467683487921490182379262315357767600452539830948834995312973156738110357671380950602689881032606604431764355029953307435121783536374226307308941189098334119638605515220249684439394253053142728238451977244601660403995835472791372579948769056309963892047062937605056521820542134579977355489353836803365282076081251489436246900174250148369489103249786394191146005402306216185569908610246731548646098802027810734737377704918834398152960696061717154770915580453914721379448863070275106259100795373999513948617449030229789218152339558821015764964020945919409001606116587411111980734335103381902040120299293240314432987716472194187589256763459232199092290155723933728886071369406177616450934567152280499827475092783026359931981639916855626044956799351948320384470396500989985380112658613333794775521303288916197879337327684474132831621538213505022329824795198558425306440627327567040485421579537173343830136579227169765815254227253190269172158356347906550143393222118454577433731865452718559410210622948825204347308783812222983168723577837337344515599482329233926957892944799824200949392664270739432327471320097160347570744107285030796303907572702838050209591617550700050166277924293181245052386723996858519317795903884046755651332557582149431535179594987901759399540186995861620669715389333257560018092077957850127158525013243702679838153216831510588027374558939822516507965568067405529335804164586928523165289250624410345072547517466969576647599120655684798317788386244416469541919134116638313595094269840789705549465807294598318386546217752106311455104336335366177573050374063429208912775022362094183093820379420494301832564881514621747314953122724966519403326669465481748253417252291247497051146161600542818805403541989472345725590790141985182981481459902714051432660710262296349194812593421453378987245830976048618886695851303907291733920772256896098365209127931148217974750644655976134038757592240223960347357084918337811214989258295323354443785318333610174372171270755616191438053272660244948668475034380752518392245923957178302347141902235035038079411272774872895040023080474072245560012476207315992125045788619133864990339126851472433091060855943660562484867647533010336365985774896315464134652817637412615811007817367012495447965411601224900939460349933099940239274943813504008029448991687939366761086755035469238657089414703946164778455893070118950360169684300781588665329135620556891697251578127543955416215195210530013133622187193814571974435467846367988318741333305512922100157473047822274735436233806082009833664536855868925633157469202431516831234067297731417050798536830021146553627357812063386973246879064859587581672286764887437654650449048380565180229732111795405654379446150420215634066456080621749083449296578888295379303504726086216823201549849336065885036959606666076136341254667714265766966938253333538296866778018554763758741375614974085168362938644445437282528212759657334188069780403863756243213593533382769143640318722051944488269989986780437905031726519533324288476168006516298029907502324788344342406567828812886076963740649602563071565676750520370530839136166283921641845098284467430512284442398334641301530273921750420119266145727508281390376733635763925446052971601765375773898946913977067171842123029668128720497136453255289930864012330523226054081611387889253194878617232763152748020476997010841422239979291101028956919632942803327708353525389035143185882863193742926542221292762852600422545397998100595536678399989239291809150387773614009281530819407860664748423822595763528517849241474448436843425206682156596691976972880573667036215635512499443612266893305803948045462775097887356727161237582571383913941087243195519516053376515555892535518269797147560668931735310531915212298359173023026758392741649314224393897443100874491196222448073715852494755275828413716873388568451397193571743513766510489523902901706309271226468406692783483998862859594239679364564173558718401990187572546346067620706262789623220348053718363517946910877638519911078379366902264789614265281989949894409583646926514431656582124717920789203351405936678284940177989652979815054754358031775856225586906101230234010936129553535763584329974630792884081670233667889701281459588474281994287498661437711859701046078611831222856749469131900448256430282620072487875253943979012522035179906701088644441733329427038504777629594843814990998912625348880022470112685386605943766222703650826722123222351572550376503854095253101757586873383531199693602416600396509280727438071375470484844568868489196872123109819909873074795320541401039597361969675230524421640561900526742759939791372686862785354305517912575047157660184923718223934849391969295394499883801965726625036517574940331196959794117212576237138316511479626055791784402781881225538340896398270497890725743044303341179108109059950541712207737379747750303681258203099584411948679998579401117139332423952627036199270637724170339781113332382715682773420147905472616543401932267144218019610533705026333742731904551879487134852498626682222111113189144557622104228983473903499812597781108090131864256708891036742980304913636514213249820339892382623311457754007631638251268666848503158411111411558864267907213460409221705074598247207024552431403520119565313924583310091425363495878979074393713659709552725556666007024202839100745946246631307454467511305993777512041192805564972915123491505532781022986430608405376440989174443107699871727600381516344286065218306921009179927941709319362942477458068173353359701759893286031485320156876979156521241896700403095917277570816030186945971407998244363332875431922140735996952626830385659584520895655497781013274539434086438652695414066042052501513083780866457299749256903761709300281616225031870030327371448605125164072390070088238239068114739958043555903512412218232982743667778903853858623918147815883532581378931913051647239015905150073292582746204289143926675349521549429240927856129414258693729514689314270544422700093241610933444781762618884916441692560813590775794473862060159240401206337499895425291163409524485314231824745868679213510269662875170521064607847049746661545188141510351673498157830888050629025247278491328835858571968770316330097553904904884566448974688882484225042274107690691547824158619851842195790945913926945539349707417082601299136137293319908996124476112702770438892717017234886176319636850246720826698760848197526515117846839743308317260487854030332942786443609114897628797413020336753926893185945801618329179440100958324980587506458366412769529285982657703330062345826549555323166532305637373512195284921489639294238105955982270927599730329947375056874498728129347026066244776158346661704916269757179758724292911418797507487821715334199745268055732256003141704634220318975782077302373862469785041650979758445271645852204355139759287529508954652280662696943449901488020041811864203977422040427026695544603299092549594352025279648873458005434584684945297535391583792911305703761773663375795239771087393379547332118548790619268542240083953610368778991522104521065020038005180834770931615105441297268508996642282464489776423231947675602438097694631001688776057256798936928008650248744676082454595750132838100012297473056539991376611276067858345129580303840502530416631173982221137922074743939663003407049607643288219873398773338028597936098215354655910072431709715706097105968688690664790679515081011519705136357516361120759637386375738584999837864530579030443943012950410974378372747321582107022267675703966141860877443969096247776142982681257255182073821062914291792898257797002330749298885823539931935639425268061948642067083324510468170670405542134187651641921977618868029589218724367391297929670217002604707954075998806965382947068262947500799209178054501087213183671030214034123993988674101404729131764442090801109198035244321133365358285271828432623672503700241162594822559744880831760673701548562891186654465504563052137790450573281851201979665409430270049744632546121224141128329366437940321984479276656109271707635594012205535902446730707378406810891604840226316131653788226130623476493228155229195223409251839601714955706253393019190674597189900776543585394537305708587673393775225561887590862665572607148136026843048094633781089487053325334693152865228184850150399380033663878973389341128843457735233219997625754387619478290608410492317086979272668565017717845357601444068717168690095280680343189335630427097277870650886333372970310015932022324797004101814946764613369688447909453611490174462989749323003758025319176955052416250065528426114373076226542082682213459467537033662184218165664434775720963001368851514596794720360121393994632611454144468275264866158675668160232392170474512570134865906164308600588556879208478336062463041958464174708303366065330053420620428368631888832426681603517521400746402690075876108947946351508449596170005018277089668242632747552939134464826875600962762224250729627218837874695585396808698731268923748126981350128702594852987093853722712995055630159371662858218865916052074038057260330451319721679291477186756305293557276882390292266219730580487311401175308133892170118618011733725143663530875657342089417048072193359887479736426861987941028542129529410436548061666466560953506812679860837723426852206158774774504544085972412357281362939502487721322918144746035282409050040101773662698641702181670351818974670512042796054366627945217494148564864034233759590549060136096930916841062916367946892321891209127401951706180387212284307087960773113725441306054172989950548378827727046663864191137798869740632776799960810327556562870906770161485811851671525572067310925943266024855593887184124304225616774615108389728834242258914850508472905176061899777583007065652520847408208842173373910767398114880773332201658891141005158542238840636728656725089712885038452940316291883714453787866130540009170501111547185436355831033207211981334858631153423601920293718304352616908440195500481450658937687152384712418582070564413530487420515614512086668096886553647307014517115558399645835678003490949039327445144117799163796310338254450612672966298207689283473834827563761713839607939250893828751938890837424828395334225664013005888776657917835977404067075017710871939114578468254250012110401156781381295662572551091764603659677805799613086282001150125167924849476048498842037333939543468668590235457523095407381530411675919196403395008232212122031948582192443475529337530173935181814669205300676835498326089762673603011784585548752703073220035324122391029670664816719559254532213478249740250027027480599816837621411818338760834879258098138151661604146420807520205374549580130513552975387831795560660953452750289995284305259958631497799031259959268523867599757644136022576047065119871932352626491081301935915996762477542005468332913608093323184530910326642695702736368861586841986355898696621612636942346269870652951646036590889776309436953289214971802597126310791986342343368337985427815924375361059523136767058842514726866925962255623338825444915338951480780353160096236272362629321093838121344292596168977607129610965328581263856352840691870726909508719908487588059768061543438498330786223732995053859544652872580091738482163952476186691942844092020325285863597342736521084177924065337699487091904006536284002657991027808588169428112419867803212676611908212068769439025689831855029507358136283325881329349787561199657064770323354601359330157371869985275952788401552313044666467007044570167374730294477842583797133957981023419274301141663356310472002062303466720043473633620918607406379387410837798372659102262266281668368174614508881058679402091696237070267227078556702466966215235923248906556541142321653001230668315813709501175164974741770771047867114423127030825964970280652309726522595350260937603204641810401282570297152909966301797287496716078187386434604365603126009130801990559134496982430598104481214223239198832330517487617761060380242248693360782698348799053187120193656571881137988285470003661803376461641808005621106566571354457380355721627020669870665961163026692813351285972342273474043550450301843661570597586025918972971762937820758515214366300584413754353015287363863937559202494019912296147831205339020402152495716237517713920740481216320695616878374406751427661181935704092622544281257244674793566990224000161627935699977379362229328899510966718814725472447442332450832816113588506261778134752263774166893067961890698173854262071168345202086617225540215131520301426153635292417624887240193843284703145335685532116346032411910969004980661636537048300440101181291865610897469806955769191358515559383379158906798187857369687334916653170293483274482623496789367134407267722684084039078504473370916901619483417492844768576605582389499762665707260959172810261123708822042404896741798176105971216524341898769732540518357639068967524643049459814039960198336818628217058607337201469935697285000231851541357699941300289798454638720609259916567500425745577213855821606623818818432608559086488423057729024583754833271946592218906082255771930310244284508802380411824587454595405991187938986652434677760671624111861001010409073491303067136969073215943484812974545321465061611701587079237826776752243663566391919604273126428902144018734759285470742567034499691767523359847813886556570589998331860123461503647593817115860385697047892499359044412797604188982091303483302149530678261969030240608250991840949624111714750193668254719668444733985153038785005110697902006497353545593857570788333676889246110793462714441980272903059667094654269466800036557248250538537265700346455298437548560576643654846895919870325550908590937420980486241309926743237286356117618097163687365885258754292899868407066740913105233311691390175906117790840555041040973012675087716768600432640471731730874894457953682806516682884188097638768775167722540150700393369379883713582313675501585287524033755398687094783975615794630852599146212072385609522922010241942264365500964372816212365929564921203419310855804805792520705609707331100361087257336551244363974172687751532206542256393391424987919220299243040151353261830425163982175998799403271770630652960196594660331660919322521397851742027560453282255800911070557016085197780657101431630121188091255806498603094804914667610772074550263450695615815328307044196446264440197895304167380833292384654515372513331684033152563896589471100879881182953236468004613394537670149121770428219428285050662218846305088040978357011532665491625524952638509627579674947577160349234735962801761556267439062330347004453811940952869755093858067970266114568484484630899149431515248817802441697409989060390843944185025304735724693730561618537934068829460142540221142337313972408574494586237761932255185568911036463768407051600360614064357081184779777040599564120010460141300089078808937759529574504765503905318359914685455407570254194453588172823021718408734015606594770669821729663865913212771651925166629124216002608240455641818282420715559304141284792123814859514483996567150576460271361040734548881707227180083296814012039662237524091762593050119645743753899286461890218741075016941551730748796555794341221340186194571111414514347679110508738584379543228146239251032152517806102200298506117151152292468440623367092708922645324107817862349300203648615299307013684697050663695876213038719184967362628612877313530772131662208880690117845223199493653227244317747904408052101242682827577605768520721103235336355173322284658538557907259299765849786886901193452927464227525558504878241741596277439272695086300373919723243280964233209858067469745511572367038795593244575845312260023956451863424137001098615026519509650127633382819673659764355940000898370507219226837562534245796421520814153814035283423274574528218865399845402774412225452294226541450102462883885257064639199041273858637472377197018166150155930655258040244909298244953501327780953256426342626343279899516866922969197876946230763821342879185340166382658613898105566506740106342082853947818002045364226967901634799177968142697019624314183701793323920820696391145686534357517893702466426959525960065432609160427090327733412487937622089785456943184741943451062039746655514720561706101946122268668159690483839429043099283167735414442937221925763921777923422377339714848818191016998201827862113181284536326398438621565509677653198854178318558674158239004305345117073737286728018823354578530695996778806741796430097938413254054481238083190305865408515322785423135428374235375872168823632205507065270649525135696367521210463206418432239356377952099896545472001696835107430770193988419787070947694987486420085547074572670602171274095669266543143833776902401314278999775677872417957135722306063230523856351476313255726446759773377698628417509403393812169214267356386462354340206694306350751394027442889765823700307564930106573451869821269475788504119196136104609343164407415337439577243588525650231378094754319577305451878520720986386116227304334532958754748551273383279722191850350478718978842492871068961821089941715867761208380151618886514540012858597164630136449651605514938227928344490837674328198921142910431061110868692165527920798201649329374581342150765511878489276738254879351178323516112085517841083762117528150078518547781860767942864148432332331910972668500329341289140458582044315576107787857625774238384899315723739598381106078124677863585568996527368845240942528704596435920760579346684324145325596356248748821179120818397034784641754929142248619881698358368191292319024071712957000768746334505854605361897413652911487487882667012766317504121007203157810889243766403677309117553090409281711961362105392341387334225937678768526257135122434134824492437863318852768275374310490354455242143571369313856402904000656993625368177991878558718447307705825297435057486641270846544260384727445331835298489368389889780828901862307448404708449085284940303943429554638527408547590152688160003747725228117811611574237139819507406741753431841463505443424383574519248611580880039606683439401908987378192440400219832284520765154792113692550747874165836602422185462194643077515218613558151988754046355176140959054373857005250135809390485967216202160698441615690787716840681274143766140911181396310855991516614810795445153249599213668254996327123735625684147454143123120604881956549350282357979943767775718356659006902041799336909172824104906231327124424941601428516096280779063603833584141992709154227684258177499221993057258032595123771201299442484070122796867944473418067925826579349589147678883789154409326316567006088947310932561056198803086054865208774564545247485353154050111681242847495790437215941553943670290712577865368975422894964011618502443713140843463035435806477212711435043136254843866092436155003196510855005090715833704150255688910245840041819335202521244984571676792556822180232663962315709645890796869949413734326211814954738978562488217201055827898453333313654848945088878567519040445959265319521581192448981135290221345503835659827193694931765657818676004700773169181645503419476677438018159033309930256659566680601025092653011515016062246861638971930902143214170400219145772685840786520972216809806340340974308690729882230975195198310029861267048908177882768775796117833022329018460019071608747684231522405077436077933069971420826618840794046925806327424727504156574254671472330996260395728653859055288800591122257746897621928238904065552137197494522321276833845155145768466112776688207883475885860064886573576316527556999411910834661445618670681274946339286427366151155891224086859707892700750339421987583653597343004106955922676103553305993105917631279351162971407960650125329361940136650630794157005021118804358149453379132085873254843046365963575445347023689576407547704415571493176867930227775311988218483730191178628930694011158935995127482991205306812955192982493827214779554101294437734517564251171652621616699918583564687464935792409772455133280236293667570990769785251422664119119358543450137409607937600508655283422806572647802204206130795169963953324761662289154668469409691451525256341542697672709654289236696840319253509490673845090202972431809123127018255195138346002937882176207767661470179105698709532770660030841618105920658748656005148395218482499254325485613250858519743641707255380319640692807156322132217334545187661557552639031833939656842002946070111912900374032234397670106259189549411081661777562192162312113709031397199510930006010300715333345290159788935879859588478418005253796008798347110926578754895419075386106622018995978954059343787394706384236767750218336928872866052783454452202405805711362960075974665197771111263096946950342384651053143366709511076068629058782907882208713346420036439036633298098850085133781496316618857710806631255804432420769864751221658236162083468148414083152527539605062706669652630190259384874403412660635747377192472521516522939406695524534224812999183265659442375912055988200472864204206707422287275907409713982157237963214549916729673080286486448406832219033684902698992971020092041186578702517859183575055270334768877563858546273960750997614740057219289818296672620120311458260815855382692225101382561102542944306796243640089978100544006780213427670764254992593671010228467486622594117529405166755581862694175059399711537675399665098330161573697092270055730969595564927238518257578755341788875263978855596462447492326407482162854233803633594937489952680601675414219788350902373105768750328191825905212533184931830610070220267858052785156302432419555393856571133062252246234147971144793257899373626522022284579923034601177104157440941246819729500291141398676155035259981948073523915452858111822298181564944792756355332235062904962376021888577294081893514505639433389353397765545634086655528265813600081646333452544948450595556670516310770887250520662602256057362921445167472113886016916293005420512420641555527240194558735950975262553372909389990752880852423425526878962326127453557578081715309102459635355394814762771969164198426111827588625890580436615487562068163743408004760016441984380293734146828677717616041428541260642564158093743961591292427136313673177612445899338591777306113329884665524574828349252311945870699891238106008382022702659856257633391903367294000126429069966838423817943612746986659318961904532222329360316632960149436871828093274304915238932256255191114730075314812880720642684222698113618552015447980876010728760945026924945406148795259778098636006966910137781412349002068691983892641537672255176874951520401488303120411302022780645964589480587137799676887349391870379821439167206459086965189722569169850999031020309665736330187721579107878142644572561741158418587769963563529157661151716117556191214637721380113652263627127850352145333065842404271934657080561805642862699883193272737246850808063725345867743143564713432991361084587114567017680602415639874524038583363793983563393494459503071442769421392165933515161002806826001862171080275899091634546246022698586717454231097729730601950455750212178667292686336651258071050500174721336920726980719277906330129190334291822013011713020686124637361536176394805561122679035959983458207368030321560508366401669154640260872605066519849075749621296331192046086424701059966275204067990852111188739395262221717183945674358436625025940756778745520688317702101822639289293331994618955621433939875377741823349077638559935400871935321557810634349264692166801973069587793471722254480791181111963926392764800123517725719274788305783971136690606455254331919032228919360954971843249100904540662729238502740563383854859018826814943584364584398026261111617176584281609795765250678761179511632399263517003261953415092975005534048866409658351916597949193508634882192615981448436924375455651122041948055268230753324769740884727787435452359272108804052625835368689199319844609897160844674263673591680055284786340626912717217317175606167717146347556161980788439031135847771642605104747457663614383208549936721974573997978665227750353980618914088883859093213743752720336230257877956104729285638608513091577846496000873633392031048977816919904548372115769326147221016937339567708656913761110869153278354055689486050710822954248091805580809585284066735287814803865380214664675714389654758086043451295539355130958693211086299311106058399394249657601065749524026449463655244424073059903652849089666480404679455176056890276317171918768727725748903365671778563823216530569212911505032641281573270750113835519789309408910748803426109088274141371194091230943716786961363607247765710462348615040606854704645771878916603821401434750973053691031108440796955045623775381198275521595213650187756339707354395801204719660195128825105450331730516216341090518192260525546312264355322592957475728820016262708082360424445903581361990459604491675403755372720618198899951477716149327607979993540532317930374352758499542681718721374730002593356153619211112926163891621846956695620335649705965093323716885518784203330418075030665055606251741605052623316640919252238258870955218902881295750521711655979171308253404608433079774654768816669196814476897328483917921776776427103215174524479507358807632890541673160318119261024170038177565961182565415251809679876026163430172783703279617329250813470476548576560590107276735213854598276892987332975832994468536565991927202723128419689666325935947726672235001137195026467308449262860959852620522409521822359200314706982697792667225042365592919249205435035444239094088057620105046530926977313494108572799763801130492797398655841989887658332015933439610468750796352017847298731730440842726696584060961805465465631930250501495988840192508559631880923328014730387912919579582510129204377653347410891807580724712724027616662968626222223166070448752292147150714615960773351238272166915455272913078876136704003344771052077005942899727117736591924299132120809706489631255884391194426424834555020727461522672099256445652834679899490660341741368476155773134407346980037980421412267132037246532107321735737604919320627556467665490391302868997801527791202724751053292459552739864206624529571800868091573355539701965129310048323147041350494293596511826572404982044313975670314705370985061314615599154596790803820633271127053976438946130683352466915676444805847905318562649578393545468362970975088640725578236692990650812706432076742539043688571381094074585565967418113481026729780128765977058162672845756159328126606457532869835675416943733517186915449429803953280956253296717647427841921710549638534142832198621486189526791483040045423024372446249427695881885130478794805150924022184727268743260289620485985683180743752148629099213391399218069538074436347110623021020239908016642831219790393108898902868127744913987781601236963493538379048337388616497398864240856403886001217356037125663028241932844139371526035502553650068469137995125330157088169317619805957660961132814536248638143747081376099733927934071387102183560443794655957632108597263805611317386277996186628281065800063606056696516050027546320006428383399004706861062158978013591870802388375768955791117132702187191386124460922850946621788009123566467142528458131688323343861702634545310635732686171417326825210992719583249078323219289804851229823033793785926972269319589503335412606776368451920279901129435132900852589604906134817684612448185863452673249441239503370242895528566745576377654831303915449072417446990333489630103269608512640536887822212146215219423825090781889402643536751568910448856832921283602581574800998458320548765308408242561350893597229603185883885803835818566441215386708767601248310104630844744321880144790933674746884478564148174459091245398103230088592063710156358756516430959611273964015861769781314087950737142883177604366898196264134750069719405651950455051677423979401968998625278900852374458073288670697417739635725450609854234567898520425073228607094202639484182866925660616654440720457756839393231226540781247831666880180301842250452005355186868485055845308525384975426120579430535330807477508264960885294455727850034413955893793350511840302252987061629150596422599960058564895723365317986913669699442786657891252568462604147981108656855717390721330789331085259033331137185877287034926279027156732916866271667490819931825831668328285001575707801611931692219315147549377551598046540928399910949374201037170856086058817854490057041041360404351376424689981526806092554011234653295043491805374773561666671046929830956789203164820639317392212484055120347806321113168133732240632164554155882378460919427380885028383123622665497443005580998982995742584323537642986314656350552835604770907574732826367704396309792346562979493445664139608514643713039321367742124709044527215406879215426306425972602920189946552981151426126049007638671417302357272768390415597234506666938664605882920124711441788317822348215338918760583632761818194332276955531125819048475174629056200134689964407161982320543471846110205113155509302268251074919901496081785626051088590365847451503763849151340003295163991062192405572830081035217619796168322139816924083576395562116571261121929050871632552585586496166382541935914821818761959232920569955063764581826855752211527870118029943354674153627620774978540541333031363354236824101084647637490638852798414900764646976485400947963589549754614481376369705916356998368119875250547930693532075707667801484477014247162419081668224900742071118648815477289171865359677653957993350334272821460541696496009847069795855926430428703636647130713147823306115764199132224206460998988307626858360555274099047846761076042417842150628517557352999647862552954283674298706645794337580101407402116186144843297657442634285287047785563083096314352787830419450197029465757777328167468580874539316039372533158992805794346314087358608617788263349277461511849116551306818467136773488233410851364039479392088768863363394613823583447940815696109142938773471389342377361910964605642444747790820760496602713561689541064448321365980829389097296189121183429149061638963861069375208953468839833444671898212434780723874074576975545074368467471350248588183996655681963445288119418331726368250506118649003941255205745712036035578025141904352671837219213848299058032246958424323158984432510396544353505354322921674704077861468485976255744615351188003143056995492784716745449726976128393325183819722232836070752278129281301065694126294873063426883733818174217060864754827639424239140275321804295190341163517046980742335155605785756245099925320178749963664047347703898558730650760387099773184312810989789882085435595509432539023718952168202334424557257530787926339855090164559423733966252233516487505895569421729724489599882508923211203479589415465460303787861759157166139886932687374968473054965329378214756481057938082853005324470805065692942234001095934829461453907889066162640215013073533003319207456372637707709993999228862122432488020626348508885303601072343689013606427581425283987859491799796112196379757651924521867096088092137111977500087815930430729344883930957574159241375285977797291893453850508038319867745900251865791723708085741642971538078840607130686803619824197157747638950725346840456919275953193722370222901558006560760473854735990447799674874996976942713766869553319512533776409858709668386326392616494560868414037456842071940595070174303546918215090046649399855174138938519757312156826162286223188109672974760601302833119371611408747270676255856777511995666748615196491297019331808499410961813929649278936090212535443327375064260624299412032736255824417498345094730945343661590728416319368307571979806823153573715557181612215678793642501388711702327555577930226678580319993081083057630765233205074001393909580790163771762925928376487479017727412567819055556218050487674699114083997791937654232062337471732470336976335792589151526031561403332127284919441843715069655208754245059895678796130331164628399634646042209010610577945815130927562832084531584652001027797235612923012605863536011649209902587455521403969791153402241589813245057229232332131045392469983661127509161341877972271870257744736124388514083465932031248728192989830756892399493819598321885103228754680176531265348959379946441039256716271373765670976190037824177952641403477592636637423901248853818378590472910469319889215610792471433275600029017186285425139634004575898174665552114607079932283996193649114731212691945301467755623261882254742174925939881766761512788887829790775534351121708399018834522332196903474657945509447689207579306911954669008259571716759263187037589166388932888941845380700295318809848102997242480925591550439382798086201698320576363102564886837333675568675751472233937863999270437059938350588590556051836547971443132215953828793278294890967017460767160108037280410348481522656564863648428245411048994130152708936078824806301180992691498515905410255747870215367884778425517346863577233343834064175890144702018804220184060001250792873534368375279693390587583068899000986676275660627135899542946930880709000058236957793021108867524302635878255120563115819373842312741680228519325223995892981844804455795800753843563554453054923787125405638142343649250391762278734712421891968913826306731028522009679086457117716531202213996237431344790855045029007333499184252611096876138081628885801127188341154174941363451388680889567822705813438505214804376938599252578850067847093399732629602951076683755523081557048444813758213270991881704028121932722609107605374893567056325226489607815143554977384885571753483164646216519304208951078062789549490832143789737583340053558953425457371180856230185443410941852895513095759677695824021819543455445476524714266831898042366841672405864288065331048692161272550541092444862842360466663966876147105844227261274811965288811515010480668263347806452906218068056551796298381892871506926703423108833602202568832303517003217643956163405051042571225816099315475191043626338758855092048451506724838755449447928555786325977466367276246557645720319428334042103036158833933844201467867233277984922209152052247727510877973604183486583336431402763969391070723796763877080890754603191915200788416149577637354864681844110384241658239699368228164036303887816483214327153419525007551571752929863369367387669458325165191195465783936460223407898671238770886661104613626409576399196556202962257718226596229118176771739432738524884463626361256484220692998405099676566648012269769258631488877954900601384942462986568705249080143013828833620818097308846341463202287814457468375675939892992920904464825996561395926284077104199213925418262167430242564805735355031812607552950681624626571955565519346874759336717787958808496385713012993667026002902050282544011011431866847185798966085185495002791174005549660444491775609721231613832797595286816514606061650704910013295507759074803446445817922573888494673311069873740862773007551043643143223828402864289328146284941294516466682725709916396716860304098896168069906151005010157355140939459901853359350306116480868589949545536606822008646665467731919478415409872106957103210711443502372237590898186666870002784068161374415068300474704099988121015108507287685914153301632210585397382620030377981993254477255381930506775275294360694554874566703892928357599870603110753542296686789766352654948475149787023745325355515173837887571126709044885899490953019297247245015141602225347270911954692283452897738670849450731650048552463079998593758709276604725212645303134109242273645706176663764018635010131098558835785722345662789021745479660642561550687104323243317465089827413759393279514596662462631060695623382417335314957896678394140232357276877148742499852158783565171772625661272236516285216287859651365442974751712256087432584779557584810016953652394345942507621428498531844629621706395990477654710754714511824504465055839588367152006868604747683409009363862744133893515465048157994441498003952636712805496773779901381076747632564945824463028590739407007186227896154902883272081773653153812106351373863454338856975538711323607892409952743598767851293074233631417475457610754371017370518718029117596564006858306889791904400320542338097796934370412775504842123495715391056192839838075047507552554858915512975463425428051095809803904104562357300278373896590245082101715834045199062439300561020243183301065722461358859726421462332629935897949997998495497456330726186027040255198976954328697568114102694346410103040569145649549302325195907391424103852774180281241157484916825961480110088633340600972125340137378807147108482643552978717524130359717451374126395244665242250182381153256186443503028193687010515709590163506258885608650419110926648805283600197148485235034894368224801635175602794139878180975894463004014506535380369455779263708249993054025452210069419526613918364306194048777119275938581850798470680776630099907568296889455463304582170040817840947808940834029721137139622882961616518961851649416136812717359499449290179615187331515292647675294606074097945941738119841721595103442863695869237796757507184025299910766398837664823207338998624373533147175425516695999357842946222267548956769987388220242216321467884439617525111080710777248806218867936510606900027175998874184650753130175036043120382780790880828116951856129138528441792145628605961431353725785397142326297509841625285671159802649215352667458803873918522600841027544562170980641615814433117525769185303106714094377655211810055973596666208753308872247916949865246485523551219596632236549209533208057033511662731410248240307470712760066379169780275237448478923007439482047204360195822769007904309654658811948643937207699778546846542645047253566591660361688710908417973658791335665229114280432442681375020653571221973637796122865657686886710735514325729122697598417745955219980002460011047067788729849107363465360707033770156698594353310579828190379562164226428784659171455865359157196016347543981343776443753318165489698397800119782763230773284443241450932082125217156412560540057366149951624320346826076787219396436171374198224725794421479759128386518786054802194677264926078141701617648704799472184964104895684069512896288654567042232789397033309317982483926570753537607649085267763734377127179813927869671132570696222468195339362590127422453053814413659304024468942940082227463307395618481273362849103278568503529113857682364025710722088804476696300283570300099249317638529503040891974222916479855621675706765271566277929393073197164350161379526078950593975829357323522152170001083511847520516552612252398681713741624750663669906448392181270675003916197799863182111995102271529717880534254402403218681445841237518569837216991371313447737389099288241195380017062698568341250488659304320900394089434524322030583580470529996559043916429736426987214042931290490155232759585079026924576650964150077746848788861704548692155283160495584075280709206351516163215005936551763960499003647964612208651030928404157585499795513711879933862378464486513829252783422659330777777409901951620925693199486239082620378177076270395519382517805871177373807442427394332659212813639453830045530241794156313993461019136366510171401971559957080242384213032622150843776061149268857000457471976624789196003033337255286599430941995045068628529491066948331721842211575503911838996558840478611988559209112272014410152048492217905716718051413712068841204639329611254851079119766890098819283794481546699603552349238862598453622964567159401034525960659822860818423458561047179308549724754067842845888437046397390657732628674036839411395958626334584670452887386396995747536153069294478508831484490122250033867761215228669276036667648605685294178850907963593635505155859145033715607740384501724299099092154097167385540493793038354751997544384834825057178808193400935603524433271696972718392493528236756415718768617525956448315004015529638599980258865198301267524468688563375029696607064225895322834517272933868628163262676806383774736275175945942721663947030039766401894372109747299818511869073562403623746104619580853778966448425396131213846404254640404416565511248793453873036647247463303329726226590097489850168092654525366625714882203428213949135500286910918194285977284724352637273678166297843380428320952792145735723800117071875934898789361081781082105501271225088779286866007489915022862970270618390063038326733133856955457044835905535006073970508371569906758475542021749950886834266477115690008778536015924828721502800970107035830540448559738822768090651693050500780275232162529352912474752407741910301893630337123412118508395086588464645022854127341171453462900907441530050258548275864455299612783377820262398171179081529830770958125345331789775507333982392025633707423610130906791210259990301090292558485974424059497659496303278991596353095688328944778855521806091650109117826832206745246332162598470111109814165930627549779817339407057306426374732149242150864233364072067230489746425045554412735626905903460673935454809255664445463499394773610936258326309101234672694973922162878639365351127970726437728394526594432783474785793394022415137354830317649723053268105568879122938858791786460947031726915556038022807738689010299192733597570237819253912636590167062708605978846650859979733593489264703828656508617669537410436868066083254932046531767873309803196105124027993095308647018668860334715583241589604167053544755260907027876866091375958715446316303454377260619509032650010283020457613004682936480599776195003461676389707506268823560672529489122021972920151602586839393067798383190120463208858447772167892726691340172422803485589473613412235435785298350778500581227341470057291249348474541893757692640197410481880106686381540631825223057821533843977228642331814586417022770180270656758967571195543994596082426547035760996582665469639557450244464034970404943399246680686030156441368014468922052006551537323935498526613377532417793277910899993124246662631797973886882496904246847319303479303613333057903892161675242105383096782123705745996510809114238941942835122074455289227775861366334964628724906110523919228399476700843091331288543189531744973406314656907912895779859753148636835924751814786469670860712552141101647167743224216370170738164145678731601302082130024035242168838866431337306896776441963480090421996827895553824745576848506936825381244907519972537983081528825164674561198808675221898432543513800691967163871429874620095727206770266541314332855902759660517280741213240680505662991244534392205991120376566614179819580142872032388291436823122242179930580066781978716466051064896231168829573829757174745883437316140661310661562989854302814804592529775979267025607324988158770817834894144661704795514098345447440219945655914181995137859862215627791347462188309949064037585705987059851635405322730900762454175627511180991504690368571677330192270436393864836392794587336632247968642510546741422361870958732997013231989208097034536332864790074516010864163909061983845715537196178811262001317865681152124660042745415077684840612227934399275950383384014606927593065019144274897846996990027805466881637628234475639270096296349610666796377423297289126734219893814436609558891554592133295518557513383114221330719992675676569204177086297646875509260100263459421217046383837104220406656165492776667448336812883122917922995076806476025186263854246578491902321309398033352504291129781105388216065344595258270184649702060322815186762980475922946452387025705736079467289559859250989994587049862048258770166735788949028933017111394529706449161259606830064521139028466966397548174082155063774185535531035946598144059441287574633857873546721529785119841140288464952314211169225528032493792158274744375689277910798590824171380051421707955504031689778008682141831828203151550105581128891847599555566509841834835835226553309602229831546634878571085969832499288584879533947940232465870232451152746308576613237310945875440271205371986634496285314422745863797345861726295824819713451316896663758546762469995628520022544899353113183700404626296472969277275589313524934187029517411456786388044176408194619877961093164602818149119755379328084307384636377212199678120608756829950037768353239031163667899416356520569987581084303452434886310603301245329249692525326357058844863137793522396668514161566180888227170765336276758760512319597384699373032226553550204399123180689404582700299830573784058823374958420950176926334499691632741402541907638501064325254668832517899071873471958604821874378368342879006557719639457727047104722500493577163190407727868876276980188712551264270443156890707366069219609019969747552629803960983165898378922248536387758194159731806857325329250404402203436958195255984435397199285102655562383535078466639371097712807442535049804570252137869210024421906798291142267720949351282707837587202989007747192470418589828002476266576592610723484405629126966477256224463823124263432945940518832379016652361877805835103722403593880237798635017450784389661937843712377512134437630891826046180853826316524945579600377890938315275606351373826946579851855582227082419557765618601066521618000936612921040838391380894779490365988921185163511825834168990767062183698522655321927594200760157952962982932969866826916333700645629010683010339776220481223983806658978787307073748912376466979148883892406243348374797083693480196316149424609199035418080809844076492451563318134879482224021950473159936631599648829726164554070240362275462816330123302289859221830504049652006508779753525534509935645463076830044196004868499061833883641465734644676805947286339198696294769952224527296021653312118403543664758270058498711984141934909616341449430710732743149287178508554296015855355077949175363671629912432716370466491458338515539003303527433063289058639902531570976795307459977366485243453062933103932703915456057281693337251044713033853527074313225296036408756169744405456625200784215318802447158257671794444367223753577401623489472674009435098253067856321275609574196136543383872014652461468129843773498065867578796512330904080136301555308230248027931289591430430922777834473548152770971305835154473677120161192471696127809488511158602722648831297588738794177877924955687036461840173227611252601841145318185966215523443251806829302752253779144710090663034934540008137405368565409185768693607060773238811316741482014741034739077501785716359913012120738945366626193077228429294733441503594299015508122521888713945211947135995824936285013846534029190449588498685858028611045426887489260831909084390097603187395356053436027816831907656532798265894054352763021472794153930625893891607737489303184176926965632105185056688883037210197442561862339380455355904366473767712688932348057510204088622462151919692642348300547945701769453382424835020200226613589543881374506553933591322527185242640599351354813554689023800967994305748637026118049119837088883914827043623845823060657379535353910377338476972734006285156617536525371210399768433116290910059871971103025737319922307166815615723121147447923486050071999756704710496711437236158370175559821799530202388599860982509522294248367605256432760058787859353816309239737103541557078653345118066145870344649559161097303152504497895399984274830795906818826468047392875647788447061216445185180801691762247294330407259394253118979076922324427222949501281612758575988902723981820144796798385380437090931902891324494165572341988130576703758641613899443424224264877186367014317916369893573091349057673956733004520583936873057111366349826274397571395861466797138842049294995397897376193681744559272493976827535354797512182452925732421748277136518854807902338328808232916881708836732386671438828566289438857481295461702302880729999182094607745714896762466932494004492282151151518682905057420082102743609547819595108571470386562400591566709322350305889255209318786528083271709442372499917681379798289688126565037777362206224758568689109175947628654344603579137233545291658529270398311638983639230492055376322299664349274922629687399983442769336339582436344429736195035295669721798652087376173073092627289413855769581948055220598159027387493217120507387548879424079507150538587422763794716008794386922506136955056996829395855657831574582102200957984252870859817709918178651670972656719630409069311599512906462085542013765257872177953142808888328632624301972998545180561805845169788781595470329752739627292335223419242778056537016277281612121799781199577889454892644239046762394058108773947403031409654311227761095303849883042525521281829794765437951876900780586935016500583211507587639270393059453751138495194208116300820913369348061702025525756622974208136310409439567027642093133197101662736131616985546989553603828904952500825686988929060551027889485860876495069443683122089935294956757519765888173857109910788934352309818132724170904905781065417998428398772658024424873108121837959363271161996186527914945081055173621499774083701085666951345165077157885953809728566352157330358140637258504402699398579048079816014033374714627431167128705986400159324370721623817656046802601351509323325236021322277033660992284441277243533665992684896584936317302066274513169449964052766606666943454842231448121466228599436571584217476215335595882168791599126155228836357216673879779361707418545862548096035838844454635153788219846869552151111521708681359241122887416506060853382881131530858453812043306790789117519700466707651200284231314358559895875119918171279882051211596721401410771575775308036882422893400965517697439246008514917471688836705998719789164725451275108713122420100053506168725387718958627727765584316990896936349615590067745440758260161723788594586989339237695216214128523116086891744231497774816405552723319823457120639346736618729238488351079513814927695809122790328318737633691528256830868790178191479488906017791880596388088162091224742316596139081848455427267965907699014762341443128259070578598506122334054909018915004067266090813761435318607263184915173052065150803692715285315138907694600923724529188772724564401249923490922693966521872025235939583746178792684963972492872572564267278327486989882374297714253425413542346022102160319700742340293826008618935566573590972263958362079249034452659533423355923559999539512820322804564557617566121781948898829681434712928319133792865711552163826025516809048850014020215505047701798712862721848083976634119573580142343979595637004282589044254336178377526527418820221060132291386365058199526099629760013173133217556313223921480920726614137384964442594402902213691132054431740592192507481699975948527988798017757138377744044895492788306747687528821517117486168099208220322848904529371279041929109400489148675171610342681441000975601293512358085532565185642520745776658114101167645364940167938799340112840486517547402478796431629087834813793705739942327554087122968721122928991364354127997921261440862831654873840860335736704648629100656936525045380946205149035826753556821245889631607404636203262746135181523331191785708475816497769058746369180682858050841140068366679130627765229011978331217321386522565500410662350658073685810392833017400658796268320733457039769812645454919314526207494620980018428053091983664262073217177854144409829229369102811575198444608690050417525548336307667015929739560209334978479673112433540791640492766403315359020874460768426690703079181220486526160791971612994550824837877392796477282686265809288844482278937515134736620403392721960895814863162814180176953292049292587133057162678029814668101814699794466109569438359959799761003428890218850979846953149743955023988556675887522317208575985848466534079268357516523763130387622402497177891167497302544236998154074973462447493933606008475004761886043353183416927678421310097938129933312771875697814578829702158416621300048810196099837187650559414836449137519305393657026428052685360549753653029833627231897063639805603542171775345299402573092997057418579977702272830636415457502108386936267639091494150896453423370514649686778038016564478359407789116607589268563719989851078229016656121638329043277306644652907484779409251877096761792582464727062583115199247718068930934267082190061636572975989030274357119061299368220860502190924762615170222525421594431015343242284316500505359242094855756251036476895296248344779230505813010848214700899275682606965513633422285541088150587837206137634841383988534033071789719484150769577481661916670270387233731690564715440497169655174136676226619576715866497902038824410618283958710882426537304133441415740775473148068773847898970843631231795987898286228867657317755309642192129469728383372811129269767647646182309180791707825702068005001998640485822847862274274706528887935080677833719219381777012913048577781632572554148661994628447898723528201299467529255574390105600560803802265806126552995362274865847396998527225205154317473817386547241859529813529535655059399945168239419565359937043128652962913068506126146643616770435520842714291360702898299431418579724307879226417851651874988508572843848460604859096187728842608519457759000360610313835459508733409722603660756205178348473953965186686028700035831794189680814313811043178181284358940736247735171333473743170325427874289581730210662480147221249960473997951800351210068680496664055771278372022285574557893194452054904615967220160217931822618141630334272658445800140924337659314093787531568026246732542212100875713816808717985098313078796550982731552259279809527277328682306404592000859661992499475524986554323478430959785859896046554032990118992470385879168118400998738819438651648715425371098580475583922941422448476166246894896155209136202897523632750743783530373862752708627411252684407330537088451495912747464177678639776366950634354526073969113984741589264808160474888829218063358015525802267628350989930692132692962909360283259390913764659520340749948353089062528897101824283272399954209818606405203498494388071970225178795773161718658512537230476229372131928019574292794809411159191665296218604836972734781990485667484262454979044399685702795241417891301176350986658970246543844749738481145709307687075860164340112169026740155105640187968401803775402535873379573291248534899748648737130156157936970374912688629903815650626875543371097258737923885733657119881464882196052805100642796439332022479389420943424710047938504295048376579386809332819034813221299899232436857082571371159929381214527404030479645753659895375376534709146781124711955475292451229999348494316109855915335226523562508154166050579172366021630730864826421654863698565872609880902075223622428521300197539667002251378930483103766823120423746365044372047519695663524493827242915547082614653042084308585548263589025193248328995390635508314785330500805697783754856526167597414353527775718493684759257771454443243658094773173344152871900599389503293224939289868807188992453596334923183394883168463372162561248692988547323304872861941987376653608802651278307677318110393484576653896070125089889500801809343497091445670901372337495567033123496808479456805012954592977864819035697465641541972145985367811213837859705314916403102437742139984340051720082628686956774450553290322959296059965984555245347554631476516619714934983068785513618260371663646821842101149222719697066439432427610432714701324970381010818520283068775070823702882953863677442379769805958848320526129446965988947602706022957624666726264324334638638042636912552457227236944903261041435529562691217892358013700407847973781925922006930385070279013974107801421342720442777935720631761652808900321066789515443384789371269546280308647521997251450403464344298970892119990277432222612715474234944473714284553098187416541189421704252304671196178208328862466908855558347938671498425667866268406759304211617347127445136897120965950787955484251364882850847324518224499481791889014890643141250658800338551720042459873754033628848301027515076377214335953391046892248047412085170920939248281612140114883932084998465946524873357615781977518952967920856906697711228540958310945645688094464522191429549361355222768565116530291166234191314842386535610643598551531483300846357400433311914930788457793594522189117038023271457020971327116620015214843716195892767180601879956128827367769183049593978608290557335904023875122048545493959274602553247429589670890650503824643496111324858246306646651800600924325034306283692203352872825191027830011149146718415886253468345921869385928224035653178925733755006881107136177272104275048092888606650080357390422945008233846942227801977399485664453582000916408849073749294816352387912310199927693003160022139087146827003540257081459199111792791800129353513780343011581797776782660522582577316552917601981099238441967664682368145726177362784627572192315970521777160703619237590129803224074187431121387673993967380280780212799124656767789100567221586411628548809316169021626310072458007276358171048402571057283321611950601043568094250370703106216398699487649683104051473562242292612395872859322546169281216581833373789115355781701281398703819476488951914039285785666762823459021961134753631777640218345944471621382391383955134755441614802021793953896658050706716060762642015777033387792765121735296098765083096757731553589894309021893038175958448802302209932721614205810180446843969722796999515224155836178448231912510196505039146446769319709692839030392217162365422772493105391941596442627288787402568835178024090780027058544445108345178156067688299995350356556714713276370643871671474011089051150526248802818527508128858134772351421590324290723012285459639107444301386857093846552793566265150399318136715460939891279888211361528458353326632194661350013740790772226406725454338131491405602429628530773178300776625519000189067475461530885467773378605415014857990091651161627591608329908392450909497961962106890930444662414683710121313496290646628272498104358840317337458597299553992955127203209319666711788060306920526039056713689004764395557985662036321773629557698583925172274396554520685508003817698313259928231102848226299337681939504248194031225407583158758423102735622714023680870291241887312951304159995067568782756555490185431286875744796578651788433463550160989443307083156532092140342956336996778557356110027872222317184690572255757165182250539067268636062062638519753594623800568067069261526893838836002650849697795802220258546020996144118328328933766678750964116241998561914387109518032044716730076206054699577892480989537959616637598039882287292965818157555057915428077295208631081749262143358653556001713982649583243783067073747839201990101090984896290758735414478504100533569166897120082727897282805339366492643026103079414859677692044816738092327294630679755006096918509268661595182846497511177420967827913216151976844148705793487227979968400858443294040800326396888953121309128825468140775437358185981848944505073073147778773396073361523709409140711035990965329922245926320952469919563277271843476782459236652004403480155763490296037585837866088478277517737269286424926955215437205817578651621784692506949279525697098403614126647718910688059451333227734085252575526045570370858577107363512648664541328861459168472191386193904526556354427306787387010527362989915934609767156934646548582020616630460967683470103849366599699650318037305911022203130715659307529828443730602193239536980623381114817614229651841991838101913351337097091933985786580130075468907817930546167798250313859070366951906610527068852636679641828445780765730189437161628098433696277516962513573017523208556260391169571440897434903865014383554082638803931855029028944902875554441419167599477103844997500977588067277803148715272200384298639347782060738162428633812461518053599448337315037479234388425403650531920650406619440716557802103201078188353997812515052308646019615861050441563843822156361391479216004172128574236051064315474968766427829912042587413293666591167296493338225989314584696302427648159461776350204313298936091111511885949169892251062648502404453773523358434554238770633868960206989432507310421942144798561855426817054114067651400864884521633857363452404344113557361378697539738182235776357329901757836907199911394849118532698023673860718992017011336214212652618728515288247663623957904827233494583937877150378927128229074470990963264042248597084794923820146875211002911506719784237809877131367574032694361820955897756792973545855700029281734940036871114791074856791075113845903341889713141934353700204923707084052737923910001748467636032923976425409953092252498412107670028710333937809852548442119891241712600399259806142120153755862708052477476955411752069073042914795239322774189986074342913356454191557025947872927044496353602380128408542686427545843416686220130409341009590221300922449128734524497345407877740406003900731232396098341036482454507506396956324005182103029469178200935397819443324785480942857797900247193533436609938317666258988722796017532153780643669635939729511254813247605983941405084452602396778769025668305800747468116271682317943570487266134927997268688773851880936436254655119577335569364702941660868101884969768206783264588643953649340263407028031230790914466057787584364161537950756567802406041274700392010648431482162071371793563362213749746929504668811554641465305096607910734145870610242313252554637010565477773011031850500866145983906862901347759391925791226790755001003954284926602572714309720941485165915552803701788751367449277691667457368013102043913632244918375917683414323612772067505595197201565667951228997365768949034373830783818150707034487777316751746188597767611349016083794109764436436218280305376953192274785565562060887133149812147643239667694809215387314794408040097743049555435542913952120799307140972287669249736096785168672128447188283451368352362264521898623275081839110462572342038754477168487608287821580082491818190404237718940639543007118198538654478263696317425635210966590404522352759613907705733059109868018470061507798409221544074928314094669401515192030302653455830712026683705072652614298223103580480008512649502473077119855815974693975203460682418184662574064482560305141678869345110618634926532256718986050633544312002956531554697614213183641424944926829575737169077844447552747420055974326034666976317574959221467233054834275333420902169192002808671338181517651346727246785601808728069857930625163918159007340191781263377206294372175843484347385673764543549367644520210551964132041909034751090895590107339268507689928187673365901832859960770042196116153198923086688415649287322393919336877586319575388282868802432229285749062834698800318009782112783464473699430685892744593514603315540521613239180496028511094200920068108609671137169901631124957773356288814757767513379750010214828424349713144822155569448244251296517310052829330007596880320269714714305579972727024023845566932003093361534001346388226512858496049433741365136201759095500768872572379083996778771043278323618218079288644512985704722945918876390177410162154925294434044663345537960358152590844827165047142106494943390564029671203957889365208587356863848564038234012473264701575682856267631489490964863708780377365370562286324227491995329680995376011765735607066889623340654736346287530174001382893356965641419762442738806532005593571952599294161918250088559429804935625623475763876753250261768105102943789482800381819094016333853621848244778575211141902001157221548910141265746234094097604780590246929152237692070215043086599849769077258465120054623089267304423083990985283617980874882165175013947688392195961973835219025378292184274002679949868355047798670887434934877884263491135774173793789638032664121660878640151026693538539291175867539820704545400991554809940555947716302278268228819966911992077727685690042564453424661594551912469849409179713127670812163558797375505469539602019928916868690131678225326998283118811765205171314240303103619077034486006857690712568299122922890416514184354122151892709261911827890720386472989028312449637167226226079470589077301515792370665053773557367854297496141283239810725678054477845503338025822999006143290065674581131383706209334513827288509510058942843640093475258261534815493433343923202784019063406103988220724008595714547856363144277093578186468700313831150603202390138193673836582311063194235113752201259302216465067723953674010834607247360600187323359572596742577925778753474648474385583366726330579751806279481741545535766324556219906771543654287627692118653976305541667727371184712556819537429878906123197797682381322310360998711074411637782453415559306946528706451437145182554817093867458862259971932002201256794770803457553406855939564711660394975509368907409141140819867403429730897759319547758494032028359252836868265601285379341592958176034283466192813273600986109862053251020303654389147669581456125870528514765790448331263261261275475967370613929464344655023985634990690441716812977931560454244781181516843239973310249040861202320352625994551380919943942422644207306699422302078757372113453978409189295271883651511577284335650728339632667272773655271277835109606488349161116597296477072833978817620710642369653585760001786133457424747164675479560557604315992115996171053100007893120312916592118145597736321281310088459968596515479915967334820692572586944651048409016072543037947937439924948170354084929482716739353879309189149105940273882575634426740292043612971969003553202780746012997015167764566166086620650983149065183990813403657892330777427579288817853974784253456215948516899256315416653804608619375766101159282719162654984599284413809179093450289446222698746062369124910222676356984624729875553051228077306038272314767273339236971473182746508235706493645857416506527528033657588500186798302233361530748567770189621522377728078662970997138460124564113933535231144394136311364125063031705754638671649219177818188727804998651429623692032897521320441645948231116515680709360182325747196151283981182450028573594113668993630028651970864349680158377378960707340501711029221909942356787598529910642197942528880715982685438973651019956985537134356344844499948066238711559832680009139129230521345318710933406054852880528023480091981952064083701465298058753408827757824197190966845092572735422915973394209667721622675032838016836701268327087718197447113416474042333643324178455751429177479553973263018478223787511033467842821574771997718724907884569287855914978807215276216777487839372594667697466283646364324636870088891169603064008013321225544033259905510759601301217827216735090870830367828069535618798243249758543158370245511038222955269283087687897247615175634507109322670487519583543893267268520625106523486429896817851280346257186736577340840303172544172060562613289306744282270727818969513042713693386732530835043523622680664723620365359551522004610868541956015009851807742491375204290318837390768814511063319459431968016034238314294701177907339951880518632249363303737428987666395573004912311542547445635751228217960314931921755362155975173541771496270578666609166040129420641332056019879886479191028082572373344097806550004676084659077213277620485344288730641075216358008586042833817269955428440736006869980254634660144658650587017966628011375048195127464755134410941297544400517363615053233195614027633605043714849935500979339657556934728358078932701517616687071678505215157824221181977230596102718022113760557756508224510733940623404403522459232467132972924729590596607658491677679758175455500629289709458071169846248333631850495054136032446037122523002840366443270502682929121298013258704855451849166937175611706931575295002611807299804573870328033446422407624565753091061177342684363974742384207824933961324358878511433221439680160135550669500491595007129524097148418320524054713082666000289406977374674792357783279567686618221831164536152981043236739652109901286166797655130483366709558198145730160957319527868897617949738664731125813687331982562667229155559341762250892788702151915522317201257618794622116819631251126015128786659330839972870209589444425483857813403467475295709847983486791009529393177067779595282935586933838928401788831265834018207413113059012317875493132600386474392184202431142502717934449849109538269804121337806395730645594985291207547945343378821860367816869162464018601760989508005757040007613617583726869278889401279370879168731321041767492748146988683866933742989452900095322620623439557090365005347022096836720699559919206962310396834888855246790686617100250522735631931622916480153383634406669330611916306523322209677175050766526506928945267104663596291397570417951995407638592691435297273926525858349226001281210594341546090490896668448353479476740184091693440821121437575991844978935887981199988378104395450582209265478153024192434287549661529872752062512421645652414433769982120575773976979255452979275548311022227497804116723290650593640701326838116937117861709365336114661791958895816380085858227273146398812507431885930628540477252197325520103315021122179520602902261508148427987160887715683048894626628110875165719315803483791380475609981192779258193816013463820567615791947688858111977946573731371412896940425858642608461356780363809590304941436012976511086995327556982120044158668042851351485946280094502680282789078366103133193981570053235773709828419626117546312776400179255663368868410146625787264487540176093362492442105565222772843270865638145258939894095286299449126389851502639968925280789714373052711703482878632549311351468566743745502638079331233890987581997446383546982888408867958361478572004108178195267273630793701973161108035513307543426319758326623125873440471849275378555505659744347641467171749341623139966841084072883691239929036817624897833842304924086916049333585720849523415746389995902555929846484168530920932239450099842609353650712961038293914178384059673601317690142192294468824770343309980382663330910761357953567031620320156529942633836389917031552967101157171386605381110987649809142253221211885497858375452673543597066911907582773427165708311055881578202657719055716555229917225925199417118207127471635220224166932627204294585007602675155722364500253579838951440306567087689640251984362047673669476247213222076489353185298134830566157261004674616090217820368092789803584434628331615296800144294383434813251494447836469971094300627871751901583054975268249706681967084240041532931426707243910919269016602701227549972625900669589063641020196803150521418400014612813151431704629289361260451399255636599087035111822170092048786834138155836860001022139317162938175161481422045439766128328489548792451489203915346873564127793802822945618826470036726138100729222789243834143289121957615846825889532244491262372104309959217485693600393072875597764359278257219585173289203289373649695654810015209406770758433196108019191526970359449728205424099217747948855101892579673832190733955438482190213913546103957287564147009796204801679031823271129616918837055865294232028211967775211030427824285323075765857525501803872772311951540730843007100420922318378952510609510146744802307784143329653969117485526374925018136516701659813169341969516820963864880921930027649289087855906578223221964400442443845503444471502714727566153260498437996491046373298777309466552416081745527731188401660816921694723561545945639842474351310735621151612254696731133754720321066639057395945458357889811186178324261238258387629483664197843693455941473887456954555106879533894113498798990599543328825651993184489233911989102422072732503304780443482482631679538318812345364320343976941067634205074027762099250441628598738008542063309404490840874629501180438768199563680977412512147825641458109605463945483538312120741133967096575761170921701569194046703005278833850119606881285436914259105126429379763596380442614466936903741447024098707900609286591456627747370705418470014126066636777256970661853998281839518386935147370302170829143866834918955739571146882248943834768015147317842088430908014658858769187712165641204838346950799106078824258535962968911647995139741902725378504631972160757532992476702013619487991073630985615243470277483287408707462139789750922989475628757311491231819192777775556843021379643624950093850855751306244946161283158063084985942058804578704078785515289719360456282644804687204566172880931465167028752283204657047496845802111981776297074091159420791493023781858413123207558236599809265253524234756986784289710312193378059604896982190750251304431226998315156450957979143815249557321035853507966260643344733981207748446986453521343942991395784011881459016726094688838855923487055032101404672953629067700802205950873829180852655117756318673595463745915845363391393801788926019126055103459350757967533983990829864822423213165178011470479533400954086803420795695416413113135505666117924350822638514865192802958371094626166967342952888209695927144313382761321007621497855663453697598846376520810640392838659143588297104990724241461189967117103467866306169690503731543153385041441444438577519281212082102519526090256985712782919381403014206202610683350398499458356221159155783560795763515299610604051548273336617677383406496856449252423327982642009814218943291734435747866810316302538442076556722190100592807309090078580449191845003829560291915383448907964461571120018222173427521505846427751374514677885234986818302513692382696295177021772692528700944035940577934112915061449475258823639041486185734141833290220129687836159176523990639890991571159559355676459033076816414419845129941860910715526173219470295359256820831108954817488732891594760874594817098888310190065088204222186688229106327370360854471074710804892547330897052307538333384151108973076302032735905789880482107806930863805361885579645761057623018844633724469611597969699932476635084046605920344321714425712773923034115042505708630495725119876770193866370920645610897938154224397738336028622288236479758761741488277700962489510182397714125693022200631359251922488938193736190554035615770084653297526555503049938525731285403824614959879327056558531969324783521876282827748273693948065961564891925347719840553874804427669092596855956020727898300261155209277910428226631010454188865270353166747292907085642544172223309105163560882086109904820627869701036948655891645399219118345402280331042182748410590567150586091536669232563402988633518464432952007768643087419675280937643264326672223112216556883679826461784773799624030049157803060204202615615506942744707751415699612697991889112020018520257531724731667342763016248578103288925588957286530967032275530583655334625146189699577629252114532121101739056503886949727673609383610760161600140322746096019444999594979560584505532465867268155161409925883559627385207077637152976810910648347980716144087277808789726535124904062481660472197728303827874893466324517286119254819946483638414932048962869598306068733566963690589365710036075371832280900465003332549451895453049904322120188516364217673353380493698898351079242738823401116782204369273267897176289052900722793913491300733621360460004716889166283482916451595575378539270614526965115028268661827758959898122661607881751724267012794003829724580908863980581200684691912473047962433350282049942906298689379734617033549819695545939434973471194757379757075609834103180496921651060009701890479059375973618113106497769154523557929449927850465326579260730807671345765865029635193009323862107225338768892375712210477835546187503180074726798105326172855576086282078706151858108607723302186836796716173007939855760038996928378655583021998119832697537073423903902551709537909981777451373543552410778301137715106908354935724496520163885696393828331150882836185011203512192635905462087400913420032908867884573358610322762654808555613827089977500553907338886543813407467982328583622007743023980791242463509493662347447637899454502049465865105148224418487140692473393504624165585734481743992819138230905721084882235926205995688996691483769193218487552882331045688426971807906897206412011258948396415953155910514040006134863689803300410077913718736229031809775080956859244043436542169929572517284190594443274133733954296303223783073191515300708542264445331886577340752773309300815301756510387598561132664967427779404125526454470266616909283631440646666445902424986897093042461375318074737655449457221896255431147366833366548611261949045173029357556767198284129574480585791471023826373544252707415472746759206753801335471842434058662892762390587031503691069578792215619529661735942596696087819400570044851976149808011313579686529299257307266080513163138433750866201826705026616170517489695807454139305366056428978373583107420825718157625642257394885586541942455333270836021679960477083195772348994613032988672401373815618146417419933582888125851851003573452380690084108851670384822597573358453759824332273371242637479071738265872435383217590548414039161349076412225854213741249284502344357782756293092404829217883259182158683915637578199336078132879823246441195326615476687337967421828214959111641482203206918073268749665647622017097835879227910058900894528715294738250934507139575906656369185873619981668003303308835942704547691295638675516641353685466468387281941524493238032135422770561273637768633001546553312177703061099449178162875941496620821749616891458140940100518841373683179775869161117376998183347548193343643897230466831619894091319344376712833005846268148660546073888294840353873975531902316135889033380330667378964181470192799027197674610146874678869227203102321637603678745198691400258791080025354503894916511851771879389960831446516405330895280875936215283363953482102878891934889816847121236441834836446929587826327112171675866817153075038601574967774510518809579132627923144462344961654210483434273916666511035444005134621391553046515006260739649020444665202414534646435187022672381915311989880688501310767966553500410383254183728688876509101986164700418730683014524064726127579026058693559451741036556030457056138221153316701990330358072390729231061218346168799095108155640903626023777930601251270365781828636981457266704987548870075077545896346760198384475584940469478412057822410457990133039112200637541437280099548379449079438695655528395435630072145167325684883669565640421615071142293602449007836280825724600793049452868598881978278076451731617513416052208717279647128293473188181485575352150425326558054469241310282081249746390190130106208424047402697337939310848383378581825080267219049125423944940865558698557089928353255747252044089318335726941045794638663495824240152999669616295760947058092692691833853641895791798437251934688851501035193131233006973567883201641609609375599781905134278846895044381392358949001307570675107382178849969474636104245658180542313581365134325040581167835026770301018417413988676146347671414178542565749132051248201226906896357960270163212891659104007383230877986462249902610391651924041798479296129014418848985782125235002195382505140434477396055467593383174140940994102654097605237006698261434020749502113687327164411246734564863786437193093229333928546973857484350573781499362266905313731758394375432403764197910050284485247747586528521594286946386079297224622805428644210294825978155123651488392854201050433849070133767904495820654612373141701726919984050286910053277743495746375278631317740030946526196169365526691378634132857811686346986445968824637437536206203243297676495139497815447749011706860734137987524744966582977900728098950003532950081035461558161613653054067782629403695568104819395225624204232904313035343812731884229211218497338488080293489185929606219918089852558758895045564074917504054481701335071389702036643511703034177845566286171572618308757598640529788258389693746161834363756511220684927438610688544093117677876604395786884846480346071543195389209187630145428628519212293199392095296030135583554952919585652426092253008596756367177901700844571391144313843100591576816750945810971046966000926250269900150969918699594665902472841035483788233222167208179380742011904339404774259207419318773749680461933090555489289297708222957632005400372717388364947431208985433923502109279158029573701222607082746086411747813641207884302948260065528145650326770273572224742108321901408449937697167398966420857148455973993020255201375227919616847688187287458154432379061124298220048334159679612584812052493812019234890009912129201683308959841087188558486771164536532182453655469963180200326776799924683682771542964390450933301733302016217819286366157171159940567089513898345339961863939706385945282106949066340750610427091309861673000159096157673025016682884261527323750266320844863921490521780705427626415987513939402330880934131950442690653526130339849628439841428332796169141335502767220160899263902674258756209539193601205046492861721777760655962753742168222146790958800567414347251586012178567866128396878666544409837388466154594613138961394355448455434038873399298528783634274810253752492061152645830623541728855023202862278248207258484440550875513270616752701509826185636600132325348177165802903681818009995109008071915302638510584809258324694548989723996546412321640092142681919007093962221186460332412149119166836259444076962355884143927805753643920530705846574316291035178552825881779642021477748156838234255650019990707530429547653902111560969392280410162474907353317099459163742920415458888251533395394580610474393326620155783207376805627912451239039872550793706766315108318053071957479392370250025465363971094169792129443088852320426421051707588022327005911736986490814799936134747277603590522697704012168576618749998022067609317483057344841308601388447314869705006468091940256971076836315553242551683545280065448929387357356764948601682859754109565227203848735121244503115316277121710583696565009618729318033699170200103526468534925074328475974536720474205703594513375110438395920981904270213077713064487687895444301430706672015821907028003495863515099282457670410349559746569594337109460411680740298361030358924023753533279060843264313868059430291605488748157620322862700927676884957363875443384608736909628371011476528369696788361064971755249923205409809829954674257917733373833220867748679553702694504219511559724435074234080913377388065913375258354580037835633561429589962220863886895030063237994659182869451775275505241411493026449779251463171195132901694667886857387143076151150602315586419168995764298117279059642720729449815024751872583786121090151874340198810069918189948238336383776797392393717580273020353143438103277004474158532202747765909392836254198835531207176054842343533926360074774221110614475622658163890580306151229457902057812554820173207166266360568660822238516258135048370947211753163437023975765980890608303129697375996347105457778690916754269596346251155276745388431146688588730504007344460432648005002950514940864498283129277439915995400687823606950298240128128370750736792238928359533944834579758059774284422128596547610785733229557244099430835367494392338288486622031542655344494560424009573700531938111555830277175332842579744532426053472232405170976539884733578557062420200754294099663874703860543903858148458714878046060838650894533222890305056772975829537361751079657918812441832907927327851648596678416724764654826337618933882305002968560631721506435206713106793181166632163062717813478069720504062961732869950063558339136829102057847035735318240847536820564494865299717341050353557346193503592503733059467040929468846882937002726873898885009395028665534661061177258150720426958319827024129511765297983874266253555728527755480232186391198490384410451544041866277274377878264838529439145709103322523294658802677119283397716793881967231212781151737920783684901152002823737595936561735058953249679113881621427595821021903091093491655510145277498967175841641679321215975084986915885489220856161178322865957559064625464738164997665219395039295062768766413519690371461988991168765310468034382466046307939019705681879984938153064842513583138859358923208965942008365924230846275860152729796894547596007010193605191387369670586590173801080905543716750636595435174653552300835695358480623583137862509900733983295462395847353305303445541899353841802943973303492046651424351948598641348934361020809102972088818887769727728928404317433831821761566841549933663312644049024041015297187265301253525147804975446472659113944230912532892079097213583098177798281781494412256886982041667646139534129765264026296721225391800301662812422951980500647501614628512495439657051177899486279613944840933617545715818997556037030802785379430325050136395047331973736629411215648170075085604448063151370635525842917661867122293019906463030530604614870045053589268623825031704972989879577293342354619880496333913777270181455009149670336230841243854099838437058124810202575655064799835513041239879654896918885092161603176649276021408037550570763898946059239330234075655057130529136705772531668751249089206273884384575781350275478911356707143515272896217240232369110756599544180271884369807386498513015479548147269348827267501891510823586373981701327990929181795064546989251525643677204864417693538207044072161853368710929570192136982065517692056799030216271620519365280393875939251741015433650983032552460301277808718825568316113321180096712950950406093249625527610069241754897401277327025221713905391595015566103649787776968101057764559521700428283695602959350067044565051583193307301765656968529995261016603910686549989271297329940236564775733036006308147991374574073992411323591712313625731473211574161098199324679811756500515982740435462996086677391717707348221041435134620234549567225931909178679115387006904030756850629350570878229471670915620090830970455568886240475047996516810904222308238889320914674912863834605940828033378659131908394010682979486147590988016553652029872509824040719673766566234906676812466894779463711296757551923210664343740870001036994854598528103521547204603684422910519967014787867830926713914252234816196229038326683928660582251217374803113786973560447404407025952819839523203798329004466598041393841254742880521114270387139156391989841177160830933829527297587622241447688852098866461237350010842119852686288634305000614163334600712982720474326125347195211911812612593026218709925441222727081812946060687888787732861961753370662788037087022258166533099328016114767048013006569852771958729457270684774805530381810347054250330021015755132978864811191129616907252415500287732148904812945086865530478656758783990938090833160588000405847229856266302058853903119377734348131304924636646815975583608696350253786073078028308002782218058118889701978152687291729997324563566964723387989642643189062366467398778349328248713761253106111330630099794270442219666112410377729946358810406976595426015206337374199510555803939999401356327638893669116205795131452572711266243633422990100254689093765047839042295505094259871500757969095390508672551726184863664277155360481255744431419815457700758535241515326488880461400690381868707207587684824285940202492564149546868065463029815711285285334295236312337279148583675819981074608558780374987922462487551687448706772959662670988740424556482972939687135845612312791647132078806287708566941946513019120533056032078877789644151577442395379793283783939873701586104359816211423182073703190901617186109849767131833784373920628896342308709302298126462262719632795907822563976147309615741997631773509210512696145704989958377921807099865872882483398480964740455613796745741176360055310437363491560101350353710990685916765719113963493888277751466045375479403691770206414271535614373705500837731487210798980810767460010489608707693572219010973989790363481512113745640877762799639338243824341729237189919732164926465522279293574481247460590826621566691837670053266721713211669955826578590027553343316214098789524492406720380830403406828331548958264190712142713578726502354033952141149439711816034018866732483155516786735328237599838219957252064370391890178535765835047645029612349277391651789475440109749633046492293808309889727325518467230846021752929288377880776937390669448882953273823048019182423611740854253311914793154896959236116217361348960977554625760217144505228388471996009160306371032111236802838366872629113322911670070783031956048871543720057429449277558680493212331937094998298897967023215299343769827963777310681527991973818973983562070559732648872236103301140201288772875533441597404185493239638862809433105492815579051948959762149843580817277596006895739106353111256954744058326527829477709233979987193382946270553844854186033446238309364171997968554455820067469377535066160790818621740598475045537183358054434508956716723248000628147154299445900441165727130404278064792478772781947607588496543145867522472081515179144973393508238099549433463492646007221919896295845079651072010060263553395549612945389411337618870150523818062491494470727319484493808608886128129291413951837603697870801652609945177507899632438196753316882138895035649930891943139982264799380536287135140262656034716687814132735591482076491922673439201445883964520432952901601920121452951335556607827437237971148167418205941149705828071622991509778704249068113867585250876838587541179338707699635673986605812311562286106560204579956818767472078783844483669997786346113806849495841377776446615156752697508865490808781478146820937648056386988152069345339413610203699879825554605364406795432814863098764826267694201170655399641915237334512532182177217137834163487847308426830639041446037703079011027961974513549197031668165314632703936318645170197458653621390018103047789786464537680221952989743619035144676324011891343827640678528636817235160160484519284576305353418504181736940841885594285409436406948747289349949838700846339983883965482871495944060391978846870452443872908511373294892843233642223283138299750352425427147819429839120789501091164690923915996260293673761088631952547790206839419192582059361204284605602119512016893158452935776704796209523358198271706562371908533537283484753452579839854730346083744753079629602477773234022697606853882176841708016830379463051683223445156755222917051534514342681911002632835319373757588685557992478246232574811249440199991274027442925761475189681462264265988099509879193445099492237249293378661465514460617395027143227993297848758448331929364469587216728253723788684457153966056641531071195164209217134169315941572378623056294751276376723081971525605760234826784384015616424998783640321271664533020578669919142300859187932376402887286465609714611289457963485586031379451401811457405325648535055952501432737967904178816969481391164347890901567416078746244476772496416340746414401633245848036321138786737137471537935896200126880796394249321062817958812119647124724078644617803634039459335493798242792899211439704026421305024684803201924459882005081877516490264509270033346483832381749284439073814534862181040585843707742263867178660080559479739111328870917748663453677485609577160350923237540303068467881798210421474314372511312927444174097683377437359308171078766153199399065236108424897895407331675187722962743084300059981493269447195666565614969536461584348612429408721646277040452236270589135747119365288500480817210936528915503298279867451230179520174720591497470516380196608992905342127926073548265179662157441444494072389171759628019672343522840149668084655870264452541233165274578458854590145281970372118502801008971257552891686705923394324713681302052580037300445189215455439697986772602606366581717934223301432979483975106974243260817477929329239455466140030707808797042411612311092813010001474609529107204114705889357090265528373157285669995111976940298606264052736062217256010598583566711503325057594906777562682784074292552313555533064352578146630069757121552768755175569499907292154673803690809635614655486922008748465972738437557911364554099439253483189612290525987790216667302638075101008893085207841432903515928160694433853608222730660830890113169859030280654023162886232073291753284194532187594205909719247461807460846351580553921777778685817713180900685271758181757142619546740194582209533319358093647411126599534127271946852678165294610212478562386274484447379338519377448966253009976233752231592025486556060593710347438541781239582287104600220695332429244482499544563498700286302459796880221433603346745304384539351417240895181150894694201619725075170990768106139513669241211329748599592346266288571878689751873150382777861952146269318284324312122230587016804426951011273229863810958138692242811752727395246272776775502180882021602751999659238136593493758839485024655406579617654249724570013399229197112273820085920845945195048513885571515191494549351769632530192856944472219388750872583693912914675809575807948536273617337134439084669214886493982674775995260088258821664194262619301691062823437368473906700909181276543919702706386863506340771091777216945708715199149573680921962652024317406744739831782148894735493124509300136919145032681042026521092767945254661413097940916453815417366479861336663334118090776675208938849478955849721878934221443937471629579921624809730561602603136085661044003359123038478580230741280199657487528041842940804214671428049246486471615534734480073984988177181094347383701227222552909126126591232187710210935886136960371047141018117389970845883826472016047475769243033882288004013455840428317756452761524099746936969152354534678950389853525036319120098069603354267511273039559276311565221081223762500178741045406832021137668267472038841852986803553109878783897562720067642395417637648097092288312907719475718671413646598652824130461261483406182276000835070501715578265660752331222890514252224069589857094078730972653643793193594607607644834461736641910401115956854757901755784765940276183863145589646608901681420812247265113423925585736543927826097356536922420129440266182188695417224700695935045490970942051866900676168946533708136822316677836807377873275676668075315835911196418537531734418070060550680199649197319099828618224839488590349172345080528799981704137031400123844033496910522611555342743208101358743829168093106061059588161797729074795656471736366154357046992313131956326419097134300593404733115190424818895784177094814433312924282325872555783973268512526626365950188507431682437732163097915953712374211251951463783130399122116398464789766993004536603554381415286507593066485804864123277408394140241530282842631498219655395586802776878246625296789588752024658439309958178182893651022233992055827013593368020611139172256812090940839439018291718864252208537288902534587984370643374398714998623940855239841755430722958212250983060263444905477443214846747126751348939588454455063646289295654563467254595774993462964166224601084767557580496486063866689473455746069336831560328584611198027225581890951099253035562042574740676224381272044012941347230349847000761470100072992271364361007821814937460740116269325419029717801598448714483195193041664719244015280904631025375310675896593891220782018065538359031070418738563998267374399328933597905761630324356147740399926034896137978956329753516249656427646373944540621923760807859136632883820029293822100822179561607772367087211562877966016751562931714759559285391553976857916094413898512417683395515720224925168127519884740939870441386167954886122424460328735453262455044546797757621800616930522188764810137964000175908312452973044557066388946490906765307135848030806347248223959872687459229142740496037228172454030647994290032199388850948376362208230751120289942376059851574583118428317651234768761198275769324160803852917336395930221924517215687445544974491036192639516963747164017346118551266121695791513923120153163803092774895576531749664404767892752160481733963310085239025163966337662607934291192041122506537261778755964790013745977986232335396887794576871779979602180955291581233188538399831361406465334609535689488244814833769870785377182447866619805009085093790502186353282074876580876663407038002677001395876355661758588746095615150787864437489425955564534874904997528831858905803155265961539875598519945074213669718231982227990703837165644907526537767841613020446976753181025729049635981024296343340758693053532503882829700806448263077860150670426402101179283980237279169153858599333994609020569094291330978981580399673169137471191708544415020621161284579285972471535127354908388018086019371763187374720982788683559611262321758751407360371158761338943742390747060631020607395545992532308224043850645093736642168740471190722349628125891457626931417858308534578680935825759677515811020142556710191650134286606889146178986591338191689625487610052717553792469779495983001515882095606435944795687265247147830002105080076591905069136871066027573936819623874636960365356180448792336711963610964435903677803869756987000661286009089727637841706810110238783275095560498634378250407293987110124190626811847588717782195756687163910962856131148513102629880184454839835633463698589616016388324516438337739925175615382141925383092847275741793531579740607724898543424384382453558773880643684364349620462208568177084296982344020471191361813682215677312033531619454105452989155496844754005958920530570270812362643770963471195042811363387804742941401066271871766461434009954206703556133362732534488319425223526646097517871676225283332817134241991129225961654139185467587469789606291045609607608698578516400507883618933128926303596731357988113228154701349703213729105691188635274337987464000987190849198108177584248963771314900610871025507363644799082308632208516929107811058224580700980093793034594248034906955497399937641471432924851815748529385711422921498090317786280905847193805156438967231509137891530348471925999580280050799979897682631641806709990832996209575799355791674069664451150549259994834149897951354376443615073878495970237311993240526764724517398259336487915521616198665538804116505671637373740872470375437939036617695192957295460613177618460647502931801875655555033904882550146711297524929604250044693657854970788048904377347860999426121212246912003465728337060868407699173246106978949106646543195068889585206971914268441467130256796909917908161843343953821576359323173590060476018374028271387912311930665217356382552974441855461583761873215681575535943102566846559238320247588359255951566301448338733468028772541151723651806439184542603290062282780037938508686861884600590837105869164944434545650668683317144654694489423491958520481878178581864186652628245115786007000346777967811528108873473070340738091621206231037907068582652638805098960059457151190977987815461985683940224542743719769048248289768868040262432578504078460446484041845351005170187869236198444496122152062906692049137516087297732254199910428180972262403198572191473967501393802967133905374141891311826148783437969387834707191356691280563360167565306831716340211946181202188998478234958154166682407577319765731900329568741580149128223293609928807855328924205287605062011826251197066362795080659757421326269879340926926428884695565957505962325130984536031532306445792555666055739549734918975207884764401952215093377418261105878027766306575323339240415793901200053330746689770490718955358184510673399867614686421760473134074559626643769676892192679088676378709757458562077951038556837810737304860143483249014829257669750989327827179755087313598536537306866016968165132389832157282266174767709782269046759050494659137413863367386395493417601910809384333524884677096548681040709864057500834779190326711629914415764558863978276000403848287428424438614935465158867157312719217620481738577578321941015646812333082742889505193499577296569017803125827128598708198180200186426405294086375940413881854720874887907438357580102215705375121078705356029312117031516024309631319026540753547826878251230520973920926587461039092753300386855055820939189946694708727128946595370113772878351554308450766041871254355100678627041374829158339574500601953400360215643624388818318923400263909244859268150550334726194238998749766926960001209655375782390621057005919784207705057310478568380069315479085201755944173155973470918365810434270916340942240606825712555855011729631042009856670150738541387628608348441090397994900631076865259626287746969497707163288826878287650057276006039939527486837006811516841954237948114406304811626746914327413021918202763722488888668107509182776598933938856876638249141831178001954440842196270702506708338523563651420162928555559700486728259023209876665133554382247699378109797376722404539201626500625597190560021991174937026626367175777192266507145965072522863464184343231710755108558046662172009308028251594362753183029353462788441331527523515948765598879950461703388560950548843052867372861737699961975296634764437923340661402740837229969515103126211310889489954605889054597640607449202764244493424176663134597059558483552492214452671779097213676107943780163081806791999511214238423048865784593722745067786924205554609583938551288172762367611597782177221967898750013013587573508739287901398940274989813430720684379807545845116924599699523722331916193710450582438331040590249500109041803401970778845921387334693937040882422673534240840300240670329462269939954730268339740474361541809274952840091143636789094535270421186875169039736353679517354805524154348042084408537214783558442547830136586110624022181461429241785740767995081970706117957561276067887544131610270263438217200097407301583442169789981382939494169673169341228114321636030496792746132475579155579694021374014121014941669639824526596040634928206453504647636752650014126074889187717428147440309912327048053987892043958763581439558165031706258549070785585852476596980944377729430859086793424810835008669903592920983951145721635325977770360111295714112364880167865862596993460543949803340337085715063709721466063603537922418283198257700460923594800076036476209820480170159679881611749306859917101713685832571420639446628811469461234880220282746655244079793620852325581796660182270165549299191417764516474311294484426024877814784096721509108082398571495452558797572746625102777292551904872907517964705249288180336154540526443809432452388250910224093705695156079544652302386742972727211115233776276444407765625444383312501724145785367188586573996312241813276515146767014068507873329258839979072162336953819428321660420301041799946194040259638819256850653598158525182098325029375468855650555339775626524451478472986955707968676055847263878358824468944726006357427797115023184059490597476310077984304595065717526652102412465782688800099437473114128758546504202362794634858293380495477584702333377875030430490929594516445813997128603233413485815261617895030310176485129031827815510720446160089346731009662536582376733680008163365158131687808191169852996413071522980899268514118818784018357754317103704974876077615875614193200776874514068560093480238983908948456609469155729635313084418737547160664006964332103271708352761448030539134972222035194768854347094040970503766337657635495016150922424298577016178951188277243707539790203100313994363178250130091787384236722207235930360785780969007683399598038166933500074819860014129088506928896966351496709122105552840139298845183377472444428045501306850783358421322409090231831129373098932632245099680849036009242879291730843696884086669078188408125090514019741240258436058125375194927987105325169813406417713806613801171934944786112330799372058399951998692382644779528438465981904242719186609814084264991577460582052634846586474461815942453066079114049085966008721605074428258654273115405978677059649905951593129490837609202476781508088791473023641872289221966440433903953959993814896426690223940885982870359710427761530652001864578890458500678491727923885421530289247456968934574042028303292655217760376095226527543486863387172616154212754801841630722279688659702990636357929947788739781976343958374253950205885453044987562887325238154337154332833725790018947208285198206973461454885411186221901120698984995859290712190593874991500662280270813947905380923280399576835856803482898537026288825489985435884695146880531881754409850775628092438211817913627205506094274194043565317087856195471110064890929050504425768613177030675539253323220543388595333620803008062111340845665073695096736477105263081490375688360235557078255101242470586184876719373043024640345099949633737055076217632539481809257045994633793233796373670363930302646190362194861655429502154514273690063029083601646899185842643119364587436381639479062712253075006093187706947299485265027784884678703323007391094821094194482195637064668183397548401371774884845845090246519594583077521084424583277104393853452900273266695568173992041476986801460281653072109922852490355782375033607576981203011736320242897652283292591115556754977411537987521393250477530870077474243872472102164278506283871638032619432376135609869369692374500510805359133077598331477230187517529340755822158265974708890698395848159652117567892458165035666883354503797884062369772680407201121554158196784175005919074693464854596578209480437045758290069096262426304130282074048392244642285052545831563484870407320159499382410502440041096775706839892289125674956900330247610998805847536660567459041717374159725065692011958233214891558409082330616548237934359020327289346596128786845529691741134063226614073812165860233723459173905915701580730071742002311432489745020104318611728654669557683489034331318478627329298031603224073095561132904767460096717781987313166004799195610118432893486935514843449665095873708517947001944570396567160733717524805926067264481610018727551807113125752732704785480353771980712392263203229692000912354735315447339338378052994844776008582475886406543548842527449103741086770249024323776155948000975692165809016863653835092609288682352591275053427456244942157292507295391494678908879641723769718361755615564541453819318783879959296775411046020348017240331405876412258087222204360631404906157988327619114728980025663352650333917461223684312993018290374547961613523204081461763624108624690549949923890336160314577127804758707249981409466634061981230863966024505540568331105279194911722772126061364416969195564379212364118307886798665875625074452658685568184146990184516138488949677403302955077407052620795725202052212425070316615295607435635314327500294186785467827200935167432204894016513687830382205351689595374975869330807072718923564435675833170046110783818195225581437021210675246336878320767451119633747955191289391386259776451649186247337169777209410851521399533625675605603678868825865495861220932682913931506170241954108587744639060796669488597004203457405461194209707854074227828435579539056659294200808078210818153497478844179496583861850499500952296799504041918881098676445225041294017461033355498590769241759257015066870627704090147518341518545827824421683838318252508697343988548835031994059550705434759964122728435446401258494679434586955694594709868219217651163487824578137224224009201934427034798212504814928585269223467143732007966707615229738445206621605783257264786614292417445616670573314507005034065017383042471053580279329844018203549946334240854457327026499247086354802167024352334905305271930360619959959577846629291641727607135950382439145278512184571311600734072991612874386730261447954909791016138922450919074804996927685912002283443125336485401006343497304722572083627537595438111123705719686133851153338398682553506997578200427149492935948179956622254062690042329471388694712435161821021233241312175324769955172281103517897914013775353872927136861756383904970704540031221188046089652664788254916547992239216280590815315434711303750019830615506118039221856111264089351563472858890709228829401965202816446938956039641301910180863710033748824148646803294287687199142774070687477771578048176483529100515731810567892413144189438923226870676065147762069304311477230585595833906011398960534134638293025735832426558550244487652621226022939806525617779015915319880522269284602641457917879166247341657781602893004480838478661998425364434996381239301510586814186476557294835273736739024582043993407411953749481776570798567247857780306764917364134232251095500942703279053088817682691756430588162793746392179174044405413620861870268084594549848708337214862378121458549307257974154998462056417806792044907873099138117705588011913968782988659360702702369540819707150391514498554129139876995668178565653356269775207581581915957594630377347682658907313370161613190786710975725736105318096342886946338802837717248173530548252334139735963409674628602247488439177192984491380750359881395212572264970194847696023273524686439310186333881511393424738342634852603580672702296266435067170602680439132157139295382045310997757200088105934361560411595244992647865696702821632287125563534227319915050469885110105646644135058737390967245651031846285840394481901190154803444128591023778749921744969801462586895202813244634959338549767227392999829783075972482124443051880383191320263440926230520998975595068097138712490657730862921976625526732118282575933988010177866059011780597703052691886243323476234643963842478995779284764297580504566491690499419133605759235967803795624402158630522493298365271663880977286603738615950822241989763323176370731466519631335067079963027725798772253912421386245786787491654752658168161509129210223185717753164760720227976301815449738418361600735519759653870859597539590324629060290937754117655106334683075736506519078052511695382735583096803570748391089547813437905924143976521768111551100397795879671961319947277641521300356248243923892783765968718454846023218647150446999501753576752314906605306682110776357840535191789673317798563145213083633024620616225569604185070793256045965318415217468542640773974771820409952007614523003226089817648345367734021886739800837187063779300267505872399812156438378599494809482230564845221567052450763368956507224041384633230185776861420411556192394692248506925669903645011509767867339478893260665981565549422588593647563374780209553811731798916880473537822637346881236592720415758104413653798731384414075493605731045076505545228165165982564417121112247780084067304828816684387561665085826330172049791776229417835827552020592092937516710946235627131246220389989622932783108773372057205150306860187125571549727918786119067043356905074515462361659999562764826311876699131931112937822089575664055375371491843353565604779696007537561501011430354654476211431354725399153085049185088354217992109892346710107755459069156821692199579116398965135514853248833397502949714249832981642297974253309867278233985057070758277982677551738563143426783240267161105188948183850479437307268848802619378130740620844978452864135585840822679853485364731467927780384483162714594966648772462781803260738128086485392528572458915596811799992021401404806534279637744518720564336933263318818037365471145628325645065165631004619032934683177059245167642418636918184002812889932253404589106906625601045273698654464728254540193510233325684437033179785560193790614518470881373028138778121537980258934511739125492565343190433077425510129672823507193474837243080326866635855402888379535412359263333476896265974817935655420599962184903106756740308416726633462472740594281121206777219769316301378752459376607344204172908334121908798727256630634286858056935904792790376402796627442671248282056581024160868135549421640662351163846046622098173009213501362255251587918230562104541860996727484765445606502552317744258013786108298813279690500054858930190265429265485530813503536842527647951957856974949470510097160909266088264378507055073138222227186202488136108001182207374190121475591202426558065800022649306896139575034856622456345535408525481248447025626234817909735144052817544928668356365776918512647344172368247637070389739122484199771269733429266119537109588449991637898331251775986874272908150093361669624155350761829392917338072044522241864942284616781777404614208068859723926347221833376822462834604028634437112321798021770416358201167961521780436740911891062798154038452740975948872605787896115074630255240414813665013783330027942409972524008009302531018027863190105582816615741112171835699318671448447953622512704805234125459039991730123399929226739649895524772163846220617387644131984159953289044040516401998378978632395769945639259570842479740336030688858518156618607940756214332002372243954586021020178886162541342837073610809493330524284225998038151921469998403034757589022148112433377773461758492754308368104834972583640976744421773102853247683909562945053205194186136989035212501636503389264285242693116202992910360286494131506085658384759581779783237523287406455554374786868363961650079322158066792734274024741515600558381541358232215469184449737940564500947914881100557502030550412272448071151222955950652506078275887230268021205141800667074318165559735842043613422585492800940300440941657580398194328888161750761664263588292490067567004346674018005185183588127437866968943698654366884340235884494313891188048259623134591586754860004620433234247487444744940147826903902126838762649638679047471277539553546992377398867171948424635863575200940534238133999061197160622045129033547966300315945425136980881108910940111346738243809894095215366069635786103631632133762017381708480037324650323700508465850556005966930999989485233917617456472810062374682911002147070625324454703378241619126339419601160043019251072609226446747909443800901991671735348479286068490645672600475377508901255124698458573073301845723300128958259870731979210216087469105448430417136011151113563182814146668906831280445530915469000672904210020707015831025511965229325730141008203589279147285553245541393465882941768130796573587952317369148028627683665756559049049463000059344824015415234927119647369381683565972558141889527327889539234321168642997959216959651307428176473473623547721511885471866997853577071143190518860792684809998777639508857400899068570649641462285875235872799744938756645456716002690539470863161551392428857578129367993983517483552610339059454312539035128957421538677744496384640067040841529088634544750981207150645725811710354230516535384505045183860148772247628499682862252940282770912459500906128938367773252337567393259452790113502871085104777534101102622578236726148521106175979056145566825872871021414973236220883709109761908832942956750012227659111951478475721319487291624250784235063328516760451795880187866489161852693450684594320954111747233260378418193582039241850370516498781324103930748840392422270224833843718536343605333377302294567504120936770679778989345442734982132144998838365667370951218813229130476438898067050173843081135776086253905255576035062070413158890778200113668449992234800704830703339565569717046694424878863246840912760181702061379521512584566411795933435440631033518591344957232593675645476840300714001385620816607916300400762561566873278181776517843293744336453170007604109549184567870059438455534881681768443311722305380909163757069628941979675143272287642633189155086042382175430288078836558708506545096869251910573579145636850385464602653415750777910189855526129162002531819519558494153251318497839498599899353900826758060663563313813240107345169652648325344364938100372080416617691687161644427574611473721492185546034313181845172411684832118663196242332865521588854433738923662477952951954479722935581921953312276511394576486396052227643040357277872885967173633992006226466927357692142395337291738437392416135049722535810659417919219178933355408370488499559098712269405718269576586023617298835042104827768954758687773536153469049197589860760647025654750486053521005491391048898256618090737798373372495115186270737361366899832328574874082090015219455333341110844273888324745245681805411809927958124161900537888092260411849247635599536385240200709108449054042466228704893533266826994629121496487801087914834072966530132236533030119006235946230823036327819497664234058983174022543096573117018054711157021356282528933011205903078185483351353579031824090318750519605356009473188500660691743786067046561470340347951827380052827589655042002764021673419205195765671231173664197531700027767110124953667321671431897461554841932301683839611598577347562613365095567836553573911207785574568304200979668620025894286822500459154182423589315414368502170939418031329070889956853180687745302127235756439293535360457844580239810105352813115483718946019153689748865497852871615218536371009648939022320644379628557456554962087298418321713442038307528406420050943777461291252508960643092598128602464898842249233486074759964372574100658323492315768431807852460225433349505474827734726335586739702587675093497672156162663144043759540733564870377134649628334193071294742692945383854659700216362950748001651389397980272694558685391149561478620788125937698599807573371735000298548152802560203318793353541305873897441228911521177264244200194223831660594538322276030362496160466625995761964734091988920580895902745846199852192093261106784301053054532011914647542762084401764438553654798137252511658644618977634519684082237389889044306119665670394357476807646859753058952225408303315532471029490876864615504825031101522836100743581691440146424964728068820495240149456181420848563176255121038753142009491246930442734303948807307229109397091194007509349601896288504761424574550509813806565246530143991023081531366548469473347263876516006113865444671570750750198776244375454013268994111119003355713387869487132265436589127989730346008317954096599495952377652886869725474604847954048326832680762908991302250828067732582719795769910062578543682447891660063452395365797476712156016183318713501338700399471821648939272893675695883750754969420390225037991573757906975723271072899914403164051798426068537942992925680607768996410142791296479975002381720466248710175833688892946227917342792841874429382506708662901371774955754908044591047985340695518122105515118159930970277298259864542762212555158756211815553698925477407891703215158956513062366238793368519249140682326223002075691012783680085740121009921897833572455780786197097471756122087858094238478242725487668865243513358597428552656914861919603823728873711780043113006058635398858340759679837769853218271937789424944230079226565591316817169367780309789778493097353890443622255666651111935039289738748557939046953742910407659773955426854263241117116055707650405831492727093401780786732697487224684906306225753489081976321310171043271069964418901295833823904500671319990294531057920468624600042190533954240268284069132041432062865764069803300595547590260053309826427006802327887525577436346315124692247223834159601015300834002214453661973435888019584219644415954603201398344188020539941416842731601187180635249134474341225965203045319889171623247512540219956482614363497312683934452049856751419230205114353978499166475430921600481590520793866795357885785196655555178257836263449775361078785449062457161017997104955107952596185229181461896142235901219726259634759833851236384806443157522133798549150262109129173844052081154768403405301692538592835863686521190375113657977956362218266751213141735591822388807301039211673698888172161113641049006158052725149655483209766152564555689271681834214289096383672917758115208305270974720904432126072200085398053204797699256460833859262306084576997329838724821430458488831216490717985973407413135087279229125316695796653375852745273633559533996948019502878141003354291160479572398587939033988333706687843304278413787009503429482674239849030163945923193484729079144079082048410260508099691700690564903115315183723194645662831639309453967062269777469938942692752397682124337256452625520389119603966544030234444338458037679045379992816689991309030298240573176125602827563253916751885981807458344832424642698473975533296481798102304596893591368915319483486976515979707832258443998340513239167932517809960839553849838505993462075559091663823141609185300089090702948333985274499144974602763811941625690346947023007630130844396156500416749233349709248249196531304853987222302866352464873973324250305237065323807672575999186952198092849300971307485944205540088544826657411662853385515227267592560270195609851614500671832000358196191062349628364312715025406101556538466374721473716742268292408836572322468367039654470059367020817857273953044153275847448909522398851496584108016703785714358329522946081732528382490796238449113976651965075502205640540794506986874867931405446300909243683382931536938907521478108110475289641607915133170864295972009565443194347299667131517225323974395430361983351258751309121410384557616873627301433138957532371791714302670426020044546653375617192957239906163480422020218527238704395629184156758239930497503947240136911517480642941648901881196914864691096251014226302075988325897331399824353674861993592180407127754962499894220661263082961286064685733823917972493248134179160876827194095563999514790828318948522937154255609001784369109954501465406336868623951997056516845192324188606128532668934752154032605462551326220395969232216585478387930824515219681881506473159330078423358309602734142468594741088869137209085518098248340042051248801826111845526248559565927432213457171067725770635559702324041091342065176422575691462706129691930351456943972643878161938881184711606466982799656086980162947583865107027931544760147804245158912325307887291504641587327521023091986248153528599014916180637588873437369584127780738104950991935137568005864184619951835406298458306129652984965952795355481727699725931949699396069829506627369687764188065994590530316580292904135804112903676935766362467899970613379713245757859335963404137909390888178336680969502455889501038139571465855359340653450278980552824362055227647540308578901977654914701637993956757679563875294519163701876016423776556900786466964202749764623821901754713553243982004570497689596062151557728504156957257837971178845064309325215157061984811353382152205115331723276191198643895652023063404734883222840220868619523676037436065834351215011838544398711563758953671014411460871398785572384739365710026932283972675322348308955195987766895690410259687336571891442779738553725380838902727615738585031502869606700378593723306142212947914948908928409634272352299535110905787213892350983938098408609928505876716315329457022663284750863299097919473124720502013216278396715409976134964101394283177438084559681604451156891513916236232836937740926630204367047162301804355757466457103106277100725700483872159000215555696565132540558211223380777394928469566859532517425946831791752636908892966355847630585074861993882678207389773959267642292387562942687732270566672591527113317390478875058147307720184417889623179257272982848506818006012163424706334560551500428273133486858190131169234070546061605372807490114722238902623836879909167668792931703323625773272354921456093930552056659290786290185897925212669555969073458642517432460304121538376308039861457777135753880511802118433979380338303897482312733260584287424018389386200482042581772128532709393766364822600963677807180492901956724479205191200157767288377976298328837590377765612158793698108964426496642742956449444424437318668073086169166572408368569628124230295045135476971925988733250635604268934284105592686219286517913415853547975140113910454930691794912261136697196288158070475430033976161355522205894517346948953523173291494108905960033629475442845881359479134241719274098372701815585115651057219309434917756681010988334073499054635222005162554761785258448559938916620556276758248415593032663811226945287873997844826705842772307087083409740119950138067872376814275836124221057825554079037634313712003690367812134045731627738650734848428060349247146728329384528536263482982448091335418609590343809282418962632968925556729359140882845846795865921104573133763566044294990268099043409538493305691851123345065920192196818565468360243016393171623701091610501127548381053040082205793177066064022445106067925876751078209822826462977467825171732380495539910754943941597631214204382284864528819188457174453602486842895688833777450011323927190850053065432740917128086981380030173023266553322037207069507936505258926350318572702581723310456191025656280491868097710006894171127688939974058984092570211687135814945626263789824985209661327978391196531832048441535301608337064995931183344072671903512344298475109264921074490746830497148566750472575037859782182680788712731425385622908571276306465644530733294303935873363769654054225169297208129718344184880198945872212835296504296027466871564631372364742512649236779631431994145827983999443378350696501507755354709452081493436717703224113226461402018429889395331149912334193662379020322647862640756062216817289912997398297073887574255719997083932308575787031464934733603375123385816101978346216298086529623712676987489490898173234200336137929486647251847885704638864463065707428393804192645479177960974929186331038786226817663790791244250898907025441492737246986362784840881046223220895267317559916472568378944302547461614947586921367763516401739713761544886713823265700752642791611859117891515598137020584447571060466297886108664532370840320852970544040931170706478053907040033430996561148623906950986443300830309398092366662510361263377617770553644586125191136968087935594643136189132097460664557354624495154461199627357636141663083751498965046860596210791474151377762433736938467610682882561718494062377420884453511039345186440563381145980544389098882730236057582587526810954554022740271786734073951532110726545325286695715309376570548884489540012507075355169202268037891338227559186049625015968745046922388164226758238199150716707933202557453329709100112646345215980918427443086236276795013569188238584321328494659250409049603203537897122666395443390287899823255960484693289642286268554458617382057900171152816292464779439611307755831585512272594298411425721639307185741934899302535050665564131532299438205704523599770080982965961756639912826446818922136116786472674730121151973848034667218551400222673351454244731282647140364127942985462550751264370710834440366887490129169586983678673323750602157191233275728315977372599450919499091353989119981846130220152245460399013472809031593029067079242545393470259511030893934888914861257342968929352764911879096133490149584345017369077474279785514022720592739446483283043301289538750580939726250457292166965908273659679263650123715093211034305038484321111741340330685128753966028799671875167589747968607114323715949176382027505353487947809809595465229786720134820926145430927940895065928922423913570777042334600940446989945605532795246990123331165548479184850718957882142430904414147707636175063517982786476484844063990912102279749936424149016727820134811561792922568053808342448248593401110076917417543760239544056278077310502362111747216912387547161813099783513701463792306504930402528116701287227089338041645594001194593859414542874671139351738948843845559443245702960862532463269841287945310817035724725353504973464966202505450587126408920791156351533691632890924524446999459290423921742341639832349855717325035468589989735368354673586241351668452909236047710316502924594117949090902988646972561980937337672792648508868481744513213171378627122806219348059967684541656987148919379873867866607808181672247149109856048054371312777433368154384338297712009001312647725584012876633558067748345768810872935035921968212006976331979536243508901188769794202492173271961405338038004084858271910447875357270403745207075094276509956071237096472375062966313402930027715511481175493445048820698778644102776953982080477744995224483435321769795263064973385778333674034127318816947050285716949737410767777509439777859056401253187360058192544913614439779844246627064295749295833720989203077565678526860537478987882380254838456905920560864889244545999409813289109880923585602156622417377941048951509233700155446149212217949295706795439880862314399844962864841680058820244754255330859616638695754246924665668446935341032513144983221961510403037972122768577698065466106585403781197847278102566762071611536749463762704507040511706994320351889415532687438039318271282752335367912427712466332035535962372425487649340777885201909645741528261030067834946063654206413645248147103915839616993692455121455273641761508290268123731628998756290537195992437919347690214183219546776036245757210228358495298448024244638440071675316002352057333125169803940472322398823072457259578619254652751772592073272181755914688555936560083314877331607144430434875813118955173412422416995216760934089448153155605323136554407176663299690251669175010921827434883670812469993230779028605323678828735037789410483543854387902050632111874923062069520738868084294719939430272246307668346852483461754474533920484880481820888606883968935512395664159354392414725603140669195728642524704143808215698484074606262122178174048975514934849388024267870598008091546326046700134696841032823182449160930385709446031532167343856655091997393275256557331661296708349475169378174963531855055018161477897748667974112538496897483598051590890866138925005084672614873889919573890626317047370476209862604899920363902208634414011833773231398008051024110620197823842221653413294744495358046385130953270748921950708134131193905556362766406031527821171991249228651191925609435668272859163936096960701968963468696170527997135088516218460995793734778749603647904131378954973747119951810743984612899500120650348067330579895239527371663111173640048370192522791943152999196686552569019728568666112715072418180834818778556393349068888895745416674245032309759590847754843918119080949390200362681004205303891234436953950405792348400663128295228663860905869734844590917924116627730159410489821147056701065023574673426780148268883811919809638600386998335889596024926707620885142371840374777386559506331748847145257772073476445864737897195816827264095255133159659246845445801097930126414395676032762936312601698376045706027828139752660797623375303640346239906017919585632671958032424261005169473354029425051981489100593502184603081212278874202951827561828778036638962642004195982127404280416279722823286531612716764473708806377159518150846956152258703584196945501195023499667402770810027124057472948681220280126083429477503765580557807837555701611149473616759206134223757433697199575798810429283853378741905713286108357702643756829305748162633889969023351137871929261637950117232660444383317822546233371202391232055488993881247533701332862114672294207729329323830576445577530636970098234629231997005108864755707017175590992697449358277744923985062822509163695662012081445574216165447784077647507215861139522786174074846685500048491183095332236183514585538744644305576461285228690020625520855516885215413226281833643901136834907350346256321834315142150109054674031977356430634321824519726894097949625787151236524228970744345717533945075786104726389673051967766265906354928929365943847821888168136863016246692340172166661618732069016150381196599364717894138225625445736050485786950453256964908737819761671038928011411655268273608402758747391874975906003455368967169107023174682350173089635298686946319826953365612936821558043520411263534705397533676188442752197027727673154475008726192242315923955863834032381082304435149206642941982961446624108993858742443077443208223958380492852026508215598752872371657051097921098867914571821338333584679052932446919964404538011861418407664423881133929611923953274196328608267238487830290791763654357503723401965213298894873037364239757338754668260353231035813673361323888751753170650998611072661968845780926334312196574235115952811082902792453590309016244184966400748253413288334577202457787580678519210094075172814044242122341941901514115922979920083221764545596080969682952768345766386735760741270405782607954705869742063707587039720723103497441683903113467514469969161006605953456117906193203147464740897886878302934292506021465982568854963537607357105173632037176664576414338591026534494437601613720574177980885696455404038877222799434218036520188893744073314476573450932453901834400144480389525925392618618481464157774195005957848566932596113880476541667436901608551837429068981208761122941275893593211633899444629367194883430155364025837851474514294594806672151280575235576269918621184696727000127721132105499578090655576310056121401566005447093528734042723289361435054574282696609407234476825928834638000750511202245933885230046626753646960890129571584927793113124875817345176883183909359251004672612517059600958339761928777921284405568995784341829850791510478138967565494202133885912857544741863841094508394635970231935642536427462361903374076115298682589977995057614951071626470754115073605021068787510110924315229761177581785957660225026405537841640261357158000103823740319082490662550530521205734784460041910908133158382165114465961166716196325814706118276218787945439257031051445129791298293102118471967751262819372132662528241299680001230684244152793171435859889174143969724728506330396857464786636725991813912574601682235484131079072063181438820607730854321587372468670415372304352342184871333426264623285838842914910945372810929802550747724131360902381226486410551513709162143890939844923172893238197365434439772676899218514550973829332267882956480698504362470319196483755833914453686385342553017640653862820676772168538556265083615590273725751417710255991182198784480167990745683079096851038057985082251994010616164175417538998913469209184679190928059817646234812445550680489944940134515186944672194912398364575302157959007806876689034366817627941874857280021834498569873133544254293377642090600065336600517219960033894757919930484531635814104864189226934325903666972646410427230103882999765634667379805455747223839321398889623223319815589112452537941099975192317535098418570969788026415335211670582505887171241196516081601907337925608276674626887061323182554937510544162622476963506747274300177942122398421210770350278396203036430372113278943591141024880091996592500760965533699735345712420481148581670254163927080443230211012368616034967285002892386147998214860681020946698016737229587083956186070302831500689949767683040668704575065293856564826562129412231861037201683773607119471394636513870690517591983876860934840227114213347700378782925320093588126380212087713696606565524523346639220593299377100399565453676530649072456539323712823590065116166827762268826164790215707809419981899191041272323364610474234572071149545921414722175121818936704126048811514272236327430643629342606828928920251720306733123017632108723037776532644050635350237366609809597645925787485849504223607890894057442331548961784429593388138848633698600724277552855265942576240993309261629265329484620859542325814931361405131637903179959675168496453008203589541335684402322377273187614600330387973951534125819443334720105962975046393959413463228367693679603514084056972720708411221298452339029297857708388235996518814959773704431529262421605813960114170605468457752110165033898461047023274954009638277518259081064340240174641580171833063991221309281520378058906870119750291242053501923819828375722519986638273554885528541092957843426734845356387395190931003694331900560759337542632599334737631609941264115586694111196759873099060972024755971819308243348219870667317545022216346615225386739446789688590309022082714211489745235774715545290523493190282178868219240761759499761131246659708022371836204354321557914964127786630978800803837138894209130719168444394252939207115285358054305076081924445257769893815477337186533691891140055950526461164127523568320326028238299213832903275787807811154210826344336342941254695488831436994261830531497741160168081944212222015699619208342286471177300468644051402717552724640446568267671729349422325290693444737258830373554456546957629606758397595409824786761994480933417057844124912064220893830747408885990667421330435168078099640027714908899192683002790565219265311083116106695163712013628794650320151480277968507337353162737468774169343008438910652109949081900554669544000199098918955667979760290404469716686812566929203148000329732865798653588976243396052719517567861982302843444815115085977981001428138242229832962255206952448941751814472024665147061801970516553173443124564324206999865464291823590140804636949067663452689945320618663487557511517014970976564571283736813195299622506181990259498776315013794184612401351330093362387053965653535479893198123321411982161549791261969187883391566951064638150365647937915888638264648502310118446073879199642971683002324635700562235499030151784748570824578233432149993333578173522088753855765388806034944646022413198353420272425810978037270601693126644612228382980158542316860383409414721191944066400620261529963698102373569865421979819453962713429151668366631478176916440979157736189936732084127701424844518721288226802065071786137297767049917704161670334228925768536130099874493513675949011369756162992944305780746531739679021919603472620193690851460733289950446797755916772545224683309418971583790681803972695974872104844155971359024602179515083934062401359457672560917471712010467739530075913659973536994141061917213126947773809109216880328882701049374868530280210363563159197990461385540422162753248452397878644057807116294496712708691054505914068932329854691691290471796011687543635825721147970056428988781773400342073849531462571788788080085836323568737603972941336591357180330637540168015375439411151945039474025062365476641661657903689786479286355291796052203106065811045046992410573907893430672989738531551305400054280850683585998598680808515397270518279766043375804691638495689554212839432531338072261818584614685316615413439220358101885858332283668865954038370046067294963198085372041109694174004482059771538001434970092475005920047941764990257279605782169644690809298703768186647442914593632961425420122241558528176841790627781703375876389494452121064828851510403656618445753695388719183993600110698702738613112536834417650437417935370003917046708865000858156845394789767894525528462269887210321667943144877599678574364631999991905007904466971280532223748470195839035098822049479463819140999969432703020600958072478670619668070693104064030645176462099596943946305242073777986342437751691091401565088431980980698110700851320455086246395957581740102095241884495797736997032158719436844272051127903981551433370973822918960710094493529209826188419750225818256889164409216185927077578397093704713636746065233409007740397034740698910081519755465832654916619541885676749504303887503132725640168187272198880128463845835282224992783784683653494254789010724707319297710453922235071915141924121130716868836434188577717889216143425502386624889856943094494232355267644517133158340993249379030859777726044372464096509180804172067951608181178885043731365712809986349194047277284822054200817211038393377273444625325418180780732625006908787657389874281666909415291329162325219353681589675446283717695080756852172903630146572635391854989917040946958091096525285271303514467277171062438212145321661690773660281055756602436061565209253171682471353684078120004340875642005916183222474434704825900895013252946068470593899392774378731913219704493064999365759787248112573940185833765328329336869869465460707820949036934842104661019852508435301256691975650847957040527541829421337437460657759563023862964984864061537038334354873277221205290601932187825936392179582557332671340825858009317701096504492396840529204230276654886186977950732622895522686559513751296467836456268163919690871748525058156475707832371814862741167378399975649094277827797725661883051620270686153151392692503823083561542222028961713790920620869245537890752788071699779617578037373226514514148386362413356977276015369288753705718223999756436465467838127514772668381655971661888008046876549117520064839117226208562722157581781384906628093517358218584097498803200479063958513269144187898895775429780226839673974782220150071793447510455198229757570639287176031428527746066876919759147497890436986357572924726203422512356685042712317811765866004017829986736365652448932293221489324560827412323686884532981649822601018984115535207782088141849003914532683018786919475850477818466259852238219443187160232185968022896375637728786584403972428978433864414464738758473465425833325831923504952543822911540647047515244365643882104218794268222660452928792728047549789482823000174761944457535051150800705957135970535123304405733709577642458818077679174692382058930824815641534928873144557550970755121978150175832649590237344092847872373652700064850704015969115731046394470104057822799031679838276533440777606765349506626939526630743111721791799309957184593793304528989679436012767541843570592613179896374433065500669820214155480508203934392226093596079565717745976166622466824201521168660398697914784891632193306919898685760777301876184891696509383662229661771768832462063906452888506165989375554517906162045705940354231462082872716823474162961885609422893764832967920351419460777728275686696890166161552198675650164809301350509768799567849120584286934104268146266118169196312192260773695533455735656557662685018600784322333752629259095712716213408793808571472874157647214392656366580077222496070781560667780207352717045016279775271206310258602126773159018728581448207617090730772315983272364698411364925329048588241787922365109878104218686212449633860836584188014185114588648402763330011586915227636661487900053435927708039262321544499292687753145412195749162785234578137987284767858479429735287117292468763647401492302087373045324850906622816706109087950300101727998084786147968741221686183674823363250273284275717884488522542316644818713318019790758979167570412586263988325077227430246950865413295592893380033862162488691416451157370884821832246426144844581143464740017060078983900992206426869991660893737055334766898788727930333114690475998571572953357646603540201559660686866961427060772670189470946912387133421166405866129345109397267472193914365865099243892140541305484670475839283914341638005939753099627833333836713518827409186051143375029081515267530653717184904062206377660339971453317343175744075793222287930233658583596388198251944327957124933734275285333563511696418197538273358721278998447590791139692965922516412945444920335087669192617793934709464579231569363142171478374305697707204662943194622050193137448308467113270666772921174603516320631906475190653497256714174357346023937938447983998915092402803048663812005298340991184904192230628254206902866414036770450322377131890375411752523539994246625563318656324843212023978407362647132422481438485654919106636040278397671136534397767327465993022433651856186364922133214259621123917768061412617543336223657525038240248790001170522298791079198403064287800994939994455294184751587312419070525806007063669394988606628272410138615534525861211600049697448251612995631068697764668492275140836134162973695387932044617636583073096796666606964117497695239771648695835449124116435295054730515377777115106457138908751053628780515067054030910931434748983314004631423994849764221389801457991095399470339468653282367951147012087259207105232093056609069596433321256111080982238419634174939043974027376789048147886509549026748342562707643102692794116681660467902717486163835392703699516947106745446544623211294570472881157715453721838617323675231473945100468202060801459272225584948795651466667633153997279944158624558456310634023834325999831023178268011840099564133220666377797906553796960488110691971887613794154382431521380589931300510216407225370358824723748792099648959705582242626444117612510549148219684869324749621292136358699159105676898806487204287544415049758459884214454736725156862910812869712723439973260272868183623458363129283903744815355973640681255815034364659834802769347103175671475988076683349678976222541258770138737144400422518409600699741585504983699213959432926613343799976759243868935836026374721155789769933007548047711869275420627592195301590709275903981638679448476493852272976018742577512513871889059481032099882135820816750401096609670903398212090804989646481643264930345144220100171089551812647257644334814451922937132030786520941883492609252027962657365702379971271658498395386284890982014651634039851475488513817382111389591247455265470576965786483374231769282232214215797988359857779783156701429212992283073506656062161265342427416596771378277747631499009849255409904492072472722970448938160125726434444976372173393323704617252659454345417082381782182896745522732049224481287316390393203682826168797936193990551963834547860197722252057057694203107494418561877563194278658881993843706755630919008511267200008962423522057482701152939845732039149088495457230208941621473578743651738728622601455837224102863802832374567614222451647089221624237660953225833709587834917497248869467311401231441853753268504982032461218380928675266286983542976594189989787303823900225363868259298632998828599251424820432263843778151861153229403374717064627923355283767600299973897971034579324486291767623812530960122224662468179833878622311303026811895269360316385427801142153588374677160279727785347895605944364287234334639695537367504570693088028993732538583841043816963388573081370521647539331420243884369471642043512842808411417933452057877908382719443606288049383176061329488405557985263626341299664982243528326045280518784357435305920661233361024958330561897693184255581465469049315301881763016432290541436786179288759817112318007431793897366190098281387986373913357573159283022479030577713986420891294838498442234528067347013652613288604128518860636888402072158805189811298988172130696556773535337869549493436482037561326555156009168006278381710683746868130654981148380126205637127592091721790823010465197362985514337773652433794840714095210046546746819908732448254133045369773560003549772198395677419520526215544930055931666645670059679375591318461409879044997262434396560548289620240292253557743681224836673125931932362757785519062829209187532527365677029792871452000296751965787979234241126185981056307889692145533712817831744438482938308872735983651679360727956791959871192455806017356875989712335502079588981431855113678418189515346304374084160197870535568424968657971113562682271307504446983504737448695295323369357237208058928078700239850822569457536683644002331179791847934923634920163643445551778011213945768541310763082571876023954955989252438894812708255368651332894203934267133121703227954958393841045794637854843170397025037233979777067599972812388647944617971470703148263075342019020083400692204557057967314516252343665399876647254460842892664226018551786150099018932473405504710635668457118579611199403260201885840876046262154779745465664569858225017624832708675211254128350702479517121000793395438800188758143572656684499958346940532114881283762316979276825438488581349337751356200695531070260426632313002938500155864172249719925639998573799493937498968811753353657889085913807068515075519810397674693434326864328859768130756175340966325553276726887111712532493202428123975748854095596250720507346595876517620575951464902183107333628321243400439903824530732065696524660090293962236811136599717552051456317698448408693659956732630336866236616613397232176656783712498567968698267821249667847745375060635657039033621289106330486526421206603919618961142038221972944372626618334945229522757679061714747032712903856906532551447488348146461076515968643109828903344372479712693725568813584041597085245387748299540700501649427928366069004431024436544407854548314368979082464065339328031537234757219213649494330128912631314700594948789614664893647198615050083740958181883426788002161033447116057525590572262286737216239445020487636980417780416347933767955082875655071681838131148015146978475205769894233644091196029173738978846784263708481642421932883504963299974417503760576043826893821068907278766738151204535810300383380530178592159621194721727436379000326289232289694737659457741079263444834265696709833686253393927917746815461934782216883558105101822598433059309370808080159250595808915728534365981980295885339640128273778964333186291398369200395989469992012912402384615376357276421161103889001708477269694585426373479413835099806709698720617120984844801295541349522810771222886472736864512858542196415443969269484866065116274088872728730931979126735085099812806700308648945100550602678985578244902104621057826184995279660435186030319598462508074622984781667417542119642994688983291072623747679411159366816736288432029462487961283349052866981356295248861155351909838673562181745936295322120872378206125042856183473214315410002994613900282193854940005767542202875030822132934854149476976650786047450004223170224741941219267483533238672288724740982931147696391227782288671572911947994235995199298833361933464902471124014668054181468727050365840808586413358866592685710480863100894295759044995728232920005530952080546352969594240858994789323811512171334252261118875921047013754081787926726274192928790974770284786993316327987609728570169479250892306074898016317807250836797938391537727942351454295608841057131697598158149777910189524731404827332545354517162780204238104235431228600118446139946980656755511604466958865716277111481939440230611290700997677563424596014544226208594974572937909444310019785938111360362575267143782153912246888624716728784619741325322973754295262780038830929240200573953917340977418587971789021334593819280093318515575972126525523686571661910931835791209948094257836523562116442469649064567619565850058761818485218348989373070525457709038878335836979496453435071016342250058237282318515516068809521451163728844345582194591380985339450220902211741201005175695110745171076910113608777935733128835523705759761744142075409315594799906633634896922659243539123114373290877581168261537621217089086789384027768584981043764636915274476679119586186728031444517610702615154002970448177190450261499520472235183873777685689033038969803349582149759065659588036245337496645675873245990200157923923760087553428901845745681339691239527713053010083274063307446070742224685930661761229947104162206239258439882148108195895849159067122131994077968464911477675015558529902305831414657541809637138328646448978049343987456828181194848842232906209745250490054898580627412060076974126504194412945205245851930051883955441860398702655158251737205452513693157134207615270642573282564981554241006017920578959952881347135991584345879730116099507607074496768735820717881434914528406321400684399407145349049926352572351363400079978643874009751045233222746294206610031373035614072215741300719808133839133902707656434365416747267256131564337329684199569180939735108473008783284038293001699781892687778114642923913093850880879205275851001984863410022651857416516145328372928467864338126081845447690245791453859437358504737882785329741785142051219080017495055596709184193924106576337226230328142830478659199083675341740842357045133302909890805801440678984409461220771611879132857823223445965173626414724977519276617041315447300118073854619801542201046877949235174664724894240491492293995514276002668443025491914970377506057565863117629221715652657381210615827369744019617747949818111317420098934972582823478910698252640446718620583370522900118466559965010126687481607246624483290221393775423512461216298812525431031696556012951495964396678939767791231900316180328724466132091093092820531971247470103026779102437194816887548430100334327392686693719402155497830228375413712688114123086097041106915904408206743652743193141879617836074047192782744479774981681339352782881648668548961180017720604014051485926600892453891203563580838222662654126769564918686960996767623418856458245042225584301668839846448756252569528339404373154296623073976349616798741675124148069883819322631039790184108859561612013407291658212367390137376369408354819335911427575625656130706256635577473792043674677232098431995593996469333954455925349468050425587331508321137934885471900150069508117850486772872937746927547845298969762155262744325933574137910900173377515149487145509448149618156357466408614582214002917714481336552338226597470500672382802199745214360666317046301674393048577392016223725147497304850761944058231375931877793339846416042504016257726661152998152215900085296248573793933458792919022916842323713469251102370935595402517424997033606891155045177202512023928482016912487694342561869369281908273455349229722334258687322852775774525195165465237355351434958881372691484239811412188164603192824295361254054397375180993200851046451515946342267018988806404827019276757781234599180965939052284046536756823149085679398622537081405351511570488090754834732613216699321367410369834272517748361423899042239929785235620398098899360413696242548928042103480814800411716967412313724288085755709160928926003064527907307989403877032180200147539187900862402549623194828865923280390791315379261302720575499615150234740753602471466085321468757991324383485732027795730831011831266075447195774979838460312388899796069784623039139802618480579920197313639207245947808093448656764259486546322730780785920620304478081540212943506618341672381646501539015395641930880994478097749439974365787567157765918599060458426826866856435818621007818318594223586984189296711074365660926136526914586981261588831348909435032428417528618127060065014243420047352991338219437740670726391771057158482883334796396052874130049098728544065047345110772820113424711385843493874278109771809152090284204395157703112835554993555486261258762373841251644121269849557132043871040370587754890308992835591120633069360365022032195783243574262710105816188997431117922529660806683293749780721923113745661648339242760496611381290434066257068298720562180810295859833902010400924351622346762576541520266189134776680050533740232665204803104185685685378247794722888320291363778990295576192209371767917639438522160940136981231966145570508807955047014015903770556677356800652026238485598637675937597188832904783479676989977268246478945717982494983396669074365275954185908525069521933811226091175555255522387617067412526978288368887754774807586593770625373113031203283002133636164030162976118153063015153177666045655903689869210583409195285523286133413532888223717466371883632296230981964361661707496788666208431257368173127328801646730976372123724356552978536219368311496742530530734680817620249424171551299285581955414820627494228565207601119015577872907311074929758983710617067070473893610704774183715627452057536217394153087738159446436976707369411434718837938709959701672890639076162714354069635515656908176054089913934154727490575059255684683459003667734036486116297300061109377762490610649801171254138049573491550464808411456248822581137908861303711551126544698104587986799019717403343176500797093834400984963904931154294795425305533503446426218036632885002250513416689509991277612453780822362828932273475408599036880048383611587284561336661615825371246814543387858723047390157907514963164098204859655911728526719707626246213764464332404728838855753452634565449797011825727359202844975293563251208510126061700444012020215385053850584516562890494772220182417069122413080851429147987928248480927812595732692807878179183997436299946140486731605488466790068865330146567998661708220056800010544921103890377831253674663164612924619173510967493158742807049606015200447119372359068261115043387564259030177467913920997464922973321408271030068758715919168374692922961675617399879936483511221166309310006731609422989089484949081811907939367907613334931787627877125124997313762457588568634937095603126830333767885267014148444525662539976069941904378641572978275271875041331436555997608337482045642199423046997630234779601577101998747369482671686111232707205272055880526295876149629086939255629267415046973221504488624436000271640267553623452614829411728682320101752361772469091155170325040190888226760984837279876080307102683447679799512845295897694290944130778187649647159415644763771529512665905295245386917677045553716122689703529007260280535346512362936337733834858680578127099883807825752128196009294267381324799738560175665834814540448639224578250000300838183500602929502949057904038087271070317061683495969852132590990867424038017131693562481251013175479236963471895741990125065383842151629777300300044776109535988508722977268409326212475244093801323774818757995515122255219049149375411810954325930411075546047774708196110365680878966695174787110138403672219938908626123306519255078024962725120424862367086335577968713393906212649863307349666650541662218553151352451533730761780916053915188048628421544993197804278452160336012076779670571519979345069461164538978596122134763535117416081505717970610464026406795512793439559195969205878566187404508477997109779881700518712224401856899170118992157746986316872709344905186832264140145933409574561145280674398776019687405271306090685859906298779818221800781448224056322463782462456355658852132274772568310714623728852201302127097069491956769787285403739172053263023608007318179372835724406630199803098753229857770090342711930487308562643693091724750110030884101909932018516238142756840959695529562603926010781188530199070254920799925574350605499319346394775588986743810314610342145758767905920325427320513323762096547975452949940666432277430875039725979100930909125406153845396548154180727559040728947060567322221359528995348916225213479600300345341191409446799712335027828430810684059269027673576449185401569811480356621006696775062107321557314848844944172521122797076970310539511483611671064489751305094618259845719164525531662609381590438362515602998770375181898980978631641373676625427507433454648688588714993351072311896487510963094890195619271883367231558327823936650581801088442396032965267674918384087500762026459655866726275770965220690470045225480594228206841651711214797544752211258119930200367767982135842826676785449979332118832261714287867656127667266884209088474363260627594762359528239391093634592855902550606082499931128499555557970868619470915492071937804414874699811820862229210588658192837564751363450500967108302776519081965107522992651085894558343145676920118255624951668233142184625078815531763135921760161744184331582920718062065909528698210692646891917069067700637888525504304846914387513999035659090292201182226852785891671842742185203963941924919871354701332561317931778346577906545181755006745681339064182694462294403153502662074652047177271235461185231094096854427238341610903247486918882068369438904918616851806323473687768766702625413229285577016987985847665513220136436103449985282913914068753067964838336956493239906370624424199273256629293457796930776042528662287454933624218795615859941117825310978502776537343978781793825409180820372453356522051584482477138797436812782548698286356817725987070942010352826301815315403687328042532951240932744537654156198382106971170849207925971209063701767084068143961659786177389010474832488164831304862112527325046778583501517393194722001999693127101864156095058795975437844794458096292070981858405755607785043400930889540261933855435630639436727527666702930379900508627094644116680940278600609394396058143043487479290258363080949972832191261341475268747427217219010477993518905388086381809506951421004613706674799919213942241349173773417856315042825830396395148652943430047962898841585842887196977035235945105835063761151418901239589776941555720206834902881326302422549833914316415645751747509245513636428454265278441313104552960256249851954604527031351451353972542148171314790899295237417091651628863243017198900373680267707980494451875555548748312979514915202362107830343216509140732551915507456372014954587143074400116360841149663906234580038885520891208767506517405773311913372117070225456388831173909653395767685950753489659557235940492520504105757074662656892592512400926256174959899745515148625249947541378170518160474697965334139129417122856024784686769394902161425683121250982541046819606418792621938034243129985534976927139416821021963857567947136122949869347113633420010459306984268814809227248912872386169761736297477419813586778052518018628098205747388657458451175595087705197526548596250803270125865478928725555655446692959614274177617017619740296453928508496038126661812505779843066329906604346048758285282164051694679155898481928493306303487856886440025448466422217251499218260351727180097048051239352372135693012599273861963394376957595850269057282975883929482099026207867547312302362743542594106921938856264822437875827019532211602437993665894346774746026442885547464770815554853106702455628198215048428953349307529913617250295542871647714185741141751347731533398128387556812799386780596502037163120782201608027721266190978683826330132137721476632928435912028020394590843572067459139344682480995499474299180695303656894728401419261618228328657716074537527413433008051795658119769613479079637419120050649606696462557905868405800012732043517865286253981494901033115124328318661799156898804760850919479155409084335619585333176392548561450955797715236698545493460286376119254389480109795410818964807550513250401345885433770071590151749415932495304558904244672628745004055325742710029463234336378435965384673088834319825365080315213368368782897977755682656476885502586410302168387558835733148789492392545233927782833070177981389615196302531086160276812079093943074039991544616109692549511136063285761108895940200992586769051262016001392186086519663071505852979663077794421599380819462119847909959301185167774901946436787749892019656235956721284698667584615592412314969975655745285206374429753700033134867525106172809635044661233917421689460790862035791767665431484463586182367447851803685693021201109693898452594558332461326639044216477454399872990537332439828870431988597911967349148559773977490511921696688536539572406399560657170539305293156744164078106179189000926613314085891084206605523242584322751723625299232220412767884434272668290763959982948886999402214490072426500919113267876868941086237736179726612655321107119223534686870222314886743719705567909895793330649727054861789444019072947434983344895581690728397073947893086527151109067978216142874581241826285896383992512805437054182553704776655991536708537995355010910737402719150704798086303723577839759475955055407528641314642819284902671760342727181552815846188815806265693697294791818761506940260292918542005844340416104898248993676978357564432316754823339687142741601379182234530126730596080643562458014525034279518081949622264616630024851771380743617141445055899904229034274344606886031686747182958999005116617103996718680915622355361144391773939186906950255231304390724359851762567636432215412885185589490983210588934995137010562767500384766852473503203351672316438309610953701566752815577389249277992012681740775379008716225790774821019051126267126767881233486684293608882558282736161613033894574962936454591330502271903174055156359406794094633333386260721006684146971348257978520434157777859406881567445707018053119118473608097381557755775001569568523183939423447586430283117293467132091761673757514655474753197085894493826778830808070073881754117820084608326590991949325188495413389818361032713500332681873104638640933892293376138055364610649589779979943893009574307223611004413588731498659972707865897075742529479141827511859562834519333127843799709606067026048977881066076951974091386028860077988995846923062298959231218558040737052538173148554655654020096572523593162637058144612741522433140249787736425565052311711573477622564504053830683813117067818449360967641972075915168585809601803200123798860395784159316561818282836292722987252927839284293001120168467427302824116466869361052044639882320760408507796310117641598953599551481605288675479506968279917234448221915360211464856923814874753555882189646017719217943759571229723641536950928136394747497031421872783749454095315851896510808361774845335167725557623274729065848207881571667300981525195801703597033940051089592024944649179974038964726752892940931087156771497782656385580232962522431318292134064984266472295796421596622908272000444371606753134461715287652396265353457938029773373563250757720189889718633419961430796432663125660266890734428821800286073725897755096472690905378127507765048140473129006137599959267316263293355621203849981416438322122193118474693654324269408476013463649534072334080110365183182428908815711478389816805488417751499334044572496961003289604734182132815841652775972045183981914602239864505356709356613465129491545823319756179475862639824755598467290292071883909523593133527913462735879157133003327019793024894505670911965470286547700487227406886970096378842690695725709404634427273165391020537778702065465434425211161693985932078997912480102356799209531931196027425759331158295524372651725230777828707952304851198006529345313339630995580311237670129394306938085198957931181373791603725915607015187660188421459845439869088443169611311940111635310854018325704903547168016756854382914935332342508967022085383042189349547089808944824564965225673030383063525716589320780435767072165125563208518294112276602609171693880706756255600844134581073139531690185109110374495795259807390956192591993685141558730445876918208436636368281770588257191740979695822606022391801425238183995874348622311665769987549490828130266911270068501427907662527547723761040686725997363906224273587647247785398458846694975735287639633815194704113817045604450817563727069717123161676245512618501940097133057140212886685408365730536113794139753853974116640261636270830388595306931250047984884257911828193768631488648466683481249630030865384136308545606332831232049910048355930174284206951516034734239278590103452498223334582741942228263730133802885034411222042305932785631479402899356755661411848027599503754159927647824244166216034799692971667750848783749658110284142314466497195312332028411175208018321246037984713346810914700281627355957201926271110318405647415152012607788065828807364833700173930874767677705127386842871566397326837663846274140294201221379796393672192134997069858793188200831176082620818556104350233484416789137238260700531086361843549173190164236010687792782320084297855615614419962845925343604806635838245370590769256880020115801685466802991960915951443193919524138262855533621674333259322770432312012386186849395294140424727608976556337862681005260896353982936212658220369250668415427522308648509294399281819318480320633104533113985609207697511706167825493617577002592545343932136665142574129014918175262603796667501495426595437425497900048387795582840766505835534207689006360236055234854579435421610650470608429433001076307674010542035286733307925839138958024802412777710424151094465573989442704194993864885852139414430587001939258141198945992211445971714826362891815470500901525858057086765552274588272380578467572762429550540037361881551826030365268138424350721533474606611856427259699879701819551029393851130754619408954987736835566347047172314797934113119446724140559198745962092813180454424090890637195079261324229021163069090882596017289827583424817476279448352544469289720791180807595293810921275022430159359147753268687437921505866551532647113730594258480203976322994350937469450590346724994366877168150523649019070662033538693718407287975600603939001970899695400390159199487233318179060086553483772260125868526718945247186354272017648464056303913392875733329887378100761080790764299591671514908073136747987370196087379514138682745129354167570128872183095135840057252251412949279554729227540788994411536810179364501775815394730933046303807294688704428368311871924168920018833467530213694422030584216911870075820774087111885749461581299403673955301897758801825927272291718788769954908855742551097723145521760146517054269555831146358256814262863951488130074792069822268092269691089469701865684490277048312993918954564987819444928533764466049909884480772319842772794084097493048073657757883435652983675712844768744354409400642785267356111054980473601816271319929822508142785704234579807756914765012844632023955300988294699463054881292057791939922088724826598914102904562402456911251248137484178566555204328005073695621031892012739415706782329198437736474606802980749150750226938532442291933896864310146644303758985478213636144284846886692213752356690855092520049860919999669625192055357456114255592650628254964996403158023067895254539157471824493964460256279429406388802386986293531926861753077880058292709045096717562410120063261918322176918512510615424238683844712541667956637417437355923142162538725376248635842521976504289309938191312458364849600880777733144859391314699288099502597887837660226106237120651109436758445761972880376479100104447673261015740617128547624825396095087796201265680395660108687830516790508695899592578569814036998878651306866685594971190993299775193264261379992487086442584415568065666122863769258378714304846349504179527995128491771923861807028047450525955842120451376843584385926461005889172409780114054978843142865569175289319844710762301342299695112060106076769917506216106240400178671700009507478727448659605557945584619545175811499130650488461106755521206987897137860139053873879137657848154552436773263776395009079610197149561555143800736563527576783285549268154304229849516385502001789484592278412061354586630790723104129729522457082177199639970924726896334133344630539724509247869781670854138268345919934395639131776393985750004131568157233569464254560041461724540165129823174269292769564245680396859032841190516658307268492295673572348025202619471154511308807506215915992233874864740346014031685402936639156007748671845394392991486782124859183177919745149419761921062291995786609990816078062360887989123249255434685851888267729546459248861649562804461899922203392833333182475951061723568870831817952315483535677717801435006310852407716821783609751944870620901032213977603207632071730401069473019318746771120486872165636631603812847284227897676633667332617517662007331472777806150896827098435352283123932749740169167905799018239444414308238304725097164318575308424550354827278558111634249228714335105193181541130015463900371730034874428849432704390358585271371624440744027977856947416236616395816146542644745210617356141885070188083963599116906588032666469748706961625879083165739355452537405265411924997654796982770257783420890711317175762054160081036837209396353662382856117576657532701966244427354981833975178743729071686868174725937737092154530369971501271618804303525564919334504387665184692040713326690800725039646339937959661320336822380379379482457257356491607985354796832876789135611271422107189268570045358107625205467959691068565288327163411729159139657389839123734278826449239634473308602800898394709658859865262353571326806566541058726638391429982485564272705787896935213230993809528875709860599889011666809477959409588687052645462107879758391482081568050191763637449261869331652599754673004695930453624269408402150539467714838640220148864666944988988809800546382831196342391575988941145134228518958929640282276795903137692732430293535673256429355519548824436663971637768018301089936214795678881701769838324316661433906634050363297893792487612664973365650926680631304069410839036913591252935730957697054710791682439541088732402843451622127284594376490606848538874789926650105674892215520530151674173175504492040693413741840279064574456089806577266074273790200740912567504108737444718802693449632518602215254257312040266582524190988898258477272152403341186468089012149936708843495508104386929110444589631121121423368622269270663904658741912492158473550046950968755248301480047601110416314269008386586230781033960924067980860464234674577602011678777848822934742927526989972032204740618276136823572828431960345808265277963110975840055860434820921587650726722816525594110407793627098482724102066531299798859492012217893594631394865242802675360711649091451217285937247761114187595742012806116203846143348020448325672417034341797026582801594779182720556799838334497670513839776059612093709003432201278059587131194058033456896420278738869873150553794514459426184962873741860046641099227906293258157867071533508591753001953398711153265800429363511433730018576814971738652959734418099524203940456606419657613371384255511496398353998148677657700824373986319832877914063809335023097943915161146030130118955858971794606281753520352748393448303931182585381999680030587339281095738620888772023178435347463616852596303064884320251922143587289524254580096819384243338724518025193452535488772803005997046212419619618470096175770454392620334735890006997337648533848362902251926119959411654700818304633126584968087049051180404168717202731733200267131401459839586682023008031030664397401623118193843035317398326063185036244876937866933010904319469887583901209803153952344415405104493307994082308480361127028034033012381376233348051423043376976088039494506465531724115277831046260697666868000441345089581340444030105830498814169143931549820246384864259541250697853874227503193068002381007047216787601666416175167614304377196881898326182399888628961037288260247593452266860720154095929598105777829143145458973944675507148277395288837739052675872927206854838676731077380837974043452321270633557801093265237759983743920817789474094508634587377907762690621253033018471659943671397109753634193560839316955831885241641530605664298971720432485909296891168512647523547451236503602196115343079756035144780424289045276310064825051136075161157632217655947015313077312663097352643396799044907060866686939546743018105433523529718905529331084611934690542045288993327873942758030131139599481853994150150773346544318204883625098145197609443432669016883136555112478585293153007123931670939890117869001584738587367381700930709003262083702613153527349743277353426001788956527897126831249855141213885250692694331181773632874171816851768598741140939526771237852596994680029344302644382960545599985315950032612203077421077492802422308323313336891787642011181198129749298856029233009679882137319159007159710642163476480783494106907508818629578465390714862236506849034511482382236217897640643126920600866514110928290677952130080586392880854339856994422989721298373703372664044098759187298470029488498038468350292838500323293605304599877488193371687813474892900087399839707662356652596456239263173858761046505827550280682785044914410868346037356888055502193330879293458150935598987408982162204300967724505319329456203917408601276495076452116545057317176619459050941680224544719673922659429517810243184528203169499820648309394672403513801630708799554180772129171551756952409719197068866046201236591088245299265320315104922449497459492042081604903182645908081477268305570265310954583147443951258580855214903895379463647026686074086055288664181427681974135788206887932437303884651834547566564803527538729838811414483084748403077792660320027802883964568990801406255839258963562267340738625981089880778642793927635260239321600268397585443329625129255586296608526858341367202564944528122892110679232029874590318092523312097192397463223122980926456553827466881462403889415471397944477286416279747492219806384872509817339275312305630057322078185090875724557590061076161901562185638824633602279325784168451086359777253212226868593555951089943375986626240071490966972519360294371013999249522919188689134011339848619592983162291736960611697848752615483783936829712645405746060948822948194910309088259839699221643722894174374873806607355871696820724997624039632939479060514786917117654518503106457479026611882906793919558274058746292220749519754037558343727509839431581177527746305912946512776754249896817710555475914133963059903868042154494581015995987833478179234256695623608448350834175397718892825002531673434776779112474734608890651347964803867290391185060466723732756889368580005251222039644104611727674424616205683045687518730166724888454708628038437656757791756290655190850194742439034604855554232135082489844873629181038108251738526624868099171603554480339333051846137371672735620869865316250612425415393158975345848334143190447101559556215069889741650837331745082768873428398424283894544982067578463986150298479902465228329302277259650211222505060539936499973564107101243525624631304811837958737397157241135447963530112357484188198466226739825801010730215469703656343413743043852056314654659345878340981488244262607251037527348072359317130300418526482429062699509277243285455533263942425983636016440722685853031011244122078326042905530762318431810393617705567827238094898215438615078679113006318889835470461051995356648972271103988721071793319150262032046427589810248006548234773559719420802263645809727793391195688305398110189906361127715266804646058668632094433770453378787813124615866267421966688119091592384999088022308119698858127794343308655198628735264506727176769148440564169526593984122277834360798982748861452849724200437192225727082468640254081951316560385060298927431906757506626785541140937891760038452716707257244337111219568421395159242932076536252408460825763054467950874703606424415828658911613346456737296237933216777183593639828223738443985021414122918183545700717439139730863657563772194872471314618617366524357944806340021790349509267574468223964871864629560768266039043762284982153955034499999280394785380727555372424914389553929625521023773861855751652030596027122081231423982896636076808907894496723182665138036555839799553402264630688410709224938780964001699325701901250413535814769667522620865151948741182336268442767904260768206132843346753042138354098440213259173966137810356405536604168157616908891286126868852302314496002932287385088771151527579197618428667578793676579186876287924157509352702098049354611160560986748477120638582192504689235430611420082981908439945906168958926750179019899868204027274458154233272190507822397659252472818407746368600534739322926746509632306465972384760020189948062814492077777679664166963527921273377913642312589914141508492561040597192860584176768650306738085486758882222515763539943691184100716542489209287677712393310928858880828385622199509613320749940802378041252251231408793285814804799769744478850275460418634897920412249090160089674002478902924704896726101063709135284966476050941613225121659329233555265186604070297938032176250075632083815476841324227138749982775031861791816799242528698336732570459573348242808848795093670967389039046011708506813918769216198053987909155060345407305679968972260170688327657921701172831108436157253268610588550035141677339373058315807481400914125225792991072304464992569177498866422322528975603724873070871510469102004438736801742924932532686234259369714867531290974333117592947436977709975777059768883308291104977204267674847039413257763620670795237007321439507021847587842009696161889983829693891494442615519089287654108986866411674498670194704908545460661942101313438780131381449582701117899813220506859166971743501751707567524568774823374689468209756652075960166510081603570638323684062995974474481788960328193599648635185575833214818834427914080993901086354098925266283057525847640140653274526526645694519799847480874838350388499654958903732373053057422607243576367115566674706195092579361089369773589691941765546168061502695575929807030343287717408390037546381135762719167347648335411447300439031309665042601894734220351875445977517231923032109294752969520532972591727524114752628751809793470065556246665738486003093449814130398278909304041214188703844801328885015679955053409653161379626157009241265651276705858681702781171238882485532476197606629430809155873619487804263775254167779215956782858153807706839695308438795565516019941202376615653179274517720585639310360406170029950780649844819291343129616484356272817432090850906819939248142739532589895939167640613202969852061308696052949254644744309811089491163105341939410401339303395972600927804794783578801586109126821488146927325200625005102405930949463354051079353830051194116474249747229702374577803149984372093088272259943080975588101888121249030229569214319823524700407861956181090799480630446880466430507851519577181146931780673168578259090039883934393155706373229612059635770253044490531043902853314635742440336984327158906460878404638696083141422753990754749296462145975319845068416213983725227016598300130685163398798885018105329120523524639924750194330354671402045251510265569514597024369087789914974154691865749181557421157475563325073677630838013746417635998012004983915053677724905421730122939059478918878311294639523357174421212081455960320058527531646155895969966686772794556073356422744281829303441441405750514191659791544522323569033533633811754398934152344503953175775833825221876999691396261970610350660572982958447632250622319165371933809037226279961001840318658495972979317875962142003970307689850279930425951986408380226278577309308208673729945078929710403831749134935708733890339926699524323103626213033478853372540635730049441548908615485595065348163044455409206998294276989006064262475122191010571350877527485952620091300014945519181699260842523942575625740291427781566065967276618812280183207131646156660591008059711317836247652215697596884116229484685007040863990216249089211142357975449368064682411887250556303888211065457264777980414995982234038288243421506889335739742662443041532689147232035421857226914897690678852331940356727933243750159304090345716793631341944886155304164483512683341475948385438354396094014511344122714131648499932919999134457412755351700525217216042917496287843501560110696470186944818521117926959888905159733870393225153126323022522546319269723122343559341686950055977415042952633957658542861501233433029854137546942393058120138385956824888237538447761998394490010846527954564760773948405470656199191527050304012300138718585305597316326036998038479635160033838241229638832617566988182569202240124346114122752387523500526166929771166720733755837038824715981796369347575617165671270751354179314344696751248667769992123884997100617521798485216539922746213731730590515458348926805851034453647888652420971606668908893608204359351266284931548191442429098543758159747469922019943557722226468531412260436121498517097987140504134209445223659869466566971066141689850410527974306495737992259228383137989681760782709591402881269879380730487180918022628895412341763765703050140678157609781116680445730767137300722998878782838144091998942864309121562672117158750942958031239010961347874417905664637532648167693134197302639382363040199329600994104275312096052421024291456542604783224271681110209454167714706432864812480059582491693219217537861599331867302091212206399617812504776055749060530784116884629728319222866220469737615723762717167922983603802926953625142426545557144759899666544220527915429378185324547866916316169912362706726494512167531068830131304251232145912540943984157955119117398617937630231214382709245340442817321697109521393274050445970736284420810585978591077117528266049205190177257471746159288929240707301065912909674828927078787276876293475593657883734064725680740719960532393540749736742425971657746694111988752912070418856279250494915212715711868845144733113602876996192246718763491271750210824606887654972706544123009627512581313871470461121794493808919555132248020032915299161390040256516278445986803232170196332082816751484244179225812353732670611855594293533692353612262470380444985273792546414611333659665961825908213530616654746104531095781626324491189484052027646258745133348356776557707285451575882273790912270447300335470090059744271958784654448928585291711898800251571032228072299565450345630382376388366062659938594990202352265643954503439676024265114050871870743691502123950672832414335643262855446148317364133208508038400469468676190195137852554420637720268272827545874963777832052937939171336885960724115192690096385331512298722441275916081415575409261057110808485148428294591554087782017151541587329421027792281584847276211281700721519688963678721928298391393799970678786728522126965700463755578820211544403176122658626773424354088386879732037865776531494229446991985036602468904554427371843249638582774712612609688082098796221387231596135417986878376826034699826957895693418364711695051837764245076272376598189060592277500165294095582129278402249791191000267594378078807999147255552010593187991423203018343968542247214862490604132971982263600477783857589042756799436814436804895612141828718694917603674795822012614665682282187222445815146197977333347701234632325885305139318857688542620529028095198118377467920447082048936247460039159829855523588875565366638200597139580534849112254508674801026640230100781828919080737314346650096723324928484015210998863190607640659770390092331119861307737815931306618686076534506835017181128392216662653641925760974205149442342804634933785190690094483256662295745517213838042570308340923493994274376401929604889910980520402443328730947449786434034989767689518365061650199101339451737903065880038552343001673465156535085302715349667842254603176061864038355370391553137585514863807706891584910628293318952915015790755942576688270941277251550486236500781302739711823405293294160941814642432796191429256354433073812389126237535649358868773557473162244091438191064036410097205673533958631613263527267915222481970288151828601474807955314488606105507843254514908567829871334045176477671034888634886808426207376413027081097844540698761014282144600382984008179385602176031825997319734171441495351892681310297227746523755301388516964290682730204302611678178143887114382131044506614477067839313659983186548933967537446288004870514521471549116268006883102330573612331041991367092907982653068644649794065055802196653176971943811263038136588009563527052879015497567993323664545080391524767598345531023526059738200526782086774206894585013515900742448724890150569833804324544862058288345525196288462037686263307753316090589657710994948671540172959649603419008917253340530394453853259097354074998554063207030469796750072146749667938373660769421462586459415096274756057736737670009711769887012145178902797897957691472192575517012380996780346062607599619391712410489068620239709414360387531739799883185239835639754347539004094203409180618709690004048528124332184277077710022620196801163685925035993617713398335576695268762863886877738012669790542188764448502526083018121018257791573465553383616907085859134814753810617737901744601369367976880667826205099376258750787125410243341157896709049548503283148726551059792163497903715777325136992490013983461267177855653125770772528712089030119671227700961873741072453614395683073205840776189690457652794113313197946579259779532693669509010600301594769035116396269885338668721028316958706327584873016596465807036913729839296393910977273740192999964863472112227259963880097686747530993132628051648558579702029056778255253648262719008763183443263936396105814048748073248987080652979210778844299043317210896244710358338779515211816982432903633226653281060208785330959375494286331540031618842492764849607951607737073578787248934038854774338788988567652296271875498753605368600874546443461315264267687809831548968544915988705241148845548169889641537408620273969151335484336162930917353911076623626829091798926406661855424619966744700526171972246929972807178672185009569363502759541747219330511265643373958604765709420264469483643602311600403862033207708715552520658394853563869458666453997852379646762484866497528561840523744148199927505104568239795257761428947633152198012953807319817237695720431830651983757004701227675342054169347005515409234239116259353918003129019247070400696244767634366427797597916450217311792873902483381727677665550033018780307553994855286636947921548081263391761484558148047658946030105615216447093891834098739909838534861923892482813797911947155755577293208335455227577402156046925269938050165435244638489355574544913929682656171324529446378718863786625006109553936647731670867773128060431839290195211590038400172006436095725901073824946135324197031420860823112447152103850445990585962383992586913373745239362534355678557273453909775062580802763223732803767843760848513794393925013661638658930858261985460920670927316527089044552124488499408277197786799758218121744325559277617890055048595386054986540380192645556004865931111352186176073768408573374298952644731245194595600488134119929837065001883055442014151236905496333701761309802903944630900308126766143790722239918227817571175675529730689592526585223135997472715513991387956094764102647321183532831214570196109880110540122287539494776364859888753245054690378068840515230158401444336226657175854465907360011570093632191025887952655950978552656107863937681656585680702250977016791018026793828710867335979323089705935129421284020545948465660463478900426107042837705649157661777868688867600367501801718581381401116996579206228847234858142950296931441935107245710932081716904087431524151288779772207943969437146335100113398681279079047942318184538750060041856436311090976195278925224119249463713407801364009948811250119525459453546071966533403059279775590289772497254123645116096901085907047453924116905886146771422950233519609521243114349970965298495638285527541437437728341261026193264629860548392708270821076523666026524528412987817869011123185412186563030394147359042309082900849192198185153562860154721738926058322726660796822952927119077056302142495826137982427735157923503799075290182866718571614166476611534818047442884938520908917730510623949975011524777499541693467044974366449849759903113587425843548717000394600121442060607316712691522607881065541638388125566944233676618129932246387977835445982599340636291610827725897053503536790868543776847303406467084217796227742690568284744031452394283978616447651889991312252319111924211771997476105532402873358362831218106540339212119987047954117230156031158259392100137572272056916529440852979370522692955832280174029763687909750297928700920091416567086525777004702469113156558178700123516730181700222009578509786605509290472644786035725873804474501168601861503973253294164749926584788084177735094863574303922288003281410651547494336087942905480274056597175578679810497834976607352878123892902199114795223632215892927470589303646136173470150654573788948451458034205166163566880861163206735061431613681290223807541933487254540319404823507769268498049565723107193215721077145431441672878137672267729267132159804704749838080680627611309392809004597767972855123638946401332684964843866732336429894140058208773893805503807500776903207766157834490486032687264194557607716165612751100114224906973708373246941411116097484215850569907434206197159165447191800040559612481402906429966228492887510565179322582148739346374356561845285783215343021559425197957903512029291753391887561519864134025465604417152400288393720142573940724121038544231937675503609843995563487676912277381520450626340205680630482159902696402601303812247311147387523780779403547284775205780141185818760765669301387713120484512650475252889091856818549199281643071697194903139324735803067996781013086062523825375450733191200351725515014062272802131057907737683612755155939166209968531845410887963653583212319594302490119771417624486633737511499705097276000792512387981777304001821703276045629944010390174792679966724014069908304765349265527118215585127760727589801743301266190690182105669264670470917333452215015593603615051611500478834363526828884066443509979510802083442208602578284370817616931018481715660357868792958138607469680393398731545856959398051052801258419275668024496018406496656112635150911126908772658737593605675618689554326792880583568097170484745410849775800789092835072408625112804001243866302609294617062066963658231200919119237051223292894503473956645680669602106732589281084084547484458316993687942628530947751615114867589760386639906033398247203228114700539024257857350384023616282658513378773451242367912744622954679810474653538474501164653889686494059635099443839991209328256029256987296665448570948582904515268339375266763629121590695561672860234386509777391167153832201552178567467609724719992265876868118614593603837037948942400792753805299698147238023488167797998318549746963563432364962854550301324401043476404172676609416907376231543241483921678694209109044644946586658844858766781618865594871389561861467925456547873069944534059702439520819491881410264897320190217478810709950736372540439181843675265471722620734245567731568753090595600023826777308952318876022137592749866453475442965577447941514303197754263284993843092538485756059714656909919584320218510279571059284084411213157080579737717087706002092983590632915049044566413613639540794042833519033001616776922708604188574403730073780469113225542266132316414805625234830408471829763842345092496753160350130787905872186421699704073657516776259539764882409204471178065488625359506762621694186655188928800818280644622650617042705643707877823425393848754809149737849419654945230536468488429257523506141085586087643257737275957095545675555362234620907935244217222413368672137310542319555552318223180983585845574246527187140010018840162083876983599592786035629199316877654930436165715907121175039148158865117322988618146033127926813224079700313408388942281100334000769653744654902291669962248941496036669250450400832525203107459540912932613495700025841893978296701643899857954439908285716375710758036360126985915142038038874139039830551115028684600443181669397160798631730306195504443186870719247257563159174322699210235062684465523760074515448287847916639684402548213133856696669078618655011822434856001817718931639603010116734891289250712822283689580330171386610533080457933775080185083471214296848978125335446262151961417790148238066506738656776121378985303768881000986421196999762048641209886034238946609165204146912653135830007779551171341805557662784338844444258398982203623542412720754155122664878293083462312293311920382886824465352665570423162721953282842923436608370006125131740081557691962672637131367291723826980321449995647323498937408106918389385620446798564117487670797197676697588823289457169647485441803506317273025415104647752236735436941702550187233777213753802762747563974840348502533584552222528472723854577729481584263152797869673775430071088198049933322804587862954119990857757396619966736646794808392458440401920787532628030473352867985577798912614262577098489820875538869848228167908910984170415982049422785686754029672855890217047058152934370520703090053756153212430164158867004239566923541776014626494527380566808999563185670903704920684511879945007031962727424326167718028892343115791520610048024396774827350561758878707314645656213976856861618749542497993065309431817327016449780743099532120761665138759350923283133482884129299894677178577676594237545354025455725003100813978183909052507597551800841349843669439075834134882451755984841500583382120238222609903562379955088756170099007812541270168372086152674185930951390673859521067034589115569568377249581909035692019413197432352086203890614949596252719810710785786102779937229138566043440153939732530248844059291404963612096313928918101540235965861830669631003899257556812501103488120462412175248966952512725939037115377716298956161413137245081931224943587620863738868460639843070024444438653104043855555760817351078421503944783562471597252984672985159426380643476503157064360912018672048221947206997899190771392415809154772833930309032693149744426261377489762333064314122538769513725349787318867433599177657300694404637043584174104040642230131589935427124309260089860255259779371631499890012903678300059799698846942558470859697242814259218155828620443997216418374984988789616362083665910592386710415857541227997101559897051295309479012002071676399107702651498651406658086025699872514438450841629402648070306080513952893275264205607399956022835801465104274865963042633022668305469876980623401762956266433022547114905074311440357271166938881431175490226398595458747840828001796620472762105255486504180722816709214482432968951437118205208080665519203315104913074717028383096070637802455895895361928473754237462305898684233463513792551736289970956305908968395586656275506969149368094342831135564733338685428875999920777167390652389479118676967971656643449052404710042429087048033518361108371320279325049384755106925186454004525498226387889774168398957434262842411224959818091543908143725762886143449408328283236335333239040122401034314514466422592623350600636053408590206242765703251125785599129513057257787118460632589887351698024474329541658474464692440891596256562131174668180051168965922196097929528082007541593242242449726236804578725469283672381465201132826457793371654814100668448601486760284664633640606976779199898660597384704301351245208896428802649788841592964342621159263180653908309730445854240834911379389295375845422098244066699409416521259119744286948386399216601966628097600514430547879303844410292216862597959692925305141488925560994266916499579147865182716254393864909306330785845253670080056602278985683224381376904787028897488805381479710649667287408174452185561108234232121660116766817702244889565881027419279514920407136808382895639205808871148770647693126569490884162347708525867072163081152179973933133912019643450413848929650219805846195034464066927594573718749163152754051874550559899690083598259113221536518871098125279127036521084742098013464612969773847378052092334289272273510067930381719217605875959268320740488240614590823891381254897164790377548438060282704456355412202521473719168984672307419246104685333631069912781850795212693905259508252793574647368742992034388462486667915242187693870496780662348342080419682659843183957027823886614298198314636100913090316176734229988391047956795774106489746319620421866242113348619571858687229843663942805059467961977633871089544582949398350764829883307801078791518390947593838570357259063302562061871946408236125119594750504420610865283139912980327613199255780867770758418832525460768616440310836116460654332086865256872079008947180943561124714803326479683334770924513434018502250888604843691793525397039533683382657421862449131314634096327719274788407295763315195845035543468112904617696494535968857837171300906028970724982845351220091840852850030260141254141857569731740636185012567063871261339073662776917863683840585331390992268171594831737761310452966454917290909105075971740601645160329892640592336769569263161243956923903670624909427594987100410846744536057716071304226617752609443802370486024475034712047482392370559144072373040672882951378156918866031687790756938433017225236054633529125018462021204395330701300108215926127084324099614954018646167218872397996888954365580955063598689961121537322766025132571538457106611685966007828015542788019906876938680209800193976164437422357377267054677282737530079223182619331428457496304014764001557426650225044878909797968400034205756561675603290064811804247237887515243228706786089086227404204834484182464103594673674971499469500655077261245721827690739320525403447990422750121557570703802545554418726180389975843035048850492621022945582610518356316736986595370052922074944756148685795187624126174555233796027560076261917007326122526192295637722642284966771794441620889954047558570961604165466677227869727806059121630202202340872685642746455191928720867952593768995373630368253209090105476627783790107262275879940674959665172317307820885623158498832158759515422882175831240011568353698635127159726283672294195419719454174178365509763811573413963704123947716097446424891239733823233214853261835471268673381744176776719814602368958666483219596528986457882020151564690970135909182750695159847033628874589190586613237849790881631004009486377429375429913553753937252392860927508654709758364415153110224251622331461195067688449674846040434288294530556863055705141272073441421187144519180865228685751335524551090708557631672754274618333390460484800922130315902061314868233155198202074707365939871754583130116264551632940590730621181412871970737053520933877226537208377084406759915958091846012855912356408741737762440287791733507769331930400204207684059752995896063256639627938522485833238855650429155750290658415829056529348306949988238697984362158345617504298241722153855827576253614585402766476707751956289814682965822886191221529079785990976852144046003338267715102881547743773932564184854538944665000083249748365554500594436338988819081701468147687077434943742534862532464038144174174180921572045473596377405015623674302558606391443390932990188264671194199309152991314144928874135691744133163938300204892793321128505853909402266234021212484675646720882442216285659768020865048537417231963784881852025308914285216059821279854128800979769727367426154939783822363041467312485999041454020572391857866363564325340067995875490204892700857198759531451436700528516385849604979807735493075811926093890688717157945130717877332987203893606871318688532083156922591300412854986390882233983749136302431993963432462363387070602877006024971448964529680737069246623519131599230968875987815663918578780685801821021571282558729309703125236986582518664004570444336169614093212094538079624253604266480681349406592631375936368824292522281007028730146630307189583135037291582097444591548201096280964707293272580225697052852453768630979155797494257541498512752247321691464640228877762792822976189201335788729866894715943126788407072094582224991457408305337875457051628794149428399267626806682940820227979240748136490013374629103025098486898729786075000772089389142940003538520036184345772598537550709216066699616893433643634113421601148484583041452671180594720289845402587336747138407810684237589124965337532514214797354122187754656935238397981560857536278877248632780792881840399504653501189479531804283703956367733821365604955166358745436536938682228989853232517557626681881914173097861106616714855026847337092939659822132828508966934060823968773731731875621903720497049817440583341791008608297011262096852345617619248300088446985611056159846217579920308926346648015068994920656176862659615478480520257018442847127675868848074201484593426750814767949655206321689870139269369733154674779780066437500608723983869105368789337152900215365331095700825485310918339576401461442498876501771624750839058925362541094210018438415308488695831224936083503862427985896246493606019837501131916021780893517988807135472047988446516649517922481315005298828817894755545458929942539629982574486226061466962557551481305188279973350672672020197736530919449013602469852583617891749095797199203270459218033152716920922118541102403648273239562960249269973864795772026062764266598345759609990168096536195264175099889844109066961179284207047666393760302401244317281599616099015526572089998098654355872601879769264616137767363717631104336065869371540759723414941756494378702845749353241375739875991849261081512705190900339712597430514305702975239517760995837082087161988510994474453061426563956379618285342148886781919316487150973207785905090988249197279459885206221265438274048970294660547375503662367625082432778102757754688285307860888431132760394996423452244175060293063264099968199116557028041423077841322381269531988508839498768347347182981345538169015660802571915304322928917112911899349864954295077427557375274438309659837326049585685621722780135782612356376155309522746201938208219386199745389314076570038728412684194111034567365234495799101745912102551570706275158412690181454186591933320801375192214943913113903221643078103983454909840977899126710273057495833588841104607624740286628136717063085918955119453864349899430657296067274468875245520197593106600425717954112247350302357869294719113616414087694746528466904133519737144682863718762041360707878091496778540382223790313259337074167133766703000741742978898109420779176037052394322107462505365612108939120637480037778529828103999619823667448886548589621758551033796026890382904436201179306626141039685738577573294661879204167173987103262478755432267470797660986613288299076811593565639646332732047417397842653691991906467127781946911429769601185114712399162464385817469616201653203806904185166228343516485328000875272891254656856297012014904239184312884883896632260332664905046254245142153475841160819809444383734888361869658817061695764094272544281389269423477705157476222853860002129478588720979641628487848234029786236451576589539189449502412919513796279320330372322421763261558414849545169041504815948845326453265536532815848523614991170174914525650206738814655674183677660136228841813985445758381751492167987536236302249866504298809391026997188488025970217044859030202552813761433672730002393148762994332942087539346375104795216637593694859285452966923882061196092401089219405937035039008894895675543620436512238135046122323723828668560770121470819934006325005040159444761373302931130726487374288653430191356626356098555176481574205853240609158894553688338012597063829271785958791348728751465702781750624114462327616535564288076138555466953496487670492598263900479023985157001129735104227349803979305948932177313778358946427421490828189607575316635304741329167667260958198813667519385608007083445979694485411874596378795705186883884100245753006979020674702218952467330629653303426474252506437703665357961799272351401680882572309331949322358776974720808316323550323053728765675197449912433107347871022832515434686531448915700185727147135713952818705744039990354952928219841943121751076012396068516715598009592481132330960972775272904089193230451381921405954869095986361563949787005209994004537373431567354908127037045102005813944075001957983981534123792549544126830335101009832940686931676314865221842126297503546963188038372296932731963697435520649355414328396057577614968768432550718202598966900121473966341211901611451592088727225082305079329494940799830351174391399835614995283176987410530091916463711576080335115178235447528909516696686772056010749497280038598968896901759596516320835992496579187153166517655496123305313223004903798028925815658853469055920473202204485821573914942454425600768748759631963833719548921803484257821514674327983246267139011509554735038451227067441681587953146836799009688503526722891303705034803725516475105139501120694303261888448360129314145132674227744902058435661357202297602569243708324414736426416862463644112821486682308327881884947625752314759759146019118302647032653643510486287233085030137298713130546568167197168909055879919792392367836076610691397291501702853670705691743297916734970062823912095821419327332733613270463849789711694368636317428759894417959700051502659484028115533678448928909871112742700145569771860376836625789101295632494217393242321683565994137149706344639312103084265173478194607634807686670878022560608339981968527039139188862490396768846201364756184245301094117954282789506609627867159841603338355605171066368563999545159202948979090020163703619391336687201158872273536017006569606514644711203400943095519387793689285716579799457026617598067506585843120070978588043952208993156107255821903738904382521208558934052962687060394630838629643570482247315119888232649651233926001874505872215584200628956419557236346323317361335396359888281541632458208682820517718126742300099671455569399632110097920892793912061989252278725177062635673906769150750362790495906170190263988538482422797935956600844666462081178596529200239700172573212953812229585724754802996228045248031514736444760700584014701116157583301587986025670532869602503766858946889550232573960631133507900623268146589600610591834449817626946843606208746372600234287310487775097199737297612220484488361532968141040841915273153029098481060659105241279472067216778576385034133353529537686163476493939822061133511670180859337489200985626021637536457637808730798794416303132933168954360854818827182791080276498243091700518992563777206719012825956443968145497211987753624624285873483667277413885470742789881139310367100740260458095093740089319145503715964300220798709902030657779480633150782789403884960276878675011503526599959653911903850995754136186460776382761000013046744203755848419410754743136283217474996914017256274580190983073081459895642637107074492931859335994967784546397529866823300662605197052958396554934787934076892729823865099728336887309425144775293325530109293889095059621663500645851682645654478451804215271026641454725572435764674125915003509734420041401377964253027655958003277921091723389069380230835700074572020775070513207685367672726692982572788065580773918193865262987951271748487023113390788148797075662977397668867455950268211387248506732653087696260326379778838170391692259670702892861072346955013708922273724157473521463118606168332964280894271093256452178577572704174104633709214904775509892915836562366963587170022547406720670931929112985049840901187497082556550513631276761951182373931017889405195526807383157327019984731408230101259867986402493126529986983706751746197612905864197151016919038113053899625915440589779831881118486367335180610964252293342023799507987471411797241331949703521203902276907616939986615392473230877439331993847393465549602467485145956108938321434638044376429674478060445428611772356228812354554938549367470318309386300599480810077755226640985806909788713789989537772680559310626158376832702273569525481628683977540598313218810720959573489257273336071001773737322215725062455540763681258182099456433315664416882111240820296324249271540402575584385620799724813725431479791645093458917528230377941633662345954082703595667410342058300651259660676105712370019688828833357826525654085800608124761783461213434704265990764718852917881655987603366605957229720604676414593840560509850038662572024999916283453476012140957575613113772014222253799922581926309476473808249210536672702337569527475124675745856564754371873702932038081647161848817574928456398070360592998581417207052391455581633123983860416483722081550813408384898901083665842259270273186495887301491547504577986560157949609869258574072809161237457612028080378289697303684705540680696231495085765857801794576930954674892891072417269970878287107906702212140537533489916127094892472675723442101929957163172516772026816451195411663791387290202669894522022670168784743420653592953716554768714697522073086541753076955028774799656944228462074380055259354262344681187296618354475217325954724035991154990338109892925383323011081260111945829132478918261456590057091914804988981064109265319864154915439063711532261680139136920779031134411790449333305328602224881140111831216907985555527652770129689707994152934407577444812152158339148073265885490277392918946944302230603364361243527017659886978040729972951305026433629229976859788278807273842386643410555618673233405243304421265422580922026128079377868316809369096503930718518869575540535519244740101889434185130363771023719165424738556977234345441642929428184121355056160303404151973051705672004152548414304800326713649329155100475272886357431562722121248280803948049233994148331688168488561142463985627721248998010469252465098429768002819887389179671615997562994908103180945776549930033533727660289860413051372088167496557989385646493125493052617941543579324399672646382231279930438250274570461566122280211602252971111914726047906791143346105329162911399418142705859569412093487053298595773324501523567449733143059780347075981181049962648346584989429083137028824246407670486581945540112226166400672097493477354322366078909827936291801786597529669160491331805864544186490197005312721109486728921611045049992850339238238734277274981710686396625516505450077772976335228391909363416626867302838597762854881190637657141567485229002764130072284646247766040719996946130087123096981696117764024588024040122774187119038281453640878770214050634920456880386635063758276521482872528409166759588368951256147440112438105841481692969689423082697724588266279687970065412237491137136835182738167865499499087896670694422370878594470372287431615091095966314464662011640709456097479849023363689980064399177284580701668068550509013628723686923113752175319591326036854910792708522832260794133428448438696455382340435073675175527928457599938970840653424134033300596542258451977435493156525253949040769054975535759742832707392614050290255313570590327766024728733093759232781801218057548701548456323215488188217482201759332595484512386428545698524379400556433592407757392438540423436702536630969342978657425267029908573234521675617101232614490595100892202344011910176219338255348554145176949234041678504948130811080374215250832981663150344058782068405081079763511477872031404917793340569962455700051006930361755386798621059221137496017416478595814599384727211793391023362889874671002884360210521700308921463828346420172493377514594618451718646938424487510770480331058573627422255689810783595056813440781257672764677591126616171714054786826922213350711592775711180936216356400703198861527915497158153186202558161036022088331406223343754021279442398911151482617614567598284941291843503814374404066721320273696559094656887718675576468959379984034284392436428313849993610645589957308217524095751980407563224817278371939120319335200957967988540866288584171586540247531946198478449156362379422780084825190003421829725003680779732829653827382682709645778830629073257696965925850224788347990008927737533233797391994849800794562016268343529307082611391508154015738635874791087686819330622340339836184097128959818775626023205090090830232761260784238560476239941161143199182328557230350256329962309879869813721987383953495088005110565025519830766310016192697934113779965087169984295060734385992874266928213258062265610427092985553235331904842970575979180286859112426781332789200013066373308501637457899639268418432448791750405966056813434730021152127364903814601466017528049512323565233230088229315623189074724905181203171677340213142478203861067475491845681301759363368232595629415108506637332413458652626330442778920329963011664784310557886749655601936345406661079804344331017604053696587878207011778353664595797706500911051346718061964562680458928553139279886544887182923617478955381354822432278861324388745375730639255350561080220355606180165801131104666555168336250153969732794833392031991223422733181619136173947909717352097254441873976161679954491574066642263883621082586548246670000466030450317690803460968038937494212897244625073723788011856450495437177479305901054133091546327622820601761777268357199499472100085888677752948514618328300221605316074502862271394062257522715361531179483253952955527424432220185384121307060883994372900303241696223646500626792069980117450741513885691722498812286945218867003655461487840180919059684641517409973838644035723069764165258889246501333280105957708743781305626269174338976633746852875990251822716980066713666467083616352726762816491254005447324342360032669309108993937683131442421973822993229788995092621454276031423962542712300927051312568496344648699864913368849436390897231264269856627625111959533090158560243389824306062209421268989550333474686793068196755961498527973316889311238639281597048721463117848989411167729941121535565955646022549236360297674973582068682453205195825077303793632075825348542447969436843239583002296648031945160688614692469830684283731363764352576359573501486860219543654140642015581688844968265881123465786302515920844396872909373011230188320082410855069462747558507218819881766416253532852199367845091841824286558030815143191247170651521537685607542529637607767667903553404206819509714369610937178250010403468338900472368357971887181718669016014165499731815939027534042970294782468857158030807082715952731988395708272443207294195414773761604963690540790662485698192149417427233367086119226243962865004547421003774815474836807016621297096925069030039434013953143884372851361467948942022024409904564684901280849422300596321001799673114692045032579221535625483719536455713051997700329849639310224310211805119791764121101706761203731788701899833656348870192888875302157278756468365042021144865653200418273581010524831790313233309994803493059499809103590873306834262083753305080515347315710483655411018580289387147646397286797086481755119674442027062310288533446028400980642736313901151882573545087044012788032030880458999401392857831370320146311690082754084163161370113782281758948307572743187126630136955406497051240145147938561616072695875516188977592200937254943422630266669802190564249413297136490584514460709354577053364619270263510917344418741659960580507217623223706705276940645988282696517385967443185049350887097788445389555097464299149414157410633088020914602707199218169818218483276781405657980319178606106154690147507391813277374022575846501933629271786844135976209467944134056097983525253247495474885376196455212872021449339518571677971832401361516808339481203386477683281153540367618804871195257675141844988171432995289518963021219244046783780574139721646761503521835817541959880155878183898779764752675857488183312641675017498108151439567778004303916562414212621830124978139899612697493113663124534543165412313702465446789221386332616722109570959567758747813602743932825258678809431901878317868851628155066665934899011194842040086549543060038039178327962106972022619173101394711841352382624398082038044725604293968888608047661814854427924355022617604338303799875324936338443379639305106457290147033504844251508294100298857176022094360304026895452539022641565547229674440698160995704897061857594830661245396861533548551445973314158488230645087290627474616916126938112272403245599778850235676564210425635282243293782278413374539063268417248112947477730303743302845461431272614632310540053534268742950745160711682113258945047377998525906280889706008419943257243535659915956718441953266723635695426037513401604302917390596881641390046488744619877047138953501720887829300569345883294351862364410505204728507958090822774526283793096212452475950455166123614389213213036327245839947785520103581781175469105111085624843978132712264257381830658248814921133451601187586782182236898768715108552343084383567291462242105743861733256661741960999369518703480299056647746589471083782738489439311337575309274218922336238702412781374746994393067173792589616662082326818485942993720067220424966657283017661172517704742438388735609530630771992302807016573157109237226340202533645661421172102504983400822458632583416950677974907621573373220845747715167283702165152572726906324207310811266755111169475431139342496252258865632055943336433200425193801686622369612079720805807408423669323592226845180555327820709234989761967121716779791624257801814465205156233999357071380001865432511399524061571396278600427487610222747036056300866489818556368512883809784031645130156569345453938673434284770685138722357292881400581667792774383039499142457190528757357218154481546820977692300397019315888533448318345887097841660833222948177642962698624400189562630801058556951873430032304591293135903898244892788175807765259826617204314842674062284220693580529569020966338370166053163585148248029248083532133338663365526558462065426472081380042288661164155538597994344077718568151087555231264485459645256821081013635433817960457186863962819124972811141554662949543549349146804957448302719698789083693224957924798264490284687299072837075201278284177012960380080437313604235014475434908232554601707572472905331760260071685785349044769308844556024080018247553816329309990470595795770193501515774660330797257003737623255902906413393825012755626491005106166026735822600167579268042277125630420889630823949587033258818159011483577588531312006759748973214848738013554733368222895843771697332435968670614741742148241984917153144445686441030737778278896336591757347859858308960489237888649957448584332371907905638718101778970489414130439795396193047551369668909173816337402028418059189263626349323589579612334833976128357533021693110539509637294959579632379062570244037917542955152334626081147354516172831915170000144748991952187764769177966195256872119500722879969530304853696757636373990794430681248544119434687697648840583466166322142543924677832952529126299078762642276063301771694989190158335451909319697105551425438046345447883372958507952481690982086688729490013762749360276100459035680660458689090584312586923638973815078784839132447306209821876006989319766481933313800529812135884704613563894279277509754442713615574142412671213436144314576935943185075397401556345043007214773380360159156442315152666808163256500726544917370907422360997885017528604830879069776433780244014383691757658234996002332839980242614323030516471150524613386922955961983590185269892372061627667222391829686622299690128368372107045799738232595533919942730152015863290310866236089028743115114518893644416727505857823639204785073069149080150774213832613456097683504703206480869006992666168587556865572971308548868485030559274222664564895521752342533944115055347251126468743011225069205029365883934693777427357488189305476305456854544185087783344027164952967643576545542376086831385501284617934105641325153600110116231324866989037832276705254406296896643901644662426976873712779025948486723050418835127387714999583229272010569081764772036574538306263212128782344682857126774021613199423767459690263443802758189654733342160761958999107135933046080063601143407859022230138144316756189416100838666846130672978799816026991984501609036445035430068857491807891174988691858559120889273428562407505986374642067182688584104389915699600486001678029227155404334781281683206974252590081899938524312948654909701470903489016580485705910238098402302920954845802703135799755060827800614928703420610189705928555625036906666035191351050612737683153603915982965440961198482603792153692821523175373304500745945602650416490638745217128821649779663089653203577927705597573878904708976072822728615561333655417465417333253195046144715961256134472838760794979203472778902606455940368389398305128043106897883209225526740309907276663255630982914337733624876390098037467995836331670749095601577678062528418158560882812510373045665167838123292026443334289247998953763700284708820573178148028615669470671760883017976295743657038637665430467430018221775217079790113781320209171012259445939476032633522100344096072888911805823029880001392105769902061041194222590144126763937547565855233263646136919096305590052387849058085854721893143295125655098911185457909047430986724519821564840929112356704704471581654122420948489526023954425149689699864689278653372050381525835533952595949779245037350723360292925681664403175447209335023469935734280416280575853123102104034707410553947946623422472197654186066330756093839284302455618763215229369530949672614539115504277974291394623481163890994557198798058910809405220856634773640251853315792894222261295196710148786895339904116562623610993078627744312609857915198651082193763442397509244443188883272167231447313989275653938746908483785999839030192847559908448031397572262577995802383718211826107782546328050166275692933481710199921368849125797417834412463621480799326303178963007731622874110014147446829587109640943601651146437040440424102802237154864341631268697102967457237993037870911926602268854349339288469778331833772755360023604526975533312074052194438418713170650040623031425789639624625508053462319515772721606824679713239823507112146679033342531661050092682826978320517079706064770947533221911300316343274666492125853348698262849933364907497576271776242384245752937603637369306656985808132424571842319165984435248363839147236770911254287974928409167148410560617349525553038080254890897989983399744196881644358115996354194454682443001877393448515678629937141246420255427628034645281943196998515677594280158901172429911474923244963629665361122564620817780841937367174174869303198653923145104203420878749446383420074236946741673791377185417293021106725290049850589395001576446525784267850500412815051411016761090241799811636736511733436305204217188346973344096075506189228320800206823218825520931668268224055250678533267273935446279535445034693467088689978296597666801558685554392805496916001538246441547296342643462474423380956166974864326785105374048715307832852486092147929389040061919407758541257721829740311111668457519433771546660593149632260576395795066723792480455662674495901609904457170074768530182583591118470271817383992206591146973869040710668891914404781839401525549843098417404296297100375889026679800375423520077891886893206588256735921633748993219074333077632368063067660313305809936503927849966330583441058395584235470613925830296256059372949699177865370073582595672916556375753338237946506670281331633677877857765403844507622370281560026646876008330083477694106522423132196281717170517457473158031468377944229920625843914516306421928076234721173733905412416898122211627447460479742515349515614487846451905980558527492770651104696899879122692095436329187565984975816004981782653422680617557997788709829039794776921498971388294412989921906111009727334464422545870811256275160768956041869526381765629725352532046547322321411273494490007070709995343823704310299549318990729038940393600846457924780974770689377792360934824065290804468238738675355043214380336072212290228590015216874744186876802189742358281150586845563682198271868382822712022953559526409811922062625661817453862043789764774736740130114106191782005477288908821348907136348279155939588984311141468449293179595876873104619946621724299405533634560437264288314927165898433580145809725762776274800868304148766120407151948274950978760628543052606091740304158561947710424021563176127625037890826423309483212927690310813309633553644609981134686582629193850306336466883852804520439120650966599343761209721035661834491420632975093591105533838199628637611122145983100288638777522538898710716930772948289682838818008789055758962870282203495555921919642820702660166974704507588241236492467930828360440477992025567808100970827073963925898237239903150169736878073855053728066007033935902989405855071015558203951929452755763416105602426845117319470938660056472209964497000579711628683878848068645754521298876212011332307835994455796242751619061661208659222884439993713691613377477647967546404475222365198791890666869461536340304978504270563269736889717678169635891214794508856032492035910500052702912506617445710902488231852308738473375760962962300323163193177051241885518874008914452275838720303933463413703988374750037000413030323746168105282278963024065719542847439561363059606636727661637076243861517931768563782181670726366526372749429668826496421566909876575563953898151737153919037387366178108511437354917182691516646587954314366916574559914509134698300554346973946815184912852674368216332335002400415347563366555436747853435663843492308266410118637946368242741476321330855586089115991598069299333358737999211709877610100086351226966108582377960077298252991642245245377579078637677001762042169801201206477788168122853229701582651537591047279820858102544716438909214598859930587389980618144437124679609278960169959305673114778765164546041828068081373056411394770033955105929671179213573561422133497701035557890393120367950779726785520691309610133057995736556598984214080110895777496352490305867214403321226633945777603366707398986637565550566837590195411170400240417317419194394595874100949127918935832205096075154456583107646322020741556730073492983922375886024363302193587602702353834850809030972404723067483383427565419390175663305343590572925362906666292442988491888974930180463368274060418797264455287909103745901527962998641911206412766341665467260103101439464825427319408260519252525514707780650538193970341483331883886244544685875028351367931069259265542345543140287727009644625932593620484150997618613559311505374332059576171817539372376834948965880556197103384605676517806077143781175119854958150265954047897160571142748167043354307983627680857375203598045470718987444627551568650652899034427052422663290067377061407384533145546369620398514634845405036245205155448090190444992779197019463405204021649225879685477096465918960525508020437435632499552788756401854856880904661726647219303539802576895540756070945089216392751733624848727460634457746061430015047148066380230750784671866268665480628749533438126508529861793606273054116087751320650670760095159696922847060025105918981686056367472284834036623131284002783496502642074294648098719581798919823422678010991367265869779572715637083820603846750851250378536868905000292924591381449676103680156504940064501720281008440749824884336338377389451464234998074348754194957065340487599306296865740177229892207041712379380368689301950471408053163679244276114987282434977973451896553103515163001928410739851952468072113643847868746468783890546685870146820040424766266911978505277023299502552375920218239761314030131820781109424341894035028781848335699875419549142490764928185012769692584507982309924563974007490022041400408149827161772232785971823207444360963872983969617695232630442266714035644801369501115127361959523389542466979960902971117729497985260181209594985534793603995870226035386844460060036455878372081734484817289849623343316168523289628174768656694777447841176667785550405402032877231291296120071756182185749660721286011550094324832066067170837338439244717497650650653958694806527498510964350441313666311716149092748008947971551280380890602661233877021024608712602369236278204272063214885695583869244556192954397982824586312915597016112139337667041604781465453739848204793206230545889183023663591107086132361362025300605816801169567677917218658389861106410284466693539512890787367358837880907293933556892422980921899937585652519996830353957204303815423832321558948134879730334986225669486094404523710963112042947370999832775237590287943510148079602410853182822727206520917140527163995570068548889930713270444263811713616137842164926708454473601533715351403225226693993156469392548886092771946950951027205658982085161141693758918584977673395810739552055411361167474588940005579265012516802256429132904645122461016116377589586003551963308462636809484298685578212459237860644910862614952838673857484606243294769755650601734470232245169325819594204801744386182779009979102699794363773861023435990197290266572176934905312421082014790107623442211764049817109404564671479648318500364607065243737991495754907464379355660866873504706880288802273716915066796162272636779142044531138129657889219079893067928079519634385544299305266711818831693181515330008198341370336333781165136447844956432026304478905688325391327568550064988743645297240190393219423619468581860924819914471822312563503610709908143816820094888145747918340074208805492824346482202018090066089312184871142202389059614812957078986870673096328350772800358466472526333260925467988315628147216653104290355106381867239459262249189718574662275644819232079120334629404623716455086820747807921200224810448240894376772964570375052148843238334778442365762659625774764216633838696810515560040511665892942265564305067431960663214938326852324112410309829261839656672653757096227270816376522222612795703789130273622424542802357769496697979160378060206119982965376686414860573724378570868569536717430528588672794150486971707923068099196355970906670860867044395694929890349846096408355212432082158722098569426394420680861525393226385146418582255088724356407610075557986030430061902939977503652924496276806301619395868967484282296966828716007054121885360112526214726199193457011249413604007313710356012354491414456113262081479722024456292008554596767107745262944640369871156673705233042276920606892199721228765159234917270882505266047849195844456959149545052034397221960570224287059634771994874534230358497345554348357522590050013267928952996834528300292496787153256950895599473560087716147867358907024223034525677092641861306526224026655930237961089086540285236354325701095038570359225167241337030774595282986819959453161810997086177904319521494540869980019284417834044175757475498417234322439525421877214719142877946227042455110384041022996321821486724478514170043239076582050744174333913902549372260051917805528866835927835968613048448054765207011038705456790506671332686146917932097415430437005900575140245303811350859762320498835003752190107317242391320612084534163642542090199083978951697491908019825707546953871760435550310293545603188254241234153802602357998486127102726194594617302501506272017827183475079537546142823224020480035347713087358554386583808986557902901720899215236260285441345666442100755713174115361881364359683391783668530395519789793183344026657639581776384415020474638391694349403754718896359566538837878175800852943310515647806316755976396846284548685176130784923521928758438571742115372742662475494600749829464689113132026049824266660617823621675211624467655718520142770726517054576989526891586548638365326577466124782875861639551056907937579047468002414808461730023500651159437599504722627953558309565685290552412433260659123965566162975159924678569767286095783870829726888186247764282460889091310277168092334173218186389413029912801785768100411845331705487807299353922416470846592767695960086133846725891792224684019652360040451922668805022913825254274427296686686844346999364644953850302964431418168330679566065919224226864233725897029749867798223798697035091567288250118972850543669699911822927643201346614262096674034698918812334912849878609458508308541160267918749563839972658793854049375889376265175214313400915629767663484039340597113895896111779237271973120087119028387238504209951365020895996502386923874311230076493895458704537403913276742754658569143249223442487954978543194217729551032904366695097122905794105422297138498333184568167800471652743034462150937374568908834277265499795897400277158697281756716217747160623935625132132183377063081236199066762068912611033583997668527940228006933262304276436320080460279454398218569268957608829810520347041628906151426955663260241235845684774022161533175079490450618994277541648766812830608767680342801370615151759365420040664344334264969630135976957110953844130547513738065151146567042728087879211161883867025832614835203359524897998800598432685214221661012138642344447403554153618125451232725417903752432846526134001564034078029508317387068633858218904309437268251977835434140441463122505028998509562964721998989599570276017161080026390045428066701936887008687376096355170539610915864885224752259827608509868639319086571570514647943064980794740035993567831575316978640164121027673592744840821479316168720146307368326807553235550723378451966583395961990088575605320464904398718780003877653449848279127297597926785893238835197843597745199337906050047835747413011343857767012774677655849643653499207291127505244780679900247638081336083769159343073447099908724612469511584999056938945819299683152569343465601650490736543456168992441785418309627877468642564733090801771234738274986537042768589418353870662496945358975129763649216620225195597820488201122024520631801743185314053571493988583535207253360592816564736622280375125433181190686358045011060008848948725199038611570686001291733949132919990989699652040286479747867114112641497352355060282805638673189135206201822654474237530759147972778345485196580957117670372489113221874184884205375456643048605484171435420981220790343901468246430804763093999998809436403623790495669083066589344116671233071908768869022289082455094393576537008813954468575958221592423771337592890494566991341957756948720993455234879742554959734725668245703275248563420580300519066333222614729844663566441394741536163903196368909701892934218412965470642120441579830928211275512323094119704687036675585862914686658160114690758181453238862599468813061100858655243133038885236178754162451931854885430520476587697178187186060324509226705023562330752865400634453747477398103301753010639285876706600683662423915934474792389358684474668813439768412895220852628080152478115809087282720910682707148879262220018872071335834731160493875032024713505110973415142718851074543943863599825168938672783207606565843299641926687729117880553063987707589284665465017568713885097853054377475608159818905381285975975872902764191458768046930395798940250280628449443997726788334603498714471591118640875088480118250466062694928132550585446066807219280767226318541970608997272793288356308679665821656376621268700062086139857953368721832976694352586585218102197112799988523286014542438864921063962550811291452452556165662517453982107916583229482739198907226638085938777066692017984543733382575833561654414822741349366889946275662300582348641637489129257434542653687209861633471954725605376490261109861602206371517203173107223352777902356230116122158872190683184769671215454477771891976364767563598836504853738681471118971719168094424532016562646584241532046095219750813874943627273911539703898102205020721137964289816784565719998320957828675482461992552416895064756244587568047657982710420649182800496114178996326534938369709961865633562525191279527466116452893243942502605394991297678948685545138364629861387059300848639514482754280925425826592818116234558573696435121661127570786587873891004750949502074143285562475323406880694603658663822415920594770116272455350770188320341275061651643409892427663619490660405147590189818284704145406798633774958971593303210863967948024522360219047075408495243809362207420421644466590941861151612542143978530353147142204276050991099958425827065342806551699533764135405683985905403911441118107931792354792978041774003118902834014205913178601761814010139067839451607973409333145292883356826676108730896556866634147469799092012916395177656476041001359230846407781118577017147547093052279610780512922592213796676795242302547778686909869863959328301752671349257394247665703796719965490579103464517210563161116284757616050280274147344205937987385709393659976458406436347102341051386856098154364194620709348749556571515258764739863874662911205252188619786447193534012187708564430494976466327211173129663074014742885338807139554839666151164358327963270714970366472045548239075241704873711090203568887842627143284596829485901099120563280067781728195594808359588637380060203312581204047411619510055707663751391852063501937756689087912226255291511541716115943112322974848079460008427361783694526536568638908922379219148889415134127643812867253543943836658764989351173459546582210462070156946249629829686586946032971642961058302736294664078669548047160687674012930983882701126941745767284965389499677700135497071758739769885357016099688719243980125753778863004529960603894245253298127688379753282943478474717273694838978443031544557233271925819567795752017684059491039451024870405297775461324139574737024958069521906119355246561300760608170366063986369091968779673269874206984102154041358774349944248453987366289979370493199201243310871771588908331459369497513444150308969888483367048895335173438366613750498866788501897876248896041891956562134925599579469582151271873602229443457603123411616222118783062630160025615130600896179588091337785993827573891166174922000480194665397167253199996787824646520704202552895806129348792215707032350510788733810356132469058912542801673145222610510975268844581739585286749700873281737026503911418808636257860068677095357094541862720371829592329394290073204568908538467692807676706078362731454661357464511861419269968400363552457866825286055236087839263372094955686573058885355242731718303555576619560181320696970523147285916036574152819379480390780570177662496776770830545339964410411490744480918935442371587513163712069092849718818652651795696250608768086379929927514381917551314128569838049905838324664071843533573031977719234021733551252475402895946451934978941878211165244207196479633540280842768258745505143075409128869703382757982917252701250517485725186567605296857571710439851775863465492736334978374578557751759823118887963560642928826106915221138773046907291178439687957179969190876747446268939010438389308935906815055062518042834249848285474537390911965500578748523619442673653389203529338179687943458851309654480825952165334885331425859066052701002099813049869066106986772341451502161803321817251780261638035508006115148516501870348138649662322983550474748140322134137111339042015650468629586325733803273188936337821297631232408165946581252935606983259454820972718723855864012085426527936578437086121319008494446316692276804749918097816344705150811603055468454777271216035378405507104475174017789158501440333997119754393337190219371611995932172165043485986068599075814866338515935225398283863657870494267924624822064659076371160799116669227004834577383495050767456171329677415741936054230465108639047074309668302135313137383915401860054831581999478536840792438863038942448666729162465474925205755454998328995505246549396464110672470246181615198685295740835066271448492976276103276615079546740980485564804519926700067541051461682403713366468707391805762245964512112517214928446078387295065526556240782332021634284227449734066706057854813128416170006827941652408616053049764141535310762475851611431896326641215417647883980573951816708275462640191334272469434064546092333107500561374885845601058707642805510491568322992177718771114228821399142351389997804809074196675042934268844058769309739698849212657406507384241325904995133280748918486312513660051689098675766189306418601450768899664364598478242476379218946820529332861816072858625490193606396597217345974246685348919077150969594715984149588357499407943076371650758713084303506596563276142496891702704725118289315301163513640123233194847773556432256180885507268633615667027747665131684473045892330468450358273413921552056559555054402700770957118912353700328939384719071301230061494850009773304190162974081294121310074365216967694737119446504302675287456526427117576772985100227318153147912186678231763814300133213572333164083676304828635024622929510394464197290117772306739817085494282131685487863584423157565151264246197138635698642648625570072883284977465256569893588812206561543274352350542264304763070175962039989445693754077604277206428566156427496406231822580913760461333554092581093486568339592595977232926299283940707102662050696026191475071454672953791936057733951421585773670258125547777805618183848629235782904863041169675947595731092163648745128732060989775157444360628320107517560505898637739464267237256633132915147636294596529573750455603308507170218653864979703998269119572356546639664878836705324991760547624637368838647432393680307112408140098413134187190232461398167284743485685843324906763226807882989699853205500159545642584642953957832967136840868605551376134831638199710691041124877229308565596116289251943272895673579308548825346218805978303619673143472244736074019048825436693838594986438967158443464978194846087046684244058850581329094867528103508941891768736013456703984025409539983912926163964011975850402830598747519890383637633604795218009056399940711149016348811608797558286887112371978411312774047497747160299039098629320119434195326130687558687004791150584278118927360189884553794280093835596003055564249057493383113158126893580917182167939384608913110009137821696025696194391563857097721085294853408402225263153807576481435211101786060796620215364574519804287924921559609178514675534716283451480976984781066794695258043862789330728544307551867467403178992059623253069684985062225645379801933240714701053883124572159752937376641446000243334746342161564710908006844857331009969795675086132295621539489661290707608705945773211096139595720683769817333217722722945230201171495827462461423008792456391539977587988893436051928092805342757289772298270410825265060322474743465539712444582110094180852882766428721553037320730305369998331909546446013490580027726873360909675283536989869152991883777944708673208051172958828522346346613521178777082202451523309869472048802369839037472245069452923338166809156021611945380712720856939944271125470567703391660685041883392112071020579718959740295371913788508239541844729720512583014502236399845888188480795321109613607068185762270372222467367863298882619535077488482192580101028167734878013651737085975159686350692761148681867915433063310728405287263296042746501674512098057246159835312497965083360962898465179248508654985017657926748368303140237251160519048200492375688697048132356701387122140348525975716982314939210350445381249343854754042877162926078715965971000324253508180067985047846704341071380230002355842292762441880983121027849845688281905621486116883829213807695590238595988882718427141298315357465948383508863675568725072370057882080806516430851305753907148081251981972754406042860721307233112513435473512282372636902059233468408952903944181747222180808802420374542922819505156020903257066566675135522211083893234433013109226745609089648928471600900168434256860302406518387125364447910844822863457234286300447771535676792005126801583206845145484620537724083170230751185826958827819683280629318141579629230291459009238921910502400330171598536021068981657309597054708754304915350757283471021367365907829889889859188258506383870582323610401342736802145772797812650351447130076685198898899488125113240712311225423655374109305713776764663088980819746673440194853967427464648583663038582926833163247475856073411295604423504815136650364369824130652116487321361727815379001118438764792147306024859969662645976895999616672114157678742716314574342191966125438248680637950656707837930566454874971508171264992274587707051401784032520258374306723979387519407383478213542492644804594169360123778415575683802193224515671981468313193517176876767542936808742932303253319005776115303778488076717915873718241896292349633577308871330142065824064720184368666477110195082256544185041410485950923315164175668353359035680597774882628603921630511428440147711227677359780055699685645156981544404973095656182081410723455507709488931646638715879782699096720104770048662041577436418510088977512294013386215725597966730300333356089650457129948604508801030069957081183274122014028846731876121147215076082864500804933506058341244005349924100791897897156942929060194596166639535739005740828189795865610630214250940578026003878066747025727850423102679255268664164783757239192657408335310109199460586891262969289722799695616183796586253951457765651389915605969119257014267769719536221269214924793301322253417967338045456906900224486314543699280508959028798536399116496104569341635237381672700798248649593725432944147501742253488007460536685274107358142140481381926095774857539832396432202767689829529932229910059111394809030625786719468522075436723314415632747458413678296951820909075753738081522550681581634512968584305547003405730937195651153334118822579118429127897624427424866882894608417337727628589144343810796632418581374338465591336125065621440863118565507482036595406311994514473552366495307424361262208221587779918117318239987916772686246981001330899344134103255651244750981673830578388002793178236626680057338662830452691501217498811101066266316999074089546788872498376069642675607327655020295306432024565848803574340919018457969670918958359215806431892115502078222540589621238504836333668640526509539885396018687480254395990775708635647118107817320835882410789339848496095045157862369069379091029833658612505780061282042832989870130361742550814179298851020439277603910088639919708838942244343747624450649943253350075532150135691645447402450634142172092637049441628544935517496673951868233770388227017428395306486621402208480235694617451935044520055084298960638549788480292304687650931824304560690662412014323288603587029046926956993772836995725611799981416803288920099720767647275016278368676505409280614368255993407537108512495335052183812219579418437687503437478613569746659621989929833979417746291399911050338566080297250556471584663407144188104066816046594308008476074233269689870583340799591401173561401519392927093827126873574129118647878817379335307972392211331923087224051198776757392537261658645494269708352486288423730510869231211870617197851882091508255323763828745420058366872399087894313476817121025215776821785403498261233445733212541743174510218535496555794341519240414293857507345018732263112696526148087256926960357068121518907376585098910753621028837150272211457153420899618755816531597537322869658706613441043924561443118789525746217250888142210732883214864383691577885022055530437938704387517855349000333364632825063606684345881652288584391434107449088740095011349925750083793557515655530087911804733639802807273511498996544983963827932308692981654726199994170358824640368229603474754109759259242750221302723318111936925255836794834445355812231850163728754602455914289361798984100341014967367348692796553529916764681396203188564826286366520511948155198319369243601872033962586434774202443854834329270704086360237177118957877448782109083103386033757165356383769148111551775783186058652713314834704707101474914407295267173437318892380411957913758311717249547015105322902122778856375914412683590991477357721896785668394789665546193776843719924854092034774794359735964590751000134136846327053994236633182757326027905931328900717524232979988202872981545698068575260272085345081518955899801537985910833026265950340924822081696983094509905172222977479309296013722311620706318059098098652204984126751609689936908715312615410639114099719516652752102655137462106723975453675152772266427332500755330381155779249017108197999874003433206894954302021233491655975534138475433458908459721056512617527790387371558021681020134897623004393933012361956067405655072576447626418641038275225027502488152042120144894873427315767243977751651960487715913993375733052156316005828183275242512498428929504569726627231794999822413892045811392228819709672866813419965854508925414788186612143164646115500308942954164150080443512671000771719106608163491160104940952885915071027319245300921033761574785281901117852531960939737707588345355016210512061861846016959484792422655828320538917434141914253387349283626252747562106500268920930549803819135050751583315362729526902335454906730690707946290270980430696775777232406825890828825087192289923845356124960533609093119877149768534918771058781525115763217826880038364325320845549496605992316134490296229826383665569562390291636399240531845738319733605689630290156720278747647422923743120838753647797980211706640414003623960342990547821460015964384903914086217248900119363936205294911649019017893767741770081841573646424822803477659833995594199947423513808772027356499653746518050592837624590615012486354904059035044355177396875212569939225314054666167532600959644015081447134085005994133586824015679689391652329956902561795703187363460025492750797585724069987753769610695549112455929371681615609269974014748594909719575283932785029551163731283631609414002641277143134385809364107291831885578184391193113021591853505785782678137409515139882872093298720891708796558403379958180364109130176058364283768346750269744791732736392549826609286541266862508695840576838267736355761018840756880462931100001763138204199133842294642175476228763268895103256501257806609110154182617597117863011849312041707888481703544459114209246267425738549267599297215826630124896079160280796283008237698498425662446273054786522712475385565870151842593678666072623746429361493122303169711499382137162377734101893468412498583333897120574609876533495437095445810473411945604716676371488771940018585038016653918844353076806785521002842208061018153259866723259360862911942795285067162032159562926234421085030375100458021678205859431213178498651650183889714292810204672766483396583361220050412269954094524631090541486701656213111418814642514000685943421416229501372411950289404024171529620214821316942687345506174832577489901727067868022135805201631717965970625499148910104082259013880692712259987661906499755397253792420978780527903122745353722125723678198168627754360065993160516085471941176933600655304932700154996409412462940276077861462842633799787082124130967482772952565904033339871301663605205152943872270926530023128571127739343919972429465616031492288646383048211826400634632244523276912492796370919004482438615272117389775305377841510827018790264189759855383778596264182906820696661453745000181300442328911888657694866027583877335959042462731512065310700129563866719458370838733374116746601091992771387395185045908801258933212300076873773015549656487600196170335613768537917224988696987551958651151518899233964377404026446439924470398896605742004804032721015036241892940336411139263377145508918119581383383687253947293240389677349417727572432633495376177691729001835002883246883886987950819533655684936889420316172257096089983877696604114346887380713635732886694565731398195876502610707205753435936987091432710787911626182254976907553732968384623719803777236231809736891476363156320680379009736280281088287585053991412971815296291417653414365299145634557530013044221657691659172587425095745793957653893753036421680578375343302855098662064054075452435691746262813876434684593501717415278680223023776571521803977490184575810753124548274669322014100272939300572929117621035214880684096544784225532687071607050590899006280944494041544125979903224124825012035527108482428327287589558282346012480790359453607551452455778970686125615560661857519956055930629398815717579935142218644071941736490719241613388621126971319696470919362692259276948298545364491495700074237612921292323603059666213592836282030699078808805121999668602774249656057464090508451435391049329139042533888425127709057601151184202035456414506444449010782789988848064713687008437520793992285780285701935342047444621277648009115981826616958788590973656478940478393707173135728739982258573969020772103809942881150464298883094494924044454786736122123022757039653886908685660888787876553698707415515085755293984122031653671140160654242065181334701429717868628670228011430701444166916167408653114353654457479799883948581817609375813386343333766617590533780736693573536015267528790695641189650202033357210733808899466309610824372068623219302146718458363890870185241132918134328309751658628358280202853556305480095571599558325799607323989738578565005477674779670391511090498756921023825514333579995503673019820745821900048749242699574152979899086871730421524738275240605907082474257011227827457923509399633736718748180532743112051847120267847752090083386487213036785571691640260973226149453488810879080462204228447443664633582506205040162132348507672215523386627142706739184529675331976786346613712332199826656324363253366584763432108359049298720949239937137608280943995034189114830381557471417815582502354265757912628486784371343155896204842120816185495628236737048853740157449627008784538419610019322843303524871055429251799693607056020190735343294620200760125597130168609441851620616476085551846144876972496857133764564642265819585524867635352967726260535000581788607462909068917526820412288909095288680657992594083431707378728903935760603340051018821569837572695459982616629797985048729238902148392184686728837823176595598630167461057061452447871707592731394688115384327328803663579557186911467421331077290560641179468704062823097815597991610013305617535996145778201905108781691083955185858115063483858963419324922410193373533868258017796347254924333494395334730820885110761001964768083535296972651752073636555109093550722826878055582945243735371092001721142032119241345654770286804415288981070394585867219999501557324809985828194705024327685371858222513954169772255381863207594062400601675013526763846181889905087656080770760648280117905622650257124989422317711154451793301415613391928780461260065836748114701492495860181866301348152830500412365295448474450072925152423376273106209782725047566006236392151527866635763789648977520106418632857680755744966281155830213771430835212585038748739304921858587305438535772577496164601249484410256647519947148391522286781639346730050524089814533604148559961349394499994770839944506945155445022492199442021619793842267373753937949623226722285386802475335992517555079881065308514115936620972306881304320027523510115839808536726783823064467514773273496439737139179620642893007605272972440367388052216300601254688013262847559657881408164795058289966536403626387157525524279608560275538334078225985537964819592395081870746511589622793041374272458137109722467964276377544135618759237937290070250924878261605946271580880382698518389682685235056342451863346113220824571685956629036159071770888237758178297442853120871778920873080686496575250826823948868355830601480948120322550726054447216280485949320085336900741567702025639774804003670719931277967574979857043224013030351234337938411197029821661280096114167486792059034433006092038120712326962151602480745000482531612025714165395295967942096933352257598429892410112481128165009278907356034810567795424425760213014727289280406159580145217603954999382053439349706018116900562565772658749355825510453805442073938723186726924108085068952040829136324210989199215280714404684523438266010285541069807184064568925394578331055032312455345826601252528421034592986401363407261523462532886236137271284150829779267026196621568475477119241247250177529789667783797125311377925725327149623459551606709309460248921895919703902748401517771378917485996929435032616528499739142563969974472209628175982733865805411431972011695205571358490259003358825035396693880684900126935043592850977290715042157460821239398530558487914547802322044624087886664370552290220175139973223288678688038347042997299571673161783609680959438033046472501079062140132769707243973779291518019335822269299611160683719509832155263506426881587033357810251024412791004360908528232436526111062921624705504001152899061130002871383312993450073891829456956505464863326564296251020119435375386901276687756161310361050108737970839911128062631653520533326067434790820360718112784142958983784217821426834929419438602025449855900611137561912900764830788609371274075536297148248568635049773042127667648264649560178876056031757502121612496803302035444245441511533298508888192240343398638539813298479095892099340934085215655450208601070983897606342985245190555125570882866159831629215231031981629653153317872470778701507131165744503140874924406026251013909933974649070791255336216402755828694414459466036476442893242431384106299071599920110555737871414553955684307954164748918409887970947592268171447927698488463099706599751824296972680418944417287114578579024252843158405926878607314748342291176568696779061878189963891431780290095995944376135533285079635969139689524594947120983849474935097727485840661592858281893412623595037678890957507500480316979192927775562355179533285337824270619789568214036878822256701559783990423076903428696451205760620783029133928731582049336046882471967250005131875296952360507990072268215013972431745278383931053698839404064304466033582206341013697808660383921758509491453718196397670500624601091814374473901128622026150385171539507502465700305427489989986632106446923470524485266358419869215485060736373635970103700820045499135530234227683615660923718376237661323071794294035051620589837880575761639563189651328333799108098628743715032183337937481271006919655660981024550343720431975792380163893383788497280096200674952639522924552530003915132865200430494808400441676166357256110336090890357870266660457411866011239153570922307993506275634358669412124140690200098429728859971055262046007359616597124624587280019214922823745704770055555223507901007425779641745666421813760767728021416763431176633476092805124487517986175014697651109231401998502475210555143218320324683862236386980214973252917268081826916022640145198571598986306364769384673462437353362122945267400297366321892755776313361433052212983732893624168380976631121784390646592131852765757542452149706408572612694855555151694419169634563494851895549099861854707492170919397215014181583554915177803493082841627853032003711388766971247016453052962514625354808846593732198132460404700507874553157774453012722167870969923965194481002766772452209826138895761193998258213505953906108253438307384613766434248142635030356353280882554565828695145688348344389864084706996158155355657093597852981815412281024931162677166475542324543736455209716055534344760049579913059586066547480919699758523696391054306053299698617774555702748403160511015000927509830541778820701652887805648588835393009663784141645146430654160945346492749719443088430190083243450010711224850958462363311559565403500102538107765487088903824482105960217567469170761266444651549744820261769359921590010846789424863080931109744521680530599687470719493341482127894602404789986782270860395217898191152575910924409490610821941572188245138787525105378779992750563508926517782275699283904072625943009940683658411506015542740854969171093225533351399055771430122456225359209089289954878901688738794414981766740919472190858532075881342435241468440946942873442303467981486932066690547644081879075643327809690737431561065400350336256344104554056116584256661946413156995920281660954660404043307842960942336428006764252024688437903702664327383752673444566774360447591172345544312137512998716053494178990624074624805917515454214501015259350185794979677091494277629876776187535917697665693353620075264400558272233782574612419177510398969828500878046291161247029359770415712278682084150599899003507649056813531544960105058378252154072295847814120922607738836858332569915595827625743699100895388635258579158154629740992889295565810872246879891444339328678006124344797049409511498725372216207121828147224720560791632035468453582705399969956173342655643802139344413441781432747347458571334336964504566883634524530004149418719459219484336580518388472852895732812318742723572081746464906156807088101174985927243048800304705360659826362448722181336220584427696347899255367395689161759560083127512536373114862891828853199647740513065287390111602795147240376520467967527572094612954884943477068473583886574086298796841386854129038445673491791947243547373577962973109501363685634098652485123074424925486001220483463776965774869823809907533872473810161633104522018148205171024549027040321103931752914123585900613219958071152352465327308245187455190176321232392660919553605337933941481022223920430585099111278122083417299854285324888997493781377149242350646220604970162272257555927202823045246168144832779459577268405740735243872632512177386078725223739508292068258624582958286602422370091641145322515623508672835702592065793793580717231657825310264002591649486575851561663240059633743322405836357689136380996606783331520553819429817545186286239527622246426426761932200572609407080074537976602069321506604806547092367002545547809374312963446995119364570227770428949198747314651599917434466366431152703209631814474396846660701703865683892904137261451792052830377980015967332211262139211109269437324265147451532902567797789786279168007426457001776585877276441102488175387095502866366285702631304326182167559973407551630874118481015994778546171992758064208007645039393096765010791279645756176777172313252870877118564365479815572132267131671034283337502648092327092794693618754237171323743211882013104013257754206155347774738095493302956052863142992396761724259517652596037853677004865430205037905560798497617984976754852229656890866878862727228816635729965074212178167101318446489839792745841046091740195535945218077264960164856589633127651777256587055663862467702202973067161904964760175553191743069427296380243999015786258795403804292501039962284236096579961742566414610828782467130865386722519747486475160037191223164329373613721418190451445398538129030657845525777681906421502086639354601117976077314460169807722149462018215475418346815698669749522143748395574360990937730628569538919333632277884147783147016358795275705807090366941321434646721421620873597452407196344419139871572266495623520912489482903291737923475390647902064059689445858181883163725056971508249547210011430612911212796492461448149452673204611809483177953710626138560659281107487802047445339466878405823283084368252349828787878723104380127584326528875932890559713908709489343291878936358752309503197241494331147802681514328645709073399000646460304594591932175490547053317780363061108023837904132610217065423977768286739489552343409114590980321800742174826630803310943203510224497654058743052687218717511941262182496407053305819760578030758724139895291925934464883286421322089511972857058085172912608097008970995887380884261281947562746814442658908170193970695114201158900969329212635055878691414422507111789576412606821203649731588155850616088636087609145410649358397382046054976991260664869741727460455620073077997025851000427207211190438322659934125585254218741031547322259605089037109905124346378284634845172903396094077545966357132459100961756763029023480504605636796417009621159392723484723154635934305942047878391654455907223041721402185485729296347299206902594182993433563283374619158931099366651490270631455346378192132910495364916167968633686620280920590928177169636016432038717636110189152647442437196853402434141040966015175233063101005427660172999592407986052657981817035438372244189708677491155714139590504587071241318866159966720310611786784238817542900081730679000770076910331594768471274805145745012416960942122068563871719203334477014312778358428303612558669722799227600553023795754766876108169953269680779921056242198713776427483934593400770564856824734564374292896286732430071327569721178286342863180307846080543896703122565204815726550590173590318065618665763697901334100388048100426918537388288393764140930372369738882559938015301602765093895222562548658203110829663871847889791925727351648652994821211128582237785207552579470411165167098301067388636802065032351221422566629020838518497397969219459740399672259293570084223216544494338101694044001464217270436903725308849772967616083826795289327244373323332460130592584153258528018542292697550504851231651320117445020063422897574979074186647609056661313606066440044968969697212349015160103161691153912636141154812019175440384297310648061380667240679453841987763090520418186455398856001605808208530346674199922554838143891426886039051307311340207810322056539906675658811834697124731849574210492598204123300698106660267266711696986925236996725712083960758106599060488550652559453746533370816312519731527315099997994543164744803653052545522585838843703653135848914496887615578098654561687941532633343292732632005480732988292692523956547035274150938764856434363473639056006758434295779253318528562866308026045643506051869466396882768368303391132105827131669010536965894843353034394424917499437032897561269118496786675396745756918673960184265955632586698247362632808326013041622007837763962863535663722658247741018746398460913781797021993624669433787561051423091603496737482753218542447344046986722814462197334456906559322604513631677572276976175152951313685227957989500063086648583338358879170854878326140081434318685536432540900592565775696365794515185243227890604661143245633459438333635555708743837768195479358597783206072790896851046376629561175361129876481100581050628573833021491418969175732364079223940038761018773068820804520987063069665011545608978239558975650821895298053734294241239025161320915068352562360643229146350152926876256308839547958673606574040467597603190075156026286994491769911033254919036462191565489658363878526176254475910304043111983313367489637354305033470837868025988572971423570280320308651757777636626671414358456262372031729291827115658477385191493002681144009361798336375981553692131194616541151993329792365836354700798531153404437551172697653606369634960745709208910153884541024742189227367753929015254514876178265326992234093458834443606532356957483067475863959823738062392209697911303750092472776748120961480014836982845866882539992254174831248779909843213888058066575280496316938509281661241484204855904365375260557067208866019837147246948855906002346295668074869276448530988945777025255927655136843481797837680312522006201165499621938376824638114283942757573358775707616656887162930170018370150183710395854417950429051793028426298424052204885287687017992868810223410809450030874343238609852022593583939779916995141480658359577079153360421522477570541381583059805172426820302391389961878553314937010018173759943534051799482846602724271389232420663582213735640255563916124604359314445647716177866866219075699419354521024055957858709626247578237422408723073946637423015115630807962125507698184341575221302013166985311539109517086258592117075346833924898471142457857970929970095577749053693445893021962862232942707370913938488090580763601623358850707116507059220903422702768367440471779518562158464237853809484391702154030916967118014483350415350152398578786248240022863505124509787530133362927489565881013559983576664132584186768819941826558770925409282025365756890916920648701645652031351912023088447792142018232383481258192523062906405913889072670048017050238028310754987743595158610958478458204717232047821419359564352300682408293316769495863783243373629213297448576488445727694223181462916904038740784342539986547618600703163787244496872408393259030407246300688392527437834320999780031007394854325596199591305431833800668084217007647172117108083147313042201017879602727695518486931563000038647395859647512708180620202911281013372150482991415981465296592513913475870637105740984625317445175515929826926313019563163278023172545116337528049349478213609651767830549119371709810834938941184111728452961564504339530580776362310393940021474620213824867065613243912892408055084364894505142562230869827011391775839520659478505746967206455657639948900823506165158225565200555796691516136075405962475926530219315383957703770918635363344128644336041922563641143092881385230927858644517927850386204597542368888150965913430139335350472349651327867496158750834395837196203126669839787897116632211286759597529257421038357996509963160278725067226121470749202825494016182727916804905828715215622649998606310950999171987955150379163544412158335771216658935147063557670774177455965046723469454445248778458271464984039905889737207190336078242914235439200614369604317659974379932847178302267780133277821692301466942679873820594282661912935915550241534659859716266438807886448062050279682904455324822018847278226014288024076614485697222371000494062350674316122741711142021592211570174269652208795884730735033377786843630900466032245551832580310406736353432215313256371953335646315412864393601892189735346291253323333891122035793313455212024376390413029200165188889232334403531933367434152687761776111174702266205540216938347703591864563743276148501609736069422327089308607225875039556213370209528527353177977315724476882687105018858384863039847390144310214636164483879364810692156136003580721472419463903076299621691210963202978789883584021172152815430062371612253285159802246433991570443722024644840539304518739429753938795881825815778171893391203385805833591447523824338459959936562998642178735541514331313377733241353439458095459787784886429886558690531155543771295866335954955920668668577694628692434141974371848682290803852501750620796430006123119146765019569729553334365643626938747146871714052440922880724819709970010298537210906476202665190151089449192159380568240426536818619821561269994572756486799464215799287829129083245770290909394312383347883415365341888408352149658397378248332578501210947675253707258092841993390656771104604298884468811126935015712428077052996412608756182246277559805968030382519629276633870099886530770620542965884164696345591633462835642275673914571781582360311976130648510010157504833030154770302491248535410412867236140306031098349430425067285756089151409672762435903364564307491542474254059150845773248437634216808202852072595557958941675923129498538571039827315751469592829773366492648873982104721127762546030868318566297528787714424385018991417928230916621968644740854954015857375029628552674287372648052720244116343425544291700571631803924242276210931840189579542060483531936162253735381429531430785253308147812045578155571523993259521478795622178433397101762017345750034375046620133042414462151114869950426685552171910185262342140921878596694363227555129650993284624716694708031896836340029746673701764473427552726213171859683344751368681813276114950659644366300319556094875629789553225745714956690143728768706478163327939054276144749325362371974192670057766902686266425626088989982012057934926592812602550854364029026921121509072591968524973435083718315581034376731936819376536706717274969210859183308824058934625476797100626860295158177455830115793702824731391147386204076255741738014903506856061259796793063294355409429380041815640007076130075926793311261104284337747706669506693717831315567755353616145177698071436066282269672035887426142945405175390023029469569998326300451242047045045527328386198331781520003824904847794211792678398582650955002373020763311245160099150755007601964345824837757030436165153733364345907750639479875369456718733037166639725355008343159151892198479029219700501294339949570671150484079399450120256568179765596114481120929933105911225034785992142835622524850388002898353419049400711771931121130717962409362878013075878453668699614135486271003600750793954306732703736174672646717212329456789507275669597745628085120230477070505117208513422935342795649753485784433574206002892952641607319014347585114120356910175199319424272210273389129535795331724390419592833741522546851074427748314878926369160857807930305359014060162192682530265309807459500678630325596620504874093175348477543016697409925823301806975932328567426213596776085475257805605396880003244309000425155019060379449983293845229926936289598267835862428095229881133017270023200724208815113725732110353685582212702478465355993074747067827654259179918439115411502208293307749258950294842996022677709323981603331918211680594978658091077234268648570726238517624869166305687440613510670928647331627464422512380368768470351891205132023999158743610439622712383225781529440390203536020933739191149988188052506873337210927007623310735888527641448900288612476854229864742077875874539558424177101421271522039801426990158806628570988057170669390661906903839737440153107932039771274766966005235054333738192298976714214491917439716489263052927490811588855806958731606178494591691335020180992855067928872598465889679953606692207619854107456862896676884377735027571541775693759308175237274795315394112679619035049651624575897223932625391686215610458922611228999449544553186315026497329888967944207682156105940728402460139245550763109634853444541619512655555400156267289301341725474261091261081520946866256290361685737304611262080764959322815470544830377503511347698848019025948303315818620060887078018481708426164768340482473633512851170910962210573190950226868606609098318347407350429928393742861568633323604382087094260763964893300283409105366920213102221196968365867274560153129776517151183649532304670225441932352928673901643587304707448124431252703415797224272067089797211746325634858996907176554986493461326903812010512798654252214573097813228208365707607380050367561315036555164267868437241690655562517279834906175869631762303229669645966076985711179553344107082615503943408270743961988793513627237439087907454814083186216651674174971766864210875274837423023477127202867189691470943067636953255285550797981563279957363872370541335219111881881915997814561230853704836058489914723122040539677271963041708808021723976125906337394764734226207643086750556046072053889046910366775709707908970521372322113646476134023183061260694039120279897948400098116406928795025114744201715500978925343001603389974140059260682072620973881060936296099225855166066184587101173050040982911351844536392604813813715340011572727658830498040391504087812182836779274443908740579091424309049869725489556999997685507352784286592955514937906074037563049095191410462279513883576477403636200554970290375821104406427100628690218584250834731140095073133517443229570708229140961225824352884680794167664374900949458402528654264995475064667640705423991351515763519164491832958715725742961113935304572970690064957736803201865756169123508829609324078992648763326933398452313827809515419818884812817812769800119885474225627951799264719498940838620269735522855900812216819507947001795903182303581131249192467513045138450693245275941257007577552171451485933803958451293973232424551802100530793930763083998392820178674982785068950203266195676769500779384775965703924828360713261571106503833306005323026595298124413242506694663413487940194706217040719279473403434273841495003519732752537421076728289327851838324052520194678361955375725340872783918003665228848815705159181907633594202112305890828972073649519071962567085941148216750097042339022053206793440915575334308141290468561623591722913257660037333932938359319174500047887388160711155511768400904292133740181138339902483727227642211555644048315196414145164945394267001792130786890395462459624347210633413834898355230683742111302110613713319104428516809395680363250711801912877643304921639820889856125213676243198409043794080140231662231519663325253678500339080592121728688442712452260036211086903065933084044669202741471547990398338408669480638943853330399196845282552015387985185362001805785817912788288849159605926426985895403398924055242096594304622207690681586048525395674325452567215745891739703895861513595631415528593359011295369399389790211247060577990053030786153643063858287045195581991491302540836331315922277874452870479872706854600402690758258359419858425114751102469755114751007026709772806380223167498867056327398845374941200988482645607721637433072298252394181880971884703831130820692253425116060945431924127151876036263826822198412445823118397506500062983127036488112388809896167873025398330684133314990086539924601304280591880801090027701242360017617236538541063336817683048710763762827850153935247139447715908542757419881155228134030846946711104382711454886911980629107370639527903874124421992618869091781113272707226803963690552781945592606425103189497960982406969118071394794941134340452728781721862161136431228178171146410379803360720672872600758349868920915798822892822003980061851300391813097438523128871705155509070155355758024252982672121232946464635444723031758464252660977434331482134868381914113894841408442214050709517290652128725280114870243171831378136855890491225531180544881187948874007008108290933298879686131982009074716356982926060903225091652610508630008723158807754338242205943930741000872074024429251645446706498160814958170418064718601396504088229227114133210486811274287680719140167212758527410090431072291990255822137306705212869155010148432476979496405746184737937712517731212218787401773979631020754895691209977470121282453609842930997794022826552086370592157153448765452782624148778796051114177064220781428558458464655696331401231798503468112303175590392432175482302565023045367559275320455591565463158747938385487460642216409946847170264563279556260628602122189029090273325340317485876850803098841808548093180592355545668304233540732125473786639481686758072475941575687679923528559710962477537357849783538134085224397004260758556857724843365191950314601437403654106320675575516470758666509394697333026083845242426205822475100345561748435724874299880636778110417982526631726505240766047199076217610421454592783013137194502490810591813772080860161705126985472490919624104497092565255178667366010168459456644520590945511792418327798728465063955748706527330271932035053890630475436178643888399292288951799398287265904543114162598102420146945351095376834473261798227280095009319674553513233733489327627974148244982863341190707413963390423005671308333749697557071143666865719625874012326066745579480936353638117922719429093691563002189727650918131649701437726486167812283243402811500533011117363138558587853726858470403109541065655671627229831612976207390061174488794828848508819250540308970034252896989794496359325537499258012545406794794432767026729021210995484376979282988943419335638287757654843980687240452126629610145834819242306633978347375167749124970271284412223697215420765350329993723651688208768570495830020040078027780470198451021545434072723166632890148036109007430460441969049845946286063042054043027029587430056338587861144009560885490208404589944479465660088682474537889275803493244320399687527891582416297999508771988596874938451642474621101018502226055851297300696757048186584806213429843446126862587437452066307416033736176973387110524983369643752338311191996872235864004532457017605793763709586062420787447011285647229621344820367242568295214684474933692842779558312821140140965976740408329011594383148856003817287700420426477318906855451188464218688587507272749291046317895582647698355921572246204081731226529063943821168523984165394843477806188343489490417368227436175430863113384961650559734754967273269286191363080868765480609984344816044081544560175875844131447750120510294171739123990386883846848368046472718065040482824286801223707619928114883843183960998563845795169379991454244659869266145827726413717119013757137058920199292878434501623199281425659325716979090636697597966558779656168398364092169644777333556554137878119377366462283419683900145533720784832111647307259681355469545598857718771167550303660015435442954833082595527710780001836579809635519244721262231910923485152343000149979966300844990495875817791533065001975429902188302531513650169336412250990504789857241767283826564101664654363717456900802911656933655343353536331319737602927157109340387061212459862239334721953502132192282843750092139327170230770287180974605013722113428610455852489292307571980254760587883351326010926967816948856214521130341907195612371181145196333402987185666068413011754675441978975731936428470296485148959512121234523159927518926822806122989438149838225514964023054335991619388992446515917946364746664312528767868845671707554146809900229810237557877939289928199851466577549275100631633085151658061114591148678183708661023126516386893235224586058523491542716705285184494502827231329415312107550240546386389931834531469011019968160416345586517693599930960358661239364186519333717639774007543890389081993818201869813642207687772150623194864969994318202187657352593676355374241229631364293835173516012481942663464157324346990724120020432912216913851700848127458469582930470762568673447419506305493791688725407597341981784194032555545929880413363697013859406887231592157133354650219601099200395865010724195341114426917019249020111880380563580792104114169595271322498474760345777726200372737243359469865707949800571361228210780043765899393850404040245744164261822054512747829650325470674521904528599536721351878860269766281909010309558268149404865612559838699375141066137462816116828302347100199658425552133180925686413747073417656199966198252066469987417198857746622701572750666444025336152661497806839619314276878822711500023652709499483747381260663771844964512812409717924907275942976523499185990005697482389749236739307519650476312597191816754089009490138854598257212681957295991553662980556374075974886570254677192841111153968354660431869980161169624930202423122614236877682679812800598649925975586077077757787212611940887545490833558439287358635855840513777500973662955201294634459170384264151388108615939254984758336314814384534030389691443090482410622676221854997158793062096946841549572500349828369742882210514575245690693700336208949015886288151412249686980747233699752150244125238037623600956420776895939598986004596988827788806233627927282532287911676885684015829317510522935988488284549546475039960510369195762021477918905573328191389366416654019029165695298302668171261084922378048033298760659465425991588971004563195708049578286275776786287182188719307165751437749616768798675846583088074625748062150964197040504560851950017530035762348399923044488870590272859086211919219768531618912090261125706608615405838493919107264898386631145539935530542040855664276598787994567838584271827648309361354544284434318149236120067938705110653561396756557129259065059845953117424982249337536520119619695001452561524904612810588230497676398195185338526763018404928537314358537025730124284141296816701921601824490013685331055697781478457037572310015273523892628913501718518926894130064183771199109749792736108875298908800718688787499678668907337610038728507007517746750510422725798958818380218230249596770548394604899681027579473991162000906097718369735716406946336123267002096896612448551592985329599858268086980240090420719155194208897415653507738799860222439342862000772465869100833221179773589082420191938957614229062961517711077466225621369657237802634024112456439116101461289472027307354609509730930798166698688958078911602394685029529050439200705806695648995130503239061543911994937391626841247148370804305281468805345636343588300854657262196407286754663473966361293659129509555684095186253322438510110252973183577266975218565867491715272473263741045027915494050380923575490234436224772115058172688835028122032952156135537787368037255688016571423675645021768779562740780879741907040196509416028151293377013107100779371798932851603634860040286798928665310639023514798587626340676464117315914869295030296937307019395460368821692149395195904442977188856833585673317430558117306728680766284346319902971685058555462389360058776158343335462151667277801884557952694389152798785967645281468613864009048258127691936371579013413389412715760108659920630847896404256988187919972795018343070811245252744558751124858295733339547650818468855040403044391140246874723240949027845436026211121191911027924813357288652879754142497882883277154440517434113131906673709300334861724858393753892418109912472340634803627485638545286644643145329358835682497483339006421468511015043509659476921100452765337037798648189275232732844958254910124287045448716925552944675045540961767873614807878333558734325463562611724617084951692095284416985237984647314798185797223090164673949457573077878966096895256430166825505166645453597190367973278635417700691016854077477638014553111728093466402558725864702450574993201893905630142625216405286174380723991216522768198019663457770728382762257960069697161884041079117074241498142541797441710392624558308868766210822988272880764557045242462917731028385190815384457460439195824175472755918343520785661859142848026976228709471273184351700982008506196040935842756127102446890441322420220104110388916050994211282543295414466455231960769350655985158485165421195386222517153243069326191484769770505779272239681773234777086842338365493480393037331852808840781452396550410241161751001861038271179517803431432182242593341136683073872938660035236821005405114302437094613066448779073568995790349755251335498580100358872696592987544634560654452242172278199167571526796286692235574420653683447512031225488830631042812147430256650615249592409706476862373642426565221638838223448518736512428490126088774688557077853928737079199553248646983389754313371127782976109325905980500280511271539863014495634891555947105275334756981385620774546814079228098215927100137005763930236851199545976226636411534086693273188639251770818426577121688203006466180313548791300628204731158885917009749775092878363402256747742064330354315011233028393100013646748718143839885619493215197645193159285685954920676629997435229784902020334280721560295945404340895987634268579544319882262807446663073458592155897869217853596816826282821540128732423894844962752230032811919421125983131686987314574325819679067710124822494419852954148072592902778410426731902501764509555029257219244091407566221700565129934098284905454918001755311804671956347649276653965974562202823046413049915765478738008724722988838549182111687103119764402643761854666166303568378869066218958822690674437323897929554667155526133430113993557477167481960778620771344821762904999815015957175378035085067898047290691898515372123285101182797341979949433972998564193405051501387537422957808263223229744109214532184839136624017240590235774716009730367536036646848730511454149251034039904463212660315886011735320464248192120905974299918820466157752460503670523815733921142452927835755572404099030834159134891433532883412300227939546729231365851812985502626557995456656626219184308888645965197360020333762939844107365193292526520801755749358629490615533061340749627066541950164633049879169161872377321159416021839409523260632122393052725259434933104166757156031967593387740552175174442131097756581590140655782801584935146909261798344458367919616206345219232222154572158919557220935234951505255828198826617124705738909823855349681446425733795343230100273800826064088941990451674790128335339995571439413583794170477041337913391748802728065258128332359861123410553836563550649075855379798695718830402632459490078962185212428611239599987277790455019640508379872594334601746493915963159993175611368454858351156215414570956701263543288664603290079947261320531092404881343737123362415009132661033848091698777786244306190419500358367271629047280387856035488473817197477286537436263273528756013676712737670900978674552232702147687998704320610375007559474797301113390180827749217263941736572127855753800581077217408109698092369333589055052687295095277501103938145810352531914783653642939769501581008835222600726037665519708473349716284015393316181595497134027297950719495819855779334216726590153786552420297007706226192426900255829472222060242314705526811606536044549319462323112831458574023788642042156931629449930681526323363924966111734497122231831496662323100857362202238442279734598220174079271933724748501637414672285677345963259429380936606573750979973120808163815429958097022293279771846224521361492303184442701641744200864035977487180509533603184486240853997182228359539413901698203502922636155576050721935092035065147044443621377768606842401306937776833463578265848010908109910291038777876352619443827840788839910272100586714367852711227490072844628374306578530664725934864087349077320171291926040637617574385603953673488735306423163910854642514799030492288532221867088024157825523609098119207433578745383793464319911213194722358798025249434528506745013232345785330753764484123297797700607285537443860425452948141747190706994635863793452686481207973850067932342266537536614482736710685118275487175012912818241126224457362281186187011175029425924963683356112180076643330873668960908787899957569218756765986035780917239401991029149771362137262718356607037724661470344699643635475515448016714050796279460488284679125950016531699480018435726420440118908372263253917918436900347032240079016216672160202176152990299021920877461404296397109826785278808860379902907708071524823357065595659181272432068026349420796622073616497866114084098209266313015003723926382492183194367623235863210586104307545067104057835174621103486839424496011118629418901548026401600685702091598062451491591904108997277297160787324350695379141620334674460289474317964920244308684274252555292234329580680879514867230425401247824173468461379380990730678505832990838987787410677755309866568670181566182018914936224456283836797219074760617598785028242964040385522108678802529122092685784638410548890059662086430296193406565116126340260708532418873694301068579642530810436196191410418998507034780160953248210184253596793286950546838566321962472334664930803160463600985699170822463492590698012907284627279625019309624940480431185568025988629273993577502830996221846121532955108364269913042226670481441392980492687734601468391561455472278200092738891346872757271469427490406552625666179912980909635079992121349902232122538806554229593869633981895754640067219719864358523438613052517442881590821614223160031116432351040584660106587056792840674940453155408248381208454577417387596088320607177807261035060535876475837763482056898724765615344658921290807786992399748968757679053628031442934867931372529969650010806737518381341808733747454658282256015935000835142187562937714448594081409807134283138089476625194066278343141546092904262234315126840529361764753539791756326459095262407724927129429505738036587961436071472416729459837967288011176148775522101121844780947623979926620158071404672081628508236650178768702055365348403455885442450567447825556289511870935826451090047556471535317320304655071465682647447139118143303046998920019294199018485669171225580446392675415816869749483942447287367681004441148892922211775366495230851702225354787516834986151614611754854678004852088423198613248127909362633816038093812130941361673498694162848952803744199833250893280329663078268378479440113361736641119853207258935671636287484583024066553748866300058146939060614334696556286648448001522652616640595848944839228166298674381199969860208460707310705625427382864368105930044945169328556228831582293542934506549595155626272702773249979031718456456227719896069329225534902455737305271544499832670674501187966107514143925727789904978542268924559432418127809791158933353332673182346128518458630423923855310580419093301687251510502925465790193621132388272934371949077939343731598602864922520616663694529793822696788262330093279186389196353797274717534406444791813418205200519813838897631138888349293288645090156499607726753137813583936824606897418699355378680743300352837112476540814224466339529512462243852315724026900748802270539732900627573956553662651539941706148609705972400369647435813492531564391649576548190806118142556749060960039152487404308301805689878450467185846104190056272120344194439844478446019217072217880458821266455320000706273825873588848691471125394102864141527055900714606934690086450966535722677156126969971737745163127543938764531055269931825668861237011624834126223646905643763764649611308585941347301627184196049200239155832873368258767744093359597116969388688449900483677327561010859739647481064767071311220477531398118700074795894569897106661066304628317276531697690661332008363480602762005060524829302699418947488458957655040469817236104959436383886602965387888163256499873356150161019825882845456790972141338288970689888621706801136575920434669098557117219394059825059447689950178399926378990532664856458016388251191774792469933802349094548869601441909205645041902685182793927516423323769404774793233959433873153813698616609721653160778558773479909850797744763998432600789991990385709743161922757540636020543821165260717190969240615039792631519627450427161494891219990200111197278296078443636023044560653274420263355612790785645014925453344107400376438269613286703695146683640639960603135000583391898181014373431465585878069820179928441846700243176214432402784733327467750552104661324818804413386520353167371484401853020228387119355564219620974539108533928287703287827406891339027128686299921896339074390967219539823245796245943777344896754084508992493048683359506628601537829700445343301745818271817144944993108420340464336513364097930778095696078463471262368404844203340748700797318240855042351517201255085995896876330451778387229267302536494072167626031415994877776787732496989229417419019305037384049268019991177138249464756364417868166408288810420652030825527261455851713231349872460896849273108101831945274277311072359242910223862886900367092082239440458814304388484373118991691975170151175622264558438225138710301564252881546116451332488874296598108615156901970104495039760369460908061367087346641113372005004995213651470062057499434720715508750614038928712755369436405939421382234006092003047988333997814471220359459448143732840559471648387521739892509654450229736080717408193417879613511117821579824297145121641437975530494060698200535830364078484879509125039686920849221305598168938286521700261071133778698460878352456355835784061581979387158942418282743186585655891722599439412235309989679878259171461422929767654926165818557384230805978396431912053732627963132611858815083042846748370731554010547368113668604456569775179195591943715026889722461875283109885010535469314741479177083787814969382973715533383425194408009370717727933613369249311387737778782825558129259674560504935382885885347665378202163882867585560478641943175796520778438415139245717113068814684572041637454197031419011240068750913561465164491006465464776308006061478096313220402040793094680297458021651889906138043884854965522648202588245537897237691175385511184512079830503991735636787414664620095975058944174673648331845946653220330086952550078397572667024547409294689995253498997106327948492995970688168096012640338885908601888153501444577416358848233718232927723665702358395723078191282659687546480266250716169392808811553972469889217387161154792630683834529596315243775470547036047869332387735115426292306618733480514306208576085652529071529300678588501650726291145449377489687133593277692960282531251710614145019365146512581460535543244715927807831903673930659448202860112546792577810207415545107404341942875349357133454301619843368858620248517917808956522337148348152285843407842920462785113548400281552060892069921208910450276041441943402460787964956638904742557046678013729620736177446068774881337692777635770943178225216508225609015662254160919278497199885180548636900818061706108260452140370233507188522759327567935906007958558123820614998970932176885553556211114806599162428877248465714918058421204677883078687708993955208379956153609329706728316471576594375735242889250252791776966416921152247669808916847387795477064790783100172400326457722607144874725415932850667527005249742497721257594840066181707182178678758665379846717233932323634579422517317872693239126737469745757376405273639805843606839114587774732997489992325401348656409690079043740106341951060866901353813305049176352472014677475888228351643123485278986862896328896405323846659190699659645778638508257960550663006283866308348026904498821546272844121089001659394631256098868113161664244047072112594561158387599815433548399685558951666208189454348093970667204950629536148447693371809429599909120628931089623257560564407455070617934782845215024876823927028696033555916531504300860754967284331131777731426368225176325627879404286008760467750978291010525684621873851419726923792900743971335499017703285671945285180379033529197777414186966601269267386824255050297640965672574425470865258868629139455661437246379859258722092118614938644165718301024586701795185321801389937120037862422413935140198209821188228879536531289420139838180749079054817674916578522783030839969709665736008621218477069460985271999072332011014721596259398874451748193788593686802210311505564634639648829929115275205112003956026291170927782609064706864779219414575830642612260943987080190913497400880097271131478409200285092823579056039902771210718442261779800026204708526993187340678406051113187237468370980543434995801743652371293874857279989047844131453528690900335953532326539343646189252978767400672150923226239805480889768814975547239333705957003410057743184019079575432643981401930692502685201834001039292540333791048012696456434958997132753546654302422123843107170778975629489113300884957857840176917489677430490757726418398562084312410677188673096109322886711621147794660721047464917085292437197833573597369985778340382114102833311259006482020337561533020806675454396461710608332443442421300780168338113344873329838791588117100930259338288197097236237805141607724147411697042491219569478873058196793399415623587588866019744825594562512603988866200125734341215806131944962325550849965597569196261705030902173327350094820219017628949236816936568835594205681312775393631774479002000398586270614906260718267451651879271670558437740007911930538587498298537717643896030777211433347476411929621129397678289080230443271245899374215897135730651322650912754818092628405668055269484945660813778849831177341704676378681282475237937482314290171087085032361103275190517016479028602026220203813399171270394808804515509693931452414785687225637607636797656650356574753911725319444657594338497653853554857742277612337661348533270999506201776497609164790710299200444444044788388580810499658011497941420335106906463982277642117919876372956624966402635941595320497360171495718576968415820905206482304892318436454433212717751533499238135246317498227286074715484226309236540503925171578443622662623467967246539635148073950275690496365308561694048855455084900042575211830697684105661871566079201865839848052110179489304161528971681775867499805570405111998417369401780967744918427964971557129237593639105778309231577821814727029829794851946583163123839701039857865600457129967576856381404539441447039018042096807454739239182804066634075451249894497343177602401694500220896223132742719227858752077177626370116817683875321991012306861957996425130382208801290905897905103465236025274668813758664883539503600084342609382482067316140749190905802540577113742470147261082429598461711317476967156948091591678961008327110050457023462097213259712295213630545100958403141880150451138936471831079189123679420365190868561410756182253703887880962834560351676580632840317762080831348810308796165533229915120367196675948319516425522073675911779997618491433336201232251184820518016214162554625959212049280380924642847363061942919621590922979555791221389169270553804556640926853892699568644682854681906632459830973466597620807835083131173895599997290455863914238795219617362871170410977842712503667156583711997681438755077059927986388255657234909913437963860916281897689042193865149156436715237614467955720212894541716665767937037696186885956344503357141517298285966662735416120223502944430216757107555979321461274945055867238975568687999065986799348580659053647915342174130132966161117184794654042552657151135836574681857198427044364586356832376724639673244782271147519089217369144785415791200307293437243565123431350607119443393887489991170757102291725100167217213737031101930425505189636313398265494150732014644892655618576412320531424852427795340908050032781316421299499453588934178509899721017346534058836992895588657144143654836564275321610752981109855469388057353257093927229475174525650389496927917422089676884324180838226255531634446493661637329520380888891294406522425906290789928061523077174926903611325788296723919302602003642292805285207201390080277647219325767129610149483996503621950261487992635479628876065330067999352041575446040723345628212943382666040183684331274646774545885389524289778973169541617678804225730256748358907859703820456003736142665913431216054941264054640827516815080868735352543328005058489612593609778839536262721038218169112426996984563649433295336338348616573521997940181787820550247850249382105243298688543927554366956987412125494704605354915997857561241122775687243370618889057030214701587138345505039114404114379228971312098997797638795986525813277767074501859873887678424174700567970250439253579088496534034858332077702618132851562804018456063534227076879265178650498310158965251482133902843710869050843937655311200427932204918510470747217979010188655824392951211163339045418150649615165633131434934820413035197004106535628303340583739221919787176446947285198634334005154739552192975507771272380393233828024458823090317262487150051545742664436981615408414595549073075285604590037029454586086253851293598021957152369515303710092432060719343782344298668337178137302630595649998238644704045971516052270441757361143251443663267704331776392642389619019558207390681043841403089455275101204915628467467091132655131704840638235333675961676590995384580866567443336045441074292859872432696931505738359487241944285466943165809427694988591713234265973744324425161276207268053657299130970842466751201121077055123539219483158798244822254227385993706832712418496474411658384760020031283158840801340380832973760058871436947963952794624032346437087213253110581413711279280396297310650417676795395001193885483475618475814294433837220071832808366537483482965487063850470331217074419923974526805661593649168499944865138529738606972660537455279474329841708780828417735968586933380840428178454769197446359441939512815886273196443098490891906009028265815564603895792322389746991416973931186314183810347849750418842887383018212129492789544190824765916504462025068826643223314033488577285566034939170634311521844585634058634014774074762021138425310852817844510588011967503511599329513924554428319823079491317449132668435960490458622358954987282655418954079799702904217260237148642139079166628181055946272402941799554667256634468063744927328579226928377633469892257786452364383660283349800039138972224296666629606871804540407033571927197106938463415819523302270925752603523218905749718074034586335788680462994341952001771181280368106012237728731605187845657107090742610787487901417670940658182337680614045609836668800226257641107991712682717032457241362306204365733902632980711166126206676163597717888114917826027288982321231004349985135435085253938840459134292633185235311222491065155231153580880701792350798740677677777607495494180331435495073461563037109183150159548656547848984715522311942333367469704480266675043623458979112264636312467621911590169794282817552376315015516476227242183709182662777279651447813024029529870473597330699109928008748077079913830255314311437997717616716164687770942708140146542378048755570022774608634599169780961707906477907716040263708338325013833795429031673379385607668476251992389223141984923386394353096369692814879841674623454315610414397333347176373032920063272132940072651397329466801014953179871634182345361437022132475042279442386829083030871105194044514119008304463728392351434411442381567174608715352660212558640807279805611933890665348428254027677989412646081036242885659333380525174034519800859297153039553799781036778995491298825240716937355762987055030916135966221170328221494085983518157573958420644178334528646802975564113838489331293660128555926095621695213634176609938160022719526537163958475344128173443090518476322532673877892610796445423952396360179211103115354644586033484857438259274718746574815901001849690442154592592628647927781883067732140210426528621719135928724432168712518707013984428686357337383395950853016742169100693187857721659499799650001080175391416970841959243022704375945806888504993322313046072735297414342216686679212228191985085164012507841142689889225704917294011595706908619005473505001730656533284048385114278071943675150318626623066935275794402084474656870757615051109230151549417151326961809746489557071879739323355744573924363337211608839537156786811386956522568737479480517262056222408780218631305907292390491797576370549426369785973376080037593900289693258213920406419896770592273451696366772429687033143154874366714153264083376998167386678704484414984176157266531029373604332473619387096132785634281668386982285618843964764504410522457950788761332486772431131511343409248192935391838244205382936688074062799782610547599713556793305941297156693981492525086206524003943715016854657885027236841603499158635222643677186516886071535025951084182672985160545927219151371868414771455360151763566805684029843597853104555184761852904063678562968071603777742485696556999478323241150714270884837299526556315684333674425133867985297736433420287326092941785838280994051591320793497084484094992427134171638220897100165608851748173159542382291648100642421057238055932271239742612013508156477014318772912330689251660580158868271901975541539346631136148953000877306253128002529388080939088493277091927857088982218125285969007437867669924039576719878262576286495958107859762110053778114967276371207129372367528162705868869275397964041650983959398304572811915803408423444536061677194886478990333072227031549771388636293789521793254402384658021747293043222499797811556825647504256511574399105272580960216688621221326088470203689769403870369361992514771351687847220881296543309141852768788932886018573698475521423896046302590216758401568800562087337922855242082127450646450447726482523693383697651616866390212062687614019549490375594429070586402424235730638124346865800095372979379480999456435993404070836788862037238281976794327603092986241911323925277889224028720694323427404057561774335866062839039280071414887115399422912140127664903288884477941315165218228164769922154874302685024349637905161439795765653359890086525947883180033407651754042816432775005019090598090003657510382545576040846641328014490304538705141991309219082878796761051770973224588677239641166453446506894102314116456147163323139536403763188700968641228126272486400797496205613541790605530146809179279309219819293542822238779940842551167922333575269366389613723527639893858827096178892506711014623299278058153660121035463507658001793987421783693868232534861642006490329229456535931835698050898278757540800927474254404382754064136549720869828707995163579465154562376303871032477420373081131478770265430739359662645042260190491902527893847125038552641971617315674337969187947282302863983093854075676194232545746632803745506047888807367797434638866029188121860609693274233814493798212811925216287626870591890704514846603553427891028116559381284512099124525075271774761142457030123110422178662850261512291074872456906790854174425925553698141351011144936801929168926708598962002841734295125986803229304770414222926751281710311269147927573683743768618040395046400794922400032653133040676688090305489881890079642039502799741818886745561944004976873971188934099125481607006538312788806150452519267365806344637999892444090786292860345649172321843080925655584674371544926354401408614145029205834403372452089129452559969357751777208154115267316475469399495250498217387846123638275461222292554701023711066600595636583524463037204171311939692965406468265920586272019133169626786040832691604079208415075946039385511413376335181247494107707955109344966581035061178912195887867850142417300392935502742160985283450370818705639464802605660290950736152322443299407112042406189935148805518135607374376781144006229753317241253533288479577304201015440217012918667874564905955197029928375561020774811760309254988999438174384741642666189116890626162656959132052540774439307956261451318221162241579616579144527245904717508820247659305142834676881146863475847964339274526858263062286153993330588176535762719396495750520322014276341206692316181192270963664006756525006646043955016631480982121311596746124227098971456108867806040032255608864471805689954732581806798778434693082345955083479494832229243839722759192699749145312963922095863206312870409127262671497439716301399974470560269080845957741068923535931504113716893121388439925023752795478336623747894748412845231888917962394241402642646276506024834261168787708240866798556809056010890698481951207411255502015294897764432490930679084300597338403235575909428044311667852708135302362346700017556299104549684072884528548320322287991200321396795413314842796273038873776364368806066802541568869650946900632290323818467433952815642558548236294719622771638441867253272439633242749068640038424429795121623141824555747464019268791637731497436034126495303722346095947208755711174564646166507355795031988875562695369495849285019206071959465525129548381821643330611749003827205577893212652287822407769692285848248852910753201655788166770391971861607279339827762958308413062898232070247311583412435439213545589752306022581241025052820877514764824050673657220549361214143828551789401918380883649269067033187277455134503734787470174926788188689287333575015913534779563112222307425638688028199827123991602828173785091331295544729617381900517950119556888239207587485904401790348110983789003543167433526464930607604724791737954244157965967854731578964197137539559305952029929661133317873572948825073978242679073965666328961167401065962488751286518293205199754742689481539221685787907538139717262008323340986469852894199800705588680739933278897310226665836945696683342260508756318147214044682426981251575096736249458448434462883981134485867845055142331844494360577129356999958682103478960075883114807340498113300944918080172945033844006099304605678048692136691821312556970442319735734060867458338232700433898296864089752554952236270579190428497377240362897831051044240988932601861041217920418751493978999314546135895416404940731507458386845961084152488299692167395571581450668231419750667488592811012928530654875408106856273158588921161706431719451378765065902015564807227268569433276498559222516708641474944961854852161014039552997648310934219995185354703014296688371317077664179163133631469731789702877183443775025191747804708611725105926877206927940633467372539350544568626920470598108140809171528931095129928057399756086700325574522963484732351749501946146569239242836151908637968007895066903794829038042583229315982290580350362662819758439231784405267944511797272745175577792092463939348379639505835470040950141219219623326892188347565238693148047087782412212253351192162539152486234706177840186304161339055220576752841728607151657681580875951333448472597675667642805478891151912318225631125790781928175489491508596043327284642437234875175783608635149095542373816897771944174860832962174031364326072340879832446492543974157646107605081064704360442878712892960359248798807189653843014085243754177726077979966888587762554762203297733910288280687385557781652497615677283686490096302291430753741833447310429241826844884609839674120752652244977674155271380577692937441971109163455868354770772450697068212965433343656939612375625699736047591873870581340010003819426556881794102015028287647110039554070730638031868918985950911009920447544917895574533763686286980724707530870041476800247384302176856302059915814957907617893931945448883608487579263926961547374513219764993170271505961619828901155883687152989416629259550847545112910520042644956870602693234754565437463330359214068645158404944756587324798251255052114932202021531860530510733235692051449201839659546839987290386605826317761985208253534738455483049370860650677200745928418279158285853660824174761227804953369454675938349876945619727732727223650315037381286468997802767205555241776834457918323757703898936410378555144548534953288610478055131635249049543358789835863755743721822220810380455418950726477913597186447752838195042838346449198020275176761042580037053169202239594495616362479794587243080542152433556256674345156831319687267861065419751387107184375980639123137049127376579025812944754285723656284936601073427480232712504306803845577491911074701033096554017762128654954392360456769809455636525150643123629839338151215237554117053941443229281253319160223851209450755353214186482967443654411151540596356378510697739923266691871804642394309440278034050027108101204225319013850022187844028650201793079660492805782562002662311428500179054822220497475491648442197879999765626271532996283683295855621271085112330597696025897251293141369754876480979768305210819516461203635906024054253325927403845671618486861086021787645878242208268786917150037650210372132293428729069331957350809939708772692644830010890327822820630428617683351489938321449237269446719365384227817755935502879739271275860224516133892752679863279939606047475384739892952808447086153929134487373440819867838728853220757691381945878526809738431036330880558471056401507951433741828982979714072554236134173540052269891836642892189927063129909721741573432933608764772488177864022395315474075405691872673869890515480899092630262178984657115871195395741923892613891766650385205279211278953075938735248770427011907070265278740500725112106861200959596158699782535958453342782922079791529619166279270074247010078942272565945994958454905187882966321299934145115011027709763868033490157568576787075523323972080854672129657156220510965846432214904453804900474372651712484296088906524834189988226046129361238583890219534857306791137837246559711324072551280818047899109220164661233253348024800841330779122475036318260349769357766076503639668044017023343296848839782774048194773082647664734600248332095730863740315170274016532091118457655492927891934410755676897776621474014108112020534438293623542185736443269883948879531898194586506764414768804895656208576803875682212562931592383899274488424833740996697153962103071635860263235964540326763447906840960698352003609058728758054046369419714746201281218664057490329671310732266451809419284458149381827436320071570165669283935299600852175367767505167960118283704141071842796523898018550856584327709477756702380866968257739397364825110745089197114789049016108973935570907010886876841549926315730404977869844575121429836643228774668208554360553155650150033982833309504002794625406685515855598066356576421738732097957940457141867819935656940161521859554984847030580775808297652143755749305435033739340719027107829302734352855474995006034420800212103624215447827002317360600823907426267116132150609965746654240149847165624639786228914608532834620625555336046607389504163407054214592336538140127586088262378688059255281764064136859127947071666889194541053002431184721815385338064294194804844397267483951849907050562565251770285042845785226693836807052885775654974876486598619334807072528275354601012755973204432879919966341475860519643714784658343658951539578085058332280226481049770237262356474031776772856792247858811859382845876956525706226566309888856066744405977478906144149198889142141690621034977735029789306932342805913342206002057970537903801196965682942063560527214285101187878820090467786499718905893069180251540761198689521013082621569001543593789083610287755363349465810036608465418826322135246274434168492688282635182953653126466090336344203553077825638900407816472386791758924996170850116486433222971265352172476646729369507712637824107560720758125672544972994793328547973674095152690275131746580663264473672659351364981793877221708401527470617390873608939171734070796674077131799505165212336884372628572036758766219333211036731508932548628262008855255603668891596580530249051659167650785967076537323918352554915259633118734403614491562728889272979137519886725771433348893132039570056488317751877788912294897217969898651090106453783573711686159235668407609728925845954852866567708972836086328416111282386584877371067153277541408530664466279588972094871979771630637649240879210350240407003575866682187906881230256485865634239082040740266857462047155900377059856579227308475218365819558552467064016929838468068376991778717948763210089957846452106604555910197693861684522800068596471902836367823270125091054061773725695956903532467328521322425729895175930855787739574935194036758316029185207129836170854874107003424039816201094508707244229995271917224891743572475209794214041998846860596200063378955605880771044521392293173193287990106145025194774491462360654862827826300627397100184442699950880079385733723162357383639386271551091176133917166186310069380095860802918972294061920520760287676962215324657244719974551838702771638640180981819847987279633970288060903095128499286089297582727942696114399555378887522862149136658647117911221376352802322595208300708506483978762658629514736395301254290361003309172471839002691484720580677516355256525718312222852886639793743971982103231491242806246773566556098189804359786238119111374407924049188209947327736780837470813403001205580835285048530906366394289486132464307065899759832672799091616057168221336444340532748781411581602670565710497438124714921585365904129000648957786810863767263985876493164809939352561382937748111402675679179482666535095751581957433376517882124105294582603356874641934985536742457408586709970026442439376823166557453936417617360885361104183721699708816063960008313096819413716764049817486596080938897109057977559705314816533585193084551352965081190483241893141418344935534463863404603224500513220121266574335020926662113209714602173548383330131124458490822699764041098042384043952177625615125754094788419626944423960447488038848815100685155775398694901474753477430976706525199992116622584354454668424795214152674231709577027033670464672603935118073387464591042559733013266155372629861673666422172772575830846426500688188784428017730160736103147097045520257828801716187219810858444648066021545672668485422726328044352549682300516865405925545350365905549101897760788929900085900706261295970516538292005806183776797292357540959803753123148727412753384907639695967185406115742672061462485137129788986887475901932505432823491472580276476670694234467033904398580847987834657081380808254882762081987592556477983768546947030232628244311590870501372964166445580451527982962865286742826249360872372636021646451227358988989244478925093814259417034575932953124445835817308141745287823737473683686833968979906505337658683652320316088747819171425542042849029156588695128739909774760050926572032958889632260803119340032401417565932318806756834493734235603931635303423550909965864307177222998715254698929471011194605597995509541270368804217572633582249621085712815474958425506336161591375333015235409213178765433665403013060850426334090926907011102744403006018830369125260399365285512982627038032577274147166519440084659867122064966414850337001929400954155377823338651983901365807912434908452458795598336127608861302257488538574980068550750242978949336950815862126229258134163643212473678792586329715210427768057195329210657200965787094561194278394118865204775140918764000270662577402676251800853876038085229589063889296606434511518200491029858139178932201913930891647807019258538940670574127422932163433995193161903392442890067389045564816906542255962712272486304951956599190376718654891755122249924569370982365522918266003945918162315985930518238078450012219949427982620664197302217589470255948318300291190788558320345486139235106638476293872653318981033248875170842355801439465317022040218662233486707423489880763602726090133770698322506871501679419308069328769060110871283006735385783682963108848527449789480544917781730515386148336425569698505693547831919835054468324383925618517827581524704820561163402620949229716670445015330797065566675718076802802919610629777124286034412708981319147200862389998899276783086977186667487601213139784708746553701239405543447812408322685311968581780133865172515988578464222603451540409311584590899768956723661569019876209287665011122104358389005795130918216805045753018785752017845820731113899866119936217309467484686735262729752182863976019166225799490647689932318606340051240401880668550698893828471534886148639408199837393597136076649714507065128983955238423788980728003425281220311449866170614255157046595234975670875470183492339458729153882181290964437664952492704070162522629981258230261552153859158556376965536993925026256832708799990897716292382588596071038353461879989697045287227044380462706633865290846562775461478447906478045742913065745729731944345399543618355810391215549958734867883967308103303687005351174429705448480025581348705947480093486242150388489404457625979742258470268858541825023124937629084798261975996209006215026395519650522732977018887277369777891096700002405018392934959284315043798194710149058111014421304342230737675568351947792895041871249981413202498484208238257857888717347904385348733136179264431490523244375389469597307771900752012210971784809370842608190687094276977199466977383080566980220969982683849558631509095463975668788448367168276827609578215960608131249996552244534587001032732118955643909058458390877097383882832004245058325285001997228264773187021828904498087104861663866017492466316668234890780713808311662103932476597250368129061824257751284298323180247630804923437667965185137048079326315308884825627830174213300385840904035848760809163099788016427216165046843713567588692647245005888263278559180841992586630515149057450407400340395352230955856981232215403045333769214268516114273538693324877920490244685411822500795319690530543251594793887673311159854948703058831457945856656566334164423537906872845008234376174900373597494004939092738390330583603299148057321913450187626964952183531345908653082013920053125144957182587423071503707499150571034488047928119697184390092964702740588925546976613765843860876273651049702938877873144260568486206518248813308352993665922051762273317243782751139474169859627543672662953734271707020256737093521019303447291257646330175952106577282682145850114347354400707450024615172294949841342930904724640207729176111271516911405440806230087424707002052330485332849115486909081325955696576068724403472459067542351553838103971468885996779887846560233401215245706630275074342810593762834596937500858930103253502697981173285411047042665094327676600716037777892972767502362886526923425014315711378901889652580238305381451665837042141263068109301915530491796740776674631529609230564464811798486504516996150312000649315061156375768784637267374414301822016039458303284651254316748244656914412517224965465078082203244771051402698181374749609895745475059493560000302969709783833852607333500084516397400402993155262498652096064014041850890983742171389647786159556640038291131987005521938715258969487233760030526887055333052216955380486688301879757636762744180482898439230846488851910970140091429999259961739309689825963090410275407657323844504747500314558521996622462552374318312264080405731278494947653917159260287799884328368627738736358262625870513409620252000863000083384293997320694917783137638107195172711324375489390391829261994858606802281125309093583534915444172387414290765319965825887641288152565568257944637651404212725679516601910277885997198341722805573843062947945938020166749145358766270671083640457325590495781811210845134413927327392052303638641474591622857286480564562462015273533792638345851241397168677874686710013699075589123142638422472875958663065322203767004882839100775396001595018682935644261497505407297796579626247015020919418167453876159827631527928058492314270742376889476681390944978055333208425492535784430942535280193818542286308120758555507840039639161878936340596969830247022093863675759213743336164581157151783432908624070347425085374663439000399430304378631330502492749385599157679058350415291652518414051980153648731305198018778668330408981183733458971600796199419200672236672446227088456947191266729883218097345290466568775321890979438661589601762819619116442991368957886658352396596651277470991167150741195804511321397782066188766577408596851652895113122531991762399895622887559543643883756931055680141855995021628477498370158749352136421750811050303033262700266001354191957304861164283108023787482134910125300028230241939568139093112889295901000967692546885390109331442889820680770917366239969585440049738583119181470722754721682056332630471692816483492228772779162091722150672747374158336125613851183563730343672368969816816788338705695694790020390336702965651493966613346166102177693484182562183954862413209143243567329543789784444402899212172526505488757208619694659734120271830282108217150144323595507442627504624823012073241238346894456769524941861898211062182620989316449391745909999513313037945425850951480845634370739020302736599306111076097231726082988456783679633599864121028790478348896593295453379419946023102511852246745982239174946257310656751009988513093817352309164030139849172299596368244840771232548530521784190001721331652959247479056093472090142167883822667681034021863192698365168780054950928877576975568356972712304598379419625941762793943986763904895534635462625581346944289986007629800536683459065232262878673945729311893121218390042107850469543840893761304043319396787570819736232553475026664916954835683559598287736433710784330369395164567705505105816790450043733910624001989917718953806961019070542757314041472935804403558958815854152799237168925245853780632737764188122567407700455106647252547622629412271098257210109173733493416401760679890644718681753183215399546215136010548394594413162994262841204072651673250005381268790532554780375450366433096743572151777450637347869911099335456770723120260748400180153504775159699400331096877348227957047098036915687514748073866389004556935741184718511263087029100299883356900324152245539515111492642039051442230894882332156274223939686326719228001855339194931193763114862027099155653271102451872308580178214890917618312785067055679526651234933174750058592379707266499359969739270335550475652075599755818816450883030164414312901470583683065583214408655959391889449544314850383704130673600882795215230338602485798781428426426385990271278699245555771795216498663421050214214582044677988493148338416460193177083462920725689592236529241672162253457467966772664995480743958393766614565130409677432761707168113070972414060851389330530806929895925547953195790210663925519874545059032352020851499318965806307754464296930203821473111606175789361189858700138198237590049038675290604029680504605540969596247427802888013896519836184301219053477088668608473304069747649154265877829334802293008839542482580567055935841873317093167205935845389882078019749377414558162087636249381007324142446515870222464018827216923274977008172158558260987509983496504622157252825209181931838004031016280733752210041952311591013879048638309613310310660806227098183175555209346737367782776053565354079174746271193922061539866328737204488670178680167367670667089976490322504845219613085215790005886981226210156538307525986660520333557947981569940951727877002229117514325593376637383036386066847137205255410766970202869956221368108960466547814636334762050925769560583546868025848749579604146434343877976843817973061799285798650186752695020887428975310455911414909585342958744360517274512826387553362771141332840242441312250274972830079527131307267555189497709932476410173992061765906996188060060365437915447913185891119092686063946503278020651897732938072779634489584521001736075195922307394386933478303225153125795532472210802569957110866901873298964703104385370318681167060294131885524835815382913916563417941656472927062452774013395967976845292311129479049603578523190609921955881715627872752600488423861839738469238687206553146480435301794148721289729504526434722587834777687387559516770017244243814981549410768628303190109915533557755091592503844006060790530238457754536934838573819575331750260235321313769564814447134680692145549944363126074162588230139242277640951581468280847172906563148959261889229911041648788195789851290317738929695515557569908988468506357270966422592843678922021083726284730665943871193072936031590447846552956201893104133498064140120373025845266853253479009612771764399700935739107117213650051736387834853110349187551328683711505158276088992938077491787349692514701971086015632296899213162016772967785057270057517926450639756343789825938029900703764426494456693720461987933482094779831379744896820679111614212210926203404421071061376189706417689666210970741033530287159839774769228839187754251675406421684230294065505898148129252382840397436766255991622408016779301704915727755605486874360614380153358395103098773572649981264249080799019463622685681344417325732311801749894132291244800986005655311405049818352973195704994754818112629798643153957652745964937580774475610441431541888284933173286820623394105925181089580844263073084164605055216562429372322421462147864739314242764294539406796980401878067926724446182975254851636866461710188652815070833335167285035326590070393523001853061859641700108464643667159072543277227184942607695539064233862162506028383246893776410665118636180286316275075304469887336486432169660066459873593093261111126824381654614936674324303049258951238073482109979456800372472508772281090360714832735969281785436909753769595857830686301458607808079459224610890356991867607870080162324092796572338580867657217600369171326692971760286251688648520464344314302196944098149072664591421954958850358783655526158480220174285167540676478009408510395325876741063467648708629814731891383586624087753623784755926343438422725083879256909208981692050355439817192015942528759366656891215626086190419684645146588853725015315248719040151086173231843570946411950232524617928658825558031544035987247147289014905644028687915415666242875572913276181993236435901178278658999316819212512845999343383218055082648329851394761054393548743878431151750387474635844032466904357140622714956133356464169048436303544507695662342881060781925079917378679280655199050401430922612688674823134949985132228315826777477480800263765831166660382951018639935741810776153876387634067228500788443905041764784522009549779201705879491174175187657788858078145493377341594894061253055130364832802908480652723863049166386279092820203308678050461143435598422669539386318372272100955659046921407450421648033790923928056152683758002867892715868508618416627965395052533188540442027826967531679038573835641939923961980439087436577734896139290010648862696820273783451635192544295012949264954851991022744443414020569598036342023604621042011232181972026736073998212442187510930194561833261260188474778671827603721417803930772115436519750679177670395232933682611618720376198611085417917776843352207654692114158754331786506426007820305710654705479827395494217107283320892323011174915177998539136209454840672281998395072580880072164854672947402079200672413152900125835299896277085975602457261104770743416791467840151941452434428829046270438026099600463502597553623692071117603428889420017209692698466910977379667220824142944360005689665581315268707122302224488201575958060981626176984299882725428373186895913054709197884103637344797527394215632212498000415180863114293975885911931174159759037519150686678886097905531023271789560097277945231294446061851200527884923122303955502095210626645713184582498496981623417089753251857168813181502520158749816176220817981847494650760808359093389450679077410950684513128117192481918421960265489663087603245918872454975125642981582286252894172048604722893499258958414842829114277570248879757391478365590125453837541215121669261459303318714702987477830141469075368059613545794425897675459551238761470656774294817234346874862989197869903054546886506205571084677213711731563241583890764889958625554566860309094613421435187815125778976960777832436103063256093430071062881933010523168555236679194739705193471012602393776008193500668748983905538766295516056848003479090335424216373172257390162667752577863642151079834795634069637093009350174940996012097705328046394818310929163306329294756558539311206050498714492396025303460966674656676370945123983630899971997618569469144869792462261915848016995988985250713133563187780382168545150804193604689945465359827353040286058733328196648216999406265034788912599032871410742033343367828909848825614005588003388694707055480064090012882619396399119994539578874874860720772968587695579800469430971035106792662532037825222628409016984583262504911593424076679413544658224361019864840916868031629253631541839680817403166987242898678270516782031893230837094975719330572794322277977169525996847261062654818453987600598691059302671365884248423240434573140739516773972185326255882566339301430909640777640447653923174738670102608820642514826419210132744227190416855787021182699431096095216615468531060958955429765757225355385427507097678721382098617235079720999092714031000498075439008528233678795406338716712488436719273884571467477173672028597020463245063237233651844640013092133626952446236244989193473112482834846099695925944325460382353694695286480854995335950700556725014785482101450092347712889016871450821458582767151558421261235071335031856990883629073071494625130140679406844739184056270827244738047635562111541531274844948392103692055465501008667883222647616108991784860140808464463185498681157144287424325147264636530792011439414937255819075523273923758269926689227525903181143690330258958028587072890269438867215496697058948731613594868522997160182845931930256556660318916742348108580141592483997869316738502241970789364684119999148630409253332805757043113449258729343286044212547875551111461986096249878611879771736355172435181952960029052519387812951515648006046276470601252619062208409586434692043078379303524915234713883196823136308592545804599144565264599144583308855208068279174435599085374545047546809389839236576633006315724548484331060459030172553605093618957252929155776859847231924289268677325327162841671620525512154699736896486693028779156885699037031539427980012492908301720967070358282686315353752450539834971477554289400453880748667585231542527075737554648576462680015940284650179557866712282337815488080635809972994681512481869289189149356111784027956298034595763954304777526982036749445104186945464780677695758429451692651434704324201354790263030127096204561203757241681322147531212838717226950683613803770716972021690142725507511779509728519028979293517680675175170727742066158745032548071228757630826002849400846010606401857243425738678371050603587951509700831742587247737453596243698577170583957599419386219734809301881158022364283576512478408135697000837342012545567590378159665823679283838120150473462764774540512095199118606494336525819761507798840786250494977839843608364869488920374440113598582208376889217692949592857357820355711950404789187977464938180131277454241874425462577415563865547184893109536350000290756427663737110273955821930417257450501050400238853860622118940267032536723079797736855434051211085213945045936707192514538613844172914006394188096431155929600927559741198414581102631854578400828744455647598352313800900985010306859700472185371201643181818527982818705389831053593144265678734499046645625854571554906239226419431540368527648232620779299898780620190494340764957501029240444842884066573362475176904174687572268057124011729002797085991342086914822586567726516807440443313373480431759225664381524645600387956455555443558118081042231443609465617776273394680245996202835625443590447241715804872188937839698211626014531804328460658418816833724005368885952793487511212334386870273021705241716650044891722302092499163523459119627892629265674839793608134095791301376642343338311438931075370351284696566021234234104615081448710731504299989347351022309841385321190094069139413559670849018756599425158538797102638021948103082380137506752626103988923015286433360194883426917214961569915421436265806676638064229745083599567925696523123890823652440300497738042378949009622134996775605408355122570747616087152365032443582943842843780650616169530094653870567657179335213706114945770284345838380274122889677067062093318796567935081097728239030351009732928581719427684192865985998505302820097232844000895047096712396079210946965738828505878054302639831164450914214002179002901811941058704856842266522480156683190887942405028290117511561975920878025722103685608699647084836275678007262992287900965339394630282730994499001812459756570678343500812944199384550481546660556876843316446218321199582215141406992175403126032638047484358399541706332267026842802864338736552678232961478941711827776522578006668269868299420224899817335605909156203049163868075320885440643776085965567870188843300921686803391721303349414154393334646626689601068507267029794370205908156036332868014855816123021368414511560678513944216081618457883300332644089751685948956779639092122178514674948968672353357101778868753807795421153614761225588851677236098050713659882528931352715995323857736121617828773496853082174735810260977644289207457623421681356243471770691398624792000311167284982490554082924091184246130770758601101570092967859605391072614193266931001373956494937260691286402151362850383563335465044349328217151229153045420744184677475520968103045655329122222362884535278212253047589908059416662942481531242481905527629531133132445690938544188467088514834020824497626537303341426775469877380112566270176192574225840599307094609559227110867404628106933320346232040948748259027073253663783576586296309856991338013432121348554018165704089753977199165487036720235264651734751816622880955408317895976515213619091144794455747106141725737017066401926063834432275445466186569492407689196265137830970567870715874658698159950529958493540039976408117913397645896030456742471700425645993375755946112529798516907893356963415795340094972287980760877096202686162643344929093762273144937207286490406000505783203315955824671733299857651485707639126693531077936639901294928566312306271094581890916730827382393093549297585964982628576431569466652161359025550962495799377269975011465627523471472575208651081920264463350394076125601337260814560955849693746734212237272157940614834247805166759759176796337335180071153779922036247229620274947805823599690150638957122100883228677163350473571087955872984696886268690238397559542398334562008941741188091048880466555794661318021251077741735489926900689019239142802574240868467022907085991124848830089895413113695329733713708490275428612232145322589641284729816386483565940775698703139071717117943280450475689251460002550128025565662415855573328731309277252676822947096778719954618535568837029872732077077640458490666608930582978987403776228049698054102399001969125442983132958235618503754446644285058264643540587051491380923041825784411594526766293539781095024368075125260626048859978085292322849335646506691902243199423890562961214346687665705276013596980755295722857329913985460860892469064738792496680345932917081885695007242138278953210159354862529491796408112931388855455692219081827159027280749385357884008411659513952137919960481520701230255365044488032241428494817843338763289706660822546934336995955695354110402352433300455814222759472224656117032053810462162881577940274993310206623774121799432036482465977944827047788798974107322648481041031890001866482886920555250453989480740305149918939916264543296643384460883082666961186814900629203820603497153545323354347638347047611662261620698743297523401185868660478100741686586865661069289569708464591912842688040792069441376987110416970084548229082350444534682985869761403922113668887313514279946781473078353200134971958551030552942924900338417402485817972033308161544054549440755975531245440676360538684028887070603396705361618635711901941100663300227327433066008692380145580864189642215957867607753622228686346000893911510796088461328437055722774020018634343355060519134159760002472024798581766693325066797405041443024616428377389381012607063966760519957216590809493337711083873474999423634546818119579853747287240579065760092069849264733936799380476613000932341749709614032562714096637214269870591942937696845692043400237062785799207300743649078343785206981465972591474431791927694301964374173744591527952007447657221251631922059174459742533628718714848784030760880877930219049014027382970518183802042523798075935075340697323167395897007054295801039700523563995882630993037077637079152411041951083725370437339335242428718344771859816946241516908673946073702798105449397813101361324614061564164415032938455910012852062799961379327235342450698523528646572668440334337480024360996778880577053040051356925058323473616434774312635300415058410446800517545525550099217033772158929489078373860589691781701218513315384142516118073349809999584675248666109076792946019397124313343825678162673223083269501975922442435489973399047459676959013650497635983041659741976759729357756980224604650546516789271320661618476771559047182452858577446926255301937686452280998598339890914531857652499795344200593871526052149221777033118789640242489144544202439504366429647330106700873397084673113507101754080141402716899333489656523897789808709566045564901842493077057385549416073204851765228167334696949484082605917916363536239957056910535973072705647258397454868647444474241886990681224869988092590384082671343355720659683644886752361468281252128941486985188834714878889321657686156412523858239637258579605972358167061827302258606977206349736006263378026752949761294359933441700779989778877173325322075798066921184728189760990877431441383913061599554110243972856723513099010260450920637408858329534162361225107101028911151516671066147936177702938851855603462169423844785252106326055006861439190851109730078915289546035329459999701575058036003631841842284936664432198589744832412622210182751557908195385299980172461487718846900170199939673429532145427767113864183293762588850970497787564584442329149413631685685389725056109055066426813107919100690297322594747647540091625107252281776422471243108127569736882933954824573794382348685100893771016424698479086606118168065460827226554077366994536093000427005757590830645574809095857632118018482604940036211601407222672784281767136481841984923938739246590593617631310323832604782107386118917055566878505426446159079663039111496488296068995876306475126843188382123358863325358484144610805211318569300474273804767787532835759228873218299122254915856326796360928100244311491170084367864349169949213359866909468079257763056362534829362250929078272317676449777216568375040915531809543336191264970235625504162808508695895880466803113354881820177393962107010508006647183443809466251290884193825250615127018200269825423598846359603210158038385537905241113754240306612559250607518796172934947132571880696104293960932842145259761462534082057887729135624266122292100774397760438362665671937566802219885045643915576983216347433509658080649146186521775971827237733244717967683634051257471097911468839408977871193106947105517580365906757104282952090850541302933965159059819761036695190923434478925507730027388593795260827116853736512647255007912908288891427121404546724385611471160112519015012880548996215950699165145037823237806949250870142889532110659588879639962557455066992508326190954486246464140340662131259082740207259352115942606158745447750394248440906798827391256702105023555403733268450727105176554582455080702855937334501151562275018312478924471731656116348164537964765889522058233672775597973306111928958774924997120561538117654880045964153051631010586797057959549343564920090040417764016720623555630675042973483595802214801087701364579489925682947453676590865683566793435252613652011672339414643922649114516250495392561479297423316082035374653112900688843734913212186287544211559269588468200257147748228236681496395411068484048515155196727587776644972318601844565898248483407821970600219514807927036955943167746296201739387788331822769536064888693083184652317825918807564352640405558810023400780832734277383853228787393236133115536560133512531169066013104845861508776610723529626721714647602191416016278176026886236982983417055634828936648394797563630254071818609207083119185479508924121638826702073059730814795687867805609724822591466895392091553384151784466371865687166090610955291641612883126515744999301296347030836129743185306064638382566948549973234383184686439769788600213845332702974210848047242234308873493951468617374266275203568797176210697507232275230669817133223445277608950167691717625918915164100707158884063007894729522969539667848199205329846998670721847567461933848017108832681172245500988094437717500408037031086081143282692018730065040808950307450470559913953851181148448151230203507314540565363608801596128064921746478953855327509865888970609724752555790274009185712834699855614139540064783438396705893492601701258687955811952310941017379719582628889484649823074531840444432542083687228239544285695150784286506869073665946379270183623628708900541322217965179631365574130223893382016065615545553417028004520462293631060853120085291991800605410084414637797998071749690388469129531336479961378858231173015287508238181509057677150474239371834455646472107238327301209909854010026061864896927326232014827012026463223965328054948022024809819798738065667268650616915878556746353823148888109415365404383762496967000847337192575659849820780808338539046612044308132913608759479364543403888288369602280758311740035697829172759068129944028926706948844743365137794403956223903857272397153135461603497592393656081226800600833152648420485932266862665106040256716189261842398428710199211006003398305495777538120255979313864476477119553272085923498531993070712496799247686121537942758105443253226710492111512703707033288270945073379453371919833524667640251795167151042388991474289369200579166416406956982167094107380809491177257647161140797058289481495206823417682545769887084604957759997049017196403867641938523516732054474554210986975902634520797945784493697109466925663268107367201090632871155911970821253370248865957959171921840352044766565419569302775196777215580517627330302254327661379286917311133812617644844997052060573326071172388837818772654150187152482766538466452556243567774738964246292072645120782695659005006080182527470259402778620879086557715964286598781701676851103846201081404235840208853682907141611924826767662036198912367921754521664119192275975764667747700556846774098888971992678426391277644785896001739426452730715847498347244416037046032389845683013033223978539556404524896918265638949595068744645963801512676241099247825175051829061722994539979864838878187266187442058655023128593309769734369559987586094094424926157681601625000420757773747367950093529619634733140101387729922953608014728984998601817667214476262594205111115428265126211383258188237644694619494093908828903456617045141239690537655313797922522650489902641821424097597426399396443321882444381583499893723984258159847648499780547809825879491226403501544792308777327828355661814157910241300056524978580050756715264734832676219902250323294587254712195211433953680288649578008513211981911412215975018271242215444186940257441826482425738981131966267712518075332535412610382794626449157176872996599599143257558518081475242964459072317980953972162295208723512067520539349225144189040457275962831683664085697278210732734339028570993676600695554410335528403173501473628376658916914716596258720335152502413823837859528649923086259632426395320881572188423096414469215539717733666031629067366470709545442543745692089194157547800673294816601958424611607782325360933393780303937017463091766640990371285774369525401464043692521164599398399153275163366283822652161936765817062893464806678958787810316844315147295588652072915196326957533420045673271518858835358948814111408895890253473111244529216070336994685791729449528096703062695707096600586169721421770487404258736207492304427758936971846233843441041151578150441668812476462824713968983626432750675685689619631549546768102529094129981176135730734614577561464606470019996992310712278164828011602127235838498453714159391708082047326309357757161486249034077315962294842516107126378780058342791211775702612426390207144332180420459827428055479551869659189579906478644140649862301809452184956901999344825401613262201045529961487146073217825242700336295504215085435072550130316694786205842593196796304580552787907903225041198047743907478220082157200404056269876024469706576490923792028793968474142219780327067487112683163973040493717330151173311397194034263424120239254007836673449834587577561683650958505706073875457789059763460275851923494623269560286332453230861585376313100141175157324050019870796913010258486741737616383908951305528478481293734473943961590370552566924126693555744574413559147108259157588386379343711174819828871942179027576457968997581906065244762240490561301324216046432184031251867155488787279472161470357575113220484623376674638588635093968500665664666410582631759276513273835663032414798098714737436330602974037491153565774657427845680923498651329042986729034089517568027626162846856528879636228629928070347878914589021936292039980123927476036811050808324282152978870296771557551574912781066072335836230382670917940139740365107217165873273360664137506269133147927562757773877882183906713768878585752399363145820824588710098199284986742197620935628860275602702052627241441017943626280106999924526815748776866399199085105570296987881525660602915149125422261857889494119321537590167987559462726347571845124019523769520470869347952927535191916315344038227416291692511774232002925928138855912932294350315393576417607605638253125085480300448351023570487075721301993490218411803292624715851182454793203266032627354476361441631080094956548414051604666494525367203110744888958210892989261477538010814690905360392998619327466761591359767617834085105314208561509879005084916861372294406571259995885726868289252638488625622786233774697101009092631430951744067789683326479115364774254329642039128484702107972352053210484977198754125633492553843700054351559881174814410324050537075147780302471618738054767237398258729996139332572264529402048133201596116372762327562704424486097286352297628655343999257852819004043022140758694792310231845243192192419812503645878707022367716306298076607211862719869740062297415555741274923347019181378836052038389641433409236834471833564657947795153620028887834526149054198181182967710732631283095987997180445253818737171092355711109290075253768580059262164253251242389182003290949948273434323616625230760392082694247552568673193820998143369395885976127101755638821842968669877771094469438907836743674315705070590193454137101360613132642705739806825350889886527907544870408761645079017665906099483246292786657890071541546873067932520450263799199824972401801294508591441278255950023608869036764870245394239783819037326879511585158958598918403036947131188016871361695090628234805078860902275270786125754717833599020894754033574249958401566776551053567964828916955633289414724732784372345899222096917691283836344425963170114089219029333458066704828897284512856970530366782601914316388876576375195193155688335816517369405642078404296468509606676623777356832665536985501677188816310020170122746713416695611959832646676401591530093674509369615399379055348739727414124143500811460242126571151139577406534984746990633568990656660294951077376295951831625077719899422238952483112984975553401822128865200358669329781562531413239885278095181079932147523899089511508155843553074569335370261791611940691779491607248063869017163412783714399076579121661722539489258305012381242053291059777909616157223470578653583855947899448582802213383102004500499242941126521625548726593268978968316639044535029279243726682880050706860513088245310694871554523642659364189388260936971889719704426548480594660344477004645315087815814315543783295297333709313985634218672984466462337699084915383574396571158598343625148505991610994813484374469817764610023892655062809175552654434250557394107665491277360025092721569430150308198932709038280298946124448403599538970136617892860750595387108256221253845738489188465320892195866104215835786331794114438187694260352707884683685608306843450941876417671183693288109668028733861672488623121644695293365487303126790111685924233133956946079497765485030306593339375033914581294284212355763875323949553318404991320700477997592140690482660250379381894373857124016499627499023073138591362017167778783940216993746388912217358806393797699477161936253543537790379447298833546919904012350880687099748669643005272434866153169376293089570103419090956002750446715084101646432328377311037224943233427662318703571049728001531907202077731510754159710441856616679658425901993046859182500855640829680201880960572418679957713447326221581854841049533628408731847181604240967268493174608477747066275292044345184693277487141949840392591869048839613220749970865577444061218832941182152244344634731044804774309932826220218806268239035074678251487127433276643194513852794274960859740902643367480265299710643099922724043536863826847455717767589911005064946796342621492943357567736401888979973553768666953986492063309418981576236146769311312028957778230391369842275628660406234080574692702658511987864983708490842884142219042498126231533938153942907300639565870699208746150916347468901632715512110117273150309748719271383394174722013818324845913169069493236711600039486954192053525679077937105456849136035937181399490461290040275808697563678309618904071626997450473373462249567156151635939677972270206418692114983837727724809533594567279000653431709311829104631088232187741159486947585582893420612898007573465894185315420176369971019799208349538013299655292157020546910821567985276459967356370057911067744921383319655154818130755532319915300713703856989462812989634008222710303847075633931168478513569668750997831407270689401003136415681245134947711308106726930957463246271723968989156670462388628504100149392562947277911347005995135571505661799099523213913302821958570419569315216828726654017305007217613256457197670985446741192456532531341376487742798624605448261235026698179490138814549906533659828752638212114882851712042991391568046177743048532613763644803399454422616188722767120385717855970984313631348335683791498507003108021219922355979739598848657287458626808855753332970795515471777945492035743087214802751266093311347414706261439696159459280848286200515512969704028934930808804886182228166063688891478125600076782447609223263290069739039975143825843313965108190632187693917770035503059949273796409380437367685143818557988161860494697999241142594237669028794954413049984920262036031415741457243663094381075871777217892499817951841804246100825849878618065285907254953057918864028330981137706452693164099876629712801790401115284335459728102783670272318221748904587577168262472921329386652039417169533578107491374985503083483412799958672663967830936923778059501595018419934020487559417039640691670369372209529035944745034981810169789482945555968577963926739802999664100321832576553677441255888664204886990529350906826841210754144095110814735223422896774097028950222992106541404001534390746406720265030973856805946749731894994832682853315310774649063806239297874533585563112528802966346881550138073603863782167131468093581124368944979109060035130743599690512377992622638597059117131317050120501672456385756440124002828320840804803830587043565591694055298299613710285021433636136340713409489877297113487128085866281022813218266229806861252287392366411064349897178396241195444495536350970806932696260200787518803347760128449545082039401794855701948050308532936358928223326355567990364181596367964281719007376978772438794723956286986830634864525992039911376256093845261183271521762734018075695279622123056660397767922333336605404210172614199674403280090907900861957156798963578069200146170971560798602754835681312374170868753206964301461942695542245901529660866325450864681011799827650507638979573723861078438014977994316321321575293760193519985896104273087479651523802205696112547283652168045274001021654226955583061076234115786084312262075244542637092601274934911410853566087750121073151937717513695080728545541442657440866477746371881112887576635923416353700486825202566216587835399252276508834705978844349692508939251619761528138422262598695471277389491096443440643792519119312372611855186476045552679663600901520740845987329157696405738751009037895290125951815136135134186317672973890513763630039339619781280228399580095191997757755738376868596288762253058396784001647317060371055458005931206360059632580058449210970971458495254446533311954128735180831861486532903780643558088202104682639004565739363102842474186062636331900272570894908474282873517502262865600010984021104645263466497013722737935471329501259258123267593553547634735397429056413587118922497319155455011349434732130776956848747168555875754612771616441741634162352236691374266841671519367496718189596776347423976561732839402707108776412516799133866651293673173262684265471617194552857807537624713395747081527451253562627084363939403788858287548584442641679038836159657998183149838628214098040548981635562901759525737257167985443099596088909434592481387501265063874155990462646328930700665538326447198881904390500586475510748557919004403824965046338790125911245364905670286541440365815243050801082134696596475105041802097536887366502239230886360386047709099691698576949702310675300030664741137275965199970370234646872073249076930192676012488667131225488212635572581524307655573392648460547329101126731432567051363839105816908094914357336585087410497398651567128777915452895457228134494482153405878507967596365574396320726326645558741806162815278149473634497370899908862417230458032131553370518650179976201015573727625443771554138234299059114227890584254464977350633446598015949793045073142801340955336758557680349612183385304785449341916381697803035957400143408360180459275128445139866481454541006731883657330998103752245432032539885994795781384263449966173860502878486166658511978262195323081649774128701060259156466640202655586281769520248259762418356140236518070614547365068893414287018599086542140221609627342507824299489079416519225482358641197996142961294874026402454623683755259567242366945612690335399454599869546177349392172027476651236161452423476754118700282715567686593692424583877115019374111347316667806072517898184352656519522636945391981077161872117026176436986104617709786731797255071520669189282429345133453363039838466827320996504659230680296733212455710759981257023641161270232241009530928767593316184232665244756033990946868199215440411394735275446185311290469156214793807381229310989037544471977157276928591238981792845578459297306343940683707032872356924770452354455141718748336278940698332014404226977733631910813465134279155714878588892562028500807649750210605879705249043554159079712534446539977271089746175281534582910434429015361579496712153566067384883419535411453414776715277870890641996833843958647035280413494302428728298260399107392690304835044190741136553870743917363162824245332735667746657488620191516003575724529925041115136481130665116836579507576959972228563382611184712113377119285926895197933127400932650099304559491777473100550105925416425112023602056674205146165726440152445427506469100740188103502074167595154183691590724805147546944219698601203944620405734867180721503035632560519481152575688307096970354756410287757826466588708006222028511951953446798702036908432851220159085057693256538504309986420836735123398276489398543611745230685391360742645837475233228770771893163840712285067129336444095486274228491500552675463455498532822141175390524427890947174473029626034238300096552629391955086887126571958775677915137134075524955431203357610714107388090129166158761631736272344298511693621862796966457631663582139796585291112979531029702853089311517763932169587402567695103127024634038592300166974992178484100624011338017451819031568950983362365326134426089610207462787902028817716047655961770827399277894075030997318273614259085711036014379589240251671651604149295077796458463986060124096851340524788351779446333178202751706015067682787019446963390095171239901844954251196580075345891732029797066117686813103982154136495521461383147964066755833438698562830477197668439495980468525966650289202644192246362976941120750928935648030880245799648612406849747316805424508196747125121874846277594187107178729209721536130105628249481542945311734639315225711197162810271737756778101008639787530748469762384195077667820820054121540304776914849715212536473515480642846611668853235591583953507883986358837086727767857873383618042999734639886790370889867679222573695517035786738375250838807587160132501259641335119976979694710536654845070585054612057146201805998123909018473616749274687552634369496251729025618092506737255534415938845633151354874822601319319095189222894971377954623483119617566128005806618241280075836544202362613229888685469791757130977906530325231264019660164432294854713288427681629404568568177802941909129836846876679691588065813827748965899842659456161909721801413661672940517817918523062690950656152180934244737419796529641415411850087920440769740352924637200140753137212819327978521507947240565615442788753991109551499239930529473022473946138210213781475578992588441679416774647668329838170068842219548619723529323053315592529422871125038453741374890455066041658195073294314616766411203404592991981799292148728899302124931068839737948847431408983229401214912249033086844738709210410398631634176895784903228349278494759232429833587308780341261778061798759073329651505436913891957945571142807453300591735329036221500126976865113647998032127320381964682244722623144596596748467034231166175477302959318123403318022131039351467738203960982757011685421536568651046583016661565634928149980151302673359506309477813385178370892339361405526637241324386575278138755437016040453473288774947478111905494664384865267238211043805422573850419068122263251064430326755593840007425031651965584543847916802428906823616545509055660792442918614235076619792396925428883345817705583455552267336064272450748892260277449757758643930637898286831422477567160559164869407881879371342356579015392190444253915737952400564473936498693576024956171570764204385463970506340885283391479450151893404318932837473414326154901684423855929344288286679126194014148779274448574188164901773423711503143679406366605344161706452297314366641823597816676609893928509000738560619264020318025697832989171268658319796852401450462313711387395931624298110245854320629183434494313716542623562802427388125335752836016087723483547205081631524728090726295510301924577948445525858670809818352595927422025383086334772507921401508172517717533445574972622139619158498113501016884647348309604451045998077421992558472519665710989587798078959828538859797783568822251004475099808228510329200780671994001120361410367522656431867840666451140680709724540888755201907346993379051252018484090789892085272245002924690179126427054753771856193368297829170273790321907133752486416022235516768947185856102302915668582939657183344120466153841348745690815454459474717024954839199601845346639013411241393593677812077073595184106798822976603906991813528564101302224629275828064859045760618425270733215195854115811005445260759309829792581585912325786050408157640892515714546585062431748005283886927221078408409463856345691494439978818450601277381141223670775930126764234730580581588931802485785147411380604847513555623095852907389533956559939029781537660521719330159361829162792696066784035345838090638107704837421800665148898908283660673885909359908609327220676507059118970774777590738327822768835775752405138417256765231150396549574456742035463955197969867615252342353622216889631741244857893147601643566741320726549117819526321519742517640333898491844801895307935147186714142018692582769985668005688018467297711488649429406263459683520632066715789654917259515267821652392566462900028254665047193102996935219448286531198487034881212610100820919201118465555742405335572548761771968682050250501098117059900632648939298688287369391160421390153174941880129386649163774637342837063754981981074728691696360509894776185947437190221650136083177589964797352187330682740131117543034211083152969480145587670028936019785650826014004826481328902722443956520379332470056090550518286512673536972731541950391590428136000423197844756838385903953809098717390688746651152588074879750312260176999268853073294229049353739635601989804779021008901025275615408196220313111667971344466698850678454084810890374775746040339202155101364231090654476459891272436597976383211743847219160808245545997286088182906629168669363323310115324834533890340878433388489029778973406638379938300992407402116623781790733181727419334698692049255160205943754903947028617293957525869356419677533061341751030843423638263783140137021359560587210804359882338076691170283017082447923029542101856256967569343032701300176253567277426869645413236681252507412960627454609916262006132973431778150987372188085514836608523043864545466938249704116896503881545954560824311822073563395754277268964643817930304505378039873463592558495863816101915450713862867693469906563574142842969905442423506715535543769566910246051871801039882656599625944890193491916143461756049212603630134615057274784265117913222785618346186170251458492376517937411249948562175433281110168006201802811563598200851083245031546981312639014810211568730166813366564936938426446557520695719521083461750036988208192868615811764290734378656126081886504654578577190246325378965630192982041829402914541825081242909692523490549419298856975284669743466163284631650283367769444920251511656111999949990025025678075045335949795899968441083027292296025357002726650601351008202646847392998684698451788977094783944270285040991546694382860794592063568242512986424495624457880267090405462498360334906735290586998704110867481143734844328995616976625878537956059334668639757846617424703064415165539635713342900412454347856646434452505412294740799170186474845372079637371812420557560489826935922716198664819760860121892697004551562882617155314573784049161626060964775243847243947677117210837112452062176399590178976851109586616407830013318171062961992968847299714539228964228484902071159187595601784408130726494899139019183021159951968595669644019070800451678024790742785808072656497098302112433864035928646492308460474993349363133247111989611612713645717118945203820171313216532948425998977880702377751787658595293864042774068566204570328310562680353382597781910814666107777588063728182215469645442069166277003169826705314915358865682569712910117329971773811820069859365513542795753477278683813321285318764666602084583030033139251173617796339708293262818248697480192949651869048758604996351853864741156612988294355454902745765898938741215421365775412462092196820860011662232552069291965908966502530909465917485923041186032934381429977794171523858946718046975911004337721513201913758569237394825231701390754823512184920401319787825434869683415890566713926278239729151838372615251344213392910420070294394235471509117344083562009255310561878850350888631032460610224271824221166961877533930938003315115848624021930889927356300489258834970764753212307249885305924819984192190950202762812059821605394391659176296010298779057887462947572060411477689059233297223004546797859189806433567466824293932575323471597951541292971259441388005876521329204853326791132649810135713084863614996507257499014530505430200185998717184855476643425701608789514823021670263208232641119467798325676089131537707991080817721805345197011314595410890388732931744222817545313123060682089824981073464854425447088196411402680397615916842549442133140428919589578116942042270861570837008805567961404482869811899282497087723562471037911359993004307016329734656422256053067986329837450520927115372645757484317700292817985932889149791561939715690485099018313326311863692830838194175829347580071759063578438468832293668142563546045703796078436855543684565493394441598653924137389107870025195535382845826083523164406502468111781096864972783085944578444304666998496498805302839663714612393771588959911032428826646576364338823390607290479594875976086407100277463448761545795693215627269320809258895087300373875003186358537245117630365153857132578124830823731096918515501166530531431566359962835087879849855041477492866248913805559734209008611817108080148928794442607210255254840059021538628559881843582364420997333861082330912681834273402766265441448445712135209940685145814666657955229854173846588046320361770401147917156010825858401148100942778983479176731260873254338002891091982276792853854931583415378849468204368886145544139438061430642202427094271211614064247535358775710940184141666042998316104368409641717015100891722695436718562020287468191964156305455133880137436170426175164578573095272635093663957930560924338824711011568069368987840707244229301367633253026599053657411375017289036167625185084003019580802409761216311579738855632231123085298521972977847553987289899750937650812986731797848025472672421786681398672954336376173278047932139237516721027056060769188021338015880847559775287964176587675992200004884274179678870769478132720389653057160743303341382212537601107556516275159084039564728074305266332636230906814849480327907047476796781670157549603874114590364012001708947937570165267454403147234639301615081650630992295505764461105094643123029879712638133667256637047712812266580127567109260252457381231118935620467302116363511408338807754841676537834726551278945289922668999315022527369594760644545401732536971588471034548060964434163049040506799089558672584768540636169749279580545240262882069591065631778342805957744322642793433056519387823405678703784926711235501485238443283923364474406039064177390255991379809837340690667129119931816508747213554137537029813976596476864543785320483691475334184506098800311668901246817786435051915055995667768950821726285715328535468784238739749954382447555015361826131760958479477590680165681039949299870609050299117706308613696554279634208576006309671647790062636291180018155973428924307480512217453616136503050557762468288358516232855189961471062144717103857463664396045579679014662067935536904237241769814629297674119557497170987863986165843123080060513990414384208115605477106365854619318253677473128489911950107391494774346024310621530310561885189919613323385718879492588087321953580640266278228268727997097911958754632667038087055377019791784042524276485817229448398562054019664212210526602717271074685199316835321118696542479582613305242876127303288008935956088169943581319220384506943619996370225172715694222553741438935317394132984575322433426515127133449847407867239056955291021337990030547576335688510810657352189040807321936852121486518592578326121872847864752569272338877853943228889656369329275166771878894991806443440539253175689293858145310309372088749840197889025137108575104009111737540560540895532539746760469104632460955129789819776107092466014161776062504986061925953724814215748761830766624375985652486993658475017773508677707345473136258813203914100351372047355737669894497389885447863641305473703533530351457018304649218209259048698370823299446954971568218277464551479447673953194622316680585187865162931741009114379815923326818666978026998520928845405466900202526902606549306813826553792695011690848389788031655649261774091138250007723049641312855229916383560547566101186842553930313815548154959941669971781042408830620759115417516468216267733107598681603340104791913590548131616564426832460185531933189865115687142152100535263773732354228933590416175342922999608613856913849890737292753608679280100525381399905483178227199431627946970451038062287300584610669541762835862899776627419977630915280156514769960032749714615429766938480557036619416710145818376941663057059853074529978176383615918101056492036273744530822397448657234836011095278474342829833788244457335440420437741842468061611621875705390694676813741285569041334354675710950976259709522106249344848380136585240541478457171004233839632740280763714323557110854367768812845919462450898336627160839763697270808186075692853389376750574824072458308143854462946432588605002751608856710057411326323402921630102350724872027266394319351714574149974059605789238524715553888084078671702039314503526386319545141422480039194549604932320310152620078768304136060629487419446541346300642071251197194863830323937669362099271166786933560514036169715894540376695652360191691675599998220203669799336192829001539726419033601995554341256208994104317701308448669727748491071240629608493405767158054154557500231297738616624887541573611713619504325512078664432513885383976475167105868824055719844372157230898464521712999123404299361343961216735770682349753486592231898763458254076326100198979901914551649782394767591864873759687285113861398474211556099573606125979644637685513979841533086469734659017407309896893924141783634514777404366714627546301335508210216325768284898823315359611453012532910490676483006190567291982463318320924978256336419136249116915476861373276482592907551777412715213502669922536622434443677666475623350662268488171777003138807387919748586637232340756569356017838276346240685582550845359535764186501072169409475169670419684595646625710252136173216121843703286490702332298998921602222037891810292602605523291365695324288797261188321642477963936633866631004912122195569357716049361400781713913133306265693005120899022481816145019838738381008092702693113821697498570672889015406220306611178105147663744446809034169580027280575842634229833347955314306604560987895211651288848216330066607237529174393843731735354011226353465422692749541886219331982985818845381086343442506735711202911581719733849904549985598851676051345736731133030252790367858636154497098676593523593436259504763388031003245339501724643409626309899944367082578361422493312808197790110613362187666639770033961064654758290505204821641947250011011569915758697514065740117773181157997655797988634043668174068271218178102227943161289565847982581049597159487032002786553636547176406503779766575972196704042028724498438503022294074945447333733390672120456555470845409965729018175803766287588863630383670848182409582312742210679172863135655721144758713930918487593310195007237910387004562996943432084681432165326227405778546676380907122241170927619553185628815677519392666142210948387394025937002634175383707796448301836675675165518007792851944553213620225082690616637829446490299695998001055503363327079976483820284744654324770064619725807670559556360750241773978955915488604472928734733954063256520940565741513876955616914353979257040538315551057552486297926510446936437454637182710973727441333486781325082539685652114067423927961748682312822837490085441884782025909575125270255101366389392632762693438479480964788165239153974200811096338249418430003434601509486109550681144042028945618821406589151612185661013081959364536795466956778474264264020788047550259966528662926963500144853594225488113638453157187677517610278948947251213392144603608472508373752872111269325087416266238639215736014211616047202301595829437752311810098252810653766309616163327996417331557339285365357324452465233080387763816985426150496624679435341226395449845607952709615485438494579285110606056600772998251438620684441205761398144290518557927129879523262717946840490699738727345977362631560003120907173776758157936546227630327182679066604454042053279928708447765169304610609323235021124279560087703116878286556632914644274094748818205863026901541697492402672390044961083079246942886922637979142096186770488763128956323079373469727223555596746970171626316290547089449009481011216524792295543744774951089945655311365194171523909476977365250507606867406633885771231346262624719339265361267280921490612419662525640507071487764550009983591995978546708278014791621350866546450174389035477110876816005600726353578574641771754793192202480845070245114633706102055894905710506859328166694350380529838635796297465875711136012223272772295857911110605373283603229931044416166559227666045919552939273776621065537227769635503974247304421576988498787210134635839539521139451701239709548892392261897924468991014250953853817131694929112194900796479496241054472633026957150227705156765697829737412455022589975306312287211158275282955325994886251348159037978696715204047691522149509320019451653754970167189332527442173597961410577611506240100079419660886051058394026700147266040216794954269142346120509616104277578416184046167625396383542078732473303683740485948595578124499197603332181990281589679022095316376540075366490110489819978019199816758544828280622370246347743697921292541050909071848099502606936781941023041993503607527757860483012146231160057870487240954108346305432856119497991975760784276739215699483465125691033215353118388495101877968577095387596741277418531649078006948341391961028481494057229016192849745330936707880225198679393142632043628756675557562029459902226950267369625522226462162575883718091870186517828722799445691772351523543572807348802878094797767312574852687027255263442689231398874464231934406845481754172385218196703585865704730593359624393358768507292230385744748109341033630399775636106155068808170955518824513835349200074229977846895787945930273084344186226702410099436903473567278675212311246688136502557496574655014921543384711413126961085719715289822001321191905504987691097989318554686377421273210215105491280933189340247288584943964470183499057932716600981712106995900350295469865834057701836667110643786592788916137941800375589593526077826344117663824408108992026611366359563701001417647793494252728191154554380920323719368893144471547350394600635992841429208967939337926104164800262367606006954090469717725524240874543638222561079941908816566531348184880030073897909985330317018859019764437061019668950358780791980505743858817395590968542061642293610089989540157212072004497114966869748398304519890777787694699937887218655059726464688875442924674268646617470753280446183860977727745184042771542856115402497863032911530718579393436106392777455236079207123221281041593451069160494163574437069194858933520446267971342483284016269788831996469576507800758513858946160715206950886347494012141137168559793743987189852796219949231124239304104970154552363928124138120156533719983681669353942119646651059732915228064717593620139327052860434804018216404593343291503328549340379145232485597625746558844288453743498459484265036391002217145954292039978624575660783002795943407920265430752957734454647617241761195936096712517337412893937504209434891056903781632508100654744477120674360321747343728394493776912443629410405523660935745799506342930353646247181241576998073362943951747868829338002095338111995756440961317030432864041686657395606442242543592770137166594369032411590362316820174839598579549114572663524354886019706693847601188443116332316433655708315398091699086019704615069080583027963633605663428638075347702802806917385464520384406973307414651813524019130288097306282465811073751146832444649236943642971870710525802287267262343519729114796903409994223306877853754066336098148334740468650079249387850056643329109407340842860688771149820339704801449362945586241949105428462446120388489270539224778142874572052501816437263318622202526314092337102271661854654064503079630459409327870021465784432524995905173266076968719015178044340283156021879055144026680002086592048013529693376793264923709001096819691263631161024743869573977256490963210157237497035786901344224648141654736619309044681817852039723256020384546080871494619938173821663967695101510568856315658415719073407463015615943432454327521777282554617169998571802095931646357338548024115215768059942256393070442340980000736546161291205785120932241860748143467158448845471157653007260243555637644959063175768589825902715298865237563935809269146239760321426106355402062470609277054284360234888507555426138498626329285589651387841772795353486066145354392487124567717665706591365870626557948909779720340816494489797680239781476938944743614870227907909596109875472779126383821855821656317630018630532876824507052685108066613498689835877048510410596979272878908330516727599966770259854120857275105307250593903543432079427265284424624988105763585768066632159100221046508230315072837910935201793491199303034954273737779976449364857184705189766111964756911954721476898967283119221492976900129632037725543677593416241731405747773132125802931067069048495425182045090860090001693701570596608016227824503790433564537126956911591770813134234087443802593879140580524947066855967113153330371582548122443574123169048143204205406665836807315932962488032084751653271641711604683880703112777411351240956177265285212224631196837703623175431335780921956877899477254157199929999627669332679718443602891298853106486240440785429867217437778353365741865352709862317637265696978146652957473571265321354543400604578663289540595046109057009926802375998325116904036401461243632387925048144006492647117366590599706873673029530122107258273165354661574585131041508108307456237001999915384688312567860635421793641123516272788497592545956078727304561243256273530036479812228434541373743649333290640620409925914416893878712724982844550242233952643189369729008361719987345918315518604025397550184748255121157096748287577091008027447970487299563141446836926691356747155457149396882621402386584906131244234036114522052502709662854949280994585663598421377967702470963994756297476777864972365041918062219431449465012390719724826122222955524590806012726420441626763577382901083056263395528466670039862101252202952571914468051034173210131784409484903938259766273322810408200116368052307261430433378773999621874480417628637442954896017964929630283313467762864675332415445087623440251916899871888288520355132152522369466233481724679647423808290697472510088320478858212926949889039740584799751490285577181562767815095651859332288685492449855396427764223504913186381107569819839676064949277242341661474126957004508948829018572451030222481439955350804981205208561953081920623046345648841447538266375340825980451024845570666920982013873051655052884146399029905355066938661282588312596367921286084420191847022172524295417799650650985654795211867209756713082894826676752230650347593861687652075486208915085601737623510105711557320805694807518367745800249779448065234636501796692954423838153671715163651666685774034276762111341526797562115705652828182701688824449227035157805548688001169043400422280441720670181374415584692562677287452824909125391522114316892410065622850105691087029955603796140393199834727341125510199187572245943713470002755101341991242535834909941290760272524539975765601859129298335098762188748982964351274791707594565844387856151571533758798905194342932115612991307284038167457528459891954444696300243399774391183044829730519061087154035449100346776160269693769180158965465817339817121947451005381710821920445648494933222137532802542515797668131592283770308124617825236411432030489734965392073618561164093870435278265867397898420193718312266403006605738776489749279874540037877516373428221134657104427948634441636166823052151177538902501481756673856665429006169628456220664626184627397360251041282295064310536681635128921097293517719055027396713388042919048638538161193241010581644940662368625605653448765166759224600807995260890616899520849611851415236603729342127247774509640547550183308406741204637109505526291210560278647587036769740188589205957244407328080082225059367036000784996150848928033576037655581586233445303727926940678073048308848266804812564411153304318877683036326099564154162780940815723438529077247915489016751784985148338146200500844850973318212885656027229472421842049200143381524889374964354233078039064390805317649070030142305796702821346151080004331704838763224882991185981075182772008986689047934185959569775348593482908269232631660084450960352930352767623775583290128767407799765040877493175891747680670172271869656755531502493650807019001240626734863438738876655116997282357664540972959116059445155993813715379112795277674058970451495964503998940968314663950309790304037963740217821327095619324633236781914287420143040619710812430328619252751917221478566287582538348299163806006154067203418532901881120495145828037104012861213805549632706630268442748986486109804589458938912881203383895938527703575131962663994379189365063793353106118188290709438193305196878322730857891246453155916595091098510265473783936453086236207387735051443003201106530764469847398891830237102939440749990655339824805515167028782406637671084663179464657926549453457729990877443807283255991258981780746767328967315379496200229212320334252677057587538607450911410845758096318689566480528691409240658624108513442175444997088725237301205042962948680168192323399025527536289508655543489529844719762317245296775258216859730902496275277239260946789649937770444288632795183931615169176116700119378403507102961055233216951230111531091409258917955876894970487067485657495589470293348908715735360709164425176795429332412087671218925575279852318673150943095642489139083213123549486277000918963061549723587830727838254503014179047042672268539323847048064351597480062828262342750002502943087209354673045454160536205830769587278494802307586346473461630825338332605863415563240244757799187673255448310514971627608357764319956184210416618335347621901829746460192612268626506830183239691097338775762555971753408811685892229763095644934687546757062640644826247051812764401357337266837470155961567798071074743661424195960153909114856679416823831701587175952322468081407889376973452471044613502201506906749435761347925935187169027026562413564192708252490771671303229296557695630321873131619657701086942150204880412991087396373478489445560951007848737203430947639716046221494230097817943391742261422932435772224339873478022398867778754634006083245051390773436915952377426165072330496315091171966378331381496127378805439940932243682843065812305465340864811307301931656003252364868989747924057184968617537385893988762974113507337018797206157241316926818588609290472968809056872909512668206445118163579624390384861166619551871199596240775654517202264166735379443403531750510204633661552084290254428184107726750665578485824588749474535165994457959440851384864617651774891720240444255461552626139190068344596842800606133887723371077757766638818309686518621257549409546267050923301664435969028314935517338272291027965981737216795951291837374996243617181684175605172537719223930617526771573832289654655829613957411129254182447280344093932697365203066598116879614951406132269726768197228016429960578132048344157660750777005819459485848561126051271457273864226862321084959181673825234726142293968183555771656150708597874237015361057399920039161591223734384994099920500039663266230725514186436643184392154638056647867510360826462790739143576795195651747082958190406842904831503119271173188972544003895483694189710581250251474461253170381294995601227939497850801357446191274844936584893735139914261514574512744458239041509328832465037545875619845820700521450866637623054277080355113802212775672935900209215945552898823374800005281116830714366948236970696839317364567145827458843901336453128599471799169953112184622764224303970144342647801934767325608067810539740430660795046039208793290743900328508201648464183643383786731003838824888766604415034184089663213031289755346605516152689621639790098017495214164174516703823564826501746988637931842163201311039943650692014326905376470313001121291114134337713510688328839178900593074523114421319150153393921242814896884118367050218766170820262487070850102891232701427815143758215036487676252854651759274886088704595981064479115038761605705741229132691803542651322382273651928616368116633318902010201684556237525108375540915524200573111329005618184831331579245448498098206892333045653367440728317189946886566784077241368229712320726103152495444192433131850484983510930223823768000572536763289854967762230195266965747049182249623879705549558165776000572154755979378275809055247460656175868493834603752180301723231768295559605276864900199695499627819383135664188567820675345770068894815985660938777651155511156382958687394916015846316338166273158878120922878684950254664823080233418782367012199953807396570676611721778056054500921929002135959683502372558856236604053793250939191653932193880853715300241500743556604111350173286887594241171720251304336646753351390682683782670806754548454590521969087821109275425552355050940360579870558066222587544128132125989081365168890769804358980963764669343518963376257455436012876485807220524281700836631073289417797253615085262606881282459220592104349395922973721825823485552303866224167453318956705968867845725268545432559201150587964463203688629017104606467906673681595974244441249505672328879253769452383796377232039915439982829194741752199379619323859992317722518605855811045963846052387225734917620264692348275913116537787657659687806335427153915842606380846546483377559373321689460563208287836758803561808639140990091440401033652415498501248727958699404201548057844782389571236903110719107313186545459737581015992487955194588598943591932619653808858045593580777511133823872529085901688476049048521480108683885695421495158543137291826495570310248111330347987612172934041398965580538088876470613178270404216779132713266187978697550769233261403967427611188957902347414342992509291502372568445650534253790127575309941210272820206789682778581793596859815581864678489313555076776817537538694580762250244409728955157129381330289772892470477197023846630112765183719824284676429112725353830224358840274488085554297049644464584208338768889252306729270608974219839076023416744361182471316237498950595944648519741547965367740555111399340394473005178531724682080304952241042025489328774098503667096215171282868631240513301948837929407815310374007826036448783863586817025481734492215789984337882789014125386915166776972569861323628531775229882408339953897932923485147488630519973256215142763856912164946098713906585963881765959588958030405316019940571775907746358420773092036591418935329330396379227202726363271805535849741172017714275866559065655940211176280275341285547265895263581092694554814375886723197039927737350154651326323572585677812289913721503626685131251975095344649646814215446415675683304662596200922056090050918726851609947661498140269258559418796528018772346003598275404955437789875108018565309363644871681693770318569097519609232188154501567307857527511169481701995941689066976701742517363996842709492170169724105283908963122493971461977828624967264848511222045446543178004848245453408111894151610958601033144560369341568888559900081525707005969478215851819047502000448939160140279963571814421478661361550460289040028340990824077127771174738991915732399870412301001858939216645302176518884612894064972760001512369150337150144967492115944551673233226676135313710985196374841989590801221082640206840497019736048617170144887189073127477443916933141742169257444157968843429819945817914629907797765653159553467374496423755670218339698198827816577100585802068218893056097096959571082704534615951707085811427783076514657918912696697462203073482956272240257263470313872145051570024734421349151473405228591366598067142930123098285145298594999209038353622700324882548281103967466118502969148022206682192777624868551436071600240689654102278855436551038358004147514164578257887667190309112930708520034733597828643434964596141171649223461015569879576734648927572601186310176640613544108511668111938298286542597098819586576093837037522242422248178681585775054109149312257826689542360460866950818386756938295937774154945828481772331415723484590055068706554483420531689023073770479560623538824289096971811638481179086975435054688782246610995702330467035439748861554249959265680271859824156370868687259416891469136071004339428961092876329223669633479770896852772627615453656185157277055217197240445283654674634149727158653918805349385204798255193594086337896274910680791972085528113202505894953757776317286154466772737027162818318592610642778874387630049339891947575832148201894215471955331985771921609343992088721353383525872518643987852052135202024926648331478229257660460904494539912176975288423731546117271983530929893010627226440428308481167376063487397507461787806073095084033874187359814571770442317327895735807934749414089489704082671528535704403696758596638310034204237585268099372656782550641700288980868412860889006668244359713305387076770695508991428764635674899776777877488157816586131530762780045583257703327111808058555255107310340892698157957322666959060071035669487617411261938926644564541409820862406208779259140247521752358856021622000555786237767595257059968080991532474833951213339987158791113606266976410247524693085069546232213400435986176596230074205029981515143712973794970792299481663249517791402107006780554249263878410950056283270688186001367556099146107291634293265987651029363190387106902154329687201696889297938960853119232636184402420205778343902351714177794617885210758329050498362187787099965422021624957086750998756674791417232448734525155227248672492244805628977469719183784734865529626208632341014270040150422351741920633762686069388022006030211796711279581181011975705131141775980358129594870552749327636723954909339013286627890614578945176634371932449002367355382301964319281649990717566828217841421331765145474054520521608909878877292761400523046527901524542732880408570774714423147995177477513338217066589166491895677250979580157474880632214022709492662153054526043397023613093424296080384926358173136459983754729129079425686669885922637931132522382176421424139120083506384215146929141571464688929021851245994758652115118147225504060631649994621343317908161691119022584033030019303111797550526498524455558419314199541827013320746257079231559607519808151962827724871696568419739091185069965346557894497146281540495930888111971930216233328931951650267548937336657425926281727166377708443108179521312925390567733968885139350064072051986906807707548347009077135768850426330398087847486874132827395855752916628067491356089857941782851001682950272083328351631316732007725539184971874655152826615104123222158678515033027726133555102013539373831766222043997119648909948290836912152876995084830038627216619176012636995469549797219413032222930214659471856205700661114319210618616065185628887134573983159160337347372579703944160683345429677581590120332165905280056645214665552736596525937557729807223726618679388893782102168790063883958615516282359475597869083848800710682745827171711139369100291341833966941539269050194599464353184685336643879949975427023727561212961917019365261241077732391146668639475759253835530646997218377908292637775231627730477727492710457150076124687806774968917652290677839703458572720615252961455116186683059472478216317978673770653162269941968122135370420555579281126365539320846961270873597275966510145901606149664035849681532424169481773470011562085111339499806279756230654620918376862697578461558329149413812786151874840934287567011560698348016951403184777602913185118816643442970649934317158150062661335412741780643248613484464283461174666554270268372428380699600104093463525939542241912539907648677878602789171409477806040013425731364734851019457497216692590046204593337472731012855907678289025404946212360367704124402685610164982570470961438116540762967000254583166215955908948504026486070252698598626784294688869754839897628212939709390901783308707984037922852673772242261775484451963326015132211059946252213784520941722318161339329792284700838253852850876805186459952158150943826965084528195655398993900638116693870699356254100297524742230929012016147286045681289082094333574031665122338006385979825465308282080236721332286779832273078958276560519748332538888852738152971478628488635849487442944755933793459747029221239017736298629453602243895941650251447295503309266448825229240394059170959906747560165804700185608788841247704408270089321867118853025995457735751873948170644458047287446550332612725036773829232145347001110613391626089830944584000608404046302559728185890107298468913055914437216070398017332760543597631789272888717157380656813164829853415239917146792393655594782383365894656044149382706600935577596169366189338492016674560349365265685467167420761535974391968037677669541815938994762738782320696245300829859142025377249677735039281586608940781784098975348831946840362002191849652948936375174878594812030089866662338530463851690558536350825156836189832031709254515133884441359297440178482215555300128093559830583612104250372582244898428051134680745479770904312537593627732344859787818790838194713621178251041012044435002740812574997499585785337944726032045637178270830721228524893689106367072565786328625404086488746751388337437245483657646879983033689555202771150894575867250711722701006044672330116087523499643204458297688966743078426852339490002387223161280286173309561749030085948040874214867249618754490418439415680676297134432592776815669648123103685774928851799642953122700859410721975877485297109804092641738699078435419057791720971193726997366581420326846609512284504234917311668532724265129079167471520560769482393137567706059097897270682379163434790239049951040866434097202675851261218300921604396697996257592905201212889496820439832909770055060322863710438447646393499528991737104564733606110596327296523168709019709929898835700940514777655191642415840783797538440400710293848291839948291727238077815712517729614528472762285612262399701591586063112907184992157722903220362790283646355051097045974919800615937564142428481586508926384154040454055054654718366350204047123632507566628850055669800439500631995452231256353115502369544783652483080635489654092767161654922051097500980021500298612459875135324642555623882350631176545938794163527197442104402930155011333810042821691217714155737784274483638346866118425377331410315796384124841736541920501839612426799410059671331208001949984375203423735376692838763688477244717903188499815749866118758447367539405360205627805989306764861029394028108565733872578025781067025607842672973831698276456024322669665469445504258257068763177860377365421592945146179224320775883367227298705147481267203047587902382163520094726025938131096277617819932439068923914919586112165120195315571787411978331247845486675951149917856370533113325641602572370571804751581934239912542966321242953952964159433661546751129883282158364034013858851884615112754915889305192878272613895643849635565264910286074360547659821014758814253291171087436957330156729080337373792265009132977356784071085648535471511953127426845290473342149912646105341345252854069623676775402024992299052552783572255467478141471456281060442589150219602981391462331612810389575620402673540495191089552590935530151907348395973145562497749508148581697519267570452492096401653892331125376094584750736804284366624943659297086044452910246222338009423947815949571195179399199078160571524648323282235753054937693974138480744419568817793365681425166904812549375185427839843282852047055946097718496190695032141521221042651681573817404472818672602698939525132992181628576105533406980719012024743007809676722595184384796870282811096068060993916572003828879944994309706440393349432374650418962179024084837729447775734596287655626010655398587910922449259758378182174047685640455485602289702021548286773412755125515793971142751209215716132268817953520332950706862596540203465896350621571006853815570881856522123163323983965002097258629043583730848044444691111786512294181190414947397170382553338369548648138447127372461142426844151666194431306818698018307150933642235699557855331007262629594676979797068583438887735938293650227623914119987940535757901511891252593865544311541156329109026425951249913631175707509768919325650337963822451859866243646774635847964494909544984248383967612855750476837261634047324448626125641055711930447141611585400803278621360497200323060960762169526329558958870908389425706129409097044714863494569780336993699778884651867077936109366235329605585746473002707209131951977287249304771467218391985326733066863326817062173742407567767883502077607868303203037175849352029273994044915113024211875905979323852680404265657678496608324495537353787385447690571595980517204850704645415531760474097716318789573949595280759963617515456952821248504928747384397211921595409531383213132210563973299354609052098789882345891060866071775841339076287688398129514106429027497528842766557683580216210915639464649685871915111774404171873438411088643638631588269038143840797117713394929106274428564792847643449607810537255935126804184466576691419625422749587768616628861433383597486248632558108979286962255244064403860388410141233682869324285067495610300359887730113438701547843195897818423302679172841211848088514635484071109071046896415715889256767015718179889206602539911022273136260579750476195473147788360806398412260254716266903154108331967952478256155321247639312031394144749309519101092669203022202617238938941343037087496870120248957968742759074787598432664736374133815973110240246261433059065592593830450493195431825323969631467184288656210817586890886437319229063572051672440498907359094161973444835596747473888446088880737435622617713863908449315930718750553395251686246151237735730784097102707149052315595059440146092707590735680089019276705353892673511427410854242196917920599270288611381170275985634423278262060856452766265229339881060494400562122123179551170375791177185168842193764484305314067331076370412126611498275724502769683031902382247522381786192241897044432718981185510248567743373494918064267899989590740545420086857197619918878170792717436459539523078629751411221471965920224813827440803741216330727424601330932858858672788675984916877424709956437413945772367501732544156872742814879887254842172865021058487132748099493745701196530329264850447934210986075340804903120587913677901446451056637485308104577783173730320626356895421288549180149280801458193898104159933888286937514812025985052982682495682269886178849042565039393771622924484038912055098196015715114501238888077433869682793387905054564188065378472047364130697329571682293917739608010277582414665318463767722536439765107358234243719092005615935462507008687900688296178797259716321064350687052612427155365587131316427313785442986530599811070958703927278124385382119197562024402950313972758504093140756157429625396873753643444742516876110280549682031124775037201362856666641793698250942005337277644144462785990211503325003119831875853960152576080599062681005627591075305576796656670526644004528477671859438585736055425960805344615876871903944400350545852748397166289751044402636154959481914768864652405476777677123071611145974260530515127381620718060295313251601605719411119742191241757445628037716900567042820007932195018875272629473189238356673357095459184053045766928549466272369675149695072943574999334208076226492583130510269158777525320897444064665648405001085876979001835889885517111531480894960253727506072364742253900484328989251093527336946503852235281305360148236210907420065949040456659893707053146193211854290407667577193339755084873584954138561886598196175291478387552775215215847014790614676085606826014729994312742156968714979185095564919223889875912058230892864786477350534991468340570980974495261826684123170546289384636622658485257239867634584795638770986826968461274383451321343235779095433620575146476330822269016946282228527358125266283526078256783380453426174613017739078400448303226104125515905235394380968068817451043868368694164999500143467711100064434605720950858044811501857702240607146304728620114545900293312767827888677437005606315419427923553319139036885250360440437959908974254874360530086292427095261553712315674834720165443305740607999881221719719636272923332432966270771038150943635799716422191260492837950547502495068854577447054912707168754507299827893639113229095140415062966117139713332861154589997269742360904081449335304492367854093441316640715988659395835586427802091438666825217207126473452426087225665861527391473145183396719582602748302251928989874723563219153918215944180196755439574242883091599452232655421187537153090273693488935816749088876027564343186244196092775729741450525966149987229319822907513618274196794849529763953339476648574311380587880276869974762430328867196248611499149987086311425631708196431822572739490600758115164461972683383908264430842994225183876776139956179776947813353912692361477215606998970646192461700253350439898516880700853156597715412096604659705373841896510705535312754985008097426895099085844101079849153706537719735992017843406603595240952195738971580080312653436379138786869087368436683496556526865906624440168912099198144632916150939344260113212200770146350328051850280137146994630081767031934954023168945544514614709918393627367027480841776016530226129262957888050008701293335074227200752500893281704662302632896042285405263558229731274070022415512729767131882375358821552940856367762578969795584199437049235431952544828270836542561152997367890396738684707533380917516758065329984978908537336796264766727689129556609760407153866122014517795463533365942264916714312579551270378648739182691035039618307806074666476915287318987596198528554984004601285405595136205136323500678245675168849827683425980618397166658684986798929508950465387087321888209322289973417804567791280558745206549364961773389043830393797750151470289270172286387196509332412641788980645279385841579277219308825520011492919610535377168324806565766379085694459442984817622960188288635069979236032281611945688569895531513001407321361855565551714448043372515201538782206660255500880863813487179360522464436517094938402922592647706123470910529931647351784475441101055310031584154196673328554500563219120564426134874784230571506591857714712441619573856717124038739748929722725307095821677455039476409509204318134156025330020784491766752875448903555350612201112738285878920359142209572947906392568439285027813044934485622764093649465338908910717214356615679949150724768100311508309024419678815092631334640166331356920966776643051062399319413037581590116281396395034544402911789586327178793226919757197636470599154286060498516526546579724081449465523643484464915690482522826369663608766125992397313378676570175138342457820285752092500915775351090168498183123666260510861276453559067074771257084961491877769416121649955115521261200841473307387034217850675976456614467811498054861583171712339597822994478725925829483058312739334324296674194732808893647081209432628745418484201231966149585101563183449605786928380398166802572291961543060489792907208139335862212022772072975029116286845142854767656624629986277774744530935060654380902484848501919809995229320191507255700083333571390928345885784715673978936088505095649193845750637108757525288979279846555676613760169202856281212333682996997988729338419152807348079984492772741242548457060674643525665932687197438840717920618120975868311898078832190220661185698234738053682953144760882002540289576147432359592832889349923095671972896926795581660372244853677058578828047381916535006661026305057937756011982799930224422482918703340882554966281854508240723198004714239335155051519901878283274458421935981483165234869446512114867418665332901721497003586793978389472396869480088213571591505283692901573348430721398041415895316841880619048966517925919184372673365331577529713683760109472350977660033128710946868425222934771100118522164973522334482720984781275469567086022377941712718438887559526136679423006225027116421300680027111657118821335996358851137677444174567162901241733324909523765689948910566134511421160642311569121958595950658147312174267111137915128454398672553875029298221848972978783915293884228124249373829003115648241084429105324140477930953688872244847747578320617981654031098418686883257980470635345370581152492767361389620182559379784955532455157187727453157045759085853419199266019910084578456471142481416463643787499289460607131948866776805150460510786766796849052552658009455849263400026346559054777527298481695146395116822734406660729922876901063489344785551974859352694276067976455148256424830228506285228517264022866558195701133793428751472753209522817919138561326319596632972402259150829485694244214124727369958890383842078972736411949027373733118623674091662299430515864001750521394473290597762144853002218406281332103705330512731560710799972723385432689731070408218616589611797278782615787764530225267188713367421564988638691545528989572991170862557067503713950227435626923445088620333213300718579565122680585169631107666669447321281580347750442953896800975516134208145087045037103309207806033663279771778249352782282073815714032660731343352580969816314512285392766941334958692393971217108865821915135344356617734740364008330044404582516822361476879614300924640415539184462632103582178061751460588324827622968563284815878004682542835936628674860329805492205553636563021971586373221495782542647258030128580088383681526404847523270997644507742598749375969475026512673609105981691271372237428597903977809894707572950027424002422339141159562933490984134356650505200171167083080536373704242634888709373704286181748184712255962769443633818558713176075628003969196078711225024550431572300424678516073223556445452582320626836251437733640530421429702555708188650876657766064805593577921989208230575243981121737308076418019524578328415844042780463839166707441689892273124938732916772778521299699798711805928953820656632321982358542554729345021243486807916196325209930748992060203870662943387568656083555777365446292655431719502957389812195430536481953161626851499895046242992370408488547398435379975647628336098414451139891417804661714436449631305352345119221964238134435899346284189797648196414340140237034117902807628828811625407214411027416085913406963402437079949684840418744629228470839248325223999637802786865802155630150080582044050311207858659153083728885911760336516904017210810284911461454091279131418137119549111008404607922396219377050563481259264126244946963091456472877755356467749460933482957809065808066235252180810410576148554353708550719938463133560125584014803286205847988037366521039889771775781288720254875869199868398771300810251612900111371838868755078140340904369543896738722189726217347162887402615636210604997753077008107565492141216926990525201179414642784395119852523621156894675591701719927098926497816795997904850011333557793223657442661869466956161150038285056468234184939830813101682673505085508625898948782185570842485306055794928324334427667920183061291914371992254907064766460829121004762116491078365059776857458449254068471734536734363646794423858411542120048327241753419498497464260539741236227086447204081129568591259120713496628476444608518225059802441576443050097563680128324461117460237554863324254367934726562009019320567094986099305231402297966453187926882342176462957044233093005091632314527192629602186599643956066572597637611583682820175599833835530326811002811254302271801086001939805461033113718225790608287306501813296029266847165206618848686362844169426192301841405928812950182503060543251943195136711045420017112592517941676251369899585350352783929771913571235634855169824691084816605085849360894882805478337948264962731137251507035845931092361867228229406717495289737941094660387481765870808462251287612184224463925391862499967076492192055372605882435016475342639287520429293225218884736550594662006529197374743680781274608348534646221408316713034109450043542087273957351738133982621450268168923519133964354333164348262165636705106030633541972735257316586784814243024618119947870985590852999471246298834681147760065762138521623492675112384395503402556636874394671206007412135276965589445260802145349227555690390642815336409062718797726536879006119493479501111624968322658021946228798215451843558922746091998696484779216220441586630430673729534960379439486298121359080082355074925690704225040114938703244474554779789947678400152984862385079740264639183464457070579283438183997388346214763484397637082901730745001343662631295935440751719402064260241083952381075465082899849381876785533356384847803979632049786172872467711457676376946899784882513725786986725632523103494870611153272528127562364427292749908559440449460355335538582450859787413304367588886237113828615169686923176266523689623552271183374271077403907347533545743703716640399979007333005239515305021543090532784514942483670406311873699599755022450422640350849969472542429909904674522446065103157947260816597001971084842933050284031796750452990630069133036231625618318141894315621254787800226938614364111876306628042624045702433726423036720151963116562268692874190384216955734901225801436426172405822130538452629548656932415745599572765532160581977259702585178510912471245267941558235747067582903056917895789911786603460058545196026180545332089031907809601075571608986929740399655659548447635309868375607708152361008370379862657066657078985065710541072856677971450721741813523166751004307052154415284918663853012557278990409668800215348068129703497305376121258801944995824905905675375305189115002507283036894646956953459606293770688303661923516415508237730846175777152115587134177637427461885483296583371219005044146310691054330919464444466321998879070375660847191364365051711680423820471073246774386772520822536679516957382290825160613604443580211793603963367328025163482529039771291982353373583646229129215788769505040721780369699618305169532252691952271619043895305731790733621413630683743652459172767202310628623593809084942799010539377950277044627834137687796967003503680947215753354359297677078350787315254679392820294028357508348054988462165322194628037353608664765964602236868982444305293020315841381912947851344791076230754547083857933169961485239492054175458494289863868121584689299658623154527604228126621764725957799190834826282704418719718411833197044978767765635244123554832973720890283167547848681364913382596411033189407735285957596360903251456770204928706205123627331815417981286633512600770531743154074503592363851876548327469522759975801807622662266504946838675832078385902993390515468297062353073128402759942979143502206960589892188881550500243590628437741962909972546029205150189755434834673676467362154599716953715546995354634505839742857745742237006617872238154726544989501459970552931993350349016229326565686659992416402808014260283060760174488748788946319216440444773826532772490012425986091769124419509648678764908681838097338325006747766333113245707828695048790710545604233574963126396470670214820405595959620140157093820331101076232619781904292169866314981121622768774028186299930601355545241190193221498458433010968635061218093864243567581899008451147705123619304003960180922828505979885241479679745262763998118197756101159135093078084460330691212286220719027702045931653509917734448571294985981312423267151775253852090730177425776477694584075491351422901480883368159824655014447026494905373236711323348871075774854312504147199579446808690666290751189176779781150058282437238823065815703467844731853568280573951818986661187850414704705888492934785403070665288626399321916118302723448129939936047114047090174349393602696046207920960476856771751109812346720650299924426473812995596224732223134154778082069134905153227866018096281969491536792549636947593243089717986951077955384098558839739959465877633655656416589515908046374654701695814598625511262435436813058014885873782502306823821933198632163136491184459666271504028164627238435240457657719097991417776673265046352782135572266218334686644043859078614656467946724292945690669007024634879171889960358254102648690882625406765423828980644160167624864333950868270970255268925843724334348363878711339847505943468617457568138016566693417690444164162359359541638824593842608896732373692457210708844197631744695818466523244547741616029771800608384085813036046269948977131821949384911271721101910309907903082073798684916654940128704876297156500375003282913066237204269126816836454496668882159620855786245030055814480849438100939911860719120441233768695072961280708316352945117360012724390991446726192012855653841979311135572466666227376640336137378362310906472439949267203395460099655420133007374753936023613152991318026046733476406098345528290369415380137348718438155167367673030651041807316463826641722962573838915677230493144545307042412808087796402280800700530249793926961946421950572256752030496598173141602448616887723961056060389463301554347191524171443317230703152571450568529078958321195464316264795081923041923172139653488863560765562699596236810534518910741276297561838336577150573151665289655478228547847973918112664927058496787960289852164501284033573552781260836593113932082856827196331781718915076360705532089446917465970868219271752016574067676735221054954548696585596270970037746850728011089409204634027831505886295533256251208589526137834841555194779689524354159949624362792569045456860321868130605850090586899292358153689394439114270681380767752084830084030226749338769964873894863381927185479548614036135156743792414144180723091756634130608339064644677310453717722446040463177615880187545647326434508226724448095032236414074932614158230325334605612328514221630945848919550396583258524374367352028417004107611979585328274770025973411157190844688932102102569607039652942207145911960261871958753233198523678164098757098963648207780325808759136130649061854999624024365780703978521772494897273187014722421739537762303948241587884051227122006868779583165688013183110767029127373314224360882335229499676932904689768634695029856332512751351489596327287434672763626229122619134259708972402279477043077924498748128865885052203972587381736793306340100597997905884407048616537635573455029500264176645479768413173368953846100894223542675857049777469000292277361983721489072948678199462975176026532058080646686208040252247545655063316948689216996920194851103198735508339213995908399149191497967508011490214241935968466468236592637400855763468079307118870860752766746714666656537936261799087140775329865860645954615580867105809288815594004167963912450216709846480744112826155661516948196736486065463578008236678571456477336454072661548874589176705573371548602847503288318320137713310362534648322979057215541435291449331809446683374882184676702297756121271714377677296388744664843268534525003619942088232347798389239681744439282265831533850460574681933965951394941220794715963546189982486619324872971897377650645367182078493032605151121310299313219847014494705883276989253587156426731546473276343158242854293476183402999872006968183297957013622141523103658285932039300907954965169915169435789419600978375987357107072150080677761483317496200399625957380449062553036643534463753874047414180594466125828344278191585973706612576106428815417229517901581910468811817687396736292802026564745077389393288963466752825049624853719210261230061443925490261777284836084387150771317632267018263509364392653211043262461738829523223645172357694884813311629447597476310362676452126740629519737831011257513565812306545796630463707078643808129411622890758604261833929656066567814585149459019520999794688276940807340720109189136293599177808789577189827546683305273380574111643793479269660569701793961245520218766070044070871776245395933538851365245754254998022015756728190798919739431950164759892981146484369876469306873280815930947510531322621557401710254540172541071498451078403248450184078775678623098205074079604831006009911214991715384565156839369262948617482515618095846206380243254063944834732484037446466757270805945005996890164861180400297895174308401280415381589791268419869493694076285704600493881723961915142910152080558501034125290068719486440773699881827420366211684599237944868694345959283291022163340146327572990466878059205408129321499837317500292296100284703896730260291699161247878530199584408414708201344975316440700284499140237862713816609706489148191363432068317843256675199366275527900973923612241748599727241680471239926651588175934648471178309533634861825441237118655443117152599831992846796132557461037410882977668725177306116669828335472670214232066458789821324476392412793287491249072592245789916409614625633047042676550913711685479931925563424791677333699974585576997315164153554589970851953712763625040400332570405458222711621706002345388951655805098814627603525585184850824395886825973310112458476399752218973687552955670502440780415182211288252021280407352736318848237567258755997726797431890654765384640449155146096273131309514630077589257052099238357185422944580775332928443738234130075675224353292618843193599795825982514015315956304491399991677490047884221179861290155177081171033734007644092918310945117922729955392153514928984116200089854774634148857978423441697067758272588053008636377120702729320365052646342791826099160856254155223054987450965307539563350646136810198220347496222928500886169777279796254965813523972972403673589541031476413724401609656056425709303460799049739572334592562895746492788990901212893027592646234780959956060442676039078058526497035308302656692073027517368388208951737650786376298996798524994509858472257699557102813742124764484623977132621921050294666258099604293107127085605538068444954808949664972042320678518187103786385839641896419952235722171807157322968292530135635195039796706263930868236623481465374362820553025883984712607383465611429321470276031314892271256160647220242261336057388170932761964851925012508252679230530642522187064954526899350460309033510518854384375904145282810795475314373691497526405557078989262162871826267589126593019339550721247467563405708092955978083153811443756444151832198360230840969076952678450123275707548320878492099161341595286246574521958936903725759490123504699105474195734425479651530342362342617007032963846457830712765829597542290305172766302429227617606224105961479390967536766064966535250100687485874844107965659521452287994004931962942886695375208154409276419461719770313984058604242106027624715912653209543697875456324521579365049288611048694007997054028999670686433668808788040507550766649476146261842173870672917734871173423654520762809480348688883198232862862490342484943692527885191010532123424433754071281567347664631103587143142802183718619549780611005114806759185240929675195756604963822132370885031914592932219609010188401330073384355182468993111760771017612308529377981784531535769793519579533421677672733161115737058568365211592485800961822863964605214845159757262482422647857520922147332885384875312597152151717805107617690517340188191535929715383788086848795945531247591700080801642282713728778161196858708982081615959861372779655617876359294205840473215204695973815014481772141950828780239611417754091085792730084904128209113043449272666980436517557159218010896916903055708947057349149559578488266438891032297484069555664133479539721031857916126616926923153654899881099475806575426440349585317843405614744715926685216851846522011037528624521559595387339886351080924540657196897121088462146365215784915779323611864343727667696293505519986971286046091922323996584000033876582244977463945012951504469215417503155664110839172224396769462077228801255830037097849082394930367627661421532570562120974882057098102222425016668065770026575321519880542936121807085041432497971294299968966767351429655529022201034323026775031941539256686123009346817314163735246509686761727522000528248197864829777135008001662819619894980776891543378659174853723641811602022262597783961420924831863128409562671782640999004727637205642387535422834803267207567545284884584160612895659269741384313906120639876949134300188358673792406312729455527291742752264582868252505111321040516701666037580559774606716085022890720116420474627808999920302684703602409588033880838275713624079769432898755959595933703770241476718299932845096094842473537733003031701896895785571878378221694810930457756836483252150668780928072741643590558506012630661883941896561306369659862406282421445738980735965220275122848256968108129316660885682881979717879713135438125170469573827701790559653348183986230891573923533184990135289372830616437866719029357342609233640398777135004804694844085379667108285986159151792966488542720215759081787573161176124826430729858160476513790355071100802377606259559493631283289809048714185106059717208311211990513353797537168586097634849145782953883551127776065963480540226073321074145705147375482843699435909695358611040388144714449632066363959420038913924092501511088334025168051640424219879624184726700377587931586925539398825361421101828290437819148712912783093569739331524438397607999675299478884134179147274320155940820175038605360347035894484465146672789000547671302653923096143670397855550909827598727812365863444605771275580171549938841264404762175703391796482552458253127169819358523782219228546692205686971720940926608151654836610093538098287476623604782086721902722411271171253503406502544966050973522147250152108070380724618447879877929578376513423096088481370532196974768766881669979962952650369747949046982917435440760116038213789986250017994803572395640456715625357128596186185670609871535094681176990858949218657071476137179824674207563114940799598510375112479719252973663037103044495686965734445175754007286941389455496778856087293061865360579294291186074644848707169630598738455072172400116791706681885773062052232089374227515817591083001232094354189734286790893102320754993113945182185892268082565846185966500188517367216195970611133454635483883524918354873532173454223011708871366092592156015220519801572160630578404173861888834035528881772136989420967866284691628403471987064609786441240044989507496476312974882767666295303516846149946898512793920516380733204140079143538245950672868527218187950147468307582167470726435124646993664428230337893440491414422321175777861193712255620476319161103568768789079520869395089205635087936877404673797282445860169461591761572930790247699323561937239225814438462353362443200896062016972573322972391784971387414540858473797103098573108207191685685937147099358468444919930842227692912073297162808571369666582376990373222224806905034876159249457333010891869342173578909319087177973690506952278087761461343275443304732750338748673556316128830336241575463034993997640295651337188845575385261172696331065770614253280385648980266182497284797931423286910397162634289499890395833209152380657921382094136203720547857392105230674582908434466873514724999877550056733707347520829748515473196144333440248437196960383071875881660042962074135392361040663442862077897452872141255457874979960856441207950686194047499005412418846298502952624857862925714006366681582598640924088280060511999039526247725457108281287911601229334167936834775405614758247902097061917333500418753676044099706194128571703573750058405144599845311447761229202831108187194926781563214535774439349839135214112921998158789430129395343337975968454776477085435951025428361698282707671956598275386599873086777529515122701555890553150376925245737910741422688476498224333922399787982280174271370612386225255961585039219461872859034901301993634798781455938201705414201726788640731338734893706949839595946177360308466105458417169340060104586066025613304007042117141707904959210389384720402115461361631072871986771500871524900593038827192400573155056960818332001920301829001402360524669230696877369266689112527303171969798873626621442084389349192798164066737142175282835110798891501392305880552089315684418082179487967228238414117129601624007295166276474423010052107683727126095314353576925540207823697043855780249567886805394138798704584329708338173750863728646942999738378215217710986946493160577627322669608732673402395837051976681822468914423297420668877827801300128524185163252750788786297837651410503990796117875153150165250000124838126708470236263867887716945024127433168469425145088474912884079307942621793063596336938568761514903357322503896837340419100940825615895022997878450848133883759517676972682218397005082489160166920138794358090455193436661984839708396092951809893399258508213720919120768345621771365173622379807266313911123619236692127972533272786979185583582423500820919587366680310919579833293125370767672127091858478670104164558268103997078710738026163636707745263739909915260426150993187782800481103451813797603530897546186425404237411090571638663639528306970965495043886394890922653309836683902217122861703187041501704085813271508300215301387820219477251113882834330257904036433653894243400940365567989326081873545417796163386415725707736754284890649721985928333280165260070549372928538352260128793809911092110163332328144216751295694673281276653198103517207262424268701146978783273936433927564564775325515807513146125478611520689135218372030274362170685681456945821537528668917982040223453246411254732973251711168320486870866935895750981032824651138165061088709588705219626918073970395290456157135850994472318475843741595376342093680098307522363973286375887527135459754477242602318879628776382306542133808637962256316030460542336725886870726842763880498983185518908306724125062831741511158254262347331465916046023989926975996426569207802499656766712145107089305255158851242712823521878398930475233167657331541783424686634937213180171235312199011409126378649202986248538898488447902880038770554593310473209919074907876269457954961962866291012533424458968426554482912371391742877351827094267733515881838223985942406221981101921465509611553228565859596420746159541840803487416242296567349200968729816067275465169815264722405800236525511414972934312788931145404139326190665234841076426854547894602841282955778406198384205318123350466619551849441717744345615220501611119674666027240845199395676351909211233829705683215678536267742133881414853587520833420844444924990752654743611189123484138745724210203164261754108238423387986118243653658632211919720804022602296797023295646323919414062400989432491593462807641804027346941021210021000388535850704255580114781450042327473129965630839405318624157459735502367246266096076036219283397995326284151275852659960706700869979671457708141549097075454936355472516504191919817556451031353208700663448802297451786124378012646252502697037174948839429979240824228288842195714723841997593060193567440200493292492273906016295903906273504193622893869855873964384748041405013292742108787583723710178623450901433621539212851892786002479069041672325506795400953341134323551092610858226973662367747137734751862657432843607545567129868813511319504191471790355633677926994381940438671804268102505748841189019229088915791852942356539406743996426670186766251701487831270261186672837002819777502158585071874039893457001393404579141130388947244336278268220860319516586445134791542972210747015736995557423813765059942868914174129283050740068165756054882688607854102529843872745721413812000137154480510637623345753969604812360018211793615864433801292592660590919459222097162764483768116942538094232951802961472048623430428124885579211287653326618615755886237589149766359762626713179992879855782279533707767446713890897888541267116101124779569550018935716445118400445778051082342180499339007425344027718120056996243015216556676050253382359148564905694481117634176906139420790982484724079732528490054793024771226943871625305747207398431569454538285162315560513612479302544942532866607462754578894483198722757005652487879055821447918669664517614435141209604938562985412641023078521611572892021492107085007947549080029511660445888058962796856710324842456675715095087383520335256602177804959484039155553025465146548660913087052388596315762609351585826068481733846480243660251019479784597200625525948005437850338786400759834559683860844813979238774980376247419589265425807368962100970558129780710893790024825338618940173577478378690262335277055201159568005626623070310419720297473159147412639493956884029821764002155111077079333580307434333209719565476212738062612195566506978002713091337776234533250924068255505990664907787517538662285038398501265932087235270591409154104409250826158783217658710852348574796708716097266578558180420831841775948267896246952461057895777769165773518240885406669215677836887336677654643791115280956882215597947269807669693264194908868163559889248536629465297775782177872591122809993476143303682840096060594855843831815856284580189608111149015655167291141907531153700555065683798975943508872708245314337040092282183492042853763974561149114361886050572257998088639667730082590046399171755564349649244995532565343504272931928474025616036186141187864372287721815670986470664142762904247873817283810106065366278235936287324015637148524877171657250304835878509508672595878486177597710076438291347644869602742696829570237925646328424092565139226279215194268869786622297767232782862323428440454242948464020533917662417742104623862435253571245582799484088213514922196277675138983992345525096308332967972571007464745615777115619513838554683801716739295903482685648588555503017003456131273811445516204814299295780305372205867186303226478634631272462331227983296290806951712247601845004082131754733316806733220040447755236990560284581889084772786354378748266644300997067351571384046246104740201463528863636645435056087178499053276371925746067244235174350281721473457982406840818506894915325533203176165792349390050851012548646202078889869962302881305424242304579427263012745544916290992056770081704067790377922577493458190581488626888837215139570547109000288391600408733111746987667343469015742288398700577657187466199976304028681718204344145430860636714283377177178612143652795645126629205278750356927887347709160319600160894581495080764434683268176115563877170170696117357794012729233997383775066735015664957445576025465621356072739569456736821962538700476726904074811927765342847763157964868825083158619614918056948183487586649243262768332557666146874490540248661821773597289801933913104862934445734619022547372116508776914060833787205664333541076773673862694358752477926319991034293166399020607977883216435398376536422259735104761266550577551966151338147227856835610204718969829412953677764828234330582574658201114034741394763833382881399134014757908983504201254478528982927629653604008048330623257795541159986812906349030502026957358138964604378387653085549778822993404274009772586303519965267887179106148820293060297048736145095776568855770172058170991168924200404139566568466960731678855637296345289863936137515308101260661069215420404823553306717175247590074994620697135019871171822837764806641839628760318962075506163641132819009790004179737704671691479120965093375344515613624555128538169471588602899253969540906738282059944070964066230070132585215287361659702270936802367611255405941895999707017653079830397621370860168776035296707146119884876915342590383515430159683892229293255582822321406263667332407987992786018115304402941143215803354584003978471131015652257399832071174278350959996046589794718820934545324803572859561928181625321738215571345030875166525896744903277454487061921095657774306818645209147397918555043729929283412811618902157171023558073810186438305426498069300379579795651392879257160060088982438742900900759779120493270756544737899881706492099745906860554101160949763061684915868830773020518377644321111225077225096208168767864780069218312496076631113740378697668831242328928006244191764530109692585015637001935001609692575254098146585034452216304537574457775078223368192847784891389330279580163466295944292291147692294771761367662793630898106016204472698960719594149894615221928758588171362724383730495447738759433174828769620050245450730255780800938739768010584624279759233361163314839824082255539410993331794343866384193072825100899574282024506740247271496283129259458238752938221610325805171860026119648629989494718324414527548893404712593033188748832289471698433594643688102609382099315974236265986983997008158734796917613435793790947658045866677570212254525709901879945031976781187442296803127240011666176378469533554320283643860289746442020710915523402478816412596672134818518341752578751962320757673386167921919400370600215690093188711298555396914717063425540082407612725242630056119699720743195258356995584513207381788158904296557760841438240940161197723664561650476039683969867422344855115567220265835145850359200385535412995078603726142304856578621031822510193219334612232119464136120028812159773633256279227002080006624932893476904231421385788666031606211765437585371346946933020945368144704415938689812201126430075569420617740274559495957333201094947413844295966096112244192453467080885465577644061762745457191409906515250396000601118737304121842893316170309025015558254251189963885255125949216723300112229691336914449767033221831135498319638998446725794514055066077351730612890195089434934506226642977232228192784815012826178904448012243204578173954750419463225492900614157567588290296456810411668284580092981902854972305226812738420528050806003378441921234824806599619836002532060720206352220207458883794320578606225962945844436961400871333455401762077701893635340996732445626077479834739528109467401152688303619651970665112763150462248752296030064829904279591357854982468389928803273675671917698760725654138663788914289629183490890056102047254028998968417409420783400589635669223666144936468389712946796537214590933120566232001681679677522344492440410774745065117564653828188360962979838149180368926968195356366955656759341350078006209370616438219828492918605090901053491752101374761720258561993376242055543650765653765409808656270283434978476820021113553725354241271531216548123261693630804008911135207296141493397381796512252322128707916956051910636540126987674149580894009379696039637155690572394078004987036323157569280964564641114192885472977064751322904183532448498659877783387570466015427967455187279558178974673282314302259279359619749645586802008870182348554558962664410787142084276781358486231936745737628700254992927196693485722547267649372095699059593002322058365027302414833614184496472076869108267698013172731177268295469838223370591022133584965128047518452382115281614136076035660666631196854644003879088936252153929899796602207003629810172601435506040668294141001098471172736029369473598419453601444152106535944785028978966157497502900982989189806750039061835005304695900350012049745864292183817821660552628290534696778128539333729333533562796691652002030338556654104103255934499742501034651514931787523022179958842097994746257355940469159079162935620277887405366065557206656287430165344056695894233966220986186362151818366266207384995764893929169972256061546841945800867922019878325436472439899932649232061501785373476111151492920106749299117134046477968051746985002767614684449155062490987819358767459005152302989721711376056495566432499000787123190076162594934153043831321318890243368898476677333244963222021025784884228953308210748119098739323803775160860459965685116807314237730983177143263691075229024752484980662217064152248738252619589179739174118289950895036569634882160843328990123512125467173385847253472524443496537661224677402172926345622692639121863322427756506077234500753551429935530677645391136959253099128863339086151350903108960993995687995183547544177519527622938720730856647006124236563649877026368118556865507683534242424290875734365429268086205002037131107915766019720946706074360031637187925091182473716115288520972517708308566275887772814691994941056833011254379600982330667419795412005531863591373938858104550490546489356131434691797997195908463259066377658557900034022787699438092127082801926325566435488087166705819652925551033209613107011008330379150684297149074545851670812030529722604800831294697550647980353447200708005536474068146740200521592344732821790224130879644569490464622186214095078515173735921607848806601029433402100646880249189315740032915273857542786697393608817078504773829169797658147915720502622146984786653120759306601353142771561924944125272233859737798476593192010288063681615429970660654673787511928737485799177171252584416607292129370717956907786490484192367256420254816506097986933944658238128632731470774219132985005343982366082145383868503027835512042844393192987275083327038763405666715402399538941985869606893342865519352588113424111458599602190320050769616007782599633365581871490968655483513494630038688139943037802414422058988678146492384170128428736139098203357206568057501260018894769880718647971359334746283739882410993948759330289815876972746341469174628133650425700298187764067408589210228516337616958503563044191978385566475205111978033797576914317890315052588470656702639144450138416749246825967180697610347479107246668872403168018580965171744039000971799697778104083349462021173551475569790927010224038957074428635959423510759040888285107386482164319858079495141050224862283841393688370744584795518815539795346860631568903360317935757995258399174217690513437630784915950283246433514109176407272556146702371495092101584892565647990527307607587308232410446043238807619603368229806741681556542472062790231651119867358380913148561824902844475879677772704924636434659545674164314720400925557649972001159797133724120155123650948201016074385172974440990858919311842036404703921769344677226254053771104512146322123374776290902273729408589454079771630885787536701599324711807818159669423306572544544586813540168227152162196728530843041352591505106301174181712511917279506892318499229312715605745300871503521156313738322629773180848175329839748402861869076531188107816874209233063348558868443043641428765070536430645072894704851826618608370878662171156278102264324284653908986485559001402426778025056128642357392220194474966969631607457360806363767952786533858897865462042278462455718561880830651839189670637015949879345602360581943605254704802872559808272652227787000219719696035909986596497841770812127341463557688360085894401902502793332698383192931730575865294454212494471159356606799837759257438088868397528932929618985965348977387754180445629978086982819917509637949679399283575856066240975048959751541534650419239260641451073950155568810807505511389575488597915018598376119471679086464218700156882997462168840723586092314154418712000235307132104804941612969671806406534569262488318121289486414623835237263714163905438437795622729569619465518505676250474592135024637390711317364944814028702743812838801434959321569989442202356240107813472944880780926283573914716650507620953154244249370676993966393958140038356968746289722104539153635871465598859290932477996008810287757589829615045606168441814186445979869306587687748288674074216086008883427670396775265843933546698458723530635453526252305870185787909861094493838181002960982744431069721174140235672364952651954454462759169997787332024695894757226019296541482637652010170260110777927465533898395248682278166786482030272992607891607283706367225391172430382409538972221092080231274299866783837891943863047647854299835914323078705288799820144572547030342022206059054289507787219816751837709459927404897538681310435518908037597343384806485717119114054478626660349085716872882606256248466705407364021071512439671971138468554137576880992902898887506571583554486393023364108528154081687243708723496892951587550929581633576439422093662415564660661233250255266809185696742947451115636597676146144084663536365521707077353807223305999465475308329952657647405830291884380210786882081676274879636031442623040964378712506608046717057284683139283064568380267364382858110051208243752683727565482603942207978438064310507688098066139907378702198845720041373231318123580812284488796174936830604752436694333560703340437021689456215327692265642141337924193939685931899862160063929882187290107579985040960630828731591546929364157717236511817911099565168849942668500836196599010115886726754496802230386768611630762384232304396873310601726195264167343021374402435338473848234184122876254840383600422046043663010396693426363453335931103648563632571773781258074722765115851596550815971653489793491862588328415461863207745348124492643304446594733732249502243143961233438505154080006745129571188929009303230285954083751575065208307112457821522610853950893389764964234567128278293253006708080395196803763798807734005253357056341659568697864598511633404097529402674081546104118206539153234229490470669841251858360645030903477786741428618638166662353463401272070041420132737661790508227440840076284986518585186456202641481064258416272962732066138739855611611733101052097800742069586666342112949058527216198489999305571619102708254761706783154497160651232777247384106882188616239792997772252865933559445636691199191713135940453270285344376468109261681354047990087841787530272919118193007899033022626306246513884020010329895637478588222296897446676261964416397372057235988573760419526143235845542605714076748104291191813058524425946045776063728157341485487715247741007330184117628178831407551231310509753703820815713451487337944635449886600613156555933251768620143063771919290804442260537537562508324791812072410634288709870444666104320091855465455112431399084257721976064306474260962572367950547187344740818985633199309289486748004976809314164130817613647638662035527809790246930174781241260080910342808929783526495050147181689824164408302697926171343533172914107222322548518146465731212494381529975925117180120425864820643966972475836981915466640376990288658372165612138933978178633613909527072319360457953093858465818902303887197664824693330465190345302954250631011191095404663931061394503230906021984273163974022220245113347559542194335805925533968052917118119063961438265986448343577898370978814281316590749542239998140930795109953757918271919161714627538203813617893847909043225855552725666733452181459106971099070157136723366038675255506282715190532826245509499373612592022984634908314872119933694994108492530274846471716678246143766171499432116259344782503266914617176671984093614647060835288347825482348909322418076755475155501210975497020935432219472739538195388602772511727139532924830503697414219306745331995669724270557705947652044820885444564287592740909692989666580263507688049237418162344125209874492006397872881798905564462824098112185996330786927815087876231110919011931736690244096389040306328931287294915418136821992164600706351814030873560923513430459770206822378918968077196860161413742797823620409392408498689355791182795575161771418004980635895576226384815113933856541275229311396169034114823385261229113039864311980381169286367655314661824115406364930352205727672220178787707092795900153042176147200295377585866758865357646809504936267207172325337622063161741819062930106522029861538324511289450334806753098511973310735521532157769243474775501882340973014530728921529813645427199985900370480781548516051084831457753662321879864513179429040319341125584609020688762017033389711530708132728138616179073409226446443259584213401013081856095028990240728657327509804576201503525323980957329008782910238085969250352947838676987979342664039080880658340343346263586029854136334265725052791075107323133810671291618223022033745479144041615831603945656325628748507091571346065319052111970799104754140111541082996647854852901137707777216418907235455801677579706380025983026122487455741593936021696850385580616059065014853828239351321785552864037105541434010410327328147357951271945189322294816907040708131464401815210166175807951977104443098460126801497488322897460319558220847050211169717137964309667376449311013992010646146219319860257511718902724494064758835247675205560952063494051732527266260292314237002070520703272734602329654336338589814109728168473775527587615844198161862262514159310826346043156411156250846966691961677162015233014940467355388626111255850646885894269678170123941040863474123151478021972282168089222298937308074168567731396798800452045563885662699488462075115791112880847342819195236146694487076546188155697240599421573778388868520436783524895861211503165301139309308946636115881570782780169670656510450238772125182295659514980293585257683255749945413916989381991651377981616424611634643043017841013535708404345850744012388007941787612072597755632384658070007174244720197408431363501496803818548078774682276410774691665213514511669894092254555725163815805454407943770799924628378346001053621407739272387177568831644886172076861824493405707524616741409040776958146512452703259809819297414798545472238593990158397924195171209424403734799244796339234890533739667700491851538129733255143812224593160291419902866173496435439292778861330247860161916172326659772013411775966410308090591702824453308248140758232888141005389570537478011140257190908818562593810851267015218472074456515847174735165490542537147259510094694947511823951134313060065662597940813936980809065824101152775395466634755708457566258789649560812931484052176637560426638881831184014148182263133312354460049537204056639838160733322957004230514457860183128690926529676938061315193205980314920139309456993156085283269505268882798555026164631022649121812093415660423318418122927753678881050877423532522551249592100637837771075230923805245375605513882662261646011738111877990938625653868760938608513038781286267892945562209973676551975876565764336551829716649359637567214476044911134930980810316872054729234454684998918919651159637657662434185849837314945829073552362683003905450789109864531576128217556653664171945766309754056633786536958653114905842430798262139182449449689318085835846229952765912274509912633440355587891607916745887175875342951008779033129702947237755547217420722027905841881380622930923341189551703487361552571130234287560942228646233014874742165914414393471517571414651177211517253346558771486785844310114720285278746469408395857204616039518943183021452786039015734359285968508506026795458183721493426138847083019096513244345478708759951540671476483828639196354127839036489459790734366541983242984850446644904985191981702525041496201272396139986920613481396860782044583589681355355923416820462840670360015359683549579786465703856943134963340082922017830211714657178203434651435377135696578358525500791505358327219633980501826127819161157938339696846137733981237025498772710440070416712524199288098181352342684998075764080113203559668985547294321307241401823164078214558734929830872763727953297475249859328373236103761137839458174460863868211418076945520498505840717552376271303121233005602619219661088335134450172590232447037310784931063661624305614177235608919075775962414460858826934563244532066812551934956923729948008528786250881174870968437449942253088362812622361498363257786573530914660039936911693443132848036746965286429075005513148447625496238303159969782189069935919675325804759796406396575717653114888085349240942794608367860540291227478274501448372841523661083178109619766189240292975579085810905581770050754194908177874320945987945362058511429891424790011611120470624323885919649593717133987620472592365923643008829511525450206918055446082702292776965913599879804341519462994333045520867775571283983907912518310111088360744191996328250802011681708031283082641515638300208917045272375956661785301812602020400793292190759062475412417330476764972336969814590995049365339721834161738146760003286586043473905065149533075629371936886859582797564294240260452775622665476550272302212281549460463202437829094681922599082040785293466043760702203962742780879372743429205306565333422348056356912911152305396790551243165863658227925173786938700354062711310633982565006248314400268237509509955251944986588246555408356418884829725881126238105449401901221011293560669116057494622731092119136905653284541287621160135340397831352437183925861436429980512368421582515270186441008754484889820880548405493951090921811405095899894818896529333925423576963115191017513000521222727464782175211305349141263091415481062938757076567372897247468313321850649869362652765826373123960229707594879302822280769647712486184280605076780035570895916198041784347186253142986052207654480261954205167143955962435916946031030188252614681712871922817151698476209982250392498125372116295124684405275033775757162599544707056288068570547708424720662689657867701946164445254379189209778944000633632974034229498059214365185523167830554490434635837445299804901379085409388291832009213588885440657090835595647053476427101064473890730911090337128133567183794808517131930613671125475311186760804805419727159286597928465148800498102298261104278077874100039001536306127867185064593407335576219695740174363895318444094104637979910568040734742213650819456582638471702967448926318244348320848361946655413765253816409948917261929451465492883057604164672331085507267588432514081443833695933668848133389250775822206486950220386277357372271696767968180899313366648775664042738072995079134665196038607149877996353598164835466638714465383541274436613755166930264389632785285748960243711718271830926969613362289231382005131112423231905428654081706467242922987899817033188859851315872969714408519760842522837442621391230704737249490914196860543155000271034055564264806009919359585878278260919290026993915455552179880772875628041188187828747110413378339666175059240245932956226324886206880576661759597630201942207946660405844810429819926475478582327954544245159174006433876608930231957726062961837798498587271559040784241324139200519730307429991546764582355638380410139452815177823438655839570372319298828846201688700444172924570084450991321986881948881079106439645054193634794106609805671055621570408146231562932784417539439164207321951005250625828608165685310186994814358312403955911005374764114111486836637842436468015182121770015292632041629983229229050537282405615290885096566439553253916411813490755110718326611153534066871200634511884149040946480613450730557450221504085146672302551687511402417519361553161566770808069304424822525428431367554837782381866890133177443875775568326171185433615889807241636918893591395011809286640856368447518927119602117326757563473790641848188535220733897948307003878133056515328664841877369638729176030815689075897609991501521611385406820869067452344252319154951131209842432913734806557690218177793184365557334164148450884014165169896300659891564660662947443347903713337996555882885625423845945227111084705747678099169210213402527678437440093026378855751501979534201425569229530228143323085587786673918434760876530612762486975586160531181926168442789338060554751532848394320375091404817496529347447588830572875798056739411009374944946501934088458137138379720018191515280934357082085350696477584928513263232856818191670338046865030260453404882790708226677055956587285615989703003859286663738292924787412578496206170861151284706051271231382215519535402117573946872590506768764240929579871627300739957495269777332858355044988917419865709837159794706282047925318908866804380746566348548118085793045975688383760760345557771265820309495984000637232007988133958614347841561478811040581477128961836945767010471606665503455407434680575535872779683094733363043865208467296650431715064667330723047932135980445076493799452422399633469053791592935451584013506732255591874333710104937574985497149779829645131586899045579278194429627047165221755861500520033073739611653434851630666435153950400618018026583182760755014620791063741382890751808192065437770924462827162808639610329932435176594936748582831324731567156948223663370522288303481305229524079949517151466042018547955649083117632357777564224819318326046963523619321741217679541792082580004409661205558899284446275987422787719049018728920476941379526892921295132283588880913284867187502794259733541903816276833085681535580700873228699314290717438353241749775484012833567088647875134503557818579713561839547570470821706236889699378195021955165917761551636177014329285196973969146867189179848417931339610649783108310381466954034642038393614182508712797272868006307931695257692213437752809745386217197297437465620186527769977490658547214952271822778337355972989605828725265000562852039574108609396119549268017478730490078252518745698534757293237060447609426378523568108169908523326646342408248325298586661830934969298254072299024791750806006575363827826786839345341240386940548688593785428829112308981693139210720284584844155796366340131660509629689439425141083341388415567340060203477024694813264378786980293787231129304882829725150723831813124819497570975196299757379461239196757525199166496919512933350685972710003188203798829964014786687784363223297126240423963610880705763813064840189948118065020655336337946496107310034089780194718108644860928874990244113073030980785243135704573921482276328093802434409963598372656183377741474363311567337102773583420419034884601728423292788683918809281184767929224542576834131501346600745854470544968616938502007527022797019211597127580889004082187110633710618823109327170543060268933680267130724867627798626224617825357474388732860796302229250979394667143008857419038218435261080651265239515750727004453854400012801494855626604255051795464671826223969034498791540923829808595897157009788652013105548294777704056865614085468896193630414629398029632813636865984679392061028661360530947798597845281920734919561734302124077139372020774304402303223795920191094090610392569447544018132082768800991806682454335356691645852258572875274049779340117498901402242665589849738366321213286158116937317908292876062187737993042183906892365958803191104913503808177020158250083379442447668804622025589725938480594552976756870746569787507378874568593327849617289480609246298705543364284889313039316680185976167426392753887978790084885554745082346436417659485862608279474048350199798741023816857396445073778814336631999737216117843779814866709224041926135182569124997843078338433360367812775383758404624573543592800571213936007673913689477603604689213826165071063437166760421729839428625814732620102413718678112882294395586321303838802142174025650256912730872614371508246710530573259515047050479420064443565044903337264417048706536115638102822743389783213617108735266683108444408936975074357913972143590223783041066070453526991094267456040394704681794814799314759298909646604175229783657445776233666241965074497222419720169526132141249677551599101010930841686535288784771848250891846964155408037161221031048104575985968634231730445733617783816603895450329900255121768962413516257614287787457744308610346887459695655559791177798171125409209987538729666681506080066635137915026412194797648652016547162571852473108036525497777162118248168680886079808695042102019560900110335919194018935980313186658028574259726972954958545849573279866571243099064219308154484798416025574889928161598930392160319492139852924331831807198441803683012974948500776702647657302716289770471816560429662055127390915852543543935768906215082096524164411295752759625278811218220760573098674287192877831201381437798538466831536544699255284347528976218634009537799075760698538451618390541582736807678003631858116177735253959834920567196795891070097250002721007124645015686797932997692823421480424369253071079552263913860056121430426911976329495701090735979815509658671487514166391612157689765997301493805528038546028996296767480138890210668408658562670902373047009138861247106142794867220184466330524653962554133913672141059215290215907288434081163587601142828593989932729054023057529561612281640400342017179688938770328168896116613133485686122137097617356685528737950490782691189726896405335042803240752766837281402914700153102490789554528024206331859201289476368425335108518559504576232865706436596212221543681673406612096948091994543674185856451549288962228862342562099460929866957751037647337895437277499771098541554358144047126614305708609919016145387667636004325598073034039776013052535375531914879338346788937379861711904349684379251566407186986979237090067675037734895103928021465994155910460471823368660049993235324705948057679976287234179411110970488897596937110694409439134200729296390927976930009664107719358821935830182629066290809084758873599452576997089243143729888204915909850265430941501876479485991417457639877003217983078984187613220720541219778197941459853093267687013842080475147892161914339753589854435586625621792561375375950753231973134122217847914059514232707900609698012208451214128734360734295674845812575648701118626118867478324092064954994535119780733709833672754216911528421603122365371310141811968613911376308296465232452082016561257503419162834578299453642591314188733740255938010278478251220229477221649622744657446014867864136079394477883464906255324392528407149674307051920366110841759455249564676376346567919794657870500596061421100504443053327846076792422388442552388550095198318736139311913230221524643054144800819755782100856207074800354932907975006281617493574831724015382824008182936758792024710586504288559528053446484496504749554014058492836333610205794637905049155387718312055029688840477526733236300937453684710148447956142633916490906708524851165384607208900023606344158515843810967631210640176533449519934846665995373655634431371810631883986737309227748523425356043653637769576586445401313295643055762343087629097931382949811348071859880560950066557609577588225089666040561254371995825381992817271580093389601980474650442027439631005334043585399388746907547369337050329141551474217630080863050224809637946915880804871538506494188427162403848644596499610260566180821915654522298953412264410225208339051210096678868491986556926470231271103849453265175915462247090425423348234781536274823441325116207365614878677645549856867011703141892016328130315782470300719227390174412185024959100920327069844161668824453126263923907706091864660497334612000145688108962368712979747043116346166871772083211043344480378410946719270039256429571316406427811496394037742884330545656250862429179307566908063126847263889263196645908788065374685382536818464691818874922401201865390693169335083356317413322138819860711154033872537714779992861469036229490051120156390306347817746442452786544558685068276678974908727179035014309262077393821203219559007877172606303268625869183383825612523509893850340596257887624975217800283419963930652602120228383531791660882817344380313531182346015257283020194904144656713893486988311929292450412654266332872282729434695433410061668885390360799607828282326394531018532551567092785051615793564613260842146608507222333428427509161769120380288155056261404310874763059291520385121411595363640089733769617375521719813705741959525115403910113632153029025326810687487470469055017675938143314735248855523328444576292092734546213444228237263425733703077263447930850741867375612169133622589685415543874528672501210398610751499807392001303241500846683810158897231217196907808135170241526112353510199074163636932809780208930650030724506906281989207352463347415455976977556153468405530149782209387050136163214463506244633941567729411517305524405983105453015438590009201801000969919243987250657018412953056928532540504427390481555096727530945982647599190305322245158088792567066807555744163980844954785452804726675726001331098737831136313058048558388413429755264500353660696627583226066397568809132209043010056826685486966497864430092914198749301734661070488077370783615215442454833414866671324911512135715180526794308106611146815545078748813219198110804914007144203582425301062683913816090446130333957429245929667527753440324421477779212740686818015797876513084618216619234731007962412381305822477439323701061401074029375397631372192983732739973124106345216462420537632100349139903391099115555367662675587915441048480209924696823919055551645911766619682614836461023841932856911150341819784996748359924795588337192756711485308686620433186223453208268952529597451281084908052402578098145297108667022058105726998801130571883901503623299611746246778926796919045071352416329610410032692473804997109456903040481549037048176849984768976878833539621093319114868067246927279509014389462142951055679729437792447820808655733255430046281137794148076308795024428214588686151369437912745225886186106165591400854410767860711814762201119584185086614161968280422500081607299958384624406051034359146307297254814914336004579411874526397197108227863224563119808924728583780214545771898655519194751948676041939715822013611772649752302934326195278327977027822940840616957723627847858488676007331748266404246175833290916856367219731091530011969529855118464174446631537550488272985692006772001510241922993628441630737344696583439801776132966146764145801322203393410039503879900964508682395664793061036502620466065862293626654922436446601190868345238918721109649957256456430221204417437942552584465955640987420403849236861028095428912640667166241202863338081879702531556009577558590890090590759583813827872621037888118266388867649707447076711594786507325084034068354900166588251796408018109544589346100062346971503244368154755056235270030673821441434229767807852038074796441095667291144702034354321591344274619431690935995065739921703778892507963778890722428412194254674573152097136328982051916385748632650178868161531583150481889876789355468535919064692462454990038261222351894239755935126948581813690814878676169345592071574025082744722919016232015316965925964375975264386225681169486649070455103736131612024771127524285174200875487490127959564767322268499643172635974952631161164135491679461630219914050709647436502830843725380000399076933776486959396311686558646357635940277856913226849513448726522218097823434680963330322648195460890091398677364626520117469019994649748166866298629286980525811044761373413445452164532061915200728872476253907338289970558444956694197516750097715126303808798446624666986420463600283708796813603369733482124336947504162822767612802533064719318808977672577110461948603265818828725062101893822062851319155672594306057251647363597167596545784581967915766494193960341355380669570181656539774391675582675723875888098446686637372496572738942116315988248675264705342591453342349797717030010656955723970907144836074546662614197277287666791292457960835088053032301177818649270171114633433904337818010529040193231121779319589232425126148547743466181792599722339560087996549496273484955479950175364021388591018690770019729249166995545259640505918532265028025740090992171264418903542377458615287853080103153995682839943068032632475283657373683529166127214698682889047176801040011515229896104037351332374511596828435679052916010436357551716267148660909414060068575386769712609349020718833483814311091457887021153500226383444282702684740002344777034181272687118225786430965007751806768314196014801248618395131629348565454669820075540031033037786603468909934356702321077887259841627762254471226527425427781663680312920045431626595274684958852160664242477514296044621366504975890687961967116967416335929851286833989958546246256171136481800126463530762811119677796896825660586752579594008188422952394852312568323570795079525339853461762600854158416351462816169623632378869328071312899603567021293330026020395399578850400701543976938757656322774679321851846607947079470339271631529682145628932406799171513811070349562584790137738899891688396136493104072673258958365156078285340161203007234121963697403333523673612119580665586103864638509992894398157409759971253123669631042323829342474061407219393180789737061614024109346968925205325062959152507006057138993016014160619116463902979754757279395102963369403865186084957988613637999459660437560514552604404386272000601693499569752119760456517809813533962644005523528287787529391044667862766351841653470004527426436719292624153914783294124003604727946670402150429948054463412673738797618628865378176992845295755057971111489762650882765392996673796622903161964355747294290286633985927374384876271952446706745816989237319960527222598229158561116262260124487382807051031268205526608136237324799714683685779986632738275861283247985956408432810073048246786745421064280100510516572112666701824969076382100667359761150166744198893398715750416727397956093925693999670082547800163099494639125074354003940863370981513584406725749639529114823918029194586801462935880865624117189402234051424869056379491090401676530088813394816617704767211102650337731794971898060266741420491517547840549069171569765923145580742228357176699317682666488282508089676139672962624789725592833774833391882249642160534573090701924628489951350280933325447827663741528945712908940564898509330506752491872440492147901375628014070454798596121563753658453708755973309500887831105137646099832530755661944676937202806721389487002852119453346336567520234226088620526470563704450155596974502239255950269342848580205220049829520102400733370796302381541140681307399248197640479462615023572159444034198424589221531374465031177719131841044824927077214680126300898405608007395562450858460125034027658885072068284699704086102317498428000553530304606310233637660376605408045815262934220835634713096511519565070324919720126997008211775412749958792381680773284443044240501832210804009076680122688282718253514179643379527740445632501434118238218304233828127467665249077131792907724614365478770646116108480595010790688797932778402789418156754011955699942394004390817694239924922083247477615954891430957624985310515964428754438878573785446806228854065515941802105546524778896644115827333646878522284357820332029795026178794977987872210938425859706275573831617658368501124014760508457834907349775833781935921200532939819361805232670391845096200310001589013896954493294418902939228355526686277555348131737768192631657956978082896748258021362573215021130399165745132014454849595019997691523217446655979633388048872057723479102110927391042968533745443526336472267414545883526514769587503856529012306049017991176918354169851005325031665474459163093906691613066930949216133592976063693351880617551197829914955262404607288855376811239479452628819960557782157683737748580882786062283003500290826724430308055185149246252696068647749183631247389554753171764393899007630415873706265202481793603601908442745804710080278566151277626452841279675683829474380654559875603905476889855109354718519828203054167200743370492574238651501306420422920309355190247972690203310025732114617157566470791436508623531142302794551475821237240600213796775337275649210262206942791871324767093409787858206898986678201671136031979971401163819621755916530813492286526917656840582207795469425645524450479005820691372099648731888346169371006787201948259305556083685061388884389030727854075603988240289880833772556627420149221366824005446608959389878196480405224303997288145061014051641106273689203421644828519880802384542361830973551922989519217773569515979784578285614618903013077007478637583863132850976946473168783892460233151457183465856336367763463948828105926045895180965611622972920936984886457169841613353387284051322169087598645276622779044890463110210359546751933446871826367611781879535800722710559617466061639945284571343193854922653776175082045238292342523711782575173771363540383281099554271387286634517513339516689497293782415603373897291154737285035884509249123780962304183946103042067610095618839160114577326255235527661322866787228484946134172086609473005234639441068961376037782335223754715441926354929480275588065857330324398064923100360904510559387887717572693668933652811945735426880884055000671847150407373095768297105370395787713221327962726362262192094768057794794301876488783086179545267998202946213503850137993552485383553281668177676933009838751411162174544578854846885105708552973794548841030094600674841948831443525451481269097290337144174119916665944555248310828159771686724911610913274736949857625758322787747456278637791812727096663392355639677612772112303358386262858660294410319041265468932918605719216731691865623544106431943966805391169121078919283893548845555739237349929936769822262009036264856076680308600314702960807946482878914508106516839325448572249366146981589472410948716151242724418222420270200646609898632588179270135120296470563742504940475908065273950956473906022595446292568587710035708483046167402831022596002753301213908789622342731570670312557227314869511270168222387006657385849551110500085593030172105420530145604754977368436139100405902766062266496003493209795921911859167779671796232217909156320784585845010465252244346986882961439343185109413281906120999560151328658969789508923340499431746265400033547532892826689768860122748671611984304245000830816433393737100939108940321761933419255584401160389625510624870620933716469887218929144926652937320110724023230537921597577735297179012246461015289067763317584277403602015483864008372092036683113407449717095022860588943215754703721414747330761380518541248964854839944322085221982975433059038755250175504100275950989554220660587164843271390748691739183058509355345051351681167132243707427035147200877953594377785460575011325995770854999900827464448230505663659971485375968822166025244695835769751065205163184215908256014125273058189296177995815963899575118203890699605303902540208224216098277107695798999993416043791931237564371371661460947959526163439923133866163614357436355964139279359176978287801105894068344638124296132359670491835771063739651280082108273749250844342118238489193775615296004362861354767345038881387937612495074580273542607604303200108106316847718138916251855385603844282439476775971301862840611639246310790331383664998122459194247197013833799345189313794984584919331280484568894099833767135979732015220503281622375132401406082459001025945582522149739725323990283514025021651831346564996120454161491734738555122324793665190473287164874551526726654809694360260663937008030495748079910887650220934704019010992900564729739044468809091683511449170152348798064246314496364931739268959339800716791937776570211080248358351163674299848140381887675344130054921474222866031216601393399142621844954208441146830865409999074702482737641149750770808743076230767619120283618507254246530091749672040362539114528694627626781541311901693669713145192241899154764961610091107435802682685486649836349761322028560331497929557317175123324141543876366388844734957300316344769050451349617360166564956697851347928891223276132683466199182855063175715561990649516122918073256223064514199884470996239228557933728599894142843760426512046627980209753379739661788612309548681848677278790367810659990882812164773359896967875878964901729443484214079439097617786914566259044915924641840188104711891940150114744988324345151810936301593398751430535559115485213753142474725465293083820735202625056955804821814750779939112759178200116263840629646417064688227808321794156837314862933892843005123604999172225581915109999207422418305257430347417587926192790775367725283218413249587206235569543246712084778756889070651650482646091952186486089855710850101540182875142121379517633061403367896832748520010781099730087750840535181778499287435736218878580610279129746576793324580777389724601569440209645094998085534436602909645864182314090534858551876468073673991736707315229778095264460808272598655595500603869569613973914203880559396064717699420119264864750192629213284959784964822565454726785873496762789210593295620493667713558353046131630914445135682018697687663845113108013328882415166224892071594118552247112847582525042840926423311923434670450636935592063463772454568353645115742561304072437835961365968964177539915110705148283924279317368320046205528820906167485690057365223666289540239832687184703064484342563901473141774981500450871141308689864686362913102700378759433108174156080772983785337550340436586046489429769010369830425504511766933605724090651993020708324237640815827404137363721093856537099718825304755645108019727108084518496474200699243290500627731736066297362123784562179436137986902690909280691510650376501667699302225748492450417548104769459259430389258435896613918178157011553874418001016715709712740307201772364451508364908861204297030072230625047891755943492392059747669661917409394008528141595762458590115783818798913710747875403399929818915259438896377084221417840249852092206312372091245640675126725357795673975259762528619650066488912545289667290522239512565433972987415508009116372871746980666943083066695433060990117331114466586096472936840095216474846337938716225790676146805013603287283105362661387469426354349689878499363176857236893724370874261322057844426981366111743441779737268381310269371334257982857164161006976244432364660858302053605552010966939192332835455532876726475659023021241860994991832434685661400605213482526956255922747938945624648841040640857963568089010144049026682446281859799105573649097427786801596141040315225544626428925772983194939821602094107510631299429572961206702521378217304932264821956425176784691511483662980046198736496267426511538986716517144607349033082024664392860914411959083426523440713048832129126860218257555740310921383193176116268091605361990905079721549316531012000671198582976537126115061908703814431163035728088093860650931637309288427902707018081331855001200482017611921994587293288073191792844839565119826964298514312628535560125840921342882802780715590402079827990567454915301222487432435875756479648295005701007116511700165895297804245084207085828347166384421750867476631439362049912473901839044951153133435555299419236220745130000291562964014234403529474423714709567387788775297364932898701391627525564506241803904140434920089760328867439073937395259645703194371756538836492397826691629408296903342266770876431770645667529698542435126043752024009534307993319221653646453735376225405457730603966412584532939449277955856301837514927338867828352835506649202372431036713767927017781617911901043992286174720711321420792262612593707010729337715926846279916035252595947466589879878416773030920622958575539012839282255277438918162233840444762367956476471670688437286157273429484909011525732655385241314553571374185042296156914285935262863092648529843557490498248318500102396652019962917368315961193589090829325060373209769102339381335087754007569386714574333996906747657041902760135629143034999668235904038615772462817817656321732655714768634329387107698965955411020955871331738947857009721298078738358034177716867267133678826705341514011298858596489245573630460822218869657878238621500180474828768277893592955514395238095034610800697136386307301969353921955967201251006490915933713308736951001170947280486788398184978932215960521741144341591080587302999473649938966632179894716998884438573094468404648916704287450693833145321351714906339873094217079237994377931121967261164291258869416895303020868030935513768125868128057295756305715252377697243686733604294663791939923307296225729765723475700122788295805901555360753801940019386274172015555507265949561755605410181432308955836830942941662449938844949263311838426725598121340572962710298765554208752456112822135406278832476272016920832234862856089282759901837197976820609512262760321709730410690443948577189732061064068855471659882277286779299555396533064157145243252004111350841777030621449164211941676094355340672520577679977779146589591646759394119124091308016066555687397026037049065571127403436903849085950027941316533902189329705132837167382054025317091103927384108872248962084528223184807991391401270083979301795763292076964561389794002451713006532803697572139731843747504776370327206773421165106504646078398998572905843036203703220311598767650707046831077730146628418533910018254117957291273198232024582493393972250756754713313168466368226928708023332931816081948080229131417685138561110684011446806711056072517730551217591995882633693406383592858986277196966602681347893852097472978193459909817600590417811008475264812286861827129624581039844646720847071559168068797384907891141685754849283211317167167000264955500064283596483405599723907079969565967206223996973679356523406189581334424250161901664689083313063132665764810142441713687103285383378485429930381456442114168301023594357637163816841506312260125384049714775938759315445679312169486423354819940026825376435143090727802176602008010251304295381491274746348768547521163254985128271114706842999201137800355825954797231925984065169770728337536421892585576518123527197273365028713063854795247124827893346473096448920620308415538022375906468730785193208886007264021127435272015099402534683845660904516459265956109912667509556547940954805798979844055647623398016032637676807703150751577414717088821858231171297777338765200555722155275262568129699275377669034960238875302768037490585839635852803592151530522716425732756658748904195921139989132432579032713494035034197575113454587792303978633364874397560066465186103165508391989839232758098330421835558616700936142472576429321978207415209978436284890528530663980609044655599382610396681175254947666493998865530257467151934280203879060487179423616149282749233178103090058038672634181631714829296371503945991919519687523783527095299102989706045407646982864497133809698209276090396450388237851594708197594202894660705853896991705403259097564136589042509792133363741837708920732060904218279491255058677779959830708645719377047713344144781596725240552305598784612898787837711918796467332589750740891560699535815791026078039553606737748699260979737458939139155638181831548121800251370183133981290453081138221447318322419740475851657159572919891724018214831840102621884759422703587087393316878998332218832807659961356290289782045895483849472559825065818918968322461409668830021071220224533550635723036511313917802449283131076688132001673239531840594523323855231221836950849876430714554097285624683253433183030627621356444106336584083493730349287861966314958371418861483977590209768869282704798447920356599266363740997194363678140232416189165306189197352224492943578446458465127244812476894073028534107816610709987414144577951658831815759658537901954045687106035367846137661419608111973463757716197907556434187998577820355554194089526884476858595777223842604540874264736698403775029235000506491862585856332504122933059449366922805914811797897400928975575267258608143774046882465906528445420122218939088204203596540272537747823470684637264169085692099157557453560600782566563415301829965749770923032311460003253765515298577930102639197673157600516734732000203789771675813227379204081439514976194151533870519922637325052956371923961987563583237480284649904400045513035984946779121644586992191184630055751368589579383459697446876340230150894405914984633678475505816063852189355398542434603529191569771054125065896509942902098263119591315457812563056036859533789772200592742256797958472597698949711214680210518866563078854858584387310720442002676578139169364351130042898529987868022264311224182148482181427414585274107137625574238896792792707136133943629236803203927443714318906731561050630806213180576625082757323645314324176400913899798498145383468457612337266190271174347519010058914306550150747746498451388643274557846302925755100787661042087096968175169884566670268699066082926083060916907572528485028704879430737233912045216445973503362706224094226385541523147085349462822023216374501296520823652107508646866820957450904529351906399927821694713042779071561706146470853184554109625314091372050133357415500343553244697369936751091085920438657154644359603777739626740532834614263302488451134394569511784998700605940128150583686423573305432622102267599593343317286951065019905518542827478425775777000170041176122346315200201465254925613793455043577522525924153634867392548427193419658315795007166711335188634660321164656041813709818221647617431275273784804808843993292119400067652791843525999316399277912075624045719679651393771773282628906880669785215051839061695450432141904991128630337564605776464996985746322402159256962055993989279395429340572227640030217827122396360174034874642716029299099764656713410895391892472850006495806808061390442771921017873214952713319143341795701687436251904322089471214848072621450313460419243241698814921370856033147758102191395260015641560069799289441504698665650800732132276803639129458071632067599441617833637325774878927512918757357625670183262430475556951948952230148631324482959331849924181597516052825684494610359114821167035381240051604647710508456609650343848615353787433863785744140905043867711196976975021483253555805445367513752296248203623486275849947043273781458030118463581894144559399840789697941248451832323233095936026221346917189708081156409426794379380741869244176515531297582745791218650376018649770531492871832908985300466276423537585138620882946443394863008754668920486694512076888037768611458112237568432771052213965283233041251681795562278001521397605783630122694559280150049103360554539407203144085737106821863439087354069162665962433149768044558829034735259758723337168977017321300429424115018440482701196770127626998351208141163571596039959697698992247408714384201414303233439663815793294346504006513291783614281590895455287917436714647734103329549611158548384634682173252581181410326971429456388495425916279966888225087247047780037499165375025970997194933888980705737486425776333793778890359860561374533154994128606986902368551804589489862388002629996691531966256304155544405375449648273995992768282186020642884824485954730853491394259423351704445748983019860386407470376608188967110487159544121706955073203545470002953715135227484508553391491299754049143823897108007714480890310939978127229533689280616652302776693625424978721511005998791479675050064769677266779863118717812028213305866327841932398413095515923706808980854376763172771080397189595906675722537009398722586777354596402111542837316205424591270053551881411986859174792368667060266081350276075043598679963191191868401897400325712019037805227216924713222670941125306332086164702938262839942933394263329407619892818166577633593499669588234062191149573591340247781366375922122641794101268264887623690928567205194970877255314241720993042518805530335618928267117233985596522794084092490753691725056566710588284372425082659146648671026839023022165606931142011980841557786890869202062885831659065443076584654417515628745397741206451685631666083160013370323430778803927394772156078388540165539811205093367557846784148136252383190193424533860976858019459402548132252796267505698431862402887532270574598616511232460388262716477712823321382549337276238268983775996617055577303744044727164404698458388165923142290117438361450954575781216744631693715970915050807882246467033952659292157103395825096432825109603002147056238688571407505915496933287597568582413705901243575419542845621593871754375964695627683611178818124431321880498887248464380365137905020028823898961445890369527849336763652121173489762416930067899346609873625697119039946559688148881571976961351791059311424339281865649699711877076809457657521051697379580605045458218923402242902568717502729787283772560095339199105656144927812891331844300061051994805529802410681455793233968875108970730710555363951357609346307586131683206002167657469925967404148720762882947754282426865955160956170530669196283646990739060418665000093373229542917035265374845467906476335029897009195243451376114298804583817484120953582836486569557845960489845282611863335932600720258750037449344626602428947301333171701958043192209855890518250858239232871062148280498169382884555782475752087750532004744155511484334990373715566897979018408688114335124807175088347897622330828977999737899478283988003871128461075459597346561246713404298201456943831806140056969194233875260906990729411355231688625930449904356296052773013431932765918738210997474252756036242716822787385617759996319906876388841749185301675455425035790440155680053540035143722135755232777676528075608414783738951438670981725030416776224590711138807956006247282739747111172287457718065836735664139570060591367912718373482515950829417929199527155408594170037247242347665014260771887119524342115419323196267784018507471775494291794208080897853197262516047477867675392461331428849628821951292468515900523682797374862444174695498673114630861624671570381846209100344365884612713362894814494534901632231851022058188517967042269271800677308502969095357934910588882194648863489067603577816631108610450008872606092366007497342309412872557703185692239965688979258089589969713518866607371099724461315137658186906155672258031806894130292554385568659274595795152423953373114279095693551930399960619249952383695160812490533007913212839247612673013502846075860191008849120607172535795849231604916181382380644233858647915800400296572299906463188602755695789886029114266122121335316902801632195570825524667186177288411623720858203949944796961473056938573874026790720786673718610522230688226891267585151041171017171637020492122894679270366694385055266456745884772822568706895506057428128149706981991506320060571917829017645870029712959556627688680348894690207524832071472003684325310145619510421158924520470751687934791013573974654067687498356984715749904374091339436896176536669571719571905736418013749363664239839321531420895111053125945281429994009128575429605769501527223260368402053074798235244921218826727389024126603683743593529141399927650948652389771356052480135653888712923794250979752156421339843200744548601475759005122514604620733041861899905063075499603487063318997329013773608317872957905155518547597993432763046140360397721788790936720929546161894543455488077295780219828311883483548225958134987175368617096495221040748015766378148707963874729539435113033129651567985389339848553435570481281013893168155727321337867799757526194075532796876561950837164466442832874490505995644258306142394476466103674887246661879766073466531605211399419510290034513547278106834781335630214343918747232702419308119788933344939594916949045948313579956680756955891704115334556895703939370391167283781613920222978199743124481788200809573642199078764072642209420363159948204205421732828179928258562489125818312219141964016084197909518657600894983288706503671297945733185203472101057031691629050630807107790947353089699895674795660050076404379556210074887698640958924028618152859468553105420597231693812006172801708855033788355648303852646340503229114618781939962181608965429780390022600548706767154653959293382158601364220289231942084795134193506112876221859162866250865348824949164782387659773854737706352352917001202760097498437403614888649601877279213287473739338013291841815124240830459683223481917597756754448266414611695536438629869249995556788817817885904975189352824950730404085141680085474701721553639851636827305943333347784842127828700458348744601905972631591360396643312319079680841781565405997857062953420185449600894588254805446685041937096668809528566662290725540135864342039050291028220818245902708828039366485583551958741685089093396223340295670259388100333957389173467672645650389483521027414287750282255757430996515483145935998687460065565050749991623222945317987623446654428967111469380546474777398699083692540445191028840301562876011456366337420446944959756320977144191102009220540007296833524730682440923019853234396928824583872358621993550517756450617215127264851822930658600852413319263641653124522293207242861634652712829318181013577903454529330943515167724031895825818251649658937657930665546326044392927151001862324153628558363969527702064426287130692072120685710488892374942586195835407192195103669338686826722727541948543631328871170716203424085714375563747738012555074888930347171537852825935161543175125783046924746570242321011381270615283208350098425841082045277595206049228650601375698704577130891405585544883484910498130736473440763480000999956936137033022448121564431887659629158076018825318660040638898515668785662318028938180848316901838526374866003876565588208111746878689832877537384131698027258980421577089191720340447723742666336462326341731079663486386250427599534560174319441843450684123895646946463562685002075699473708921452588029800896569225384040254930757318495171062462742726676559679201030348785597298113237924377185287906686003502657581411030391984957179276249991368393504037524887891433301088312297777305954153658467314650759918016261971831711542478041650884427186598846967275052642395932513230444663169031809112596563312474555967626039076731637647695546380316756403534672506406476848020931030386256060047990628964582285082855090650252634028128348686482564519069099291292464756867173257628151219356275567608322377831535424540864976863439647976363469757550866348796516647686002663677332803593925266908016927775412895773739660848565853729575438762205338180138040195087553447101954072133094711491821098725756629462238947148249753486229542457843949272770940012427663912809864648264681101134772215097351109771706996052799962258050362250299463579593851427908120148405616894961473332650328208387440687923169346461390665221207231990714755182589011644189737789737126591617532715363674633819713404146261922349552903990462581305009197146979567363963294366648242359367475206799053616900645301407443667044018170054142747702327804718647688946423271415926337190288262263825555892598773715473349581258790276850296524965889166111476193185814994245714072421003697979064729390197346873153602364627915134896669545931533734526171150032153907760392508364295017190818415613351086852689755524726639994149193399698219853335196672340614143929145516678382673142380481679991026775093767540692923904670480684639305059595429426606497877683993761049329319472043453689212255174118827283603370263033062415138046654246142083134628502360682932609015882233659698616278282992759597441740636447112692966185545223344066863757708160098040108675090431760449483867349769290565716739126328541304567481493855732685188816071757625549051300590413349861905812020352454664174173176597608609367939796860129494950803552101200151769555723644720213414369730469100349219423613899992135222345538476131364448890590420314423669116129820063911198650953963493173524231248288219221583593045228246928299465870120651243287461061672539391482085614025086266486997490997552144575705418515391095137405307506874339634747549690671260933067165157801849807328950584618293283390084680725957121112565093277164885566266818163915166635411251361698054002579553978867786021443819731142967255144941528822291274250404173377164427590800834276067689197099853628278630887339955691394675801030062346266752716327570582212129303757996458835144027384132350732382453492077057950282022810718236859528858279715756070829149214269071464142544991445745091233566900675268615351406844155301420343009137295679336146137016365423950753726103565147837748466034855950636361203731582270396028124342323498453199423178017574457851092922334409531820117945389906297111970479315851301192204519873888210873903308684375674844404322782477329164345754845789844738529603492238561966685682921421161148785408290050903441667328328610544807558875200290470515135433118840642497270776241006027832916450716247126942635086849439027699216777676748306052728827802315743285331547768628561993889234819004212183683685590320542150315008544256375845127864860379013625905666020872843293282138898650030145976893888868463256072946888967173536921048444706880380045189908721123307247041724529496499294380398056308586561400218967974660410630881151951585737926372327877579405952327935435589467001441153207433490787437811030823876904819192920361958889365493677327164704310266032375027268700877389174408284362598267185675984422344077954690893596888697087669974684963271650171897132683499399241844559756034096229021713732367003588195612513261593229215957235727557764321587944265873097632832265284686439359714685124419096869263850512468385903625876655889825523724584700270982769146290749663282860017756386677717979357283829206000483516956281176265404377769167829308312625449383769076358638283021726780083601025501782351314831251021089172807894583226099216774495697813017768846287722646929293460418796491952688589550189452319808568595931129365371749675939257062187985340664259661330549452440637163392598064075038995954859423807234478774110603857271378764133423014045010274039688733118221074849955212749579329238591603277498097922490457758771316129753694194058999708305419684662810136497288164046570078884687670873136991776052667127993762048804222468902229800273174100180327549036021993590317429206075128375709815639366117213411869678214384361930000392715396301521036254849820335774333694420357283929899264227718762713716207579647578981927514251437898387912564296235252557578160189788728520053414822435580843762614074442969961877442326903084894626939833819211253548500883796402016248807078958105456391323313557940447873586793400328402995100222931461250131315897659436488766393558620073668776744172956968630116154773547833715486676792651796128559382971835134945932848961771972150394032175420524056104654800600557467390783664889815068617895731657409944038590109504651548569693249470727854185888008712508154383235221460590271916014946812210229712357640906109515900683449582734622367725546450683028294974805124079183467132081489518219218103712576945325979958074761207852949309638738803479199293930912360845442899392865636268363088591527960141940841001488124545609415778093940056150605786667532914282599248360561069665798000554482263859333829779608324511821963711870374149941360898424538451325427922383934649481345726786489972657489497993617178915701478870813611769312056919834758249855155388329366103876011389073050105421222056514107854736675514254726243825697061739714362525773554367287123475331510802853859668085163363844753857609129743604605775386386831690899937349968147265876729618535258227276257751609793320744722949640375233341091138527090124746867500331722873770535691952559422251104321869703295392508936647141552900014601497212216864271679423544577343329736444890690709168590213558539114753151385318581298252614035620379451763920751431862299181996686534811709446063160707235283855661185484791086145373522477750933883357760923970286447575649538761523899477163032494280364247948400886336968300872413537539674510770189392641317608141932715239984273386342741815151353832939813614858398780080383674269320247723764313937058027589539108791351745609365883944499710805996247607160169235777674441053320769563383670675912410648503550643000602374718676010189903412271487422490816341740253046864982010491381951411521468867368800727033339832462135929500388059846790122288469314752376301708517785731081733610362210676403353145987448907075516405386720622296175081982211897843832868843770192718310235205214072669676080711698539295785465421121366764052259622348828208119421364114176714753184524265254425153200115941080588613274226836692286219493683267537010608442914038448423127054478407741214463787531400981272155802408742867127830259762461393732764605854505143625751349208175861719469304837438996177820356312167841090631056231399071586430760267996813855429921285264165648924446517509607108682899245550960629621868075459424458255139936811676058977602566697801872052328333755539998193329630326587690461018903976676855782533287949137916397080025280400499161939350603222898649690428771850457846887028465655897556788355519897743958748820658936305527693233896305203782418223104601282602696192356618421323164734519378758565383656167360338457488782631653757062848685221158657519030142241180444886078077302131670161381906954642738350984821432322894789488930272390792615261223190440033935417142485922733222024631545116805601266690302336779969175247391601847324227367317291951866887342445245554258492965363469454884479616875554085755985007723145102767890940655156477013925696674045237321608169187193245521847810530414603426501371391684433223140086711402174359509606045251720918686954025581696303263793142101899206838309686933943811988616290108875418470766184218643102680311242296631399747084959229430137531525797183525757988422141793400625502911603948587316686904867982685636632891907995257186893081746745152148451711452296597571160739867422888459760096384203715393094883972243488102777533811612346977266783472555940903457776607086515476840770916202794290410532398211932856572298181816313287774904840970963513602874327624548879835966424161258068208234298491250219654789529996678840672361313707000868557507146557298381864048558316810405786785509059460613453311225813566566147894135070265867484703099473274497666815821988773025866450872370989985239609307808811211481521175948160816675087442680891715188825640331601449193274718489627988311203519563614282668135084267162090966457732728371533131677930958263296089646769631562349174906961053921883735626397886846804588501896228140989326957947849238879490647121998191265057823774850839758771779416162091725927631170823916258826176106893886467303664233225289905963581823977504356427493853650897196991309971872504489598183501812445169844648357964089470838155314637861948854278198323947666484690383569231644852890309127156133866577780278666711494744015268249723953961202254275946429892714094931271003926969172360491660550046134920601927392945914719374725459821646185889915235768029898998279839892189925273486053528099349101667852632464310128734462578324346342892716901384290449670830023226560187891414605863584672456236844617753891099914413917159043214669387939675006334403546747274544526143540911560500969923740209343936274823513755633392558821848356985699935836555260256310860420503583227535891598263260183707595501967841331814583689952852181576555020241337548712147691636372960357848804311448298563606805940834015350180185156466921556339317852260437841549994341033237676588466268470428491326222529745206818440979093619842308120228738345257420203825202331913631820671290572572623740332803599916573451960758130134875020077796438184235698879251326477844912513387381327198050458648544089635654624599558099970799613413269704300505562190864973025435379818751635164764269244933212643345739345276102382727615859651750406958097128990383564806369433101777607132061325499062454790756556574718497787528326893200886164086231519869847062154390172256891740833804537451410151181410378257293029728754292833436674500762984150000230147578754035717914734835025497532676463272733994948779683496654906440302125684540313117419234931217171222252534067904917559361062001980677030408375938695794119214916719262400867922796639783740273072840134443920062055657241523259769896834029632998760624656865671519378753756719044493010428113673248320323481883930078233958835978078760201821570371233534052474256396458937184548791179973338264254441945351131049990564828650453427758293464293387094146308079292803297574759569275574943902787604644389970068223625465604187449738823255677064826532016092637715853935755783060088533058811454746285297334018037835578013503710349003546123527941112988536299930314671145703966311649925802432851819037117290476250704404272983622423247014681647026601156353510725783422668835359441857611223469281139646616867815369655820819571785276562388016280767563683393422236074354565512714779683762276490072229415482109148629557539723763844421944407892638956768881351440623618220290212616570568588483592415582352389676846205805989752187961642530425640952166254008676041630208696304561001029154814436103096503583802256629952699509188415563964301660471794446700699058137500293757360128213152980398261936278498454620795576632629063174159624243308330663952763551882740462094834585946331571373455422689759772496715162794005653753504868013433251752212228804631864331738619043488897864372419631311380290153629690054485502682940906515670096205947131662070448236954388993659304221416321568794559710895720800790067767861395679887333634126133726350493676319544259483374202411812806128940239301658987480104609478473520292931207428811150686157256513783815208908004411934818920158553546496192867442195990309844318889737867643456559514729703484612834891624205705281692327356124982074615422006498884595484620142184639569455152465712378186114360636312015652489220272964030209209296042260726933326403201598504770092750282321360661128235693646835705231044097827052382362736086839535176995905119444155901615154537147012420907519407880102729497767734369002840812247815603227939237151128971087916700610380579524462364364319652554363928733020249395267903408881928035859597199453265085156970144553306481248952744108962951714276509511136735347147834099082279463348359910823730980207958992836288376905338469486744109904902243929130209090468582251048584849789253848820742794104612124568455456282299002694841622393071707984073679277359347800371282416083019767644458887452273351286651166291898903367627923944264877036471758707631118268082322528074232106108303493213747300925480055572613644074408959169584346278057277294389737117249408632651841495847226085758092763133262482626449108744000057152463791377020054820589652316857946053821364157940779058443419917759293572664727706958931238722423144096683062930286625839745249077043427504030720066161616459608991156442375623407851492899280732951917444260650135600104038838294967371974738252694628176742690322001570447632796261821581998577386410119171129073929753559051065353983539143283487963773932847281444770656732016392335057403752217368135787971056052702312098710707857545625700534429756071878757143002743517790832231604042954438486967497739171443557252568612477174195236578332902472803521433298631084997014456402144880954366526631935505218604405421521017256075160489221257691785296475113848932856418256859533209004700157332466884883626921764209084783401642664082951446224564820407060277035442312631711609267427724840568826405330997710104304331246253040794678986902877845498288473174071157203331179733499710272750671539596838958883477799079128319097839782978133315801946986403915821858963047998302053861683160715175460724024433504476842043627714713882368861324136491561768017402663074524370459130614105242802300740476724756006711933158213525624275293211982304277666998608300593335360387266223831613528211876421192340903412695058150847521447302899105329851707249468713898921764663590183544393073415948694561628886935556937488195764952477386460696017202712505202376556368407284533349628399569587665350816471998013607992801665213636158201782769333614139067701703382822221060126314136528853862465918184763226601045812495779841545157735113160048384621753474465241162484104539925292940405707597937130941686342792150548561109571922683715871175803591551851524773793474088459202757794362672709288107774679814635853352329076325533030445432923441879050372370543695759574755641778560467638474445443941527467392929996118928913524471802740698411353254145937079674989588311521192288737021078498539973160722562420416048139290636858097203603683178632553897219910320741119773023207784728746057531453612900332180277092726924542445461776208019097249250742140169323962364665740686024280267631880695455950816985514105896339212779098245742798395431304044270234508555913744943715670427355919689143258727853586503277752204528054964102711505271525098737281632492074556689405327824068464289068251693471652157138262818183091986616986411261248587180894334599514940261982856769714846715927395462847840572803699431212769253533525125596420396492968351022093587485193242484297211695935887697021064060428920314298361924013393119860603465395769117367554168270959907977588016796073946932994226920452783681607222877105956869858288557968412888242435966772603308987325764147012615940878392817898803023486374890330898605682126178127777357883128068322777081629654054658595757247100708409436565707960004775714054590890025750113410132095203050777279183946821240414432331002653830541710294405495628849511662805080282442447113795966602601427311542713880924716385650813614153513496815922257603258747440872272415863404190937791520404381911759960028474434921337369831641793042606802669509249392301988938858211257183326730162974479542140521065899034281558553691167272464757281064383422885436837236363133406690292717036282460127354284860103611996973372265676874402979798794651648850188205043291977488194884251890724987133093623673968559617162268693317236307593861069806855655262499517096410955918902884283816886636866125293151456174670878892887456071566756350961041492977203301775177691659934607964937542655405876864729169401888509630469254115967122389585522332083607681270634329237900237297508985349664554470430655498794246548847691924782439382639596424262646214980874985633124275005013758947590435118678350127583501199129487036050538205810573287774053863578946166889462723712827729839741722448418594057652992972406109081892353751223155877053561763181474001103002892870762626330927565812654814496148406893735556943510119002555826539405781555741755142391023346715855004407246623795365347410525131077518578048925039622696493973366519453130958658780381275746292981573836589681206539606419204048737439162605583711110301590915242519539659110872018160186485347012922133890604686621660686255025632111205524239924297426087369784207421806710694312349695484511651395548574670675079765918582149549963759435426913717657572124155786937559692819015732101641396054781663831582581127427109662744206348130493726598721695211643309484370716805000255185310270727991550888591205780538290296867836134794468839013227735338592872763739806489119847525329116106835815260125648037337390518901687827950098791891791443819929116641124327600877203476671991747747496382404503744972168995436956828543078265082206280310589994830634518810797753038069022384455079651904014236609371797122049893897286687443900950377353042250380603929296738431069278841162327007407310428571126971661307366656918904358135081148389751783093894946367515244714184398149891958101430513783423852387726005976498676279397553611303116765612614776937605296916598102558860931178065128421747068759567461959806762550279482635107467621815642117424174396612879177205732548796802285123727936334190153512853082976270099161279433361257706862825317299738511140950245767023872686907803429400048908497172970522721761596147970413197190238763076072246173471676080176131970064611274324420535021772305340483992019572666686555192649149160521706072018956123548964369885246797235105585247402584337176871372606277613569650497349581123906641454690534450656228985932869216957237216530146504986467959055199024405440673992404653942822219115260869884110702216145470135803171503972075930411235796901609319302121225415301542929581732099171783455836182805257085611505902525040441563955846688057531960028445536205210577307221321764723215256792454576821990295998771852204591704107941169583760712670160087353916285596515525919253680862059910662399509273006322511704138733383340131327591453176377413177319104489864959509882017599026839280389559537956720429798727929354961213426862872910229158102409954284125025700376199683936901626063688578156755053965389024783670716489919774379940526334298129015488901498093020657920111449659297913965551368380929965041126976379042388121627224163931052828499844925548760087343816171027503506727121481863047493913349402499900328217236813447714795726976080269825398354982059684375704101952343930399121283453900470964969601707966793441210745294479682120949210910370479055023156051839307310935130652278869236032772807186368513213038950096402039465811176220929222247092999812612916776880601367234121364932883617024741042139132488016694105489367258201275630725217930810368675380040166227999074223464982245014305888171503145651983359640148074351068152300865202966592933288721274350859997228797670605999353191931993640604558822706811059733542355662012606229314208083049745918374057413849218194356050222557500053860568911162214061259526457748538769008266096041793890760210119869209394565709978351808107880161707583371706607184208417362889518026079053123416791363524786278055552380289284009351495721629260423979025385973053313691856042281128781806635293360267352948511239869185208822201904037465311039420604288370176827357979064443945761983773282670419529905184259895453286038224620735705045728045366270045820773366580952280682801174082625551116412685273149840864298617144378271874925415799930984554983298681750911457286871854147360401498894617466219953883582375396349171234852444829597008495348217983309669845459092741637027127750995168813632244760720681333756415016074869369368913632799779865109511800423503747535772441556526311151398351473361277676549684370822752954947318177897272115981612677174529323377922358871766974297273384507911306181798455522108693757341303862120285666013082115638560335518336261678656417080757998617342958487642016638480655732346145289936806240176044057668115873902485448163824288566160537846277830213576302879682415046554645260135331897580414017723083444009525084836970041626759416506947166721108207201543433252955337795583479137004253853634814592407667955953857655227175481268101515935685542597370627329884658189600996401267701522487663170546234465839404093389723213903570433291551241455564845602712770201328725530647460602667556381237231441746111805978386135084380239708461732131694036927781400969717752438026302062036651659692776444975920847099096008595006553994874741430934286896115275594046634154632875346519630231640284444986587728118375618604567610387529549430780518217958079371938908408111219095347620403755572794599554974335402362692580690964185216966298689133541409966015764925293151808814511331887470288716110426388030602059379037604262710432762247083669707857708398654455072842014617547903013704998259214038930332740537353544009728553380254083425459764959488112987093972800241762498997899272263379761267575709569720151013601098471098767639080217199741233505134108214932597833769505861108681996566920820962439266879792274480124288315258719172012266305883357565999008169726424521544773314600651690038446480267592184308710530065211417315263303998572087445778515519582074672381414024660972765913587198354980048417932203074553305758618402238445531697965004191171799183529654028072234113587528366767489164936539585068570744537424630877448666559681965336053782455320735535309709196917525618521924718512748781378497969091510749221462677937108783166453175772569433027725280614689887690608625999873082005659122544789863626818592519394091891418858337354295825144920968481473777229902886653840608094003239309604560488362964343583368965040167258400209646339590133509626523979448901957772299823298794196579398126291530002452052667675964272267870085005226578264964215971904093560404595282355668613772448675625396455112520208120260807755080884075538053566244861899293429072893678638267706776139793796100747387021823972409417959826365969190006019351800191274533152244800423264280292358946908499076443519350114577775601789708970188553376419006373119782495080751842067289866196061331046755944291996684567353040575794931511903461339078213402252969687739926362693644750403785650587799742083137334527535297748516660738073451547194691679502060015684485963417966003544368411872231855267913564341966529661563817753217424457529735114409727351948258975637177948169078698538821098294368523200831515109125565669095232118042638865414747409706168804073688242115293136920771603050857772621472402366947369900286860908961615260731383099234368120797917239406782541475523455230637545152324469302913960268493564053963806111229134877927674423410184900261325348122771061206639256289299634274107126588287357737421496261315256565756686564529705782863908267089409296840978453023550909690535579865802524055294175500017291202235896510643409793525962418111133022308572952828633145589344370756613609279127208435034514878655602429216890504185102476925433412697836979115858506252681226438021549218082231821527328394526180638401291490590390727956034947391365668609248402496187917825972665790939559987157152535464321524671191777290584693898936156610469801933555242811320412803019813908717443225285273709120960386788583801682111996215855418462985080469669055497470567642773611981253496077022310421415514811746606770419098220213380775627198825415516561664678174557112911407096863748387473784962090855410033452656768053907865902075395881213670603339528583298814077886057237264854454494130796678379524427242429380693421696427956530605688063824272354623097250970287741240049387748160659376785119609963540082708060421158446613130905240863558458826456593048982179554294251544671426691472799972583536340421427770256328086608078772407871026522873935119207682138360935165300001131386479994920978161353952767416752169277309272412138164251379446923174377122907283307347000959624386773953956652295995977643185199882269022678193345885957121634891337156373185713490968525116580189762460036326978476177877725019810649393319880526018549032846155897722337532779974454783047373175568548959664015477981094090517626857408795476132804748693311499773281598770616501587641102997466071953625698131152788157981822006614368040353950984465842057942583658293179967101432254999087368204034733281320672629827471689179371319005590304193111159273592469017889627711454001513611063290045511603438123905993308598585109616500073504468933934797464018678820969364478684108302284494543146065064787314012189796635313972660332748172930320059540853819441286752944401665492436255155637541551913354342798556462537521845085590154278301782286975999683641079309732058628675723633385665299513581158541428929315415568353530665672107200179836581189012259500183700151718547902747011743409689955737228281403177071851056720601323689022964759530699899875343996617228543077867655938640214888501369177256711013238354582486928434343666995001025117239130736498413568051478828115291287622888146561063137871428522998966713958537916920800192369163840325487405410823703913379558138118680542006361848578161411346648243687613056728280067460171266101380956912871288865328970785553169542923111173410820686612286993610856205805869896218171268986143211633668907471419989852843871807821202230033212297082825296907589424804696839865333224695378531032172008534415935312433397563243479376515626596673741853161951335882145056101440828282782771483408734044752044321117279104903735979982716937701908950616810442220301749221675823441265829840853272909762560613189417805216427532474771274797115216421701270550333924207913344413379793898591140419907269483115558738094084151858170433520885393963973156297359858505613308793057949744701922314000893818066913679742432753863526572267003223758365758836240512607268361459952542962883643780088271203392720185611402399012775059993411300289709335809381646591062781127119819490221734752569444143166559390470459792279759072713542783936459055552348466877097508225456034932442403362336988915333163680425169221011892093857919213250050876727513008067065180101078023239624150090179218840788819542927468878209953386851013897369862936330423921993540380376630418261261291422814572488311049111682350245821580320581216890791359919386845301254714076044258312938344282450255871880633934062790554396265943023854544214495670564487260434043583429080044582204365637538789469200108651851095570867026636610194199645961966471954270370470878173766526293627475789744935032352256782073747927021124869276495503409990922034402423632072738296978769373296455535010634796060778606731081524897067494628949044296576290938428921940093610396576520580821129801203839255801173612113741570194737231874207120488028067110954381100407452233390729970067484450265021140604658575340828019424594959440271769897923650554169264596166370785315944939917304624986401102849790562337048059151600503013773180928982423189041959490210830306001620571165866831062143966169739827675238126027508695285493930951666674588676067616964726449587896147189350340546240033574983053349019514526326507103322701555818570472384826818418571486540979811334061605278868539633847557879468117913735871261449579741471194045832328077203807683547301606851960466572647638462645075797333774919563249788471765331043084907266068077220498124104974597903901566049527529627319483473917836232026667904540647045708419964911701671279550153497656327270627567049105735472954380088465562738214422463100884504412910613091156362820807161043086733127534249530460183479302980561451318401866746054997101832855629034076923313799004655179551972143756095902461239593576550631651686456277443561681719937572324762663485920147052323819424697808542483680310115485666035739867763009584426095427665288410194759514245273234666947410337520719531341593235325664342959614521784821547404414422514148821534904202572061764215256261071001193594153632098411182948929412501270483125466192964357999838230324517593285103682917798347652365104327909937810328744203096154910939673611581200965863597751235344171068550175954537882142079661106248225497660126908108259146700573707865957515945890566585435630195355222831872627171962804293689916524579770726753987010866603000076825805429171386173036455445395251909218580424255279784487975258457455042125449282579539858984933305790418094803166093097556044267410724403055533148012345174040743087280427623544856122313623590918992415849598245095244566077654054137655013121053606967536355311573515043256117917711873794162515527134947731945251836708331203825108825603695808107151392647217552817527713348119317683786379188323429141033412536788156070920300611533010249182089789251557314856978068619209848688590010772567293660669982215835569170216269978206221718632748569918159034664946176101067616338635298400850171971810787632880983035193616876040337606051670512687884169806293947203735591312881317223606863348189722920992666293204961221799404833281049471009765388610812712596699473461979113383876456876600291955831007795565545604221863799771336064292255424574600944174018540520605962694449378557197402525687530820789138590082034340281721808098478669550892531176434809565570559120396729168273515985043754621492238474502082242976133643190919304245261788384079892872437914059241273499509039872034539601931588695648226789145184809883569758011715421251520009721506291531232290960781015626375165601072274082469867799927729333457692185215491053396196874237931004377612221676640876585285629610214501089401629459623062092471293002211268581503449487951850731846900951919042338067243839228124990662544042523789612381580398630599008840325229958017244623031973798727296142257561984340570303924924171708529566146591767799298064922052187558281911051210052561971189809443982362234239040544956930226467615621648195119939797076974645890274355842795231964593345779996509146931904143677568120078851390300697592294628573323558495747172046326109893741777556609828027285863420706837393359492984056395777349054881110495765281160209120981541521294571474401959367761958173655544315175379857876649584766198723920516049915801132916439172515988225298844998065298611741853925036437189510239603987124095999610125035866654747719016260087553887019572062792979314721651209577756468129465842388271891995514655755572378529717454597795772107726404618028527965238926958564088837512401102301436708682780106796859388851985171432058818038613186777838425253029691273666081515414563695002625921242462651653060049082417169335313102532210355189972704654094177068189417085001416882381491918971940214459683687613138718731225011157497708334916046729770085335325166264716770046887909311798796468414356150423590847626227862602093481280798321295420747036277714346195150410347097190651873864425286351964597615051869022607699215308225428929173287637654897509604587264478605334477435502787156056629230579817389383391808764611837542107976688824510289845199369769985458323408962277428586747442564100013493904999590580594053587141760970486855490576893348158063565304410560105272785938920733234347321550600809933708075211643165589817389655933318249092094978157494952655244473314654786346123904034339393156246262713375910997299462974771811343532731054774533077933982788443064653385484742631177809016857304665277697097196823202808540322889898307008304146763826078503878487660265509363279192419388639985409141542007159571576255623334037907108400645761785521389578323007031061329832089709402634183428872651378225609048178421094060129760007126806188714479610451523934661656025501958929692822448123598372159195832966339913998635554740099908765963883827882569684665141037091668007362371781997504350071737485953786197620639882918325770755492808351587262968976182632583465943915584154656148546758200170183234961745991345467318532621109894936919427914142843528348605260098029262169373042054314169845453943338939121208205477533280762034336319442464682570410915218683200859576215869142884815752036481735575366874396382492272053337150197075415874788736464016545050820930729083057295459256496501969930648624878582931699595910539847745462945671961192208138764958154690180761029180589502469928843325498847466950228824997723338387013613653795992377399199675260664299729253975984768301973408667500689931464279410680339373920257160088300840708271870023726046740775187799569425315423904090330982613168033543742985353048560255615331261694506853735232468593155762803438547483394365692355719988742339344575560290507712879625080430271826784868661020237384630096461186280463094990375797250230706412845022851714784383964587086008263986077891663250075490144698716229540425781174522548798319479232957741838702176320495961886907875212066021387716400007890210940474081648086140288536055663443170016775157914177038373235120356774293832301830340563847484857231102836315517646363933859845195631225744592093119305755186608366187366095312353574985721682905223707671675373378795819759996116911389337864294160037875866927210124454830856703571515288535476748772285135024456742862097299939424361355657676093163707958937429922172048914723734263211113336259034406363132533847070601933121477818439567903015290079416378716956257276647507850572024611705901705436760447151032783338859212465203361400985338023257501572604401456625464704430328837988104252034538571906599324216186344257323566375303414303633597984252616863182539729942177495314800377881186411409744346139838403059593686930370818549620049963273454974448311673182683549930816030486571825244591566610907320047487565878684545072973557167712847078274982534187704254232174903730711870059127116777305028358493777433678367390407009310732527546767695942504064452005690567507190326265575600239334945547166247111326857338176289697568712292271979255266757581217940464789435431202837597775118586424986854753111061520695473531472190687259375791138235537165419692617202124902517268644291197483936142859167558448310538400185342425606308344563799565435651776456276423522279536315455968130107521742292945570546659172664096839998305126797633151321797859299141860157580746430240550031290388282141327742186676899206356752020992949652098611614516267896282079950947549376575838066055670554135008373893848990691545464032437781317189214145646063102565126524371573536405551524185024041418141723340406885119742997791226829353384097072894020788540657624095329723662074634471291697995044259732586149292281461542925926498553424743770322733082465756966010129046440059570995202129011931985518413206438882393101019360484110707304976818139140658209466880417988047703732434838490577255450332102920223407254951567433328153612985247296833444157120202362805779249909040668784088517029723713314196740825727899937943195449653921161692866912901329086425480183185144220904048089854425997971459629674099488096211568141941984618743903424451817517085638627322090487466168948095169155495610656836403214798265812741392707478470766577310148743193768926593362597495069955165919828606001833782895724086594402608432453528438871394898542809533855888661944641332839445349883224822826996985134080958769629309447301891067786272865360953503389623320694496643352874760374819303920721679553775896178757126222704410345597351407864145503745978445721066552509127344303865276832148313474569218178814748190703042373350767564897973029998908210684017771866834605943882697468607499620348684669334913552744226589190404807616616506108924016791940475511342406990881715319183560602225087535610077289771473298908810052412039941589110773091201975755785998784548564658832442010228775353571213135123878884729630924281338470366532228846697219119516378843730254222125918794845190882363810678524802060559960439789752360474068326360168903766136692582841654734377099660979789147379637441361373503135015249909080054538998012133566146084629417176799117439094236663248014496019368682577288957235631488448797802457578382499199445270294292146941035102278280096381337970197156162962756964951386431185172164751294596545133346844115322134952727238478594048970123652867278893089990843543507261812289420078388677052146536217097153126827069795602127636111473044184618027654012035575852554455195872467670122331764024308766263327756582203921908041519563265476283971852223344696280340881941060029518158834568248372344469045376842170950585416455563893357521827978689094677270961567703160363561757576611151109825304022442537454651024985803248668577863168162054943125973929342162065228034890659150623143513190088571502393150382163400312154707064382062874845164456262129440343024175810917500563624466448689487910772038948176124413330365529163656223874505519344170123997088486139708768182256625905847045802773554385608308799918245983219464932267608055661050545681283118906956298863315552060060303852864430578147529884300241853550476850610580752056508758363784578296805785679635813622503976797491381833790731824137151661520831634381466987619713092778993713035175617598325225366844307736065863546458076510414092875283079673182738673465284911940254871928719440497238997288719894131076487089978367788512562441821757863093377836250489738183652623396062933532101068322177324072232170521767265991626838059036644043621633685091074830646142709158255014744076870569836305675499128283137937652441802356144598984866850823753009701576710810755998821225007413574673831645580405671489751738548093115181533694190872957405145613038244024218874840583902024819182347588200359924714558260870626820195336294712989713782874314826495275493033057653503532462456365476958685214749563895239703931439002200233015554536901854556155829599311327648675877889452163724140991267206412628450362395141436121963020660629346961764582572752282676092420400171397271713261815103271936559355419240856741287096311050111428296858950724033275748783577181952359613497741373085845917456955080156503782872744031079553181798131820692150204908953575441610471857857691622518045017327834366332288035344054900938554970094588242086030065430601111564575539772534206996290786191261001457228994810806704869727349929615474162872519209999015304768302659733044669701530211947925927996587774899303990435170860737865238248582631592320868918624582993517870949412172769522143346162963893030529702690419496264386513725966810686529319158307567776690927532228885283517232703702074261225617914191610785635991369284076561024478027585981460878663935675423062634202893344322744808135456039021347181031267811516887101284516166951897851027965161536009305379938098995402205459719151126832781261820423113811386147740175139727654451800189604767460206459733513292393166429091929756633682182683886945877414230951574006266220325794216616725681311703809669225009185685272192425722164326808870595016123420199798189646632816683198353375699843078469777456461092884458804202849985424404303421988412517585792940654401176186348204924998186021719494971603845325162171844503434700618955393082288653884397411732090639701915710937028698666867730595953319254928368090465438604755253032859369302384983641373011226988279292028592573770720833329955609683853426634448915209982466590308421482849336653409444778032245907984828974420276388578859908477426881078957848457696405304109455985947409647909804533111316422361774895708611563332500518100971722217401823975318212258047515451800692274812445765071366705297449914061024529481190712669656937782953971017225365400443932928175685367680577328636358035383209960639932705452098788331834353749998865601663482686409004979330474963737660993472318302221752743936251966725104890329897781869133786281900314587225456022146683134723573572271091836086236272682406301564703736941353542094803168193670134985201255413208337146223498823265325545760016489791074420357399460109008107995370435418003841296226556451083310266257160544489548392418127475122150112981398156258309080205286377398184093358687421486759127970387463223050725122010144817216524127574980055381435680885381713462732141660104875140352452583392308176191777104256720239694745196474583874663759903813520070962410158081173190413913068501033439659225758224066437635018505859253018105617148326472697122676393472590115838698418194708734426229420211964817192007326325855220036944791649835515526047233595889313622913142064621494891776007512373126852533308880032753207188304170925416795374647814877336406323803648119898384426574210248865165495264783466910385114290902948418378943978215944573998056961269034262787528412859890257741754195439106530557206119267303961121072555387930507203921250894301475794061853980036818383711391497455446333574858977957496733209951942618317947380159065807027718315599689432102511921796649784390894146005246516065960023044855323342187006568100098587576516987186064807043416639335098745297425686095866665929914257108934534682464035156707078384724085420789174501105698147242439555144648778060930884207167696573057973147760316396709715871218411115857872429427231853841119275692388150261653218685774863931967808862048923216695342151156314713840656353119370429454032020124142969160732725816747823331278925972753055561351115375801105956751558122816558222346416127744558382976861445480818092371314259244518628497969307820393797782729530391199314109632093764673009245073633605810885670267463355274197409317111261638583761341536420710425507095805785084299330713852171911411828878966333872928472357066473397080358812450848117988928797417551364178172510911181709314194802624233389975743858592356910342816847204155102323971716917786483682751886875604351390094223124877048279014764032069888010176054792874954022233018565624421108453556169779517712976810450742036258096907696218080016680876091158016729159631748671749778274857930154367727730618880773443714074487737720323231568524093334700627369562999268748831597329342013263476479121588488626520802716258965081000981327943145689665693993601378125231473097404901010357392951602742946406999536923335433293116678299106577555392450996175172094467493740324398725986317928328758818805526051710593572076696825641657850092964482166703685343011968489639016240695044818201450914228466415661581874406951812182778419500218038005152742222546249979180348957046858602721756855132093049909136568860888814970313951036579673572339887756044293362434406037036043495093338281559081298782553238735885481420950946433236912739674506249957162209274156061918156916372244711131851802899985715705063437344672669641926190559777576960632069884661949060954006314736068951411232827581821911081815618736691728506367129357264089317842501394239362009645925180543265678161349921169099650060440697838160279296153917330917613215717646752371308067612097645967524901925578222446506220015559764248756052694874938503790071175907846930725472242619645309612520062155223637785889036618592241107466392496888601677049950757512872228014428970756642715734379315757820323012182896883177277249525743537390108141074591422256466559807283157557842644807112245420707714474432241219348914840780852493457237582202860869308891104386605482195900950852158215214882196952279728240369334844636478593242929231190732356035887910618032893505799219964300517300878033349766839572804352988827792898742934745741989761397151358427410447633628502051914225152013211791766617839763056984381547886286532973419510444408379521947541352915679255778846526736946140171835623825011985052619430265305135676941195141726652285513603288174424709942136480431652517861780145559952580780975442289351079117640807025756470305512626302569218017053836992313811934067425551460487644295816981478614202940205462024790951929017786288058555750924075365692211789527077132433159593453374348371923817553912291006109507143767639666430870146137694067497131820884153258480464982435188093541859998598306817193697342051639360982343004161599773836252492904088376212961856233567022742717151602158355238619782354882350374921297544217105825909273186342563811411106337015947872936495004049671124794715117319607737991914462295244352059501681421377953741913103002874631882396013932831499363381666226547121326694685979002409476680921654331073672943413705549625192457128920316054931370187773943521841206005310826138254824386126703705127180147953784400806064324196064107590077022630860741640711735463745275403861268650418729075341794190198931773706194924764062914888325197650783623807223951814431445547650957925253218654028131581803020951363547798878076137078863992004404688366173579505897286799561264720505289094096252745524768989926264694474365358793130294660529351775127533746274803804509970538849514340109534934339080089948757259785079230222677950508206558605759174510263746586108037218061087800664127963674045493583223424778263085544852498511256735531496031165868260986806064708316387893805150210361580132569655365104488014259457326999993160144681796025254412124680919570057631989803073333706938928428247902602083249065417995839423883309122289164620783511716792988609666296474830828213604848607908030654685063303164898958521532406363723631635091870144517423043223420108343784747479634341321536821125905984725175163816215868709165013322925557131242031831548752518933652551535984551411146628636234637535701149855387138618167121920749965899821493891403841703972042974135683215032037609373316436217358117491962468688344217932027349173921319898328187225866165486384169759808705160878149700420411165969793857061299998630422811232103336065219823247619994914027814089097800021026849407464331123898735540514751584854434530772688745522581518366341216250371821372972150667781511896861501337153263983454693979668257676360051592180182844016485882825538880603893202790250170344527694425055533592995287946608410058536464630137102826829186774295556278765401926671432033822534762603899970024390641936330668995791594986962094358549582670784689694534155849162996997523046431553000706405278449278828663321144768856229523378873534563457730152711004927737679797515231867012573446455621291874618767773242805275035566640860981563274435922575580251755426500281192541409847498657270084236922319271822043478463709943450538307959042994533790403451360457517556969503666820595709755519379471124365587506754152027626492745358091413512313988011913587779996228338950982254784831949071541593209402000156844160500600470600403799562227918382838582193375850444897170699323137894950490902645486102912942734868379103205330512007599134220183397362267190008530802970035291714074621837830877600729850737848531294789087885519554241691160765510617665806328961086044407457551870573175158822950999598119174960315591928008830936841957870754072926193679744532543498758432364193947905983215987480725505554891440470093457383170357248833442806471760596688561054138103390809595652375613603149344367608562015574222734773011041042181764196611062143812691784399909162907599831339306126617310757390432627926140237056560802017782590562334205435279768942610944587420848234439591327202137408096333710231748926279838061331123739995028204499081650738814010782457104514368911364418344604858349594436118872967066634171444673731759872376899534701381246655499332181289828676014671589532183203839473908220532329663932105564590673768466368979806576930541516390226961461901122588878615962825758010395048418310919518689633595328730559966704194595079025057642310912485900687854811496158850109949591395561729736419733332194074810357183199691434852522843388986181380769767006274235422602077764756179849392131417677410089831857243279753473459577526889660048472152764207078144464901215352320638152831715186079066410624626724410190710165757651777703983956263461285585414420460320302913621317786587140107119126155801160848143681514848321366314195380804498471445600171232383239359287367545279447924360253711834929233947099284184759987136907763725915251072857090318285426807125573260410060128559433613990809580743672484669508515587492914978499964001681155233050498278044558682636375629000330779627421767142234116723997726785952322228488289005853431188353805362153160337805732296816940952640576273986489806734635077241952592410397024831802638057550383518832218151779969858174571686823671592480339735317231068545212145502739646100263587447106245099589107592818279796151145208934241506958547808031093196349490491454569370485573298097438042093345572184620884996773785764132649841484904271547293507828460349724385519817799654248690605755267086354245545778984354757701713372837148386895500406299735408389255696003826085093116576098805900428637938275326520589084354019096140234365717876780438537080112198433941146418798262776042461218117576724098805973354124617786439364746264262932645047946955296293540443974121410083563898047686137817222994470497105993789934217935449440804837393719928127012144303620653985145892273253777793755175705671114719498440088349768806096087773734751755761832055983539668943816029995402050510810389946985847655086436949899319237840188923528507395207280548613246639431247082524647371285291423687750645627034261735544152831925047419277059618251437369027472012384052462684261817084263394628647316102250304055428219513315767728611214963970824868503409277989714838978168399235617280098507130952827836049943593939260472643837457880078484803923446004673944410934805440104255278264677808560051118423768821058135729463193685314614078660535290925939352947194306245441260911862494435291138411954544039273351865918037223884150256751825993617391049373879645581455278394321255065224176634014738718413763690545532885635518859362383947456059887818851251794167844934829053434352004254416760730562602460094532237635594014308036247129796347882951586523617204113498655647396317625951980590212128683914623565232782621171057249151052321880561036853269990901932520019571449963027810182562066773592357028930998356793565723698262242293024084385336156140761512433411996665957915070483130265020594689871491858657474883034553163640284851144599886037739707973454172200217055391527693450225999237453935838302140850986473784328407351881843622017158805461024552147265168092752724986287476492741296624702095062680665457786890395209132608495785562378961823437139188484130352837274770409666319113140860508743574618005974719122233147864222620454700159681007389551808369810245005087656774877969555589996686633722717270133548805960459076329425248196882887160233140470888643448659846999705351306095450579057200573735913643095610991542343109524798980910104377127007781131966496283748301580545621629328279022470202416454747079485013074014258226210529148241626261747250230206201207014398269449163901663799570638522201761630983028428821088329884122526136619751284027964941268838436097442522825112935878239724712612073695653038957202353368175536864462424348506149384561432275500419500909489279914564048302415993629508588908496633188208007782564078778703781763767085107378783814440990795934847202261873529648025636458015330238641667422243023233744560921553413943841751071640144091392212114581727602552145092236143399936054489172787302088015242598012539977829192789793712741470164279226076275121321410673862103253365822293428264920371065083536325318292778694729216644404641516619655931894689073658485794728298893843914506201415917130751653786697813504545608892813029867094908217952880680487243119902317953533854051649138046933651185627765596209096641183700960094588890228697918367350632879541405592568334515231314885881233285042241558055617729945430825917396083984875521432124776610202720583806701307505979703901775737632503476066634779180891564960273163712034889891380641860502734500525874573911621730589974594003514845001729693569550200360458115575564803289915093181499867287252447928277851113790607323285370143506510519113677670818051244946017851072043863698797704363822540624773315692436243321847915824047189898626412156179123891246406837586126562799364286756350913897184968157809707684664253358385702752842850607839669367765035972986687619626621161746959007405849569906649372238787995010438627197114523672779491534296885393054488201109338852713555303775596607127593362621800269342429499320720119990306961902746169927165580476841554662163022308419853286015080839383130759475142293580284674257733174027327499360743349728865769946679018477458501005162110632677800613748917142320500536077484995477518499036923050185872822632337701323792237244557141846831017874357551534077902434829658523016156727211976654055367614124322950856021421605687472534570751092789260325316506827764713145265697798766027802698154144166637261854970642849656104044114953961863440439353131678610801684978778691379716392605062541594466626848311106862445717189368804463730662164383288764487584406876389592121024481481839113089234688259294838973998800540314864772384144360249238028137083835615615758009980085886627409892991301638057454852600715641326407171666770744921329874887985098675545681071759451592750022550247838963772500425720898441967727933448353019427049052318136808385225821467283894544123523485589316912021059853644711331856964246295178227118994031810816653331881425220986400987643015142877981887559735038630816546141559779822655984578809851304799693494521136226125244031734003258924717551660989992237788669891033437210637027781718153787304932760981899755014445512424226019970929770379747593054405826264942610740199532441433205784416113405707313806767553359482080212854428630117524591138364134580426866225102803942468983702019360143707327859017201131860613657425773809860290500693975407382435586251640184497389667197109494103878384805542845829939693372869375795107268152093706765614283889175964657639861045029388906342744339263451747759881518366780114218188266241563052590023506125212586192270596402643494338203597922064968158299824468280898955059875993016559126703045479229798312906440832749563855562282378483094172271758311385343495840194242043014496158940942071120650675724961529471248666626633304923867512347451790479684919663741567679571583008457916695076220432687636348492678877135755300658384229655763098470892578917612405136830237237000194735709107520496548426894489871200244169150663385379822636737197570107017812216279882438354027442308249658394058123638172847155620561383144642886155766721792341354932115786594797761591441712209341095738145847081148901298015659351736865983967990332415171594091300581993543659406419716321798910509682885333725549677929930471899227809825931737582953771372576504669155579154904976555402170878384568619157210699975813542203199935227667004488862943863748329142505406972819912215859419066232351915427437852402515519785148501301271923349107593407476399905134998806563935175978146092009891467777518572048504636151530525854592374990543670659621238407398112994604717743570147633849407310887769764782931824479249400895600536695307938108134967740885314055511680528175397692635795109416744089053554904007452699233774966244255913126012763413795382360318284914203380203503486564640534924660201175134102768648667173458616698169536570789953434209213150156517244862142236731345576578359838287694686194767872722628707425139232939264581170892040913930126508471616998456256984450514392687174527908454589169484626372531633918151104223158606239675989834653802435942641867046079262579101992228983490273680397546432625323516517139121465034987756729815383113201999047013012826984908788226171433622451007122224366327830828621318696967752899659913606612414735021191763587304709788176430773809398438017828539013767089280977574276420750810938637490430681263697934232687813381676760466211938244210083881422138917264114739053246970584403393891518166298137036958639831379175800284335162172751349791557932603142259744262675358366199502858275888215370328905375912795360674060893068233161667368349066978383297916126493058942345226431971038375433100503296988566200897284229057702899109077492362440802555547808824560295445771095809195406562672013081365859299743584700867647032736049006650272705930201964051722395326538528290964970072293374661919104761101543275093964639265857193992479596356544285789215194431154222583085618966756702826914047739604857995981725047840911506201224481610187670904863555724149203950515760334293715716035096288656988226012038685605628981513168184749915802319561728093429342072120699745289689015346588568294842451061169986814945344341725441965010071845965125098996105779297495178298233743840494585331687722833347211489265156426834894625410260789592523533347508920053412277520532846524061100690014660515892097485868722286026124399908830616697606970496639996456523467738707155300698716101109887610847847968433953294890793509855264183160218621426487743311759262739187137750322104564826891708313222100842443652497689767774965986842499017619617247163602578362207944277115841344161700286775167540171553680231539579271612113638607837391339376523265300266942849246438665167640209028809089309624761338128431006116035498415558631078944669532273488058396723142606547341589538947437510690495309837972590004358898335566129787997161851546777338856638426237964994632374379020583904175117052464912455584578172296634661086341890269776663474655516822388927658779408084403783370887634267338047804141130417923289623441917734569206095819760562365713471997053987308938649512479864951075160471147405013342382150482556464102524809941394757097042484739366374515628368749689662483834574651579785928219518037295793501333781138023829461166629502784189895500422050607835615947220353317264461136782515330005892229486652695272693611288824021694710442958825686620049224409074082516408626154929491438608245645808831803883100890953487875777262755817720476670100181882870243343806087005436924940173666282271286537149236946849757214968883666545671034531228421789824876423769098857546174648890688469850194735674847962331888854123963095249651563821173644739333684251101882934166177724083878778218884585424927859082053568738723946630134741331172102617836792492435263230261056486145369408362803134896154171114998883198639490171939372485254157282420175127859394127620672369901252106450083550904275354064786513220399440447013132936511099700901146791283759293722837977568362449911236318080640298650420654009112488327728797412685448154963559978303961926706417205184897722926869124776574179366377170633419995880877553197322318834736525461544003567576838271264332120976956595540841738062856958584339038353102110147086808220745735925092715910073187876974143948147753359140823981796691414260816701303103679445411905724170431459620742615608866873429026053442210021068114541835934327743435776013929791619972574500598032461692742671220491907305882442175388325408387672832604745241761570482429739556129490496873767183566886126069786371068445823063925071810402970307343387062011023404531518478775723568553231082012976025577832161493133303371278053821312654995634290078921813997604948863906460561332265810744503171261664544881234296664104783176712107923480811019999304485978396410988024816531597720983097959707852351642562017698406166766744412468496434291757595714704665174985850652214834078761556186386078286583574837802579730356344775600168852334995135777799196276657936775788764544923896741102277954647408129859714757915837756976451119046821627493976166154591841827689618028185074758387758815769350214450848326692404564305790402707392631101342722241239853120533038901723346424464236071558928451349654071903884848291581021790859022712424418770648184086370554975920247848993023377075949812870025315921103834277712294400517867863890939024859248622684506501663686960110716834088760388119995639039687525837148401708742889271877869382648861021736794857229979925968628738485899877892157227960993875677082989337042645000282274468938923473495763795758911474237548257997569047456729194929290965753170472908199855645482970497308210990388218724479955962603210289592319488879839938772572620473902204732705636834300008483214999822045756598127678752571770874600133911062958659137122650182129704248338039167633602331473257310341941804360346071185655166819517075056548918698572298134943169106528514925051894179553136161916121027566918743623895820441108755251237891960412671973391531088152322297078808800666700549972128602771938071648944795312097509852926506656733698449607329032759927968196466817829716043259950378839782903059950844585077842733552744385435014535847559288402361317392231713631711444658367856821555716427547514540924539039521159419416355390081213541376589400155222279264235782256291787585398337250487949570562284550473281609921090228882120867123999805999283697032062834829608015579417157498938656000114306720827205122639125758077266285143905673685266971204440112969379334976789073100663339301529731417094938352425186523340500770978751025654925465618599279773317996590575211327587373088965106875529011710839675497078784380432459022260009741341019431733964990195404686528561755436200386067253542395618667450697298109406264232646818410793927721397346474649444691602976632284884905381044506342003744145957752386380021674999107967853559300136823536277684298577946624489031961672328560413553959308193646668220539368694686080366160055771470617479486996758324456663286825781169353502397792983919203706018942939613077987328801513673634553784406375156188108992536091587542286461404861953578573170640890666481664163506322626677472414526567822749005857759325986027660137908634423549148668443029652362044541555783230497240936202054391675751588683070418853201384907159002841032465887775245547197619997650490912779818406937862613992037803857426531671237208882849919298799341405880707373220222757811404597273932230132373583095576982483957088960471639642379292073456346433105875861005115127796149538913061085102993538004723994966897538085142890683122438496321319867937569323020598851740643043546447095940008229576203499772748015702088643251254439741259938119111481882184099289895033362207585919420764525101988528467212484809218057445337201748883783380049931461707573412655901055978880956115336660685417602657424182307006382991613805051808177051985908158240453248546987289721383818482786721255000618579273499061202487196281635471923321075465137869504069361910613884947454129832673118655027995633785475993105477446701778258860527056228183594632623937776593293140672398842260623578605846220433007352944123730132855009540281079520183644212233255474791774200486130898692957696521425793144925827490374370368121085352998009223400928349206821440785090449227604964764089406556772657077204852085580249616043080234652894093978415233455356083672844497215429589672923571294129190422912786595643136342094398185003231494443767966463815965948983216256768042419328930423907485822926916802103019401347077722022597522155379490155837477228183401868960795710217448983157867724805335490140180491532911083898586259381909304780976092115411536251923414820437958346641577370418147513811966422605847293018526583235604263061225886218757653797072733028029963182160683737077813845186571768313143192703794555098741521776325948157810791604164768454484296689867792008829442636315446102009742854327593146103955399245828460118978785393561168237850108949676655745254599084251670705790979528146570127666407471935046095596065876207099737655221124143470465052761354730600626722019761329449771463593215267065470798848862212528287277919963339416143700682231170612953738212316372551249920830739587630116521215135088526068136270012813632987630670291703528387731426335510680027174109669124323095944815652003917082267540882083699549120735001677799760626432067353280056442071413790502017365481520162640721955613829285347378112653804589101205143762840074567078989329519090781767392758779867680743150941928249516733231321920870070916300384891351035720266322284863316476234216967317100954366386739882111334411907964652848932507831615021574931173717385063319154130551904058645303413506478204900445636288275949454202116456574989828457841520613197302165934553094091431813646542711006161564077356545348806355512199443149126786694161420828650811864998217520698087998978071536040793919941864332174745408671926969538344802695144822514871351568658335511018199851360759135509734437835761570316571870660034602415986878254773465839758486366829397491534376346441607960310362387969469367692492438501137477035486895960933324509051449732881172885953525430967523271650338433602974911724801316539544446598069727666894671022019363026479512915108306241884624039223952138635265976058178673137376478777187063799982388430931826198397864002783941647378826789741578123702916120930347018514030572751246253890362279714508016774830642631509233291505358583203879836455806005240558003366027538446930209692774693791458304515171238207455175302870947807129828361591292415643557893120316837251868253611122181916398478706550677849320979824751790543082369203397937399844577460095437989938931592475505155228533148676684589198941044379946613546357461474964275891212498628394245968407811816302285053947835309741081530298543082813920146820341094263797669884730033235568846149286909154969428247312200967078864832133359503068933753277352194578031878306825523971634696663082560452580657677437325812444944552745033121283598884082839017502166942836965008698347041427765019478833017456731520839075858418810627803174443576795781739882569963127396230693053646889987476883251846489335318991185389655726289643484017464044974488043322089032226867592125626870860798999330134272252793621468664872675984964568978357885364871744314421217875013160952175473991467447274125177739083374405497385520190933566263065120671445629803441466153197646777985662018225023154781806555038047888435649651267965685079878183657795927209930971769538571515163470437321502991768569768937172453554421726716771868226181095913518878887684706748914315199821989660422022630952314982290480034810317343298316066034335611872726048282349270337127776368567157782315122367770032912594827582121891390352588483630730491694631257314352267814458404815675916397074200619144902826381422790591399460155784257220355741808083880701906999206533339141864041444341299014949006968300747387976394651733024044482220619707774917379527760673015209197601000762311773909288735707403285306096805723032415077455850431496028421636098075345826748204650071705745688545618735223968612895728811298902963056797431963398482413122250777183495197999736364575973352696912673023920141131151889204635754362130730838438458367831793636081897110106802853270249352807554035200893234270496200661208447058132532793428876657010526316781719662023501513467632418845603353842796726077928707641530104435458424069533633408410124151106747950489801182569708770825735353828797174778895993248479057598224130350496108140176338492023097724520311227932237077500957575377846961909837574474326314455721757275782268577142145170066093494445212341405808339548689285058828932603622704944866409564967833146538415742700525995412426597861588035550513192505768677516872468599907398663464141555518741741484434932519238087440824918969196256527507365998029521869367642595550224550173237375672270115508339410666363855742428126380775659207372209718367058231753321790172064983012778172503492837200490722473728880476244805897006879345694591278719194533544929075237785147771635859420024631337584181354428843182810535760823984737614887160422707322447119943634165598776813926409103579076031346536203632071353311644437202153144906322889823115402471531359222495138072558982024738128035308214408350321848510587546749414067663363909905352481942133190469217333475022818623824216086127117647048511780875643067893341158800699563754394176179748171100506042835886983097795177358312147000443540795476491794024175242739894149491595062981068234428677132488480299163869313842897591632220472339001790853579997765034417988094865182843032416242624255441854998835804546684051475154407267821246379002930081732058412963997169689784387307420725164651897000920707343851181899796194540024951989395920476822234218271473299489498936417411237813918201849224295344474741229726352379624202676382049366140897033430158972264332452714010076233827478963043688243014556139809556349427659698202395358060146555568158576658047061309130546535444463931567800682195775284246856395350005987008538181266667442425969956882331913813843262199487656355826650282337358744111763284214542749251037456497778240541893308829119101764248006220817953805325659558860083822439214622775271705616486186214301918417439917452006531912604634927822651374210378027477918424776516752126833116137901601201834535700304597165113280581825148059253171008481965267638622036097416502133953075056723298679575064206258837531383658508683974443370476033762132008310944427697470434268403675764347132981648586253885122348822818694704183531557681586335872310531417111261713206483837108500493473481539843512261839013575291962656800572268165518372611299005736759000282207714469611367410371806433474186772131013081910938219263348938073660021633971325826588231197594883228401223073125001665188221944701930987232024461376836681562332983621267880388005287235284658172777242762368405160665335870603135986939905729469461714301412290832555927735219633256751958951469540405853694926445200915944547997092875782883145859100762866311796200375383255841128583531026237549409239818305472059471936318853151441273588793607253117103467522873394204104183092437746863792838069725293594728176123833110577645088498194279349762288755422716192046947388833948349335235637986963225368833664437545539577048312984827493284284965746862776007391016484498835769090766945457765955905105906300847722202286916808200368713568051717502929933779569273026658098504185689920358230173978159603538308401397581726252478012902901315228114983748196911507042836061119402248673926020054034847337161657951163627138301557436444910668733416852373370421748512928864199705747795531369544066610306846160391135776537961342535533487333884212244367085823892272312214200045560007369741301832549448185949240179967688397361098812050955097643287236151057568948677648220145778604998321863088377846903063948152858040600539404565274436458710946161680363551478235230610524232129335345233559099004124561311687690488770915684688769611743196583310839166436691191783105487696755133066406248600310001389475792659492517326395664162380417409599838410215004234960482511484968105884947127079954435859443327801036065577473983182854054166828930332459302441243525997317736331936359114109453986979174263845741058770003961719970787802110909592249116545573869181070548088593481233478802919019123851302772591687024933668891360863987631690032747946799718246235694854320007891866561250895346760420402860570009602108740899127326744681954285909446109325095089064469308589226197240162360279764600454498886784337339772576128431594746333651987474523900082160046384719350660902696308996421907088513222096809681833709027691016133910254125747477313729041052027075949934731640268673751333745521995505501374571527413020027105147580260484331959446413430189335080005753551470786684541293254586723296802087861651846931691882920162100205409911530192428740463980690781433749443293103748402261598823432676586379506365600053958172319214223925771969910611901814807421271828153375454776592389230413317664792204947750178744738569661392630426994839907826966682371449053100047167048626863583690429383011313487669092036096492967302628739205852454319540455136385064564517742965294065827745016568399508391759601478883964584362254496371966949179160578008843178213482234855451243041843413426943014386164815240170423617059310565298258377322195974665147256294673119601724369322751641175748055792519803374994170016403737762219195622207153054535042322453268831139942317701076599895731910619741334847167281264847660392804705111061101359515922690105565274818915915641844241942831660267040741656059237096686848971548794703137410432667035565171849358355786659433253947271919502312748773827209644859365321842382761549870997780451762357911418668928011371184297552928778666084110724095746535648842542565297562467212140819229517224685415105522794750678519508557014445159999594482390630027978442128236831296188837142293526672535075542996266499026205449518235878857286732580058360724663707616627035526613344469939485265601031662507195983044807828663783004562140296186317692347803811421226411894627920365707902463717888967240093056405345175373885020366354411987874363247780571989262471323698724106763754934457066852943290726123454134362017705363653800762000388793056024020360773605254578377440439885525999874243205650185434878936504363242257112808935162720249815932059621631128522298962990460481798927857718806042450330520547819209228218939090798969963966262625596420827039378309811382638956046576510331101418903985340119377497841619592385064030600281039566055408182243059292157592895716239375844960352167325916217304381591102267539733884480155729493625207319632363043815604556085062683296125168453750999345831939833678965750497865047761114108313172658845543580671507921748427946153918576743914656871820595750128517218114828207160067494590924245971356194373592882831334808904987555929386525497930206134479669687633203628383835221196550935284840608555977260307191569753635687171663624919696494513171261941242430543748725812737064537451880846789532633857963727048087385835045237330186383505183508557209029206807767298072450759516440105007703437877813993357137758437329963152557302903703133797420852855242193476918462644545843061018557971537251806547150108731295040211063658792996796268932932035735182287178272998050485234581137438620764719199602890484586746790407727610697952439309530403823061746269939618861054718828188953047476795543463399472585599209272403023665849961347890580200774668969869978799212231094977828989088375670330006043829806230402125234430816167648725551205002670053287657850592449027213795781681643619985788775559041425117221143184309354777380102896115465288490300362993809554553390160884513076598754328609068101706009110124521384812498606366066078021592701569636403034676361200582132151549142981666194227790714898788776751811200518513372705035160829553014862017047029285225773877228841729711932555080192021059897653182987690900217519910443599377018714330807339252415576048039542616199960585080997834685265963020238315880127692709098724348736989833709990956697827335261322207005583179092251488917225565181492057322061984903370915476271288761575989443310360621471244749201939029262734263025485917867272648591223985016660886370377393306930086453210779500565391774919443046366296488855138998647720511372906935224200484397323018648089409733248149526371287940815475297214881719549046388132948067660507935314292607120402095410032939755870150357579336839887903800057657242000095216482324786967090329368082836725138877359787324495984873998412585770606063198260924114295415607361653536086019614296972183565460509495369610919646493568444233751766099669015608282904744791135522624021295017040950144634544410435666000209310796755414531719380336605225356584382381811729712857035112420563153704161165467233725279131447084239724912163811069407869321365854834838643742028239235451934561280830070157105011334821629319529209648784736948637563779207061220453716494123418270094741405340081725933040610413468527853410055534748424545483183372267754234300081933370658256528768132825345123155284102623666275163120232153456811997343021724987223019954704038463656154197397704912959150790525499388150565562303127576823436236857066961735070334531040320635970953969846259147541599329047191761053980756421773550906547753529832116340359206664551209866480302569559876590369057669082668741717941832900057757962352280157303530402819337597379969013283912009153527719381067498705284998135701506651962935252149679328453394980530612668226082708132526692701402355565404266243102411226213826138953574884597362016766482283494042008278222588657653531228768251518693191284816837925143258106082528403137845904030976206632070008732392022961769628294104839180080641263445960067547282117710410030913046346205746769257154359255079914272701019814065110980005894915470982930270551502338438147786932693434191830784407476131236663562579308298684649290051410483714711426736150762498783465012295705008981575503190870692363618182666525885011701502511805379523769340572437920975502315168589866085965207500581645437226504806589138384294021315258584091126640104237059694905296557713573525334243380928390293106706157073935445161011592307466486096846410267527738629875516844249242705349330115728782201330909611183627991378733314136103031810336860969461897650137154567292316623282971848623545556946499654426531474105873957529426492553394033985793448532962657165145474175903442624999990653792603364209456638062470928851495493586233112850461703178084164423372120605484981947889801042555115712677794750910503694100261103223944934756474910910259840119020282341289037417082564975912567535387230218950755773519435828449250088476095370683126648823994006036011838101885670728774734166722760274073718308783968573845111834460523662056088731928036541682558203151254426757408895086866965351412654671453212042685346162428617599059946481580678523830669146626390505655612938924556359884849008703288437144264379852258047624342607766602306840227143181005742837582013899065278878726475395804564347666961249695426202011599408572130116366732859815767273284488968892093226505035509166689186406173349493589207709227066420117670450947216330374702621603394973102216038783298849262538351095936856848304815076707582456266211139782659568665944875575408668035718703608500116515815866798278843730425798387620559057038074744082740919864898266686765354493950301339282294876294109252694551204596486262472008814250877924320752628542206430332782945161651446489191702721507012318330011195902101088584201257635829082565678949466300158874871598610076931288651902275410920584539632839385766209375631120232172146392033233952859030748587120385098289878551185200867033694027681950845149494711167278050557603839268590366026914238499894456693328889854132207723503564022465738692710260990531353933398630398826975580842087122717085540171910107981096155027547956470352183886663897947060811108216832227266255088715885332911357951121944343211799252031673594788688265539200030167527848992652487907179424919864945797931728374377582930257074185838674166824348244860083769833311786940646704189545101137141124406825258242969304734768074530486152177455229080977970049634585150627515373659137556786342124092992573752157062640211064332578032958784301352556115029139427148951218584662018693325217073216642728808163116087306889785706222096843895014902671736594865064275688143516268018075146337863351987077565265714379112685286901142254230832415906784556830127537223218092482698283106560855330535123016525305645535131339627619003699933615639734490285053996302406234603290975438675695811594455172427727163151283857987575802669075350200853777859621909186226692400558661007921604446911262716247860332756618680476890390701267014905320976146665045921272615910346168912579038293853300236053719782863960350960248467613926147704396013528164164049095992484480240507032176278475453612289861285592198026548128859242694821874229757641839032966958840166903878362224117596226129733436721949699535607310457037301638636582801256222844362072181420368075024802473517327837680841240201409329926074042449309826855138104303193183294082782393056989110262169922658561062159086149626830623441742526097167260755270901388816920081481741431586435210236104795328314743502273820855936224521555377057000182463952758348949699391251890567431987913356298614943677025193970187287651344725508664199707537920932984815928333453387178899259819431513157314622809741061010485563909233324492951446958676393621084368096757772416886383880507480711529579458200295650336606389979450928339454872699591332832355257665210645458567187039904634473832379109274313754447675688276488936925804975077388811932210865347214772918706870577567634801097672091385488086338610740409394561892651206463566811149148609393142908882109395066985909764455695904910979330783045591104243713388249172111302012651142203631792259882052976063763780959248411189912292034019611488386360915265276733173211665951546614089592203118843927131533876807166193060135944322640468637094929966440127236079378826262657190548551783322162013252747052231694328804663018430578162600964839886226771083978924295624633817043923377760198527207764846226253323337343078302885196860583432530325827463680905393280330695177905066582057217628775374671043551865467174340148828828020525776585175252564123198097917797465183975299242058388225771423154047439163672622379525907033234536649429287442132225782179152950129722682062721846841389464180917814944983906734758829638915063467343417896107550269706657375281739820955967179347443748868071029707816040726728679485095312305504690957414680863357238784504674228087300293682473109657138946744243757183865281481171196261293525042189436539740220322748556470034749379161056763122336335095733673805149108227191402801910949557389422083145766815489885636767654103642822440719951854338500966778296827295809231192781364598400291077596559120433539095205777503509453859067051195893729843290677971375953494186024143598351498801290133066921482306015353377015532604288931332825762630170143610122523858042997002894089412609472770366794792438599886312617151522743113228796202792160821972588029270309951912378731547142107179082840593674872623845052052125829818504696762427782896351810132568898777064087949384328498261575656767601950234422382802844080669252038477428164688291352446616354577053786115880762331570026164594921879670928946701399776368668852514939718731546196056068610273989284264742677243354907208864811354782085533755317464550922198144859955836831420950118610475019385242108511052109894602556475383319484650969395703730993072793974343794298203544204111338879873213247794802916735657051093448208728108593474731117429091638552316437637240993753804993858453481741394100264736854547165064087377689367647764476379369339280138549209035775481616266403509285794719442775846898637580193679267708833312461560877555410061859640462686634997485267844170689056401532282408687873089345429069717769208743376456642327212081631924113818861326159890294262215859652063028856171418753957457484314837202970999871469847565489938050032615358213069859586496238782779240174668704884434413138260226344623918449671816148791971303326106843617258541763387513299898845755082379200205347311734933178845429573446425183054378842807159389355121150679161108640758002652419728880287802456086924652885285506819850691270754013334554480853372675752212785923463125971204428835348423485328077594892923844204181528710294420519661822217119177392730737152755611186890744780699284070928687532256825201152213171374632613165824310858274443974140303367716439994687413182594209032272263538288625487996137194120299955537631129109345615538104414757668050631872235496443793271969134838036251669432615499106831818029661346891067019718571985783431015248872195655100071876513842517126929648349573872946541559110857428870636838992625351769119865638669982979453462691529157261962208596194155491096385439404565050016520668020747216648074080221789928420884244980976283880779932928376830768015015203039442614332728774267317780318415641316196051636347088122870168860262468577387347561223893843858375568401051173202835029693333153227869563134861841151291884963578950149798550956314667362689430042520693833769173796135054133203736042658971324311042335872892334600219374283808984890138735465068851108393856571266417221545546626095694091896208361284601967798322208732496349540590381063105853884924491171152225254468931532855718462212523849152816387140413907994368618948025998659206274367701428916067807754905625907143213865660484100731759853032480959674479488856096965914302006148498632187241157177688153614710092265992726075411215739600416758168183633855635779386652390723646920922085754666216121653874476780333411030698198662047089262738796152932211919458487286191997830264628178164716304559179136073822246237278281269207624309423826870607509612480764049428354331943252284412244436683810390454592113000526757962257992363949704508861527312137444823693961835343373367635086429093879908600455722371463884105884331924841061723395715698522449032805700522585454925464030798946658522485962774073673956442956886682016305155624950564528333846078251237221261719037993717965619151989527339708567568738304025451539831479011186636028286011975676841090175469867181496033698766942087765402055307966563057135069299563081450750959748532354967094265415072247007462004616097545205263520596586681002652800346980649073480004087267886562792600020297582547694298097114553290518916942897215634764051291044429396927615024323349188642700037906575636803329253419904796370898572937423449283247858246899157360099148567229097473200044314865011564962375660585390914975252650478238020973347051390032176444480367253332681205784595635954512946095911428898788421596663673570629465633396341351989976594898301150873860374471275124631745401654123509638563161259352751966283940987547985867819874953675750894251521280838946979856291794469814623055360213696140339468425692320858567290197878243452904666879886228987828436287775632708742523536582943639897718854123632539407859058823283465275359266134151335571652619918494364315225878529382987209772033347701678623555256436526655889784358668130226511684597418511207017140634693905053888005747083625965966583369286906183930977003756254472459002032736690817511525291951388124115104186267240757625508688713058384935955598761082686152830445700434629159925179870524624731213222816141475672491886530843499724747469373354628797461201801575666652923784381160200248505380263330380439091572670184481251747669158708624095577906634492626460178217708867950721778204987519697557963333670100910463190517571306984293834434063554263014506905438530729241587293408877983028902425292030987848039912382349690662285112454392977727887042262073449779227494688463398083743079911133482171069290897686458304287221997083516593365379375517266981405019404961005728940242317853642041096337724229636887211446640786699348070488885086081887884153003710410932009177901080924295471760175864583866456591063894655989064377475578059696578100044370531599021895945144104892005395767155793239820255440237116851483025389541651820644304267900978430884104823498767053765451869048459487641229105213263417174035440773014109105784076952147149634085333835068085428343638590991522953416962005912126831248979863472195548273737653689889378927733776796404193591809473782951397347166042249889011868607605428311298347624315827122871255618891256050168366091019568003022185745599239309421900439861325072580365486771799973536389655301468271933949976361413292594728734226072941035660247457358136174558982085801161688368881183646545779410144264699195696348288064477823656325800070486896576179859533326429335881613153504333562872182773093153694638134546867694189147298885325871522877983073140920058508505538212660794421723977674191588583061427322242609909044178189341642399485265935262637143283940521326332649778235848467938897601783451752853422488739306707208737963948740066001322413870377929403108214645279232578363153117187638660320018476102982251064785010536763200006250344067377956675427572153373742793470483381623943654198419905163461415311390777932877311807488127809497703217991505641975741636447915060620282481735402229677664197579416840619321138023497260031803928664497897443271432940504815340809579309660288526368011661065803977522762595604887590851821489354633096517122289842092278556406917124423457847800481127003200332993989119978440169662622304084682925305507605919297296873286371112596640911542318793059977777687274094553649424290465082997816273737384073323310389177496425364751308170867259997955167913789170679272100777050073049934291877198510496455442590064343210647170081766001269124281933019343854964180443110230064332118600449289690749546741091721099146935930702791199050088809107897216958115612984941907042205995131205250058952585371047147580531596908213825397053486199341018851237445600877000337314121473454282953245316147903210984607627964557006107576144369418650400283623580691497840046594462187936605050704096482758407953024675969735923541568102593331766312289306983738103054136861214099913891163211673840292147069842130395535798202482771612467422072452970350961606336573649530684052987695951652625134946830402883610633213836634470496346265886083760113302822186863760923487907212716251543261573153181523741138729392258967399863497374622572239760367154374197349174645047917786121102036080358675567626798296756782850557446208215373995211320883497683687301310092473026571318778443011553589176740155287732082584163032571505997319317480576035287138583302190522789012770638178938001214259123312853862497657812985149764125431329443032289418334436532944135666914397046248753073560052673851730732036447988008240744936150063059637881547195904669303912195159808558467643112915019962948844555090334825332053082283024206158286671494290165829266318357290881697546214100623405798642970366844341272125496321252399591166993344775301817668441247854185646757570046269852525862389949959543028224150022906080885983573563044018270555074208100985597605682782961554950077695539976276608625677601567952847136817806177350176751215040416349085100541914480224756103922608788688385056031129818655179677665294374917747046524898277190179030939688105734397343582989724300506714637598234007428827814525579381930613726641629629189578436350568543776731736883374969909389703865800992736881459610974886820340251091620780811484136952175286486249170848809075989111055058877852139726687180839943647980836864263114576994628967780161937829877580544925204466231536412339624706034795883732172186443256046059879984117729995597834344430707707042488205945048288772043410112306597949702066769484189559697092676285219448837706496986467603568761234868136275316747169188842521250491471322770669043686418097049015499721194410138627847933531765465266784376095319296240818562613737455163769636311512200578624110468873405578995962942979536798601930046059188681916759626467611177886321156161344602136127770771502067320049277370642617093665871222043435726935557831064344709040553504666126918851727348640346709176806957755937527529381281432143980249757755245269352527108779687832770426619185504511847923699909561746174427767825008375938806391331694502007180061208185515876331623855451282217641327795487470208653044891795353539711793021444184210452468650535059275217885857114340408743990879070431543134425429529978232021246572343744759735587814293322346346148441894095773792161408016792606146530604687599175671436745274306869073389840740797031522985597123698640861766961458824518344465295686597564851597384445709975503218933965434579996695051803908625442233029996568053811265373544999065067130159108629918787212194475689104520991169208090817065296688105391141985717010254399007688953968929747845680813327194450071249891249936118677927021637823182078137494332135636035553989723537840213055785807867037495900698729454162501776091278194429252238695515588913123104641001492642947452301716455284190502328356407923088329779112508752229186236986747097513857801317895235863304360269976048862991854811981122174414073073263697262771857001460783415487982768874483304278353810618237836304355358588042360947511127377953137777488810972509110991449798733860245567184837607516175581693439331987579393266654919822688490998924726772503033871869338418873784125152569151201185329847172743175897377913783210743818910971015350475159285692197189343127025134626650666170456941684084626330706293480765363167311950834004888745676946720866765755115407707499170957792328089399802262221075952861698309690062217110849434335881969184956148278645071780299322711154535707653824926775561384484638581345394784679752565302297694414694909500536566975194429776110494768500410983019227196880437780918254322856053274155597851981695776558797593506921299494747301588359292709579256876452617382925686945310239112138173089865594652871980208574457785167078486666015473018253497951530212574134270522034773321341669405665504965523850558965345767488263653289728331453184242644051061542928864723345945961988640421728633639863469542327332450766839140579270788889288391450472927074445376283399646932594461383206011527175770319941455622237184996688653240308837457284079212228785121983857199185828934365254876610167987732295359609509813993223872262150097742930093725823994695955548533837738378211041453004756744908721457867119127194871674773923477872284099578211057000651503230635885221244416105132507990100859718439950728585950451653073115948839758195003487066310282412398312277474483051995791383813984177317167163352293206078867112484816204734084551472479023442232881405284562345829194803191153589245605175793036697120079074785175514543711950143989110919685335883447110419450346079109898357351419256732952582096169805479468966501923377387560036745936639290425234874099712396371293425639145864168988070216269973570719893910033081762701963125881759978302829393652136366260399984180116997429416058871530230083864279024544271468610722570056772967172628417846139027470514094282415067197920976369951084465700739427343076267398114758784239900081941817741566196177909794017450417475558632519466450381094782557198508164394394119884645979993967382889703792270172967860310610741322511579139158108840310525893809469106839223673041607131996222987955169340720057807516169892116876033004858375570244777559445904958247962734449014545357052614634700864790378953577323477706922069221192909142766915512755344679492320602185206717377498562604103627319458968422030005697106044713943695176488570415663168278742682798987290319556531666113302121497487090551370598450041420066248820538203289670007292921096953571362838325583683281119080875897155480415675906931001731973575498918072796415671142941914051780798702963939829993848689681907863942573652644861112834397295813350205356225544058264076567954901455612532774246860394778971779310158104152400487670094474444974142951874462441956169093667774874030155810835461514194573707933958152146944447505813441604082429053584086900443817863312630335051848730835933047002702075731156046928460037144921150674152647320978310727102339229729784518992259193294137032720874955165072767979612376487589504562097257947774708865382791967928042385654317904001660815149918289019996532230501419603928303322069356261076549879582775741924827856716834920535003947622450405823124400600487240353467109484214009589983671715335169038460759062476726286882657003794226432572977766349177344227444673899145010392468584474765275055873059117242026642001027991303604765715247913313568243814180669380158029155031273735465510569709084276282634373742307848403417528446964781847141725119604843632784188371479408492751307456013520383154516234607568616937962627894043896146838831861762886711790482382318173089293271217339159854126624999679970322512928359364671896757232959666707886043419367532523347371172624537644547278693741273844619286486584037836813181336766314662291688023853760415657708716180575806431283802594261253377443878020263314160563270899552806397113465161214196882473556230863640674847144315562776699111248311087880587088270290668078088828579994325415862772664493899808567387498842989197707544812079432413103384217991425062441272357392904679816019195572486805841628912396671445853100305209562173525220599077724604369226400987769042765290188961319847173186646111772392554865429923121928842853615931543121608874014173299965151314647436479526669512772308118081930010248444172955807796340030828322925767594674761316455495200743053609209708333594139490331080587278690415410388914865729346163930477026500288250227947363323176183602143077600632787944144786778308281798110764536159987603650643053299912893326613555500871146757885171242428189030950580663572772935229800450576355252022042599155805910473389756960172466314188053565861814682910603252384694954248249722198861208560630348166512964852930925643643710408156726032238136683302174020634568723709217458002884131140335919191606591995909048092232714383850525122775535734830857388616262587827921478354627932065163057205192967404891027304431472663566681154691315079658902294996386775964685500839396851408128293888041171345381444152656979419963730198592755533747652068192684704790043316534180074845808598025569148150215509687572804563306236202852109432396107723530994544914196182847676463142968350572764875689383098978505029358557186241167739888223730070374938065913449442670185581137209141638809463257214429524081966173101887451026805729023317069023401522640868700852273998953278752572512053907738332187441989522086800832670350798629501100533779416623310485901155699563295362865479373483414072283361142642791840306459504440007789283004179897359723474630587477017639408962494405176897948163537294548660753022699570774247850610784036729681203539480603437444421207778613226184171948735402076489770419669490442252398989203050301179472356648534912143894683199310958560341471462774713675190814338041573290917490783563878132072929940420454831326062183895978793787305723418899067184009034817917247583236334412076565238395669721950669554973512289908409524732103416028645435366863999542126541698803459442804011716205609847937735388519951265156104934099374501836106878174153929178882027230511765194272143004764252940618420835699937712851495082430008332806023118790709144278383365447660824104739665015120662599781549579195601467000118865160870401459395669330446887486702455385681525433509517542202807017713886203098675690995255951226757022712031367681888505481373113629553379654187867586739386128245873387852174066511531328887120848727797131025035805578775938042521627102343103984024531270260765293110897928303600081479170855457539722066529209261365089539378038947227049496847967634942689306941956369288147931111530323603108955835077123507894542283712323527887834055938205482450395869515810086164353340253044581446864917256838364269662604222714102749302249761795872211343202063087379616750652644211588664395537051963889144973110269594992729388806996546658267423990970859618059444420495367947100467423530841992952062068905417432810452269510412419429294645130196754189403765724447098503734283190250877093148213630114085004467664672019580807225465446087658378169686028785219155883708464618608831378133821940107514449242709844161351784923496303579952194152428895139053970141865470944467852548007561893112861506071780848785150080384122573760521541043149972590732291690924930228198534147213125684189639295535984182950597203994913821359793170215783801881212608779276436638222481243797566227759908762343920924037962275371753965418838046850841071434123282146704941771761810439002950258915144434914287363840594667900065667542124362606305904938430368820801558377323658289208541680834170295438746247890457291423811989796906931389409172594587157511443840716966911593967870564014271604397214545099756662506004717104073672582003172064142442700914754011572814980542383939910403670022259248499013789795428672971387153724581719611171363158611435984506140489263300645647095408341952524421146349787060519639647646471772785886951058525952850381229641481231143642372488286662427086342837131764861826229826290240693003398833281557794968053115624831272273488612730242318141235889923659047843272034439046966372192121383668660395540444429260425495687189708083965046851027195846757714179697653487387399484858956571641058239461384863974949816454143455166851231249548714100728960311963625327229268831975963403611972429080627329409481052512954922094142658479716945225867645490627729960094345614104379275480443687145570147194739843096063062566675264151434936483471865050145339013791878520405001812401952737146689689848996741695788745273102503741555611641755311119360014118917292666116183424759112051034092022685866947052478760303792722241905761173444416150632279077598601836054694835999040512283096951235285999369053717277134689465930552146194190725224831261292133457185427154796510876623650784996004770356401832620982876360169052212623885521669344150246848605220612939596421271553133786830544100014154299832028797282796926695976585698224321952385910723671178581225032891671668592659899158758504787052653286940550860074253679153928320138517555791104241782429068513966783543859831845290017440932203658423823314467973246832747896125244266785549482774605754624285743143484469072297429721090500282316768528100883765950106231769626957456217371885405422321916691428247802457912119111176785332172463650498542406798687658880638810516078771365317056113903584825207663251046531048040853624737039307803068646968219074431749664543945998755044116190595451927703516203818443427501729261747244186300161742915840702720505542248555756938163151812543662769188116183019774956650194148260601468721184143495145976882295415977788165316341527149960315979955977612929958255809747196175958467462956264590306279372658029451830105963277440832479817362119198293858751679664428478893614673433285525471034990936093344925212957853916483663051193257059367592816469795139640546925299223018687912185660895837592205630331592307739900785403829445072026380901738525244927244949595413256214952763623826236825606827677154884580621002115586769740449903847798532137209091684163749026684733763320365714330093247637282525895838143350997020464991578764863286689509876045344595348670774708006388720994406661248459581183168487865092789053424593827643188015701050198219273396460487843729608146126626907560851796502584968227066889333759357347433152015603710335795157982687000225678967212261969237173869605454027199383525908436484716601555430362499355057295928818235440479301238803694560012249464378307003393654467593273595604455322177673892242424803629211028557936095174191213210588311431382948216764362952324204586956530948271547087645695542765414564061669566974257719873499126567004057058566860990919661211748092344703295670646385414908145546657874227357623385664628126376102463388519855947162171200769016678189061028255045378308352349536619656649651443519716432674596276510152586880017816449838235716772079031429448467492292331326691495584640573339568166314141546454358949474471345066927203917832444669424927456577029189696459758816296286726974583691677662501184266843275371493750112860867083414606292571579409179980300237573863799786078705100588931346631134368553055407892425419408502818177990506050450356085935575322214888972288473746287977732841232151798094368711228970340635053617626902083070653453873461688649827715635267979181182302902968276768043566318294297211694764461750793172083736192880032513571878629875947688188165134029729036980824644151356316991531412515900958229632101399776732331146612779421118607626713669239653391189333610905867346787031492582344604770277492336398786391724147825649622073999307632046214874394057970861044188580816056270462844993637323187864882118174094726804403818743528312838937056536547562982403107801589206209310100501497894303981704523381554927416777536270752842585792734053309266398260150388109914722190863624010706891582365805136766065506007027370129704125413168361638375116919160133177521739282450608134078776189659903287957987859852259573493820592261434140218904128248191180770564951990798593695110636467081547410743249636101715836376206450524950726500391887743141286223707020802874570485219567931479469714340000051131416934832652397201375770093327498260386370189448925796257278954800602386466348417563506336447590755727584734565465092207722063151132444733687570923538552115436062053662494566971949137157053122682831338857457330326062093536903612245893239692943009486350231193641837211387977224415194866591642268676450669958662806097207793966789480167778291525458480329861562603105284260002792569752762972775856575366305824823175831141394127670637845448930853141486785894743331632697072447100541044219500074610635287890180734851231262047962825722802367680245251449412397929205781195737713624014790712541186093879049857427291667205644966884225638105371387141398081509924535137790879602817226132993712498369682688318693697318449520416716396161710056682789942882018918043235862828212882707463105855802333303747429441645643316178154556550819486105003618615487729322318309818271898456586411468624991950945346742807058914583227882052407693598036230232220614707504813528283355115037858092745845484740371239834398538587335702954552734912403414014244760488454636779607325459544112353783735801301564871770796992653586591313134680348483527780670199085041918524255265561470931668743856190894442851357704630856875794183278597594693679578723109957386588345424525625187029557462586471906604023909170687032350658424438887711935117312843620877489036899801632509791921098542210251814031278023140830380978403571575037673358440019348486846210006764428921641460785639563521530697754685497698920860147918995952079159273318700635320953953035654027768349038006818496546502741664666481990999352741923518493428242209504260937818387897033350718054326819592906576354646706867139109029051309507446384464513162884338650337903490886458161923362891766462726775461943515466725859690418848325477758265402701719332210380036899731634015626174433076506158631100914865090608023442523768765666066183414036863710228578912640993304443871792778346657082053654404185944494668203121846013841777413591126048418720338294092977251966330922570310854463766082011825515041137972489098044805186432878536970945710497005692335478544376568227763372664130832723383398425466615619344009155724424983025872984113235401101151259945757916357184616296802832643402687531124677926494990337472835676560446044771814999659973421468569340543850132651966734542731938571170593336025446423752550830382729760277661512410259231426629406126975047071555335122089312016860719044761765613532836273405252194822362653570937991080485336862259975657201112743545776897652361416842673113974656383361057825715405129696773338435138241699857078902485467824545813562566249477146232723794517691846463920562581448092871353273482925121694521975763439322975154640683506980916957435057394605536325740315230131906156558210384629339959424566448563246403866621673923853346164077048879393898963863526122710490964406185380268342340885415288227137454371458533199277180963060010455759466317036880686590159310953636513663342489585154302548728987564203346027362209303848780499579271554907973506170722388550784700523044558831301086104292728086315239038013431171158256061944929372245775784175677121523618005716242239261312607423053061613072601932820897267824083839185058653670756574172862980815398236010687985118994332705714564377168101573942093294361013846796453117194132179767557231395546509675510128681876191266748545187386839327058906561238642920309203645274715468863419234797157173815748968524376079213177910070960449756317656651753143642416207371662186122154369308027468478211268800511269418457450704809754609313195226077490962962645100062812501640641792099768494461095611528684978068089674316137773620974335145369183822466710732668580365959214789405542955557989240679768277812984278070642181723631654370167610712587616282977619609603608786409667007575569911644514280493529840648920261813771930350226711850477685840767303894717011067126964655298487461649150265966913981215823003147595811840920041405818855653712484678569355322812255893504387336010443855228609257090027496718184724407256382216076750925168769855616568239255327823415670031005526139493574865966157974846769073534868114015260456148978065039522462169146705885939088873886775082212432592465935385982512276540787331498512905189885988630213235487044218386746340412124528285964781647750041438962614682616994135754980246992903607395080491178292252541976615454112214955409431184017864737746302222399485910314648843386999470861649919878104604090490642947211729599296927759310438597274412186940487288621255126276294397102939389770618396918162885160402027025983430419912793881450712826289470054498813371997559749617046148962363168762664154407667409134731503854071967117493367945387220998022549451701814221075419797168220132751362724972828608630791418126011767767567896960883552307305722489743949195127127639201849238891435679000957161388959310343326919543348580985265970561684172841247152430509273527232823787069913761274830413928916383191547062385080116016237396162228222558629418438050458300064827906127746769792346248094317338682370334896655636627141028775274415264385162559734034472071813992813548737578633997247924182056613417933194373641246509643489180051690285945593263773993076404209101569769719477758552520355095103607665393992738209744241225423726830832959807237183389104767133966381711108507809741596451233059643437737291820009526361017009278077585593371580314989398638945974049609733774402047238594664223763981754049951938184259589640106340101012433663888363878972661204487914677575459454576754474125462146256112692353494153191755212873625928441426416786799258170590178574277229679001686344872637487664231012704993659623593828037020114193545433642847936272862107981596924273845601967226341409343837693178649987868711677205254579513542002998537163890426391103754674209309502129957795925905833180607195989519859903015297880501161742424785508534728495483609136318343843566126705200563790372924765163740870489287029735374314924500029424847771142760695776022648037942673892105225198679398514192856975742000368326393819912285700677317312877402121980631741544661857891294348629055122562600193047435467147192335961123979807946068475409474531177487368390451085668492595663005072930595999944429993623120750461149304562364745081633315097580563420976311774823771418984517640960193596319563592667416286505858058390007911231141658696000733516306936540375941952032769521339835513466845889619613097103905672574683609010228095435925887329121224398745469756805347734170627432186949665868955360820337670766005220734225696159975350266953509870048022982929432232455926380797999937788907569256848240090828829879160567587149272888141615163531219190362385224909297054257727128221666739657355463700516375200164629782660928269506574042260976034672182535553820558881128094655810146185042169517073432271731605026720621515220383761551061097354655570657182929320687042116643471764906380702720727162036949003060359278772243903349126303020859641072602032060076251079267033076891459128272337429427727146212857057419565426636011746761143806100066367152544523763013270910501471362070242788292633305143461336248234046809874108329181932030870230036118521054944334974578448209122744976632177554605566743530607631239546730989366422111809604938592129537989785173827685760161581737521387106073819959304808317391794761281038133041841159009204049933151083957248221190818187454046296538500308944583518179515756322924614265048889571226700482027902207678212953340547987219445122429186061115135727987182241198810453679610238070036858921672124265867759451485769985608103165118569478847998200532321187174301674110258903151964420874876595296923586138882255099383271315947669341229488486389402734995136159020870542315260210742635903729452443389644778824646243049811386866786252192733152787349322560419195552330143581730884311424325624096725869621559718470447416098070958302276073268755494359336717828187716294504494898232005749236771414491873639292245739417768282478844799366063668799545928870771936523911637805459452673221623620873541605652779999523075901484927963630488976390391739516710739980376922417568769889315154183722852489395868960509235409176095585875601003018862809013512027861159997634412147540331954332175312121998375251031998276034424943768351427648825541167896137884596796227874350136719546214803774366120712286228069017375590469041629281424245814305880409269912277003573538012185972650950194933842338376297387708112437900266428277133475320484810921289241663638721406452619762292721731659036033498561062363258842491310789834666809865958488683578702019682781505088019423874552611670600411075554512902684441451747884031503399877331848723636070811891625334025584527217113757629758270238113039718782735116142256472134847220194177536663134669241078507650840027274015030173098231791798143053790773452553243691531430702054537004934471199826541320169275024322541098774012973923905995750994439232684056245139961559845171596363515327363310835355010071991314295321801537385026210740661564210996355491720862242994951601596844368564935191935431914594878464580790721399620076702131393305209659748708814304254646709730365343394546065097500754844492152755293021159744266765060374740192757684993143860628290633156633263459280232348471626463263969086947963053977295016630065573149634402647217123156604896843027597790636990950348955984371831086201155907259654131527048340385990094148181549627640780383631493893079585197526280041153275334516811576551123629441324485764363039058963190067342219004737933993856590273961525988294379583493289749356253775250667288405664089440169771981657822935147742670811741133781567691502169228585986910143541374578743112801305835836482841557101206919268456569185817393193503135722147491704545148275926993207941705292084001384265006733575372097674425104842027872745143645749873557007501870915585489515999781969154363069020551139208192864973139783481509976227725539614197271821603650259494743152832051959974340950362576348091108791362161968267244401883740467268496548838237862344896072147060650425788453289722473185521259839761157215758141297959295754087763789271452389847229305429278768956650667415454954001282943424845027625436342625711191069917553255690722583241329714026330799605450308577430411568012412596612714956872125520591880490210261118695320412297260400661242994846501668058480664341415312830915565486024549876708571170380357954668311879143548240352180364258693420153723955874215850587960597223512097540762113491964109212857590078600717778679119438934562658263289116870900711695314068739010613163423253125052153025318092371760074607680616982176930264065635532534831104323308802688050276844443023582660787648672330755844879096259890839748282791141060392540535999583304223597464214908843021168865833158595044601081154568128157667000569293569671858960386729556436597151499881466821623410215467801753304215414870104712833649477618977008561107872999003454404614063423324588907689945484817282966644901075245349248904734621228341436964119331566967257779669250765961091643837476961615104849910496499462890181142392908837650267635087106452541306004019396801704186401245866566115309060474061876229441312194296383591744405290062389613764513002596514730570384793817098826799806723500508753470480911304951593257493300195947152297600102453228942091952705948732424547013840540422657368405271380781504392974797144901583794310678407294894925176876255487922809768291875748310799308084454190556635089847106253820307249009268484059018151845353061450037505903385757218294411429842052074263519853454777975586230536069508656525294975808078784288397414035548412766737635812346018484967994211658319976853571633063510327143301699168858129181218436862964477707665474640274638293982321203477533733013054353967399911769744997827935360569436551439370206430511779195297639502188470422499390805274171077678773067776573369798685718640377953395049319145159120672984091317452695049044127334684786198079691914979100303683919114177578837679710662759932365028624409288181307808992686489905214952259776351709411214762244232355320502174296089312645085972474657568763029133106156333705142618167178930722984028507306608849969955129361024561282062107476154728989201419061873990131284361903777172764632291361147609740812996405180381749834735046216929876151389137406446509978519751124157131845685093661657423242159392407149394845318990514646915713289260544958542126252478479370767197084316094579581948825604919027223068038570233388150776608154414422259266410763588152811399453592877777153275139126469291593764323636069996685748206005881920157313250498971727168701549327694216042403792519383700843917364781860429722227671000810500002197743546070412440256489276196324324699012693085223852811971378916828416269527883083063093092373984083773148518010369839900244651678363943680751176661529637465795771799431168749650773126383953675600590326156070118550739849963818126741526667303681959592825405405310133411375727545437529900703239029063239557305064474948576351632766738262487353850609805905172010721823193660920089599129054282866259013272222106600671042493681934726172848993034814642449765869550085209390502480318033795437181144050152108008067068960925064673320464683642763064393717719517959472794419300312877011717078237090766463656263444978260480681570390323584704717192974045193868831176564883963847010336820715610562903569384509157463051246570341367481730781006943633525789525302745516232139478563958084167844613631870593874799986327120770201347604684177651430849644195409162305975664988022273280824178968983210444561923691504651056688742474292601857381506047699933807729385248420277356159702007345429173735356635984923327360907890597742059841610713931478514205199749223248157267838195927536356820140908400783566507358973146976829832001999979545181384341583912115097258122279212951895352934168263232367832743404701053204051596461901110820005090324054008990473644308588698721874451403685648773260525180707598313498841365112399071762600632811787936487968529681590491445450519046639950640584675448352182128085714665453518369024210369789223219131134506399699308305003344393602979652816554377808786710183531557369037390556990086124347820881658038478692407199359563964640999775954663474310697203478909927691285974253329677044568054306745648700054365232625776269833764469799068852977873536086089507872629483192280284489265493083095969322242673999743575110505839885113395580729756064424321438127712942851188028506351577994175467578407647329350128253540024854448165186489529450920500208900621317630296030251515361385485349955674780452752460885907366593709543563982308428353169367209787803519417213427542442173815375959691623290731818640149125409650252136912518728024845426950073644822965857816854569956491411714521519766094719965329127556836415096975865871787953136845343332611134596102573967280983333230411523939991028893079114907780219537168751698869689124719411289960218672081207711538448226670200466135986304225060939016625789398921931790140703368170697948538373186314630568239552815985880189963439001721888850849763127814729223016670379292802265779529219131731497424216860273778178125388697219563807738372429596824429825745932926155233786909965927770274963354356366062253278932272556838981028710812660041818251940496470865730917051192431856144045277965180963737487826664793474314000766773686156165526219768443049141307496344820996043136764079851050067159765593351501366541483080145557764653819491538498725215539555069799702622766930966673996416854659382644783939545828729376848858783218473556179492950258676015470809831834420683763536132095894925485313694220643516230910084044045522947306794884895559159707061069356915607854958543449765064303976545064135401630921788341076157898842029134877434766803937683427959591469891866274711933490999057186734867864086824899569824961966413421231869311168884411234934419810018788304440538800560818933299045505688504051555135441073314544799230941048594945417808170785874046331677974131553145499082758198528373011767443837893475491238523904517520543663887937477353896916463250440970424000825792358665165399617494628933891683547697168433320854612645478850760926623918909673062500949266404340900582428565391936013930675106589294421575556037626843546735354767174053277288610188428987479278802634314279883474807245581938896335503799108842322004280337456493317732546574068587696933630190298573482789400562581401237092493337500835192300253680196453535971901156957654161053501189239661138763303073239469589590353776028524379087572686940091075920722004471138628059895837806064103462692924772766337493118196522820753112729368588140610515441431256007286030016526828313868425652776653812002980321175305419256753461568719168259300414286052678912308178048811923758851382573607492629109370720053037983540358567467386176902244897005246006557000556557851301350491023221340042913069044121338352892913715651509430865780278241574632378191724693666831002443052405031483839733891601167409491255440801530104398868086202775269643066460835478506743714368408494613000068934186405970103525666461476451906525163949327102614592462010193016791092554018943645133640774912361591483606883925421933622119050851765785744896142143853296994699481661332190142117414268443992022397370156326767855645341051101093151410058267060749660369101038078015545483945191362360490410900402298484517769873577844949583140979639913285885278600447113915939278151617491061837574690499060524513835425176578397999135140169504365836194013746858274984873726905607458185225249485785427820669170250208283080626123045907014681023219495698745697368937599398473971376375512158043063074671193084135429992152263731085125144195799715026852681264911768354596565808942828225096447439690770868364813632750941981474217138564101454854256742639885123542998287701758676628872230981828154393533815415165232856293487924921419275836589395196460151096829826838678534814595833948458465236727263571023907090939655443607431076191158878811482700905778163885257198293969090169471156497411211651250492653327192803772124115191648778344329492803274379788201047052675015591242855507177406441963455613244426806774845389693361139431235490744348955393644313832508445449719502567227490309520126258031394033681165052879105124244061373475788100864419267437893982874974594376888548038605775461022660244787448983137263675258448661557860600790360363978050213015565251228941286063507581512509310424558587544783965761206154259202599922801614675949634330589762989652447607087828592420897083400230222801905072713105765915666805079628671384567411220464444629488545517117668703979776179260053619373270085252046769273707781281168373048072631156538276780753748860553208044575955595062262494925716861855267869255116522174629558989559640976858937993562688145511552946904246092732329506900414585943542867234324816849477645993883626845884622696734854733483157752697996072551300444851545385758107375404196543847170848149708712914833818838923269627604491585368151060274968714486495468220845928982861464663180716414016882905009326922010717705877625466318283827702491317819987063047025394731618773119516006819212924819527514268051845428657764684149030895234524157594993659615814333569138735323300223578304429321841535784102555616021272646358429778219246139780525902332735499266692315439116480398208548990037501862236489099498853797811945854349607247685358356887079360263710709512017901666963781504320576862528994947357026899692398987955206441919854778414164706306805374742843257990810597447209901310030533158059077565394399887426940201551550329625455652069905549348354811774475544653840076154932967233768526491316482329835988736717388177332941796953870739371737306930090575036318544955673264845889320609797982372945556158381235237214249007905197602895442129211573342483439105295213293892936962708027015606486458674193531135044771647787854763998653797259885669405655433972171693642484243841340783204270235481851736388328232449666930691204860695308407579935450648735262492120187689414695939712873000466536451658811110503327115750350052645538059162083946606488062552142145305375757649543047213159252715758969908127750309712525802217680828392000051899961337375543683275556837591671400327792513087473826397272471992157573634400307951910389276437434640429631210809531131335266684538784331154680845390074886839099292762604686170725995214245065655389020731188664835864376419276837278038340673415328525670993452855327784925620117759556026278343044675599304247743773556090116464242598263199178678340224740329949850107591605201453255416435464962622146160537098284796292082132745694538459367151397372206886798964285105476011538464572875383684638165448140746461841027331726733968070174814541059415841080478783640813174188152157245550405377211834777742753961856689081465109047211220910718701452179993470625636367262916987458912328482890245196669636086113612808347120604706082824150697223641306584718307595260678375509163791368786563092052849277519994387995966808827622582840125113699579317264608655614175993335332864178264240411585747785641717971492747866020442799484170508957811141030283923071905554967906252239695751232082159786742036842058654738933319194051204417799825453703393836374317621521390080154742304873811178293287663032697107710116513627091110241499872384336742844600940034635521328198463316257672682799558316995139254114453459071328768525818241423575851932773114091089395562671436797960140280525023031035124155427977408627943675299823980003095190997969048414623795183781105663053837144886359385214946227660394955804466371101281428041664997435163808494382079773484601118670142105857641501723463107598377799655113900319357230064926304861965491272698617042911022468693617941439369420809992801752053135384130934330904233926053028121032097360671534997039366256440132767163644580384340917888392124775047616024024469917784312116977355303553260232925077969530656045095852489149017011644853120183070336808894156476547445983687006021773015927771827151658025176248695011602377413584815491554420922222761972694123851491301906627616668287445493017611083087756529662651772856870057794020793374853582555293547683233547265595386274432922317779673143862465831176485639309698073189994111808747647284457694329084752864963463319228939100984505906320185054421867255902158213310231590282700407716362403180647378087852963683354807256142640224345452946293130881212433614301733289810461774000029776094151535632614059175864259890707110384020800955273660554066063956247601520043738794386243113895854422040321034675842872407562769841645592309206923671389801845185471492910039533965337173012518696230536680484044595523196014210203469332924780574349662570008947877288833064912659858710447182051864723086150529511083971353745252816597560883240257322119958804131531634354034089542754601416249039288480699004676557194377455511770708768178125216192230013999625680889112692814078610196870683090249182505668926870193052797652571545877454636229911190755149278999473316983304397540831291280601236756247162129162300256955058420205431557323060720360457607943619931973053157930586289169970182463139939134008890403754899785543730769487348733809645510798596997504001127050091621159476846249535839818886764657508908108153879409963656502115884676948148379382095208607512765761108195591141968911098920865185521742027584750078329223145339407144934372933160619258391298383018999152160834307763115489501553383845841595769622186366763925821394044335047304604386698716631561289811935912714986708883899074660889121331682170288181814525384520512821955281359603946186450031642793395559804393681497949395934181103165846879754198106772759613487466191352117959788672883688023533042072064887135733332242951338781535407810832881578887819169592263441957515469323420078135376184670667740804348023223855945745711226730870254199926206363090818973711266317414192517305522311129831035323871775751506489436741591551552151765562490277584798878845964305837403719258896849872495231269001958974781305670660529407020616722052848389836703621193663704990489338029061549767453517414937034524815095477014473919266619022806233567898940292154118381592553286753394693555554045304591545740975082986135162096087140228259210242042336701851484103808784466582280295501881660664156416262427391898055262442515993258980836872532983984166416007024902755759844598665381154345808659115352145298045152721712430683925770382669956288490385922511609339816485264080589581162873451781761184154532533945546737951564434632430508404942278788531601096187704971790366548425050853156055796317670967622013488127846289540777491411695507855008953736355495863185206541099630440965536094173537854720541384802896696856379509757375746881826367286447090238101659785189333949041999131201330000110674154079280048176645116427549185154697768655937148990929357851468672714493531415107526714357085338953034894800031993610203649350191036036236386559399322787734904623640151659432897753704429950760999867118490642370041973651154705637597140735841391680372466511238168861392554000356571405275162831286546892195394808991978146738974530772571071497814905561405926667973614195995220413358411633066251723937712902618730086152542088058798179710977584282068512298194592938789552939590458346242060453723155240388672190780006445455940474435463270042574913697603724923667194633007522247430617448714567277834079109396682417097025998624872402921931564139733607308914541309930739654751585988881460601741818184762847325822663419453142716045348669833941052749447835067102470313557888244127217896143386737906416877279413283661363891398825748591305378757641311108003742471472378581606001107490981204990013571547841603508769933960605961799589976837362024366593849437687755582081853539656426665278300665804772898418015607639660919256736649760820426997606225717996947919358205737286037927964664946123586176660744407905523649179235343759858647638448202460820246603333975438600173290767703057576306283453807122490640664439153816609200358585839114924011051706295402334469654834713707450754662366432854812534632410482573699611722519386851486626066491994065605472822798084743438393482767637227088250490799861948303386060082920750418554866296467781015291293559409233246959700812794115342107976883154572459484688151143511349377600766855898409556422308874021841865105265342249485175069985409706696423852575932181570868911829336520748634349322338424929385943546533142265579849478781232062569452978238552731024306194085107876251849394282189321258315729270015441169899054572796181335119854086098398537867600722552581000230137628987331753803486444591918955792662083392677675871138608028338597241895200059196391525012787164548056868738332205964901239171602557248232827781658414888336567915283833303014840655711641429332001008328194214996141197798385920170639177956314113531978201260028653862768733693135541795924284431204067144143180962126279270481370361125472343027907898047233631766504599630479154334367966588095446090897044487890855480076916300139588381758545370278263980290875059413532684809262436928125567281479453619161654037420360449833751171684736604892343452639867896663987306340673348584212192343318667199012369814362097047247444633865928182653077214123947858855209969462055940745820685247105775594927527785582584502988395406011647717931115666174604010786150262976914040496782957549217284558234213631307558897826011958733416200097962442470969805763731707217309893042361007787060674208390132068555340873904862379529082493740525701784806221131518149713330452324859705343207548452152845517447452202734929851689901436731617745509802366130055920459170010144469251136676060644639469392464118101843965896892882337114239527069959284582728035662773657589677178571223858015009825860223191599442435432333915804928832805641339309116132292945636011783113603994070688604431788331176780587212877696504563132666409213455973604129177808945204462288123512844125869312115968234849415430947296396702860318962599220183252729319193489310014596199164340854208771855605483756762403897587961112421918589157810219269649203428793702416332560527471190986520356491763106104644499486781347967097584301984118564547209941135443431397321833542733442928481919534108985874946348355328707309233689845357871054555116238230401882269019938525897255966756834350366824269277342967611275849257227890451448253077434038034428657361919996839244773960079435377871338554562558818368833476851798417113822130179287913285715423557538044663675356264893940637283796898801280464205362458386164874828503025149068087970286265456032681559412837559109357319146758673785157783542602316383343324689429120596958298936301250241521627866072264867964295057050442553149920645170237172874980416143840173759803369984877560315503779761787889410858297041342049872737471303554614242805587524378471584301780287171949396004374721306272826281164556695345655521609274526973592763090576482026585849844043502454416434494621216103451494330203825720873864964555778021207559673745310037125850955170085765583460097623653904165106190591231204156360541205971668309580467416371621039717544072550886185604666690334744129246836207261927655901171482335425714955051120370554622074627868010628067465431366807418319208528734890765534445674423948056676747413088172430731449735213095553208297096523105146170447683692254798624076924572288079112604003955212710984953076696814431297484606953897745876598213650921571935534252848961141296175437192845336071925294163687906226308646992070217682575480117069997455208949387772318176060938313770167106091579677723550636178604958729549684073408880110173624063077688491878290357237821191445369066494664537184505993975051237420717714655543020133572109917890049575065938879712386469124139270725341922378152643685101015143913405548589665138490943485490372629709791995739881486753801224130403651451406052324158782952121212214529956554208757298787850202654816768408250658598469178641884544995589241613846313950337784912189671708255524892702632905593507081229978322990794693245992961889454215658506746031277655589055381598570173271688596055933880729554678400627987103059871873680331920075969705266424457951182040374536662281963682989389977406843883903536721838378580606072514980322397233911056074709716900853947560461335565941284077014167069854715217637678314578871772759986295104202579039664143814189538259790149292604729562407656491573814457376358749337505129897938313809097628090331455225988072838985867389868415224494447499416262098152857728301901096458850650728256315417400894646345316039609103766810957201846534664496672204851456769081590742426213518025960667910065872296312094397366013885789109339243759278144871665867726189253842678597152496100587821805903039215088061000120355348815560944990359482346579018618774836635867118703779841861757280119568273902633162246752110327855985723246704755591819096641084253830321400447559510169526197425522620946579950717880749183718437311507900972516587280413163029942626726224027159015336162614551990217822716578511789810042081596197465038045999400930262462014903065241332865769023932373325468639843829565374965870222391444545553757892817553018008885427624357128745839086553438198727409098952332925387957777736183105376892753320338525729259342805829670538923588836038935135667676968516984566598870999897893516182522794707635144019738301055205970413495399178609788405328556337033018572550093940450184142324876754502230232736875080332621739202283643193660749554975301057724917926868098844707852582094829530680533398197913197135766828463286090293405439038519937358733814592917814930891079323794354460590463713708049853419337308119087463913112174496698264426536881909688332218916186685249630601308814313585792645087835634394497799788473788321344541063480692782795382100081116970475615331560021800281141031457661949328822932925556008377353943254479040670715531027023533126834649100868208442859242749892823941709498706633168780642641792771996087320333843771544009033231631775475772276437823906342429810738428498928542343176580767975398637251179039686007592373821533305790195525337569480231133753504263074772962202219159397772163688107072503458497743646551366040616866324689680686954495301837008120127007949077049925138491813724698319819302319249025690065695842811700540131918837723276031056066940552351832118716799100237691529889471645418257450984559345397599352494265648672994048860612969866821378313272517018425553727199730440552264207663379700487090041693579594007528696101112078042206093471800272603159673793593631193362705303146338185485618299943320847649334166281309065307363100671462288246863490740238539752365419320378749706636853049213423432517803803927393429655077908841025291753728600593844984281110997399686666211102005809268886689194311299266560892710972258852242037259115949585064647167096648010458381439278314298440502548444275276781730215743187276154803074818125674948834872111545155184313290245976785271229109914883569307440591706284694284533484290023546990654175086608283480534118537921473348645293788701640413565868213737768225449391658671775957380011687333894253591832069817371237971101445869350202387156561777467732514930215230264197894198641373094183059466578075217540790569777169827995059037533391839047942868949839697833388698967042964263801026373156197816870214404905832123336216958228700462043727930746455442404957538443608870075477341148659711035300752652129556748237420213810312901304676980887188121892286427402677066420025719873138344901262488709876832695428030285560538728697695160794431590878379022474356687869661760593015745354389223481219767014296075856158629299327008547678784241121258567579968408262535653209343388335473100156440762991521962645719106290325082227735368001302224149311112601053364982617398575367229059437820267496572646803470531988567768058284963708296540638767012372918643862549949437995800259856909451912860148301602951496645249846823004315771651820581680704646569735280469140757917615574942973222229804469868281108486902886508762344856320802787971882104099861256325755204930277873820529580375126788357539919135525785183036679586432792674576927139642033592058152421376215071698931340065944687000497349270311303328921917717336626816193964914882073257210864915918873306983960953488506566197360608264245099701679866272727415978302640195992867475345335698039500567655147384450777872979121784707690944762454645137373954530579094390343486267563889834650131921830477499593479704240175684394935223587753622718232997059986206456425628942902953644296345007202727588402702965620309897872140003842860707133374334062476016987704978868313201966238224316487325661254231003104385252875143135292701454197116594283406472060082427603989274624237380375898225500423520788384580584539874899999571683315332276702308565932894639765164344726314146537516763353972629719426827210778316812251006246650770586351080965114688975989864855514512865098100132560409462090389226761937486301837320276823597692101549933023247082429808377858479325122329134645859202225857437828652069531842191916746119726847538897713983905168586900595932747185808582953191889007581391072187615853876738276116366198100819611834380027225565832657477071996805621684933573655268177133842785645806651254423292673125195898836357454161343602084831630177820373226849236731481697817373864394200850538435358470665019842863368948526249843112745535820231079638602943182989061972294015233086198253815754506366471638703933851577619910072270881167342056398187661786579604961431709890950307878007494009758707906045852219344791931668911298591237734330072241519705472314436365171931560070553112574842097390679175209625410178373724470749931578154343135460373647908497691497391657705382865297296104265139429243594645420437610515351840037944998722654377338704884767933232756440453460739208247578023380851068563123976779207690835981381734060995171347489836953576161083250619999251453692208812425284618755986372902473465127854221277135818686914107687274493146789370076162224923773586469928637454162434314167901937718637677890413327067629002270403029919194021461159168639789233079076066299257964651115290337955080109542420785306877229759567684005312515990274709404262247739967234905658022946919332056900784250462573298680492159951900547857818990185103957629389805279351218914050810806098878627738908584923536263291298846860097966921611967370215456886317795498039249753737795131515097259701283927276658303954972829471637246262005111583829738046358168266192415120019777145737075094004160096170422109871327975993685858643476010270734233221512629338539943526750240931648525891208854237662617952657779085964008646001185720367276418115080947090196135877506513966873254503560694218756221606323328985885104913492241566654019449247865924029010948126476097825148812830905498194732699941110835167571101941330161641826554697154403640929299397693826508241355329830567695554843791362278738720177892637526068453923025274385615714408142920880490533497300377186165198492988425211274334089795775601186927722713652654425921200904540224463048401352172803617935255566191201927344847552170787094442022759106331572878693216105588506139235463827579526156513691986751961840788933506600915043548686146130197119666997265388173313873189688064650821945371056931327297491836131426424900957734477682095925819320689554913764276778440288841031847623984994689254359245026641275676514868726394338719794188530158061532783792667981702985124623275389030708049786907670413256564011620013006280754029994873262208965542412845458340174565981615125218377959721304571053645331217059004270036493017750983539991235367432746249122911806445197237075488353357349941873984102800972300894565398731693681311332280872054858739032093835330779500528486034169174590238770102309320387037264746844405182782189112471048838004777021492361653357714321867138787481745216956605590437357864522567054653881910536380126877700797058838073074558689927647592430774600714121495129457889554524556410497279501510644945042593051051600741495638676899161945277557117802610177065265339103450369312847751799950153025740231676698704677483804988976234868832737747602677980221763698460866992320699733800052385812222787908898631732809155104704957449197551831651011037655106431909181083986700766234562044110151282228713836137029972935211663384184797260302006560046968261419226426380461940191363495820780546815606886407158711753066099834435250456024130993247282870819493557325618926655373922957548580407931591322530074061364672113186863843118364969526322236151808740006734465505983629566650055703400948771099887610585159786189242784628342484939788711873220412289959449005378909553931741601786067301643716390816721270972980132850240706574994827055142922440523954694764541029412997082031310604151640451480760623409318421084177142199280658899581602976584409278474691772437581751419706490362007511012588415492178568076406119816670470770819497463234533834366116120272833568155259443690861255892670647536516181113394961791040065449100970456074779261179318578289308645126577392359002208469546117790052116665657822160017683469767352560033587264090818527208852841461725475547903549571894842873411781039851476147757116824437047980409863582394096680403633631364822386996182685448180541318566760135102363640502384416623647514666535132627508586330833380639865181905219504310335873365443625827782664503247412477164990600426023168660558522854550033630345151638484114169052502641302884815363145921285619750388013551714657233635194568788369683002059258809799977110235940297345646082858179695966642668175290790977110858386704744579674741604984173647584103768411560215522839115031648964664949519780876939929211501608322954289862107606992505006258031680986166925322318171468904509827343027770719688150663856494694858084941963970134783677079129129380838072048349194523528206594116419791473975422165998236642391710710620868670839032258433454985693042870658137149286514177060288580177560790263449902138129288388682446620353629097055248411554796997145456842628691496108384200792244149329253663382687602474724042092406408823024807199884681377774496059719283653975428202355393442268954810498077035808627829705249790089588755378498356960321763618849046618674266807973798791627472913960401383852253470439647384966764516602185787780123410996541171803782123398523339902942834990251337056609974411495478685481348359413055671316691307947557906187498720783156532379928631541521219662117696147373043132974319313365813848530634005325761760881339488614471724739802767152860012553408072150012603066316658816872770802710268108012323946612596332978724925130477783957332634703275107627493395430385285249247669990437532556682986542704221592931785287003744327308406952434297349292085675929355552402317594594145691929630876388806448826621506461624890205666512118942361474835753932269810666235114932562379688086094032203426650881657110207651682328888617302577899794740896111257090500688527969723602965117772115284311840141235664231556715383468159654677873719208531528235796978426317007020411787671127689247245663181456543747806762676771745468458759987306905610238919191156706825051090644581569772722541120059480388403246622078430586272789078570576088582397723880345805782455666611291382404016766995484876926486724159500649483286705881468931534347267039430597375780016505091226138125626879236006878354703644894037731777851968584604336639567875096002290711507584211829739766709226320684328170600111925279159752815124865957148029427711551409581297508654190270062876824929314917489185821717184443642691753891970543890109197074036524194881433601290066276129730138549092563855939298391963776637596455263514085530538905113494138363275544547815746494005300511026311647819532074290303438400630843257985859878149230504938952586696174084855135160091872514925710766677188612350841589722395199707420835376831500764971140120503088533008470208774356234130508039811480235452719456713537089674080267516354293580876101967975601918081332025722446445663027900396408333552532282662092231102270948764676106318443545507649083877836417003337461184993590425894883151916636345298302194604065496106588461788981245371272836298027361591987885660161228037382376220140163695734950921940118419138925057769215526766811087070590304344445954063510790093771536533341693440793610364965854989191875953931955348510172788099343667897083759290801969700851386053039515433075144372751301089819353790017566682857413727809387857188402486129210147596640319896602788373101426777605561726806131184057752643236059716777860721497797823581141107327101262367247182294652022683197010408958780048142010785771194580131938470001493369296355350412003310524962519311741426695406895901483300930439706049323323319770042228396021716730180082397279188024138847123852947279258170841321224992036434999892370190661085688374819053111311954263867538412345850625905664495679012222717490820190445203328212821322104039955038584882484919829949224662523884974600996378035412687061673457217924344047668668701257499494584816251226579790990771211123586364440700015471352959954511187332782408936827795587992655897788434170825838301886589367167452035787371376268422081151919467782441405846270720248219850331889162379577057669621129843412561022993271412320240911169493637123102062442015437471495368819439711762735919130996024440682931651768011196713488822680464330967926715361936355096475999615197102510423953404652517868882234336371966571762464514030827124567838265338240646171804191506283604878396549887584834644851783644367555329950834319796725760375487433175803935864611798906339662667285433394240729937137638548480353463044584394085066791466667792965312806902360700814150964138785790383929725963149201940332402762055851451667697576759830849938996017213378260799967716308152894794796115764575478127577926868924597776649031130837389931318317592512335586948372968649833381659365603196570023177458220902491884869047044083226891351507301362317314669877501637144517549297873224094850569770981618735164786718783831856155490375610050882588189951599163376971794943589615432855862395550758500737201325790447383883117527227928098008554805645308112626491228575393464063369859609928787811810239084333014851748036267013430665839144680801442849303835881740686333722507655004278443463649004222316847210799273023015667470104429562811639585782727607484754667831578275510323694603084883213833704877982544895943387874671016707878764416356405843128827732893280786778310094315702732977223146681415093058882096332150133138618519326757123454474805493416185230529321872857202072053128680231454438810416966337722627629364962797782206324276598540506091044108980572752522010045579910630846830956552298800053425192638956744527400729581012597780212895167147709665502780534769071233892411090741633940658274715859478370100986615756782305618609029068321837998244410342264024498850009146877597821351887539301800602966996764459962045967239327147240397643905733858307123997203706839922058102038727558834054683211780220277945300997772849974571803811125946406393309761131111427847667177768097110708058996930676233768562353079343648944556242007650749032878147763902159920898563221227627542732517624934538491679593243807862553034883425700289016105148466519879440629442654408382840183486730682051498375567297171512284471184726775337127076691381402489019436789488955191058830689511948501246847492350964586922495507397299398465262136777089671128130978787718696046068655514965328999741753175506759680187687710837220517883788066783165672673865551496371077719809117444685389676836092225408749516154714721426428841446549433813998781793356367713148404084470720998768271830468889698568873319853811774425443286946972833326361174869861663416415863933128233774733003573067179779847526006615792196461440057116303972443653361803174559387461355135517430965760753640288029966404187381579139134822784536404773877052887554589060532143917878381277071283246603102053678106642491715689933045000664326723254118797618020955494255022165115217953889464637803465177104473734606700199148140998284962354227627194332514034390808649594431895885659781590012534832677254780072916154743368584442099947674448377035730501367292277526228841796238005842536985965644315562458704191938204686659900768416300443572297769862047403001978973674299863263478146138516604920458241238287916953808158595813635672920802105898937163257743172871157341033179454909577947052474964242930092791413049730428595270254032185341960399521434517905121128670512154412044021993158857798592701963946033170009373438327821311798058309526313496415638754690994673637262692155099514199740596512839500913857638568933387258155813732417001604413313410395516622003978636671873894864247061051661703915237091398900106487119203201443843437307178451805625128042636578179652159303620963061934952958098212969440668065700462320674338179892708496223245799638105998863186101352287834052251007837268006144498407191476303536598364534865952183630162913300518308341991707924503713787439751214772030244593810073542376169679860794202018628929863217286487566846638668171294652657393094771254248048113284145626812582313944577599949272607894806078948524564990412494192704066716553396084860029439277631053220186585308608779144867359464080467609544962691209169046349497599527414796449877061914860436783753398557231470155172038360283466789726456742705457633620915126729640531478251579893518888308606000532851671740299094966903508771415454809271936600022492856297533321187592325622165421863479815264536401244007865717527899153090228123937845233305488262005274148937423756211295366379958976681740372295503534298142556172467681300739008520103449960855085485704054213459626665674345891247047615614451488027255127485116561066834244105767660208682383775729938540023716846603243415416425314248453294156442279765942208216205319145738267815425069257257758983866277381291287666377178081265052231028564902810128451418367746280691636107975932288042384490510053680994363623762879765432713184472425515230875018512631301967136851431945800317238585625264078093290109074425521023542504840059638545667992189984898351634856258667468778426507049953290103046451929295681549607535129718309970500737052132824807240351203202103415876284119063801436154543638233385388162180915770945750682284002232475988465297123088481575794513508534197665468665825967820830139734149060278543765472700445864729043366112341878709392263349309147983696566945860092743838901653400286085059555323302184589557513229971714540365254937908679471531046029674540124649555630818906590495393990298154682655050506806224089582836868644448304455030504033140854546460096512414014992388809955106412611538555165427584268330927628656245887171385444714614006053244811721357117624147618662085272759191561245669860200971922990755586183074118605519008959480680467972804416341943961817019958908392136209556812966792250504671329264110995997143472532136852753188776391764500181342562425385962525899663585032018232053391240903697483759500813526019277167336779930286115910056395985959641499399135586765053873355636493953056183635427923476029606208871917720529173850588377550632026274024224081765599716912665250236471038048685171090526020642690337949945912164681657891551518243461898521407226340409605244046615583406527900854575077874922653042843472000628521494110016378023186900324968816734627985755190933204731149854702659740558280530160625240584944235891707570538140734027578565289480465633955356974364546273719774477419573588035812766436879064858703125390624810529279179426875421333033766238280476627441388609218058987777998809973107490588460733002413591002453037596056696933188750482375345575501345869980968911692206433851165885260513462612098634744949127827261545147744762507299449664122986398742394599579210658357617024652807186593448760952628407920374610848479909378633261079633536664913658452523089001422231530544981227158460676889271127711509887112499956373644266241687633439363392262028439277547857157997628287547930142642719818723251105712624799859512064468984608155409385338869619656149084414737219609012966575284645493340313928237125158217836617657193058560483820595276213692566539936195206120569620633654272457737814290015097166151568330919491692755879438676474616105955989725418079555124084246825885287842129286346558745531042252797042387772183174430961061662534403369666157475337783340756539353704185812348742016063569494367888801210987340535399795501058970585195323108377192492114355882888562967866823098511058955569258494818660625144691980483074059173554933925553134179982323065915714184304666470958952389971432104050282488192414675953747595263750058439816070735318600800737453926022879267765900239768147218963905832094945034606989144373051038742313467417707927183112223628524438457913814088892775093869161925208423211677850741700050001424142763305086440589521292462231636879063041516987611508563932275361034094648911124240744585357584589239237138221810186790206323679766999731368584069423747550431660917042371833948143516200841344531864528026470467499961101698873958748541683539020887179172486177547670667754191862616591000470033799167057686674386696070528562963726310681028824829773405224855962520145063278800908802125204281860508361117810945593677913226882682383202545700415074325726075338910590790290622953125122644750566763126891187743835206392510443518683725649531420141108689990004428815179286692707792199087068933293315522168433361199685224671219257634288608180821500293934533886895605125136904998368370054565306141151576523164983800849741723401840295389117325585236519400933208401200173619426994151918208511374817961837991233743190341705755658752419650608383623736116179521163082507325461619636446639421944519640041487256251613205541402023208506186986494832855893167739229962950368003377406876665626819015912952078791569623341114777525633203371234861359622866524639914189866214454994078406769383705279296205278999584363556140347680583142054188369021713848328909378484460777305822235870590068214125794091747344906242319024398043692575104268140932318234281848926577229022701147526215751044239163220919468276994911626396212499113477439923659457948110285492906514619403209562890738419084956470377436072710401452363578470919596304724424503417449794325684927059630569998152213405150381866557384303010198578917828626183629543775068228859621522258690224276653625122532153919793345690085028386265771312526100726742634157933090934961736341039978150030563705302370480102525440919773900931379956653942090134755135528549784964828550496262532546329879408412516413257899478063543008676853042271738501835409268104479215980206182385053050309053710232921890256861486681756392896314368540771546281932414987080953152743898968252048927101970475843135733810057447678538901193272777078248695709850517175481806501949026878078524479201429570893873003842001825817935065020536738800093034489193955840679706198623039302019416289372694415872101581712903757610281499068150631907091728225564831858192329148040142693056234209149698364488996049681241335762708251261564392496181459742562551980565886017413195498929992131394907673305765097331137427006237880417665599077422311796651762091704173716814909197140775239558424317414364068331295786289443732637055435386221631772052621026640654286324447848089396656273040657143397425587683291777727978063437900801895566357927526969309776963460900196963145415575286142458219055080598423572525027198685954869483533261986573591326416433360893955758259210311275276001686229936344117525718152893855888404807520328235535287924597138650972317378013416291962987691302901442371008297552715355229004043569663745380899989009363518938348585910856371841353090097945069729369111528060607097995183565330940317475174934165708073605256554547546353703848703382702728527634166365083303318606560595122636718875050490147465541668272942028312157019880664722134726652639148185724611675311680779236747429694541175322106812209074657683861775442636196270607260936080622125674202731027537387248367045900747365708981697928162073451677980798359957549952293884686128293446133453982203408058449493321251355485561968405023656321823509206876978267600781280775663990523438005235076356533838556336419695472701035107599272466068642743096509456119744427299606417376470516834302740126272755403299778625000891872338391353611031170931276599519659670059995524994680303403948217253857754469587029827804350287154561025368193199585413597758181883726310730235268775869153632132142944176785038969217215766454688889514399027980435436648150380891625912551776997909488496845822854290479383806320901393803667398525098466087188284619523424555435734875302437429402619761518570847166647115324764597389463779460792109451882897404370184506145934096003395296373470804740502022673359598962434320353543410167670464769587194524190995959598923094966975569057690046013298139996901101017889790665928244338934858946100103334293046971490131430895518764631492532633003783470245713932004057415255075296427021420859721408239432102287684243422540345984683625023637886626211421402602163422894459277040316530671499010672735502515433903465687310274318180144950398536559017079446874333180825020386242912523397871696959620501610210392845882825803911447734846169137385301002470361036115208281466205829674973231060128814226120199382101374198278129311952910851506069186857879078661119228156064212434331775694794907596228792191997887270319017372647630245819570249923680472524223541240376859270130812480873695412900272216187487794791292706639289918868722701374027498338781235767266149708987069885615934628914215809333393014634219430168992274322031768109633832976460429447424013644185658762505469470580949746689333548025153956804626295105698730536165688125827768103589605107105730638468486214784930402582184769121213816412996352045747029750953594050966804678782755099548352221010349266052868875517608878108599137823790420623038906864789799356912974910552594729364081021826135082240847363783635428025469707429912394984902424175017206230496405736647937249176693339799110698643659795859007344031643484156819925961972863913529788980570676687770447509143877129362705948585406150905862564572949785272593613370273224505661072429852780110275946644040479367468092203010223691341353891422028825688156566330006679469548377992950767262449367122046333725055725101837990712007946801518922187248892528284176603213113015797717473366711835410739095502687077007071226080484538485381931143431359974069933226798639950496493005931886294319308383723711820980952366492680797619405052282395266166129472234878176200739704824007855106641247238936966231148448457776739912024790338499065375528517879624884424569377082538599193745044510378900609469679214313674732937598036569191442563779446938494332734689766742365967553288970182967687416227316517970621648901369736800488374565963582872958943314965156655748617167829908813013408700920228060722241512269425417496266460511383333198070269082309454205447872315715643633770366442923659925239046715181546987104661375348710484416783018864802944823090403676785025453134162545128712812727504630565820944112045565033428183798544672537876687057117003208693615256633911679130266334723703717911362791286600828651441236399830071385758401324357317776172791790166598528516936636929303368856394564619273216078406591613028695964869924383338681202462487259432351724748515943997255440021778542616944561930736713553361491420651879196641622668400880116096432294720341913203655317936335605517575345256105436707249957548161917686733399428114344255644065301106739032495455999731119471346278011185355452843524164064997806380527794768264085959899276140699448732025674524425911063854259920522317129817157751295373004608463582732540390740788467216960620279155881445581178646664957846647101853737481841001099662174117815866986303381084567146652200594358416250621831254337824835706576491031211417444148093541636821914929834490601656919688556727270465351786202030691018474347311913689112622876592990451848711597780517833855656585356984929659833025991708503056129774280195021411828163173048495091312148892136865344247529284919369772270002569121239219903107879934082955578409674725996082981810818916164674314541160533488224917178671454313978010486232492101361763829987785310804900783816903440114649721550336655944392888306173467704663961861583328565953972081581674205305111665566511304834183303455305269621552838421132350670046141530524363408430651451439219402794986660381147813154530506209834302487996031615903278851787161174863874206707696916166987810073825220106058797701025770218125592141842859962200170704110235262472515396645896092074496069221489837179811735563431274300870460459188654184283552857580272672888203820307425645512155740872584144597961964876398400086337195677805810023791698841901742179319096209300190543713995223910141438230581390798928437066691192815050805538443370203079949591058375418476341424545722795298596656734874632739592597534906926573573537470098393119979690254291381734627123524726697665879443981963845035994884209234902474677859216325172710690136795798819722224766108200382799983338718484691648461571093847237335147851832968305335902887848964730000878709667397898041061109907081270637533497952257059625205007679081355848072161756877266207555778850148390346942662063311026243737111709147838471982374341587955933349495727373839971475052196958092952539590908062681936321780960983857643610644074617580197822923581768438857054553338115693780959458314977589861846272860796470721433552053775123798454966942408002662173137300031497426519939188411561200965303118394789638656356542819839161140224219584072329074112929656641790634561324622475896410515348782844298486924406611967477410092012480106477491511954001997337917182359012239971209283100801218559519263821068487497935900062557471708321852980492971619973918211461616747162333207897273010040899221935736910463740415875760741173155409914221982038178061847796911612912729972416155084621090757222548522467694959677561712015061262731297909053755044424918119431878848736930635769734626803390216545766566217209209815082346720392556513103955805942545004639853610006327843972429873571110628206975116796926017902906670528656040507136874617276154128847757611734487324738236816823713472654029099151221997889171774182050799733147859447793696389968129775363747072456936057313256813417637537251515566839118560435589243780379060948067654653729176690229745391635727464916041178659233425987035276626327469723964773281761050142098958406202296184053754556313813302109130360478048242658484985563927150807471240341717379364259856241142136648496388799450972075533215396968364344065905045636642877978441232778654190471469257006753165928049209239873991209188554539246462825748218001511064055547987308483224711787140888713222342219469098458634784489239585316078136786123111861312239071863800353603590976206054173116864942538818678452443711012885098064054009488015453243159828764581060637989623355462216983820473748814017465295990528993125717072207676443518057468476334834808927123748535936351659398584383281838449746826091084078956975574330485995531088061936814579206840411418592300229495935031251191318717986480444780901969584805303914463919566738909407647275793467032982956752213747026814250547620655627247339713985091971339329332494364657379857495783036520740987926103871296192095105153389055724398577058945494168183022654385314034902690393950273412869345777386423153458702942608002321020203310481501024231242789667194960716457953549696257597921124961107699521429810479338179359748751255386058369914870188279746231363524467561009315955998508312402589470596279499401494775038067730743069476977694269739165568706084526063022974227615868449595901569149551656148596447530223787171646016659630960746880219874453648915209708906889001843810757632943692647011662541289634123724367581741825560951065323959721897764429445108913448091126000857732165522835801180610352840099339242540944097400667646531397938805541310859696403810802096852952179325440802869503229643923191578039397099790729565677883278936834190889535816126908065260170729052360657696681262163571606783205386754516126090297841114898392793736796172901426977091437277136052919785702585331973985885846423045855075839960514250764775752681727074693874955104247621812104394300354189023469459818095488209583059848917049997346518092955608312170961968280456467146610033509967206709759151660289656426661480409206512009358456018114512493073482040014158338982349582333075615371719506414615295200255739188920500953855557637135624613243209286637276991306194453492361343527362373287890186489417136871372812760624012021169728137116450152976821838201904065555203350442816943747155836426381805724874857858139633947169767201999735788882226702917632822016560780658924835460787071304426690592255547261569195411492575353275343956468873105233627886451353355845085554878483763117545793245651234338151226390492504469993509493785403948499283001833165024762519767294198472861595475709428579515521656096882021547152369299384429292813950955204906752688988515657102864567901537430920706584024376915280452727169725049523291948157469032429198279355201672226863089595240873851495092492831563921198624907345329168799707126063929315491844670231016282205219185002178127797148264015366828047384607263424730749089959044099804460639131295197515839846112253471496130766009154675227936037661233380572399973131975065493654563667550120350536110104976802639309679432076190178673093772218508477306262398131111779787722661200546582724450794853781077014891539254735455979419202646804646069381850023074186699427863030368525617416629912236838318439665753316433550552597916669087991380078696185501955622606517812713075132383145024976345901189119199288655690151532972767399839336743583271070754277559499596202554428857742823458607692999048667822856641237209187669337155953051253705878464032958710257943175627115195476131101811501761427350315854197935244896095504683436909153397696246574589813212174133997645621562381844272836764779713523879107131521258507931163451795981457568976991879578652674133948279337168471874383109174608412611466646545516072256105403541845859837402575294759140588691126935187695574668941853270589004895435896260492033786684604134032266085633448995303862174430110516866676152907762574358336917967135191958843068673693147269656629017516418421970268348392798228987827438652500588921970366805137230318169781311353871603977336968234063997830711247660893909944709839493805916694404068678154348974796821835424939104791091797742901013876420454358663469445868820519849137945891503967587319789704291586636317579033208664863996072457808701610394428125160197076923557096980669883751113763894286656927260211892376717688806241222307751547414127732447041083607089541762917600673658745370268454805872045588584401104700013967774303490556942275667773896147893377816699999185184556094060149963914388313216758163689047440389699555700331560822967607045542690696447801375565673304657622921233799652876939668895179060403087680387576342806762602507650974521110939498817010538964834670296353426538065575339705996942830252686888336103880776843351858414001429822861454045672259312720076855125710847857463904857257754326320988926359687844414308141356966504240241282082795108669142922459787163168410558317893285556050133624859269796281004742470574431209312895185802685755647852198224772505039733498858051596914811736137339474720174365958056454285482334801136134313378032783194776964603404926743471920382345041753732912538728889127062000627484116315919546463038157131897424481353604102023745172388338829829173288917624043713868486957590674025611680091824665646381255189763216656100647952266881765621684505490994114036591804009130688858238108055236235583879633861820880443949737320684990861470024760989524727333082370294168668924487505676926858560705687606220170301691948249233246719829085608947585809763279601056707655012600289152061135676072682801421930646125970086812294771275415962684883047949126993897160586520754558909591564544913846595978696909930223062845701148995888809674631045569787047730478768731150657865875027394716432681898401989927968181760575646309452529547910187228986237012907068698268780874749343699571517202939321559112657050580844898466160628311257835041964175352500724695480087908929181678628071216712158862499013832369605881619132308256267414583594112235490493815037160622808462949701468125146379952862299262808901881826247017621867844395619410360678600408044390047518419852094783996941779191641137814871462240213399108291633105989627567278036318210156197218372618618419336629554294082997847788978918064149827462653527539232547847311397315998894017571948703843069269301388044282521290701291923118930802666806486698699184931926426139487374966422153474541222438257782589343715286422874966436669911312730757188639317051901363874806278031538304362349888091146424576634259762813700988728238473397274302025103114296643876618437336330351924375055098778833221004895279937262245889172376576239669921168374007756131154887058940195321615068469241977667903694263808643186114462982814281680657154877922972240103464815312210427170884892821972137239954120885318100303423351718452134576270175688212497198963201121848455900128266864731117988049927894757842383705717385123054677697765440390659919114391468432675026678790645706282781173009317644741373945502811103939521374615614525244968755491428009102259673280472613164293403113614571518694083125751540238528674308438103715429738072566024497105934098698746812099074301880504751653063152803566451236525738955199452193184239411964869023175381837611315007742252723286295180272538870829169222063886645004561011238156417605272542714450093184605067915085668026525241216647167107248067986795955785842304819546977727003246000361982295642259642731958778469418450692530608675980255288356249750565302503615766997898081755734440543448922077410231856883059836697808978685392503181696689720438895892211615024215843107881126701645165245609950802961681378123713996359000361195473327859007366144179973297697690142791852091656118139724903078096017838458270415497920978581372420346779817944314027364073040468838884617861262719816117367316977212062210097715501329932918712977515865288403441882079158145298668029452075816645292510406593739087476490178297212541360755399046515329278874472517958000082941987412475015686690200176963874752486175744400162312052840141855407504325631678199308364091299955711943111683500434626822768975609667874040686807595178887024301312197691297774416592309108964734030535365578999222654584496484236668733222794300708552871866584254801079569699349279417501233253781751964577929479323736250497767018261168133747767034023208341194048745560665849181993167055907222908405651722369085496955771869849429254887774566385044313765173936311121470197541440932279131541544044254794996029349571079561664440286195454421388657781902704140339471037183448764583270367269987926324261615908696513236122783747601025354842943556602474803851571399110787647114373122865235024626150082784839176285769662380410731834088518222294298076936602015498053910891787874107954281195040737652614696600476695366359291864564611498754520903976894880683981538322206672404127804372879157787780492572247703124653689477505383387222137615803415546384285347552629614555399886913814109999620419260237236739975135910602664687332049526498020634839712185031634357288771245311140044698971924844365752726853386536173704519326961578365844131906325633532386080565950122524111246329518185841742240637369277859878726737126900140698919740010691467431409447308641873312576112307656617440582089611336772309107368395700281827294715033163453611497841208943504895821928170054440150147186843691069448953420553915940880683997106388288678377693653406605841072846977076686680720984191073183333215476848276919628555221761189235408133267315917411862032928384628064172108062005736399530355619952531331748238740501075567898962208239185324628600954368585596920949917622955596822590728519304275099817755916818026422992506415513064915878698062548410406075796238999287534315933677143747842344251130296892511806697371893579330399215941416628579248060020089218888789052658042688713234986221532053124358445789496423174140880161120677798780862158315208901572764656326226449376267609976382678451545422380751312441635507071907986162753694998824305732638773370112793850644304240611727224139754182211363845116014588661695995606098205174747906312268016190314629438506814123746260455085176866637489223065875127697098577101884313356726680203938937097182254751661330701055906958537697453392427179075813892986194640033104708909057635118237509731583620326086601125832587774130952359228310026785157382410342980603730029319476588933480313668336788340794152273583964038333084384958032007972221608943181735820728222865982987104876666377596826307778088575637902203939204568479571357058049965515926617999549991612383678252435561196635308400684571863616051856593939284490835234602214682054393317202281131130961314108138748795991893332112431733158276496294235157230594396210488583347923386390458796875072596933816246759642894360961754852892929589769880968606901249471152674312307616072877207136639426595364846718307083263574116221915572152296673520712132254063730015678466904619538338317173153786769178016365150600456437785407523667593366757308737563424389110868783185295400911081703080701890804722100369320395834044342162131886055370127820774999959424139492224534374396587589970216008402497407235490340869639584551938467920804328543812384805357305088951426976372470981000974301307047381139421481258976972073692615050745537369351168354194550111842112932673530395039536570029696789525764050203488074558389464249774099584124383964604716275690652313064545167433092710138765801110866587363184267216183157421269304144296900461352447502076211524662597048664205981852117400551269595809267189528302055884346357434935625921052330459874942337757972311379613064457584792077802295408826859472982287377927136725752267361529134831120986828362678946917797727154725482803375635116237595156816078820295985301433706600553701241103940330269713452773822786597510911032180097485482328213886541455675641026281378340602408270155267683817792002292443686526982657083974766633163076613781151264688291181513117891425892102955361452502234299005463687707333623656893419046956635335151806646402010498737670086037191231001372592091013999837847217162193323076771509126791263073680388306065654469927146910415139165833955286979406682121223987038198227272904531569087118494808701533285436603422340993541719599165740943899971359387122423940551633546615004528254023234735514293153320049461313937601361659234664020303094390340233502593232913188635534668127824782041314756246677984317129337260206150873953138708412127939569722235781994153691825642062607435553950083924230739522614584893009495069799719311055706452152522644658885748080799889045455236188340219175451801569162718915807701684984535717028704867994985789324304011406876159848237597207882323838803074408381948167601664314676981568971305629418610608493392953194102842553732155999405841115954163195789053405377517618909970356827834430863951664592160687314143877520864025617561897877350740988609506039483525685810268269020567283969771261308727312121366580775211933053887859642783782033493715735509242958775188269697824627970711217248791653333926018402356780389563638077404242254085650370646778535731245720900060414792762144757794023529242645954363401496491456002466971005962925961781889438545086240623456390691413529127935801655919719748766376492440292735820134060155693732231406623861658308931411742987232421570733428661795456189635242420049791666917989306457348338648215272754498674051643663264882592549044614931226597017729743910503489267900659436463090834663787811523267208546518658009127056524392174649653663516767441938560094494413808879154226616062104472149221080465175891342602577683821181134384605784903002030490831120514011055861994427359976424018397202333239988917328736676938630760583880220988628788628706159703085413289816111691547305127392518733595741643089030543959014079561017921791008532983352751997907786415822767660228122673223095569598657998224352084403712397642463020332039597877306872857642144517353116638361909338724116749624336841918654487439586897706701419882693664616561315985485529451026747855641671158603261783105175169841028383933487265661786853127273895187837238651643663986089938004955821283489490793417443578966284754666825897839571086145947053419178719822158529672671038256305185499771641180951500236422482609114558463309826606480668269846448186251844160232090583734617784711910600997548381639972971037113733856823209458164521996178440497203369266955954391592514824881165520147979836933772996701318028402164313097937213315562241197232654578332127021418705983676320400003717701558366949164781930784056396099985820996853703832248439884687926745988633152771888426546076473290055535156822040925518786750479221993100643929313142227209591510256904503948381469280737005859818787243450672330167326699781109806492220375631094823636048942975337017747667685322284772513016515049771921475188933189255859391662059905426900972479364300328276981493336146941155106989646224248136704347004278344367461193275248604087283494227930083884676625795547778484876206073716724559484046898498382023042679430962804012787659037479404855993576838241819093159455115700508141030037946042302627408727294419982002571283571888927097107419444271834911142918722297435219207131340680451522046170656076597516103790714278823432182651109057129969649904707440865332137912884159484987048925437310260972262234057103987070639288504363171764644462456409246816166687600485507082728447957622073151987288212334779016739220242126812968853866613096749378122029275946311370941602027190998991187378979057837680347195685819038201377930245219209060307469178640056540740467166066427106297827788403480640267579435854432090264294085583742313933557012836109005965672506518912172503121757538762683039107699914888699621392750232565892640492755321118156322962394116117337088916561205205421254007664081279937535240693504743320974898048033441939425413821740009947948981087067505135016624830075215086482444926036232329139510475495303234647554307220399129066574480096066100118266610812058933788821349258938878623719775257989749763525934545622000623988894744313392188966033362436559877255282541786809328949086743116393171552410804322688010606482989279544934230002681812127006152252584754021674653643642587646559584213495377776450335896141702702961629671158175804633365381783136069776449723866057781222863394221696845113196325610261668065750483811229063194593812746503132984771301514414382545305093154230683773275843340198841735068214482740196811204538764735670038036421904102598564705521339676027337473542870877527637252938115820435827401968739725123472033479250365095402842552154484334374434115266192840266441360058143611889658295027239696069344436204062905043593831660893596681472040969876257302938443256842766576037917310057287593567506027748787082853366004900643285142341215532133605666262094037950451495543031229484079654121688619497590614480123171943721070219089512790773113295469485236612712486318969554213528070509486047153783020565749672443278122263636825186199202587946100010718453464203339216604074261975187444675185215443009737443754720950505480730648587872617356186081033695273785573951942309202036655303888418812860487238836486121860239189286120599676045190493159471084093051711107375087638534684383942461540071913437011224753520894489208155649064175278720766936081040810161558989543791373290032518763230457785741477016980415528387877779375002729608403742625446735811825550813949246290046624239856855925363818426146123303232073603528990485896799354642933107310884392439108893651672744859562554239675349661494475059114733604544887937015343471943479663756081397595797999526896289142600308272739838955967717804591933152450062126165178064184074505502973440384858343788135259459116313033566419639280177995107434551507064474304820340426039031612279719578684155255934148033175128056981511115866882420013028142068533689794619666546623775666224563590617900524178526607770165189323691627650880335134836040953244591997662043214239910910698508933341063991565707013430555985407035676467465647434248247417446118293012743229586072634975510642883464232222746779437007305865222229237030147632768473640465637589574987682794891317116969722866053699035041939612245056249568335524123840194169929755780158575016131915264844866793484710394357721438918229412656482913964752929979937690463124550540998705402634734305959498788825599522495750102464936114432817862896472276327503247329506929285895674951770844264779280946678763426574210825103850870314167351039530868516984945047379178144010378433331696721416291568723593681993034985440184583107499347309449975922920305953556242520318678806370096156306777922198938199674732508777853024678527742971222608430316827105996973292065391222222806355826191111541411488254157541570928298132997209121003960444192212004233940925626113600137048939623068770189544560786548926999557214578511150330149781108248274201350737407823326433043551541894301650003174736293900355744461958731814522194089620895732166600385084611881494757310201664311808977049939302114984293199394900159899031837560124492507702901079694821792087147507035144408187464199946963495450414432238958413312166528561381305433721256871686522131268904133898118982236841602477304576205868846354307622934700183480267176794507924671025814672779686922485381723400783792984364537297953436868240301445763487715016134638005632479287565890963660965896300487855301953958366248711550332360247588954944372494203655904637407053977667480905104603772921274898704702991434535605370101411969584060190854677149823882288549854389568936997311015202081831869045961052434598217741611429638794807260374498207534043584578423757291158460662662503951458118031510131385135954952053847694077823460814505605816088710411625537282793529670126318647702236705690812966788235395162544356502877097452499510765897190758446452594600152371321945013650596302539061273470565234920155460630283803885554306646438806729500167958611748862391557972010057197767367244264789812057726985967283042580885724059094746222284048083448227275270876915901706238663295730363317197490843631218328035710379425180868555230389890762201584682760242678291740116680501729510240597065433250429393345861601354329674822906622712491285548250888251912450415283201958943974035047141629004079795713784003315615205030620689349593704017103729721900665641669594471628219640715620210545807202695287820457786632851101396314513531513299061905571148037460999499442507722480093692952935511365908289198233469126120334475823818710477491952312230586280590031534481178395488359841466454470334819219603432933084262297679919447017481613426559156036509903709352544646138473241177324948914669840188383201674967362607210806301763801672681573529379884774699836954100317440948975082822239159758170724293559438824407658746516705426275104145532386061665039718356134629266254091451040757749788343003650895217166911843010923287019081188669527067327134666769757359192362603344536516057377599331430210417222599088132930935422028601953198079239158139796449071269439293708697439410989897428100402036513712620486756091574467406602767238111441758055723408432015972990744571474363400195181415709608851592362674163473561858143554504659106206133659466090866985325336977437894566272482542667170127388265375320001165083850029954629718416916332513581852215768371672300656160133943884682376384867864020477066813202271654861474093056188037804165445519212065830997925283202951195493981430644676611700437920011647219966319617227828617951756137523545210820675246878030962902782969991857776763174860704078846047546893652893472252387371639594161219173685961497854921266580023661250391019166294481368726651710620911153445911603942555129895792248931138646248879540352599329638819963439638820549673961358015068851295537010930376049339112394167882592322505129449381766386828163491154301339851870887744390476281064325964233173578118944747481031554391033569755252058544434826211956663917944257465345035899723754340505228745715572370353858915526871065011003737586595558354184602430130530476513433445221187471790660088748796898985575674975255450417265652452340727399976766922369299798051850938538761268299951261153607475990684978207458020535100105078966832233846226942249892546573931101501466034269864080756330829153641550329115758445709090893290908257372151301907203668079935043404550118001580383796278681114124155093625854840149659133557993115654136572450274400288263519882790637669161952211899108968873576103436330254094931859525359897770029659955719021271826171338512571366925503958430628787645490642505522001128505628817308173133397297667568744534551143968691667506038050572281626179162005906251145411405562856372672343014215606639981367596537039847240060408247148849443251259761702971389523336816079990406423891100227141825254942963771808903863775732923321715174328292708058768155407572624843106406531672899536921391353413979170872183686769614276990737230980447024483776922648739368437286358439300045062243958768368251118332776677668445399825173273328667800846415285064559570785926566162107065857629622603418753730792437980598774950550580012809374109160125367718657079095054372086192515645806953569730491448427076953355199575517067881805301318781951750419286096706268270057735693003837804572616043371479346688492903100951429690372441631582192986710407621871388855723764022917938650572643667746181294575871298842332222306854362416822667736972651190677407215004107763531428493083270856555569053972905681827975952004623349510924941979732498815860603229630368098766807877529101863491694890247014471614958198750043649455313317010872025241695044632622356716712222480783251892688475561097177084171934277474230227502264590199736721392280252657547798720142720326798710504251381844233772590352696991996622406695210149445916678593388665196902677790404141252974422644907453137245124603175344009497575255676039264318595339362424636077529140776878867834694770440941551410665172361350962419183764350715247093960107871711594946133863687997064584637898645692047333243007520515871430457509378262727288814269981532532224035104921922037522997089973761293753312687911340228035230441472246344809480834648676148590451818275977936755866889022571234684246277374317842047770769364278479311830903095367874955487235893537503027355817237217704656206504772010116183289153720606354687433525909955868612647894441498463004895288805496431826720330166566202640515490504057784604636857968011413478362378519358959867573502874160203654855289311563406428190961747176544505049805493940263569365742426542300293112784240302992276273420507221856237366748720099557386820165967441076312168133583645603754807241252905685559370437144310975593394301980386466712568166524258496238073977918111360279653444730062852433338533396853607119458900066754048288705161784666619146174719286749386983992501008144249040374640382259443997543060653531206727771617142181860511767896459849480343329543126127573109287693740119476788513428163642082104898564509945376064064435026865873892988081391526619558684218110017135045381166642732794526208394964631934468872159982504530681506779834178958148182673080122546440216612537387543735604272805550375805793144355167533753584978614318889363539453579258025479500575010213194332352700154848361481190619114641133922542797278144366728364711054119635257074950417718151022475655294969763962143444215011303432192786120119921673790513102277952791278493770371889124902155169784643939432097080533204292509967540687111605376660346934787504730186660487136732894989474998435494736718271520925928880440649886960087938323954253588483531480932556949091275328420751669287759828168622674082375647283229658116334217393643769954943088910508417448841971228664426915339886931351540763592551687236954505929060142309985321934010960873178189489605223566124303910447917323344315136758625895692192672452894622760954400920748318327446508159155206435520274141445989570513988573087756885802186800840035202814968748149807427401761739126630949497216887733240932541500640997011173106241658617503186919943580691726567962871497102003358006031599322746334598294035145931032013741785732918025332022090957403447327566142170267540078869686603746290565385470205345272246011521348031203544508320577480512294547265209323659792313369920774075666751653167920939000626792175821867831693850095822661917872169945284330346356317532642567063720153856802151644263239791287500056420153069603757631448521494935726511926694599098297063064222066127406945397203214828474324562813263031462727191352043543206699894829873872435001795005304005636849027042594181357098655929533551783082954426854595373044440946233825658472505839432829403571725833509123633242648253314666419176857955420435526969928229306550533975682050056042347441594198651315056965724476192912039310424550698199540491827379418035241963976681980945032287052939837597179085849801506183446872268602929136538439157144356819319608156617764444321265638837434607945631290025740299064168887881571442704746809222202960238782188565111227472203669684962978036787794811210852515025853263077929984410787487195117758316540835477628898279770637583227047985751024346133827256533986891217068325156846373045436641389829664994736429420867860509421278297644788017093122875075233222417072099015531021345791576898834108147089570925248832315270036243149000477256331223665234384118688097036937483639676936107682342344979434234482082623593180126453488964785165657753481448616102890589957528909225384864840494878442808038011639541214706593832890222180571259414909469211542683098064864588585671777747235251307620694738669266456103119939947488365579484963610880782378948370473587227183537381073752364389367983288091204046227367530934332851082803701552501298416224330531127276109526263357042721066392604111254110648964452251457000850919950050662730684154485932890236867235413908943562595712543518820201907705838608514672590579039540626630066705948179692584371551900357406741861586997473561841479736020662091324905939150439273674912321470304433593577054920794408225960274630128822473857876996041996180399146659720067361718954179692956538022591808337043536734730462763267510368562442424474585295942151947278943498143668900688768440217629854457696764330640439240536825311734112705789184778282212753827921283050481050750925029303912585340492096661035904947375612042656397510664382145706531384948442243388620191176750194647364126180761165528504111861882469509050934307937437411151887851435552543678053723435352751917225856891312572638173522529582673191332439473045738021994244365931180445916983376234019463204526846539890376775925311094314543270011058678219946144433549366185990517912510679149475928010604688221552490476255362504665757418857600062366805763931246966325259017123078418630169603932200090281780181103805653149059521735062025720827016825351414769927448249334704243895149356113742516708258421899880946240496923478547948733061716713954730522918909621944150238129642570618492582114983646316244129849838987122331815793265449083878237857466730978884081833588006884800404808317220383176695718177242993501213669853434121611328860248560282777760246500340038698383333230842151050494164588487072323179701097934501767713755431272354409507105490008899655651580487761630822015121311221239363345741695823954075496346843293389765295720062887857629765364646991030208544544501063956245594460138605188702507264700591797326690788891951353708997127323194178354806307060285822835004338848763383508703018526866306970921595841890449079887761366431826700523884747212695763825222185250473857529735070873259378331742748108103245750064840907670502266738816529483797341534730756774993170425917308925902923607545245684528833600616911430622218763482073754438358134753498522523430538668477198616503280825608529094266465620216305324213755215408843883031200648716050102112346106501150737034214473214295774952765101974943415066439207710724349237184475304160060275333402479569538357934481078068378046833880428087871779627425947735332279071505656076376867963345382419788029468792109856700099524012730080180517305025372484611538986742273975296155333207942016109242118085339973121579343956284185801747088154948004772943337269997361067395902467147413258818707054594469432063981499052413800014836143803349306935255522790916112792213464160129224703779846328213676420624524099911220977090081236471179073488897967743015155803250633112981264115048881466116182838250473327343078218766864569702631079362399776131790718571069862881826382983186019672492962356536207583105585935517384170820503917911605631992561808007929416858364616134609250094167312737981825789904250320851974097758453315130198218673720686130935197616237678540888523114730950592249045887447072506403910729420324813291892044615917298835025313441870032167723405394008915342950156722130376547980074356679922285768030516068438483412110154614567641728992898006955772584198237460237622883368922595633476599851499743752546357741890591854477780983412295335320407208173025210666051327595185995330465351240759492861872504154152648319674334993787667526478751298892993672310829892480316613294925056542810115978166872493261944496664661788828913280375481023681263950957233102019419380055130089891311335526264238416609054775860592463985453137184369432538921110663076533837484517735421558726740236935778630007767098619169491695093864401071070620264717059012888658512386134288091633812713230271727918217354886988334104532821538150809977793768391786087009332240981678255403166242336280150002565506661287866418693257731833690284478977477593964777090557607042327414006369940272134578198298766910483309387765464867746356248628247977515993662256176316170014722863559910838346670987990633519593047154990369089193517355743620032611464696880970144941236703557729382248415682206337734562446590238548250997091591591316996770838355327985562356438782957904531893835320862429897311633172654844991071414287680238154636906882941289035624743275925574041495631418720185876387114968735045175009502536462237073494700069155317044389974071537140497035016419662707799293562403688754536828469440755427481746183378700420891162659989237815604607520731352204484745783461195641404372786593530526935954046173773560264610145749930825728418785257279330735268891282678392310126727297977714851022422908695329357711331053129553103316638791108423010541922756977464190258967805249776814687567144989508331302206775633631960866598487543832966408400992720719821615590735920881386501559326032743336966631053466992444143948627040687753610213511576508184873112471796773367512690089771984483019228264081242834818756297303426217072604171227971958972261697898523359654908509453948624694398096150115101620044327599582351763086328181282464976464720959978893024234556027552274648848324696035619543538809255200650466285026634563152541858799100083621558804362210457287821203856884499430152631530408595602007877584156108378215999306076295096159151217035058064900719232288137553116937052365438325297851538962966135473087020677475405812726136733585679664582824164398499111301707694659753721775683867870518315934753529986471785861260323028134593482611729465939298438005141608679374041480381620432037103537302505141674378746178761428022266773693095264451880214245773516319072302541741631429983522934935880924082833649315736488463431603834822693882096294439747153349316765061498205483894141994294969424907142364922809794330526651330794007595436763739284517136244810989654237973702841929921475527728321222506556097632760351977151867270729495633730053707188792132124305044259252441147707165817158294527402668653212680324121214585587671181451998593998025971448108825087252661592002571683442882200176442051634073309563309053751585491638090941913313849848282890613255430231222671907477284580766483202231232869322490044686142616770395633751032555693650858951662149580893456487026818547250415966018465004575295880920862217398690889153148165609959007086249055388855687316632904174278116969372441295595464140604616056299091994016674220564196282929533321821840682987650534448339278302228780564555714439488276845996284277381910671301927109785676657140227467349250637546188059869596891047377151033925460521597775237342187276009694703684527363641540222864689376588252328977434428181482281590454946574763664704841272567655234441379465074741142605112101945158633146620474170486867173237966263789072712094760057044075401790539725828401046975366093808036419777485170285317353754976503622052383970776572260069402036270360505962296245529510844440003893786503081380101445618124358513273056195601543311456717046173754928994491369617333736620825519445371179692409170371849837957579207729989517986085860058422712862349622013529171996705581851076523259845845143216124472614450157144469060971577198819870943652768574007677081410045384558893363437298249286237840657866838788729546124368958366360581932452680926341215632160624327025127970437491353453230848821749085313956471156019482505240773364043611337383707222472659143970087152830326240708958363631714436555233201491228896573708586957424661541309678100712010024661242794641985978938454907036232562377196959706560906795807380983373344740682417802947512836126806931438464139783796760399157871288230380459725473570248869217808514212825304298020820902932470767453743032441396676303065268806101541259411160167792424293082285124281587265567280130171333831750533355246697547694856118026112968781665046846525640454579622026535269251323369647476061923536995299990676136271011966745869967472871595187557208985194695063294168834046659582740790229314934114061259260776663765917428295934339842459901683005554236732160764020223404146103643774121412344156525507337891865665315721546298113464921798908074930872766048739972927261573109158678541138212835387817451310355249518750439563414824108667197159976618935093779485297899639191494409279711521807601883349112004250727971252128501107132082185322529689442603346312932992348393589783795566720093222834410103015254145288898999501299307719252518321859885359128286948297575281006204240747710791494204729977547623949929959560100079055784264424030846439918930302818232589950890993739367263550348289768289821178363046570159965675150095487275621683926842153725848285817031041839737397763497061851077591453465984535590810318835194385753613236724127538125809981873587307447703614399007802848233837464077750828126051397111080161675058792799278241827255563878915264958927898064152122763822108548526726349459094178145411090248817425053361506949418712784664790836121606371277879479230740686623214310455536165976251342048752590654845981338878151240552001277329585301775989355611551442148018769094821614214021749424233269609790857418588929929429517253483406041629477975701403940618592267841921305592823249107248651822386010944770681001754892431077874502060557156408008017205212534738345077129389362325822207344355906462669632087617014438182226940244625522224736870055175420194867109405251531358966791350018818870524038353677647196474922563620291487761632399378946838237755539744478633509057248667101578225311361943543701193892046575929260050423636625176434496343065514149213437554203544452880083773701717967822146803412414231252590986357601128605279481504854518579367761274404586892120113665918523055109845992630653807001468455935665627110422998205578499369994452114987918030167369954643655335580516043633554151540098381936920565600761063994963460580382961369643044069318698308129858214477671415738639252890445172638352304340311791900865891118150038088574646801096658919086624398620197856054335863039839498384223957903500296118228576386884206558828252840040315378060006525617044664300992225532283020450040929085079364019505365384461092417853184439506564066342898785081935314063356721613504829971824772738849231710140406951819592790782793794129424218087658100057418246347537490805498456624935353087216927748598094623072505374114414846137468568933318135872186263385433156344537781900404176881925295963507572158001113271649975311964211820527548989730027955513415575597319767345336451875011671003253739717286579519277155229918225888060488523471420694266639310759688705900982773152334560796205229644934627085906318240112352248895559598197951013157040874505848576292037018818879334217640686592439592711885786998646576869253991050091104932617298663665073783841961629648089206507809952849412930203900111134536266673507625584939032121331895686474026636839623366743136425244297147539835995198081197094763241358894164682690419416589139875015314421803961070445421330848000848804022080018132634534890377064246578049314040362955423711785771277052282496986665483753457484227520301447295156391416628389504049766936679183486366459764900237040631091306001508161651267719129473401631541000624265862990012149345611813518516792032881726297765774516256929097253611761281005016598684700931420961187077040337977031109623817605928264480676035068462806575040005227904195179323365903552638751102728270038436100420075221926333880750625028151084676951206702262412316035316705755106481673637739826103422866267410470455241216788084140755050524410498135798125600598346140185860839843067312395845575535734681980012893083373064467730899801824889622150095538772694664710342594769692139236886270885256347807834771852315817371646062092122664304670870911626449827040612985657920762765774182028006681720514234823917057765029257215610344134693445967724182347971958896463625076687422403739376590562370354578838201387682360777185539676917163320616691979351751356743981852543698905772710181186735649537799854567001576409598178337275132518454430143346290676067957794546406753529101111643173719874986863988350540833541300741601031431579398110151405952943088234998494562516496470315254218047627217795317203364527383277867047022017304574055793297631073327471179970754268053702481828580233267341234916657076493407413720714183388911157213097166506070541529071767362781030942158445921858354494004311290135677215895245800998610991679612961104689501913499651077890425827622159738000234393569853489251822704002546832597596758844276543367356292510078092324105258738049004733289425354802568832493789774762845841629497740854257133965280993492758468647320417992850816404644611997915133984265858538389816291987652945859915403134316368546374339537528263592485833839621911325400168630961020391985775538493079057192342500386848103574966649324352524762958751230073303919742686792010279845740044804391377703874135071785704139113952209333009792295431380941245799826374274718933454203960573401149403751498279421742927875035146508855742856570166804540185433091432387667241550459407942142587072560927398567157191350924569729613144231599909820395116265314683936396145730187121785899647130814833406059226011241085170934867168132204737270064062764725289965777595424169342023026561555194542009625314715056343910266326128797960758373369833130590253772435735367084745840905794266671436588094273555101287153502445099375229028027667632355178659985033417631477167198934630521970718790238335194561010438109516891805138695885320304265283658905577717373626458976970335958363894770546850370743754815585078113073002569362780137800351854063131983543205742829390559402045699516133307812849900293320547311004950341065358124041340525921088859720749281254255101759169588401068723208052232612656251909777063821982496396557112373810277998437999219418239543398722663830729461538937693623808955532814149885419628436275980031215397733160295861010614818605053174178272167953095047699581809806754265108834924874583802309937095265545324054855576258017573450317543781087697872682669618821756153535822465476003158650475189874142419551557047772455858990010673549365363298355858786391298473491020683842152962012591109478644151980706912905640714978953578396682114639163301354198438120337816233003929204301417950353612312895377899310422315608287932290278635796088648364715649559290116593113785009804566150056207828032434190781081643097647471528200631013748548581869082805288614263905140618297994422215621155041323505635080004456840199242833129055217209676118084437321031659746855724746589281209908676724167780375706490067414947624519946279258864831549016450485611078308262611316772429059684068388508782351335237153216210133676473549822557704851820409957694810547478616985138595205278649086511878518298170127855277803426798248299818565138210216309212467816998940235232308731745335942780386634976750996811226695760490088487247513281824154127549402592428444440745734222563474841885086393364435987506966286343874469818534431083506747921830620418507004909004839972176439603380777861858574085552523996090567122261661599587901270307193459352877632923640134488658216014902963792904850424810813631766228194807715975776944700368095677782316654971577821952860090440745477257673510472427300625721855458022902219539157923207839468861393018887262916403548511563480097527164202343755904338410969105454388818744731058621329205452735598572936597588868022043438145663999683846823893911186803555560026019844030218575797041740871117137471880487484655802209410180993769757251617494023023280960430242594763753238355442004838037410798544045605051890919894876211259255659413162177261950802548998479789875533485134817529605729041473387758732225945655913441924301401816945353019711370888153777239356921768681959572834400309058238303724298780807223319492101615274756667402089900449066259941520670897329809445863680043069778413645529792011676965512957949927894344785177319226014533395849093849084269627205857104925518772772438033359951377628394922837501347643096186227167175691532533483800102710670018956525100154543795034003394862869248296885414631014665320971622945963838577677752260811541069284663581419846863768828199451316503800113312304304984960522316079325087059712824528249300091664597245331195076576357281798699174651907245510562860402429561878121360801702548455733851616784674667096339195910113303738427419291231465188470192115581412292990372776781936220124923621618414467248670903021617280208319636677352734377692049748205267925984806017842070585203175612391339298831092976923529907687816043403059852835096643700126309751150691061408499885260628777836498163293534801080963363216732469220564643813451630311333384042092836596385624977973182100646682048563199347962642917032993123307021770691498441422509098864306356190561319874731997022599944954147833760201683898558317254437143529401866608830218802441281060798209581533833617427592669878769289169074292162435859189447051769846375635891830879569001477233456221651059615181799284362614888212747853576051044668246900979552897234910744990460992382404666849425258297938269796316490348004941858275993791994596400915417028663125002900023292492277078961658227562567147669289137053647161870559013653999529264978990414141066554850502291348350814949799190167199597267949135285968441839649771594471839272580514743744146174906248545536950925886646338120571786834356775842689831506940586474117494280391322126245533671527750950262932347191156928952488241088519382881561417526405874915320236859224901235267632130066456125403780409604327535624129366607333609095548449122625904066475450720696595267367250974867705515421770941973128157960068031549370275588085637934287278997676104632182078712893019416389971908522822843773976761752044231714509320832335162346361817418451840364557028029484756826869972039356711132980239073304878491889089083329331991432141459389676837114232046793042929875773677461349790758839639350158848581917354193625217298054188944906181388967607297125452380984837980087977313101130577771321346237142561438613294477152468256840075635430262307110922661294764040846850673769444261050329812323560638690429181079724976769444099131301246024253813091207339291141708696828490420951470528142342021759080746212769618421285778278450640077880188395437510012803288694266333177605185306695647778683897969177186177245415476953484832056274565903739330801172731438892993910141955472376789553611792612240827935982508301162530410841405073474858091321493769565001056640002272703436564898896820817844686852830635790143519542952324559585068164733909325454419126148349342144264455939120690737341021329390786850595722237892866367186739298694256187135556142559566125260299764668833058292280501682180195768715870824804420771246943075108572298941518560877325727159330918028173799024340203744740964547377281338539915626001276154516562712007539029317671915277382969221139360319179583693494963115459248305062932200458173995163690562759781623763808745627371036150824034214738056023471365797248269025146001853297530782674877064425533835302587561988104831969917805052290473070009853914954464208819118655215534347168584220928401258897962145997016066176629573476800772652893365318612798474091868165579502038445838500785332881714999594462586626278586823928424248370955317302121940727274155493172709319662295330465387310112692319399239617582249421289992929467600566400977546306810153675333384810350581570039784903071392963867168425037018681322987388109273601733955860561381335783924660320785906863534026559846388984210546057572572191045314053618370562953948337093426905480776886652272581121272360864668664309993094019157773823796660761271465379669514426027031859448990721986265598376118199920711007376515027217018545840921560783621483522183419717644236406320648856928092520996511882344144347470452287450742443782470764224692369784534551651423413812276844962973991586064137263022596611205729994228405171108563280038088397258581886103789315141998200301820286062866035643106389928837857357620258636183384437361365713841434321757469182560702532453390398025796931194395946404200452526646202157108615808759943168240667366933226583397860290698279800943695564381305849993853577353783956647080932092139835513677875767207257650855475495959517077837808699357587660347431435345131796026209950113338695419232260747276748378244627483577982449917610854962987785079604243163880678173583963995761964342899965193221356967447185396273888437564910453035148067063516342138560044196190949056804241776634901809778791289780867164310209949311759571890288011553774157467994020678067889664641048853464185210836125300819893819607138299816091426765330846150510499153901556256501047386014933953929952583342803180056840803153166665513623368235930531062072699673584565061379451335515067552062883459487565137443510484176580849902956418811026626942357540037670366551652762002189537568870307722194697206250990838936110033289548619651140875090668465699170369783270537677520805045741297814397261410671704318558246084313224226158211634074378546373794412116478280981743895998398383556263555293147993710051997670831020269736878554073510344944061492946566588431673941154597204439437357884060865676159873691904224782610213010249647360365776960741687092208233478592833398576463141914738443625293705298093272455671617575432083568923809460439639388831114037541274275022850549895548878139885481202127486980857368711237699544381657768956755058716487997970117384594426085346145278619010248169331071264695332662266888765838282481071256089207951816946883836391594196546822660902815581780338966569973118886300890015385098852984410671405207661739635391316886728622549353420532384767801605256616222572199326564118128228089186553068126525546929085040305410417534316766115372067464015287389068976246952847633862199030379713330925208442780851591924872828575502506553531884047720788092341636066582999719573634534487924982064944429956948241136191712212418976595525657474684286434696126834592333136758949659881052730036180045604493574573754180930005056046727746555305227564632165722428194739464650377330021756532053476152614155577515319619379209057827395969175025195764322193506966326252538516694822553768115605301753561097344622233378719199057569421198637076758832661808744283761901519063033780218806149237592229878110680475102001260456212754201525498143906985356620175155378766187848167941497457521683691003085216260182533923543142667566734333138094349527754517724330827906366423153767413532907598310888668476338076283325614246098576363272839497010234458323836615374718187264260028135794805934563818929745191014739903449825105364354437776079496278689932882802551493474861542139021121253152386475702690861801343970479571156311061764873989777625392054031368452888171444600235684060970802096562129084111348616656370068910039065004789873621139579332463708505707427517434786918222554382071263490959289074438752614028673482589622337759400392452368031250993076422861107272656724534116222723671954087201207393077792998408243239773996720561081225480728933080398137155235725003672805616822196053336058911746655819265145824371817287048920231272030475648932416457412129672955175567678258488370311183992746726965611260329309822330269267589405671052166540308738119801993173848142299599719391858397367699784337184499727828476392287161322325114032275635399294767536208010452773214003059342989540250551169934679254343837199688448982875226593064482709801219722536500073947940118220369422844776407943890908345746154321483232162622830229329312078866580238991247159868604982175227604224048042390907684589301998993124676519851422373684204464109842577721872028902389939003884344714545177334388435732088137549347764224709044578196299714492906932958634342693450110582612429442887099439413920463912937437361358016933133202954517116956113215803108546625949047266748244845329790517205614825883589065493965557500159859921136194372211519096050274855519457424135616808026904544760422757308237452565533604641805074201147786354056492225258307580083448160944127035659102605406619015998537618044076621719488870145998207521028291226646499120189693303495608216706086203371856113034679274204679543166956453633861923070186959305672652032598071917704357261001938887800975309100411604066116708132196191197897910708068867173569790587017249113868638948025728971700638409522435420442149042485986447217060507129860220842374829063952943895328033511080161276720796870378330076917363554922156553592194162855112545955346368266490982674452471780527432834247258745020012138601437719129668113765711181762186797845988440027350619752386209343745191619595763519610340496608616792287573214708269120266221858623527254413752412895201558059654594133264349267596548186312853704276928487351517042355131421753230908356346466376580910522446162666622964683613794859364775691030077713431273491934319447256159201699134410975267050588566159908246880883973588041134357835976005440060571036505885553825190914435893617758840588292359847874566765142433158695425339590297255396879607322752354622123441759891968655842578875081909164303832175395669372065956332379690681139884499125153807558149419484668612845370802777837475084943333035831466898952121280168939526425440458160453436679053686169049153887855969115976677949275614400575140096828364559175753467282327765033967334807994671221564034038718264854722718591426295801602683304303045187070838489317420214641323985175843254402763057072324558459461439910825463226349254089624481077903752663258009883626204867372804881020596388431000506386297225529330235555589856800822303662774567615304646537865601292735616965652973024583632232748037593796512350156926091911112287086920251983245652112711493966374554998770206381623226660461424361946065193532641726146628146209956993742585538872679282570069963607005435647978016479508924691635593980135550840088835001631925768083615414771418461237391960248818966448626968293809095452615414827427877642677042919433730249525858390217212596186378246765760550211191135896121811564438497390029262825425079944684033157107249040322349894517313877790973130920812036650210739747757461386817887895196796797304599841939922972266578421158072749369794981259441999627169566504511364036689049520665885386812002488643295301536278315618715971525396101683761522937261127070276970488960433200242323263838947982926083217675956929642884232473377113364608402049060498102814297556948672096749932182918284254170807999274138313686572257971302069084038444948663807128619669021704191931399486170596917979442302297862831893429365863329074235188300673869838690549101738411111648986846744023093833235780143647462433726471756519776607897517300290532272089445722209679985595917411387601182821179133409840887783919515695056191603797139305622324686569514190559555204159419511866732478458061603569029915601324876292041045979957329109054986123053334031674167262535452368322312969739821000116844755708384386834465910067717850663609754674229275796903713282196498778789189914275710546219553316167651369013240780833075048439661440988318680012051336612917219276233311010874790559254521732561069487709509168497774239898644744578218894723729159577529503335737274694793174753942744073392998789580541235455111176563260496495003475062864198750517076580594495125540182096770467160577166716999854365042712502195269007149331065916634524582605879428287147024630491298016221572191366061431544910170191230252723997713059173348151700234145108979084548069857376885335902467213384524599387122282275964402208199888773449778758009684807225959994307105156991036786676365650692597944464329477917210774349734263779110346692261221174246948249719876748965753677419559598348826736678549692818235433758657109637462101622749514402519715218908166008319358487963925598572992043102285356633658435567007355926661955965455603034431138398055775346207604125373201725630751491584080619567967445268093027447857136129940046470355108995872608255370459144874852338582122678623323336232630734660516347656466295789252057685644775629938582302718227438656691880651125562159530813957592739226594996806785963125535649361029967391331955938575964778533537805556834574323808435236133901966795439350785092330832987775740290154456513725989538460954522658508797734956413530848159244674780034618172912981137580284519917858694811154058602526554579825814465964349446224556698962518772609216088193227643739818887655483229067892798877808078653784153810970939959891479294517167166484385638245619205475596224410325536931298797699947378594159960454067854043011744176619379957454525896128639699205610722394806744464873277422716088531131779387829812887214581551044382537823798274403850069260198943945203707922779282153056390197249545582725042994361699141173204972587806274701171618689252682139657619528732289407229456531980484930990982100984850806170708270723794744312526826498275997182164111447103420286200023046765860921450614633391010450385654144465676109706053692280739500062622952398985504071503999968163709985176561166669840488249379189090082185533644877471052372034278316551757650672547518062410348773044634943421929185292923606777838307747666912569727285734871536172655242450439669854725098977107416771403706970193632737572194300333036429427231084714799310886605960630052955951884500481049346028003281907740524055453065466789508616399539880164312803499689138305905192728550477565240422503377434844967756426582694137508509366113316600891831256435237281625278480174528086136544492467835119815439066592372358013869824211063922146768426416679732519010468963586624218596065845063864576617877099819905241160866608318071875462867762568698952317503123508597732418984864667378313904218755107507919244220681811079459473633754184810265714952384396593559818353980264271964411023146906268967741155273723368591473447362714144688081335806437258182062471963537644818096578453390271254277856971927927999528299871600051985797723710488536711037580829505598045004768056464436332336824531039429454996759301831430902291682463448196827253517493385692901000055045985983062261907292961919848068039648017152892283789053755672447033641766101670012433251084346539240471284160211401940447279792908190843349841462168552635094673018494210383058639211517530877191748341676689863375196938144136653029103843247532431159365284742643937068087500465634757576941980875964286763352520929107916263073234933389945937232473944545975384933712975552594590905828695304017631364075738958483938404205169255921933362028010200247137616921000378999312352546641090419896515937407166262806352152002491885113804939332026935954120441194570078924095568749805610230596032328708423873568007642057335530936874352685071018506571776970737985184840624771751471596253530212173426571824589722612620925157013235602175132075739868150725091856838644194937337398399831739684261084325032129936520719775554540773560164696350167204523349979375286512402952589904818692079860341808938952788370992123371340687374510856392700060145978074827442045301145239963158138214281637673233656885453256582779365208885251882465819969551960892731814583803654433512881829439150734271377459680597893541634623101043162743633048392921020985193193808696638971252880045654992606838480783438613339556091014696453511049309402954780623071377064639776905403192741690211409704819226970439600380191806650485884510699555759542787724422050829046099098518443747613370521096643608714362320035906004074680065013111051045509386956666688247343855989081297977345026741777823810947923719443072156684918879624196089082332821513733727764932996011429764534650875116225165363966207445614053245973466566748950167902909747780694676807106570215393346613468253384256407161392035853150844222003564500894211232791794183779197076396377225337586810810976018729873134969612125665635013254235297033193050153580484510986858898646994578316835360816327852432128265048851524289235829115806199044473800998794601085885325493748499947807052819037890985555762578334275307297668555024915866338081114820110930088408370605066163344028466604196570560701692226794456066758487848154373490582424996538950451837291189206467547371642270588647532878080359884381892034989058501938395375272877416269150832982425196646086497991927366464250947786372549159892759287540934105235653640962170004175321638041378201101967177364721756414012163776033945400538746636770115908161248507850765662532317230184976527863618771638766220792746926129343472220519850609785684609381837713913328299940487413991753685334959866647988933544319789407716883665728111417276796584199515216407856649420487919004056117457252108231638924981935839470394617188358781332851858097321485683753597774783716950837603950534426870836367928306650891107403078904895335965215203474441089556402147333238367924837103764315624146511166070947862854868415093970675617208758379026755755285638639328248063793980159440827244689841280351002173682629503560463318444080108550407368630771849065457471048301939236993677021275919402775632116463580468421852131766203906689494208523114477717289368862231639983960630823710833526431685272186540196479380113943054775607259573068503904211923748186343037703873357766938412823448715255701307873365299593945750430173323233225511106086031077149339784610858851457682263596088827267871761357011859639607328577800826553539775079300580823912841045249232500457308960045883954853357304263458895856455126200541575062514989008007667021186148376357669958763896812963854170020900597186867468409696670373337924131504390019125197678985569600717552225157451535364298635519809395052269121703018625039547222623846861240508492118586270906713826827408140492480932984347795431706016044044359904516959066184259091868377437299472765480912473588377674492534046015759276297612930054367737074246038336537789781394487582315075391118763256720691988809851389232902216976665283642576878153375978337214257739085113918819984577969584951346264669754039052927655647583056113859889031644096187534337529430455277094541548801500290062344674655281568499385070490606655938431345289349087634863384655892820796148646916080453517922457802932282442542581725363970426357438632950188815136437953094187238870384636857138586967882004856460973535564003295396419793131942783455061370455064477569948976145167414477471882989946073369773107059486496137438307652188644694317508559907232045078503019820201121622731081934671406799046567065973540211791905228292798639536758643167620009880401733414516994618474943162586614953474901935936252863702740480613740683556923656900044382395306100152759503705065236550974222351996158225313039847447022165303269285203993654604339965385908340021400203890526309625109456957692964046037949361879973730382086997419858724096786831254260875150615921739088190667826575557451583047058152787596917613092917871120768030999839438011582966804213915017213235793595619958556055559090290535413669574619103478923550278409442371491842289370696173674348825422417984404669997937928321645911778104237771173146525047628265989136173175053212632098446365531407201676949270615732186978865047687420624695004381123672860066158691455323703714085634721263727921066239303819190576158042551133196354590306608943309397332242165672086848837890432845168873535278145283014759783335236422224649142427764389412255584663235409285360507412915360164672271156085363125877970620766711442898720414522983583211325873563125336153585683116008908489141147442812450919545174672115997093308153657643779159041005921704014801803633290324539670529248393075219244184410955581220984931942280136858940332958213761161670144641415353089826922296011538150858841211417914974714407429784484288630332397543119193858739389995304454929918439109632402704720870491449442085805361392151593522193564160797701806342239166559794307173862759967149451982129584572996194823884351303534382558794370493860226593613472802823901183545243128806630830968919977627943239857704197453721730636307081458373632427487910434237346373377731571254584849855682338469650064806636007995077012967370709425919666288910843770987113598398272323176646708324371011340935426966248995903929615008736421978455926644174816123012941443373336177449961876948808454450317598751720151386855119154721192885836896548734044633905646310679325214025635505496091871509877900640761552974165575465689997819253510071969943952859923341999993421298737639478583499025461104114333732630304601093172516138089685109000734937070293491877087069028082550111966830208514845341695198063258242734090977848976972480035682851448864338613072886692971854823463817554103828569307474677201643019018538902824823523482810341966930286961645626265807807879220911997584812580094971368568963994718233346816202185108610804195017033256269700226820930304277132679186800806515525811729780760513982745344708428488026481542723239041456516297792644157145653415512064164950527239747052811458704407227391082391938868929540975128725568177269147856698073008902369810375161546555210844950234511560605394575017963818052353022883993782894060468169597554727023387404764226351983317927617553436211827696653022864813306578716371647969052085047518127635320726063022351953012440283552380827827111130923605579097363530989232824535769511329984199004183843145950794787412012914095221569164547945504848148441058766407658423349658057979028838671256966600181518256717890168513643495189518673241000250827887621872633723143818892508852304911000423289101373044903408428983181886684090586899182837312527824552314195254821995789759033342843728280632237135536051868867036960003256553085884049230364734256657650857953788301065814073614847759640759285596007126211323711100315948931639749521112319638759661221940812317259353499923628051044003983869990007952220004100587557492729564792561794218575857785536003099421897514093660718354262523292959533015927991422510015731453179483293797518807798430045641061909863458769770108465876808639767179783484774361523298092159988500880977926111716162704271466606633214130356388867464185837959539529594564189503204581791577176895684075339711051624701142133673373886943989158648409692759653462396847274791291619821235280895083827278880546685340847291617382901321844461075459433231674554898053122025375634619824573538958845107874450840688829851988062224612591209979534375654757048245457262809173985364705456645322604745321994377177302215607257454402818295289580471460872884267877595726559555869759407836775587401572101296339298339544531088706008115612222682128505031705706499714926170060750369497028953678747115967007244840869012932883368638368268418025521276542677492183415882776321755256834062903159027080652039527570594603585247795937204479752333618870509955276586509000858203951126127737075961788733020139593787604669860363654745274570590552858902521623132176611577953212415296017753639258651801806830194478684071562488539128275233962821020964206980236220307540864286355664467088081039614960396448727883953819552020848191171908116653633608468803233224858673451936446137488591259802772020671298766747809619699508017876599485964270262157047687058074381182693838755146484142678609782872386816140488278077479273457028761302975997046135730283752965409087135916134422018245576369334382526487659336881423771509440490324222665961208094651542746044532889813745973446112096698182903091930059795996644250546761860129344016184843108500875556132861541320407303738899518574046095187494161280831707786214785776365446076292221006527635658856962025331988853472409613593282852455426154613994062659708851937922341517927625673339908394875798450236198539637165387417947228698374572355957900480235585766400207060966411231495356413054003182843371589007553145304009341042360302544665678602222951930662565457255642520173564596304367267765650708228444304623104695931011489213833845428649098068941606977167859832525547789147271915859258536998750989010960262828059437239841946932351244436276671674976082171928157857291277276017013107066269771425254365465095640649791123978863675115694414559452169731726334992304726702754626865563955956445825970502593387291552445737905745183097974574964555115455484437868808225116557680166051089432269105863356250228634364216516710569008483429752952556141842892003929488896729711521229219974091044753451468130669721559801655265082404402690844261196968120502600610145863784080776423897269191888838895228247055758054301852587684972016762135392443898251983691842251310340446199340897552760663931796125353717998375827768954829437350789690866732373594085536847187461707970915842692440056380968861806243354407263615596023677190575623069410766356981972044378398972704203139144471492486526853593516456933721313781433242597774594632121822447166044840290390265491525403703045145935117649754660794022789021431081185037364120298886478600833474562870539019422979700809285775736098291019039387953822946900847922343945970983538191765301679313354357151143677442828368885740456188635414632580136764697951083352674505732656358625605409928434905494490009744630193195342789633345677565533871655093380174769831581294848638669701320671371019609228471519927797927088827839938754631874263800863519414864797013405698950040835346625308036189955461817233734547405025226300754101566569626606205733811097061606253219231013837480480863124106804619438592463013236506090952527277817372577660274459403708745230036857617460260142084432805486157089572350949981748199822906904497880547766574236895800958708237241135446964895775926381624913289342709022187829061006889743577137699965547372295957068287252014615499008921951182182750877415783193923032203888375039682924226747715067823731276042449861965325695567800769645555605289738880283216651481063456580354987860714190137259706440181072160962472260642790324886744115847245263614953932190255860436905030013896068422612468212733370887868647753263685149858487467915082781459100554065115132235807249196876101349878472906240786652981283785881861941177829648633793623772880941232609152938251307185631058680543170900513407472507395736698949833007993304241498692982200478608416338924645621950499806278246470338861033508898866444970765786580897686524257383942166440784077733753848161399069578255325652776275473646018835090968456232982750915937561844747915924776674785476081376682389943114536680133801618022305898720293922979770217786271936913128522138010725937699263238542893714299950058667171572072574619887219083408255231614066478446042553905176980510735184740740928552335062858235995524097553671252819820968204757167621081087722045586160421535913093701678902403465257628172196191290488089662609559549934424624597341197135714127964523005936365222939783561216769242909904227343301821269640715232523975665119053632235143593969083213246895532644272764624054658468821047632668363540995028353767653097038545442657796825611094336478841962941768202308227709001245187716672416092458497964585144975098504783024938108140422181682087562877978374841772234193409585758721015259000809044849858871314676000563217827365590795320925310561908731171281698782115332000759328647274527881520996854472547375756520807700426163692201839265602721224198276894380604033880009753444364237460056712270760237302132233028271305009099127483909769556559762170793581027867055629797326498584270229846752110476443863859209343338776544616232544488096639974924444643262712776361969275148346156912068691828274838352157640109428379165071768830582085682915462674230771569811700799175578721513784835894770734350045823570193057070298454442046167451323471491192563679302629877906317624507236377461804238979928891623696589804100168051850179104566130735287160692379770765559781773573314617243314083075696955449122990583614299286048449478189669217528796674179447455445337497669748624792215317212966244052544149628804844643963473663032758802643706021670057492182068097106640746651148322492061477085763442915372846869680794844491936853733834496843218541910338416119736269298948150696449680455570739461798986038556423302453155528597949145457619988719037730633592845921254603546020562177642024452736831059374378425732834510354754493825963329278429414219567171761588267418197672430709563605064026127365439238899841200179817891027149165001812678930534627916538468100019606987068272048773159396729451402267484428442548186218934742883484758743399346271448908368107154175356473186001482753982031226780699040760660411543360376660551071796393599033851314195964406388359507870090010784856725671396069066908394276464530160273761120788895325008871841739567273757161870013056802626824989504055026116347599421518437427454043974244499284557157187599267297878646540021009605058074744893878723848438131494174588904043684229905097487111797547047504191066506034030563768639057787208227681760906086095871130710531239420342556445964451201800516021925203514084535901914349468769095046816783510949475050238816144985847202895337136985298519727171401257221790590250173828514431047612198470637690587260531747533131165247198735324845482983622049387492794157636925033149491581541905338304385429561326999421101212562027429952713404907596846613250169655829636352612614563639837880730677354241958129120537910900909766732737734627502333073597718887795905083088711706932369834951875888634825839240885832134654815423249754814650534960443311600286227404357185153202032198132465595018819301908002513364833606618497237536967673913628188809719975254259115266532393409576405523900065384169689076015836635862459721988894589654123069724352702372587500176706628859181002134117162541052277316650041929868241693387511914011457421264716929837159387363072023308872839804565277248666202898531530777592730380831267042880362411119808805298671708212010161903376121868582124547946897496955991067894623203411618359333760910672105313090152664306533662616603989960691536449880302178978432284638696675445495774046986755355881366116194535666167973065350851877496803240724444449555905821683225214706432651854493907676639531729360896217915875650110737736269121175642538338517451361492532135867612975344932032531978513343027179882909032641709839864122236685871317465044149331805821443966352230098912509390301209410054101540943442242423601940905641248177665586377886180470887519922804330793465320503791034524489170275662964060579041149421728384443548111017548698756307480084618288885704361052680621290917138339844019409863849096594517780814146012965008982510118314809459639111793632139583885036358499040500626523144420559914318515792938846992735574783983271277159462962241749484546894478113383638990269561603287133207095250050362956274536376220754175662476654062644950343509561644423581273606101316436359489929590120425031559048942019086685786612223845430827153728902792045645011422055027207808004295008762412762681244461647922189135474052011243032661595958395489696185804179146481855691829494780964726163691841685570236256416054254645173581730640544047526863905892240641150453826292674799218867263111633634461551254008067176907589774838399523205915776582348209267993761726873175464195133512402648463742289041376907706734632487100209926537218075810622133861233980578323106353435976048087900953545114045018742914190038346304926261641284842093761711471140276341935514568936735279781079806661975521440537281878566046949767067602010517134926106842382451162249320204310156478712318542812866330682302054403155844543768794438396639973844155463183703528684211710070284412050770428026638182008533064496683552609209667185603863864990336731478114387403537882024505888317475507139242416202079091336406253300633578578800934449279322056992342637197594306259072171092189632922403029174212293761080934351907641988613538069989779519606942208893687340500556125007780659241852826043411710877123182422798618436282470425285124427229581554109834312381067526983493053339632022553305190137185790712108380031223990781469875602595731202716220131205682812684953338398855047616199212531294022716815425476282644677319350501213284430828311148874098577762628490682474991567947143077803035764342368347547091853470013423561384835590672288131852072808393864737711516150480803351440660307947331119384401633723401795328302813846335499677294456838359195567423529780031093132074084020561015571494961815760793476398179703187448322378644809119937584803074966302377659491349223123357002839556073064525360206371440933940338801942081722350450016173964731677935297065091231538486821266335691788513700693718804813615865830214959772455831672202717942196649720456301210464652336051234398446053452155640884837774183596933725576036988374520723973028036677588627440318673199081197733013247381273033140832491389784187132678627350242957444942508376499270699625220519168440973358088527026046714435691524120229644942109069301724423040224584482654415936851183451008669990791595369183204310378816396306883515986009292923492687175562905921375552220638210592979651188274177313960479647649379277297058147890559288977424887610880447304222859237911760206402784750079830289337815674585676060381463620181797987808754386268360185393466456258145412759141257252878058650520999326189440860093108195581200025911166741242578609995601234104873583210951898009026956825021058254438074707848405931496491819764955286599046582019387472864119950874005613574734953474760143473587283442547650520899088423663662003010171240106847558067972349425369291653751452848995817728151465050023381264866709531630020733854560394979654012433017339458842421886295761136061179181259231529099109941536463982685001704917226332071801428571182425123886599007623338405445055439601894503097727341435088682230737449879471530321933370148671308114156809523057893331282461671612988961881492733675897419742157379670620726269235861100792678467078880122122487749313115915628114068618795334453634072330632809957144637143096251898476202632594101009783018558065428997313907251395596787716287341590769152703797587267616964052610642055259717632356324029783112295971509387264652762448665541842157491892772603218938294457680302649738580412541137035130131734995366991730550391192631842475566706811850235798938605602390640405107930828537898822117762170060971478208375824585239526207331833604641809854319828484338314391173666723590868299940448096941224633107646692304313269678540172808739706631713363715130373017026526298597455563445700059044533385015730972454207857429759247384908358255852992299670783770904907463752956696447102974730324475046590412770082531537470731151605975984194306366522623788095921330924962842776559292267413685855194652047241808112986891793134009280228258018328618241484587513729633348739950946926334430538094630641994622788630843233280853990186387546182204427821310450924330857301646735997517410197231596347711509537453379360265859518906905196760411055243898841212559198498436302073015740496400725120209241859945498180444747533652181809613574934847554293888160277673939862131321079980255232108722587836212508259694052219544667114342328419275887038412614158108037681154353826252195411542831898610196513380342819022664262963441118322681857994628170617374306743098193967987106757225828521495554635874380027952996408294016180433317448372616030178942315616342124906346923049918442797311824193993776680505571527117552015134758397018369210179910067297178140320471781719177636200746374951582168908966205017507169500505094585844785984648031745038314396373237937135558863447424533389145945411655020296912792532609918631732561970334518690493050094041716883592374137184417356794587359730413073616232949519358089274394437915815969949174642348126296878408986063227290622574219267330285563158979186276009114145623966476160536223902746709054349201669355468753361832427998622641459566862989041373075393731117560142516251726419914710198023876924982392983084675422668168120995336247256892543776623395354171694745123197275316879369545634000338441431537988862650725774536382218393200759560546084748904720975707842078189019421187963999406771730221253141954266558246210302275987046104957953485646335598759146288183995470440285248648492608272656690384191713262166643676582401711882006656916563063934129426817158558787128238837010327126656178555588783040544277971648991220231373154524634175083728851351468038187873568040980907380427083350659535081459631880072890060704291852781233820106061296576021348214012408494523678702322641312767499853899706767439659699678817255505179472691763670383684503354001212367323457060302186671382541117845412045953385510394796690074344153901743602955298273338811615988617374397799714461483479591777801571771811016955158270868345470197429376145803042035344281310307367682369288071596002574508786448713584376966367253887316322905471855998959904248590954578708861333902031085776627048434726796406512238082969193765806521116275924567493860888535289781928973504683892792463352007461355514096584399449291099568099743830364352380402430545210740943082330399761012723124764660202383752597477442016023381243771208073119744467245650620570849610880006875463719020035809696169407753193569338569611504820757979303438123730861146306049224404193159604170825159533850784421687361260216833215235751494473965217185638160725456573838178299409255983037407743588111763169882941439462276082223671352526401301180684570187207034748639679962081515698503203187888658992942739409335631803482599391991245903972524390769089277356763130990587155002894845815078547382418015102698943077949399726207349676224769148376234654467708305494886159287222355227502672289393153043885884799482252747838654025741754090333712848917674845269248881873283462758496801144245867488346610431993770574638574370996114175343139407810293128665931984978650517169400404426580829758123923016613038712867514406706251671560671199439546727620416432394053910594674894866090990408028633172732897612733352037135402801805193192417620235228677326379784864910284414622948195422194236021314221116651375159141548840825470014894532143805690346732637659336636933157778767037694026942643918365998677122653250006180455015367428721366374938055618396204075369269898631790460967841799928489956175024999535192120540767384134250858401517451793218662602326172901989197600993679997367295256163233056652927033841196948997819249002344046874481388460372811533423163580593743331188127279054339657330252587752805574707210483192296201791138937736458568204189546361792156599326733402584611500230797599737462310953773598416484726779301811867860297901011502339737836340799283636152516610667003132900134560893534895437526534989635385033338345361511472086391172437711077149552353049099376701686782783444546408870354033565086492904150805147094881314298002704941326971755379700058300487626325230969483372581750049686158636305171607610168407845509266891376431592837020961532016827033807358852263990155611366748617351058000000592775877714161245754099525603494040679115151061706083557590915167532019394581864314990078405169008432087561431622244572089330704768648898116609477677120682209206889790310930482285847876580271837193399756198209655273025737696888211643786367412126863839084047139903659851751580819282310233897918796887110165693231770726393122624870593957504260715780274387886640854193212092837124879380206529274916205444559806561034330705077779485655154144954734925057105149503537021939192772944481047118581457848803623844098221906145682628050969669984549773665649083014853107613458766837978423560150396244506055406657121612613793927660915292746681092274894436625186480891261959936214852267922525238909980399200996645521030944204458999918739645283650656712556378099130770904106210463124047340485428526156184810318633812830760817373201484094112444019862627203606485905036222573704137896396590195015313731389886275355388265989309979859616314743687936430413504291899586167766119557228337516323425131490222537494462590037473261591836188838694610773249459039987533246803835972549291280027138394097672950089866985209240464821628948804088121805616583438178396272610578902563584825928479281112656501817303423837646687615182635907961686323864335445820054860988012016931398171040392681412747357025915960010801415422601442014350128571876712967932524475049390049020621748086267809844061752356188018604359516349499326879476381000136040772159663964198530803415395550823675289455787369187386733417366682859461882776286813257707513737673980891938599801152353305422368501953203277230965695087195680750591749120979444169111554775567539747854041216888798535385663790060414960821717825348677503579096301661823129104363692372025212138089019891037904999072601670398595664903462245804995438193502779331477352531464273595507808002716247139588984086921510259417985154180379431960646846249099673240605565861849827228209486169711885217400228086611699077629949027056508967911513438047491528004404929073997417561562201374619231193712540244909732008207525500830390742724386531830978019553131869770153525390098928356890739099127737849270595174366945213919485105401955606935350462432253989963833316484062432303260347637750014474969391644354343707770014021585585679237199355204824422489037570311942315176502481438493595988594046069391943972166082650268772780302367103824274839402924937652126185640968448360735215628375720685957014270795554200476030300762749045849606095625348532751752239566347109590771666230770832647882525272413972134499324850228582185005686784384436532172791952259375843637570234320631037045213717997993226962624107890087176973549902281811204411986792212226260171901222348204236888690325037104380138262692510612022088712979060526195701993552951519671008962939810847839918461756261282355373237643047669569069792862831333052369616090881911508943856896693096839034716803300580602884251952872390206092546711363084682508833875612721033312435865433524249918799745151563895067870004451438934308553802619173527445757129047709691136938125787302164165405142184092183151401533631683710186584024838289177885762333893298791808082819058128744114225847804686509414219604999036894930861235249791150670291351529129488199237639083526999594632512659962022201037216748371200002577251137110552012083365878174626308391426208327053611087522963647495838083393952854349248477285823509515728262984198648485467332995533843202234642406026800216341303187491455956130135605123993934171097982571874372258315085216722581304479180055026999698327656402974002219948771296310997317457456964953355917738786203861003658934197538358591612954624657262727521288174847331157400457147216561261587906129207524746461492724286436825504810803680552024685056077151930891366212231714206970393881123588539912327274414827818509994438111759166934908042072129278000035351405026498276488076590774903995002042108829597984419559420151257883425228971856970488080384713488248270246824618489639096624255711926814066254427239594089264385636396539412166661636967453356438843622810837779624994332209436981670800125422493768342200507372475175409173740396880640255164736292823107408845490184141517806704526071212167526320476526808098344101304712042834153668708036150561680039795071429153246252321826342119508568479250037065119118412978144666230880084803724149432593436837669807465728228380274483357117714117623935939797692712837101899075147747432284661828052426984064794398735544213049389412653562962790937780318567535584092110434664870157575454797863232650612616244681133917306110222478498308605013498942032723269108712643778347449187746001792901782554983856861896221164956864261771294678520379893487179976252782994252084144067575730085697242668843640320282856300780977681327632525495277468317726709660386938611771071279363306008410194669696113568926421821145119694727362923688547528522371455315604328081174113254415849242453607488284789181448076833682464950963536080520130623949871865252772663852259972129377803173770411901313279702799777766211810930117192191070134833924880759049690418808858399086597714161508486174917722777805641542494761889137083396599264168564666390336223014766172113243244087170686957715418149490392375946425543661461113663617525138606350376864903230853528366625589551164535657070570406042611923692047417050780180955803921828391895773290038088536440519051747513664741690039117594541760474742512103151378475337322549157668954813752729861345274946973246333102028689266564184584132875908617342074831823371304052518266557155254440435873930014348503921375779383449145731706164627584097836548104952011378894622502639787289659102196184926343974760272719393812723665919563086626750893754821009964803735632512699735257273539609996409608466196588515031767354744917353082638302943870716738435368767288568811154008874207559206746175359928100701620237873698101271126193237205823096622905641934337545593211800144950520669854798688971772509368044625045139302927525292220179776004144328276315928084059387904578578571926135902039551346510051727238642607813933938188862078563796652686129254760193598580922159116846252299649988919214743422625152763164501024939035713405704381176095930259221963249056750495894714050476426397107044992846977859780760325654228348676126449557074646554038963489890455448046806340007060116207144242826495761514111132891897833707528071262503395790549337510436979181495887323186585389003109010531936440875571735194573187273163736781250499328963748376575772162147265345231770618203174485033727830365909870253550768458880386681092624211451267939709886652197376655130344497200076438454595064851929668892014401138732189160138772532282920170491168896894150559490337997289318544695811891299718850252824073660442375853712245429127717602054051085605737630523729134884443101180077766910413374268025730279711701303328958839236821289234850067397956166122614350312960366089242492881265759969389422426388548889431581167798882874557192092002576721976180339238843106555699885484791319350048382384417907417198873219826090704243729404415885178060862697297333397767778610957594596266552139999706487407541348668633662054916410364094852485883061150515130665958277387025117942716462833897625830061205267515150463975945598401575557297490081774685880708562856451344861904207964352002616299991753727699239565460450408600346701948391491555490344306665629420236145905159289080998415124669675655809264692609385388870530823431352685512738640133783933542354854202104666145692865742296959914045649572169739890916784544310056505807551465537637891389129918503290740463204420014324440714841600401180761832348450479112736186706647402725179681013735939706284983868842314735072109159135571325054819679921305253175427944916968162181404760787153476607990464617123917922255026755004391192068805570041324288614205486658301127740827406611484500897783398874715468734083600037131191562015781255313629109337914677187738621215582367177980847392840787398906544517457425612569467322273674819395557994701360057121571258402376009978979106749990299690970563447811120541323588941291240652037872954956836826422715504537724981810636141344460914416498415461549331575385407291745889125078628989221617611607162660599725167520268404666955373113792578958547978919307230019176121591091513315085518840702676019991630527714045061243216476094832517255736240541692154099991088350001940508409065795228282932684116169269723015815196508546436704081124791410968189133512200280173711383932150235952959917876687839857341769468316554886246061127618164669014727838435595400112476923834782224156780579254705269047454252910497231620638068103642503620193990842622680835662788167437507616435730400729445944700851918694434893557211800710810560867242650382975893908702432850620278838765635801233411587306296727591500074625487257339720327228866480188673682666913518999713608003671045807641302895227973086244291320158005068297472342177890376614580872277557177776919846276316038613278663455514648460786861280364800169349687210654260813938205071104731775131665292252879088281489476952340729328912892973555961118282091881792559383857286759873391186738684115444429021024287139665529390470010337494474194460825072779299664388376961424069560093449640747733363806449246967286755640688259047783797993863212254758869307355862592538497667566764290967010450915674432885938703363797220069460362411651948819407483086750602956060944971786399764084604324430555337201821919046703577851378936440307630062787703454392198982049145182909001638439273035920467522595544167093509167103836261843105265390770536626076682348083630269859787613934134071490770571340624681513617083690582980894409526170876484315419131858665928746265844353431187035059900300644289462801330459266099839385297188754916172196205953737717969859488401931806209641126540311057254088862472109629403978141268722114288822252461191206869774361308046576602256212297165377482066972339419483863809299949798575737143424672731947606412709203772383542765086042713344791511475785773733863985244300757297320634863674140237492887878724952239723257918565694923766960321362714355411000645731645779703271024035648105696410732368235115747973592290290666283233563526049523582803883247014076470033980679358006715736980734108795149904556595630523261900325170491572232656987104679867592040866510394118371972089470003668472513240396239063477322965782583694951571932194526049767845229792633490830714451317847428727363722430523288417591491346574224486459812477520050729509079349894705567599536973507464455266884379630207981062942505856035179566280753486358063341417809472614798099291315560314891762978022837889083904493834984357813903060219755080903083106800440233707366767322330621573042251611887124543936893974166531053520544531291073541595330893561076259184192574367795194743608857831807784963481716566758181908277895647294750723629754690842401820815618095843072216529073008614852329319745349333795604449424982918247114282392162261236701357550485080674167154242367503529651787371281045422705743486909930113174689842409765314715179993356397717875187840950099787549541813870527708200029606412099784652124554940097933422720078902842756881245597990772591483484127847636733727473414360540879565996666367538351341667990298587849836080337787210841500065200084072021875093567125553284694284582011110636909310047176264150264578989592026515251684103150518229697144700799697358877827633583765639342661099888360172156168962026689878449222067403106619714375575431119119055598316199373307619481476534512587916768871667126910795652009859488848711544523397409228208105113427223019164384830381503089781303278033498194363689693494580900834224170407663278163659838308257758230491316259831198978904168659487880537924927417449885476813101729522907887132235783467938420403150159258151295755489488345556883720224310178841196592941178168886009931429220027404503293368983414785112774542553696401477616472709678763924048383317500362650967018176878881571469969928851018419872968046201270460654614997234245075503002466980698621562233549293148013789002790122822404691383511412446288534072777249538449669967700605522823173534889569043579725607045149294836074985765562785750130564042354771471147833430562807255031881496925819521337465276771852039885159915976840978884028579787766133290236015148208573798954894632561004890726462339728233944405189608954843538821690557971212737011568495130977828711283256842898574771182863395150281300675112973990202363301285951570088270240529778635912087752176607851103982843393521223476108369188327715386551192447801825723400542375916298027262321472240961751395958980740611186320790963462536411374705150532819588054917662398864339632234314061931743673521143634971731958530998949458204401423983463266210541968002582973530410979811330580128413100826473357723777516039854988430711629739956083581727709077230792061933717505700231466602425836593627094495509206486280120608237908877997324854076805737762742448396062232152784071177835247753953062144593484716158997482249534517849592270216335732898850211626699712537543717618066270347920950357173296283404331415746294836662779415396372168638787692050626484459443967827130137236504948815398260698523126998035654790483077131143313845999213338231113095311865671633731132897837292991963937140216228431997044802307590380337934433497106036227095099726991579846124026790755792100139201963546650907743987965061097013867678503373081225721493406348553956083427087635446873248357462866190139611261352202579958506279016539837216414783401483332932601379992629596561510994370138751739287492017362925339268349056538320658091508833849740625307988928159785478476313869463148979789361260774730158939394144634301978591659291983043054971392690742407897379088971303018977287887537998062256926303756570352248984359031551544789839914813927031202677579500360924098424448987443483941170503824978336634917282609225549028085918085149326531267738008472159526889377561422639336557132745240620466204116235218004853352375615473614651079228210175212600790632097917006969820227472832957984935302989167021334565849203483522287196747015701814760782756544494793312831687644543129090476069613797845121679825978003960213411101432935156778891686120693424695033257401432419652489261270258175189724619267099989736123990800555994333496875411261783378970311392686212773353308102043637204693063051148383149761322586562900615941319547214875790994308112526515136945490391335300447665048737442283135562842272563539127640446312767213795309995316083373041608403606696573460155408228856085899576206151831518310923378240775450432758282671678418403474239213444589557520888652770747424106329624420878507498207534963504487888055258060494194528316841850861327841038605926811351294622407120916912362264390088298984519755695230744363845827897941279923515872788727285800780763824949120164793957547647360361732088789475180565117223442699741415319072863769518724256762119695216565941880112115462222723011256594120880732913637768821481030114699720777433167452769431613920640375136843764209271829111122998193969735339532764017959357353878042476640355302808137423217095011117136611113286263898771183178690345988486409871898004371091654274788899744189208969911716302869194127062704695067435821936607064128868426544372492733707327592947080321784515727825453852150043928659328553714027586937587660808064588390296451582652759571556207648887732768797346831389326849123111390329560993305644685978697077154558045831390578204932557153240210748834309973315945112940509593484382290801050440918939890380143934591067474394795906994630769910893720974200427763467529239546439124884542306322738510569770838669780673048086201433179607625694857437208434872663795550316010007388181044280960891465733153132658383728261586708365962001035252800417874124650944930830897237004685976383222094346350163686276593197636638246052415330406639186116804531019903784098010894763285592767165141166748737450808775252390623323681823933325945807580177239359354968908778484736006713658427067620823327344052918741825505650429395084852601169469589080531772049882247266937349030385444340847025625555032873707786953616987409063566130276970616149064983812775984983948742683582043360050471724265651159748550941626392478194048451345923208172476440638129202656473701838904496313406882091998288053142998433832148139646666476533777984162491217333044364000751071020081582881240733131858836023853098373137335798016709209415082722654344663068276801489220151122992788934058376604640145735064530124617804103893969195257167588236431081079819248523564865328801718731829649595731818617411983094827212442000169588632772605637921898854966077807454354374949950885801270128919715653147177284015053740433148175576777224465238980109655509092484405499450210412613354797114423562193154010413000902961057403569574028915614982277586728018192906268958654704185304401290661633331030417870772256158094065833415524323863976257501389818825156209280541423214464254383028711692986311963705119738029630132229168423563386444602126745177661803221881900404032214227016429614178974791147760041585164014211483667169107150330215262397661024487949708574352622122998689581098665836199943465596379827419961080768762371531806673424981038792107240527716809079820454124611881626429367236643284752183032086806710207165317242539619159784307889641422142988554362598045965041839717373856956698513299591130039165212006984999211737652703173139917358484146353164706998502168455692893742544638854665930429709911345259556567035900763229745964990842752163736406017602901988969947403853013975531943271928636752467049479897939888499922743499786666671291347263203904717335245016403605906218908169784657185837838599126351124222750311196445593221753828452077550886299317142658352991739505765470488071249814253162492339564246831146503148715597591609969164409303727378099641170442450130359235107074187790519387260027128510663278521641085425921175802424759791630289489223428419655673293354767936452660943146892793311635630505350153446742951699536454603134888336830172413471518691056327683105610013207690391311914279764645735064989835365694399231823458239035512936626264067917810371017826935683476903728254571422692727808661682449446750695774538813696736997339998515903948896274474428843623060789623951525606065564693796157891521585418889810790924795969897957254358684882615056312315253311729010949288793482020566306697389492602384972290309633753279308103452035055957335028689073837994576026530378214131346308448695727615792709789465049960191428357918432977026244925367471955555834008465081389746483079952324057171142818432385016853665604342304094949046373890666034607073259088306437517911098094447817156261446008694465540058807208550757003812593261473047021513818694498231627728941908345169150319473375666813684651202402305904881761267154530180222080419944496322972294432389644638085779137589205684904761195893043955030470427197963147093931830911130575370378250580093430899907487661933295328481280023517505429025724882067452756220936118003780105583180617780849701079152482776192902354411583915805025031257692072910216544112034644300831967623132832379816539424853020735058422040419813736372825081925394388322384826896972199499316249053735800826547759494911690582251818711301033998237812431303460147838069725097874437093368920427468129946383490075164731149162231325992454247971461756281259753997181053605299185818935012879163361995420077932622531227253949343958605862570266859546674575731930737560236468187942322872521985963520720219376033177346032709488256206735134056593041504044820318586023983127040524168612195116475552509589811518163025371927431117879771153787042344514289854227165628061732142260001151326881606971886114004683804862948425256058830514499297630195916507319798953610828275990096956161102040516997266531446961663326025291521005062898981496025044101392323533992428296294488688260787244934831946662746169519909887198805673765889222319711792654722310390001908309685412115323110680077942920856781667318265904020775760729666897863392751720013345446187130567884580369301950615495790186841210370289281400237798970524674378075524524738175682812061848462268829392040743461949043054810572153488623768803849134441934225757178330395950053270221949268491342729666211944250690998285366281752160977877137715343175447011025026246078772003440872079124287403569188568027367213489092912563673800641354266148048627145612595477237675942545193687503771883648419415417524583252490483939800527755715564172881974909653263605996430294293147364762591140495411937209075772620640142945487289139178434215149579877728607995807274657004338146962911139695475302595754152683703023550762042246434081462188718773661134123723491123281848173575428197874129279669398585627902539566718110935684189396507629456060127914168153209296570238209251774978507161222299593490528180064128474939351045978402493347783940903187802978807920551777061078536696399069387881855250677879331545507886759592080626832927605289266639281822281618099563149557924007312850181765887984880813990407469099084598609017720898752380634983017254408120415678329295039673583372707053324243768157252254104149875977241501719904945606177931565485850110689942269157461483049359256048995465099953792551330147400664091133102940987595142474536449727198204935735111450238887777169176064878744369395068074411358822471982650486139183097118450007918157773769785513155635841854758314176365693343230468202651447389999161104872546084311587749954333076412157363661224643228781081814087389277308777636861872477264733652546515477451569505278548197006348492262690638816962770534327250127055883979191236863199390427891853650103177628454883444551925723704049197554254838767730337390431212077776762038802819814628950752758087305090287458978538967772366560793937669728665397790851937799835877977551223001991123151125335899478225088369058295738275072135770496148002942897358326133845300921860326594862668010328434927917703428520108781825087172107546383984125475878140009507118523066034347782406027378605527988985821135162403367458222648102090485982114800578140070621331309893835930553753683280127026604055981946828219940615279147995926436234331227410558101911283580176125133549413921995488013984861627891622063399637942290452470585916305865648499614899604642593868836127615701063343535465174801537276157269438429911288400926157206191781174424625221378580787240445153494370834850934881399707813309074300897017938294816337934846372952731845741746379933670230380852671617482581570989322786355033838935194142930593106924622198081080442474892609655958625789461035761503716685519293200776943060086327318658979105223700139882428079367212885629114820935255363663921557444671643855527599364229873414812465173583741147472589463239803019675544914707151481470858910278655489422333966421188565454274366518627428731051210841869728599940176983967271392882572003896648490415741754653887570560864607680490280208473308926164755412939121490913531623385206218609215129897561782638874842483603013396420350552860989012190500161351407636297912445242629452079377292355424888131049728830971399999993176688420006457748673139206157949752787765430979279360723745435466389738142076371404884304630634150424721244582042431795870497901938583334306254196041525101728442234082286800114676155629573788281564952280840082989532667482732186681312331867460915196572095908213037185742060383245758766234854374638030068296196870368428944605755093058688430693501457600659666131091763909962488005593171492912972456629993606189642177849958414630783131819261013086122280561837411302275916906405509682538988508275767152519333419860352442809562459552258492373408426124415610341321472565128936905524451431199126517386138702698091580050658189316207623958332030476536231551283591947077445508811697966237618902121043727017723351125934591833530183304973601522528402946798399891057106405086137244609623542331424439647887642347204315223201185588691376323896007710797346398928751264979800635371860918069347575395878267555901349180284089124228579845630398685033655038173102198706075361041447233173002763743827616505585452560959308123652215900158400345026886081666556793950762633820683060559046083905554651019835600563778045601217590688697267785534445042267381536997049673140757337805770990129890109627601290993908367956672320067949927166551304159486359097145072672466677828735781892996896408992789932633302423305827622164944726902484670546865442934723662787494600818937134304993972797392162867280932404465529229721209476929889129235319438608177425330227594360481051499943955895827057833651913774070957558949740958644490084407081078794043106762634939189780491692553832336285921632758070595606482632116014473901217594896905374654056939022650043687951911634864868056538996281004216929193344798966698778301335496941690078875227165291534035018074101751262192647190697756994600136344829932669992625345220420637360698501321587045152042874576582270492955596348936479912566176616877482988340946651598642491663343369599661321331160633896687730097491688216529420074426147763875089982945857749551496047437642889133337736695385962935636876298942975183427726187954213722467751780191611240977018473206268661364286662367440737908274404968121296915837182788420576634203315330079761784299567742023336918232521520181923384249379078560051016372292432450075307804626139764184911836939956725515549053281998614108826660709064284108284356080698331757231454329960958632967998888579494862733001155749691062862702616408929005061567793297225968093474949532530556300087834756430424437362286917613372724362512651923046286044177782036793463910325984147243500677142367249109100127342262740661032938642105436326725965897428015474437515317145561230688023363506128460959525791059497029906406966572165808281872007034905682539988877425402163049153036786393244467800646228311777358026613509025715124975957220951520559110328184949663307729872978211958116257391460932277181810093852206573402049381773798717071350208880829722817841119331788971361608250999453158790428698205777711145067768617750814144486684886682616626314571413512109667507913502852612382946702756673204188636316253513440173964723267249778335965796205640479165475662133388437376737752282310823934002137250214320428776053285642609081221819731708985640302662380017542208015104311037084302568797069846499019284963623665805170082146641532389346475473159162182946176900337841207993802555347597160623083257672866270389423771457429286285568914809432522863920115739772889229542637375500406402584205609017883797247436301814911089664636406226764556727095957490998413124378232534815147393315682688619844017909056500355280956924114742983982749033689040443743776742447121147069614507156611117780719426347216989627034331927206955877649124408546257349482825208577745688984610025423049775546339169188090229211587794984927811028396455773529451723107831251601597641135898993016651398732430682293420270384869409002741597648124472969724879015743025148150463458760460316234267040535721267661476603680802591526229421076291719813535106759218991588265112431717869508236709043374591606188697224462082561110748301471863856850514043550811588032151693795670238760615572590473711319404684074485699887786541934342557687411622652287623300077458339211844354586444516908670191135642180265261541474238262898161035512378291229045010873027580317098175346586053469782378809035387278522149165273058547193697511474020204201864068867649011950858139164892538488800606583299556335369739958012268152798254492755916394923155520148407497025299887730453035886862238109886994411317132776039502916166700855594332191755865015173133328753119460655675483241044204436722509058751158847324373833462399673838619310641956953195246691623273567571357783238836808418710108363589722011797582007732213916456711934557955480473307615676143151120578708295133029704021436402944161578151832850276254270102934079435963846987568359062631475839641061244169663449004177089324625230530017902557341646699577891241704516129480279427011640647567257869477350487139870925291634635297519871575937620407645729118225964905369029241490063192483769330802239089764986463136787459453113825829307372234278073352783123053208854935274997144140672833574439526073705110944270581853549251351536063204852245916475651335595718166505436869348769497358528202429621097690149345328939650779652717415574498654751312187123819442821687814229966315780739716999047732673085293116766255313688726266722219741598220038619746854299233034331205088586461168290927767615350053131628820606598906064732676104026884647083971686909493204342547246215904053110368352147923218967205583370296411374243785983244068783397977786030159331189639957647154527551597708341973169486906249616069418981004403535128713333642991869201329997291761793018324022528441875999521705936223129826010094347436991813123779099298699092083967979924314808990080184116663597922296810352159106730444942733449166647675612860612199726250255779121267044339265068286876460664688610147886213840089981530261974201449567760411280245900709284305778650490893450901220318496294543643069725703488942622634251447273847522765317755889759850873283044921096330168837713044725657190829833738478968460781875602991902798394053551416423942576200775696321643202279842831215670941036008470631552898667323032110533619410395265982994912467881383674815744041602399833666140630557263953044728890809635925861772241551153395744898343122485020501889790977824384277822293985126746360396379671908002824277929920352607375101316650356254987976036443856734319849950917216394431798705462490997975852271994447870900539664789257759194412388380478543917324395502827974375157460482042860939001061497237652081471339089354943597754970012466397340733505106922090626931721491011152927162958962561394776324130932241504790003140036868744946766682320195944331123582363138747064765661041001759347292725947310840586201560976606442752678732799321101065324165229455562223183679941728449110540303303007472264177793065648027242502085780076664241593696016454650332050562791770800913795677559854069868920395093436340771932882871369265283114506722905410162241950449727258243783258643608134140162984100122351454133989841552980016995125502854680904842655277348822537742752470937988474506319983265906955774145538162882556866848440560473368107602567701034908204249495437364483293758323427860997571835550815620861416684221982647123916508614587179929132821339403791252131901575829699407648818640507680355534344332056620228039876205195586898433703009197660451636259895762353156564399318439266069254698653678914635289229676107186141101874674838662889779526036243120448778379821071015226818988876202913931878116943717392297381306658936974594602890435520791168579870638349575709535182119788510782681946142293218182537254753014713573539355225837926031477450360413238760447419211922824150743915691825726905795457984789033536429830922342976017604505626839141470245619269995308461490300160615597059807655819857864495326731632880866320638718869463356525603964317295194128315958578456206367718814151497517253190077849618829426736311216278287130959709845276440917822472781391349415128991000949512994908453013166739451774922917133204010939658972795660524943548596783116703770721012375400576442624463927037449183871534911805889075214596354756702562230300146799943913125844319486271702933877520078271709770520935811879575837984651726329786446560810718650332019801663235107321930936688606300528180280550295948711868424512049162425366586488279446266673513669679100263312422027511397545764987605367128538957583268770325288158278351181895936477745996191237454977492864018133027148759495688894229489560527634474474728790030127970927000577694120481886564013116589040330318391795159046482238141015609406075704489827285075668835855479705626536455097200220378155186918293689301832187487883506959149521927037287177505374350139183597640175833716963982494139952685427291897425297177223411946497744316149214148209463984393147483886645667140690538792027627791215517220816565477634383789457884354964981302334012281779330246114876283196103068680162689390440726809143711510135521876998395952242132520854272882049136449162860246636950163038102827485685470764890549103649697114895926119822743391573838586691100307024740127950823322385933431293353145083134302322148697646594676640186926563903319155658878722489833130613574200194166251216363279359507281400733378789281274628715819789629157566368683586374227154387993341655748704576289586459135261996336966360158879768974952548130767690613888596993893603208100754592309262744909377097943522253196357206244392487011721353311137734886276559045776484205331012914770629230800601510670312034786007310701979263750026271290945503614939206813528168565874012956711112923521357769709650859227065436132492441021615816405331014385079242925593212727806046967415375531536662221861287366128803821250100928421146275449532289742487680324415615279758306956594762689345024422506953550988231948253820260637860611814477638149538292667775167629639891588673014817073328720758971337020185666204247307212183361573539765123972478231866444244439920350855562531169398997313826028517491598474229896430927100282837316378806309609860927478810319254565883687741591057578330203889012289498579210930708652843966674782953630756280592761039597669306034986807013064708013130297868000274847369246799033789344233438938291375483942462688284578627681114255271019692110597512621780407615525154039994243501455162667318659112562473758429669320431373213560342276300970468680402894800904253576222701524549917385006528762820828449472328977462214065684862977291345480663160344698259473577756305161556149487821328470322429489287948669443396329446179766828458291011810070347351794878011792239881491443978751347416248757390956131537204137004552168039868837140816023357994441560694108878726382130203389710037999510163359707666133943786454999202489751232498511053555325536972603768068404310303698476241032751446805984827498335181644093644074261063834308132868218387069016702453706462158212408012050542809081168213175594139955295404633785059615268116660070670751168099931032327219170522352786865272531237445653984237148071312699080214981427109079845649623947931036325039327156902144853639395355709963926134137063552836940798556916758619267618610222069108820950031759062555587990441481343936167786985275424290842639523993715657554517489627852006225600156678952659120906383183733624238599883438538246942596642958332419075293422749951260343242336744188339430673028766543573852695414513693331050265357683228467660965203688702797397783703507037179625457424457540511632177245547980810670980551758509522198876192028130775171159275150821763117287682859364356657612568114511941704004074901284138983731425343967182668121874023334103122532790642753458607039927708231669897546550786465553586415952874112679449804750801075495712707214699352833759540606895772497915775300689129623093200957614869223108910285486100544728091014653095029765001088973805056241113002771627497879606680109858536225503750364595856078819153056824082321057347619774473755435743631182770478556782075473579174512845281289292330196036200219684407510774099106725298902052208674761419865040231024915288288794909975168437028398845368847825205588960859789486199122722724421002654252422736191705601121984818772651668509852998652084745317353755918235912710577773662055074094820648594081815936947902641524291841224215788912081919299618827756099858603566363590692524699141846785263887774414791654570233714794731702674994601342164258606675957781997187177174419900380894934635513319337614471585726030768965059911911364174122848293608350106957990590010556078315437482328687309730501118996444126520849077460221767898821084675909397343078595196830860621613386885708807781679573376041055744483288222323664778071123967732784712236445013837985497918474878178884631611702428454869727327382990395156330036892851021022584031510497637309377918591242367458023873834151501747850993165223310783761589787603541568465511243286662779528617187021986687227292836154676908686544165933530621703037910486983730769675638935152947050213275444699160318570518566410715048741039655311800328610587807806408242273214247480622931327200997910193924550821938190185273983662182931963025171334533608122144253415905128152062178405556212515988393457992369179425616070271275653058030120653918615115696718118602248279774570491534667497769198703178848682987753200799929361656227696389600568825302177499805100071096252396645456284883279675289376827252898476956376827667969895885428443925877318142324051542226246334483164878846892170739569974966504614876708037908112728395306257010464131810491183848284720003953442943691874184469272476571611895157372963212056186980344094804523229301513786612274046148381082759235117435509823076142384448924662560807448715479943329247330348274229419282399076979847113081473396574225950314861834684159353973649163583813129702451147347425643288085430116281607121217011953438401679412678241519177063448303448386748339869895538833786237358868375355810214007324525261399769740302002017735937234533933924296046376740229999171732956414513584961154858727151106799797569572119179673125888012335949214521267307685077846602102572631180678071239941658504144443519162182068327074764744354752436350217713872916824981415374479921303526320566427402584542446478297252983763980370733139337346854719076214676155475869445899194079404772861131259244703581045846657378328562479190131465025218732081185977272136012498056435456272517447720722904223688503062130908410866299244818755487873723144649774978537547386867082092651469601810020953918994090584635929271095288791827205531350231211272389589101235291500237356245898696063962235818582350555781393630406754328986046474480819713219966887577253260073690758010257109321518867142884969667449892108788158254419622850310213702196194318775797121574020768184811043889444983310275935126631974084473788503195422516386562241316970493699475148974262050588623493599682356671879651710526696360811316229607292935723686697747970439141781048599125817227778631440794599453740573693242540048907387847615048986584750036471730781444404273566948132501019117173216987848763284388579271801945262005928601325652587666963010898070065878428936802553951360485023110673142238807882932955684324872467769270854229478469054890630746439373153140944713418714095204673390871066270070295902951993344591891719147730199629645260648267080892477493955472406855811308946725453656302387478684836005389863988744348687907509404521742211755251387904885139206014658844562166231178715472302482980364785136265962855026292120961088863369754768763062562805763249936035338848829865312368389688546235160776943548093371491745512650364919063542832942084055532083853782050100287182249502591763499572217198518163368051251627189918839233419768244956936345701972092309191811281161577772280377119709748691374225925389406236727492227497008101954596576286080797737262563926840434732833847856169852567095892447252782138377387126306527077795013428447523942955383870620717760573019501040037180338731347962215258374823287391488340199511705928223539352260599769318038756314601236075503606883413663576974012305195315690250236225617932175789709107987116150563807638109663325801269362009415012637739935450624084013940768970550105056373068818579016040375040309093830918235449260133552510080994727946904973729379443993850702723063402602692830977505720150053421231816825093285516342734507629594628627553707806052881272833781335572463503248244587713285475820509374660248720062424752904089154136161242074059561401750627474427845125871860921667604915782720059496292554291425365060479536020572305552911941436117013403815523460060321861542737030807728486538776331026648050287864379708795998368832093637996884514205817541576752315668410900995685252566564161048426631079484400005849411493174853393480378708263377528062961472404350493616047874332799352269446584878302046868827541541222441115695692301955319190402761634194654865722368824529702872069965095339954869961176318195042866841131991738440235456298287391811340692790177693711518817189894376290332650095896507748750861095129901660379063936089036621437400138360263418081310852518047028151749041329199916927650831297834523592162566119113976950374095555803147803474014668913249719251157360966696428342183739268268187065079357451282741215093009789193780506013041526445859288635166058354557339126807223094789956706041739282404902895157344899148934059576315179056517975276631199490539889020482869302949787152366555271709580420606308989222235960557438048862707071840512634765662670307902578425546537305026233131844993807878703201086707608440811021399393535669559080372042417935411874005687464397961590281894765411388840650875459989200321864790896939656686965208200577146578548385305293822613131457347094055159234843661872644018654185488262378490106362431288132705684347646799209752245316303380196408456452880680452452445145150238963931302458439285669570402444844588915936113114217360569509438951026638353925707465909619688626941148908562395262015989882083532082605264381177500307938083282822764734068761743837853200625251046348850827297665945864201279730993089597605368951573097771157589406441316545853419134141255684261457740416512881203765727715247198018052902756746788717299947103687669533572662681214869197529574422592670403499532519709014824593961691254189922250817831275567718909737893555593722785080952886751076647766812813543536322825696769663461510875615486869761708711913967955072165680829165103010977753833195805942744705748045750432195644167491478952103390626219177270008587008492646046593842701730357311729181364161626340827407903397373271537074630517477437574397114153622017193674349952262249839186267297442415328598062875687379355644451537012759914797653609607598773967428335661934269923337673554239472867029720432215633297168057599170375952788623260927573584819596066820209557773807085731671729220551341086832958744497521293413025743289221069673854657375818462805653411333788042612947884801002979613978816928891652353381461889649527193860868166509958604764693662490041275959402723531684712860589083897662122037397530507157800899951457435213662306124128722162502250667967716753783304972015063271340658579754677862711445143023663742041595369126726499313581047437910491709371854863917464404060878887303627778217029359136100755363382574205300295804892892015108984582910122171306239159986752090173782619952995672916994470362958190897330679742876324315633139834418363321098780545227964170784759678388180239049487212868971191248953049654224855653848021463857314408192951566628609720035463051381392364344324128609539893370547009071958515626614247686814365227189647765628501145031337708233207449357034676881647033235882348938177239901810236198402232981414244653056736815667838873042378866280130598348755648236350016632900543906310144033957594450459688817053509864248692157072569123634758738744621758498767940783614364087499504406030945978189473964713920733569611686509704677482024338359509224340296548644669246614001437823385035374004333915511462364752072528663758886048573170976201424085920765011001338718942496944058473841535488494576841797686283370520881106280502867741691504019196435651165373651593921985721204844575756594063722523386639277985446488697683872199029157233248724622230858202227563630412083854545419417669594620140616172959434111842098443527149848395876156028206908467717329469155527242330008284163826711007822727196474171411150279752371816867904442561499874340503870161039497365292877379924580970322216286340038497347820310456729346784178886235501403365299396608019871881040812137855437570580081750459630781975301575437917919393349325031010481192947254464002733952123642040454345030121523155651860735560819131166600432676799012936960096180783090458779758950255380267779119007489501740740780724147454487500865636526591548541749548725779204806248548382375082737175380166331003030572695770173559758370419906607262006379069733838527093020058735255986768108658294464753040575058379469351723072175276864936808815513238075319112887169740486274585272608069253382955928531541478257802509134014216277236748538575598170543719650161999223886850390410572428624303362330608338602701847260112999042482814377826803366362730055239362252560440718655906226651427797157057976695757750275495976871578122728538884787878101440949901818029758062329115548472055090742538326009837344259715832689620521467924123147296857441065508374556810652011929471266493616016246855682503597797229722637631639024255242383794814480940290465861357447725395371680421660678237781460328739790859752645102260200371651067877333459730999325072330318620486557291907194877109607184987623848153631778709467167601186370939137024311929462713085465248699723483020952967184396970874624491702250396095481915992606031937367920577313944346766671373768391056560688886345235557700009199951983353156087691025259092691089330061948066162574167138884664940823935033360705350488708757879731203340228482716595021382888377345544364451936480216723292175804235454855604640709699603781137180524749954812783621635651005466198476080538733218772833902001787181283713485099101193992890757328196441665283593463078984029136004535317842211604103740426400076582655078490748137212997973920887552921674181991976758147977130123235175245883348056937154222167124849806485072240685900667597511277380058323213537008022196993793188274184997605201138453874897977558702004327674936604832805229293159775105838927083129112860129429538315880521677872165057403037781594625585396660805319035537756525200911537686701208162243724158308588849342887922559197011521077333490655250916884295435733364307502901490921573391197275920586847928399726526448580105920958041543627698694994700284143766779707614490509764407170685248296695132127163698576287301191535761916670238370042948073058291195989918110696546500878299379613622895692380898071267588169943915027534866079127242351234006053833387913123614592604690151933233052323514919185187177110469998102229664554708541634092935551146508035836503547762119632949199941458772662600835413643758919644507202711441728925262052090328259312606910090024486023231592478279051187435038355359745129098514572106052087694900483611269101232461998898599781057908670098317725297509549268966154958048539596221471404460221622174064699884478709716597850017489891693613971125105075641785038270652704979770830074592925228032486980885471917408475999475937829690880560086005297590548973652550284631209207302899945307524939325387579380555993720463654492118375759259285771950607818682986046855679833198378630402658539506105953122235032225612863929864055106532946248142766516540509107622304423132338608462119002421315571370783635275177637722469102939545499341934273034734002658987481855007243264170072472896663181392497974368413293492073248649875345808791715832310099446505269225943396537757314289009811552426297708303967527872534760734457211799319563394323513731373770138479093674533673460515426846563521806621169572707210593683648562351512930382944412353133600942098347814142972374365787119118874293665161309920690894485298923256694661430201216193852579951913380384118619389236779986849324697884365462269971561102701997426361659295005674940653398737403388147358242532247588926743853780989861781580624998576996188959842158594482403127951197983350675578966074513766089331775025950633016657035097213435222523769481316683082929206391231137507920401887113895984242762810487479944576336815527736723734053995508859132241569452093639461192774609816629071955633330318964102729304482767637745475383940050775630105121375747589465748631705282692920447978930053699441549462911636979987422492703036780074995244600192527942904514054340496225220706772417414459012775849304384419169471824463589453593939083078952337880389543389035922298899744450629858915449681343902883083036091668384000369513293418160373080423757387071732456232293042410972018986045300317389962055357812854441828235506179232044089987741290618997312871542163821646827798635420026912281461597428051200519291779221033655399002489156374867036994361212019933170581508488045808028330564633328855952579588523340476137457945343567682090928879394222868047782548540434679046450577120349850427778626677068882104274754870852584183136555944412062419547780690567308818788094917703897813991066241291085460711296497496153293428818024111921482687989241787135358182176206406195177133405387049401681725712098604187636798291552622105328200847751673639162249420636920161016181878790171633393490222203157046495892915660111820780330597206469937095868562677292011043899000595745476574496285533084757766241675081822590306828727506987848825721700842158530486925831755822546831090486918277974113104892913716636781297555208343192149972077464494451139109535345138892669390354333726791851497108660607134923291714295782078096333111287299809422043134285312220555323047463532150324722039448068214184338026557787770430331339161242766255908014112672276397388071350929480165724265737803671936579619809240561779486152286221760799742806107862460685336064007083970711459274233437403727374852715884964504424203882700398592687187852482128673983534052892896389464893913128980111952245710916440143930474257190335079824129951176476948514131815082633586738869611425332384486413591845479351274064862733801762071501040633426243838619595191775834034308744212950952117519032259537189931950085566945149777061647752985379631778891628098182218479349358008726791798662095282388987638060902226721285348319317045372543422203574608825006836342018290002438468262630397781184871919736891571620781247225680258617614464823051172199573937198922224913041130838543246836293647746548096269491164956078096858308067229759168342890235158799056981740382471217480288150528150397764681006610862782811944654397622813320444772383226041640248238079647539645234625830725711759598848750796298979125520953369584198936877186947126604497187997327373491893245015932454186219729259564329455131350200955933765328647961863866281243009219557257762179639452769432817806571834202994652057017940680873886674438425503608032048606912448291709248147871986757574183815474446428294900234455804196458392947387640106311165582157683137313616226299832871546025519709507682873277232202944388929510321863133652639124594630414634894189731759013884725807128078097605150396040438837482610857549018164123605387489307603403229036959369649294694514257814291520595362718560672586504305103697587264140892791251250124632319375128949864169520197579746546343305725667121795171573631230824010692740119579021377145447117765294956028831540629720568988985876668611843835192607978937730977209706337209396934119442547029441483290598332895331873776755945766108995194504218768229605485089899089345368546035256900847967231897238969758673145644525198692540725327642641175380155641631001265923456419031861689199827378706297400815135014671146021231597482856224308710885989919055173857907826645815080230822120619972302491057809957896245297610422626848085371677637152355186958833733482602206856530204771860522523250165381506144416476815013957511012869624651214126280894145157569047479175182531915536425104817394584964358913800961834858608864398844212985777268710547912355123750283373020162473095947612271389882054366161295662458325342675520655118332156465963273125982331622965896095534354956141718624126781871894688666519268360515436722888070314889636835645390280620132789955595931232734809909849512032725806140560574435631010200473400823323345313206255739646087515472452885399417192316954006643478902839731229608214486523986267637178428140354859462054305122891398770515106964824290505167086688126723120149692447099193452230520327443007676497315894771714368966384622628668978716909261187812553861271252123088640758669843061533370817548460101541493356623977493620521811176341758421690263254811682023109616919219202286968245072150597182115028834103131575642194014578878727971764110656283779608671347117780322440251253735987500965135217548470611148517998024718823732173032798625560841813447558810835371750906208384956755303849939389235710199636513419249256875462707073406590960574554641251446206542917207318641479494627005420571420246216311504229196471301880607050652699144511601429363159652782454334709454185941611144118579099688672078549979474686778714088366683040431470694803964226218711236110921749284785436034805594327579516473619058262806661886719108024163651804902451788960132554938649289030243202812567099164367382512988234865150269257448093686855504681983217536990204726999829785045007841001173738549486770025206884212953225981655245375140364250030177638168811985544862498383682810301740112048851299177471854619174979370637733425893120298959218457070497398730814851415100426903508492066736877991443254620974439962238587272173859021748093817449429311903298996733204995012076088462959915772853232042176846338563113164478755605505381440490233796049294967369807711838316497303944722725636665753994229170307133260072920720131067078570215314886181824658576453935514087246458126880542460403341383381714520227684422747494782820981139839933978232051280997699499414147039227887346295900565425739046000573445552868823251626884483017084084141703800569198012653021969251563956835481180370248600160332416531355644702166965153761053036823532159916011980536156243744308048915490876145930632807054397737580173517852984050026391851658883457796096215577053517442885279755739267142679886594528783974422559679523314850167493992082457278902018489897335568632517494207046137257246355116863924102654476207075220512235305569238425422624690828200752025938301926178159943902391321567369881273725912131260531307760620221294498293618775697846324170866259834476470680425146012568687944244551577910882167023846785616126726429984072494384601025198671891738508891137853986847619575119874056033680193415877052764968095215865014384514298766607234765848651512911032427948808166871017285736003529700770099266867338305120173374983162463189339020271127804589754245018149049002845063442425037860695339693977206978606737037290567436210685843432814648400011204149556683635468312838837668593168411671683947909993172185682718573847286539575445674413952990383223613992898530886185388351326456719293286601527819908125367719850125932989944617794141102567294787965690363235396360176317717043773507766879411929585867771049681115422163202234770556017412046843879933592670338923451782769178962785076545158483566701678572708095623942517978018102880056073443364205111448249566286118795044027232047894869579167017112948945893404607746719909160553338456175776562448181039818443220489696783070500044947023950014271488780257274319534994070014655798486696694058999476765396450372101369772051372485000935180102865799393917599308077239783570331207435008190024293497340652905541009708540375695115084685918031570315568149727088626291228253739031079218123478547246625904527114303408313456113671970897712919480965424086797448704828737752564432332112912549926739244767566661254078915486077795101461185142458943589592884712126063677478829250546728811959990331597058962217104303932335382127275525648133029274163512805432250868766744852351803831775650910663330618800284465427671284802543478046300617094578127247319971235166711955229491650333983086906532798472546444796043349133509129826470120065283143571696125905173620333386754874512516058214867513018196725553741763379266784031929722157990077960283055264034242078431815897194961972482396640874990674738616671975492710796600128245770023998114418830666508099393199907535195716458813853713939200483651929762430263315328198224182677334844135103647952522124560374147701001271830038251557348407138321287944435395010589780557081173146777336708543139508100471988599432245686887729981540008497194863452129812529330760628745251310555541972011015004595012762012754476893619843184442077123308122584356711675318081989944139703069067339844917874558092541926972821608812983234938472791270257854649116768746028280794588812649606973400832682439188937429126836807580850356581087986663300705021761582182525155795974766146578843688827148986802546533684287168758459842588442757468978609901185018282639745288735277908617543426159677595054771047043239206687343396235768832216513018385393923393478806820246945485800936144031343944789992606120228583519707536664831159620224857470864960926977975035476214569970580538315984882441577585811642204978049738623363050713060135098470494506707968965950076949616467109245614162728245733413700143436377278573362254578245737244380575723012736210647128261416799186757648911265776373443950617695208857076894486148922080642026680646610144526604524754823648544536288449824771509370055246723161804296596281783818743464903694255654507227550962801673025684203144315894340246549100313078907290217587743387822991662905807832240766944483447147689221159997355950858704157498330199462855466366137854658691985491791689801671055071418082695421881274656212020219713764955230819259347793607813230198578629279334834753722104911740986769263917210518024088821037062707035406249875616764695831751185041718239826463647582855791314837289678733190549390190342590825829957465520349671638585386910067755583099607372656526296852719171793589007684200755519488021033992456426893605243224011337995167987429374759850338207877708645388272432693196392466990124548351993268771390529366242991613629237090500063004670371021299371752986085917851644811661351893689575139669232419715002586020240423466977877327772781747404359811610107063426347512229896998743271886195350677878263719641309033530698191797440121508985668022740587144595910565735602996036812128281298537831717594799296895754926734501533024793568237743138506587078073274285703930806834655014559296129413409563904081921338396991542331442921143135572890015473264109510316617082890052373830507990550749129713392253143376195123037265514032295476323900329043462473451369442742425790246731767480196104375530582184800308886709755803002039447985922595121101429004500748202393051418707158205817043156434616133952086218423856570150207608879829661377788296110455381099038892957487196052161648636719586961957006838353380434181642509472180085996176829531976863158823244729869246000629863506492386739257825380279003443657924762723248835847274668935271673044703313958408461557156328534228619458535622344035359028086922201969969006843220032771519713916275284197508236651534896955979362751357418779258553235166156383822224812645003639651842582732452546432542981635927092759379391768727398417626061363403825947730802176367390332316925076208146502230478486331093682100744751802524451776219830289912743195549258674716898213132458546322202270379370131490407074603433326585528059478666762245654476022525669294729699336957147570426621182719124194522517564151947705286898179509259984240573774213864623344167265802555532369432283368963055713782563573971086472690760723867414248742251585580345328305550532513123284815611400340209908692984107496221811565189706847830847342794760083998624491374057644770509069509877482595285442455039728349455401332353929014849402500071893156266190083772197084881091590335906294829891722285221943444227272212366597485387667200714673106236869985960083283102939687841878369043614701257673836738196395164335731057355456852657166823492893402182113462217271097701495252447573398854626931644714363842966256002029838487422171247426927604462673677056207514692252449154297345393188811408608896250688869670287585405021173385749708879896916090256771870158528758603444842459813903353315306860286169348634493501419312276497754814769101897355159080600261070803140209015461958675485906762243887798245564940705000930480675393838626930040530219529665008898856551022360994196587330887364764763279405368774482970941135817071754470233371606634586397223965902505875436620060810013665566343874858765014695519175786712338510023011975274004259083747993947832914253600365340724695227011342792442426526228446917338968434297314241913770803637907823264031022637321208398663162814425755789106869200042651741705094586288545256619888646008669243050446748169514403670617444977951089949369158457085747085769929994114986044191500543289113230110979533482996982065216218490606145588915075233695979363076917239844999310225364781543425860718095952830033480748178653330191882445458856747808392875639488468288070214239773585105995276636740905808436003621909470111816728184928797055514275142448037547754368397357758389939813950718954059201718834729804845943767497393606651842589206686621245280162708307499443916236527681743193120251210563212424879764808225990973875919319098203001261088984918116198880025916398962304544099615391703641426328319273165065246761488018762158824164546833703436055685900655980460130019623244778748602915257648196050128527735992356101421176428271270359976731947223811658354288678718817252503929616744010133410218083573758597806854893080073591204632677169085263414132866510006236481032203515505080711309141204623548019444278988370281522125353284540368536408036445065149268303862295307277969095368947592130440485568190592451155821553431125782230500117212040295528523951933655451311919690867866838740173431390992777841476837291382315035043043828342807626547967970992210113759681829463065376932187339997321930856150041264268406529970954108482226556548387118999583170934698751935855261223222354003066499439021616869369595383418691039673811303948895818169643047723871369558395630339603544735495941031694377103187729628622749310437078351883230069946680674267233291211400954290336100091267465728953841956930220413625656313400510077076838889317092760892174527085599883003039246263574198833817324423141598664264226902449448069871620505992547127643243051361325707810913116271337857219773188114652432240494586252768928533757693724693116219382334579254075284969434912615853406002476136153441226958756531240859443452313333763717045786205232336688485350297682083768755459495474218853722547369956714624695178325315301978642548939448678203229125270979508831508424309211802393577220959879332999456520425795369210913569935802684906716009869203291296721224310128285617727859639757522742494986835432044138792555735848766465277667146892941114873085271275204538428658652624163489997911790262858706965535769176932934797679981744403577746736013280649121524331959570818946428059699402200974164615525977924282078324062475598029222476722680004947306321595148458490630605444935544115114472195082650723085059796647172215106266561511155169074114126868092935138769951760838898466255946739943608730235043980687467621257670753814070096909341199165590554415707662177732620366849796682638131292521524188350295583998232312590268135852603392303843688426674960087344553172815010315335289365950935902039669327720540737957676900768914295199501658964379645704773802853383483390731170925649217206243207197737344299122875972848206421355183102748047280742845308179471591575535198264672712029603441330242859708048765974997762449681659831996380623555643794342298351926670196851833326525282701151569709925076343541959433163955895428239803764272781657393060192076372157903012611504244518067662627538281198886216260105817943102604039090923757437030747936687384344057442350135821244222507490648809598421988116476714624094455982549434628045543563454041858132362740470861931057413953356028941497993846880288677377621897100306671629388539433431274343692069753031776717262656309121904823166252867895189929821433010735352081814698940916048469871727854736787518592094053934971510849756149051333193483574365231411098732233092087216050133372567273848657515733479143157288371910302860772839813390663560864137495583831089806238110647096902692568621943832243306494994541509052813931202755806514782865644439059105486179364406080673674440273432425531906945380359231729947146990883042314242342652858823757106542202862276486578816449326077811724600150379128507627917333679343761063617834227399341075234308431223807874043535997696253862862434774784053468994805925115130266042997577347449557987755719132347267207246148206359094809886555772027364610056130365025602038144652946921003161559870864823042426327272839740904404613739384045730797708133163318310315243118421859439610947166126667049599482079210267242770659136200389185286868364595339447292005725906184343588077896801463617182588717219775882889965779588132160040685341296346332794209056726921078853139427390938217618075843215741527762544993276054081343860109996511502720084119091004240710716188070082101630305982514109028617710608055479719920905147198659761168527162708602195268244153944820723858212950176228298729751635667022463650463805628385326232392563827948830069139518994736685026695916976785138214285171147574822908649293963687146853349281310353211011497655229170582333363544239548322361020657053113984954611399848275817782767122213350028511746514315986822220909394738974507204026950783201626373221697596038104724703650309340916550448256090918369408929897680976246817530226754267904915452672314345138171285119093842689789681416565399541636657557679393937540923027697084447340523562213534604831780451337452217562323389646722762350768826110050450967504421446732780430905615948110069201442710081307385130756046586475512559286247777729766806920609232935402538947000793744018846875911165290913568487504962236658470431536880554970398831781101794990374280977620302245652162983269852500668969877653315615842889325187726038120688386803773393883850302901465252987991931803284406733482118306259937910850577126506480306663281893045161684144418154958379729188152124401057917750226477618712888302078646583978768235407366170646073817260102453718054185896130773713157629142386479856404237028392114127361384878317991077829902920888144694421932620955782009923724965327670160177742990058094046757618187626311130817526420411429658743216875530183388203335848971776875305337151368577882780899909186324015550524612019735378135573410389297965863889871383548973807139321909395278162739904669446408074441536671016752979457240673603469361931054895264869513288600648418326656442149666048847345058856623774709433001336099533051757951665426768330356912093475990475258292202665454472343347471469220086841861722646261339082046510161618894163638443888752685797991240347729867390851080285948830484778121069605835940831265872703507452351793614670362447597907100440094638441966256197988494782164807995425845611328273095276487824528880313646712961479967313169037708937284186762987074699131537716269022423936445996821981605802192944407623083846716913412864266485162135871325271244157721865271476769622170113251539699917944149743660184935364792197408331185010258159922998818600973757387235670229341307853897196114332373639031162737303495070421964452568969264522938470842811799251076216865273910246191382286938804119382546404554232131329587463765536676959953697282075614878708426420860140455375314094755308111779118208428668651797515148757111444179877406823411350556541259489343653731667525521158112927115756733660328849826198347752578863938764409472347298419677332326149816623982106172160999348315376942730460674688549146102398548535107851560037726982235054696673400793853840717128393626280868333831656433208136242361993726282501665963586014090745622579092390550119676198431052654496513911977912897878499182667887126207881363286060414738311798432280157776044416536985298309943565332454304217593308111153919217097005538800660581737196846478236567984470636149318269940548019581638626884953424616783509399184362420298317772751242134246280692400734021523399839327784115478653726842500269779240387944425831863855819798629317730093271623408767046200407114581858002551413446016032000929810960092941713396043822132206392622516196634648770559356152001173593989912836427795321194545180124520756256309168684462913187545506949168782391696239662400849483002657525922856646878362823518373238971914577167429955774032851695242526840313615749004685244163506250470051140603537323627869889483290834250042640129007310714215255147972107605809824295942644626962607654871049166840877120035427404021585787616466728815180209003797788141902390593613712731436736831326269620063402971487097410994695168768600341164916867021671208238572557319835147689020303495864877210466037785608165082548390341869396553309316576542755480965929006321676931376056773022736320760492433354666303377214964428778964425341676234253969836437291561358887791802187025519199030870511466517098817444589555606786928243062210939165120577140314651920026645044168641621982402942716724437163393758238483229477891610310144393931162761190487658352866616643595656067549706838698831402573547344728583402672329665817583164821711091740632181102610029716796773403139323721411663943727353211827655671978135529470352369442672236067681595555321010844162953630446834897038079028153850229955183009290909619804551121562061021766046293384108150703674504009965665664378489010651532730058736579153033937999805010107035116995551831495247496026295542102865399588771069517096269552177903610658961626399275737760223573102368573309514450400457492559051774711419545074305458704128765626281658327134606226696132902163520683774387043901024048034755973544333888758167685174318360480890828015816788468179663965601115279557427979489383238994883555443757443405258825771188188455316682155628884878283069947648217580063551396234999186754914284811869275121282642930001541375638231421478428047131908673198502632191165366333686396944600732280965579135896030976574095467432507579728669773135612685655759499717559788497190440922248269092353527714333293518753923264048921569659027358176556239093322985566825852790866413888898115560896579516023416397493409263102941769282581110134566281112815438504941573949782092146054495444177248962636060576300817938478692639365255127708181383308047711657967001724476861599643695560298001593216260212577296984385928261292538395009199725001857339447643346584538069345734761634721404633731184935601284787823996532583682191241782790321150604313628149983244094589555354356436199113311061198349356043874920913997780800686561801927781538001985311944528824093326039184035145934548741503694492956901801504330466201752058984393940272282497511968661264252088248055815961510387862042122173292367017790849762912780543341054136903438906109438389133784356638873085500861509864766773958164192635881567553878581868856513821457976060352664790669652543787704128350769290572216078560985390939692278501146950503747518481142881465411505926035943977284039079563448563410491768821655368331017299191494067607841838989589697379239212107169795330449826271408500561075409543792854763556183881299372636604106810694173875687840201050093147072288669110992521298429682992398296117553246705683791185065387817563046107046784770705779559704047185251061512133361625172235219659932689722024887275706814753284982127367592191437643678905335647701671994766108221925210896771382326503939058643585583142109785619637381988008213226254882134548657016565641388376636439531585155142932810540174451973044657007621843213939821358413658147653965004298190319004194037456954250981204010678170953961111402088299152425326651867052284999691092255805581655721085485977837086400262469225376671113301252958619587027950355964754588528486474109120040181945422820847436048733785157225588901617809637046269031791705393936880262154855686932291494530515590241416307102090547732731675031408886703396751372834405861824103983673278276955256968089293886239575746031417117642804203191282548865770754402870474034629277192117049468540347525309584768210610181293375348230302737552779751469174965942925472624737190534191078927132129859916890843229979776956159030425726032596176817630139993737353402304435004844419789073824428378707752970584553813281456699126544131928367590114215248114502819912409040237523648997302663956719874149600251827410831975700335095160001461810337414973007024853757048193160119206058896318904759717886390379073994934208023179598395165335209959727864298075205579398761209568305790924653616199561564579599239931158527916804979755940638340914707944754602993392250946348608177253478350787899404796508594695590395831644612353947280189485884466485059700983820061903621663187874021976696377929615857148867061846687228583471972308928828145575613189487868305801115969348371351569948023673495204801959112288066835345627723813779937321891056268250600570318182189796762598497449955327349343474047864156939855176973638674711191438987056812492078916249666716390836333466978712828809410133960004897033482553547816696425667473685287610276595418756740458616927309012540240994038041274159507983390341134887556386893332284262016488172742455930048568093755170459816727531526686015125310869634793710992403963246803836728995681807937283684869510177578137899663638314216107270712905506800449099438828656341361225950320874106623994488095729369094230050001479563388703024684271731132117304953502872329147389534525571921209966199571076386765625473587388132641557480733775944946903764080081543181936186644590519005175244022668140579803871004056055768738222375318001445403994135243964581880522660630137870182599019732286790025670795635100714457035137719988584354479105569297223674206416234677225708693904047184110576246368350859398990034822724564121198576826475592446572702885838047701738306286202258626179451258017672953253229644571917590130505293233943148107265500485231571582878251733970563730299240900513181221470692006387736133305690796303015633371188306969390815827596570807925555813113889024475145404664228073133346557129960190585847847476246899741206583730730661485250210169266350838117978150614810796155433511136479125031618356073380759962161968029574795553384734123981287495159842607328677322588878920590078347207163192680435228336418247030462180316642195978631310684648690405998422383308134733972661206916901250444092037552778016272431141610452182072452067402808300724334291109091875151728638853217777416469001160691179456426473828298172845271379301473690692747986640589349300183767303345448908736774801278642737494399073596029791065650733092117253849444758953977952557056603678655856370413109569369159624412194379455878646159507158297991957178579628113729838296575515680606920456077030852951119771493743837734214291375698394461778907568048992042608588679719641891711969958690696231612647329918532618028521980764105878977514318527868544809125756011477855809044752213005763894737296578989499969900670074815373223146605232620113487063638744322182384800517198471696963933794336608903233457241557797084655339632452431282661420915033870780138733630462749886668120601217486604516596992380038231498362088766569834928136344025046179778055719982737811795869587026093600982216263152306622267760762692763074471792932302565215678005282014199613423938753103357199948509282205453073006431794383901076813304305241519206196819304697008895768432734069453235387528317027606304811997816925928124943946649730263821367310997214245157823617085837108322638465235701215316174466025570993778617639727335951997462038764846083099810865495081960397285297739046756585259566514612975148160421970106958913971946008511936548713688464846678059276845347609094146875309532070680268389951109579843486150005290519372410549219269589173164075795755844345703750518251405702811888970046259357102877487588622062400355853312118904208591461556210931459430804263009665622040749865560479289775091400693686009587411726129868719993410725624736804854276439238171886528547575500381944853872654720404096939406476916154138569342579513514628543212758167573494216457427075905793700785828013930356600449969352395344750127951295431887193526589543589708588483636165315244257884665013693965581316487827547645868049118131751604159932080970835151367833255687106387323435993592853865751489018627088624998012808584261929017515144861857993507296368939907822298320651173378478653849014655184211165673948367158179053058306671437104360382583887222270011141618046321022526575927348503600435921404240189475646454450266812407610190819903432567193229218317751432830053496529351108687365959459366856039412954362320444188517346984702660264196412257870566040265475793425194718508244049511667562006576933152936596501381916468134664538739100373017360087883306090672010322780191751504034756782130797174634969151110215957167782355075054501908562377322550801219456667066555606495354616957446685787737286765624727319931136996598714376785201924815688413940000119239721980890573609931513167728647723868999048256491177806136465836324836095602383772730784493149366079892466327409545296325170526227357523228274384831433635063593718046825306903047966341694320058469246845138128944042899595558189304195084409869756508447979529421199955157685360122995888858340259398202568066941542858874608427502646227323103567437705893344782136540207749730277316554467010165488548432868011406354621801809412622980774936680230448291330787662656283931845554680683150084056205498702767197709624639985935942597912563676551924527616300884242338823045798183767836296043852390117586303719792597360082975122395422103029941302487853097843567820775585263878095228467096889327418453309189393549033107655975780012982000549362620908805821571561723920080689569449583674619166261753220975857118184999793729548630609018410586941064418611758453848374306361378287073017398747000242232565493051105334693845966326326879436884357242408570116599489794989797416466532308313433168244523417009374289869078755908149230343717316337106806827903408641668999019796729011198480008406451586835292795806104073863253311210323938586191322578967217356112365390422037342932685821537085558572754641263354691096661598967813901640945974805246237872430580977112521806068141615817419444074908647603484428422139986099420856507236726788685361570732918880363883382205248091879138099477624625880127886825592701666095809336450815067265218944204908614901901488226835126494214905812001682427549180855677031477353120199687259291942467258352535571044985804983861941419097706891143900023116437003572197534128938011540986914717237160939432091577987395843663205298274383602024332033874433897350372652130469895770947517081289090656259446013047659218186823513816051014747394744068013186129173653955240971071390254938866548517274874484731321498846673279671968105611835244373972329712720016381738254101392160926877839873532755202624629922103435189961227230775835770387928042752469609552928827083525397447572125777889296009565379010694721798112789719655884689888608650549278912239338976499788468546254052075567992509247025310880898186799808018114598910281522293643929915248116215948359869945923191066561979595085693930504522606148066401131908091516745336092142914370998061368944873971742109608959159690692461000568712243537216703923838917109514818175809283265245465981181257364333046796856467417310369596921849218158933800124636354609031505729503833266524006056838246221416725673674427796512051593100089727632914229839237033842141998954905785591661453206890205948138408044249258032219280418988530041278732533496083839453859043490395833369200343801093984451693001818366310996969779667674265464351309407804963087461230345620101348764762673659787357767634752513201669665733503418551643674286063373917280804333837387729141475784653273679346864840157590712746669644313417744227302823255935291909010296531733813163386084728417637603876352299898799399803667095607864722647528230315117880279073456120606048309199924082241184358726289581947544330662144837011013318424844928707321807129702774826233392996706469961235449248868486107753517701470388286422091861455756286182171439487579443168463084524122935917975979060881318642893665318866706649668272498664001830998600136435211542202206472545872747745518086051227093714121247078386286528494762590917178141211298190847090144345726000101696611992474721231175187612696043088582543669676561125842539743414846182818149755184470690232003451071945148062998514732772714331524426015466397538367275319575252173057517869217087562217015777345598686397900052932045059271975363070495520416335098666201774881451948063035045849752932254972674595161689655056787632137729473562865080904061725464831245627682012565072207008056375657270553877870242114610662025923031695432988405568312235052063755550157754763820333442322762795471259797506574552344182896623842781320066282077617490498843282917888234238709675095075936245495649068046459818252544460349097875256805446168030424613947849091884637185065509925091494390516415298343230800132455274168857139647446137535787700620842865449871588425320201090518231634941647678063796561292307349922289188474114600354320474594473377795476444201895269278019141472123266752653120720198816533664381611643827844459909834351320725761844512618783694929055489923645061400289321517933190444377201752710350788052297628434635299886578755963444910330696695053339024177406244584955143437110164291609719786554281396539823105413374160822359066428070264950831655626480451416738023341208889804839677685377500914439375264149954720192872176656180858649613405754346969350738043167708127923566850445096758027593848328652882459926678381164302461184974682912387688738018405823543527869404335268136782638052735956730101857930890333197806873372960690690930008598083182925709406032384438554898301595607964684628770058905400853085276378261027065411397472638670628468126744444531820439179688714524251658858858498268224048422472551773872946779386241332221327687403537719466470612878909340150846208777802086443386259371692178391449173552359702324918877655234523005531690103878908388115135393481599407953365650847851223447959074884707538883911436068581603290977174070850449271506893093842002710353149895211189740117907861396897721132337400689719326076501170784292322815612738409975802908794031910608428766711211358770324635148551232202734222144197632742142912676882431710826652944900937737534870846209408635002614324798134188188133794096214140298926112699434945705836367448723605492930828192804763322739523971761650832273764661761845221766320462742518314923235385266316997798183457318447325100083652271703707143909781403594606995118064701449600645469726172447923481636177389021036676137263438536720987070137300668139960953846217880032016277438514288566142875378842247460282147497638693275496795271980102110158744869041774274602051472594091659406684864408737318325090951705935444210141252082500069260654196962675901818782483047720296703446108176568403426530546914599901756426347626387092263884588303529779647537491850804837873320363068978503347371377135132707023806174424328419173588271286804716525684894774032090021962227098636035833927818321712432310854700213952685453500312344689115057341291219384485693877704802239287047914540613703254033240160571045757770390198540353543826048936657000334102620058541531469343457249060587976520645012791042875132108695577900498457589794379910514592676690339574586646676588326393035883438602703647446373094736021190642680115500843621897120259994712719855382030731940307399364372434796114181175884166461815794402904044289428725989872842591268738697869112252618066309567151238059012060677126098517989430980548139213713024980871066778868831021641406384797020688273417566460219560807825798376952570246578689408804993697769524254592635848782636829268828338853358958507213766734146226675165904778613697614466560899011167504345761844045551184741277650640728328804374469161280950124586556351387805242712116718890720455798505084520728180927688919753137999525349003438626635480122836523257246841810904512892999088970719876504293691295603900151069371670307652780197641280213813508658812183047331444247599188630836272785792766590008529134184256357920118766826857583046523186953128801646611050826848265445761722448550826352233976797569230455684828457033038284427472723462048891588192248188788710166817564634610360131486436851139161838543316254307835200240208629385672231839366981047717533197425960905227932365300000658042027012255394510822418795136526201616119615137475518143360866343946617053804620075832339642933668856854195709249349923352828436194105222166768167907665275234079921696833932691100955448301187534372781090652607965669359990495386591936002585754813140663999718451106193896309018593992329243662021828872204366717173161474203996642339507147269179780762714493766113149868504713830274555800823081180118715977182670310392050833205347697527390895041848171171179735388248438455538592566328426917120744996369479291069808131001607854031299723790867370126564969810588550865481485597432397194274483951709474701583310960370206756925023309847902978980384297033885884500910299401858955615673253587468420854860950661042142744434129055648261594186214267965265285446383917036154883082461025047245909164166098512397813649933039920414173478422000378735454688474788310678471606457609507876824024175870867703849200848745939350056696642833197786895734804179824890755926410061935273212928541625391082665243081390777758737067810206111954847393550717110943257389135914466451601789893436402620326862542462786814147727190686252931918129058706534064763480033268672163014328843181488926153948967564435556664117816635804225584484362263955455388219595978600538013689204063509041105931951625346222907464733457391871469107196721643155961910091499703404070477480811192236614149275542122463391232345278531519924107187334283477205964525409065102959978137111191712342114375673287601115530250055625089626723789468390928387570927871266510036914874132464682811151059921617733961727499131052409901732060278170313969138261029560623470619364997421563195083972632753079759267264110214636614839972268419040793189913141741021839450418443657126691296646547382048153786906941985846644623469126659730609794825160753553551033952913614521146956388925754224273683067297579065164999057895033188250002078734998185923946521757599189102766034189860470052422638255110431889239493265245743355923408026467939916844304187289411502067487308915559359541756138622324977637430225568270171256494823878892590008714571460545869586927680940399453504280708993932037665142965684974972498310046343172140905902282800283735318650146757550572470097663454356817429984463366984446941223480157391177810669439313976755112021095318880713605982442398026045260562876506668367002554299837633497146961199322223541262426146865667589275420570794545224117798370197868387031211850684499886193396549577912662065793480422808350654323360701393144632395156584249755907526574834403122482810661110323759090996847218017602743832818698737404366402149611419767947323643597393147257645543266166022016879609887756606166959833605970827847885453882328309665606336948687708438181312401871357731044457194941433865148818312968106205729608136139226056743227886408867518453983867635649384120699633077121261199813807837469474994735852401116075548795670117020209570420271409030504795999807715605684684040069278779199545359688509134350237536986918488315294183770141818339746966598207853684047528969687473911428863026973801972561551998593543756176333875968295342311829457963181740376443022143309834059180281864303729191389333172827160960250090188841780728999890414231562303290573299056748234736732130157566050733103816143153339304793644993709954998500459228378963021772768723977493761801243364667032573057677237741797709868897278454900971256551556044616352357010114496867141260217087908335683746460970542833140971075187946172375837056795138316197358342561410328289930935264129908453012134022833673717775316094795012301629099663384461216146069783396378900387134152348224565707073096316046513925670377454304726094096722048115774146454315222305162106703859007112017362124998155692783457913072699968573990203175174914282627972770973354707173926673848452962605424597178252430122513359808856028243446715443439405407316665638546658412715632668702034547486950939890935129083621418924879127893085460547200280434569411899903523276435402795877180030558596055615849706026096993936732959029131156995142273828696804054728778046123786300815547451540684175372544895439915264965409714738237166429851498423164999874958608069050564633839122773287706970004800995166064262713384624369385399588052717476140351385702683519215616521195057726047147594468020650611175172867634903443559757302636058871258968131506379961620055919638673519477766334120124110313244408936595542946673701148809797054588742293096485021727042627610962941291155364390742654929548482325978890954701018058371003522205177121211719678820111866852303917478548804286258689939744175174082029624975580782651311581897549420918486791001123347492371040412518677383014796591088115922498769551253712874564360949771102066866001443721318440348864813861825944553011193226080844739211735061543956191670831037337380226647085295270691085479388193142399896555793466108479147759532013394601831894002165814819379584099851603919353228466564289556745733368854534135591569720145592195405615048930183403932189141137243368196307392591762471378879885716083076189826366448816069268182265081970205432004466689877069705091435617821393754943855060889948551163630289773008604492710904522718298038325560434072201340527657549728964611890840101386228696023597896307706269226440922220408351071445810569853965292767655239533422083743794354357594010761731041168188484683704863636988500929193671655002484822342428716457927920148552616884679650232416571987288205887040762308568569816849916575890005697502273258326356131248068637518283166720956903498023145592175103602261750859280263419761620733122468617215205677904828383053579244675123840281475895832326623925641083212983349635555985467986231413579843405994590875574578722810504031868638338629850189704068134602777076859574574794282455652470843883420221539421577115652543468533862176941140490434833327624521556275008569046201421094842762655632409416978103243258670436081527899668507744604436782271555629554931202155722991684571136273207841516133568699092447374670940856676606099833395750046041290194593763538798677693372977918509678870276948182150238641114963668883025755881934773824115872003379461721198379160877870618204842518326894396635724691353599572696532131100924414043551376009076762472319863635453787195567069776302707416705327773700434560546579449697474647009874725324240464519849110581585368749121450394855631708123225442455172183326264598267242058439716129956182289525465863618140492114597872470748059296483272740352551005174465883349054642605372442348601411976770670643764272181532938560868052371957860028850596061931065738972056419600011950948543523271138921789505626786908399973835298993288370508750101221649997308924434173739732454051384536944083250256293223327969334426743717195442747447935953127704453404955050608192269099768426767462378425315173670415993267932752692446319803483036728079757760529320879448485626728864125520245989368533473603886951753240515937331367950424842799825328940515194568690832385889507373595310842870093247495231586565719698124616083866109931826486927096528868086715818830069448183095743503183928324184208371865360097859716740456776459179297420979623129500017081828902368015193970109844056364843916818888250110239639929015087344199510971425489774581827988654904594261078686439004018007835758108655282901347934366184968362773870418904650530696594452867137273698985995217615046289324792828476401236640151869810075760176753242905735021200277193520643229467889718366128379297196824901741039225453047173035996176619734110621137089322231174592117901394448704713986926617105069882229784048889929207454253380133866378704437207987202602478421345130915227578376594006955448778516832206827654372506221655327663145206823256956137757987779649108163150986160287526183482104932465207573425598269180937608671271013837601341931348687090249240160930445270705753386718144099930414188324204610967065971164682050501491091324766176743200566211270206178935605371571893748529492389498205020823689764185526084361754049945345963317412412518064398494808475863735210257456978509539782732514230187079071785232135933423995881980019429452419392799756180659083091927011759772755391409172063040992886903914188217043552490096222393464954872709191688624281974865121127722824679239964304003276992551132830883538688765868294809819338101511253789756825331701520629560551557339304489668312676957597038126896702448732034055365316453370877710993478806160026059274575859594600244886795044015031207816174829876488061902216993892508386027858778117317335416810885721668746436696345133567831474908389749011737808362145273156921657389387175956554124164178598760063700552049617550222464332631708232096762807655996017086066498299652439883571721640594981785095963541661407585760002916827352858626972886063996660704921256569513243470785843684434474428950594493414347139036372822274747452533191838069744479158531729406826420098417541846974038559407740234500417704573948476855831553194161538874405672136240413257380906813962040641144474389828746696766923255121126578691739364994633223121863986818885501500908390534934261388348945338091853200169204583641024519194676861141164296864186414807472940946705745584798732012988411333614091410310639819248005198652825797585700915763445123571291176867715590119808843733521420051208903239574200516478643365807146624766172568256058542193960501432863197959006058928179513832431194804330189305556033174864374391036856090074056641090063750035751066512915344322359012089041532026097440391533010776232115713836287723036928064701197708829424613076360352647629127365927038155213856577094898430496651291783324525923807382709431882954711981262600735279282171326379041032909035310465307272339839268532547106264465191168054626804300132404273490761485200687524399328384957345202909029686886834715930057098259396640871569706133092457275540001227514500548256358904388245190854094151249033584247529541202847195475048472390501909512982845400058977080462832276894517839263536884482533944173086898946249184422800435107913945354088496594240423221196123546784382150420442396814582997001728596357502216841535184356787532882372968083894141076472751081724884897068550637251432947642543166702566524681301180747622764699459419370798603053287440598329098102609371917510038149676734358879906357222411402598512929147957175981777263342081330744223520618668667985320866415882791529547407792171070487751544367411936690699891265538840775439830539217022706456014012555198672114746304732743439328905070290193540167334110565197305643188417818291375739810242257546859123266984478632314383634038896104523368321978267556304076703715772963906116497987162391276623826730488128864495670736690123304208856516863444391610840255966066104133522137002235383171496322148998718369172189339028923232756838021168789226374508319394667993073975641983253306472644131006543874562393917970860874817797310192975373761336380529321722495414622383244165371994702574798350682501400144341472996762920556816372170120878089441753645785113572654313504702902111769175594588508608424432191573994192984726225879626697742916749285012883975201108416725252122401615794730170020552182494040546360012074300161805327977676464730954947057012572055232920692602258061671798916097444676964835832244207068612431952698446557239131331643162011836666296243929790196829136773774129778878050280171248185825834582726176939454277973128017935460254405104452470214239100083032579322464474229134900733727054653275323936678947971349340160888686161355647860491885682051907213463419723623731670412685348631744286138704871015223230298448490973784644405510435201611130964023364705211290929316812930146226899879190774593434748754660616490713659293272077905045543863938468725659340044584817582934371658875739356299053410439488973663718359724555311730387695124080159584377120566004172203481047537279109850195174931021870512667034331007017866617638863377943577987932663136933990032781733699394623025550310916352661593319633370419584745732570735396588755660367960188228393036903736525380646368943302805782254940273167586959448019267242948814080456313268562982782206351382790177227371964742494249315347947679744196746497776948044237205758390215759123972461260820872364763765577789902138410560089360409740368052431686702905194712674349445808234441709926723840257439740621088275509390346202013538109099934715778013771876790710102534549070186654679996674608445226854419384120653731052116664978246869571025687945524917257854864791233179052981635566083501856815370955705986360672384065306201945454837313535138079610224558088322959153226240506479094570368904974937770972308190539509235048411227315334654855808826071345237258254657022310133800763418031676591848382113802625036233518123470663813342274129107562432622974640924183905999981032491371309103835344577111753216177883530863157687172579939516886152222227589435338647495119557852436119454244408863252246810554061455408245928609629883280779913806998804913378962376915033673184898076196245214798102786247233432932272635489598382828531711035408785393465077772126040151495656662289405562492272959887190432751082136881976635518262335716222542147301922538231459953120989346787425140251278243631298544027808836290691309051214711391357371041576241296827491499770664503334241719914011620374429855344176204834304983176540390470447566551068590295892898140093007239424417807414149313956449941263737080181224584684513538338282434137435750891265054174885316676685358565223226181195441449717070768428039897291838968640773517269995606522166399920168563474508683008436040543776246064430641569295594021399190510449317735531552042504803027868548308819771462845181111941477383930442609070406147662240292438830195337500056561392004772873396715369762965253607892425720023842420057736397431360327395659886124942231087350485057706139401721886423419590906027083428099887878417370917039099605084847242498239096429965430995835798641768434442804554604799913080970187890435853280031909267362837727711000621629711378610009081362578475169455596492964873283499644644727125589405350495013787080036076600023252160868248697375739025516908263133296711529101577073789358858357655107825741908164396237693067216243850958964694783393546009744205799167688839227081336810746926377944934621183360996694867442167803759393561275803765821787736092043127829617458211208512009843995663761256604964118687981040627534454145455004105529919970010600433054988997372098991809491592926792161811584885994843206582967633791495791451947667913513656969922993400095433790285014614163546294447155129372732009834259811288228392644412520618578455252301637854714326425680695660248871245332277654971407487339445315864704044495300629705317673296694520782816676512367821094690559951913825860345691525465324731356181386222085546865197366416126768123008807190240975399992973281747056161463099076616942862969718297078110199259535529376147833461609641643701897039273943019866638946701381688299028815185440410383977567063835329530377324896023100150257327994936273936132551973417434144146201431212184376537721930549712733925155020768558050577898820267775269899763473342333707923183983649410796576584468124097319368634996617010346534405101311900135062669795787848335077543724588129533736737617063363427845220693513366625027314311917394670491039072196057470889291544029249154248435485522340505706490349685823293144299135349788786498692681701160928329077122057829831394335874942380909610767341524049135242873529837020136596840365433178738535787610531676284423977944144808137280991235414754173467349688657025073758416294030488315848925585421916860383878564936556217669976106495471175440991169886779861342104147593441982856424416036684832604104408871206092172852011342306819214356594050665925262505460910546490245611052313243410630444893076197049447361292423589064697290344469428364996453286096040424338539407499956166537947986370600195472148233415936468972492881585728545247358059978310460232504346332973944962253612993458330136976986124964171267795711909276833089200387517775208862836240144173059944029571117501999266757159365663744818284802840822134452767639792959626882828708484032102638461579443423081038330732618372897699395700595119058707942848858433788374972540095094103471249731201050266872786643728084303311570060352035925092744133011753548792648369932448512549872625564879391180910856856490673335138022630480201891758640980105431972583465514448782409864555398847768818816458057502756812821961643061476438317534366828379203618877742792048122528179855611102601842489009383155682956586546892616533159243093120905541519782338748399009697293859104773185002553858122133071486005796162201908277224732618418696174729343810297604956673236129917070974860562148082828223559487649297478680491420445467001219473198969851525044554119763148630927829796887563578343431129624469783285028228517244740010498407151149892886299082782614881286717183630801246854960786373351611898352489989682927041549510342538476588111014826498785429406997565258420685489689113802362773486606643147637177920903932821195552168252260515227379874607905631390876978942139980395688349499469753649133474873525563946290542439025386692565877479839477210646627523900633685904408463723144863173306908344347393110781417270076636066723626360524974832660064806359423232950135876579093400866625033335398108276321667656557646718316059738547427966103340793692270857624132523462997287238629343935902684261040527486793829606828685633610476188912281843740570277245605666183387145575595625505723495930851559849514861265068469286491241456764562534997559305804162658619700408076640564482316458778405383142937335602245237538646184402930932556527429579460342493364841633178439484576779238816303315477757120937169838250598514477696027227011755091784082203058661269963512486121815159898726604769051197384989941390327108069324530993649651722287591118784478024438443165510403854095365636474308416392704184150115962013622176222165854493198634529666529040661828049997108595752272529412987204361571042685435156629175661321878406100425491274053028523071798020151698247464361269502067803150640749824689473412057265410756835148762015977340359214503799576227779651276538488726316379656829179464867533202305497008288958658215142651807462775189559587230395615747045434126848277484339619044015868863127570490549180713158468926333096518630140949598648052521695871789949417234097668206252664332293894541519835405232536755673278842369773915890042387682009771951451274180903454610074689676917089601563327165928709423730838909575733847495801746703630479761631758461870789249560484343189295339623588752335345488347440445503370706904704062643635710507474798261976072207673487437006654772317407425244431500271200954251234267354890231889684827848509313681788401916251794377402247052835398673831108089842254115816746273468932726212808703971792093061009903381242139762110967777221928498519121325632340941189685791582993216525000705704529911042716832963610268065153607018191297812221146417333135705055844286877736956911237432508419355870006893140767459635906951898933941715759068534382867563214171151003447837618436775871728508701869294209081775873068574280273756601021260145773578483520852495079980432156460805380031340524961451874839033801294021322397054809837187286318503552088303467643590835675267209833177325809609033918544372497973578764715677252715715205489698523938207591597404080701636785982350618123454798081343385148750663918709661492310367401985346062829718606083929457777425013388969639115742731546737857034468208112840864869975767070524669457028539087326142070230414684768314181794083476235126274173417130769206233718546914261699864969656543989026328436748681539193929336564584669036161311529840820857092117128493566022706044297710127259779980180976974765597982956672474812454377317281156719876931863486419522188686133570508150486531927001624515390778270740873162458432298299049875459558025642558601058262207521782536886889561118800525307634795953529582546566018554036145935284462845530755663292929918106091771001014346087891439133507914275664635045195724451257980287436772712609870968399362991741379014055044807196809969992255619007395956672708577459873062929954739013554158426102143886062362929368894470127409005232370534748135196582076497084184162327509144269099262200684480336753804815368520282367229206940517791673411210232119531771448459523519422925104453067032958515635639073485444246485770082503177077075612178431407550629464202884937318260478333235855961927506763089819451284019016136026471979110017711662268844933884545789362123576701294869847283126487313162978430630208897702749294779380758229060181431002880048502766707118342942082066775446512862677701431810892671319712647325257692756497490442564058111759441624302194122158127798528429895834315253994627259628586132093914513827582884105647243250039282179523160506672090135768095626222007383308826481370091688359824018277034879896245741736082626729604558379659690233159361039136922554304152675003985935986781892523747904547408267926336170508793027397691474653334808140450281889446313467183897855255847114296968339714601557420470292887190357355586685700002406079169571329781908121919092205021083202861290055980958270489942972986660192916026056330567071998516819305946019793352269283607339967778190105336930909023780756407461595569995911201958420636615074452034233113101237950449353717245989960917462956386436000129601926087718983056751653917407540699433508196147749243481871223566681844818514155665030860668916496212575347856569938492323722080302624618834456319456229983755390025629299012731680872684839825241533158988987064667944707560435889261161513634345668964301783386498312978745810284601488816803995753935881578934410077023440781352342468511066179980052184983029161440843690369927343653904886789605817327924290597337161802306365475585068322531928427562568876821243651701705321575234113149981223325573146341209547541047991846853927226144554069135684128282335780555067821810544849702184827641442448409463980146791250481002145454489485752542900612275660853111439967962548501370909989132094908818667437076247772913304846614918669527176814310566317200074090637978702614901574902015533696910499901994864606754259599140859616257582511739742668878904120230451202187042377174603076181076015283467114617601490346451771035599823993261755310526640534215960968031170527883841504387858023079721889592632583773477884002507593241985459647451464554596742373435574545391322993036960809040466875554041670982950822533254092748101983042382203222702075972724128186180088884825278356213927950094256813208284853731585093814716298063387367530309701607409472031357843923586885071522179708832711368364763536412650272105412258049451295065917598977349848280437315315630753135358033133007444572318428080211512362797565782231825476414993158209542702525622978996894620328616598862492047692020684516183170764480180517082257117087131605359039344327178034743448539785776693511668585627011421784088518519830372617350744514704606095174669269212705470297363901472974247745468002029386373918694592644017360132217207231137279025262775956786225565056147387336501135356176000158713936967665910228047851729026911695207330179925622191276119564378750692643177114979999746070922415542939149130203106909071591662282397698069324715269133801616379678501622243398854383255160652642863495321607878906113334512289233555023564136302070001988869620552126560771069174820354025520943706119535820871565775098206643381427516068465977244512435181834969580858152491990217242084032234043041705164298620589812505032633800422941631196663701267080708728544879564045579993649718573797875217460499668728314673836597312695616367457975016574866756827313885960482964302627135038594056097830470936460889735267944770640761751909834641895793926515323058959974605499285751945540102519279059547083001810919103553017880338031231610349810050607727740613427991776729152415493944059272851990173279318522212750010629958639430432154391726973508865144157835335150125336086092847959822626034593293822055318010445730182040547209304597938728997307196829200044515572884215910014150471256757873504672679442551890989289249326035260916022990321582116313064303195370433428935784008168699111239544986061664520239997244667068492020459104514801494708368553329257339271364569959361235760660851100603201780416131347502114681018940065358124398077743172118714213963012026703912536278590651267713380786628107119408156867120224068483768564571794814327538988029477535221002735983841891395802286597211657090587446342347177607121875181363752132585428040680095720486747053105538788465493085013357461768482512416776507463199667579740224513975957422322581558444279061086946726845990397321192556726142536521077672826548540289967072951222790708828213261221872861379005634532563990519018167680732514805801612316226537532534307184268253708207428291151640741585283548051372694615463503788912927492435926199176528944540593385024882499852573728471248516020940500513090135890946425893352158850427254785377981366035741101810977506016801909509966084573294137248645716688422940840326189905072748843164414542125495086657074419578600784564217066152668692862735706418999936092909923491979245748499008836901942065461862701118375746554873273023717363752996413582823407614781222789127656312168981885387296622311940247446053947241252738541280621538435830092234310442770674879916184961054873217652622918621329008724431952107393891057541008762655718597522856435116582430669460869571694885365749033213915211438516528583920143342102908692761000655934631896837466934371093242517940756362317364090823502454553415293857003289184022343540712366934162816365668215390579479321354452984792471259912676815293884494667641170188896489905242455667576831098349048635410060714279548920485850831372024499018915791305833031483396734020294647976074108290116215465953025419271184931006247207571643007332201728532684526440095723539457145993197972456404632007876550234029331680605865235527439861416876919407397203567832534179883352239031255300401980856607733195425617389653106338568434090371751439950465290378454914070898387850125724801473577703856095030764949168280588610929249750626453511446875503439772884329687921867890927195825149998454971623696150205491831421697996318761422474240193740318768741754626949711122300040871093010197152923981188179760100272402140681993615665140157960768657661677246031715388517464554430316629173510751257025051643626350584423238156216937123494329839442084622983338132504954240805455645788638991389152397137971175151122954876297055664535989648372035052538096692164817133237180208818502068503985712087149728292124691548324824869069164242461148897264061031688023936357026865617187418334453055289144280576977788862500373513197794417725680929142940853747689065323766749512367510706721543593102507957734539439579049584551626801070324123682774755214417267508054444957647468985492657107753248431565988397012382809810485891602464696644608235311947551377556784227071178012307132648466308526584161185890038782668364919341754544275363072816696762329901245757345353886070842457987376503421068282381197045474458872486162918485567042798399221566319785400069763092996294956128059957048260550834518436429220870911267773140614665325748201399431628178947332446765783514896262351349932147819247171879317139180502622182003791233768645479503256034687158241595770060379908200013465406045970752805687341370195291896006293327772885083305488439465563458259710530482054806927559789603291679475181584394254966767124810280334002742059474681947477627044164380068517358143547832754099039242610862545159286684680141724436489802196477577149992355900254767307574406686277594835892168332033761695902269337934032930772146848786838565223109465320214796371957626274994208181804304994953932822029898007731510524404333587923814560825196069763900324376253876418421538515223948802294233091290730889599384826782722116364259677037080890097529583219509110358641991992397957067984166335513347011760416860767468863146114563576177571305149019681515816848068347582357007329318481443534469221518746873481206024655571311149503355439972643893505691740126186027307261754834289373627540712729771803007742523869123584850695871590378226423773268427831909550446665848966948585979506101812321766327050887850181296270249402580542230217068579886070251197425535906860412771599608448075985543585578864492366754625566393734114152975983057771677781214470139922485477094212080594367701338623131377091150243845124726127806306738198423286167367520562724757926877601616534138857279609143527490756445646064751009400873443980590587552243886657484599292922457971676523755406170118006924289493483548811691141116937231383102666294989520599303318410672225709252755085136077367113610812641782038911388558641491044904096346813796406683330820490499414480322790931914348492080590677412725618552904323095830977180005956305206889624916610404750690301935649066746320666009892181917227747374531293258979572578632189206598814890519296792040028417057690886230245680386713505593555902363093802993242262659426621610045449035423657716068387114562422553889842441507001273463176410938641688592695636476886326899103595591732838497653530563354872472851622470307561272404060513273547754848095846374105044804651485338675304777291940280338371770575473801600446136236041565081441059349215496718692860900277999477047091496829705893262751687904949233757177821954990224243254621266622924560136413158783324830123626064059965213752316718790938876839053571221097389463872052613697376818010457479483540477763962857877810446962899033336881222253599596916367771895568908826657378576189100033353540017588964712823132823851393630872429450691827086034347962215665168837847172635173684449815600307091934552710785752627926941280459704339389333856575663913812644697994257513202050062968223982285160146678046023462795803371399627639743995520527565273714973076551802878861271368758668986732569718470065225136239831308888031705810998990747391493143617920514744675305505025360683390611663486350158101880988972049769527346863694883403428992044258373563338261841313172406031892841548848512369890848432790667400044543380810520926172845144163367701586082227308863498063831050100995080484851954224926058794995172580958761763442254117080303822640347685198338761678124051221514751646110302956380626637142764285985711952414754527715041669565435891965522651718426530539432345924331900109442814804420027417672168297616976323368658118872053841320611147120522036490483906222181274712416367315210356957680312348994555746005502545123496852184028235317836799184567971119742805038187636531234835471448032826986727917894136340927413088552313275681524923829760362506582979900813607088220470863980869462651483908716338156583606670393263109891960670615188759671215169148288828247779607015774179771239768989253119060528384766157768796292933573258242142837395917161280569787439978298140564282390339132408254619439981391784036475350422920228202937562213193578661796549983089161394800242383183269004906035215691746525152779959026911962230030001080184140356194876853297482729011819612629135478824179867130188457877248335303713097215853170173977317084459983950407995910952729446760591929222370160139981481436168467981323637749712384731902228775939296958536811412721852945988929445943767168341287132838070493327896083200803734405497613288387092863498640264005563780491309097035594189814646998058555579038662123670615272453012651422866139150866557681793600388901629413196471511290918498617962264156747766305327147163810195424662449034478573741009785978407599056521312190263942776055039954099030314824201421341132963245113169959988624090430505397678892854478277618121972007281328876365719571734823991876005127005156530377427216919848487548886472890886504996743194248579311956817426033845002166891576440486146159194776690156134384385903622913721981761712315858971462517912544418903871535826332436939640699344852871215524308017746714367586796967826682248122005155443507101480409925954386423044362633758027214739677490853412838248542762731398660443547703582942627764494092745516353651127715581992320911235810581072282043090426649138781859791193154652999856368672614876799137997015225883640968470122015939538073521402060707755768509880096503146958398229958895946129844449691286573274923453668823159118918522940046124575115377369649037089727054941732710023350635810376193886298316477841803531727069633830987544212232332708596391245065042554636260944459902691324220875031198387960914774266588579643775067409430396242470087912587853036022825707513411050150892911621085049017977295848244897162945319295581954770367484023311508102550009393012311909295411285306246998580560678080388549653244795076326326000781613904539539410416039931491176575975728323484006319453163837541296411464295585982909677594855399975400473328494610579588112963866479383230422577830574103147385188567484841057840580503622409816186705961581529259083685232314780617207569670500713805812378538454879052369774918322328884321021845217174634079854866134018829157907051102298952192408992323516704753848127965087528531895344694654510500649924883273631718221419390930733984787089613435141897440711154578548159842477575252703349044376594765093019770986680655311616508792836281004974094166267299363443995220398083275953576618525966700298609755450273163947874824406572011248914050718128138147441769108555360621136317204441758889700957010181011146883545028311528071442182628487579555616496708527428816424874396778492444052907603460141096644787873894393803557170667651588572455405910800664200163229610348015323328135341244184559130582915811121497537714597595224218138135511380259703705301555033686723859637397386433715227001662690112374592070036174234063517087715586662172094079659410011379000072632264604147219527078091277368828710915604414454547752741158586609984186422754698962613509718735444601739481868290442318760193650900961870100731725493214038182162845134621867798688523723125666358886944571886201891046361727886217808166556800210188783828832127569195159227496666441003058309531097540003296241245720939403114331914897762045622223071321805290587944329658238537465613489239392213641886124399760919802738768926737890542513851426357944780067491866820842600109487124686269093658095418800274612991970589632439844197300679488184368768882111349606323625005492306421241806956447467256052495389854505395826455024440694146995997169963918811907878203518421876585540633276185436002896062089628231329115048375085612448299460521741225986830599700336619348473175734211808875324170372157063648890806797865944634317204816932497525936677206885043682655912111781659128304351892318654134635340445286231339940752801204053250406527679220033547314453900643114228967412146304623356745603777247112230862591884028803661724742237190487538529940086118486767869733472338235272248780814775081768735170017143810504820350727708403950255600594257336227141700547970659703656458521851947157759202939053230156181381771954838869185923976234633203832448228898376080126040247100011193349643523874963215484690057441291863422157074365941612286394682556595654252541938948773738991486567368706189423002095592329277858409923429110470687082769454174242318279026772552966524193049108226438161197052677574299145017579884487015308339070765510479557528764081081491475856309782375870523894659444064283750668192068053161945799246779021967714211563090169914520958720303260187431383666630158859482432888862875634692974768706389778307735244567564587456211122163392640805777962558654025045549233923902958332124063708472176623211874186176537058595817009538123443126959247649925408913471551262292758957467486321958347457111877093472514167824545588149476856640246630570405485870332097774271693533552244627838993843945786572773284921079491974453307600132986090232766759790511965193420776598550258977539119196126480577217825048773793744917309903433434353657052303092421091355229459915455445563488417943123466599766557824986101848169758451766920029423825734619053340852512209706611916280197998815732018793248835797343849317757347126190115041007381026302925182738500229964872358174943826098910980605314318166081190872933984664430314773604306103384528471810766584288084404072290432551267661789471753722819480094692183194141535433427225203584195682895291150874837859917038878093861112818382226285849850911978621888736320558720516298130225688707767618221715322096271596645848125492305972622407123898547286396238937542149106137600562656733186594143237537921373744090481068000517180840621988067602846797453867351756327863338270451133401699301349215619593557518288125888966726221150542829495485580564088746426639994966257849053253134617253238977733411707619956793883295942822483964234594767610196458721117386033744882683667723383443358683025406751629166950594252291330068813927715629096885133620272653503759554762369529617908817367011552262122362683849042803439007982666661295756548555968670871292945472431715203293679205847321719350610121927093973295563269904584229066844028859551596980494175381269470298987218537053935465156928667928919987308382919376622972889945037855399414096431774234671114363116277821917003643192051687260917492918772977919466093169044738205980432656601222948680197825029473599847947646188782588431955971206749677418783704858863143916352368746173569033706693051228406113480164389880005270114147959855558670852347123160288609043743928695044533905929069712113075352182662704042434722086672464262360190581571987980781546645338005908099921442041867568287553900044948652662782808667294086761980136130605779976480446675511692046724539050420838399123721999693283840217815544329416484495964558014494022049200453284243548120421811693215791143101899719124262196538849812661483361342792400867372332532677147051077974899170192611646041758589273725729219113670716799569304694789047787367918309511450534737029706212359700323629225046518901130632485943293991325334667498902346917670442484478793279524409381823429840044653993529451490600479780100524087732407093964173212007526760302762392801006742815695347367779988989937763484271042806460752578661826981006816672655927200917234559766772010303412549100896645965259207151151103421747118433486578802133426356404755152078763334421892907254660986078976919951958127626337475542923566297116512457021300501876519592288452630291270920977423844967492039294404789333525375214982803417831495776980235632531616293443099316190083640359438539847513392409778997388400218279786417788656351296184140020683246981802805134167265480249337963336636821106703509616874774107936012908604664555465249144361035413733325840431321409012011000130248596311672032612405558896256433301294869553075877965703427368941368428088241817068042689900932187532685454192417722102313271390014336583359202119237643038520532186693469445751988833160728242824032035168092750234022620539493259073795858029552139309191195686403385157096001639973082961309866886471462775804108455160050008115581079773524769622525786960365016026327114132953039113612458717573634225221760730764126206656782935731187488833550607012053836831517455978045296779345846622862902473887860413111153927562049095206164787263231244235149627518130364377800589939047508979249337975822166820330690379488545535012141162423560145235620966287227610647013802585478657790948257518820898463988716832074525533159305479875100964337225145010088863130059962977505847758503554037112029147765657086697681710568935707127446197640825500322727174272127973912391485382771956461394010223688392022829543698920883335450321556765762610970772597552825321818017380563416117942544011279913545200528281040138769088168489651722071888209295423823948983477448777925801057570280988755535512227157935664193321233952278159261193973162224638790751747813647891795822420486458153802672781391204945750721129385984934110947256603270100510315892113752286542395623783321918680067613596774979282347880925543597373803671331699582481746592663244399847709173715315101489659009577152983110585062241077224042716086329896380415998368526710566964411651026910412699680079913421341625846579693927548421768388157275614692828478106891307107186831378574492332975256695082722182396099002088087618878823709035088804892105135412063475037073302865782271172650066386551164238223424214202737674086962364813229888784843544167849669048183585972773183704400357556810201364660908764243455286711472319057714970616129110122508897730871735007066518809570181141915399484835379168337465638461720812443968482072793628134416848208374014645805541866341836956579099401640702743793779379254693708946288506465566879753452002150929356067293474760913361349100769970641481653024187188733753526768671353956619668601390844905821737450217518918006216809757301839654515919443652305815834138641234301098985692083889791941705507080724078020816379521182537584262770848345741537747420848188386871333687896308523500975845777220164869926846459459284842702777439448158663691168306735944928123886840909123906385315047901744628641004764856224024692655560651573475976894071413312205955610746702081572806626157493845175337610105653598369625510122789778906926046009733257318803683055578215865056989202185062516296309152470635749679669413944724253966616593496090705641820149186027356312826848709161232120035204679068054752600422673203450095564797709609943040391967013496164334422851531073581076952657795544431380743685225249769489892026114771723147544521085454354770039721453994982814202812827935533196253177265731158708279951317609041851407652383433380235706363054627157229748928887898352327392849089105998307302553782667282298250011580834538976838903342953017377200834247856442105737650013711692821220220991322430468224732747516535623473686328640036851896095397891943006701081533707862058665363959801727664609121701234045903501666509086329853892646212017380858276052071900222884581769137407884985889987554345995342003315476580263859199629820894505564651143750392879254918739430333678989288700804018561273912128999512658832918791340755320562517330155176481961713557725648587783273760646900551648894867229421541817359015255478874808379259683970117736159107901618524369098734004488547480849551978984736584048675261068942174307419129199037034141624179630613881277252531344796180713865414422004915993376259852265866217574170970868775485831244926586908672003809534092476114270165386685443776228067106575032382048774263295630602888360792324532242314349773985635508624304904423141304323949914179051513355620001897276961010798815324839918311607440980015058725511306514131371449557639011319403617506910475982750636780301848191761370636072376679109982497862436560635003340041131942522960032349821222329207095212161487810695593176112049368374819007928808365483107665453399619835439953498167880879053238563438977315210953010157833860316767758634827955723577617233393336914481868421511333185805253587863726923500319642456138390093419024552459405353871964593401062991795562776219730087191836713639716089782167369035958708514364207049641031188257450953919869017790720623877480361403377257089078781655371470770038748852847200753145739581178705033458993888611360892126061561667568072134993038956024685045922423774698521225820149061100627891291312209599713528341631169828157160219031415258688891101199778412257596514905362842451606472636806506065786364467640901618838198545748451614237560530885183527975122167273807365467049574775901380788504454451258592059709748706927416443605789633602983588306814903239978903599767765792927067178772098313496339286994741609548723100313358499107491378796819549399100369289845575521909435363221808012136851753065943742592498627285119270983136826597860734728329314154486303506650766600137981251106189757945840407967732441985306210413088466947707091968951520071346815720714349616621848817106041881277776989137837282915726292302417620489392596211313420636313915436916341299931632224735799211659957115024805709600933225792109368571644018292712889796531411409121171324294773943037667293897040905339508798339764799872518537421825012345570182662819992765441951041208199694401486849732904003808696781231564956055388352295646068888947636291176260451822351021115604076845550226075636311662047649429961139159648438315200248396682111490166065347562256822071465289346069448337917510162022098714738422023967149948998983386613136994571773028333853964518476074275217966507424783408015734430179321364011410657114800599674306647017599513238472444580686468511546436210198499023706198833497085884644158489877235695859952158053647582241726829215865049647987877631877893750053842454063667537148707830172301972096008511908505312671474944705742121296098975955167130210532783557138711529105925390520767215328670854770009967006493983020050413016319576247915342532254802836698463155727464282333766098825940832744195704501816194483349973850030658288605555786359576695430365501708336352045747944544158695475611924804231354408291150195382906674328880860280581128014337102140168757806236324590113347498156391187667091541245575562999567766953049470892466111575845702705964461302931219187696891428591743638392575532927760931124466262487544093290770470056743118963009842533642088013321046819797850267165652956264754634953239157702927456924792099015495786391947649292443358433183467380756542922192699418184836937487543238512704496462114203674623360556711840119564244958116413013858411178371136064046310802187070819985402746925092328317735091940116701366210719189421748755952951185476438883551383547983161604425757510836874899492111482539054885857726914710760844069735237526779783507070210552312195663803734886638684396577379378931056746107089300966840953472122555547609981893792519490379096843473693456037072411227895744208521267337686428780783126659809690274913079794473653710303598000881230603751719607518214042432102088760930039737106205240406578561278067120410844330368213820981271570324935119324063907227100208094449615739155562876315344946137090146081009100316860459583219770130750090126561412628599116075135993634039199891184820548839892100188455903726250637536471352892435282483321132053301972370670421146471211319773348096819133264309669938827302570299887437704069351715775914753748554493675558019277521513412968726799050474332802948403291962476334204934987664447838158583631664719319824544554086356689553908513513288765417524939841472365551917882163456724269512113513337106660685621868866366508803255318873652889724175657041876652272125600831566535526478488035360117637135167140851362685528662630014243040503819800293140565548077103953384762259993260221743227519479892904715952404873351183663563954868744115520849658305429305921626566117960340876037761720715506625586581439953761631675007241107670328844321898158721874802300318212473050933680095496868805040278536737034122066341106384437365304747294957502777969565475001036369428584295651523794848218109497286560003388763261936440079768295740273511723747724418894271288025086095744905464836079832211008460422968611267079088770936098010947743368299241180845749437813347967222750495942959241441511113001488970909717491041140950242474848769552877354351875556643822661396882870260079245202955888624509716128614490316478274088364201330880294790789436400955656788509527193853452206696949430035714965689428412858252661383928053932672536204322718048461095817165626363482301152987597393891877621371356185051317019171727608801396583896272299839423779506175766168486178467177363918227101834849475810837018409915315923338908352347055290405904370941199453704466114835973842811514137413950952171355587271842669867463394007276306476230371500161360976472963061471276441438812934039148776195057779495860116051503449393674790108078424276854046852984217261527937511200243850753691929441913238511415767844315876828670302430739918330715034117504597877354057007068874331311807416896613457549845440046348362378610249041010110127261351824117839668494501326894432616275808025690836726592869250062688309095286204956086403543575072088581273809287782972887466365570091306053388127377050914260137313157778063472393951018759171370960354637411750638922929098691765404559514411353241721587531389250461625727095599294259590119171031772085671021784739569851378876102249353301884920986935915317294296512054641649980432761306109335085260500144507121518316209766647254152453668283513272911788010783622600177936237334114393633728054574983982484520527001637995663289884928634218282305299376246678574450154646235813584547756266754403410680496912363393722275823827335283524991040789964453886408545012767714106603782460188211686793237037557936339558424488887642786909426365091345704305916517734627415083678854513099761874164135106632607754829040881598838353398440444388838928970468734236524966482736216048132204963876872346620129822289905766783765931114754013105196095301192974508105552681377944004088956529559050054110833518320395691459080103948325930119669471083357080667263805336803154159101689451553739518640777789585390975287382602333849264918533672484632122240467164543628733769593132235980967534879516067234450977973446540976031704729298598571277075847028765760635572673573934040768684978518643530723632843018420134094685296802350823846936616827531275716913964179540085020682466688276567793908372380023352502551493087893353482983347981099813578533189939703710380091670438216101699089770920517312209778816843179710641472361071820054490594686821547951521278505198267396861327707455470216049343629131937823516823646222264103568194010310435492528802969604104073774894837451133313380486735311295822887760489086626881917267174046198886484105412152093607331118618578177812708748201778124223812553104832081627718814660813423070348079870352158221244141138353186057986834234214058529169749388456196027339509127443667182002051178553795847052782325007574802661865059695954157289751487425692844791350305432019681536199012932766429459463239630125461686591558844416534785298743362239978990679817986356152070062155992876636084648136797565806466592959491473661001607209957846399036738638146093343421724271520661187447985180491510137974811302833007806806050642553129440984806470721277257290555473424509538783396333893439180004814521469566365527494982810140675120959092817791271642939528296824067990312188210762782807712307784149163258031538402335527097341089134266599452855774612401101940801956432140530168422529337699399518908753238068008458604022225029239526789853315960195451017177233910162195063025851055467777639469364126118900399173228300740289849701996172350195851302125940462571711554805605455831390473331911489533078352033590499259444682580355949605216956625298953366087656653543796202206523175249934464576313427203202974503273658627403400045039264251571770763217659390576303870498833360467370137646823225555412286106619379044323060023451623739450857433713616502002281001991553452126753050161409232236171829342929642544888307008257481763237424176976809843887348623998934738138169039219745426244055446541545492871842913881226935678918233133511486470127054428143250202060725597351107011247799247440207056857314759682780066073018811431330492135072097247542695449083921071971340824537910048428104385022559677723739439691148039550242704332509730134035469530713634167695466213781893943553764186184467678036392408085683802934328502884390439929956342331799487622263868717856896700893468725716307477791004347877889195516884065143271128621149943965823114187576032559125960984546032187302184554351414136449962730326337221462987900561331123121805375779634727322040979944276883328440034338774407404204031589404964271705548810997218084286869739076660803010869416747481452200091719129415246130475313512637251616331652602598568260799615224609845497357288434506307332301447940033511771936218489614870951947842347307671563605896312221586848142952152582003567287964368570767927253478058894005283994565828767988447154815032357964032330489444660248266532500258670661427484935867368406027367611998099685435642430359055687088278797060306912357088257208825200000422019753902549082132531760928707692838417970442558752506494317042002504743706328652930122103761281292389952693741468755317722693340262051436245947128321140712096468993417710195868202755950847035869245454060918314043252448176213303344690545288964701666808887411327729672916692474897342645248559715042579111004603451985908156250091148693942736284495476981979222919353273739243896745087933454334528897252731868805246540617667433706369160408610030108024948342272870217626486730169672548967268270766922690266677861568167642966005489990615581258655710393502340501929192180096496000972515301070469001962361684026392103407548601860215921678173555397589995280601378013549942911771951285383042790634690936467587052009805211276406916204269346376296863974315894309038752737639538554006527570821745220331763906532879139867208165612471013922890859016313239653878326814575759044664139806675964261490083338681529727269565092555095384804880830398126651188272291655591438149506968256452102398397368389675681534690233636588096504270468634899252700356342405946737515286225428626299959134383901531611291470172036783683828465194398496655285627903848911197841190803490757783670364646304222797120044567560289547363491587995655130729868343898443811051835931539994856741203485445528191747945943768924253168629254938022256621653469466384874810521578813192435621922921448323987483333108004701505417860214865425888216155605230547142996878286879751503972666149742650066196118708454903395631112528635333423864151609730554272818215914721929091253113532012236066388437324460309123971524002378383047291687409258353676580109411378994195214847800271096026557761280419188357202525637729409969536937505990393046972537004141348928315974794916265341766604426314206575130421883392616843074535285606635313241933857195972204427082182936549939347657996213073690321923094012413912701813011994765037975698636095667468138815134062829379709124701650733820500049868277391947802497369119534228864321564196079538166071988703912356037304470833545016216436375575925994810737974392223319336935371175966484634277942603246586078292233306557180314670861359139050040906388487929751844791473361250556072522407866816067400007630550848390221312705445868217987783263554971557210750183989719793167793256867129178949078153690278433324824899318733907938059425647033196317721813233157474965697817072978777014848715192721503233501637589498573347917745045476128237246266727252655225499568052215065015446331501373314515514981618184453128033115413547323278805664137731293401085028344620498569436625911620875011553447742974588383573192465418658738879393014711300367518556353921453962472081809399642442976718102617968683877919001794935413839218932060432087403590166629906085731764933709431272430504036437434879300223245762823158871143422876820129862394378067689187285291911608408610556087783327803514968305651600163498133159543101881163212278532652032994596881560437571859657103577932821715750110405721237504504735756995813962844045941083604638678253618692334442560877834823453013745240429263793485698991544826318407805874151037859665217047870631282402675575033541443080742251492445567288130820685806445096187814676310697720435206860220030086333930678460952915737528002193349431680806664547260567969521974106051935728111077190207986286383417790414689521199581599718334770111569096346749476107444533476695274750093080990953259144674591277430317218272825058808135452843884536989816880304184973878549751859921083753586469754574457806838014055634005874635472855018219097732630164827560410987412976124272119992625959988656857411532828614672978011006818650259889073486731365748500934155878849561708551073374680599126956423054265529108623526558074001096072252381836486349080592799188406930113629570329395443624962285051890764054080327155470616385756835604474887590849545575037107895094410824757027340111999348019580926394638219570211309003202753382722427863641342223482817249099360868553181725612323072278301265638129206633246379466910093425995523055097304208480168858781258887661604428416858539531116380398710653803536100357906057311953078332194093205691669394100940389471190499582398732818656798629532063298824121908999331438847303343513590335974803879463354137729999301997987696903468044069815289207736700311798344354741934277296512971220376732999418630174347007606098058046304318706872593575944587310227657755239044225082818091870111105182784165371271460124261639593453720316188030537279843029167275139752020316952878268657835999955581312725252923739690609487289173357180463287733480678226661743340027622688457401492992456446744664546955708420517638298827120957019524513302627536911551627111825721280628712731785944495348834786403088304066505454210493193296351175782153830478353785007505528500556707202505289600274128858907173367142938718699532277316262690515159821555532097513030803320397860444792057233144184073803586091686068826432567018502630536870440024272887933547272226395098940150971997311864374644137697442787228710763284087383956479659921870398481895828273082879889751079703379172250120705693975001319817825477504541812943389937083444512728772502682176477426755119319393447116996252644635863296912140153275100058449938948155775003867813519152858884739860651923975881372857787790763599947399723084703772244643108133720423636365076999084160699352616327799041717499451495190545224334293448097924732780805642223651153109400416593403480757275067120442458468001368414384380151564718758336763442615714186252417912020384234798016242711550557913646436445305202661774916921425416119399588463855015585114613138847312588836087217954053968793860043027129571139025637978314935320455463419793231413492713012208621163707613560260951821797562365290740256708239174958981288287871086854544532540209697084791868842052292001705072972967932658463068562833147042334538695572625766051042724373114325266198975030256805540836952393034984949986186101863548178496989647464654054533455224782232570519452084033813008323241495092628449991373598119185135455949778131853669837284570956491319112710511762335104524937646612828754929785503570898291835506559099940645129134424297625106875750141222666727820990532920640329394677161574371892037516463974807411927032461468405352164597848596950169557363817251928304149447007216807199153178892731694153798382602763522845321274320961526897919637530818073455503823451324567226375799306360624684198339046351275512463995911227060869207723911630509999543713417027236841114621396567191184691387084972968691246674552241638084178017972198928100786754359856425423531798447159283299523221424673437210888007313212052824367911871699020275408746229526719625693091211379152065577003007139459731877788183004368294293826784038446732083740946165303211947753515977276501000496030095271339087420022270783413892730119908963302533138402252429502759955753930704498915485529663547271352016719608790229812002592642917721367296466842995340328864450160845220622752780710166295344609093440516096610964733422590564818090006423609764993540420647962466952017425811734555545428018573245004966342366895617972281895367986821197049490516267301320464817404274680522363999699975031263043580856913855945411810199905352153980503074181665827236126395726814009781823760129907469028532969192123397209243944432302866049012206502385494231423794991209412593284162584844845852837905796233813729524655023598948004906157721703928716886163519856261407826385323050136297324487498993154023937429769026833397322153192975025994345917156770541415894535292880031835036500892821275532997717377081187575559295669339224591851300746694770160710002481788310100837315602899783810922951754329636118176429337157624873181475593432875218936543906028014758427229981307989530295196315340211643238479065990327656478076199715127587748253998520694903013977581273478921347880101819942629165714600012025737110311267009013255317445178535649611148687269544806994771503581519053029187646391750256633370044964743848761795128950343426437521040926737252705603484551340490118192964649233393082929351351981383938586950868951952249492490636077368055062425404651878344360247149375580726130569743795530451090937109961535188564045368507647709614005652229655383445122437768087299078121610177161592548065516432893118861766315943408491668956802842459905129067546557135568153302939489956588200533779217351618430748642880856904281679625423312477710106625662722276781819300352018505158930726173141719443975668527106987687419728233164156082905058852075204410788245904324878555449250562214365244858189517589450735558652133352018412518772322635431652846678466833867441370421184064270282860245164902974322130777077572078834869304346327575987400471995511553150056302285204940577370720023968331276509540247364712825501886063820005474317897553335592511137710269907056318988809596858742902619750602153900075689201998808662144297220703194824160560390489099665621260821066773806603230735034691160751748887785963735808110628576477428694524565066294576380450871434030527045154581914531965140465132091458834528553405523903999039928116346056643979416510489961074209416634928240166224554495032910418342848788886452083947763661306382272116715660994169092878429923436161612469962483647976764048627063753219322296892696660143883238535523258274063120114524897296923956887343350245191195730284670892611506648650060739817975903610217744783249173027774628608917635228074609735212238170095685471312645355739997758791484040081448728084958416300660030583304512659654291868749588803185839149270705125979716939488141899343956724403607883931297567237576204454530936898982359521402676956829972481902658120334346350005435589196211707580014021808115138782466382933366272037518349937214079365300339365056101170016715169568865228197507551423361351377326593694435470645114447567178277785109708059416786452103805885857572926263677345066397774124755525993081128912124314122467603911203920332192225940754017866760068536697086046478639339839157716658318660682574440640805623849068098120834656263118480992369810729964463233826720364093242097705778971141013457796412039792017003365179043268935882406522479830742092600437689453583686409637807887487364275873223229424121140710595126575784176979693660463065802638125355467413642784161285086328573228120621673078952601517218329333428205637782480910734132459187275695105884120173568416073092356796115837204487479896650078354541527639675252957687531912589914664678263831523308617702281185662487751756374297129717268716430754826741898731702776193391842587270000991972812592573573987986784535063536209097881504442460467489380383146753777104386953683776112171195232136335184601818915461287141790353352302460563132330388934955260175937259264283398800733298750167138462546932978164837190092862452624019925988905931154175404789570226471933089876863087151379057029462639226885475541148960946173947913004167650252850399401258625729147883843323267952384405299112268844281934236124890913749609744124707241445113438474639356985998236560556964817261162824113886489539264169040092479762559380566717000538364297558108974704388505979410977385039209523054402048310046866613473381083443033726682553562544792331257852504543549694070041966014154553570284399520715005356335153779165000637950601989758521326956299390368466976085308639556824300302172194498818589399208508746696162697178267273506891965659738492696624040540681245457212193504439594114887872779410201196571346434119471025846286399448965962207828891908458931378402572078059036769566594378801470942356018688987926879396094714711735260313680024773152114734169643751483528047995813510777772539836589349083246691885217805197849240891941410476294027252381830294909569144717993754950500134971978268002930167552295302149408500411127694965703099512908701453400216295615761363737676139365882445803998835330167623269076046383969055299646672788670850594676011495075028933635875406137392586058815927084435893142498878204640063428605466116741289724119666336845101890244971060074292213016376392612492890430302748431042638539584788565852473215998535672237450989491232623025362439613781151319137999285890991809844876287360602477370126415763500935583053177016271723883595316125467137830079070540597163878726303914387010438732932096797332918220495230762931108733609207725277077237463889387257668116356274977663099981454562183185087283234336065377846204883832301333641592011640141301706890366252892222975731863308583649800986429278141772790761608573556616897227545111082076138726711253024919780317913635039512597164080540080867490782233386482987519078212150479773578943307525973129489798839543335848987026338475972596039557374930995042720074029654351137666025767133518721910807231805906117407804673242255985747464837941436347171623414398078081836071469681656865997808738213462511305732434262038497043800321547898630324853136836599931501961409344344640255984949662416500428435521506302714326967558409643466452977839293505943657684494836412718117742602646422636544048368890129432253308939758869189989739684328120401890055719029941449000982095699506835904133507490725984895081442619307470736395901161388543474397773732200919463502642895422375807421892163584749773169884877371723191532443596408773532940249350864199110364605698366798128792782259797621306668768255916296379874392307453119556460909806717435360801283532139791198042725712086962688878065038234384623486353079997101698301996480360074187021612619957892444299589217885429733331100886707221516688335762492009010311009976090980665252668644423844360766963859177478915545584020795317750908514445278513237216299637448382505029630324993722882359346853526869221215924140393019846369925873307535506494682874918013752324158150202284358292260562114956355740887409290482741136799606171559584443709517708054625392815143824636203641529410366271073815980696675658313583032652658739527754745790680171073964223619528219979212385657098226537186641759297390629654435176514504565353111705519177722369059995120928954593693850437718900834054363213265027908701367001379794982502057317471104708098823530499333411898329235009802171281335767104036084431574097816306427965841667293690009929422965138702872189338084467755796890823170600202864134377699075226340671460422578952389677522431678513326889238576959670241669212420022578393573470736366482825227099837666175984970002623227468688216258119039037963712945401580531406944255953065976849899964913396347508750217990752924295541599899679803868466705374377913723200473404817238770096324302886360014751236874004498028123795612129544277796105019660397461778634887499992144962629115763623238424843777423331459534771898106417010542040220391261249780662796313495958573547982328417498954639860740520634576080763310409979746055514195914416563057491581314334624760782361342028512139741510397180229607199742924459745037678328447749251155304717728643815765164169783327653518890053244992338835877985857857995116542110277284129018050511380765150271914325750079858381436490039760175339866028796888994149158660712652043709694103827197185072465024873956949740289574803033073682364427614953139550406427639603333045379376661782878444627063610636345407588956952969146515499788368050918330989011221474293308842669164466179420942463909208323584613768117018668795213029637636429517928024542588065978114290682189972140457993540694393527865658756432218693267693012919168055367231795284820663394731209018236843167241090901832094869172057132933471848837981991521575222239998508289371140694011649466658665742927133805712488654011128432154440161576383674745261983262130604819234158908857806045635431491962058948200394065778976689134850164428349163281999815712371932373346672681734426422954007615465149009353809728144865860291449450344093643122852422827153207154893325614258033659762226030624006821465358728189125524124287498341808466581246902058569410028267428452371066795051354444505084757042033251061890655301854506485423486347658416804050424971726725869385101619870575929868770174349552422754288996460514621749517543601041631064816207798309469140676925086699248196557000970169871329927404354006933071976536079512352712198551975975925868322195979998420433777943907967189820997163699713600595545700704825639253220242022537032779484258071109461603033026409986487380797075265813329926849131537317595713197726276367011263199574776555374419892799159812224037018671805632804514556443795734150647331224403544796440983894677195645151408348112080109619363531169317664769833513212583070189743658356284197558011272386623245369822698894508324317472722824686381117283860034087563573382658960539107960105174715953538172311819680357205265989863638087598575536686733813640607034129558670060139576130929133185196219248459503746591410954475826645784029908210648018810786299696292120306968136424915717348926279632422465994816747551895422149530768635249456012670707651966124339330725793985574628438296482012723831200904546233739549124106172888630088756745713694423504734319814863412671484674413683339530041330104052983303560956261970466587295974569723539530043450206162163711146627750615544628523802454235225846574601383523407139413021613734622784528332518954106766383360628156226578124923259517305153779034131611503542487646499814019894592137028883025794515045933983815086775818350868859536803159783221300522480895284950409958548812286458192452145373071696324666326252563581922497801619951473415966531702520716692879018689447101279131886208631370532253001876748872146713752365105267141697396238484664984139646956013001043791276742498955968523903862978823389588127456449780207903306489892555660521395815509843992520444200555995379939472810240088247352800097506672407893099004754725451970962832135222354409637301177683207547449216755805725588035273783836407915000642036009076543738351550922178966797829725584237939961671636210304609466493292392071965501050291023381282443522440611763691947026941952055221066638362906815955567486310264513271818526027993559097529896773943477576277915976494964329257049532083835697332233628716075631510685659322414209543055239977572796789620422580643245717627138569443426813412997637950922307869896560368765192199498024164979564330580136286683030221922590430310885335186669988689746597131401918601598365034704520113841313140844415646393450436144006036481079631053335820480042523681416092582274948242801323380143661596640501167291146470503247466780588952253014303798164859850996203002395604202450076790661613125577136893994610032472771620911023459889882593457919639939927839630658758002198774245852872648615911912539368816560589715027449149632965826714506366210536884545556340517637629056982158511395456761559777343564082326683353623759687188851457860727710263835278003330085624783542753315117978208899534266862268688886263736495325307385228889844776120404248485795153153772165350546512587309944624443766474252334611123620392750959709392235043709916302557319435521280884123658665580498392666754680368649044725881820175870458116848592682087714278889629048418977199238231780814306902625444113516270848679540737231180041515780524286965516826639696951011554111379710960195726319553339014756230277032819619616739598055696949719743247364517332169993780410004697259092055425006164279267481603886204094498736429710994573697202889986473498470729568552927423432459532920873597125689334069346944646528760937059546220465538196407547253990270399059331064177924530346894001269880658057337605368115157869662084470602207086629463239482803955931297890212128838917118049384796551483153448579906845993557600567600059387170108026463896487010901439736334455355502057091600581658358898721822401649351985318233973547161745635846411284499594944325312813964414542050838599157270865023502821312406843666468869330822931979297217098841001708256805267871718534881407790970016053823081185046133859275888373737768254717133397344967289571011592512418342144228555855240008561764447237148313336736124180405523982516815456463817376998549505603277877026926946570941728995398092935965786923393054528432430652832085060835874849434673914327272539672192724437023711345077507684562797400481534200658174148215219911630156027715529562401152646270643985320882475426045813408791918493968968133929101658926924034456060840977704345113294585477367011647797965298142303042765043324663874481902699114374123353229750578907746062443084345209128133078144970081700404838944210929935109846762481049587363002158243047652840790672106063248660616872596146470307950911427294824069959783240264066471572539035219323302575670144078821134820500394028633617957921331498404348004722420253895397792777043757610413580129539377089303048684679723283510913029037050685130393462774364267409728717526582583759439421494122420615768640982475431284162969640178661730852682555404297796734317446858146538276463035168609572052671007625113094409423223741552689925852804120521132150553439055144495407649738541466780136399830050098266715740453186288435953080125973024985192779752569495432393595393258587235367601096814123511403656440502037745483326978423675634948324516101576975175934965318164917195872594182485019826976657996508877028868584122022193994739662682348999591244119451983426808651354864539172096848529223826573633274899092673419408197068196342040300693179496756714032347291719068721279253069939962781242682760502085146310573243863254662787271307025245976501139958031275323814332947048997802687259554406464487765841060729503512981744935490255187441358690444710528827989728240620895130446374591055008736422475309825556697932268930127615804099906940246160936266305723213154895292401944446467039926913133684220807214954727292895582203537622435118874181262406246155707973055562723115024788276057101354713325638964118191813556232397546587259511370331596450892405328550963496338730686571247706417983579313270353081389299488868920067133309927423863771100403755143053830836863793006757603329719203023990281261576815433800373203459314545696890785766893508557576647501856653724370080954020641847572904978364006788708311389148886932641592121851721463867041588565610820315916453296809078343604350770126013712935581200500161522831649557894273731623083777580395267278946455425298790863327835463908163854898436501827411419181669353324684858054586031219415225018388910885858273370031543978358488247970298635798132962537728841757228069166778790028597498377490206051831823713016333454411959340377323750266199070578531414077788017259056455591375850340397816948761767993917160428408694006576639780804535250349589134413229776342541893783123423854767687643731459769587833348596936912023547757281273053256343086168616744611989150558285399312460928270397335281893733597067212456822383289559723910485536652897573993122180733017728153130157546842105629150197309179417745503327391776540853359751695939659852281874088719339000570731792622594419902051556019308192544228287759785102394078346390425096892042208425650955061211051822456355176775791262547126915640016913330215809979587281570101984530916775572416236060109821010300273941917378600914669585714659190513318666636214608939836775003157204264302891805860761018282017891365529110573900161099615740678214967506848605810950103932527047498474562589348951916720448262209787621496186565507347778348777245278873978491472126029161694317697150551050491919455981063931508035600753736584182420721114797128218001900346348344023939268955874689236880089123770520718409592583660835920559538956476722313713534009226410353317026860467712212841920014498541409570663102407189356080303115911611605084535722431724545178478679346181229321201923124751185608375788946854501955234729967879028748922407313185945837101878015439081185771875259967525363588788544889430082596599907593518572238525036169746840295491186498650261573341080085621548420840780312996932020212250619096081831360346165173073940477390906452841229274626845913699420727875490256643737119312667076849362378463810157844172758778412243607182766725105924528599558065889826882125390299649916766964956977994506562594746895273228922021437901358957097990376810596631864246097216349116158794051245173839049729442477651226337094604853604866535207902889531131122455426744665158434759313768897133386762642366573669797657336359688570007296194358434936837889184599290751415317976949580494697564736327998660262570914383517423201623422944706728647655711221548608147201952637372891710884420496942290477555559018969496850949980916935997764789604506996537337597407311938552795329969618930010758835334760200314110562262628157920965556321989635256514923468323750744765550544809589075458530956553446205441683717542220287986003761580958237845395940428247506557245006694362123461416235731469303670887587958875837406075120582553425944785580797818069104612841905112236276602140228990343919784153044132971690534735418773667884013932398721779961916869645910145985955465539150112726556753302539404795084807192999560827512041802136925022437416911878246776406492213562451011579003562017495204793834798372793081899551823228136133315966860823825736466901668794276708698016187647915621441511794177752503676702559554051620709498021323464648213413706500261120449993210714106167091276840981268676710075441637367343853127277565859618291277966809554285020663614811753359323868574908739868915779054766257987190384076143799858125430315562877378641092008299691451612478588629676703978456527162943027940854046200037348768753973979052142164109710928324069064518210303249643238001081572620755246374885779097742547335913379335328120991078258024076502512494267012561546712726755215043682674162356361828598796281150782216200721683910021961766381377432479337621046305280762808772973883110231408239019284931213034843947514971584267752800873213355449945154823377373608465292149530744368027901303024841087187322658932387881664336874044405270458761321449829549959726942500358494917016297805570225616749090934923319790038121194241402331582468111991505833708495771204132014706829087083801101590876366050021953681685309692339412353670666906220759826609590021700853079804265833278014142755278599156992517012049128553861666199248072048190985765805617004654917248569523707983816284801985460788105661967436921977464961979380539696345965887301987727349889569937267379477435081242392569239408213412701092023546929064312500648221994550006756631887050708072501933826760744941822225176833170748179897171069954456450723294741900471969959117757653110292478258540048283945450630052395171766098804442295770853868322357959642406075477748269244357821540690035329045823686402544703988394295413001855732215977638440904030308570900456372121063067007081615817989138852158799802580781408279645000620039353485662660467865190967459592498548358808844568563609073175197658760501385203721564456684381460512184142319785529395494811894434667441237305396481665962299807814968580917629551204356807728694623618297310802986365403240812457564745101429796302023020311825338361193429584363772087838203953247856451803666333243333826959374050072203154183092584141859362138473083698289810879273824824459670531093480177048859131097874753455381709082143374170498642601135023843486843872105359841873507807067680415815642944171981214009223478743950581031848988706168172767116946863328795087374076787633819191673875694293934638383121430534268382134409140062053455543421961011422859429678688417059270583605540532941111655479558520979865548720699012146304961731903088084720272956452257255689762473387326292727232301155867387445776940297182470306416038372839499742585900356679589293386178716133729481143673913934434014238498348294773709144030833420609747896242073415460245891398533490416049670728053732654709534055134824701054572334423602490658850103689007435190220631073951748236828149434616934394064527426779601203417836990109828559630572690383401580754997616397518038874042987485204629351682405615486326313496853574060590003654021542213195107269296418947985417604588840040232440573405386669278020095219691009098941458725213150384072764988224217162271991966669052794158793767557147206232531904164664255105403129120898407816595945330343837098528539935754641046873344107243415430168529730782840814404868706189473158609610223985525129129438428217510467766178167209692652351240806595574130164063434668746337511516060585105089494201531548192610949223659801941625499035173063955175655055707026962068641996946428800438094250835763988740899792951162978221827648090751930545648503062327328680921068990486834335651172278357775343107884321483365038319202371993473220399988811516889150208030124763628439834207167958634076255765265151755356401233510127326167284598605736232594981273303380861509311203986129065374844607501190491381158474418529194381625128069850613953552772870364171490257369999032545058527167846964719200673759755528646752202939525138355782832563192924116987682988542004854186257340670458001865670967023143659871428085118011768211031915210590213259826497720854330439919739220156212929814420692029524135398676419473314101682901592594345417205865095566664858557631189985415523519370569595484696709750686415880248795091764785699679232958533617500971543698305927579522631737061480824862757467749803618739261607375372154529719060613609210143771464599902312022011838915115548500964684563408817159359054044411857182842894475934098689786800078096643336554954335143315174921085234360326134559340205311476628092289416330973757682439036047139523970756148902515334035693355624004224803128554315932704871284315497927777921164615403381220700091070935024038499140954271923501722558115922896303483276405752278548659840982906182361583522118289737543668275679100962584180567286109412183302385811928785590250173843283176940731070644858744760947498521396957763193215543042848370299067158854546357414405381241751769191244983441374806733556658134793650912298873604108393188635776808653553615447842447866291169846790592056310869493287751852391188770873357707788758346140521168817796689110605722455005730648852845791118440679892469116646685357393485475798520842711253914889364797463137954136447662665220160340134952040214492622504410775727164415400821975552073584185709502584365140648849658632944233786731241182488226839475766558569968287854182662428808468673616813582343736201952978505016202170872986700025407693285497993349585187755123960482841195004902467064050990214727388240341910905202511400267779933453923530742901760852742368221906446187428375923828629679596904800495613387610168312456445678090864779245992921725106367103121781862315540856632662816280608169828466116596907978880120363983204989953938237825932082998790842773721705896199423751701048065336324704700181554788961949005682323492343680498124595686974891832720129578863716392863674212969228922621097257857170038795704818407977997481285685405555224613532903382874847979433889730084801848536751929094985862931870078349920554332312873302811923817545636241946426159536420553188722067269744054461771197930440030160234617193899866193658480957955377294192159083244435710028487455594548465262664640341296253998647343732450203818791820720220434974660765599489746780746125298109168401397903563927442833828056620017380363037609072003290134292867435057613732452233987166865019708572614371241676233256100947495974122486239678253427585186117548303484096520059956741926486000597897519349606612016485496697318887980791036342076045637463266276118182116731871585586842802428666370208119629464110748987675511026685619729297838327589622699283633961823503953049277054584509354791494195654368812800021039067221100676069517046265802240252751496369898620068634948909529702555857450075347414502662519933750149665317181324068601330695299990256048762363761862276885576549050565782565362802042148594551767711798370523999029570499837227512388749849003436655980958511304083031273787112876922265221016715710127395553582313522435916309360072335695720410449839588370196173757083992005852855091999512876993984323716378520901964810853288867605059869418263575934894444271568434078477594147596609595807080896591670094586888298261060217051582250967438030372414902215211336708852327860627473590532359011464636821576966611925113044918741552422520546850343533499725343463713765619756115654517827039178608674974339236575855448257491650422185608198970345940307566099236281287529080609130759711909091977161327995958459430401520537469926968295362429511638432854980590629704397524145239750717241085032588784087605331645731223622289779185940301210556585842632092374271207443657665395234186322135034063133884069328314600058949422212512020121849941664096889723269582605111774430009404199777928152637136737107263306049469738579962437098834994099333435651870730080118425822352711006061299565818796254919816244788738964841749010677835481492536127698288405486755634604292013919351773781730452110771884612901445224520683844511684830340426687930099935745921176446958789609323866218741109398939092007497892770620609355119460492944144309736836704788992989864825196185875238070221169660889570419841464668647150839340402564735616001063144618262100584227489339484378215064080471414149877478590244573525358543946931072543791004526732974897430589852138204046400794268540863933249042569561618325973521337411277246538339775242730987189685621815021003986703641804424934585846243252164970932436260154842504786966605124227241413227839589204640825134307177109326437937552591035179429394320912028664071695956056692213959409317969131931119791880717595971783746170837845822667186417574727395058776076511705641920358557307899512997726917861531795103676915860102166873065645694180095711026989571433229955753302160036636283250819108414240310514927659684287840629226897023445565664453870343903526968694714829285918972300167532966853276468876489450064033742035448966670291118039244115303352062666262061525711782554663731044275271760616841863559308758113353437580489286834579140901994366837452386828736313709825356614825878348744409415244588263062059647236803081509407560397722838695833440376708051134042062902772710294205836838725924513574112441180879119699234023195517140205664837854531291041876898174522736654367849652654306706256829443036876017514104027384058492421308464312186816701780768331150466891149942239778918294089336184575411101729003005754244984088546265211028591552451144277610883413691474650216251964843628293215390087893564309564624963946443711087887286908920683859218325942278500991146717598088389485374134456384046473081749378763438699735235732057559740773317031566582162856010018382658950841366829791243319821116208490098685328386695959092063132058493593789568602695858371323964964634616820227645181134074366983078547846457282799328530027662033594611731644340011065863604097901750248605781731100463851456912587703475702730619143194339929273183336503565154953958512320660371140579054222429386740711945529862360972486703438717477104622590159015300874528392620242077577335074610999563942460042679466517109923739470978957979599814594052607832641284174214869886978530018351557055599416048159522649073174074335894693798947456373230742450553232034772663195473459781990179019402318831813715805074959326968918704805398746771214837385990300366539278413181543394296652706276718161664917872830549088034708369734425093011335631569955848675745471324084369507035633150667240675773555281091874273216407111949037305304237481202370500097687975526883668414580721077178983117139072444611164369966557089760036125912649457817284222558582443759776480164435506228483879607469195157520572472574421233146258282375307067351841201107763838428771955429426752372801118374715790641714798134935845561968053237282362785843734338708780389953039749028519211526749587177053698089115441262182065378024239704489361438992534658266900678669225105357118469937279154703136260287962520129938800873248792087492866650642651272734863798861617392438249148603456694163489733018787702588663703322849354011575880941014695907279185151529472275209698063401439124383969771616957622632777031006427004932443455406469152829020705103759407153832434650514223583554991541719858158970450118225274063078321988231267134005760893634229664927217962703403145383351915274237861446767768555208548061913955081459835450768482911124156085034580631857359240748222326206938134783987840919751829423050439333253958433403052472643939178093907043843513893452135001769678124537668529805252761787334948142451111895831245230685461932154763988394981429292435288098281883666142687318918020508663284800148488101692484113049369475249144331917995609574619885321979258747048248915560158338110892408463820654036366293461414613417307084451661503891666802218390128791378716566068095433424577628799916407794422150597378360903893750815790161861136097487708110494442304790140385442729659371407271886134832287193418987834362495236160531686724012505160020885451075356188241720137918501094840598021286596343877539322200288615431797797723051512545314088496690987781073920066701389373490046812813954658098283807596884140544047071635643099986159576371967927335384663982397738197561424019511206540533545284765295947824535266113045021982683975503600142221245231291461320031761085881453436423653357564623694974356194600415192250157198404788101524622708148247958737970771919611320130891246471436863277103892913668111087569445328434725348430226337553457469468112086407355812128571263947603779088815990774796346050526983570906514273116298686308830188168490181065723830179778019389394513171862653656387188393820110560161983917230390196475455870169700172942177843569243596206376355473717597807762671068286955972271033135953213478606656577282591571904001781519042369854669703684443900336886557599781304564072329362887923973596871724685813210492069010552499639026019445602128415309548808520079992591351157170600116412394917008532810333923248308429152626689009021382629213866440652136905165038322656305594366082625771002825804114555143722234752695628355722740343383598798001132038887133696681391147299070631780572763218463862760226246248236188401680966302314876935446681641902266655441248457395712677555037272714313586545193639162705660041630352416141149062376677369596988492163369305269653637835551887476640541489481921553391295478787819235208474721341419744480809304636776478252155811503202409713760126346450728824515101655644068531375252611967346751567797796819411101353925401054348586858401263703669717207465829517974222122353985513160148471394093735595418406248781620597032785460559428315902792857879343727773957902740944561308326037259728612421626043004832536873496550937344260305571945607059124751497522192757415883584153474646806508652269130493311185423458367919776831399707704431461676468024741216372551529667827526638694811603246991023558458091937892622263054606803821093615757251752970485698713199075411666019294096949005466764313223298895476220140334668199520813544229502853059037819679179517075614281961568899878670621551919980109974195097275334693138552304220026283000688558199088198332996234081550236874709691567604860589343147614628884045387750331801256187105998426321230498061230753477610211700500343072997619554654387189536481637277381712004449055243886941030975157255358700388811383124134205577834844176748684664059805394681291933250758742586157437826086232213898874046958636939355918235055825715616283616722094460560252881925247595184407491948879943533040189693547416756735633529919836265173407356587160325780542080186756362484013354119183641523239688597357440997192709979350634778645112333463182290375216822048741142707915440017567992657182847118037788105112100251207854270290319762140599555448741073089754562381751732818963181051869964259599914589699811434177104300647963724517764367926816470825822578249554258088046415786315343070791710100442600111773022941099504143264456211155675366037781499704810188410666969023490623401321548581045958201722055105280955497651828193943133180804956350965495426243674794571271985415218044676578143387636178724525288152882633864218269499479625650524467663441202784533944828447254366989223819846805033260087759543825649764650062456741751417592035292308909804533253621806145164052245028278331347403969348465482903631865335216472680459836892535423200366075788112756277124061191523857917881106639901134181284507838398418128233671183764708000157242691679055208832051033940379134781911362471293855376889241568092702476861977063644907665640174742272716969233673358702647084148484903935397657202297746684264070282191908479822412479453166143100549800590523928876670583368851248220614953471098408104418628255480553223469347481495961334270680411691210533606302779218424982164203310654361015178532844715384590272471662895118619930404232345972643990902135311541523254608329912242042477752194781622690374240477489344398106303577128380095491530808408708036638373509972067054544412130295919177426299395149953072372701704153641965289272037283368603290614815277428962361910483283504140624204070002499392257450246171793294082079283531936652694072559445990998069688288270508443992466325749946007920429864494653239738612041795052124273217380630600117853767871690995689966747341307526431677601722337977244988154341024114137565109817995605466773246614749217310370303939838772270261165548783462578741333545690827385304805327381455856313999012947990806051240096850286470677304592093852239392125935558028050420317822161808740658069730589583588998934463507612474166174975562415579901041030856355634394540462651808981519987249969607807018299918085627715482759321826665405971152225274306977589201565352480641613494845071130273754064195830231773206458223223620853240066718642598656259790392387998018943333654872833174577448069368385731267768440595744709696386596516757494819256737925970097104393452223961584944125667615750177592337084182732297736148715913662958905855903764111538825344391673731985982194663706780179518514116029041960764455470034525143230264792914949486714927007714171177974324896072504843263512081573503575823559391894560611472942827396896938048783016110990218940902027408851588085536576456795140751876863213115009985389056127901440785141837883969799525899524657046806407839328150557151722333976935965845275062384841492677767870398260459268691266896358224532947039146622568228028515614781934535819489451037674620279837317420710085587725985978634035344660416210235720186014310372753074468413012629933508685097091927266734836791840414625178258520417704476129024053361235846599390815227700436562256900427095161805552571921484337895074558983692855087588330341713376251146142907521790170964780818001936818079111426299247288212427320298839301844769076139335259040773283998124400806893900303051795208450494217073756743383108221111105798772971078172509390762116919928587844757451314437465702932713500775691594495595619249896155774434352980642102738555454228973550160042230199079059834770260312326743054435128975807847935694771711712099933678295626026670901461301468153899786834554952224077877567437994233136610052847502811624563293509946084212401695871899861793363457417338654616595676528250272556068729106828998874866533358714347907215554260024009634183502707281918158909406842080934128035109653790142151455912960306023624426067981290176758826998967089472406902109780447381983925751068605694954266468567390799062964527790529898994068972785530461507394895685379582431192073588366251916032517109159237880369200880308711452904348799994816038757056861460508893593631957700469187435558165055256567576960758152571455617427042933864392412845527625283522937410224083086925277261582163552843318812457170535563348195387039344813398865378439114825329456246208404919559703732584302023763275056042105532959397113296352734062815851476328611810541050806641717720894702618401160241604644168955755026295170989584093460438010741648497794547576830255008566249740912220904091272744365982663056479916582656086657826935847565880365205027113951023945009044169044921452981721312759950146895168832485878826626466625727383809995909013382167690879045502215140429850901770394073896628872803234961445274047509385375284900517625529048770748613439087070426923773444136336408014307049899147909822412680098799347563799952814493598024339295285920502595216137212334981113321685049523840848654904540227629044002331195365320970490311108838252614826661229259460812612786311212066740138468073747385942644839578919526646790622030864277330423204355035247178336246350884078753316915656038432373384339124348491882711655958898062113609478038350105173132503835152381757442849359940804918154498708977966652044956769020263469747167784445952471085204961141666990280936381160093690702884275175672550179162666630613015153214506717600325882151824590253417114229755754182949010938030766207971073346439456404248165265901578529081034058686940050247611312229304847150088743938402446680940138322917778751385613070512325734857189851674583822835593806557717929565223444330439896883333264153411574447990080213927599005188660717665167330588760386702357537008109611396841111867676552704300353827753029948522102931363848369908894274631642533087752872614110911908338302678696061835834304738196623213267356175998351813753026203786794179701281387673024921475248757626418700145341476634226101897310657776173089499699088320514839714492551256083472041322731937943764837165615394155959092012941491686144806310708740402385988034973067873134040563961752863935218724297427246023641126996521768978574040847458816526711953473379492717079903080539035238782526108167857841167296506619886237810999388630959492105611275536481936688457969615646771298602214771720791797341781092165286527497275916937072234235160282265783892383337550225425409707981844708857895521315009096802056465389513969139508657595621907109459064207461541338450484837633831729032552788806468316582564823905206771819026022300832112046908234303167348657043031074814546936712614022978913084700345349618129327221473659630733815288335598959818632269483194201444985968686842250037916208152966777616340177891067586099813622257999843933732890363830694739653996882250096917038403914227115819918160808899568056062674929155882566746659901093272022813463335699944133483094651460860657719581486605377431595567472594957897048465655237392419086964156190715920754765808285688810902093158471847095039776170891545453835136896041638117123779830898884549181879958053283126899609075151619571611382711413310339017481105416766362341746296205723980765564299619819417344578728953393240620209408593693984599159719224217709675141407296769430422145076865686780277545734289197991884946081164360584461923156794888627149414154262837492784947779961026504073919496557412987534374219475414863024474551459665274992057295883521561596431189541681492595699032944841410727963613986421310637639812590490324094980384223808051051305655596548685487810851892940992814419469970695872339226984996192986380998978964659730501380948918228816446640090485283158684371975289775032661532538534922103781643182247915658448700447505524058054039355083871911335326127695823634431217049535459830009163831635571779231386371574091386043516451464680949659239750073351617713585500344538480778693416171910626113678467931955565311895657368954371285866034746818190694315514652608172623130314242990020650976763475086515045352104672094337048116316436693622412454527902938479799335646769016226778029492342741018794162948901937259969411745001846109078529424253979850638357454607016052686043297780435816793661782621102252736140442899555102537334477901069875549471245004396173535140038096370023321268199972940029316075375138180652057695604498354158484858060623103319027205406798067634493169574817505098332517833715228487146419452112256224282045915442413531882490331280858017585439769686318277649424235062223377916384988505626360681105237093220880287861833912312436185082221963245220953471161338275056582792548717048003453834074103740000648403139662266781048026318700486610951637952039605576961772228522387163270888991259699482764249430844810281012985407286010769889233194315193635427908658424859255789860195309629233840821010250400665054854194593019769503699102554123252672507979902753816457650962747392543291700977634195342572404665417094153193610311066691360074753291201235886897175974505658077457385911477112446378099811248634933261056646411158782190940696875451098440801371441905507663060267691194317546832689977117015666147285464153345621555343225014884651423977159161753063706426493592325850186431363810520212064656767676222556142507404495323218500966064080406573588030783039614442244782665001410643934488582775365713536838158567552951657896730870596754071439874248981463765967726925425278613311895263001407323521619391128601672078136651285930209512437250688985402083991602670070529631904389664399868561990967245608199043175785266946738413781911925274110609796604169388491558905717133574916918530794179817659547167104235506749346035575679261546980194211627129322512131860668139640419054814735856351708273531991197979046460452706631989074522137420364828053744958686283371483541771332674101946959601335948560994379510253138773920502993139220082739025758139144454648179722269089089903461086197883088451891718920350009262013278202583266794186019096732053551727113956436606071711386227354156983555862687167875077968444707469662440340224829946283210349232997527973806853049798357661302427003304872469157477058031755088783527829658779401347069782910653622174793741254849352935665762767209530156982562841213944347044152776401659848324506717070926928575794511461995424954047204142815474600066249143517249544334352870804543756381816097269543766917767385598203450523212716126297894826079346583005479098893631784055718886301881618599758487628046580334399594582017239151592838838794269244672055696851409267003983064213866355837875523315917916613075319188632450573731406559894541617181246703084518985110142258763149952308549828786925608933007695716702026534319776408194360332937225160789741998509542622005438312622100554949635171970934449361986305698362532584500907342945858114003945155576071086091704857740856183534621087703392521233434370133424119552066402407925354823715679218353537115220107588411672620106691972303488400254482165291177508116265046296819988326661346850153044385132055787844478370178546147040546904301889058912760256919505561258278875186847250097623548708481074396039321983834524196428408409317393080276797841773030175962798291761601954465669650850386612359772189807228882405916184848418300710380467486809598296355648357799427179512691983597842176480543811772186783801176233654133188656064713109793938075148838721809910098426230726582014931176652512571004218346400449599050851204240990011874417213655229792888434338842084307723707010716280617749546157624728717174038162500053504060090681053087986634618278179457362934451223939192817004288285758485732239832977352296841651662403883931023670978745376540104355075816513421207952282536560381234188861021702211074713442639967236348671463649589653421137077843669491999624764863608214444549077949720318264902062278980941713150458794817075804141683959031582907299314216270417504145006073517307881190054121794837941052700839465792082480629789226354782831680894955591095895452841537518793536779217212644205484439632350085336096960616984279645619096027894957762232438202885459373855204179161451244877079221705053447742685474896476104516745010784063080915681212832032703001578148986910682910185045747350271343877548578304782891626052503554376781358066306614074952192943429702520915240503117955763244944115411163891626885071185213408018133521057911914527804166878949324517483935719738518100188096238475924888832326892627849767166375539836561387163864762964461200153308154260864927001108405070476942415424163738849073811804357534975064622601237770440238022441318985855325323523163605956260141181746688874144666351225163365868939007846719185982013720688940050560910259614001752418207786856857919623460744379616199718119747235688441584126476907407003101125837270777811924744524155986651343801015606584942821629974269384543004322136336545965641225894899228909234649794470382417756079662127129255424687364167371924226330700144509734915906721721849831738879260727592752357328604716093572902230017379032138145558223229394055775449753064550562008300264895543239861882517255547936306603108772707676456721816425712207659386426228914042973574911732873025849326050598093142262097125968943380457914871038062407672328312729159423949614366927674782845922407114866903841764238273968702917235214914423403377561853214816900512035950919554875852580908211012109720773989747212199047879679487800082431869095350323364908278969116223932190633318546070347267079116016771071503520040262380136305691651916962110405743316887789310776895391289783161431613964459459069379398044471294735029571958429549299355270960498773980241780481208557089258390099780736920334031145972238320480555564543909199498480627054493553336621219300804451558072272871573697138912292574414787384953822172617265870882214720182006364087307744500492619492409374899121109468242759852677804023056243113613374002423200106783941232089798241997573170556522466481180768813199626736986166640179432359990419931087787422371726815206726903940850174752375603972553058042449903739074598344692231049861772313941838071345413834954565141599606384217557088785210286478161642433846160410200960596868239894173678946834663598605481593469605137418127748981342292848861684617762063980801245034867753205176627038977985925361151461531065783400876721911696944717368642304477762786993555871018459991246807084975036419115578803053888305457670043667663896105117368025916175694536925608056872979851182874322448894548488357464949879521241026608735139601910944526608657792944043233843931690164812950340534836518038148893217679040774780501928099076045462134835567435886749654182722385367160942991728884954928023284122519638324625946381966678754508661127998473856334826763292782711848520940215806128620181591688788229281903118074193013014411550285495796673218031847418565586721830235619431111775813031652891245205143259669238998989024515499362873699916980651636677588764784517911408363540638474574700597361051746834990777952823194150597664456017756098786918099784073512258319575735826761013279373657788410931176243551066842316348591797447318063900749528674490361022530250831139954730878938395096743416537123270393631516676299122503141401200344133225808767407707244692768065926996813679119734232816430180819735014986605408323278715176411518169157787986071076380829249827461890173943477087283331058065808772556493098815321274974351613885467361657868308597800917559678536042850719825074349779503964215759714551968349792966070595508255405461573343440602999370075167127816769091891978509381366879470505071202361085075922450452397584111259368218121433681961318429149298550483027376760725609469889857627668430692589088196351042620911343465267785373887585660665082929096018728836579090378161810104558099245480321535156648408584254675071298969027208538069945831144203284481581587650466323456769499897271244782750130404746706898105937445878592578390145510043364815875678095947622932830344892339723780858797690957344258583709558459572962838812826056253381164226339029876492853528481496855161323867166524769017729460805266616282729206838136989463911372428942540622059867003385998666738626863633909202440429188701178154331636163842572341784608658033729390914286340560725756197166598833395223545372595563633317341148603866976403037342664954703021200350551703927809096395664698297330786346982950668027952196287325450817644426913146329721287497723915063538721122825973964145076190104354467239619889713830705200847920590569024911534951448255264417783595409144548559899070474586136965792850160374562910462361165730667645704402507704107518552161556770709757534908652864969846557514612634516323236973346504333950175695849402231155456066434205853594798491416963875499055496154940618780259581412776705208730502094728206182713443717692414207980035844954135585546442053369771664575135960789937677177473237811891131097065685080401438959952495410576618763548653834057900551597280079189193325452467377375053087283502153575403393312591929589980964564521182085263443993079558731116961472125971757369402636882202330489826385972273912946832354966096220302777880065645585239901441163911579883631214857654696052536923698022937446836610834692897594874148695854935444417246117924558326446273989713155323206573043113816301133416635838078057593434654674456257016027731350614975389755247131138283910383874702218992981438148341515022767383555727497470344757652589500125261076819729473375181023215072056221927898765813301903418485784277186904558146668137454023694855542138097843505763769165885803626181884017255742287358835032178983704493888225007059635552831603681210632625727401698312360451739864721168397068247633544923602794095546791791588933549157427898599445115131790447117073726940097243555812616068217842444606364080025190893503756777279881078194480979437165864494502971921465877873998400288412032809498270830877721519658596439257937316301591418530834376368964707494112918995546566225475882062269531148816039043165658330987569879152555206320385010987680340463346303043971617651018689409452255828636511894223387900876197069449296956752471318697108850614323622395223267186217160469230320759901655387196882646909466671885742408008745291630579529843281419507443528426014041749619852549395459178630640849443438582825733623273230900333965592938073393266538168633511142544628900955052785803147506858652579061386672231872897900283363817047566971107883296670004897096992678760726286550906517292637999592915579539474633270567650836831570094166973583449282143790964763775641168426941130000374503654377072277123398378086712471421597310234583706521890871848007244531072040165693883464963841355914015715059382958877910486871847630091206383525918733925904922997033280603131695965955673626111361817197870724349476551520932277350825152327176145087204021366172432781917530513621732149777782953911261537426292208533203004178834426226094554058522246603587753273566536939941749349846421906279883076262193342346392673373147172714045364012969102188511316027366671718993602851935797591421817086905618918303603583124624999768650023678426762744811243060052932442858531680477103389951109524829811925617676497405156058672288182942649346969274593299044858253518196833025294480999913900597101231347365126812176994553361055637433946336317143240369966584146477366219502904285806585217418628259993015214608438911077300176784248202636512711294541121304430630407069971898721822256980641787837311408184831643478658347008951061583259845539820600181117113764965075796186092346705398057616688982933138225220352736067966394851087688547952163070948803425987137934215837914740125023389891079526234062363320654712778194427940283668286931268460933385994238612556852295287868017376818583093826449679463016737099679895931875931068605686054000142432574357925054151002866334690669147299277201245226964133353861652701772161247924461030338037524272989015312339303974582300434698687538905240028874874122459648114285402904373231703651751616045912844351783219107723014707436233107159195945958058540408842579311887857406410320993807578625667451643778271785907700433351454399197615426796349215323033050625324406817401322645238684374632804190798235693546987390928250470029697345537177608587258156201189895663814205137603141111527174726392047938905088142420336536036432543595159585724988777738302548029937565088448601257191466545562581012876758406660185719096472693396310823414492109695752317901907102938642127061730650127057656724242078445013961198126201997182917135517502562562594908465422828448353277689900790396764240173054429583579611053642375268152091229818445667740819425966405962173142957249612224644717942081061465440484576410854945815630756697504129599403465000629850674134979208723295842590684877199781916824279668505339431390935615909963822090008622434576179659099985620968177532390528604320064010287613473438284894718266165288670734083637177724978743270185791564316817883041024046917491123383112656912765306945488256958952481881318860272242278993444227130943268190586300278400487413569260337227408893602565229410113825374695957278284971432465568368457628921346749529901233191125126771075827460865945331854688847467669646876293875232425009519273894957947506771638960421301112377399604191257858916079099761658691494395178374254712774133392412094768301708640210405835964088971836438520002752375789143261898849410030841556995198081256093498620227228534064353756756907231363121212088409451044123378144684328525173664291566974665227409592166327501905116433306844637324783151758358659907518872419917841307625369411375091366138201581210291150214365216116260895989048964130389144305466478387591364035821472186434649178558941642069941566059505606739120917026890055616938925455912341291004371981786287099158299471930856616477731632141849899013971648878669092700916097812825406778952992946641178902382561720502527893780297350239015867242607071938480065123832641044919931320766731592228378110536495679367839786483508916191694540519050350271674220149666122226539520150559331409981198288445203899249184521735611999352810644158655860733475375567468343160010432046022452065712898943153178345606878888191093282890396167436811815317809103102255422303175535141326782640824400942630480980232734635437901246388076538108043305143016581298047644828069894447121690270671980971836656219679429777860339943720159200836515447415950096278910846167763203691173610901599705692068267468915339092653974859254580447089516741914090761019847012565139697482914755238336025477113514827086517452193103400681624463974688410932435768030404625136436288299599402305957422200448956847075148897368275534229962597473449590717962628174624206058868443854768466457151989967303974168036453934957670897169531092348681621708078804747475868799276593521745893171581834878999066792475706665317308122340426863912238699807336870838906264005341566904106183020374941550168990446377356371293992335370576860290831232461173470045209128875527359040964860841349100186198599724454376435803976740052139585207040476175107323131031201295067848861533325038625620303862085612569104719598633147612483428611064065984355909698279493617126552250626304546516736933946757245300044308084314745395517508169972963322657801428610564210392915989736284862035786993101970141815667642396105658160518466414201909325683433213359816864378980172363697214938990823956460697982850074006485780044896630306926898559320818784257847166196096764604664358604987197232350925353263870472089229920078000487552527802254968944256092206259635245248299278578496628633345149561300578795162149284794479422878926826675507951169577235231466813583197348014179482090251129574305156126520702927243972151050836341006468508273507170011838610993118976214573111170983297054706145746965394927650280637720244980800340847670034137001442671147740746832119934318882187988594164734938232474073131229487788552256915092957280541877992715003221889586090758586074252792022569760325710329453193094060914868153937049838291959217349422542752901831092354984833928483169835716967578538156265659100339246768537448014575928008700855603558812779271853946952643671631985987322763397606695817620374997182119437915564325714125918277952369635666136571748328030898694825503025274033890031018080072593036570290346238378123792704049190373760634676481541772569316024289110174045031808353913453413209880921037342704300923690464988304960666932784835889161500513370991556495754197421723800345307528319825315052029622973346152601664516320355742236173083278031533251557966788089245078463883046976751436639707383918942564209846167836486902033305465988738002137912164453019097060444775964406855319811107760135314992802046896094961512133817856905686622980127671525992393297433401586800384311097249479104498278529856937808095336753535822180457064514797410588420119003231726904456942216232608860486518290179750966172739244672585624409428408963188070858807720402141900930106575661788781758263081452086397475777812347134361844239310627641422946602148562434501319358497350724624426675203987959917785475288556922080615847521118596623312118679093196348159577638668245060772268559865932947224947090319547759391161283860597883730100092832523990829240705229525133313197582597889610585627574505288625927126574008035182093977332194013383043878101054100130063857059073842061422507762531729725673737178307086384805375089618315911474383017441106447744282158176525278776059391631106615448395555592919264955422589032882447360123627721872587400242070600882973683294846055328837062379894462600321074390036528675954061905906070365444646416019384050832316140842032847844379263697787413859179467517115160214491841953126024526792592450093236688559544298432042036210194955658859072844272550719142964748417059143920521564739761034749130427551510068962678521324825216760744986033554290164583918151556854810432488826540955520353693262312004990982101753973445017910958130146878155982163346503101660240258638841327173807784591801488960607032610317418932140858334487979725677503706542499175915743726395448843731425548084559012214332195460981988339794134668726597779440857471202980732982546709403075548279765578249930451460918350901419372463733213665629021972212642264797020783106117438295416257140816082013919170484278800526774530779333688876442713441166852271447340735610310795727954935432325105512261531790359301045345471237243164293767004022534403929986654053037286438553180740931469511514009999477980240026215843792032162978113824817483304786591517793532178505772777674570863104412785773215125555489867123494972863343716626636797252396809426061687182013768419767747989382201299201008238734370299311126880392784781019495017155061297607463772587450540314503300049682903385583708458584291280191081817145994609035589521118722385963096549029516840763958366684215076074516830774074152091637628778205938934609692167428724710338703651328925667966345217325407557440717076556158286921043409968809122774437737719504641020375083866204544891541291590571010816942596001129413553993553071760883742420594843842259156429157621311817622188423613496240531712898102487702614783842556874299519993732739297273799562476505618607860508685828586679481966167552201977795187233778434073008636881430984303706568930462639044081479776187728304589359137317267182187196205500282416487105719010771364346649781407506435796913764364422201015755784587286805884182775425087146053622029173410291661862226670172036403015640376613817575713470840030149678761260871669033825029844339842052403572369912256284145720011258216670357473674407629231845999255315602281072892805929578394310000469030402377842771673662575247131401978431383815348919898214443899611961801786086339770898165789410080782871413585923122535470683377098696704365183708428805204391083693821746313198242877984201437196721331588095295515258890547482681257941259872896029631696217569374152319717041386917111193116277339536225613804891571020748728296149845757923152371071457673264761288808862620670942772520015078789662407674333782725015209353887443294401556552599627070774844983675060361435359859801040078159399997457426590721664391358648831240596432447543349139617133385021381755818440922356660520759097405430839999537598039780141638131060658012215909321193736126445030178748246446123983216579696644400737938662050371648175445293356469130422539751029837420419453378130004885984551635738091690011159691048635574069818583732729877925987650273021138574483186854747596891235744236575820389078216570541717184035300204621749100899005805995029244834075446426306030792093271632774951732902767784464607234675238436955618849437869680285803394997194123279371131807725414792324494288461997350388113199254254841616342159533056714071725696377620278654174208447508690784161076304493710126823085569176191330695401942545556892485068851630616615352594729831676735958833567833941666669635041906544266303975762945115968225328490732726355958897903699281333072589116424163172476980308904637262708235722627282918410523108888166618787374877295432236615174859163236459594595584916392378269507812531260013191584237817030877874323187908592164817964313639922482314117037023599102997715762116867446580752887252469358684254572426687947372091682785577202040274826777334242216194090529903056147254990678340354907380390911634019837334561054188974466294705583894731052784286980806490269641423706461119618624849934608521067302831252702680532944886061640230175394086190655591251236608099393123246635195109708884373099453467899045917965323704719824858228996599066971198420753174820370664618031208972160307917512954145856757803885885672655008012939822146026846809211475719390484223533826485742932291055152181323140086734039615637026519043446149901508149133301303609367558609916875905673881055515488822070681890415107340231980835324730641023014975172736481005655862735637825250087175552215440668109444797766815227102627547039429935865510629426627000895160338438409386830969136862513621957749005928809429737152660139355249594691330832713703101807787385962742634413808751837537409707886698013844306861450500655500168287124118510586424639257096032012713633076219297658796823738392963342542675902077681425671453361557072077938668075821695682861302381579894057166848090864649343980801435775878339643126857236868990525504635020709613404433758462075207146447245285650459343852399469276535503187152732664077304944085591722825872713213952920169596948408927479096026447881214210528910449375948286287558090098909104208359896072700909237312046924873117524669597110848374135411676937319928546048202045333587003180744884684095923264812087238016881239451119884482829557246430900396944584192711381349353502316871920553686668433863077559731697104377913089886990950326488942682311955751088365388709915006829292299586358455812729592514980560020920916291008018647040791617393906103253049829514167136584651038110581751841788701863859768547523329120867653056236913222834646056663440422159022723345457377656887029921229305325397089012741159786475274360849470192699252789958678464622807728719960180441227095567673509976546545334328639881026136439340762644101383044385614568988516470218622888117892256956035957580002999286624298674621088928401879148161341585486691023317406502605159724762327205354569663877306603291604339087341729146366779107833946329160250672916775832840521982108912707682086585876434681500749225191450089488840046900791426702594599094159856250396167728279713482991739960990884565078713244492610754616013418520534358748726616277556904105595526879407013922247575940635807981868303367698879150273156911036892998406487350102559238160913381577482259355969264629066452455878136930122341102556455411717980426181995365847463466476970411587791868622097141078263698862702925686668348110364807908902088283312318751985365507377698722457915639830441958324832398192823110200887796642255363869797187866744841753456639104373741630427787162858621528421572064652606478955583687256400535516953508574023118502566927869178966906738021390834815582474914979410606210580764193749237004271310782301191695883349905173015751975353732945434641319714604888108020193369821360086825889695700387505431646652356169363156398284604434710047587069280695430657970564769952170353353821651582087684869551954991250996762060079543935873474641739219377713029770449577958277960287400782922920305528694533465940100917490929777376715927515669118368254655135858084345129378992129519445397208176656707297570191516390075381521804338049901054846257344310968479864812729387828799664722091982419124805149481698614245886667745547312652139502973221067565519885079809186839925999533605784896842558429167708480993929703524002006993272615427016460417119775276306432511674910259738388109776821913300393172313434572117904843484447989883130802896601669710329398931831343789146360577010656683929369835796472785038602435884241514014358952954350291584572143682032128178573750038070385146284991729283743842324381989906648385607078924503781840812777307865179741440698155321473763601867846020525872308738598963520314762753451911693078713640708034949390917609698693522176794455314632371203646274101238936180029883407823536104487928535815243638084477908599143472943012250541984907903289974881415212232869520237804013635234554384647449000675116597635036285006956480501748844025607018554473903056631950202720190691018516125139807962135149167328768219847795042472019379484926814473796598432308531317606141580382048566768238456446879019367588214775729650583894180597011286883241611059511195161009694188907118154692167138259691752785138561641835848097844262867916708491159922056590811941351804138410331001741536852360406213686267927496310894147783650125346368214943878122003638091469446976215851285892695493927429283514522149294470118376904994187334867060211225161293513590740294210433028874240723145483735242500857851065780354216782841654774139332769481286589641561133385093646112977830937142737613910647152233370812019516006945554514780056520035351576272823767171348479055329542561767426711258003271351883897870162733424182143316113747580456559410833409470287574102983572089196440934007244881280753981211347760095738890813766215014468544424237684663559469191243583293070969730434458703776646751418161944726642656215671861161538608980942412666500171961812964658746950513787930649857785496152387018985471934733281848024520918953909885991388099727154861481147732669186421789761509441372170199102368935423555034419596893210633283123428611650673733788748408020574485897669862268312406167579178681366223290851427814126930086709288549999077366160467558880925411396887638299263479863427065733965321567483276397760516027501358003668426991585909631393993698622763545727913830421147330512994332855571941592177668491908444809567577808212738724104209463208427293225476289557579303186480636282798001916624301505164836492435944157020482370253453894165155812608196207500957596062427483486705402583710122424311475772064099508490430235056123641716176023450594128960326987429429881826961361219718141339111892077276330943347645418256504788481193272600810060303864775738621784307461520653400690334251507660489080805529375599338974948564694766747783365448724498117127969183691367062647275013647027107347694462437693758245995486313430949524247708598610178968717976586602883626647183737285203596362198141449597422839595773152927056367153586789631817045225695510749082357568626376132980643220099293233929159644044189610772188164502096447146491719433800858274145999767496719086238348573501749755801758117382129537131163469487279626734681881909574821480765723798179886830513689277971586161972984431381016494297026387083409094246187885354637430802966032574618405872560710826972504206478367118803737936617823389016847738719249119534244510056760360655857575230315967490345572678690222427589618061537015202983068795547231779245187463092772096726313537170116336921204955042721584334607023260078746057229055778047152528716069158536361323371141304996180959873007534069370517968852006744009721020945093482056481226966458485068556706199458399900000295902221433032352181714057755517964659823083382359526829803446920337912627333995935654193658904867949226839038337070732095514731277632365571567571036238855003594058039339433098168098901902061839047863125919742060553039425017147294871132809631230302218743711195571189615674528734244491496872785262489984542948755658884670641064014340893465643367462033273383797677100378655902885778906401338648109657136583185923040431468760342344836487688908809069747861366085997295926438233776792645942289801085427122238373841027785502669860175089763403984838024024962504985667019092598590207890117845327113774952881749513648361153194454633553156795215061339009475258891824493822185960025379893649519903635355660615435641023476716514384292165783435592533578498766756603963422079058780945711931112306487159771871523319266950762773993780847269744626310014811704247127561875372587639389947583062018931856266693329546015523290318320521388169002223965145774769216538650502590034319214766473021380300724610469862177592041227694321461638306326557376845852446778427785811026089762871143207984463377281525270414363543548853787443359516946984195836000665950211909195133225896638825937096785289074396008077463950131519709406845265237126161832357310428578906670980572233783001608227074931945928378627150690214038470618201454705598428312024002805960482514009752381172937694047265490243164341234759599141413736268970591718927272790307420214118365933821861839660733426113160833279876165616822585756931008433896615329807940396114020287169077058602105556152368001781440889556650846427151725860380144224109806263521813734909618626323679934722087199758046409673171356485997705678840060598745119943695776015135439557656501201596577947818942050441403309071454937026667249165006700153737391142780550313333907137835088196623639827724588088060407511301060433490435611814096008890166577789241378522942412461156952757754721320474665106011809212901316232976030510401798527741164272431669861252316624834454291989833086429080970498968502855294811910360692895901086296221516251600033863600794255082009998902262082165974088680849726201263637558624281742957879185070131360610331700123538061925042127930079906840157300823734646398977354138357117859636644703711572998422965213137683169196065607273217825306926433596069380929606041965730438200410734033370399851932294994221860158660603439537843831521288740472880295517489198276299571987220613915298972504544375656441703853933047591164873656986741807735653482115906205620591731600375675769791779139161464026587974368815217899047827025727072892976868566262537891820106569026932403117312521818656520450458540943802467213152099041859181292133606634263684721584961679338411929846138718317210992737068037978207540211933160990463910894770760466331077445456840965733785186430790922373136296265024776575325623368759276045772539787301088470254556912631651400745733336495560866950360302961572781015371753127413778505483551036936800521398820807350546986609833643159395538882357581167721343089635244999290367323427849387970495593165056053394037246770363348401237529133313877350094566850620377973006113139269318222614340917404881602226966046217210159302582498345976390260159658681362841387281209248256891911083443952134978583891423275997167844216530177778105442280930214516783614821708316311186013078146558518105271582598325376632246524863414781730893247474744749447765726601663987651421331167722658452679502717036292286961399205868248605760699864929827838754057048139655838406568170651623930334668569018977005780553595958923822343887432529050918558439708758624329851200478061588972224915766964585589840387709510555916047621638678553905606458734356774312616792478737933651428573187967017304355278937816761846329848721426799043355515200131521232810305848923327389683288075559493426215759988923567023534462849367136331030762065879239536323426541971037983812010910537743645385618505647776431807769624154014915434045180989233289187214715547406539780606590419084681294647963892460326444260039131498076905441331580771689756366809756098020960101986230107340217133669548388280445940781218592982431713689313624409107801805225708826696215421250664212920406160527302828266178905688753325647852630720017234150161467447792728336417097399819876018213971553686328269152583295998370343539800913524188713546615814991232940460965540554079931076824475822995348029434761046199488305588523534173906070786560731669828535563560135300330320134145313666177841619686994215794739250689574655686341890888739323031919192356168719819102091661150843812844530596209266422807617624007750363050266958227066486126059439991456366170272878713168275921786037000395388159070040736818681962857937250656190524458097387357783539417477962864000714722008740580972152012178057257971319834206980270037937439372527184974852742706862151530786353472823519119818079901099367368405333961902804699151231747564395792615944044561083079144863138913090400874184243113321252744929177230079903739477387115435854108622504249772458467184111679839087219073751191650021612629514614987485589713945512788497934789462449403441316949119499593039072975023103641314895176435972040376397414842093321021098863426359819154868442484340622615972338171425717260148386925021328959983092837136874907946331560931586093133408219390906082077177398771307367880021636823848061394868745465758561738341809044199591584679611352763370128523804246943076576905537683676837907305051135874834537081552854050151821438122185838651616121676930587962686423312012562241383556777415986492252310743490612412703058090060049541228755629157765672211081611838859648845624406388809232794763060119962972805117027460365842844701826501731514167211901685269879860120293243335313701948630456005265574892777833870018811600168135521651015160675009381566338525066231355955667955760033779366400483365157302200645436822593989004450338766890986145825631813405415911343214559330024287956896991598789704428820482722336554765222105992788506699120967635321323143390163322682414852939650523039015700045337118829387093884746096553277106205033858707342686358905089084102472286409264315204824936183234239576205569400202573156917434215352096786478746872339933175270430594172917219325960537897442475770196554729687972443916867200210503336041447607085005077476619510005115112699343350531594520267052631090539055308842545015206561062655940654865086744386672451754874127502720771204461117142443572350477253171640182663156902356218574577447348788690723559863120336577380026492293145596454353171300637921908371441787744344906407230090887617768204659139172010350786134836713202259288119279179922656308439411861658698679932808322779781327986405650007094184408432641105505130995861307531442587499566768540978617768434793765710035200521552301866515145304946506114376592735985763312018595804437310455065465402284253631338854578914194711822188993798708971841742560491892688159375352102721391998956669653300703606091818483219473151928797854800244358815034832116016185339365647939509538384332519604670718474351803863659947775480591521340285603497617421008050126620917076190191927608158581798608212940236144942223645890059871137434337485790057655617118315413380961212379939388402497651780779292122879383793588151557420762589293761135322432835084989576119139593515632812937397446179935946835973855459994946524941616190176435256648190671827897544291626615561271372248592753521098186839045616792052212678752385927794873844468582550741146971791870484885578169503767439113663446480342695339740409166871360963932877974105245112501779778189563025357363362371445001826760901588083635636528807776232522852819565209714749329761234801493467946777860562173347414238520769930305901768533310302261427361788410477949817190328751753020733899675291279262222393995850816675892593828992328134312611134624086704808416954137124403155201033927290359540904448430807185160213170460718932735617273966906515273393917233352611365407469726126525627657455782466578719116060805570371030857898082962879784207701770591705948793668877267826861137704208897381837081346603397392426525817160023424579513885088194663251456636034164473791110123267475040575172002805211576562580245928684942287098899578856471023999470489424986182293092259980920299536585827163845864150005896662763893613463497157725169988298557013790562335928473464521445263535513425215077406498245091385388779646976201270640659703117575969626867485634264225242735066534611967778077861266712269765584033665232781730604309829306218419162855397452335790278169141420111626482241336458048062141605681892443816526979401446698300156501369211604995654991104987936530853531333941051596738019112885075386748117531170631763597278273966759782289745290929836667344283565299487240515384489239125875911717067547345985960595170469838549897754466421627636826037175526826217987441415874174726634310513958760222901836073040878763311886731991666292119676487093402142840333804181366316828260072378739097930301245285381662356415886995855371185021219211186053190141758122541491680916689126806831123666118383823938478838952988462978226401763317509267097172348654431762050930814279943452268453000081791145813329126628697794209839930222498931025871411672270177897645860379032312756624092224675753428856533510026118874998975935840629019541162729672526434947661276506381802396375380029320646745395130442240955738207533242731077671189645850977567240702631400484705120798580213079700220167305530965813744674063311147078824040935713640192484396144992336156257316791801862519516783407065198192381611579533909383951039457822828150127146448484249194797964708781416778080293883061277618340418321611460996082677339803037544611313071816625742991800103119934389966138333564554508118313099462912766950203737639143705808734486287945074165843956109874192416920858057206163707062357870735546624174289242240141584317654618901629972412845685301972946754433431613679021894090209794852417631993614393774555518554741106400787152805457231257119809538526292357864967980599837459646758845503383962559201142363740684063493746084864395244334342157155102255006985717040131843575216536445998270299879223351599292612063195427311773101531154023769338600035111488291189430623364515352364147856530283657341806636435874672067458757391977753432845441290529504661762320862577511155069140034076443792165131913137162464010087950219214407854730171315295630077671189792893041830719924876571337632289497886545255586330707330373070584352101298608902442784805623915949687311468723707586531775145485541861404290241346149453767803650823169521650360535239749489200133210656051666597268587465662196405124101526940030532197500516211201670338671950271625900292541900876789817926459776942498321822875928922931496324446464276658563470765544347114017384689732685027775472499553479183056072972236643358331272204136322887821461755638916862070579136417989523249472062256202403298503786879252035757845185291308322346432383723676453913825188522020842526541139028074843105919565255399498334885265295968580861010021318283582495692627719428548638557726977063050322606667565378309169367862103968932730778899026062410759906025961030467304640169815405535362906894680680728652001486761210295178369530282700420802347291485713481111337103502617097437878567144280150293363716307167697349202477189899756053544597584530799711628528447755986608291232852910059560749677912565563936722498318753236359165408554224314481279208023056333574921899694436346913193823613944532501213042977700318766645843403164295964766106850804930458959230321984080827815720272956525123000300667687811664965058632956940842594458516285737392335651925850357235238448826435553596074300045646515842353836068106514467414410018896689589625223573001183170066194168556046760505006068577713665034540769695767462530997128498403018746857930227053366059934469527075560280304319429805231064942356752705980818695692085008073959469024649272077186412319040857902755610448135404817372025332931025309075445911816626015521365761928038934315405658647190726138468676529602195783053484673511934770660240062076006544192848056139507901633352596522929210239665447776601990325534997530657535878595369048515438239295907267922835215460559669340630334227066091317618548630029147548617498066801552105210731203826655306078844198933288877997222031341489865172143802455359161464112014952168697910023507004131262638340927714090972304785839625081760765694040139558355153881365152148433878193466231511946329939204838110065954794115032943309269456260256623449122134247394951812737018470123089237714644409232043790250664727021389722820277612389208781236052428750168400456718639493441009788002412486802235233713696220484390437831000616930782548879023218151594259204873156986198836461927671524680869760879816228727289314807130677813117524421181922540990736236123721029438760479238762263940701307006179953496145943120530223567230685973295898142895043212371815983523669064458894273429155469393501222224399082393164248655706784213150228657739202336052836928805829021453697644109665205066934685919773491664728422716719500286825029335715031183616495798610357806556648430281622777682882284680501843548370786203408230900697442113302625009315799778268259870606060218416527394756309496944233397358793800198415225275303549704290726418275067925021312295468789364039582979442469559118988918125269205092265698383341210925031616446154468669210648482403466670226461366577228827994929800613947898598055670121052397376021791499007134795808596546605642535224020606785407484367571924951230954599640725877240307476089128899445483377266453521413288093156552913436664244052317239038591018812858480896642265710574595182164012019268020109027092477298921289773049396949697367383905325368114250617191197695793120294497462614227667411799681469869406980791482957092101546122177443624442456152904828198824549397338356586794058589100628521652419946665163546662174501092499764514963329476313920579591854827728043346728150678672385016990739679113679154345218308798185861512706604268062724305371589353399979131339232660657030887103987259936500567763646649113835907357825136325176154426361339740401708568397614729319637708206795327643503526183568051092231950104424490423594491934028376126371139340027225432910806124527314994590883705138034107028836092005568766224474012453991826977986230064573766526362038367198488069427947042059960487551731232734415400773401451321227529370322854751009095609255116311257604284784905358087471184777105176392954427119880244945196867991224572486469512819139615336747104693630567362614144628766782796691114524566581298969310035812537024387684954338529893643163061076832051821755656829799430956770944026411822503541302887567811654286928412054786004337355537329386775480336655657895697087107002482129634207270067768254450795402200136524740147124583810829572756168331003727018732593866727881850150827691497021954024079714575359772111618215447827810191466173887023749338233496429364873382365990772070645271533937906777008547511243911651178165949561881281021278533973410829630507277597256650736179848752944047552202379980245057958516459549183477097850455323366141197758369648555006778226234164678941140645897666668234245882782935547359757905979669684607985938285790383540885468916385163472552018217944331436277831768260945725674065268062621365863039849419383024265077803591610621584279559171284608127742464782763121347060592207421014549235180440742466178039806135778901343964853588085265032979461067396601084782105003950341039506119015555223184169703609118664470850004137175580225968102920050154745690781837241807947614168280842623773653337652472595103860776788826534253587135608058267188662306219871560311359956928122212278630113588498188952854706116224086351437234719198450649163672586083436119107741454684952082727025773141612214381927518172953340707714804369556196436176680997680899978580890647775349871656750249962590106524506519035723505783095455393314378289539313307008321958128840653129627284177378994850168344957656098949343137034072052366457710599842533626540847858653685665438961262491466387696597457588543457007031932034047623286858976385613684096415100052307633335299111334375124289385984651776370025414575226701910350341907016180272083757669749705897177289624531673930146837924336680094390530026469644515049646248367224499324860045687546157117862030313706715219013747986169002980859613801594789597675908609399013878128076077111627784155083528216684141439060334319004331980466692479771582491239159390797094739773126591609566254714950684824931818194369830400921665806516702348733353444312515486334070814552793913139469029990937842258241724397942747489510079431632716739222052818041828429052834663645268035320210643510959839867209378572417409346441612716420139061577090494974515149871189077714633321215757957869062519802368663727354587527713311893165893164446827507584480091826873677758191771356765615439067974275032070607431213595321096273239319282449329441362510022309049991227623044269836638398827989922805706989226605356815737736337669907361307776197064441134358312732095814042039195809599537089151957970464518895056232919755962068570175508737193087013991864591704841874149792092577099446774097790633366000949706614820702209700074809285386326862092617461217448315918130719007078437524019155872605213180465804067471026101919047711467695259839202527889398525963298377990047199751285543168357478637720823618114830770749260437314499860937971015832810089112296855310246944833501028904283854379092073072161769584471166291644025181687866363507804971188381569101317134936521742887325471404703280452864216948008401788191567383385724417251186616195533804148934206160532374943606692288629724153268976210042545990226989698957036555588393317290544978573694451114617121397781671286759487356024705209964885129835896699812879426852938579713322261494251718112266653732085420470671949303434130154923647184182100104891404525140964665945407890588353728160660062692465618498539068084854830446520828432596369906780097379211425591015381305357980337912216006224789283514302945669742263386592925785747971544628864352865738006362505194105272017531823348096242455242941161443745746251611459387640358749326715205067984539199128382613536634304402441674085091576939151256833032167187671081593843443998603489319748669874437002897432085615684168167506072663050969557615802806105822442733303669981797029468054422193975415678161780567593106259365763784129157895097664919593241491619537107943001142387109000522018116235711275251098203091396397140209082376655793875863268570578208335620462025429981177990746548109633945695011820247493463921107937402938717274353407209239776125667880936476762508939498371704840769266225571414136495196274954223250557807682759890294518893154375079236156125048089605508051655194801944689652439531347296060183418739765353329390998567182393775192982976419165333302725780765649445178818611294122777225936950070626106556846094050386591190281092498019508347184263396144296192147452694588103029749590855143984829465214691691289409435781236171003032428124972864597613635785310264037589497097626621228241484529506663891012779086677429445350968926597697412867626570972659759599578922628472999187346779061156718028790230810302022317777334758808796938631351134175980711205728916864753603038883044219775675172772296798372567769157886708049207580564676137044866613258177087010834843190022883447515948540249317820564140031008280911605217292638742083710819407356180179298915386117487423908515982298079864157274349814194266418104606607982606327767588319039359474428661780462727841355256026334399163898724161151521154086263278566787213286402191537547244066769503219659221684673525268890727579315421230685456236457699599579352420864081965736538936820638552953788388299723386306391954514198746496303596899976563393935298217813309677645503640132746392149871789350081390182995413187090365944175140124269718807566660917082575841374998000263569556841725505080913146247842769129593375042214304541812696786329919063547713416003391398803401610537060967832629618210873657344242154886415408138698450025045480485535066863606598140713138972779264710517956479969574961899049738203687693692601963884656995067811477533711508725882876431667900274352147584391170285933133370480436524120614038056901418487127095823429032137637612793980764755447267542657653503093352092735249341705053556190858416958808675333083743615524986683296998462991731221733644339465339302519044560909533362042748634482733979454274027298579061353933006334894636722248350649414143683144261574123132394470668085215968002999173414924166971674312390085936720261039190672560730454895924052629907422676681297632839907251124761424153262437455905416375476039670007660138553799113803664358589743094800772465866595731713653555409871938613634390373369834700624025550670058397082304841135713898843405016603030154663961072709397076029769454524118525089234592325311192900630124627277856013378715312483986752944943485008396705036125396288637441760653566979827505959915652036183468415439425992555992475106535735739646453149401228240471339762472506508308035830041806737182096700540200578621783264457319047003300818494087591738233951176576955342332443066867692551186862238441091101703606250406548347345927878296827412822514673692311779946542482163881812850204534048879290411124487692534510453402459955827392357040249419067034178130784701220141385621779156102588388659410449262014329959009659422519695360438228054148476254243010615661459214456417942766374114686662375593811308812987658618155226807134848192432846175250197078705933990481451355847257370606528499547956240015651948839166383112085459392519859324336561479215085515617612083802948427404179116043179236494965684832940771065830722120983674396607152950745639625597754279092277006091742467351575028531616276235239256054843594869861959424851686125036936764519317166856498545217518391248155364035223954233292649467335315794562416779608438773922194930167598662761944040465083777473076512395679222293072577538529242207710425437163069122590319814395704094275063529617620583457733210344580832481957376415732041564145484793156491636598157662399666915280923960307630786605112309074398150497900124717874652511492718292098256447216377811304945825123044221465655775344925067274743829459688560993982463053741261658117630667354154079997183685764895836574137122351948693149631709007661977224874079218345091700898501036925035241885757138489900575498558899718945806256323885414338945977999426256258687649688837985152101434159783056602555535982225088631700073184977500566316564575564410103799479429373959154594764447097514806762233849807469974977854052275685157571895060821029769547117403528192224745174193616940315494621209745949585613214670176071921797016927263309813144887606994503465262052734181710696454141888596833764480437138106698242020734132298075073844391526846234076139363568622073551570860885096456490221845847970074786936065369664231199903984580386452978465142265561155891235194925212428585383579209896993111152438502407696832554399819965919445017049242797118635181034507996761632979477060471565330122418354248810922291352720210119353135031899072752267861435480767348385199928813734510280255636404997597108022519302213694326111747566703194314320910627816064069178252234404664359399348723411664468316785554726289274078597213988560848211815248400771118297764202748207168604338600673757472946816951017261063808475791489031684966333858020394321515636965470150532871836878854496162219449602730679699558375737842669756759492204168932935012548413146427346547394123986031124754420184677773277115141634825524037048619361099122662328653908043673745874977491412161592218916197980511574422151730806578423135212138345606318828125084579666994735705397959622937981517464090715863136690627543049034287603813282858414342206947162490574006132060381714783057261751129051656302711083269924773187887075454766339466299139964574077538761839956276691398617485752948163941820337092218607282178323093642130511248434364171873415067106984583537138755000493539435483109920809356166949439735388468452981655481172630059832183900983777372687737203798799988861116594995784688634784025128964204982993433717325252828241240392028869681545854726259853669802768344245068736968800909601141431620456691817116238575809743707234902073155509757070536056685307916472412650725481765389846591314154009837043232650492142895729999640025794908328480593774368329348050064365075843348505543889775108866402352038691143591595648554979237139712368738075917310983365983398187780053011000942841687001289568298298451035995731622108010097782732461627803187396054540906913979469990797319486155117768237939508920914677045468447855572086897662268657201945783496199190230935187744840921693617922960598022075820618779652401411968866589334256919765285906979728908441154131939457443195376731093604329976418435657520666959296510257736793261286016077229746671058317564573601315333979571308929509565541945548230369192999235168201619474588629005464138847270278244519790348229304124693054285597026552302641193268185662166922073160955636854032654830072062308278374627858738156117473578849190587191612412726617998539786349549167918386695601723370717568271519538797229694640330108073759481039845441014273432804353884052574417485756674671809650655171693113758641899938516054718558617030160311496771127941886204336095759411832528795861943440296074737642049078787663209859416511074702575122315556577060959975218017489656692851131488787823855284315204102171717838719069821380394263659518374951627833770395541955723273746182926876878348823582513792637641200651691829899737760223807477567405781758897572068402758238079975959746305620974968255875429258637545243824701570920789544137963280688255565545033979287050840918293585058705565394331059532114974600654359005780343258655773890121364373438803618956819773375247469979569555145364497838602040298653689363783537806126130722724348324932365347234841767386852445407402713420068053877529995238843104859761470473527518265689505023333951615065410987171507503143369755195009982111021649429663433832001834584536074163078189429034821467802220260641454679175894378230178979644323899780710518427195071419515573162957955719785686415814644376947331877542603210649944699821127958729755498406088042269898714949942871510450537242156569240189654609633117429986992541477594125238722861974738364816775928265667197267937910558279294291061607721097902185894151474077390416033724586793605371870104047205180284074662030919321040086441209302635862139936496915422346654228356278791332668645750283057475042139324365471671310478159419653498167141031666603998498576766422268406858831413868765425777727342629539870092521131620288666543532317832139100278633402588675821595338767675817869662651597762777581740185656059730895041110527648982537203002944856907849057956312565814781925956071815290990996377668731628985065576874775660355956031121660922776786007725431791733034343650497731651683694532615351964777863635110195309390854032020640245059830147365427318736350108894077694123764559615097983651155876807621761253400940146675648440984889371058717085084619667992625113858670659802710579841891058981435055441592479794679644038091198018002127713224439846733581973388437448916777277253221422063713206041103011289753248116876320627917618564524097494284159338841449908555631852733620628722492242251271226589963201834227490009291994226774982759016145623833843457025812398474774862907162322780563021369412799395744639494317958639135916618191712246886588935063596193009135936021324626796541349839602124769039508013164055767053784942614707833674069615378499326696049322025871676892888107111087696342521598832335567065992207721453041708807723327393363305639287576710162394711555472186701400394874665286821866944078819523281508728512608894061495867142163050984113624846555859983097493774670522420081833233804941108600348541513474511331806960793774213471658424970819254507549917183735435240930171668201286686066619982997410111795945916808675360236859597226729163116342955886057740404899434761540419629828401696380294841376377953844750838193029276556945440462260510785886195502988952450654035627284968134368975607246549534579828451649819108246640152164714405933866469660803281056919420802794299400215695386841483175378922957509124246668565938591927751087409511201506518009587320765830406384422539454365446189616171458741031458902887799673354246520173325973774474023098604270338270261588392949554189355706642109531441765841299854430877999015174258305108596444013786504340166079492079634239626949809409064060915422690625751338513351679061183831768219840879001953556948407768712834839651968427433369175345616157016940305891005795199513338136022406961478372244150747443730992020925446774937524159519335203365629714474144719696360681659804155385975948390542467247421014061804809799119108051301544942858426021551211086935100211133517878085206385936600182563052147278979096024266926598129865754900291549098722974902730331739483213456236735629091923795554203592065154970295396731324186547668702144292781204996509197630527448393095077573645380884738951681469347417301387073999176846527377931803580908667740878118067121342619353732703629631199743260175146588094443006315230124188763360923743106885487439592452619168954136730722777888419275272174205200520940264305569729946524072454150090466591540842928612818933973653206485578478732900000725310304967559985157073594449422875502250003329350038977190258581076089795709840818847962833414931136502887460199109773510483859421586659110821245375685177071956007773186184214047438573977313218104423015854445075327467046247730556582207058057033901257484943956983708318640454834799035659271686062615608905969965228372813623091659011946638957051795109161080771191832169480245060988906703885035143643983154129357806116479729067889969270858967935773144175257027747881005443672272425019593388108743553325517267662566813878491912805703153601493626958536403438283443287487203022329665133970937514870599738351642337469700990122675434415994507886086677953715739963779303296496112053737323484051323830247956180410592568640477276402817449688972308832564430543697865078707161863104293492051483379906182105640947452079867983933673826406008392496618070816934967462576138216574480562001273446840532882409958918154020522999067683524158135923930438945112707927928731541510540519091326151975781069524727215064263302821837451344557439634481562571091947239274946896516984119116845839510008874207996866156088388078885436092330873689291440384949967769804521881287506062398137017261252169419115810894429840530477497238391545488170429646443433235757151687454361543268886589360631797929438282022617264984659608774214339216642472557597355319349446435224094706865549059766313064901333828759417255852592219608921811761522264849292881580618384298835656093969480074501761122990342337611376513876242359077032875691603256164851131385802303090375719536663558287393162216613808644739051237222980297963738437800623014155533147283270378443773617386008998462040262390260051509232816945244723136701968109913266900673573077864054754714628416410814887549579304065002574897958631312752941332224740533527252416322717101959749375195646147640503454587687156616399598842157824945178962851814081919251319309531190716259450593755138749533554043252450849093059821521548685302726783823504023230074103504977155220047622344004976796126622611370628252982514239291287054954507016171846895005147462293692987153475011527728713176767399037079736823980761343813419137156680276796837396983034024576668100194655257710678492197634229030841933903374529096090098283134302273003959720509861684971413359579489133557352667901724881311611036139784229579591634031071133034720757449411076603290357073382823262667284350704783703183120991425958221920197519117481985345997012635925227305720004400805544344910981950603825719431612982265235033650128340674967637769123418468760988248203642880110959114217553836901155078553353423012179097553438440615345077012216580642841524633987118071641397773080904649993483091667737560626652657595133473824480216704921151929510712965081787137077042469602660609884593794452121176165299480180121823010719576313513101565441610743614266612401404295756070512887263646510081568564884896789390066258906107488013947487157042738004424455049624935129394273386166804868932285597326051381678385274411717408896614992670277243358401999489971647110582034378634511031137134322268915603068565169306733314377877525674349671103690638675262682851154948154129039364462233889023009195459253257132454025029574902827484273197187251118515470058851841927330943857723874228514328949985148591485094142347057958363110519736571767515552981269186264034492920217245204503141865112837172013915372308792250803003080318968720198592478234076129222746858882513643595220309774104002757733348395573707828940790839292779796466742363052898092443359925514124040252877838716280266382538949949902350513632482919520862390965172531435974560552255153852557045464064544199923659746773253512629186426937857584353121104210372993485687385399944532428023806501574419517105325655854950483883541058772955178791806976533640547989506577046027101837587399521707109989735082558417362343720953528834734691466640352802371474628428042792722924845634976839868217080300056671916222950028647099063604104399194052325854230639737466333374676725195405246094654979049114573453557698626869593724361488952655784511017427388953650558860778547914546444683899263803597775792357868767715903677659573837287229241188281068104211511179891595052776135126384895072807951373383703991979804675818014940356530604365374971057107353973430220768307364048182022768161656862281779290298659759910303897240960562120834175825335331613351273559726504292198648147955414253307013799675359576480302125440812676406780413827612196942504510164277244924434085297674171901606817088293389636289100662893440089766639379549450233612234332534596917105449844201140628199926803703085860364588078936417992459945005686784414380971994910120390253662674470840220532733373080598522631138541036957206855344618623013222519868543383022257803036893614948376183084519583300581919657613884706355204953212089769506852278220189630312748304751482073787006319576543785969555888937330582397422051623241616091798349680912026495431909673786608100673829100194510728125603327434898929091731615206874633767681514384728528247297769837052913716620793004841791576603519366048571492413589964207351992852670099155432490017304927507445261790422491923573083423146742116896512068090253921867257008659512224998678701908012248236630076981480932853686974152252034319298562477921046406655170584626453697450450326492569677606853314689757027492947030214301514506367823512150435131561443218191407790592892039018945674361203349556651881290090823351357554954402149955893987036087872382267160941324615055361428143336997319437146949717225320276146608375460475196826958966816021060640737941547548424973787520914835390257609799652198323892051940372088561957012528027375944515631888104489782150705039503700766421848347584251504960595156106416943943080350821515555527964689596568716990734413394323324712381111719426171085185063537940565388478135343184614328913754726921395257297186305955088686431369913215361284294410634055789691965192578506599072833609606436438891837576060669199294111602626725506364590500483533192660812231596236600909355423118403578140096538456430643033735515761473126762279351978775254489709184222069842350721993916586011942152955304274939265482686262505865477108500752549856105923665650677321813156372802955901773763388493610593509654555702340375931786176929568196719198928185267321004533114032419089576537996886016310389747956657795195346752562322151164018887568610660251638816886676137477729274906352007675189978972041473450695728064292601017951787765326697649325578120205798000043929971509082389972566386193520081095198882895971858147576720464949957344122981347756007450510999826484522113241669921415070656052698051282362262376942296553557987787667759639468722683930550020499755770611804678188555391378447281131066671075552677461015733901984044007175658367497688510276641272474477016274991676830900838362709334928754840908004166474114486700582328196278724141874929764959428671563314690648240078673318314862849005482098334413867617983386673185773418481785407797234324007915185670230413153697941862799501592738952997427822558837250064918633957141882535311486942489842791768061186280090697801653358925160782402814394274727886270429144105203020975265332054305568395517813012990460659406577089154561728430251634590195527302578015054212474133451309995799459254411728729626556559328646540589467554654795288819846978586869999286104661550499781042057532443472936773281374346432640465507741400735978242795147119977044792897925942062855566364973003337675840920313465590715550062761657014197808773180007374664670134110495134682788925928197700641749931112028928089450836760646260844777752006946749024574928741396110538444227820566846177546646065126138482378290670504770994809798160807917182275343368869415971446758582307527745227424993360348662925901898068701177396046147302297506976535643083302723237784992129942748038194629220553490551844091256069851799459218129300739619446438427145260066413903470212849900652134507948838028815465632238816627454086903704144089151434537028787474645949264397067874577114186507302441834665952567262138946699339686608012888391011926492552785014493176054225954470096227652135762921208073786224855597659312104309995437695852583470532407998353033589639351938703746390593125562242657432534304179299785203208818790540374500299929608445071003243795735264159797428054958470365316342204853874628339026737451490038901355577210904546381269439361260999911151717590717825369001722964830735990014782905458119519436589597347963629279196648979047560232717100088457869237708197968626174850594504159224639423648631662906700026712199161254212464006523152778807371486173430861483739309080970117883781059829818890632889920061343103291389669189676504187912648939542782129850532660322411943113948384003441677863368893779740325518108194118031780638331676754080114286228511322511301925518454640648197263576558802216006210930475283482365710600567780230850460645076902590492536583626489982652476590292223468620269162852765362504277535551497359554914212445008366765914420657903157315358138365108059991782124067366362302679080728080297374870720374185433670481210936171383255623769858325698430211067564902798638323462156022398892717827319867447988908510159110704277056093472704170296044384473816343908894845099092382809924516100145912918131508718918833824589453565986596545208488323465088343699821438559758472776924514013730666449018321182864552984641671452778971997436774234741545579427415883958380417958636704295920072058489995152875038060250033111127760098137315029909808261525959556019086537604720147225572680449978212955808626171962944626152102020998256057370573772549092104580336076900143824417253806264803223117927788653272479887825430193729091707012548980549894911648375964260713285304567362574940772476278944131074424081630681167741611730273361943774348203889367577944775650177429076780431733404068567393759470256562383046201290347294443310915214300017883081476724414299767050796598225199104770065877676764784437293267361902997679582631765076224881898450404589837577624378853824490624490836831835686494951765130603765096345716652039410850777202346081985362408812326316305125108798974459035590615063377795081903554819539332899910655787094667541296788134008932741122591565148373816760355652685824985901446048899448164539587940248890529572571497481556459500411636432248876935023537200792930713879939546051813695815021074200366376042359948428960259067928301607147855907454065428702372251248589002595072102580366366808412558543378059993689258453488654269859865935254912206763713724087395538748904405761228149290048828554936491249492439757145404321677565979666517885361103277997978150604847387537588787909613974161569562546420156474063606597582906139522632581393607912426527937312532933414213842929804773460519110698691695963743254336956881840336147832753900496018429844806147488760139518082391724557136508078479470802289384463192218925708102368051111784011931927221941030562498582526636580062484298520092629101870520927628971621205779000013229026901750628643401689438630916189851379067588868095347408459700023743470076953662876150260165246817153479087304648508255273309781001716536427580385380154235719454962329953943858215832502469412989613547187623163217432634184578597698395080971507901443217056228826930219811895097321437671726757533916182581305507540512122236938000379423210633054371335181715699654810548082963723603180455090011398582867299481575125971416195826285447724824367557881149470075372143949059331230639998981954403022608078790206234076002243184488999054186867484853082402536232479562407933979762660362971180342680896418449325463304917969110613763594422303665739075670709306588491446501101414886205958134879066644711977950729210993494804149262651364002820810839982262027638056744107302780146385991434449949862745995311456033373630280991171732762706722641591914913635265438405719467667366749583602104244951464866826052185751895076722909243710214818883994697680252870132538798159720597874056172703310330663188216385289542431398849884219224268823941537136569251815519535011165666118807926284046466487787689266766710229206031242470449444819826818546530688105331324068012372323110847246798117748571925592106622215837292449172367902042223431790041810128981016020270580221589647928000739239700640067958480559057419673302259986052649438851103804100859677976177716269897894774304168232482149343481199237565157758185521046654188841812646711312318267842886922883973450586457605900815437218669999870609785550584038808657079656676271923372872155767986979154854717842164904431783302673627810136052739214585226321562523721460572783300009705309314123874112699476911730904106334576728017516184556062044975715537269161229826118935075940455226377209333956073606246881882200664298331010880287494704277952043473259127914304707723672215928803277824072295322441497585522442930608930682398486649264438911114663132620380779329431885753471536405942754856205818744766426735376562641431513231288803840299611026215585891409241918923119360217765949822397036965003741196622481093203950911828372968295190372665621491038432236373047508942005354811744398778800017117557249866382539768829091974386879827577269311769602527343337443077990739488106494161202047823395578525786948259483984205454227478994381155324159800893815581004951458378633918652322671707967010093491258548397235979362797681264070195860521413277462362358314654106986566798433315233830447218820522763351304995821648707234599835254115664542921964916191542900669965886672047895955697554300769589360388400675387010152848614014939672512410846836266343122043262655206993398159590063826064616693445406351388467734058255519952121802978557157752991373267215201215851314345239362970136317415612733761392267281822798074464165283686265464923334149141840545054634555081267199104428277227575192028709356418897033452421261028241273202276786860322305423139553962179716343467616131745503826039831281119492434306216284572475496576891115201842133635355715547243795116352021725173249584996208708731651769121421619653027649424975681440709438033841665721153580486582426319936501757333760676142401159507715912926766387196827158122518092128490081733499922795254010420151349577358021053002775986920431185501790314544334886462736336990424474450048019401238438457502355233285083330776332962315633247798733088263657325194704274504471366555985374502488669419094249571679906807660538289386236972001259703186311181323412156728467443147319062428433759574290321304538046296018975646768910955453397242053408962985039391173688310996821036496599183296239027517311186110326638057140876648625475532725295828048602921973275364490557567983372878179761584131647257950935598837219061082339524442719542423494085131224880529134929600752647680581191263577225681517584633809329134045114407063233088925488811184983890281313874572487668679515723526894126295814493773572183154622329989037401961273877161474622857590694650654409456453029665409184466277567013898563051794368979776220881938298616095554900122267811327853578004152262352455496707813893552763432841029187253320593030326599762914753673591034441509507162269745450679231295686921965703301151094523727004765844406146353444062032949412580749291503038114369350081744708277227525374897437940222471051471523047504066866444131316034181572889905954712610450723322763227461901480909608522566571461440511776821263022068772085338277206869346161336431612825656944556110395781807329846468119791024492179150668449782783121550935522946930736130562487686064533435847764240887391975958861307810884545231167661231971772447458757466382562784672936132175531332669123037057255126905062364095907945810467031954362754364810488527824060205671247617270453183047139658572301891508491381167006168667235029626900983122548835473332171552444184889316715072263786838842299662146201539915156985205166620507018024099543291240563130499356499769672154641185490098068987079638518744612039520189089456624130526725938061514554470714390274742451485298951834468777980718576747056043945485274796074319580253621205064534234329545521611147822294491079401474504503688216580920931022915060864745842746726905647737172621145664385934457631483461394268184378683989262608864359957956862304982960517567219409743699432358568712608865357253005948069655014003341428267766578345773616861920929519998996301740073887974969172868812283814922541859661088098808071127716019361077933348161188026609935598130139647687698981300733075181257745199670830412243261767911675240813112012423844846367789169259495567189356452567014255287066068015375733356752268338517629666931242990766339870435227539540360704172994604535187488359345964408568864262953552664042648693980771622521566234456013187571267801814922526915434351388550494401338252313419510829494274396813976389868046059347172207104756740739172532465405407537858250938302317814475161192019648934401816659536372862177588766334469956393524497076413430110165084307255149278116129418185385784609424719000997683792886429294022559817539860621806772885267160729123602033882505482703733281773475896095962693070629637065835695967253469081518838234456279620337512333181598880732570097347345915672226544416800347006615272419739741753053872650386573381235648109619525143422590106177882993142813321022872573148938091217127268494498832137031350639104757066361189504386454965820580839714630523337756264202547363996980694945972764218052269511428814028840150698953376580733143686604910365454536319820283378367036476875148326741217117465917395940606538018798173561745145261927217065947814910616078854488427088457673122291181675769061546845928489389872211507108177313167970523605712852648901702779882656036036425946100654312515284318121069148124514848319984745688200124725257712909389527432874308306226549228088186224009796397389890817162174687081964220899919329516341692665094836861893743911571380315558426515795243388380664875445509788424351665771616343682605144443309398192494166703495522879935934587134996964886146836811790956119481408503459292925286547810684815783328358183615613081083914297207408323243453943183602941742830762500421539366458222635109368920549264409242536259304391529761921742593696600279911879143155023175407878364963349828732337301345092071396635851347236636050080690548703517397770662565002788040473081342587384336644094690700805580771337938573095428710602428662306875592703292094844585787908833103013981331304435265055423268087818943843457575740910258466063589841060047604402396670777900307600260753579355757057246273620805486391761245322609932532808830285051570747459045338311612312440829280071049227775204595879379716801168819506978225860464265452862565106896527952168512486083347947285256902221637767180365258967057383781326645311614634579633785474257288680072050497017421784982547653092309689569662550516285085377084098442083087733517480602221085547872613937262799107642657774785862278554973921139810935556347573844161491909322928322501243240224186092885232664340935040365824911830560734819023094777384958252932213234633187014459180572769232800843789166694457484229111829852695932256541822900036084344162810462153415173262827991783980169473213575302789632128738466265084554867177255451651239640388901976723883410750438568876302849358934119451761564187458033136481191604874045551995226862272825779478775097090507658437949188152426554893812003762264125743903463710491950386003124602727777822934795951357133196486605612273685194289369894749269974900548593074059807385368414953846047524483889524201788069593500715919884502676421128851655558802479396302674247430522017087002430398361080861306845472505213978274405844418781925669501713798883535235885297460717107779632674477507292772871491501065639470917804609540245431875143584507828202251472858208202516860629237004869524057327816547933967706749645200660505948833753334183363842839676714963098190610807787927331832704641092950891557361955919296815876941623470610769781208417319041527070885528480333751947413302427900597328390483012000871617832633273461520982242681528230245974965698252612842000136675436715040216127184462120244731827248302679852989751053483888077887633865705148419866420832431115740834328293726761364493396239722772356323278889009738210120443555015028313261048405384155500329715811298256028681109182746942521996165988861795439307102305886365683232017974065560885838876664206840628269180946433885927722126895863216095678023763459984026004001798416861730768096334821199531688402626870031817969852531346565075840197434740515400370198785106060874599446695014540352570031546334318165231198110270083200993819460961574081191216738076898150599105241067191474683756662712600729692728226865653652469976172860252877262716403441255773935062735223747722500142877658972179880933192459074402279805690214264394254810861687068347816252173850576491072683937870148769982155509314165618595245007102575672628259517792840562882970001154641986559535254499683454399197727536757760021108301508818198541473769434593865610693207367970764712984935516945466522670904729429550836157240280482005825739183752952526736506496453282054508276576046788697632970374445563775637856108467271770758082551496450136921661778576543284150281183503159112404446180336619908005213608803573851284065478827690583266818358816070013629466953507103165585697041927786005935078551589529123382046304921814494052053499713106494761578604400320885602889206961534486023315509426904702898097779353788579649550020317650462765174057154061706055681051340563916042876559449260638733228999714108391371215034361336451422599864248292083056485897581603256383128161380960007908935734957310889631462409528014068190931239998988177176389855562184467803016934635309030592796234240210644929483102085064586855943331253951395248386888980623466794868906509031378554522507286622626838707500113526602918189552099262967569204845943262476938529731267105064168639505273790101943292694527648904787890761012637013679436971621346688814189199336395860180035075231188037272525728966660716621714244080198347884701214534472859915555775120658327914005317578153885684712868027732638578574413283920427295279265048801374017845219289956861868293572213395104484648828217358995766512964725636335975712145877833349572515461398601647453999648539769311673287373055190258883523831135787991680190332652271481642173250670434213860993555309319409956026275913686974152616693518007330100733477127701419825930187464356309659056834563404752933237481009237396165750138276831763589624328152472882977893610469543915503502826559157739847632643090291687434328015923617294153673617133002901737131844312704968867561129896932652965944654996674715357686966605582963109951061757927175781615731258562858971282764267791716893165800057218282357750004059567044091096667357796596052506050666833639190204975710634487234498634867141466782297145707033092691512367974306738758196812129864272354164269806988797909317845180591599019302432089041555304936486548987145776522186898948054391763084645259007275238629236074720701585470755405210996509698566409643722870152885339235626392731204655926286478840283872058924989136201414011643870195436413490863379281281647994637946275888890886464709669938499374917198826039317269292039427776819836833133837995837427681836216679871214211905011989208781938393776488628449485561805006089077650751586292770195925993244261927326972728234959117015309804367641385626255733217480963802868685043139379161688576349517317348592234705604430301728840258007539089113641477260277487459941925097705086980709364105512043219349034955789940741852713087627118882430783202381903007690742208332797779618137066337304327129753891935005178916196813537340426556311896025864006701483176035411542972237819921995560238580245036614678386057990569868635554064795489547204056394333390506496791267481311140510732501540805616465900806315159221174402378865157839218982942917550827670932689429031549380699843793333386911052776198592452564778958784820521885214140903230518169012145740000099664426598768135952384377278958695281000857112561862573652015981825620202163573083792092430786700079613736910219151054757357051501146433896128387242546730050517703234423841235718696974108059335058377127071986943599507963047145774505823365079640447859176071659888868082652969638378097061133137177503642780131010795150616285422063203446284663263327454831544403946672431331160325082494490505332384103249346392202187072759334929126725862933480993253182374723925416821134058199995413275170163206362782222713866913833489953367121360911500151731329617074020848244162645495904984441129545512925447785182211991094032878118886905714686177128860539799698185577922155392567178734816316092248277631266068474583536603515977990989676959585573203612922844329258536479796094120541589326429490701411589291115174751467582819878926070506220940777452074663217064155852661707885427500925795160755955935869473424959095581322204412566794346775350447653265019712373731757138332992708974075559788512835130459845528488372550534896382399352221692988302198016585965493124806837226355932679288517854502844022774385421022824903257802006948502771621276658064074604429517541349195216416007268506509260553378969477239657905046156503155459208379994119840476532811317656807672295290445459270405464030152877727758048106763492931713408510492076753599728629661461574202205665376469826431705138047340697798725308838911494385723374011860751602326020277648969076985433651473082274338827386951010998336700241287274135655037274059472365654477713997966851359316212343375448519031485673455418147535135182424172091180146858472080007308621447476065238130235257835874553018252817171711710157188625667126334237252205700504060984678544837881763581089485331159715402070423036145258205903852945330542155252975305584538191675321875285985162149013277190243163816948610681737721890294290125725579859906840196863164102122468319858531123235674819459361027965505189393145024875180749481773011093419470168270823899002614707023616438777660809420410490544686354854931223059337810243308951270822735314405716559471103230057059511695880954772339318403390277679879115924803956898502261152754441583206187651402222240295020545592180949270457669334725968576237879245297815607873432119742939583967519538975938148769882506253853587776627245075469024658101554299890480700892583117131706379504452688406127388759015841426541704756075230303751432087335620825928501782643087751609267898200013906135058713765924623321904044400554109423982679058978851396895472549226221373349911785642804983756096681418400488487301230012967107477843606612372854182038664763498274477151988143054919116695856174102334354330615424962011709544756197361924031036675834434946443789413681064445016877645049456346504212728487310476953087098836886462498095544942602418712265798457857393089753922307392261439439636121271469414102294397633115598610765038233708498560867410130447340182701469963205324803216226121987227610630829673595235441052783788921299761775191177644658816080006533711913612967243442822691252663909254124474502109260655137241734198917675571505885963575987934901975387835636583676972678635685225828331630974741234812530740737330736099981942622874044345496507472949046334179656468706173839840912938593528182259758821437180529132954476578458605735390777052557939379718904462533204896389601877384690720118531325030770410692441865580931304645448265760356208974908724847423742284482135479488346527934005403544959325684721777409799057363958669752860814798102541407774982438217671567747866141164839811237947910156643580485727836710916008624198857550801322817538435956841117037265611471412396518788996972551637227932924602844057676992513618158795799644275532373023942043837804372339589586546249995751967425755211975818729509354106755159398293735216111543330131012183976061973936394762521920334177903990060331973682839582532446271685916873550226125859685599729332863486247873641500241311183832452022318901297556449547327952276210212396122134639031589156594645651700289311511158389958408912067964728530331889813763885875551077868861333633107547070227414185003621313103618404069531688051788954727849200942304204927128671316446697008507271020184636168748565889704106595554146269828792641780835933427257026520321809507075467449845944701356078654784516045953910697487692989741555231339644226455013663821665177872426309741786419945152246172097570808250051080585444704689829955293249443550705417285826429140409671456562212437090040957921667065111650087606460712737624337342121490825824689860380996441761846186895725645027354022383309554251042631333567523240193575126951277902990185958162552060525214117013524291933540468592101294144282545168976912095144362806394571488339827088168429555823523997311391793200953249517894566551088423977993182410869900116841785646686517217466507628435676337421560961642202612016123946825964045066217456434945832737806666105197524818716940624666096953095998069552673001167659976884037286730877401446617892763822466663334643900955097472523039426505404253089322801467753464312036105577943955244802514122318482159882620282596442599676198673965706586759181830773365592664915160667787910518987061588763190190720079994200112106072735266358175971412418240623669253765558684412026756805598176572566653320702020646865755110215742537550222470215179259933433025413456054894268263333145490244879715067277202822172558677156578785820508202525169401143595156374516526085749945950254343895277680035202647174090868924235145190894005309718516472345231735069261726688782671710636881738815788977960606314521838587786937087345400949666930033601358690265404270972706236004922922960813108638206236323715774677794157974024845327980824506390531347424450067984508355944807447699454159064394994757758726516717935427424970063196369643002922921052006715676139666118666282972937070798756068033654490554561740688043289759474433421552786985629732675766550537150291851371028463577069808273292325315020069118524273928744434946479382134963980061297808877562450499884553724038777023483099986083669998597567371069588862719146919419127320725707237735409093396664698829670378624623737274209732267387420595759808038762884316026975687714125814041835504974905949157995458652389391947426393251510918585569028943934695055730662596922656891607158185372366504716729409615730253521266005391217014513006220147025234934752604767416395906592571439761965447529932137296948672195202149642097569036851637393453051817834665738670953487951817295144912534840810740265698499394368008221259955976542132573523210384548695784363121125946193267220530900461494570508252763889698135101866611653971424046471743586551962913593583097910766792045933654106085382238026484135718729933802334298566515085026493403528071971559107947453900655170462817624670445583225627175218522559573545994977831407876771537925365661054789768534627439961306114151121325484661226606187887357160281232267471819215288885232636692103465648731619654229853621820457262354214774989786121339790253374734461400680639725892397879440850999372207440009087448070638659710241462276305122906200854961907135837995614829456903510351983422873157559342624846616151894549455820226796244350437122986679009431815690041692088397260312689396895661931218331978278421422590552214017516803769564907433894187159321756849292623543937385981853380713205168163095141994590096949793635458948083285476601328829414442251144496819927301537505466458433635982893646600365783191724328503900181821484876169414576289615383821887018908634120938564274859368741494468758271034517414920043195672986784139788847866490459915696128819136181074809499104157089774012628151012428614528658029810660904552504993859879190419761208419786987603925277597827074501134830610350182787929659913628517527234790320197344731472927096222159394243478143522627476273076771046968400171002240388529506724100516676352123764817200521106794465995622334918739874839548348234989688052309347075874773852328779247981278969176313445179337299712744562486095766732938255681864466364069969891268981260058690700832097601651670268196378878976048909972305571713383754649996240687238556948750689382957632589380245411532991570397964223023995456095444641113913610068815867318468782651016965700492283458251394046551531701970764562386182388079371316652090786253108115336266894270612201072180413764483243032874773141202406831292014523261195403727015190784869701521814381043544416171734139163184856547376681110702204510818209221280723044332929124638244336301743384828584233796212323477117793895616687237809242519081296027936424193628184978940990208983798935830032421390456267126734572816186366589306248014609505597734735455475013960217321654009672066629058398180613168867003818705937810638577436786333720595575184276947583277737591946313984272439363341883763108346449957563529327167504171689698821650648076245182062500282624495681042643032003879171181952919853127293670417047963158380327936547393985720855719203508665755140200421477023483038942690321243250025885991088394181164977213846164129418551761714491426912930035970798317276148586325016182854608620417914485392820640005454345597304158211690285985682984105046028612965083285080329967865104009564866486715903371933467719435089106573149067803956388885663612016005080592174513792463278386657344728628630300772975950475166045455024070288306280403513821685257306341494387068515956395936526814496968956145643864880494504349902255671166299639240221440997689487087567143239035514135952103724444184630798541682190450433896572464021425704495356264549536622565006669676084609370648251274348110134672734254564797558057397505931248354876371580056028471346601081062546627223334637334300500962105194636726949047877374912405420699887579742215888796838517732140620987118277431576241817184786926790041558750712143360108540013604361432328953020957235932067141561107143192719926785585741575942577061464945560999552401001930588972927266859001528748754661687092245613133185130601755513126079433440230922953790737663312258599042090094672267025987079927761599000093177665316152880441622694279216897629844246270863622109109337598489471706839509563496973385583582608131695676215749333254707734883220480079033943623108085790529491724423069011301113657174136729203130587855510503963109453503095221831273860990957941887643454221717416334189863639996611498715778121954640797755758884640393707719346908708896553691240003065009689491981091005297743884906312509027378560467762377215785558704459976121164161457160770936075465174259953259347107577544350275053673134131142151523230609938392536913858845846558330032898178374008181875071523080620031300454021126086877452821080171408020902501930290419083589932918659384528904001849643714227675921289134926886256681137754936731032226742009339229503286051501899317271026717013773777478068198009204028077860055452148757552940990287324819401361081942819047068911402214252697418104653514550508388226513919453075548978080755424456969321967110057185216386481598098726793316643902652257138191309347363125697892011053960924282364559170477285341811402639321945703406017953885618436295894606499456445688453426027860512631252170082588193829703044573855441338836030806528570328465127168521244423818341420177836794370139479093114348142548590855307278829484508694993548598541270444596159546603704388620071446618750901304265565906955857280800743670206816972183517827428721289020080906963400377708914519012839377467133973961926386530477067933956051927051067233103095457799612520590960694524297506304559113186669483136425894524432357549796774123976479466881595764173556869836143273170029032516182522700301594928061770511192589115371291244823755245716964726765394474861099524151956147059698872141015158023390123976108308821991174043223560089117920848630590733880298527747675353225516124283673769791800544347117232334520091246908002164559179524174267829385153189306909293266152425660581889441967434345602270972736034266266329333246014706048098467787081593935428210034280781254081067559310696473929482628470575181243028841326539597258741196455016333253050253835029146861461617478562135574543855998553680934633421813599249185751302585476037030128817609364336840782904664397907426065788987507023293640931022141217467165138024069970543498582023490259398886424818555265539252371956812717507018421247914249290170321470072433570159701211974487005523405020773257002803879932970475431199312365706828079352381774539205343288988952572992427613045454271943173332990649970258987641848916768285408306110462093412217198671315768641615499427653840991595606909531383155030909201694561334541757847585206333120435801758720939485541655086915180687797962382252155342503221388405441873046959976877030507895243773194169115998882052250499782940659475345765115910078716398541561345674308091611313796333698178855867174134141356243360054479387451164962843139861949809060093983230900905816829472262572150135372388793937812208630799023509730205123922445632890228249256304137496585581848651373084934149243570868485513515979990250324610602027229093888538026136311393995424616487801827937536625047070069147397331706904684960315105523973517573203926741539102731896767712009063887288853686993320520755687583756360334750874156441760108166730291986084000880336302870869009968174858489321846010870585866824863718443892276655245767941640438831832423498299037654083476895377032201866803971010714390473868140216052675692484727846834316099842965527207485798372176959787756696581676226551426313885150002946377810099539994842875854419469434726493416512779383086266490588500813227680500758654917845129274926312820890220215326064985899909536153454281456664988465333547576205127922400784030658817931734969138541903079287141161890473576602465080183933538917106311012728666716349829624232894114833103132790658173291967664948500767681292699353879927682147460592952748874993037262597929616656587786392486389524151174329486217752054176175690931085588896847349420932366556977131768140125012422684648222875042923183691357959693299791724995186218684412960786469602898212005892930988387738155201175651141999527970941143788174944968213742860156220391799236686004854434589078533611910302737808989335252475535230843824586775662195604492847962994679277213543589298818802176678337477151236574265094427787880433505747474062378022590084941118842138292445821448733465919015912051790547767703712304249172116265913399037622083284442738767047837414547232187942331243607588488882771504586154351093900264360168299280319750680936647066620320555241631028984503825462115957876475673027526869291596696185496190444040446621995372898241096177079883660888876546481266345383532784505254198618337678646150550393790260681921141972384146128642458433235290322236090527775500471229851229503446288390556997598172060389161123806013131810512249432835957733063863092598511034722394645740862665314900012903665041569681910232979697698472908632298673625985784801676225265108112016335490215471442937431141975634586560157182991448118612687718340062387854843797865178568291243295398814162375448566863077376610374632358682132756653148544645068201254845359273609361862647661962319918335391473171858222985701711167198114321090854434250995031766794195448597299778958568412400787726618629144166398690080112196831336509690388607660128461596797832925880349042063398827207906992806790336473776817406000584415438581555772772295649752568643868949261549289242281103450161202814786213506165074631824647369975188202096435878027594649183662978213194771411452163821127477858521073676592391306086899850625921114152889719327870137825427134275634294807801331659762642872460027307094590110964339848745855569740924598089885435454313053664774919881506892897687779052390542681934357738634441513341862757636310330922195956203215290961611153685739850246058647010516677093232103064901091218555140080216601473625469990757789341667924480798967324179992503579728065637862421429843419725017884357176949576992398474525137124601847069314815508299698961172058217191105416766532433095673499951532031878452325761328623158175219882963020982287494311476536039937261066354950778158188580305550542662451793842510847262774840941625543412354383260941951590947168093052618580653810494509778588082214107635639475580905772471530722819487355835346543575188735512400918724641670434708737158493158821548434544930428082014655351469522808478305357196952737532379168519497296531354042949046604782885591851482763239489953795565249201148969394451505727001755906804999040650039473642420505467130050192262591364234739587949647039384936419098098530512191621558370045577310419662662507783512441077625625285738988589660214128348956074093254651181353243587604095375521215643364986047106280265202770977319515535396436757051151166928929792201097165623859632518175615932409773122534533106080717911505072302717148271801468963237829891120610276527178988163345417514441473064365430351731621308486764036914376844320016555987766873301871634534011417135689071831702710641445210584948829911531164976126784909397348106854900394978740356320605030736273570324159687089620643717065436397290469122216716427888535343372115831471982402305671616657769170178204752905773443970412847349545208960185542153136280719740786321231653978301297526012731126414407421906106695505259866813551495083840347231036870312555137259384585149927005013275934627774401011186284255256816329808614988780665529754260860424160682983073381812311614969179314060777202474205425282522310772705986412611941417314411684087279215303951794379325038950350379516997925183962279012532046316109716981397061452327226279366007086271394457758796426229914497922545209960976664477076992153613686025238118919227869145484714553128960400300537363318196033294140686543742207734030046033858962622624914352407456457049225044993493360293930875293349273129600917095224860995537482710547859161005138392047644788797683638846571330509329165820640169469425752029600556619578019276742934566777291559536990206106989865429553785598799106190704558262023852154327303194037729871845191269514943207628695325951711510077776832820274969017179256898545675956507417512128762396724736951674199195036110049467991355288402269400931838195646088131692112649656237413831682406239087055671539739714323181967293239689263514314925312245436289062441606585396768823576764744363980140572614259822342561074243161625488636718123532868778190505930069407512921348443987792577627269635445371307224686145131563149621020138838593714401889477921529277658454377345516343893371988738468811105486723356932794005440921219609343490675983897554524805054520800498152749200747877396284199965065331282696188677043348063691780799646256857245519628823197948748965577021479642894521512883360158751915953810370850639797299735689690584007788429708992608484570355183157900890348637184875416685383234608639198278087861239701947102652931885737214809046707762474014321682502610112667613742170898136751231083191764166934869984892029180277851355815010066744310597343833944735567725117836458046464615451179110351240934984918551593866892665938136961130354024067298961219762427109325385869446359423002541753321565657250243603303884613932993937865959279678964044588046078153059477510151153662454418898329892357775660931477161612821804669206134459799293679366502420179666922897975373073644818898314668245552307321257581535039488127264115042317215482443561244182528835003580332786706813879504627906870490116712376071643339855591302403429998614177471692672868803266255752108847842167745295910245506769303041791375245768802523589809748645024641887666375395553662635915381640596219825235870966413773128739336765790120030073059184096338208230332082989535349363242614029014846162918618765224111053776952694561212046187074312341950219314483236383088200275662986843078418065621236090959500784650336417548080985021354733949247758495304548113702074026329982580740968256127916348588516591447588799029213724484727064461190992366647575211498364865867032110956454715787915092174702627243733696974862807417258185141822083551705270634850960040443068436635163061826437466064575132657060745205037211201515169934911278392933911922239625437654470861056645742725569231465185535254260011608321678794429779424962733813576864466943336000352414466490076798700131560263492047563503495247919804282222185278059569305249902499544309392692436127643824686114268197818083502056125433725145086928036505350298432622855506042603199315127938741173186218796986997634477503886909806836040445743722862880570942919176933948988765809838737972692322359662338596934965123374347476991436318677827011482214016647547365610392372750417481769037539367334032467534153627730115501020934272183689094155910864400019096530153954101206901250603932269901811547829502282032233294005183868364508051319548143727208064375319322296989123492481038512843617560207402226558285085119469948842512588869691454581592065654877912337542707098451747937039956902676262014075064802750327238065670591321708276986091864294475068937683826645445595483089486043222574579380028503186276579406961473162813569174441598027998154355924068114906680946709929845745987015484908759246053742290640373604467742854060157617053258755713356838165740712642593248051691370447735683718307120813930352821429444752842340289752259179215160740108042365426285710974864466763571440820724008145338160923262035279814699967495723236578267332151091118022636939916018147122972023804757483953564553196945408002264803425552680905758206112444701757716058269257018514413944688490536072043610096757212802724052092407023610606881871382476516361742619133977634561383181365012560911047663183377228720637361595456472374147479748983593518162651437669712003413553498946837084893797073850247600099115866174299161707233784893531177170771523957767403083393142305027292630631081042705651302864846625392029885328796316776230382299372472723880411875447697652523507829505615255394759405824782421806718582457046994077394984720663856205573233445674345660458467837742136922589073101855995841068834622503523537285349633195283706250942507435769974970270940557470466452197625361417966624442726676941893039066763428592300481524452242616811331737586327837868816210475915372589759668696449761422483711943749040865602550072198935026501581634673688465128770645542516610782885603189699988712664514684102144023197710582414979704392461266044192411406014683381161227422683156905412471528979914645095229662708568750127019267255965001945006916129066968028104475181942920255115474942487044026311887545744761001847912781865817399769271808100072896030848986046186828198563094241216763161362377677140562319461133832807424184950534616861101946043825319309771091525917360055343997313331358495010172895471849523179065662509850461746655778631488754586238720261021948232428776529863852290042526197180670425411725622360716426397078220485985941679523608528176873427739588308286910563310694866236095435055657512165149437263006997225056783022119128655012714654870841402252231531492234972279913537730659669599987503999378094473319066011037812350903890182325624306344965758147445278618545597362470063194037452134728981215269724781091285565225379634737388716712603299306854888601973640271698272591095319240765555888445081578552458411120444902903906954239128488425190422455883711708881627507461479762461892356065008179349477174290701238979878078260513526899268946984190538146261633059002447047158765503659501789390765814137676873725130567749814493853929421667828202557790417326560583229354948341906586009289610296466835781552964213921040593275954060609438266703172696383204133354946796977004183978543420467663215551948448288322549765308078591060301208650554060421133904013268842948309089884588743023082279930235928547835225057184910638128647645484551718099077317901470588004829206201504420678453977177419080201536681607525503143738279526708376124320491056234625768962891943526661089801395624502095181504319982340874321131710690616824017871112267136596663979201019817042745866640368977328273278348243542726509771604318041922523094412988844697310834738963673810901908995267189971939214510581108127185468163701550958255167071240642993414766701611503554414411940419582917734851071121256629790986199999965408495170439003689220010422670786945797231969235850631157086938459696184203014505515025901205108263937039974365498806197037417392191444694165141066360794569748449348475390392813867458211830106675154318404846896924682619593998615716284301396442310954826869903223716447471572749363231844074298195398577995614759229840174404851530417667978490063699426936600028449797977855540260511213052349557370626758257997143959917885449883310665516236658561233592532718396466182376448297318893329842358259577932171301412178759194159744020763972957153189236882308193647620671477909567490701549850037513461911430984927707707981388188799594802241648658027025107467940943520449531038567766495879317023982510390660214711086158311621260718659900819113993815981019206980002411273504746288966719037907485633214283427400921682054938056270712180828730922649830665752191185346475018501353206064176412271284605585447617394530565607463566864424544627416483755690514120673514060963051264516674894066382992943836543607465061439507049680718268491637095455764248483869268184119121109249066102068846897150766603274505777733430416276371060975197903306329568178425974642628789408783851684559644100851195309785896447266906999984406321867620553034180518629391744063653329261892208563143197809996806570676230534075916158082008243620739323011422382563007167365827710939915226247993252800114545633126956913246900328738993911339924973244800458765877136821489766160972699382570765115866631072108284970496493655241292240445831917028488982071788848543898145129166758790783849620960486036929632914755949803703181397867975528937361373546962761577662962207719051228291742970947233870176534430995784310634795423534880588812316576787070585082465000483245110672533899162314319013052215436791261286621262025252852179121713496924066920955811300699979492303746012845277113877006297076997114380374551150579841110044342089224440516377145076186250542235670399962251975592367737898746431995701613605322911640936095313734900499690129956689795553327110013858417530334611340210845826547510128600048876096829552192847488707229262829045733119856043999005104847076631027859118911246462559319098421987892697851843786795044064658475722817231567695629917575761160720338046529948758793306544871291643075241965092757934624424196266506897994861032792737656200523057566207929201678804962838715115100336495927191879559258750407447539071968649793881976218451758262547895343851334819898095132507765160321893676439357898742571823839567418184453569954531500825421333065170103087325356116106932679093092028699223727854685217016280674759949139149937049278885671675062376624149147062796470717735208527810171673359988482813717960977779529417224263323185183553171673320299763032418776446235417596885902514478222072582219340072183477776081196406213804149820080825012550009417665392880086179177814495916154345772474065195421337087636366824239736563281895322108316245859751661490301895918231994263299559631856193115598539627605496399777597174460475175516976074835627598193572000822977574282776198024974038782608577171258560492946006406109367312789994926913103457645884486149904402084263027036695793074385884431406090143617060154103775886738569297937766457558612399789354000109285744495802229354674987543783097095141012618348548384804302413813376370004543922258537140377144794573585293884581428937200197988013084547818926281222201912046283535069380148197439555846775645883344962791726360825927611248659200599898321840601093554023766309078224916292138475910242411413828352516026253532644356005700708404511931066526906879899667718932492694696883452642730907498638387724052833667812313704553369799919578292321346821376963128635436582250692439130895686867697434334084447519086688325727861767116122078472182469489325323395666988570670246917586069890569450603565549529539705190994928858489455846540610827437356060941258137122948492044740058051873023008837408669294614984427486763031677724627524020154028009234152768917062357140253785087903729355600728645954284973277697539820879610767311348006981447942548620881704667439654872143854519042795790681360431663486317456943277348528810159851090450527895314691234755087156271039172395787928759766722151676242629010745403312129091011224083265176932049796032344774162521682220974991594892033713766094508300343348209442502510800042088057546922120493249141274034291491245380214834116836753841941601953889277033257466327493397056873725448755062214127375046406492136721653694311147483322249806215483161594654439089898309641533069584862785815147703515225514610156485568015514515791718182069357699171875608792646865555988016633582618690698354908083529839286119312665391402712382355315960381577860986824167842882888906935426095107932400386980631122798817199112860052377045295945646679433112929911631026904499920806724716918121994414672327761362922962894963354828582248486035627995208422410591444838335198652172331478016424432466805977368595377413430066551651461749035324251190070249576024735054695376433532523849388045847442279832393927585805953902396893823771283293385537873048442390783705836674196657066165500536645168202374503910749117674459632075945204954674341646346117978453363714430103902256508271911023615932369578312408093209988951551222044702519521768909200457761299388993167263916545073537102374111797467742589229534419022297588846887428396795284431983203184707111946846841412444186749705085618158902163171987758989525771349462047318983190684935059056748665606636149416187281484976653042222244137565176277436844536195895000602498130043450987713762463275355622902259700447693569386717575223737336763902387807508478999304666167525689085346755244694032897011670909700195343921033297006319642674010577008035148829771798020899951155435069771918312921014295000412547369839690092625757617418217285451418090261417937586289984055781829869216488669866311027767601314870574595534063602210493845371086798753552300415084475554328382345340505167636737734435740356769360532775639779430015655396644317292414282220372659382814494564574118958257396763607403875678468919134116457365526844823195071686209998991854740816747696526459352447205019157770113454318960866629832780076951704649374183976247833709791438522418547490359977792730018563503069417517669898828337921384251067140264505840795093431796344345213812045700863478946499632502695806810343693987940006364358499908160484536383345938466846043068215257288582616984964194825384992520628935004069880794079831963839236443883299605818255130768306655909310376848767243320389451282346340701247214637967674435270796736390517498369552055472923054379993992466802982060562655867718365656458262401341613122993110075317943005543075673479011030813373018187461428282709488283728721491596665338305498156675523181861159980493764704670352243891506789090516032939152322736117095440753371603747714232688110538263838872461673616621815178052763810667586619862675771321663375058691996181808885809030453416942522607205174284438592720627563137514729685950742803095197971417263317393680104061066136833861297158511652364564978097390482367021566542483079034459666444977332720654019922894976588505651500314521119049014317705778615282616345558170992060355620562170336671680274327398863218900503710414661592939203416916939732069928176641726073514819548151202908054146724975545371815424014803824880408642797743589891612170354505181704336790744931901216388147668829549428288766084405196380615447100601816760416605967848831453287181420187890959751576296604537901756653150243739237873375877180871097275368939187382870095733925493173497022366675478129783386866172310589523041094067484693935491640219722475147358393798945005430783049328297619362432803192064663919348595931187492120232849767501704144656272937695334614928564790566159838544254520906216522064242643169929850788049603562205892264441183814540887940456152604642646081518100790786253808888459164460749290792014776061791654775036456543063719126897051107129955175798864503225396039477573596160651333709828760989674961481092550416348907172083484913039395856156153788511253058456413850893912516842332977169998426559734568861671652681581744202400647635087836128182161462457641325948035674231361399643436393913410657749005471861745992859391203002466203085594304274032156961815081290853233267827251854624651877808066156335394236175098685775305577260345500424287628816005466348435835950600399040483742325491792279165005443845073652265177248905509237211882508520359061511601291080058326348787823915519188553688458109520277816821133577153943866050679060657587334366500667763995212155672480632609841461142493709846584692378680473652301703196317530467860944697406701975450030747586671247149330060722978454298265922326509871354876302974332536514304271108149700160998187087193133814629764484545952202409628845071163482774899350680761521647309162659576733434014974508877788663280912709006884916752205621356451448350554199154306444803541042761871423250277765444311899113675814256648224546762357352610651197919381145853116206701867530637021097360878225320120185544646738782583791212967315057226991898272029246060901000445464923922695823807702261434629979440345501362860138448170567978194078867018752402454298938292784803208503008468921776878082862044177766867301770171858710422446710121241586685243731768336375743574922209717353839850496265914139177476853263434542002271379751534515291235804892956215632268222240045550198283993360031757198544695120178194983129576144008630412328156550541801608079631629481404942889792516842151297648241816041732667771491529188321821595862113772571777526038535830259431341104031281840309708735307744033193170234083162390284816668614438282059884693113666082217582778330477618575558743387072767926492966776452756343709727152451400396951464729480894427190494422165878796289923198080578982950849044849702744472815094507452714636045491812704068971130947259826384699166909858284463485159645719574745789444078030569803419742265147581880599782099727709997065988629466708851071806388515362808704646023304407120251598840781471319249746053671937097947084746809249429675999239747777201274248256224834207424205379522783077591711853020470906159109668076709677560768368666486313302405564400786020583051395920013363422305560406259550977865826117875070024034614149367203036528048459467371603346158077668739478840905319311591307243303519238826829211733360476563764554735708637300904704840919990453105078103080979122610735496844118065728267630502945319617542780473412220721813553388758185695327243589416277726644519150561198823919773017584364638864658378871929159351096829409773997029127474772683172038758984845969164620740498549151108600918849091590639766055353337304249451463974913939406967815962331132313900119095789784705620482550134281175557040319455983679651476063971480414260589730191943638978862757551897515425366279836398645904175237303638915674362383824400576023669321878385256897351215801981834444124818684527273892114974665005830424684202625064864025418782191399647787844769164152061376928396815195566074409531701703994748672736601894695988293828632300474370013845796836422762887202510115586290890656691360663069899485101816380520896900571336339970135427187849723967099548709141264336984718651136987737348811512512412583717999584834852494121672340104873304918215109222609938976122320524936161608505389819426343103514536904444996358869294552888075162052055478949444034720622572990304307297951148304344028898949576356355002448587462283582061144774727653380499362329080612415452406386788488066034190642382510392065802435391681445326133690309558269124625547377092193942419997367237427964870665573467507064006070702431362344374577410535083062205937499206939694968229570830059215398620203416599376959055913328879786256920925673660924927775094370519399625770714869098747312889527659466767235124208758141018939572185813380477329991292659403760495554824830207878012863593305259979657034333232007305519107967323645177791154535038150642449857830819137960436085325658310504907898016519681113598867584484209456644032472334822748354941456194544641598625123501474492022668858016247484276017798094418670448700246812333177774369756596789072654792944394046910761910347011886314350557388989453763899855589010759476583690185474808022375062452550576359470476174391616344837883575336852910325698715642394667429201428282747163676676396083403322727388870888451103923746783680369230512303497807584975251183105572774486705376659473404247917253573675581937572559628844908011066444167543854722892303330367245085576029869857601107914854416734966385833310448435101802565021023352945476315173229225137998040680350124017179778045795935289355746298891801117923156335080513558896958851594669256881504863637328047836680876883571335909082487423589569225121853432135749969499674489836421458127316999050262158939736992904023185380762305205410977177204729664512654057590236729896110236961465974989670909548921062506495528265961274385259110241012307803149791757107269526728131987179854553178239940885772161453941523730526577673920866810912462629410636258348318586059461246737991187692515733723949855492734735701873595725512682224542016976958607207287746093418219090093926465385638647752874146177299611493925900637453562530308317498843293581281780510432229971122444151120826976816742625912678645277273777527399854556103047251453546760224077180816094532262316977299962731440506393549361430032900037022216250885221870794350300748079667245111706194231601304267219633741434784999771550990774233422365508714741255647628863843831659151499036237458668967214844731356687079939016423811183996217479683216082443595649516901458024925520775767313601173851325863232419886342247342649198000048119723475032561582830809134331665055224443523871600822803540940386921426648110216927954111388181273220199913764643952008020356106747475896884625547624736347420507112698570308417824681153051680155165491291863961412924182699224706991571658001340717513650333188771429214055748695041211592792339261683797587686838947302747896147486167629768582995622801017465451017011215612549413019015860351723464733667168301349924801742251392905122942094455992033492760340894608464033876095367596380190919417586559312873960279125105965404496212151770209578971066552592369719338228226749132290717447358925650461663735632368710651914572979096121731251179784667266882733039105348653073890174282734376189978918962353107670158514245328542510122766969494658077278228726883325844979697522136067768155812497028926894639500869608868383195494444678298739189774437161194666183679609247268190121965220096651025696755742165555970946361738595190190780366799858872628182170016246946517485876367768426787503524781571937121998966093053080712624219283222354740773267012393086411795817216863095007225001190893693402228719767289947999397353924531647369453567492861982424989270153304903134271021709276342769738739232113925619339669052452659504415113860465325500782351435702991116985334758033629877175140771177174788851944534664411224006192657502353519223458839466468109256684514287178930788911276453961615331952857295348172253891310882109529678527558323239774908784784302992996076399516563753250241527677440255373701616484645640922822964031088593240803001299779172288856378191832402936448555886388807617894527205183221848743249559404116098796597795500780653436781789307254435833363761375133944439475567360500726539673839557057289869108471464854866449308394515826876336561904874406604031669596375504753011271929014395905653703653877605734078657708886157043182746844626716483139892178503651685339066600986357363076888441688382954775443114599898586212919408556210033922156850150541167542827227565260203421241131680461090777717851488281624568661561392822567611667606657927573849877797170082637914568844029734731978989499546443502014849629871355330568760015523911554888785372663733050895201435049665495955748951905446427561639047535294440677331928469447188699019290574542106856480378056446100835203211185078631427569981793523481772606139999021956187768844511731979847131276939239648326965924196206881197369127746647911964934760101180206233049519037035353392737948490365478085644168644230019242406321036582454440936315447255172958868388931227514953461465334618042072120853953682070269531936513596057095297338188280092680125227257624289531853466083188936333993767649011922905067931950849304179211758476681451514865141363595918810685432844103958229785922361285721743582920949734668329871415991508134317307965682121316862982332938245065032803655360412466052028972299398709825982858036728071312258147234680247306097281215846146660956820488813351973315256327888635041224551344354837571124705017498444427657589756589702106961979065433567088833126334969088181044138017038741617624335006686777719208811783058754834728087488397619758889549958393803252316480374294734527251955330906735572641064353573141904101732394122602066217118086161065778948110544338033081074045907219638486821219653428577837991739116003949126619890043170728920037083493383835578109373426529524796097333847508909143009254404216281070113180882401725397574402061789438452926697187077704389065194369331293757783854252465942651880892674896891025358275235800553839126907729055413116121229501252999451259646419241014689023227772985986263014193934631621257147533752190691511830923734610748114805655778944123163037387390875423563911111776431126895875770954510938142673900184200904521591909764904380173156131943191595886794040287082309787736953488049298879239133813222290923627522234441059784324590766981744594164806051913976439688665808658539598008559274259299173856296773482587763693105451342802158728863270580279421102762077939889079375802930563468779671016626504118358359376158329190796747362511816249869961349115397467540404644959304089851144361279238038268877470899550411512981824081606641113410159655566144116673716169822124615742410432289792308738159931620145561589067216333971958324683991840699337545287390463048673590901007698707928675506966167208015449592027740821959003184330805012589188260078556504532840850250284143494705947141727129693150317463049520307842524225708254050014470973783926734250909368426165720447203191683342456249720060107222794653505861580725983486880193227569188717646138338416055950729399015889337928300705349806799896860593837736839565628782189039244625160836465318654764207776588475033933473396925669868605266010189593365354387070647939074942249753814593388806830974847564438983739648363220714744962910175865307085561754219820938525728822923380199817050121614427400818455586035476323076760085677793568464582566383813203277408572938779281784535134816354565286074903343950223458450932327521449282462324179241509770536313482147715980518291753301933763538710641626205873693513163979710398168299861029562912060052307017427027795814764884882377774440320808981607659878991720118656161019890384421001503680059860508106021547213020394236570117491222393680726717757578004699710385197085469347063189415301464426684471348862506405352510219080033591874947168162357748419330996435200047848230783473882685236748696252975825110320706680577236910117080857785140778456693119275639848375645278132755586666358708611345655157833345639312797587562982981426966722773369391339574679196052631935355027713130616026332336415585164514419584897276430005244178374539936901267749984216912356368217199687524551848324788192084399576500057383590231827575966262159871928588533859763760064912405656377936972969152229783091314623522569556605256703780411573094910919652955502027983200151342676157856803814744789238182563061032766305989399351347474254797971437687407943084215471919662311648488233100844919477161620651608789852237835871053940263504073552425539291095928708177431821292411181700182931557985979221163102545053795774195773848372466299755202444114787456311823240449794687169767646222116506666383679406180361782991858027578817287425397245845475948745423255066870634633448368787730302039397337592796473744874717793795252150858647717060826349637311348694669638269274314009701370813809445339658963093049965269344711703642866569144221948073657898573692710403942021836153022015616334835827451715233399459913944066791559329326988225049764415702819204968544528143276785532526094212831852508323985687214555393932274489183502962698164468334406986877528990083247335098549799892570549754580202753220077258672011354866819200596655991176992857124020698715715184097546535283188331753634685343807464658341216113705126261134683262188362821761225498597062213078467047950848307834932277156598628900357954505472353094631670176663717739669758173921481944714138493324071173263175025326174718581415388016817070253084181707932944444752734507287833866933254707405198295955365941484160537126646769558307150726732997452353916023191708440345203347067429400226304083066107100599835534874935014753590841199844742372714244693389183732844891542735292006572628123437486304525376356434502333965883804137424923661912170158526057590000894110975648508856591000269030863994330134392091024752120366009078358161342675756571051974806258787167591785557435588655108560098627838114078153333934173232324909025524723995874202502670647590082075316807695633208003021464871944044939691382489320949875208671681540892555523095551660779084444181731584730111625052052683739358837920608385559715768206225160949681073153271520489049310566103556620448141024544171426186396879770598996577663676416173635221152610323411355405905960755082975330403209902591422143927030098523019273600073126754528186227700461991899353127877471309201300276684809811109491340166767683434619325386385132685934119214365488824757439657894443449541137940447894534588870725550449062818238221210442935546087570173022026349153138014763727854061612645202589794394898687787638722529007287753466534645726639212548122886802537202331348883819589673030333427940559097901602157903526567572575783202198746874854187300705349842711857023919150851323222801059337848693537179223273968851228300146458756001297610426247124109839932591023788636600713479921016682649482990816705314951607338183411970709772022840270190202751066639907545975273521764606309829519136844078362682560492505418454025138744623619300947640153080687641425775291865688880396447228734545352744712272409058543434475326359786601857983426357624359213762891069793531106022372926967749306119475782968320227845574783410206896992134944549411081215431922796592193637638378184637321920116451318009792143579583664623313510745911499506918289126615713477894687458312962520312769469336009709935907388654051199172880372965041562266947673771542932628827395413000106365994890720514734462817649094256480888312241074712976691705482444993233329259415899086455428431129036764998345489488614869678957828128221943777778906261515311878383399553139248847232249241683891522705916933207637770663079532416112030392272450978212048439102969725099695028474206693142518250827605148015912357793123182176512525325837809077332207877266911443714937656460705799764922567676797572508654085513993720334244047744050633231157669119534582324670224475666793675686023914217922849134428874586754039532363178985105338901774813969226694752112688985539066176608192738866159028144040367786229529974900650525465316717652656419483236602665592204090667699027061465316054247262786550960227392719618719874175127285199149097908506158046076364432723137789766244643419782890018554877298129715989742625454462707774060277973108505749700972508895478072493102275934059459415251105264807487154859050390435579888016097673583772950076625367789884216774768609669480283740792085277460817412702588036792853085520819355331261111745865168345509435450987849690552661221365387985025206451632265765370688142695289663969272762482498219970494853196116542577250337539697124422582905077641259308175826785013208302091262782038201504674202114308507753287530493502714758104545350670381068128475724416277457479360226745640929607839154136466005590655919269955512109847661802349433914664124185419124302669736032708688607328406137913277870339494350675735177842285395337257229378026729530503018135941358594252433138383404381303721777377549863822394958883781863656342259874040167285820821044431761883881947759326082188164479316330711470955212983307418709348121816002310561685650748569977180621155362001346298211041521328077811107727809615479504898006049371353235561434941582996900836612060955368979684258741431273265544773615027146728063229871320990283670023729254124475226118795609212792207328127394438401024065210615432484663153803847758723954375758361871897198118336281953477356829586797141600558052647757175004586744293306254197238851969945238688215382030796354303958838088038890622126812364371454904955794919013792500448813162169860959558985200489659006873126173227096438333813595302691468914378766420985179473822860122567684529986687945336805524485117486017885988427824317898311404524294186773592470640895053223231842391812406643217850421684350072902989218246622493020760653791666680746764743734114703123846741295932675567176903253774459673490426317021889291302628733939299855410711437197454593149142949392860061983473209483449093795935532002591567750706147194738389982298713203141129618800773927261779281355637834015021882224319257448786371297071330401555962534474764063198355950672598189426645351278982199353247496838057424447891145426792139102803371557360412891140151702118505434331229829453370202511582772398356073901230001955751211345449647197730035103351023968321855819649609153473619277741741067873658384959562358859220832787921960030440978457377470377098225301365422077294225021991103935781408580912809231162227949580152688522171521934953490792035958734037601904809734433820112012107597903656680409577063883691449380638840133873658626186250748601462661486318314831344264986853494837388179208968179084186410310418962328522541797171759786431609023852217766225007982883962586940234105377452672562728549342139199786034895918753897775027249121885023742005910523662725696921462579385105052633123060935894578012470187661188319547797676806278131779457727045548581478426782647782677584165121469376871507099197716245101733247148416211995911887871410521682881383325449933051448635388145575145647542040230702692053804474198539427232875245794527236746068072498795465364718943039153616658596217106918866600409382401920321872415624101169256495419705101757289926220419417210226764361262514403171152626369694853627009090634160033226550099829738966028857481902950236723772347970636798034039631848146679628568248357188668893490731360565968924730389754824972418354633576741268533712794220192508246066802481711417332223717731986099614372851796674988758041714229452283911109556217696400681030516847348377971471713169656855127915691727067750963554467530437912272770636484623251856351456976153348803846546863822928930049752197474191230550754964587412747272031997839525204603696215888110769801501179153864582624935921351252889884829222900611866513366584420235324998485733466800992587380056860793616203240734565876745945221019886268558390265872169690792247058946281694350126824652423193969790762753023500818501348778480159939456420635155249565110285800630202469962974324376251207814369672392650703284328855063717870644709443132196026351194763749267514462787707613503405114624063551236453677481146363840178009748206943668458954264736776445990892322496069140138292968832186826418387270573397377294995200755489036225774768547458188516856094344220801717839611863398766222412447956534918671761140237948442830559632706683800691977680493407200640741963040806609545331350171607886719472939558177879083265603286093883338305732256791338625738009635763149429456227043049186755288168631591897726549309759759561652458250471099192155971570062393989321999813884084703547499359380650665374090446108893257840669402315652564273100452521238929267743818933338579221859464739442747305080601172672898093094350858737048573964357123200891685023032750214117920747124617795322374666950432273379965865048525126754135534568005917015975062332642515981106433067420215710977121977646598651662879459456321858520624465077752290335668725662954752471822901093834356617556397359712107992697144222792275665580673547309784203726309770933313605043440229097571791308706647863025906126976459311823278414236831393445169056076676621356633904165915345361618447293613180634470573413982208508278395425804934102076170106190633734149627791966657827111339979641255141537286112671291319464695330790109442587367418213464342823932348968999831092266736378062682343098544383766301941153157086487111880544379329738505793235573920533900458268895821414343746570570084494429547588355808176220757742548494547806937467533434235752016918621484511095358093340513890328160250148936742264863638042748287321529274086121438625607520289959482669115590132213452818614579380899352739081568205865787346493454048675656529695933364218638090834424356182640860106430825249607403152490194042257487364638608284850258776166272844976166652147442863504057204340779925882706101742923192635115566113842395061763422026466654349047799910090057187194544024638139449708299047611554680806348872153635314546207850217328416735390843527902974445613030958393683789490622932354766064367884518043607670989344571209031654085915973531041313406098885527708503407018376396789168298298020200831697564057824156360121175354385111376124215544206687565277160522082323129959063522836807683688722292121916698801493499292421337407026540952358094111052469906663720205126634542494926893041687572932594235307189990338558955966382168530973560849614859132103415496000699485551971796771466946535851692721138660967894361845822401368480037342767402172223660803339637368229622773271203789255903227249265615622383724141923121236575140519815466711939983074763485879148444321701696253387825485995767272295522768099434140078709180773345421367557659951219299858288909724910954892307157473698572348222998934335625317107911479693195923845592988517093938726314227194854328269686495501374257099174724650102695089499971874910725406650784875809525486736652933086898623508931875782958386925753680378947479650792456098507436599646277699048741797157388687432071635640568352551284421083672313758007566104858735113586510408071550006683569072406294771890422351832923315075862964828646572685444088450565521739636469227742172420418783435714815629163938499760682879285692102022612440866163010514965282030870696609987315582044713733129641775287516118713664076104353171719232887244749550058161205130750827967839273196080320807668405011682324663739348381336383671753174456592096285333967523063754551099798911585674742141488705108367368897802799150693197365389945026930910798875171741446641114681154583836889498942093228782658387964398290873189273628793160327324286674943897070677665508140837133351478131032477229082274871624538119140917104266815494295878554231447822350326054164706087713807830558540803090135966810802311212186829044835395532688479086562627427658769497514400060378208357566289822532887767999779368672813482976619906804477627965036017924601130762693970540803217389982482484176649145109178250204763076879824604504421672048195498432778365912939746461017711669542490659334280385262953393309849474107193921623584177490299166214079786834907662551455249741540679564999769875852618300875551225930804233052784613706684540748902875744037745158278850256921294424347683560247305692194875585691161697135361222278006057183281979147778579261257293101180660087432023414095079475308387070527963152503019369568187814245886045881259255979300156658915332151644320828650521662614608669286012157396160200373922142958789795576114502909942981187790272087922175126866783567630473359553386188059572081127768696059345055114429979013856667652476684443121603853771957691874617684405775679909476497968274364758731933057872306617128253087749837024391883447629661409758539754419782659803526626366267014812575773535896910909350520489184215717356611047924428359259527690614612055315176561949177894359826473610943673194551967950119138114539237678574337072925226342324875216698326506413531011649674900288967726117433149708738358658760591553994027107416087441741475421520250689771500557791225390546062118270648886489318292887798344966744261884209124797346954502457467813455358010567954104533005640291327750152080656148977389491893689285069748578840574213171425774710316242513591918546454783168370304889710136610821953446447909788144766219568504947844410449501754213112968785578645927853470828407479880311761165219974571857417234073486750646285880994812614392132357793726507679705093629991623820240309052222317236037981298046396306212728657049902649806012097894839721542425792524872526851298154695333780176847590534184815030682060637570251967971516452620274155161313913554887052155528073737769258007188455434242709471585478760227744276547490293038942245310741886607501785675535713919231708420510549896012583289020226844100309865230862405302155538126165838611776777337174784826002242866488734950342072733366389832424885074065797856494919030926088719248014476254972189318134288720688251457090774906032320581998534659453279877774246864116917284617068866612457122012810859629581035455925673138968892223128982010195762979562436500581805777970929973409114607354787276984866357849461633514412233984234416810769598622630126595636628165218969544367513264742769539475337970874963281532480844446780821739802948358567119744600090764075321667644855300917731052761836914216614889781460234288700707718484834666572271695281596473488558598131318673884892995934721778984746671767203897019045026951562491551410130621308563001958385107364668811452631449465507706889906611868467832931133219187383625913365216494222241062446139211020463290278678032753899845421578263401391374241900007743505841654573992295090630565161874738402173225934743349363930928935375732483889648096532784870877316021306670380253741634060761885045744437379341609270011536266961676328040342602067622460751238733220672158677979153463855366096905948380234025086289554977469866372710187658525700549816339401092581540486916390998709794031022136616940150473883379324687334196337334798706661649796149729922276712749158246351016428383816318903144632080705718341916909629217897098463407487435642439422854522461528152867243902753911536623188823245065263921034820348087079141972690001608512417599905577456088654626615363379133865446762111074154703720001598851914665300229347633095820323313872188077525536193907933937157970848604717233705679732421975014978433962232627920932450535988313384957848812896890284774305685267358456259100865485434949833896438679448011179505379653021064867087971069407205412275890185670912014960062159512187395801106832123391007462271940521346945822682832940117102272241860689855801104502185284869690683065053758427612058174873803187418387012463426160691395978339467563973505159563571633409795141484871576825774801114465789904620698351593008382247485321660020816640577310041809281948924654286960805775753840209675477874077117199018416356700399923788900254236622995922431122123825858481314101317058283925747704416013704509422844975564715869839417864451460419021758697207441259608984124520322905411370268714457148990624251826496282196536976757744389009997919911145977600052138880688038131713571435191819806930653237164590958484594499332383640003682171760808425992997180963010730433559276639684334497289161234232128175063944963782899394417846640382211338203643112671146710265854727964804129351750174847774804625747406909398162986672966434313189193936349812046122308091451251888840016743535806646954865345236113574118648872335250834846978146541348540007198293027393378252409243553201671139049018397105006766533641213570496126225104110843713975265657872596977108008301201140797976315655987646385016810644118211094627754693840774649376246450784156451657767358816765595192101966727411974403142341525417664807221910727811229901967817441063441104422616360642798378903618827117649870517462260567039732455489782047030969100626845172614397677121942674387133797369321151613400677728757899960198634215899044681841408752354308786435839429028460913063862758498704411047948108090457533825535504993746805085684976917341259414241628952281176942257035215627659383222804237457873886488659220814469875936585682481680449808722536572310541122034201413866171819144022926312844961344640523613516809661063142416177471438649929040697730422291997113119956883817373953642809290461932316038985709652074055520329258163231177862239966401563800360015306497637873751317805817227132301404127705401658222818292774466785700716040464726958176372379392119296889701022835151469648512515504049432154625919131580813103036859711680724939116370555952897437426694759251524545410348048231423109833443640063924964693890259605514014908286097064893245307963397541017725620119925934776501668748052986908859722625300533610998246778362693061971733139716699966277285560416814065806904733239427079928968348159712039349564994048223490501999560477760923200465452921690235179709951483146133067841974511516136679171834999968462710358892230023667431139900845505027115144680364143343007527310151835893027420716229744748924242826458726060086170208390740206391390132706649891104177321464468614176693729552726713493412722117094373889720215606546140662995689584021771560980336716974276150498208450542158286683905148282795013270469174488676306375815790503799259996535885427702233875254570168151889723396630192396383893583247448547018809145181159437269540794421577184990527316271192287023621181938996136330681101907429683662158469751017261712526124807073397851269362174148791471913498235266644084082014457478616307104756508570561299647665765625179352422148535086398162939229941645372582776024940289748623942184254813776930175991952063019068752934624110630648051523031982036375314746328187882878654427828160485959287795256203460314326464045031591098659695874571798097547455366822773631539116077490839183239324793631111048224982585265473415021232322086058571374482477364067411129650313602696920253688276637485117339372460215031383381347170758528684677764096821355653985646339229324391642925892065668999588057140778794426924866792846931761072723247911152550614481096027024869580358680766102088307366464882627155035980926490356479744089708904631607225412991285734596557653400253672478978177512612888554413416661160447362287694388750086676768777242181569477546837855100518457244169054720626350713495297010693905825304728183046645018518654030984283796583148003716019007338106912020123262621473142275456088456847334880447676191875756571661088857559080976141240931275792467887751627977875945429305158532515510430562164684147237805329491468558469670957722673318340296847198160570033229272561636554718975400161883053282108228559301350629965340681012667718273293674281951649560474775878897202816396627215756481440886934843504339828388278639568192119055084549947592902343865776439778893509596784079424781242759045477181864760410779388661908649528473659407609908759839576503624320019820808188741793762479797952961586751682777539360430635168755944281864892163355432361728550432953889751351951593526295276846483926365602450596136081866577782981918166964722182039093286442059744145071818533545673483320102425496880264548864900077735865830206035798597558502254943004726579742234395454072397689884447149276198421009023065253142705702518633747055055812904188294882724964086908055765024555213222052220403782335412057683229043815956273119497870534124085354841968512239521072209198138591761648653596762328295425411278727308909138262462175855315049372794639019005891194047722876434000979646276910837067507519460159622002733592591703326551108412545486299964084911469197433141547900022274070898973434921303617031790769969291642588442899566677867513595090656425880547319308911876740702890155599668899311041703836817984655897474065600603031651174441469508175058418372860581903751823366310156840555426364971071009684824105431979276867589069954963381856034678209270017155563665410706153349690984623964994799555599510876218111226909859004822516587501937089134234484319285695758506429381447709142118408172111633453712386093971214193383260890960241974912862241661527300228202942408767503606735320614905017417447051905192420489753571681085983591180926212408526891521145581014777053043849573388471058653992259506368284051757236665667151290626069618724951635389717623151817776558035127365653722680752851273610540081044071050219258652419175759279643228721905003976553381689759463651732400579427615641755208595750817896170779776316069188643358025327752522827291891955283608485969211848085108086255604341152432703550263542557415252536074480179011851769418544366932431541059672895086959209619712391334735161320662578693087035073917606569925654831717541879625624456381382324646451414243093819907762470112957315065755505096750144667918867386890183410847698266445915644034372330568489082264455267633299351573984019209730207751516512674450720917878451544667915514430034029294073112037706175343521989336006344620356130044956571406050846328067331106048747523417065877791699563328997955134306534775126286890338153275352143795930169639049788254292526936498610639292704992539847467055409037409913372123508580505556912179864780912658119271591167315532581488331712953466903082038498885926196674038985531482781688848173843949417413444074418541057465309410898939705619542116094197767644511422445041206455757538709916463618018881096904724581086036177406837139247821586645572442420316028915041291661303573991527329927665632220926539699392585597768187191945341830118415973961578270058757380352455151159116059237701109441560835595431055685319732573367091625501464444743729865158810037998734804372437824173607175652196451356926937624009121494242825016209583908322595909474511869692562785831970363525110543130697600050574961798125349561987190797311553569784180590600586795664234819971202252663104187771787496794899557842670599681080893592024787033111974150331540925493956036195972321557625618768009503265147453343015327648663703515394861429404104624950823417802303652191040891815812299185708203646647484247593267195286329542122989023663380685914160939756805353489024458203113297752349072364743845123349775045702165889130220028985515930347732177097370475839883797657499893630916162110110180100999032037960036632322420246228004129674864734645019243774807507081620632760943126924590516598340804800259003977649112712808388445295620846687831714982754247666149415469555873486177778762295331028859496928993251395306725383142278045324358016681345922137887615355979311772414047607004342395411549733228445548517013188195141550487304535764626767040295484185997672034601132855124072567269992107646331429053997729643352950182266407896130424701704701356068307370092411301797845154080101651951204372090213631727190669533870658830105691267807585902149483756619662295125245452950365664716239305986100429350057541908507682457084742957639519969126449094018483214631862388095055968072925990906661079021003076314693061083576909354141672467022588652023613486905278432154291976098461693232014912730117266223985486242405909757338715882040837609825864057494362164981812631006924827779989674296453148472021498027031884812414938548938371035486891935388007854619340100389627668334946890682305456986644726199416312376551881064639076516679893138102795214493173852690285837674493021534569792670714233417106149428908422531062846714348730300084570337971740315678804275537844534074383048623980174871089241374852457824470087385462255772024308521698720685638530302015288264992212083073682768269440119374482063115383010803105921073460187520724930439433544879272898409242818803051349338053536988196438970108593292422792604046505028023881012591088869777715955186336222252489378613481225571243603338745533545868651123592526070457784041976315127462826276701561286855972688030922098494595598091244937064415391970912650884770610677819592817982969716605056268798189963492446853729535110629906149035131917229517412454812411094395625211076937513487268007201551043762366514271871825683652106048390665692378441217538014472067344769835057955073794557332736381830984554604891132665753008029761892221907123905534699447891188718369269440328816907526566318933864416215343193372768630548525527551222117777943200989756478951377400549843888737824237573685454806124157780669433490981587780862043676973120216193466472706161016101864687274609828138822303802088164754040214865362590668232821433036145623427588915628149052583115301318386260162733441010803553866764755856471785080115397638165022566461977916623626596083913229758360621110586474909983942862465616300756798498210555342574192795446729173124145991488102246336806991367028107615419082953798527366457561095396657656101116778555588932923443695721227756098212070766606484637379253942060542498382246266162791853101923249587100764484223285836554557052009718788965785976298545884383883545452379899070539652996768444907686135739726912135553177263886633606876053649213986003965365139635785612350643318921159932567178091123830234616629295975833353289809307998490314964228837488348692348557460857897377907151800804073227635504502929921989099267889059330731162923438165123542942780896300791274702237603150921068429626217889299354471414183319559520636047470652686896053892182307902275275826966111119423708333179281030519908895156961084389458891549651143101548953019819233634493770112327327257571272302674530841231531974394014259860639738991325843284486124881158906958837083275228896334960212354011083255914286773909007650348243925170748878197623300925446565757516480000119575486937497721146037675380415821286273655252479997448130793968210627133972589456580339569122292209093613006862257150099701228665929703419696023105757951389475034617536656029466984865477258095200090449950455205456792621323889231222932816235588673320654759032441403990345526496649964084507410949821541002210125623958510441030619472662610034044727125184806470412448589211620048852473068553646322212229641449159554784198822204647655713095770706211919509097009259078138330870571628522148794559890638836552723225517401365068144611348939572335209596453899127550489852653883549337462263708939608988828573141314204120988937205023338402269632117288557528546220406329697041487193623853174289327373126224661997063843115790074156018332492090883272876253297715576873465569710527451148499332802966924893621707000463180543266418633397347902774592905059012024715933646891731201134276461062381105628023789606872926551265087134166529113195171153154299240116301655263726787389261948909061183430369267234361661761193081292416830557503240213672629773109324190537046120776229222096243745900187477709616491337763632952949483333638370978093843282353713028974411200565935673423262113087716336973400419212754878844566246996150064653016581840484492168664860969313178497751234111548490563448343546017741077738606448541488163625467990388433815620436147024679452729183136460597801576003892435536645649325297366671251233578590899348817217580436637245120275989542738955499433603744917622290656166206187656630879616464285016020707537876111600480096750033543150585739667624333632027108539336965772711403778248423820367949411283697163166851078227846272900717457043555244839792554600677858425608589185570952261084927280428679063987864975806186149025270756680565364314749997938763783125866377584843858908926144557710657103555597109779380207981624466915936435707255315635567513494937732098463232590035630854441970487037245390320347861840413087921123631879504254573469661379099643766488614820943589148585896744491562609654151174033649304512342920253498418776497072686620225335908002255543716267963673844739047489413943260107697807081322196625205119409540313395412103176956950545312480678054015692311684195038561274100472846727363420707225251716038533998484441512509602232798871260059918249709606102177776284154334134440781229720071003484587978344958776494540346379530726225889027849957878189753348165792384717642459849692954214964075139801831218298859754431163803709359961722492619124834351452068884053835274901383005147532128231896863631829016465018432376661979924895604529584866502552320188751706711792845482365027344241771563944384630731934679531465530244719686437319684170620044327618166921399436009760633627525219920106822717735141754816355697117619561640932596657436962947270717110522259939974920586233108103329056414366408173492473133952491503390142412283260235448478151621545359474056596864003165918528819107288753547690952200728896095795217748917737356089388918575671085613616453896012114921925813079504908439932305535039669874418532116519957386754371165405549214462190156375437709580284624182784094110672185137080133673889911584846978483932661707499963930499657657102764982965153172364948310607228902188638100688134518275682596676217291983438897640610107180284962258973746739341473652361040270676867192988918899466325688249582177763132663801608503719253884505672783499564553239731180381778829288816421832634769172028496048589112637390339156952865249818699575227611947840732115915255374801873905354613497096904246741811450338224403996498155569573181364357042119041123863006766789125744148588432129960566940825344061472367944786951899372056554550567829543276694478607858495030811820364366705010110055899094278690019206733082701593070854213257322864850471445934853616021626079488948726358245586164582646985478457596972391333521794297305096521550488902045853730049849243626528749188450566390139005671275389824350875329046733545895180752570442808669099759634575367156018190122093691824156297939175940094850518682864482461351867717646328351436887371543099933062099596867252045906733278014063665113628713744817231791974114295039232779768848462515492844201379983672865975753705688593038764572824756247033386210430286503520810374441574341792940300485468042697593970375771063529221892976208114141826848264130294197974643727744820004178148103355088309167688304218592083425383068559750188292101950328003154858550555609858108226065305202403421575306217927011706062463930173815309370856128747454029099435336331275037749438022528166040977839270527967653734305050287719261376012113105007312210371487803250681889059355169891779884924067328349236134160266969516454496789026547569065462285816206434305937809630251564553997128704853067283731397825555011838525773089882161213991438564608889931917456392152429494827071248418932747528302504683823630085642672038704587354988503125275952796799804494683273318107740081554849502397362658536993595441543633277126694719690721380491760333917390100107170449212242789095000319939137562736567542862404288040941266202024452091416916143349377145174204704705911755215539526438328581614708886077753840895677596620658076293524861426460411504802759104411742808862292531180321862030888564111468272280927558298697528127774957670769640866505032002730257156895011557311159308542702704454281458233113821832233384380986193228228055788331186290842257026504057731456443365965300275922481644656525173259057724331786387976579152922834866577797476912299642772035373576909602385361176686202509304959978083820141950366779514641764644644110630603064608512423405460508898905194651089129995674981068668576387196426877481796490739842393458483735972327982545279523912185759023085989367825423116811761742132446140818192169365823132701982512046899829056699131644678326525090741778217689038602573409167302645020010769268787857192176548240113188043660447015595190032866557912217162754461098898575745019516781374930570810056656808369453531382812585289625700459742769545130862339059952150249047967116480290482421613749656757121160755908320076110469227525866652747897190458467646013354271487330124821524683667589513030555466792563466981366721767175147694967877610626415224146692581659637067552437421885353489200719123107778216960052510091635588206173083320674738917841976786170644750439185929446638662931974854263523868422729947242247914229474830974267669124536547548467353981876208934497613099653310344306064918097263811431562942425604749304692598866951971085270225283897511527672454467195282817507785265513769907520055470205446751067362352513638640924034603350375966021185202945540312175684587724929496487370825655188166088625302272232357195081146981592000013982696504297949718417703129243901487319803698826306179951865964080131771474170747197949779733337854092316089188036958261185824782326329157076548135150287796023910325785729000725331048853479287048866780404807749551634630944870577739202635910577394335911977471366053674874825659800295238500653384305933034127367104459353162719490518189963555564281829084456792489243412080206196287157879219685711538788929861102476633662109078062369666035645238191602144090612521816460897347417021863160064417806821384020729768140671219363992524227591108731460016724242391047760256296601279213535667892999970266716899634516527553406467147785353433279047193528542590955237427488977166388668107863486324578848801571249790055248461169391644130933865871464681170586861874624292828741634198005896915047021001980923701785136110540819165664481125688831245364563916162696692518267847340661893226522863021719864775645183325292592132184894870717342481652918444446060301165892644219152507791810056193501777142768076666554249463646340599127974633106972003546075011142625556837734723453658285267223997891040900479122137346198818966141645845733459386755682138166299344870195481906770997796684085966810359655518970560266035391201416980153018676748351585069676856461030266365200398128082698755347122828640044492904508090610878343353061037449849238222522057607965967307961687471377300980428471506398832770137881500774537801057306431082425789258943608246815857350557501561466360282132967080880543567236813938210780794206152685554071357277409236803915083703840721065357697588368878725204350503246849022557628919607475744069430283991886182764891148289543611311106813742686864322797769690805661710581341035135158400997416859207757049703911859005714563708391583304269534791531066008311528799676517725716859912744776569650231383659612149215699584255602007714263244207347477849113129673500337919193992822966780030211421917012923233993413635838100793477404071954062613369124568060291070275900527135181145899255183356666228785234925154431686820284653641175502148024617416156470379431712988857663245877172897811632436691738186822325587305227454029075167790431391078902461200237966385729051801097765167361219806366687987083594814104309542396618691677687333896997806591651453871218549971762901979898101654291907399319578269850426601857725060733097893470052836726918072687652056143568337418183128412011250928514965857467921879634361520590654981279107059066887422241459622985536227218152650994616425801013830588415091952713694409916179229779181565134601489706284057048846915434799179858279774448084956478081639242824521838305777324142037483153092124014139662945801801658948059764223648106346803945502019678181462043168537386912186963454170972392226101882302377545999330848706798280084427117942671041375449157945637205953341612404341557007683748758922103879744035305851611244773736314415418722588508329144272462670367466063210486796980042521640904744898504810102861029040187560125078637599934138011087673203649013063314372350853958461259724050989196118505482676811187899958242080016024853053232604000403447972869771912596090986728439701530600895080137285857648976932668071311822263554031401274189543554849279896599977385736177224909989684138728733341139781320557971271336919771002129592074789327400732130903765632596793967053283544095414250857722400686275293770928106631587910607167258926464917919719807253911567045967729410799966124151150495469246259103478825289627750544460838536528522030403035486635740498575543647954540313144914244718839464061554206643976658544895029857778840007416151178365697119562945143960605675822775309154425774093076346885065091312284083287601841987861287161521150951796618789463257834698872569410960771308466058892305129335154645088593422261204942705746047181428289334528565078713791538159153998303322364624154196585820144959984391651594183862564823311716230087644277123473929529100531627382391571095745837210945345594047308268195825706688346554290068268429207461636275738913770916954746697816812628582913652345337066730757129849258157651946433823012610367224266818217672757559531969171160903509766858282027746254199640152476848922440822196829996171249982385935312788095243010694995514212846235983978173857727059813738103791787842429506966487763252120064741414574283119467731429036037799619116003196557960033703038481352616118808866436428251308166873049682861848166983866760950243459641250326378202873545514817400047520785763777536949470619383627442063169019629157025349634343652395542399855106702829866239895975293886497412540775807609705619839727224937100119341752691009613500360459658998448606536772497822390021722979856737011593635779401761093142625130783637433557823924307339753217146814712234766668587723555484671290414062937699310579378548094757585530909742413787088006127616284031812678768148603229243460004256692679840913943974136903241786267935681802440120920396553394426962635990507881807228298604052573587828156455874370902416392852823590460502012081589074751109852000462963504111086986146271048966621857493281723980711516597298070182203122338627834111009608826395896171402880650996430484326928379204652599632370916835068055986255491393630349075975801075502517924562332985479099877233747329305497324178450063271248109501968013789634654252635718517968097343384811547463560735146890759280132001510678435395862564223214955464140504258707292766314329512625510827913976919208291257402752432091201265717999584479027683692499840170318527429806482116749622365161804972592597979104587121363629312874048354417071490228671178937261312868210776997448907881910128478355947397179848960339954748725788388887748926362824599556174332588160082858676368395049551635860360464903315269883370010188764586785214826145553573909349749430409868515864410148048793429551401417019516357035698645946751335622664782114649195332350934899135202032388076230119465265101543225435530060033285880663393824237207284537196969562828593466077356641345291546136748144286074382877352295870191330338878193952174336887415531246544794417549192300956079633622519171266975514151716994394832721815664927457960247753808089447557875760938143832378546318490605382914564068063053136646301870742164724912882402199812338296959730180046213832723369136345268250573390715124354018102030281989726088876095496806223162190751571652031648435358878794906331053472293181115490552252163038508088910979906727910856611243111133400076870825474348070738885038206200010056473569208070901135764306021704418770539055721883323026952778346692991921556497947430241410650520838302155018009161660586102465049239431076390133627121746092204161107834748276627421887483981803246302465621832297920563666099885117999166006346008056739074594726236460136804424255155640866251785614821268895688421552170081998259689459685225248197252096278964069587666467704431659588726435072427937939603573211586442725239383626289079394769724168835851387589419080230190392306627540444373019946959276759678776156824682480673695109757375976742978168596659353814661918261104838193685401169209317253540155538691869117193592988299393115449551449827753615894280311808594252706390280840928004982736999817664677978265824420413350402379851470675938200193512404488010842817434514960426695642125936974640877081862655111497580279351159539616426346587320691075332180994058658213431656508891474338152307439094656121808325365806419395652467340431434629195523545195333134384359342463096534989806714271437344892758586247308588817443755525769253913684720950720226663796528478625220972700906679103347971355460151745456507181501641143350786501824685142902317662367383765458377750726350498783702461583229770244446961135482414830509517310039290159927829354235647589999610398166920640814525661940123154940620197228075434844956775342027689159425105126692303485581409919399096111670373981139009746002892452923684300912915129176388433854203128298170537526050986095189777197126697081775415113947318485991453889410291644655121741944085836778979044938265512852785521788000349369724132559480562565989378988161952617825750748072974370203293728993393882169580918777517329803506617849544599187947399401223697704091403243271744269145320675636386350353801577395842590001234120290618676313480742277956075324361667612285995470183218516193936996839663743164672353093338286886801699877672513383839041060124984243766216489680986987976780157917718716511216965308396494232088193610922680982870465879283353582285499121898815025691411907246441764849900079830563096452794840838934058103135672474397963637736556557504440161517786487291521278015868777869739656539207370393256612356547206625422210336358757627613247034553707873910338904154055900606525795169331939639102376479104056278846004750987798247752383940380367115398746565537382690488184186906830131280662794807576581405545979262950499049881097665655908105579184446060898934805342104142939860873390429807241377762895216847809334940587363485070954585284689503390724311474741928228683965745504774378114513522060849700476314315594460863902608690012553259582780408763186915901359062505626110410664644765276097408577095346217827444356250322646630641023640873288257491737537782669233901357927242160227330506282755081059751675425860528041793477490924813389944153230477628757782082711767305402279207824488186149463542071526573046908033743934318145911877987976427189251721617475750973833817076481162877232862146409908920290480083339592881112930395455793227488127714034968056655703236194706942801512189829808255937055314550865451928671426297492944171735122191159123047757789427411185151802329748123148105887813656953431176426581691950116272589490316038662904762877602385262836154274713669928088300881287990058713376396216496265072022256158509765664246599397048671047784768527483892132993640788106992680099971566898368136202688884582597255176678132289605091948732906435335297394043810494965679476905237767379903783176589434388347737810915667588203781439472928821607116534141118740853008864144245388251847167872422420840502007310924755982269884515944922693321448213960012064502739109195836563216361074444663151046057744828462163445117703848519044186547052767198050116666988972569843796587723888574405795683703085742880052360777683347726629618244237873659732013875602246549864562152118057315839767069843719279217253071312866438728856908993723055867050125153378969970212688533489796855896535732466950124357800161267780842690505225456751804102569174749300057016653705838627410562627960131059620188011052375567665900511922443659993116395880927523306249467071806535068545468640462401194636528480845087632706135601288769307763700663053303966349664506591602729545859010572762291630973816106422656363285582715726613445775723277926784722005139540474788155645908190764845098568760906350855893982214729455156331733148266326865464511496785499398145781414512971701476354983354932343004907227925426923688348133283633927953050117907310475439647219115851818152372945561764845006465144250797760042600819237643942609600174500273320621150119417208944743981836597552833270823329825498695354849446563536822138325393089224254924331407801888958791857969122972730227507225894699058966695337656064645323043383192845159385573456622201401448560448494845483104606704195364715392483633854189892111747731335372050996340699172122921131160151441267793766775327232673126366873269853044712830606546745021459085855299737417087869569157868244611020506302120542395649281104239063551758923535130256646032821958076756663125043908678734521705921893445823110788408308006206698497972559806953334846478004554562484423569117006534500617316185971615534709677575541062120779935664666394577362002009466910532932731730903549522917613440479516500800549948173778914162264128266561609558297423759981629059945693534684762691177017981137782490306129093796921568411494326795999034872539303187907870778694111467891162833980991623712266936517544089750809240440059738092580797670324460792960499511651601150975157055773837777972446569961999190049397219626177306650264299238043713507037856295668672868230804020642018992502310365650585147144317305715276079288790115646310944244395110149793447920425930862886948518945658625154871205643873079924653931288817734847034925784747760264013041332663105836692910135014840995504452243038701107509161530785645862081660842437809612055223439423635614196045017793363349503088225887292192737758196183523580414719301288968749420139052088921774379616017334506772609307754362960656631728848761189541149537486229516880448109699672347185642616798811784913164276290571218427186932558961104602127086408618815638952520630825731704656493327027957912589161816310819820831251699442966679190517425349443047307020004581605410987294055028859967107316900981044438790658433512448953078081012451312242554733006320899423092443178804021305319528002585543840151609814730763745230883697524119054579952271973602089747168792383840732740311563388798083355976381523597993772475597870787631654449184595932025992674653491225138734359941976481689332126234146920073174014070262962955448505211665691877154113397620710579180595454862818096461141779214190268432087466403834926314162366385300874825106540094307936267526813797339580717310128802700248725020967007772559795245759616509230473609701661307580426403554778327508343630149688703287735045893487129159121821915537563905045926823251717999156456837499154477634067715725306669138517995866124082093701755770946863710213605393053272864473688802951799300112165307724914544901039941930140662917600328632808256715196875408887992928907984765491004240156193451975008072377337093956315702339734947025851000172885711770962627838125064099521423486261054165997882175488003897497131280358194946436982027609159975177065626437132730033549268353060023220848693903316075473187636172059350752270872345501706157919749393477245205812818061169893669817018709933001669153403608034166314284594926068102067056027255988260504012883080899319482835084440128234586732781640927165587298234087140066772661684317429377842225380505012880016272326236845438139698211226708669373440961523591442243428136590245800993898812629821586129040475754079199245875164954417225321113014593023906673635718472484771106087258129117204862152797607286363526670641499869040936585796763570836620403510233726753436927364527501421342945994792209262695753395011628969082500699267170517345697847228915819355798817679199756381484137058242853825476630009831001140367506952566469292540252473429977007207982402412945999007411278563469204635445608687909334307101734441926107958947501029536361508067764091355971672456157341766504623671628272813569478354071815007011844085257289607574759299734312567269741015368309429364443937935603052016318373432672150476774176785825373262465515830029048090699566572905015214110195303926431262673024072735552498588271298712594536904887932076919156210714192299119484078476566768554542336024325651430675324222928161803414098291191323588889776696362089516069877557016761627891910135460155136072234297808664281455955362421956585300311259364292479905774338606889455331232882126859536285410510748251194377402826685665564038371631561152123548726109348029160947003022858179031683274535950724301229818851056509167189753703483668614467973882228057261248986865750817168530508906132528082307987164532128365182973820432954791372616580321934622576861298010687893779724272632388283736048799532172662603440775042638159412831771695238103418634530816460091704822681661113009478721070894340660691163977980687736838324927079118191847773593362771026858586444292962939298639677354139322270688326618926529951822538379436455053810665971356888579833904351024121317176018500758229371496164926145760954331435116910026231284808632315277726133748572012727641814763049625856988694094744340775896293190092595292821689749610758562396316773332456426010125444234665686868236569201582913403817345891486157980932197995157538869878603479130491016602391485875535981753070485757032901634733660685988840813734131651306170172628387441176748674648610923226134342634026945527433150669647962947577340148859950314534011728486990055263326626501426040795036942805614853343649472117966638423670076710277377161738020705622314124647930683839385854908021031047811064198070386252594789187439265985100557423320482329889630329435251127276228326000094432332765885573286252047221761844703014393129768015593384852189692837053595421116685655432906988877703273520768831031709536954767256183660227611658770703324369008761065214418355529640437332638005869598989208312609430500765466702759715283185011022044746321331038116449020566654652622707590273302463068251670697817202053578930451825703576396795194848754192535023022811237477345993406929876693038597748511297136550358047074536734009844174723235252776022267528652312410500254259146215293980552146967285659888303465742787525375342358079352964366688518045326257591222725414058576793517613982289204718172994570211883011513380956712956725569067091691197203029988384137321097186336359349946173440583146851553839621694015075200014249176211607038160890094573598377242923608291634342943884524793926960476568504024807526226880801785386772183476192510695693141525778592346364193558166575324495225913182011141504599684814872093848162050544728049011998952239775490934417252266639230217294787626346882022913289704311902178342358745788499143993490713306596798916608926756336667413884787566999661270989216075381614192136567901942332448500385243495947036827567926138786007525267328548025872215059541179203551885442196338061616846037958836283875032006277119996682354141660649602289986931828242202310213329932722954567917521240687274285675934943265583401776152155426573351610305024226266924546429684478158255020275761945387582983170756079789902042012889186763315655871915820065505803565835548275922896995291244050655672303888254520036215735723404856688679834066959278139044474066925212637140812292399810587270402757077718615476380412889621249680657282726243902476515563308414129674487664509396911175739760497045036098194258848083134036355494056894417994573692752888945326495044727498351817508450020647555544734355425309914886091364197922786876853102119938579532869934661811311045606699423257398048857189379466696780356323541505025767148304015109571638946688894123253500773663972104672163491221684482127216863091012741399107239542647645527850557103901501621466818629659124875176709279626800364434210337382780264539998182288780277423233781308947091532782752044044121424482359047836590764608852342776179021321864865205514318378976574169719263110855450632358489747196793280502759970421776981515243479447816299262382585230529840914687167844976578388520119808455766192996006490017471429670745088391849893345046846076559784992440807772483294824509973582608865253607059781663344771093793281761149171776968375431371752825065314979627008804205071641962261390505921021844341124557922519319796812818323373719338472411363503925301134838662092890762841145729411272664220222631657273839228043106187498337233907922575695770862877117488311807525986677304483432235562330489671391128271176170316483476305707940339313495633189525738859698547756333424594597172216867036222637834572010721856335644743924014350313293679561538075060069429652087126153036899248510749280965427449853248935318796123196058794284232598046107132661266305860466854807636259392899204769939864879467843690308958754454775203560742000661773002778407178382779595450083345821708769766751060481966343999617871403089274896278351622835424970986536788671405282206996957211105107860961065140637701423747629356385657895638800188689526981644636119727073139718059549736607497195955297916530896582833191567480562789974167477429915799129913346873458560252877005393533926887233192574001280197992519143021972258964550612979488752768036244697604515624156403042012118202119772754155640945392369083751802581659477980659269107825308939514626238149297197309456381561552285272565841632623016134621320674206599750810816418042814752504405611743164153185040743323641175201359995062762497511536449370353579625176034843904171434899373175456312617949116904299457260538561730169152317803987738942023677192593023620305764067776551097140012139390765613321329417305653214863934236779289984568563716518565368483820530569219908368206392060610635216635624790123878744676225665165498986503012149672637418212495477645600307585125415448775967241586088452617643407375109561347434557159923168620604039358509877319617933227903815593203879184093753251665848511593909721906432084056445218211577579913945448724103066106890066037429529766083219329034303927725315780306949851216623329824830877267256405149137385219885361955431435306799538006205498149304449834546698663965840805091688944649646733771972035347587393535379179514554816117871210671209833458665443319286548543721024090402120768426361507027686962054405469714156585758444989867346676442174382528830484196902294241098176598646587548831057104022600280598793818372384793456585126894702919372625926176716123225532339515319874134145197927086285022980713320238379300025901566990161072917501874793956521842558501872679142827631519797950045464967166452631699846015181247255399305201099203917395921587034475110563455427015450317879868260785883970632246203285181277173898182529533893766305810023936717016998347320310085095108699157446922037569168361172594242289844634792299240123662884497224285948353930634532482553081185016057914100724334430415051956813513678569696853342095350649784099205847103753697814648539876921611593748598810142570944332072021006359106701789712916006530516377873254739947783807893350106150454383795371368610504626318220175131774513728087928755211280672820337707852635376670548019241366137545645865300312527751644340921535777332058726097268536152650316335663107116893012456734031490487604687731515453479358896801198458186137174018275113522415319475845414978717252645823564550229745006115456387532384229943469821179936291925023961323047097964666033179605497674201811861240403234617955891624032445937662628420708614455531418886984769581112708048747047286663658501796375426728492555952971289172135029218646156447365539767145280223919974468906375442900497554974126340248071366028956797019172284851272215917997062548189062106724613704624713021706209069695412735725768431470941199802912293347718411293651550607493214030548376307255448809042256771464687527614474593257781690173372493341784756068483391450957117069950276398030726304670424564763622980260616616323803526538399707504623809481905792945790447163297011241808878345203104918661938941061161645865993975143569078110678312953829659174481237878653296252746741461077719134017309800815519864942741699352462970024497961030527106332994350115621988622780054602252459388025197297385918917985267963361840303907172649273893418358783659269276222512481089556388375050284328387060649612628543793859574928017428219860578340226743315963638033755232914366379225379381471661153018135735461173060189079214632102188864349324722840924667541589754530753209838594391093122071193283410159817701196522963438060745320098637610126674344956907601490096614348244437954192550084748071194655589218438819451586190901385948370430295453830826042731180122978325229122304450480326702671150377568019079292803825051916951205056274667565573885826217741601117994997909412498350687109555382666469905434735991683491354826917924578101968781924699598533996204861933880234610856994072786114485033199544749826233101964790050975630412990695429872280789974750906049467680475022620183849457566316850459873052536775892031876697368895284419976713611515534583006278918144012363218394434464696431663859967807056640486573390702567606198683251804560973935921675954228236535165972451805075889249563820437683276370488477130409052787190320158589615345770511611315589559324909625626448377263401543849726313710332980321963172102012588197216106285682915308869100178005184211162947953612436115432621963587271217211926508134390641055788025174422223703808755012484409925515507669267195831588506609967665776690049254232666752278345984647800694170461095331354283891712094919857453674016178546484925505985465113488205904576921605247199731922206282713056073774364614070874619142733967961110062295922324785519430468945506836169193552652680785599841984230446075507314233879555100502553256331909721071639268938464448473753382041769209235823872107553198541333308160163859257740207229180982882117455807614361749716408114788411332751843133087470596586730692917307458064494243048015771169994394424943163787477234950996825214744796363066851914254444916971899680707765901337601173501329231440608307676634840059433370864875836716402171769129726788257270712352630968984233612152931493618544920419725707551267379808451423434549360199758257678738744582805728269540450460618732340295283692633267882974502311793758804183411060817408103127839286636019086045229445716559309752622280692736130885088830049452099309407767959139848695077010037002984192403337080949979657289556625994195444033749932853738799866674311639415906273756611338926330622372981745823886030085741981269028833421056817357838091565255161393973947852464494710799538701354814378291876002902186537668269620595849446669863502239622271491323279530353296089629398638557740127866558499403561361550765261985231722709939449897171478895143982072352023448418782266531754548796294324151550266390230727034347157169665608288507210913944742520694312366825510030568103059379014027040420053009146848957505851732904976491809596919300175791384501707519442681795512717556282970717301219863313140422197870405581589287213327596623791079380912636461153656285927801394090322608254421120389770700774340048985353895933357877136359326021570017825553007806145764460134944110816041523881944815951987568989383827700157277268192397097461165958708486677642579638631756841867013281748566037624295442192999378820357506848112400725046663974328557229007269628285418397097223348573067382072556908299256168385559331065423685581436098475842036291554179699208593957360276422275794273942147791607331046900821508203015539204929336577135713668476426157289784523624476596360839018135194918588886568711227241753760458717560810597435988487934087566977449903948852418470189627851193699955687038085037410080684152618527756310073222656485072721874436748130009478197895344088347205938082107788970859494575446152168765912492136748075572706407871119783024441284441895260919189248572567557637329415910069774574985596223125764853512294856566753167243249352590894580321993812859880331823897570948507599889571689991401370727326651449611566743971343406897637854257016098738217429302767011652700377166082431988875139084646505246513684829959702494170335986228120500980702877790723572020097931353980863309358629773857286803345401980114625624389850229564067413308699669707149359813733761191044266397507620447180300483254097983184436400717492765180273579387645068746679307257529412162952854669599104337920056401934954569636577603493106791565239644830484718859204944818792643923917505508292563352514365962220042822338488079475744756096555738068277417084623923037972970192509211341771019838301452109141157854211693929903329292188342155638913309620658156657576104273148926958252939183957412719394559704719293471958430539395545031527641839711156181628200402025327682752872434434110098022454134545632924212632383760284834915744397374352774257595268797889268789380256025602309306519544864404969077758730886564614156026624618139872750706364168344360268469725555568964141143079145131261441651325491405818385028860004834627537178064132692605003586340591506930843838358341632305128200426234496111256586086420310968040747685042253495894277863711369079015078906854730999765554605559138436044731963414087102888845796960066906065467537583387596956504361208683999908981849153730839478441313069827949432194315768179675904465701249300659265742474259309449643968465654317676244780543716785661909443494995724474701650917677349054772076381070156278217247083855090334049100720077270254259446847145183963611457178737978331614523045063484496939148811356848134068667124027499963359968100204246165183596025564830687979668802765383642241881909075896860367968125532922213908845882375825359083655403678500152677949967778608086337022786424891300101924002909652838835968150455844976475348813067369887617592900405704190129876703032396231514929913413077705404802829867613096113292176270784743603890055589944481752151331873631848348158799546604236020330448690588504397637460459209553942065723958411738695246236151001334759613631432329808449834781111229606743223968395589402808856131080331920559517556827937231405462386708469134583202625462632195352393138600204716229456452764838428560078343336073322118230270586001179626001667638383852922936057742744896668114293491573696424310574387913188152634937185385794449876183188037415343266215856781902478030540035433318435508778088377846354761456586799519871638086078581545331532435170981796594912580809916215126571427323408569976367352649943015892580249411579148645947316614062371514637668636890425628388773112290163994749581730981381891475807222117134048942032260119565250115842470646751166269057640417701561438919438326376692718329931890197888387612021624730055362354106475042166640129149432971425296527590379343269383363399988744423922983240720169271700725870096979555797751229885238444139871319517142654253432560234285914606009823682946286256387561381374723500321082676532161091628074847303719807524681334749695171043140447845264687840087217790265180427305257505818185809178108876108020620234939781467575976486687056907833358684109364551028189397171617194247875387958309530265900513401102335328354553800430025500378336912328224249287877634798811608991273565472513374840959167502960444655933184141073719774362092632919516536966902179412342912380755753636195915341828750542763608135227681950041820963059229357157625376753229948078488118894221124380555890063527906162923055202565014483247247226639966013392977916443008483519562354885557179391328877617121110253272918671344806493489990111830715299176465743016960039077501421797669740176923433893614069268836282484601474332395271252597948787901912565141355136633132291814280614814772575874933511622588548934186304600856664647281038412567144090215910712414691936653768025332106068081017541001276704127643565034467187632025931985914176288654444943375627470179377718879075450693462226284381489058949033985026059026390264313696935259966084163042385633115692069176911360053010132181201403132894538736944448127821580918237398685356741306313367497156430511433906070294481933561532746796733593355719284624287784818976894401561660931902683917507264165680737250158588669120226273799389736917372978173318941883587856095436420351044158185642865168757954976385865838573939100879895518006178504929126722736451351276258541255220342386469498647541955330489075774587324444883528078081041774825151813790639537122627440385944371493717613469402241698435877148943666794056570985577226984660038203606660735119967472400158139767577501681886432746655373077078914090040810692786353981130479294892740847773784890485366770684915996355563872233841998287591463294622044527010210654006585234503978084459383697852002408984037619111976342981615621476351156399132540995907880115602170715115214689758808376093038903570934821892543660979741152678766879645185356761406167693531363141228979479372121082394459898948693807035241972586964961748039616862195733845410177267558073771145309394120284312788816986824364487800630217909442681188532327780036707179220064889964479990091794542815634717640639425397112946824745080516218542255463431565902831467426042656970622817911964537037633802228630247217235269249481073834232188479884412841017597746963655575834214046434786548641672149940643119234105625046474958620371824877953299580180420929025880609431558365406321752194850364401967387400701410829098977989644555939033908269321254990918866574789808613830299774904852994350040107878436521721221944268502992869328480249390673900780275930805611233265146343339670349775564589049301613201615751275343872598501429783457868601781535009189724973795393071898615917056120510879743490898024823250275681602378943637068337982992005455638791439040286438690619401118068970875432901783785294097928989464586795078698387347827050972234257911454769018218079372043979638671413937603198327176052147605547340922927964978987354643132364619653637177149816636683474316979709640228568699346079535396381350278545987934356282346037159825334466912007009331352480591996041807303187625334454004929273460486492047418249818938186182624032317545561853811588910832087733265596459200034221550778901722350467134832635829494534814966102250376920986341553491875264693628645400370212894439533925531502707111043829181387732978669421285970786300628669778280389472916992722028958857419573280856920092897515231101718142905581200253280204862206484215195383730858453117085067180988657822181593115777535712385424453762263716075987815194413516972516135900188110677019879424127279660259887914194743982572754381065330697598384553900980908396788525930027807161443696249810770533146836175694874199886241941028554936798788545247747984482042348158626062926516427447165133719526087025695947749428190956797188920376330490239798090422247499445464933268844503182089526835510589405402582816922248440283924909218849446605015467320104901142231158484730338071750090429731710093913404615115543834927078668918679274162810700411300193429173478244691661474137364115002021711850255191767814797355889111670788304209804224051061939484971352562511064445645212381828887028884605304567899773542736189487442056823038120900891874897676056850421651806142940499056812848440950022065571629116739073585731286274543486497594404549266255344733823704193890757020819073905421099873842135066603693383096907790105411518759701164524106720258019549901189156765659841595887797363825348382698603100606894932606501598046896290504436378526413350672574132700362288685097360534137796084331933155473630082099597622538237255612937913546209399138431120909507753528442374229330288765180146627622453086974279174371345913995891340539487699483130529821983650989667295166882747994742565309930009645569855589385470457004038525251153162468424258272297685019042124334233728571340387469068444201099423100210585441364604620820742435163015955765713257710624746324619580802197833869286319132875502079120822296150705012096116708803143019543004015752640398022695905340141515478574367897656648865297126757109927561495150259713465976521321381733489995890952712243140303157635369094167822795538429858054467699310879927771814599751693579778323349055943465801074433401642290980138845756134770718183734926879127702885535352195160830920795489706845956228370770021899620638823535397496182392687542058015204420596422491754273690045787542454402574455319128913494070121831753017780572004047645166598754202017231120829957096725193142422421522929368153233136190376070077110695393505819009858114725649122764643516836229145385013717187593832795131630114643673869766914216164216065603805575051307891893548873966889686343842769499376030345398020182046754718898425064876581885126609190664648448745676937034368232913954890557172371830186460871537391959353939558599281870263274426370072085890362148467143856948538884784168679170300881641726236127241554787174948438116749470830176927498708083528843131677187740342371485214571014811979833283101098092142607343548895820471283204900160284460045318749690149607128861418244148571463740645861611877493938526147174171606597109263862094216463517146662869390332563012985916174413191608356021962141056316736739318466053484143691921219336551388237038785585212256079259307233535930412306974452280367209648380830128118050134581136738429996557420186370068144084636939259437596197859081685072151611599440508967947454532529083799883869019418440232021380195473847454832812854980959485347788201275145797931820067480299072872411080378721873032010608228285003834859711577985087238380394612306176010830945616040861829446144036051855655298642430649384157004555569414436857257594973384730585967304409969345899451079321245859103386136758451337754377422399977159863532648098353547013019768945109081647832672351012452639200625704615941047091373712437041499277800850297265488923573008730987965860348816793595892455116025795054479056848852516898401016045572859435702415572277849872290613980414445144204279448491124545265215256978374220792023617265864627237391018271465408898084664983462459312763318376309113837050850081463489008952721611626895452814859467954975576441454773894250246948264734393755771389178485209047535870973540014550816986607025410224876421339964795944126352914930831713541128228514634907348184809840190342504961796258582086334466130023435108140347802615851435992612370667439809730091059173803865648553609355097709295249628552242577655518963400926010685928935386406778697361517387863022999973525040687195629087203967076344990083431871834753434227194262848749612179112997003202697366947475238619840474428829537559198246477897448695344739248765443436050453635850322161849204307332003215685573916694266705461270125651708986191927571999868839739398937221772277363121205150504413452460363079258112258763571283680236620088147958151669024367632941396117382978415474506494522473352561670235520810571814249886497413232686497161549023306601418387207069360133869764754942697548219239218772679546280806166226662393986276014075632669485524257220891753307353032077451499811491418742055722726202273281585921033501487690732933814088504811292660943510964357484342864781421024891285160268140569088025231484086615533971651126913740795856730887484248516423495494553500275233204716041863200857585654138644389315460822341155450160588577154313477146811444327476961210086872299143495180203769747341673931885529243361274985499775242894663437934042545412068604165825805282624867392299398701391932879702245389105480150012123290674046911576017168423836618355418576328286301200863329848058702918475631073108567440903852176888966553855787500806050305517856289852119237487192711400659638859816002924098619802326887948659842515153112326705379780625258495319616653226923539429038438748360985442142150017825562232250328716247465455821463100193280239256414061129746346883971701701100205442869762324953214869213294438896770995858520041714889262499018477283474621666698421926522338487799885273819881063620517043843925384054570480986694444105553000766038393012348625110606055460764429196803247457225662231577999587775663541342412980637547404718627826615824413960612742780439170827713863551793821081181301836856507081509133779567249614212157628857310822933647772555782688218519021028934129627707467300868618111492632730884938288467061513719207628336870795374274344619522272757170216504274815883005952386922409629321384588294013949186353843014775231976099203424404608147686879258067448659872146075068911934596760288662216766021170673160180126901246509703552885104754286271567044413678243360503518155680033471043563642013237525710025667403348243627318730417329439390488243975120888022209450889253483440156368153188310961416700393985240562065896422116040777561964818234807175876071694854658451235274834040964086570404656150229104172542428960819708239242105780285693866383469049246287920614175150014437661747321895168786155968574444236578504267512959049910868791239365195419480917836676045034847995336228421385732669777591394693691754076189163620962656700779838592537796294951962169700476989866970399634621755847341967264833047730593177996431793304051696405669783466845547100717662737553157243067030220965825047841584885565164148552687433163460621803243913250971223304179592882108496138246340056763910932770284565622132048711335748327847756941045084667057667059479664589794574507417829066161447934340421628233134226532894410733747825253989119845506477790017328674292902798216554240314933096374112462536136752054097778268248191198218541688375984374469699565334554943784112776574572278042883472308121750769926116236663487925630291361135563777964705298654592778964844904920672872279461310530572087888242163398918155645440999488254459270637531231713608481850441431915853921535116949083501834163227712102167192731895355266596414548712181555719749134439120576156966168121862330752285941684288401627942694674717899461451845714913667499542749794769693950700815814607670570271883413527650690580115711529926614993194782533799164325120920817062389607900926162093891774715110957207308387648065948090921286664292193093696747609633744561563336751560697907065157542927556487779406061485599592719086626458423121805866068122431229662004268358637237238883082818512534652802217206449765244543458244314616530266331053351752440668603781177271111975149789189754103252753351147843198134103976461037935096354010663275337142443751461961248561830126386437280451242280021971435945090564899746800051328145459262785032909175365587336078116124077247813904580517401238254284824402157714429329898304435018276152633069590771080637155102553573606834831593694795361232996168183491544335874719933840539017087248186948285530834215796974946401307578894460906108927556451557123600226368586669913773367123946435283991761151656358761097823767448827839619396703054257704395109630174788590250390045625372063357733727076791079171505095005855475088850565566936781834453720916668188295585151184164111140643556726169444673347756484147548845101085781174037728412348818320521180368953186761732872749893270254242142185522630219732195016852523515489974814129203051681022529479558373349522022025725324298439080525354888939609463310948327703964010052913978478193231950371884314580017457135449352017015617371418448663444502729018532855257798858200532170605651330509237034544193330327865223025876954554495795462301895065407737110136183701321123670765028223355542391601744861324525855569299164225559729935538568481507718853912674636419176599601983399963638950882483574780514888398691828016293402035109621432267236065934584816144439152443215407567730188090821248214727865627675738946980442617511742673037354547344817595831979547441411682154371815958209456069525372801007483827697390833007370327954515491528814552959836316417692826579723556582131555306333407418379985232461189550534611749681576253105383924242900938055178451356143922487108238429186868194877018660869051125348911381756085027128647046653441903229591572410132057355770848578316447854578405347242725550398388755604748740656254983007554600973003354055636186310257846943906190514230594759889040398866216519186721085379631213260302974278686461696974304299340486983526038074735641576724093272571845697699678469066287283554573767711512215377716909742334472957856222335815189342293209875643866388431158773582144787520926243236484432590757137700520264021862654106710334684941099126664819802481563814764042063641646638191650820513899275378041193058747531557669881471612099101268334393375455310168472146625038455096451321707700333577020877870826828087739892280677710755192234220504722567680547844879504271168842947767757732791560182377294572107954194431122608050622964491236402681000907448344158534243875640187624470466096680820079600222340767694517144726960878723514885921994867215630716657070956896208359681949147494770593502774900571815386879003468366539524428710841491918789432602274533763827972819405229678221002883173927727270199499796011809489278824681494141136514433063781489200971603590798399615056388969236235961362169501326842052722502170618352255127770168201301172283136237260710053780466072739816786029348117472729899054855583057545429906628308321658400069769530906924184240848796978400871977867095756459366391638677338629472361302509638667956311611204084529536691422894592874982969870547287208949182305995725802320645208176709135184959582822382958073138366094433429208410735744428545977005476638090135976077488809075675934667443716254749934486190559626436179053204045871914444630935377448387674961892476640062794510369671735158280461052600365625687579024681312596872352220820416924200293106951247125043526992139039131071316854779555682413086143402337330035632311174610665322867211455593576954280781308782743268828021760392279436329586921966659933123840925099582704682119192648092249332841654005426804392635568630890358218237546192826733256062106867103910663346203666345974716823483649097345921396743050120017609327270041061245224339167625287189667405913479171847323423793943798642254384614873261321552765989011330487776257503680780470807462544887463205976878669276720348731549942072729878357491811653464953522039951089273840500368735009475615554391223069717512288150565026007395589525998437825663434649071920847779503203303418785574494610350103944223402864428828460329671872845004825310692177327160360575649699757189655573681727954831277851761500208326903120551287576236900004381708137136101792884223621159281154186655359954163481168871712610767509453297372256643032548596434359162940170776823802154195430333169794156589740397117622626746483599681871207551342317404283778120519111053944428692786255444215467311964377224842425328671563179641966779303303799943792836084186703066686791598865117520749127666686413920917898368162859359289251799548114366630828417558074781429311733151681115476016838618380712862663449608775134345913476759516409799884974937577862869000729960130503828341361412456893289666542597317952536691312521438591692699414050944280281505286791607380547323653042456801251438057389066438267515749865250231069953283357691977552722340359711711754483537531126101945929599464136545774510341351296833991774313523891489740080602137690171552349984351406185648396820317260358515802771584826194496567497602333178256266278124251861768863601412882106169993185940607545628121942782613598526261851181467844710640537592987712784966835055993849705120826484730730001391004997182277697453792003838016578050859261114030752876610255929290635988058352530669468765387930198767069363920570311453288772281123700430589436789152403284124864712999938582707295141584666599249002673044757967515564774178417867338847425992639298509990756572675529852956073708542382484743221130839292250694468143990145799462783383597213317687448551724662010012535763665654818790562076716058588826954325406940188877647996563854246125844675257672221830735874785950703464301995701721724486738387087115349066316779732142098720587860436282155222641405458833531443634229458652076689325677929701636424095204037467502002865025745802117043975353897702870519718901759811846304640611772306501446364633395067353182188472626919803551093059703036869628281413168818484050253453907157584898956522628189008423170678629856250038123286023269676783005536791578109443976868921845121835738738538054462199572326793809449665187098486127172979546992132686843552325308802135246069284295008464197341601829955281163112320667339952632152933096113085244366319249521435310714895364997442990918761020696465311546552078885789465336928425698628789720485963292130134959376601372268625847632749664695851412039468344059030996486201613411164822771831541886363393276064992071764781325913114914508094734066210192946078226153487587040140814189333272267521680298428395445708276587780938277725761127883107371766656694781751855485464748042646496222979054933821387216112528487400753261449062272425290202088316366090970936370269105646511971263959375646915096889582888261886434154944860741010807695775659195958652872015181170981092557209902111306857088185168771691303723645616809737993606170927189395962615707864936852698480774550481087354116377892781456689138821895494442877689861684833688939780688642896533107260216071263459430190426862855503943155302456756107328894478180093003419794943818243055949847494686341643998509101945409638196828896213307413320941815237151088370476828757016761180047378281740952444954835593006287086558099874329573506888022408548599189654138124379806099715725612957961027221238287405671670219031467158593173243028050176820559933327278430827341868272899365421252258102763310359914845588367224586313758391752393608933373566215850297743761625832949660221761216439559346044070648702483807411473662184718632972358145432959016902327215003414142146791375948860585549183272050189922792701126284261859845511133017386428710648514198196058101918654451508896882670492816736361379110839487456479411572205378975096999551644870502430911271153986181279655849258231594506701171288362380066720793894028215572696219944659163065428816147825517602755239533895107824608036331953978212363733853387183768853898934831825484582741212047298236881406047459904661281033020172018182760122556400065085520462486623064145824353581596456936114583361572408099460520520004159391336988227995467427737551741751814680157572366674545942436721613321154510537998959695098743710224915255898963180389889824237938238661899643309765353318526931273221982163101310864512988912145799760518331231836635181069106009054396543048036929222869463509996260012211520082413307575960511060054118242623558897007050897401278765282821889402020011972232596787357639695519388169995349139056941070598676351466074631450769970160653667257288868060285533857621333140418111564012850491086990660292953722793328495521101970979114489014245006517517442923871711486464439250772013183462793066797973323122963342861400325880150822751951323439733261509891581007130636443396465026241359217836563471684237980863964862374792259138477076244726953551506660588147580785278560571788510385671321902860723599540310926308872463027398777530084900361566470196166388155372789606363553596504687538332638841004401592328852536944893990736395055035258646917840859304325158733210958215214250252520128962347768072044852325169216235723455358062478037762486483212182291048393369357565399819839884783975786432581234653197231732683279054372684749929534042185486988480057438128317199802523519090901407917656086436451020938712727592664136049988607647896130051757014808831180440961322078181611504850244465124357446873123081568489426420869026723429592581634215419586401774928659470157080705642701471759052338050765617431180438292100027971078045686022473958850298463156208167065800470448441312746140014295765029555580973859936168084659763015831411787584123135835786969309831874896734764303319854984675980881963663900315583230322405360460020391890191534912440365722319859038088444614031322991137958461837492371610786084230596856691936305899735137857024902335277267406286355025085069292248741399821856705167568978201378015189443675374474484979859716750020187028981421753122300924422393575695834778799187764107372211046666069348593618072087031372665227497999739109862291071137441091759647417100695456415364244903431506325921331307256563360774217829818023486413401764960645359631049858851100008474406207423593100749355944424225538030135679324617393093295160238043788765893067663883734174715062932736853901254121752203779512009108181798440591911073487650727359037960594803010799854726565571033364675567592310141809568727374517979320620360609836116197997416413414077718149557831311971975326292265729502738910583723500230298184469629068472565729444303054182478885546453023823582982450361213096345378336411016749605863382708215029299095300436877959135183865952236959038851740294577482575440262737966426152321576435697251549928335827784773519049005853363196694596140589571007403426933649697244269212679395905022010797731922743127420948779223042624162587137589837231969281052945712584102164935692890526221666668610402297503880310221572039298629491401843931164024945810789755908269933039752982658807148316881340173038432676024484495645131256677214685774956400718819206396701427784074484001735073295311993890657354567485621378598173686389534520490881420332886619376041049209963048325410367104116734795942143194334358570985184732496296928577386064977616296566187504392938751324131197348993984070813568139678535890252617157628103364386700970979170859583315389010564599281108805597361247638002181252699756247559394998600400687969443159799712622951808072026588734091456737111238407687893695008108726768420647415066293635847349932546668666926258757426344413790417501314314963780994064464754206592159628006271416864898512376956391401614249167322702829636182475545937982624114156854284227588889716865710475882896202746470671506398051264683313439713748148500079184115227580993352763663933267567709687842144311827871307132735997459656276845081746484838618643574737677426310075289298116209749763525493599778924951927443628798159163242559765090736014448233947750456609685516041773811914385754162501268984332387903327345907557497428162446186288166654510613608125624090659906717159010722770612804550214526659354874970551478400444133359903968579565419899886057248451869866847845276241857440244340928028906188106704810274700144968157688702962305275643329103681523760840533658666831699204278378349098854543117562494704364680878662800311880300358524382829675185761143482345394703896880026074579745203149064458463185642533187325144844601651129673240080083174893723097909680987473449051830277152340608177990264334672979985725200880715990522312375690767501317364133608224445343153540188841954360460031079534550556747644580423983579412571822965549795250430222372408180825152937898657972491717528725018640061895053821783041196182667978245608047853845257995937379853648557028447527439978782428405785957911961466315603267863250574997108999039456622683683333576376100780086999090541342534124226853286895718847265087829997064304124143593967533309579345435010531785718368558632765042755286811639369724095171240734149421336395009518404670879655370743784871029537857108979616082984284301345874759793303431456404182768938620997654136604321726514752383706698156393235235479281536632233762392167892957413117118811036707792336481360304124834311442914151858591628763926535753696778234398297059467697584003530987934306726181141584554434103096992049462824306781396492296270972480775709308264236762996479666948314853903654647566430952067730039300005382590604990886400955918800420944652462357503848991634110157411866780265312542005925022761071570583136872070281187728432952799826237190299948124017232564013257429566883431234042381637358443025408970913597624030287782675799516941931779568258409178899210819280527665844730115275012038360488440623849224907366052860881322299490615704526572077212743904636456239342175419481539171006004853824743915872536852849388423363810313427183997944399342726724351436737591723698941386691701811343464666973027924536268100129906172990914230596616549042024702309151047075691502032235036097855652905024101516546412944628671464392810695374576116515251742379439928928309887539564484772322621590656419782586915173131480815212917584344216814245153720340828240119381150569889919564429637388311234508139204136266284937028440237659687328581528323412108431603238988491491430616388964614383840450290248518468326781391310877829084952613946560996075196906183314682219637536171957413118278279171401641276125435005201491041279474752598687492747171030330762710133970057095036739323933592427362647422194581984134485510808259749472532916513488668063723028066475987654874894958591239425497587591935145081777414742959635248769359673575052294404980539282641568291359230991543056987190273721252398801454545704070245404378491901485215060634342749214020256271565576933361112426751656834831316836144357896016974625674739827958286989168499902012604332432635228951257277652804100042968752018697227736489186021286256011109559649793247833473824663003924077936192870015002839319380292651236137109885009105379190332345163604904177805470544911038594255648653329811401843059285754415129202257258689833340692513568106892753996332788399310341745071753626780496458424242752156681130975930056815737389279644352378787816203682129029452664887928343960090626610978982753702233199184190979190999674499155784921031925289207753671588546083805602457444628915479730921454992356276373984095149102047553249394520283368624217348103635904207570180224455513955985764044567890813362563940944338750907080998935450495134124910879208192304355545593946245420529529669424801787556862798280360080989859981257615415530663703849815515356889331259804105328728209152680419188426516713753306966914364481095768720493796452294717574838003060745583411507741102438952370510674483036642835859144891455422981191362400527677132134313218266689506834068328318901302279067989323183593147889521964397858409527362365224114937167385150417942718089496181517919604029827901503112101185785066070567906192443472711305252151483297259383915066344870033019402338580510726988149887308622764471289088445597893943294198380873308910564408630282831300195251487737749117240290057724861054521740676353236182605401951636785664917505259713277112978671013664904067994479170659944888842733441507503984216236024033076825826560098429973389734396492579936282526594333790823001630453674904813765853269139303561761987882122902541156064344442671874173186345606287769584692094471549050334922235636180121254177890413704398838722336956170419276798579130173611648389051676413560131904863089712881323654067506285367869440453624667668001527639103618892722155400510641777099989834625076333321406843113097120693630687266627549926956583836058402655860712044415368187787253097469024747759516728243539201428189778673213910074876490915206398699838967826592536942042505009448900162036649100023096481657186293999031925428690634612236512801236265550518956637655716210032186592742596556961323421795036420158478956174779477973363304947577368110332819860674736922439493781028053594610198994555136266487892816485432371871231562372136855343368316741190498796098329720104501347412173857638268591832527821441499916978930291980423754270950914312183695162374476593469180200800308540804207760546654060263593860509400027105758005156574648415299989569648099640657013438097388660599112546228467860887367212997651771379985350245894997254039607918422152196482605517426181751182069096125157943416185302918912113312607945527432280206253754881659307888485443151322458693195920102375890306993559726297639877611600626448974507628183334065320273197416361410408814088901103653911421389512485458368175026963486118083285492178153543523187566012545167372242709644097079666874713968186283614775427131496392032626601160018555892071312019940003178578698601608889218728653876183088883116031187792564800339888821668061770709318700416389349674902749195483761590815970026395089349161027521883649015103159260383877931402083365739865814563818262758188714933840726904038191054145530492896235125470962816300121630906695160563459485696949770004064900442333916083710624992032545066856228892444747436369603825226580279548372608611334083700105256209086728979505407816871483713949202414173723504188874479863734587471805183358582377123889075746992573608083190629493075520164941433345849618969721946919742600149541067552437720733862865655704729674607404652254150025383148432681869670720906834471787529520562225709153792646653580541595335126579918132856227929640149664895834613537245985764496285686403171800754521429863265045425629830352249400805628018093039365309508880002323790924599698477705746638646954434156647985816735543263146213411386033973501040616961249673098729517719861674486468522821361936908591172423269126615313394759597146980873693900811225483045275202418278261177412026490136366764048602658784505314227443752637675754801680511181268395317576771131834411309521499072655600885062670810612041551623180266157951984800716589785971359492002358576850435930760126661735340557147652652487384533510716396055997739517549448379107257438749402252261915827983741276632773862441891683768449276012554777873239416978747193975672460407456305270796258260091618047101997308537567932446665329827434619824196782281718216601386044614755003541270432166944881405512134888125210374580381822457988976981278586355852249418375270389550004518928587083849056298146161662679647217867903799732800367527782904593196838462806886405965404875279030154601611521334673696191364096758062436684146138885658632077503236643123791571192011207819192658136426509903158174520917159802037770642190270961494260381451892549023891453290299257384892931648814524558809790207147295657338454377506055845574621254451037666382631054618652075814658308323295894856648181312298964725188741674929896564982728521563897501054114220982741984603618951621536850410490908239300595702873288063775827438264178149957302642537918585975065060949833453839467365057906935299474578314804352448369189717747049400553243860511125490709849571022212262260631203346457121523621379765886411178999664982312996555569337899894263932091083887925832930316464365513792029317306820249729580247931340105984502465150500868423336503875392349728557963805493019492954697128074838039467795709411575894537490596682504756584127228356322251609710861000666705461998266903335561810369799167148710633527889667303309991340946592527970021937894897063452806226056911679288481495147371212691696437049971903856663569918140952529503066964973256572621219538626059317369005896133606100379043995668505339643683385366370250810588822231798438351303567425780931594990780470756001476087080789689367224671455984978411290942122363870516455110230408887807190294971205197751057500322932123021704735256178618454189663797875043961630707322815189902615643102543890998022096151029083805975555510044156134175813409467515268056446036343908855534829614391337123692479671592887099907123260514286318794302693535387387472912786202712859668590469663257808502386035828518351969087138553939470737120650969857622938275043958167080068238912542627806670130654251883878506465916822140407571289338740909055141885119762141267025427317634534742047564358326874133512708862485604398925954409937085632354656723973882154515455455401222142174737439876973247790591499724389739495312120302477962428068829277410357322314226953035137667139906942754798385035880370447908232309045579634565498481582990168335674717728260832830853676413309258448405526180634300291710729114807075179443665885283653432984247124613650331052367802336234143566359414848768330606440415507659190656166880818006221956725139627852725390013799986686987664860685911614758362422185719314795699002497835131849206470006672984745430379639998399298370435357287568095567989406606139796007937410669996092317506671465062199332602840477387853714210716620062273259650441769010481118571936278546492446453100489532328694382420381316963194443095239630096368635938291327224636709418573050807085680806098572275757590779872411799430731982639705158144933839264130435901950223435579953123739692201291550608623100026161642442543495564452859998894544963333841575074705165705912976892294990133384191736878976249463618851128607296822938605370230274452354769232330416606479027294764769926965989216676210815869534663662663507198474270773052207568382257663672105571852146547654116825718652747526932586131234656984273859378893015539359074231262753214654767012054107023220769045821676402803281401817022523301476493669952036281037573077375318348330570610332630000804537933446882618991350002772469030853277451327939854832251907549287267901436900079560841038295385901778497109964498677426632325711224772731757139703287150975067269049361407716078046582158786143353305708888504937980641246789944589766172177039062713091599007620563663261666884231299390922774387770928543124970809968089097991481450079138213041957551226714865014839504578421434124924867916209144574026637354554275530659226648171275506553297971481165232079283393347970276977957258175125555966818024068940574047881739970898989135658109403760114413256384164986735481860608396551789691253229650494088416374257183387478724298494365469043824010924665927788100306538157540635725191907694275981454527018251840879769889088122974816617002548914251671994283994863945350627037459132332741527153949514268104852720284247657006389134815162424427547503870606673663048693370765170505292510420053054070533042227000857474103617208091021014580484729360674885160164599250577932831559274165519147820374808699087694223598744445933314458337402703536593562846731857579220130304654051374103071479952044535585028352513665379050196754074218193905841915033588444617207314272240212990625544339265754354181563483981757229112672721567136866793644963487647367865128280238854060999937168939916932588074509353638279714008455537609480513742760592708735794902083616601722475143195266496789684702160104111351090691174928261120734797226045634611483074434297778836759123899323554051065326575300119057660244751578199698469393877375675491932464050279295614479111312900879580539601422832930537009773758255779917642885662449330749457121054883497706183346935244517153861387209420401739333217546363284027562497588268134505515441620604831779602880805078652556354869757281280700936513920117935423937582506047223884732134031605569508982113118761588897392091993671264589631426692366295121750948124073060792962714666771040666138601753450554693378541857057637661381089257879820072364243885440781437002202928130862440322294660676772046735364330640451201625092083477574286574346960625026512354841040720834584504607840692400726277295250486342301414908166926020570639125939926392503497504643849346592701834078586304412236960046415088603594078213389418899473062878452712687345597050151264629921725540581957273562987367893371401990850983783688278492212488089865717321621729917379918017727475097671705522973188691401189685779298141557801618853111174212880772161668659713704514588422398590686113920200944547919448409572161639724422525688575562189214558745926822520639475803753523171340075281504000494464695564247520719065248896235175972100403533269469981443801002092929884563589352064769437500565599388854433650831920616855455615601565307173312760866859240561382448327440039232323821060000918926774850773099394834348007143196631046783194683900983351356163236925647536692951514597485409890584908243567135239442219366732357088193438741580320355924039602423672947951334117113997174066685238505111195182816277940594184249595196666217038045751497784567013392161433493096498526684126189231835301116712219725322532280611451312942319840094575089773601090281535811120129579741844657650203923787050638527695031861354430227840645276026982017321923095918108063578619854726650815052558840659237956968209506692632032458773020101996604215034592603656399692553506466929558223395143864074248646815912241862338764032250142114364123713121197307549404892929424676134692148568773074709216753060043144278066257190090333763510937186228019354851043116594301075737190199545809041953995379329513340085043618037130674783410863670454227204909277771431406262029241637929890800124482911223332419470046336364790163733637022451672475079064699289603317916388765537522296227589966574045166088432761829680489470127036908821931280156128015025167749307522496297887949016510566539334999491818859285603804570440567804670497417294562794049290134563592335783391206247726148145610956116203914675864802931664009784723661945392387590756020445772935921380468573538270631181917814018361042684596277163210305592175477492568003455953033800668934481464627741536766253048812636580228425404979663538363800504039577844257582933024786880231868056184602511416647690955767283598110408607961907504384175163596883695288069605694913633765704167393100202999338622903699160409403787460123738254430995410756684518156922535386008646858050452207380004705374072642255094550419018060009890509113852018855464141874095333784031404678202122237946951752586355838437225909960407458665014023742982017336153195096078926427172167801828558026252069641267067509549732497295375618429591631171510303392223150248939037639091164789226455328112538625378891768815047864148685304187763617372487520126390581985534852915689478950435183791150366010408668215757314452789041527236337455801274710590458914382129416951297011943523333764580799275503267304241506879532319123597296098125068146661920860857078880859419701507995615089389037262846079857655105423985096759306089069057818648471975555341148277689021349386083570908079717546137820158708850866937108512959574861882581932130849872898052937333818233625325256507738334632944779098133085522299225065058808258429780074738225001961853351441789558000406795087890069508319587560845866333988393154198993502894113844152778816343486563527830937896278814279910032513343315132341199244675236677623894908789419792097086905726759363224191375910031782438870381128218300412187897130859220588323180447309776239779258294758668000679727260516297876743992312752751090848692120175908820245308013018799467500451429331517439697542440676803548304113229342896657387736621750391248216902245218940524094811758650983786413270770279439798333838799677564630915636038231625915164298220489850096053547342221041047333162246271216012156763611938529683874206778261049381578676082939847556958636308802111533488512467999377090252182397452395934733512644406271452965725062389667232751064794170458128262273517360388736088536468578101299043567542071774684347507583703594799937343323937675147137996634047730800594028276958235121733517711754143843034600440203270082331414369131864833783502599748745635292528080623534123443854167187662027038407211284709817577781265125830002418310418150324119320133425377591213524073738535861728153570963528001569626731163054232961555927358743036229333425390188279212942068083150717776297632146500215048832953858938871291593925030775794005818700344587456397712427535486949091291416963076481156748764091206575384510750126792424517843479640670127330962339137310451089456869653996461092713334272777940123393739631706688720670999233674723984836240060843497392223694878305546673035446974215483948313624169423917062753260472021750794193288401988130142120461474472599208393418544186210302097089193718579334779594583560375781023373939444069761315556702198227471530023400629795572605789528355893420570174794229044379509554554183945838441922405317699438489429058148376770105316159415815442180326663716719373134554275092715931198440517529517322346569574340138828625294148379432201417915702301449997978489277303592834596928566806112023535600740021091025089165102756099690080105302194410460628143979860398470649571282803536035972272201810026393530439154601131454959194060336583447847039349127903943867238204153675268740753214710707202471507795971203448334547407688630220006740867802837092583560819753713848460442216755806916197181238565621696472931742734755892472141098283985462638205125024524816606230445085558689746857701534041297901286992009411617993246887594037848830801500899739682991709827327958616570043327476665406440001395526575998551346750691395014697134430753627708550813324438125232285541849739391170716989898739650557195670817415949842628336125897291283647023877310408461954978989168897307260925709134544090519603425439405971472887609698827816362791674455386400123553750229427065977716498410235410169825033593528604615956759590145554294562134243529114819520554035737851011140499478385902359175801162390989258029703313474758005630802676037452060102333573640202196975340358377078598951523681181471570132029709595287416871368308662630012101628381965929045094482600940447203340811439378128393908413399764686463166866898293407167697884960658362895148755544436409079027208518467928241656582058846054710780343942539184702120865402015326755509322417673000559857534595927224942010065668071509916967519659468834893659837099861867311480546786892025391948710841633013570771779976398512672943350276261898306624842694992314283536272192561433757247844929974644091187014744281416763811905964797094210975242745706284891669856769853438466253121888807670212393877279658988925073028752196240676884086861842463867467433850691344895138801816685525016669604908175479332093383829227241494880101011836008712441907861295520421983933975309783742705394459817826345644476073087634541510420756876649341415565105430076208618565883210508256280916043360410073995722283819662395188840564275771145458116431993238778652622210308969212367510590167480419926897307157066483509262166086186311667850987438972695680107300343373679488878996274434443819238545734377587319246273967651561222212775140614626901555054504463504133807493546634035916076587830507617747263835298183851732477313522365454097914127805622213598416114733430319322796886336266775565556061567363165441807130385517404846195984274259167602153739625056023105313450491521463601837643720101871275384608609201884042012747461644357732957254422688242600400079321689830454268733726010877729070055001103783713673771930876629749968941830717915787398699879659619255395940956799881936591868795022458815182515171265879234069454237014307384649090335620941188114584671948413140241258134835947436614411579487660165883946742219472280951054722612377033393363437146805444863018699344886737148792692374219466388121475639279406870959264684608151264256726500474898879269518062033627898271666588560273304612063881201911069277917234857442294379414920297172847893624033709013887917010527883177065414670110729797254642464407068164143253229299897675599043907775941811083185820853736281905205652807496664834842206091470486389116755684604464392883236107421697767343958270199265551149120011552411682187315155634018991156294465916995082033379653280643628151154448172600708929096640879933785379629861440578846406210579206958777137916598515238461346116997800919925191718052722572446565616409947197616878789076347453442568776632028872249270473548025667654041480250098141681427486374687721419902122148128668640749573955674087274592567936526394443937591428908792805207092602988014269964425171181968036703373425809551647538500102812894778648982780229749626590472186327683380708973389683950749549311617618189194725746189593190706651326268986554180186648336398815689824984934883231992905797483038575841901928691915183447092373394588160532766496046300716510329107057923724024262700541665529265714065178283471199846802950121061214577536466604468631269920316535446383615759003820244161705695321431149848918044215144392880780633159649808336419202609429204791008326269649618171942813052206677158289730412300983002396354600785397229356957156407069348560133171526251891312818606064832044456707637682154157477324810468334646693253626005286759104642921620352713981816420673286352251692635338390864960374180056109141306137140949687430939036236258912770667724705980150759204212343172162313167809926353359381561769763015087568488256861242824808103224560269578931920021632684328305350970493716299859792886483668818853363343548974515581236061730575117020807158795553977952417631604281867684942888578219669307246224947863524494012239651046862326802974722161633476125957193994564687921050139967348786597379725519534447024712184636216331585316975398354383568197897253236315824381926096127769293455850250770096837716104110963601237337988289634009666011326033707959409985808708536004302797340447597089475993022738076766755670471094498222491559088622125342042349853375533412262359829820175026193539680338227067821870065969029705210510414897435276261340948828149385473913936604106472991721232964976787740011246870762109801169372190343646982526502483958854121561939276922787249330439852137116434462409574845711369225654918844039271560355159902864552120842035344934249333062782384743537241170021993994821870883872219483629371951109542429851448411197819693126254628248255750599745111609734892340007207154330935652962271272368527701682103495604271766875642562724591149712474662514485534304101887097903749021460603235773096884961028752211271574729805732487910736619829283479128166374674155646798823954197845153544376454648019438039499998921738397282367031577411678623910921684192601204557432897857387407420034425737553391568443665210830161979803014553321665237212432722895938222368019108097547286052791725122267735393443075926694324101125319818004279537000117908690923599796843628090027372725425258718621396501763877912419382603672786171410052842964518259391370945026667100052962977198114122007914339482185821422213000285101598021035407615840443305392864112724571231620122307905982511592647104692117319473925425204492598576243434028164104237511190335327203130183056129207124116867799951495478877105584274886781579160908644630099196257541102016585565276670553895823351153121573121977973546903924742455770523206314900001712640331460913685592519637704621828720343039083683476599268282441892153320256334459291982672821529263810622145166932054797757546596240484349331556932791468121132583428066837495609828663413356530736518877760169456115184223418504928783620921926509193289410174419750213265550713595763491654314805287567040845515417027745273602092381231460900895210391173327448427349912219888293909024223672613257105217622637040047727683922966087570480965537007177608031409642067462261362309662739096628128589521512189133620523851668848207603874783579414384765051985589831322201249586133485916103687992831515685703341394083291156606864146044051492721720902841909930410499829702180196149690187954326280232653167290928393425603894995539878582200593474746523861482413580778850840951749974072897447110411756926515989203590633722686820585119782924816434128169892729145845296225095541660158511337969256153722799541400308997717545033103727207517795583246863352456480849214939593857882232346399941059459352034459607980802538157737057256514996741953822057029418739496785039192783518365080601199172003541617900672691333475178551400955905367856440435279644602845745920469910462313516780387846132642500644590605252317096610941421749497672883612927865057612580561282621869112980529427942567150828941554699902023345856473176610974371169798904516617032739652082627924190330032275752110499837833975286629390564462806659108195809620351373975507634406664736401232239815829063063102939521937731167181366265604254671391344456710470769414449415051016038928700494551986656302901070378749326913253535133108258222452853023097581382023670383582857678757695432917455255329675628961928321007564667241135107497401366959805686842109271472856333176593847517438252866606518673559757931288172753187779378287156063415607323318845296590509152439543435446410298269448772743800300963860409071101672175857242975404947427331061557343530722926584968192247462620875080140370301309863213344502417298838024690619169354019468605285393839700651548363421429084663067144013231283539732614015307687504491336627074340494337306118868920901903249866440372185516036237773605519913529677787811789690535611232366240629853425060373347869173833941889342056591459557980321747389940688851110615777218806415220736298603138039493528259118800968594497341390035909317865239521247589036341073744848484268927957725319270448454065731121117439940312766995983283518066647708605651557989103489345565118911254853082857830057070475909388257812045655863269826750963456346340485454245934841003494585231772919988938921435843968755580029126537627902427409885765283795699749711233542412933079255031145326346552169848146492266014137591331324123017494234943692058074727425185955228234104884590468561555437357904850622530120541805132702755903916353291258324250170664159258412177878213403735270738734876464006045482011785285076573193480088074265709769547794324045031016747731531631901672507761689526222195399906308608625694202318642833767411609001593457185534216377637031907104637356555228873019095962962273415963820219935721207590296606739250236074328933239922585828266487278601572753176094213121781592132067451178644674573861289395395653241288373844597855709763484725787442900941574374787691514860255123669882658864941881316963221868748603784876913185002163203218634270352805885622548137802944043741467833759939385892557570086231521130553822146761320336923347770404693963452937398755614694002618749078779223846233021776835210881540479443350382698773946062080812348826745787295723461680135202913069621195383954283567203727507055491981570628640645928488387050075714513504099341572736958583497659374769202926739324142271074707936323307328718281901522524791129388711945888884024472535267351918116100141703929021919941458950143435504923527405262778093445188204611040564981139609283464135726592493909207385426350611356389315908361097404637363609466753726584431216136726188766505796787833362828348234077403533707725490993821047722957929447222508364015228820958905076785892257342741752913527388099089133739012462917946652157542971041078324101639367499742367332952416421127118432286173191659849884395897083834792443676787163399397037474134486599474358075879493248284463954979996266873950212737367936366854664113687267721971503780314488118444955942903186976949395180597070344296359374999793925474713547810681746464021704691380211641081182719028203163080000867787850759841715676587802109869829723801857259749526592526749758070150302378676718256152290142887974598771096677580996306984847241461714385797199625011699649859095387853342535845003561277715117078870439827503991541267408713387442064437012593367503974310778888933645125447897198302709698815621285123819052701465334661281955061948998105459556348661541657257012978906069659069160031822819060029895039150557257263009718839357447255453773994776552147567996191852059182618356539001857801367486963844038011538821302617072888105697014296264305487506993392618896837959072195473179514006879339900448359146674367579179360698011715313332881925609361088866745046369831435433356008082114189225115657166741523607937172046118522441836263820405698246483714494004788863964770760100838022716358337502792276340124667526362741048648762292888360776638733007097295159740980921399768378026050391180319804217693955324782403584881586938645190643136653605914823670456394997183457172889906084427322747894268717548549275493589789710543647277262011099673350227054214703963834609354210336557318215879489971545158978595890083440302925994432338543839065656325256962696532233093154495609505985538277495807194171319141481535727559862012488500952707700556172897074106633581938952498509683379626942126893080230267397654197069422704010795733152646190496490239201447435073699235251141127933234651475161894587010824312283989856254433393236009396844713479151105194506784699805142104445666233048033864615040216451059648492214686916894622350882876781241772554106001754879653748518358484944025880094811425080829897775050607227843722846678081896172353560324172063424981306004878945447508425279602157740949092852890454677209281196283953549126377950188400192718575307048961448009377081049969237606079733259398833087722676748911191458320693147517211134961474409247240299412428186419840014478234337764622538581990838652827472276633714308472047835319694463535097332036218945229138781084984228131402376540137399940637489348035073555393681423798300158808408264297300805186215983118788138054668851084781850514926134101038891689356415163592331972469451790546599771176336319285635494463083902759371779965604739275363656777890675847082766278139743181830623943453034449967417014319909640466980779445947777404724713901226528887819896368961101941004929154553544807405790497138681934569926239095802318763355464256432064880172858696605484012417344890103809928250345092151278057264367282657517350787978839791633995496107318357524520807936330765520228818659824942760921151938843549498414407938332221049826908355673780447130839621284782796780699554589300055815389626207452107293955279239141136461929816378852516841617725112648432594551397219496333114038293853682610187513291956586927924328714164727149997523381422073248987542130434834498437203028107186297663858985512833153205815303270082331839124321155717728534974484560448006843010453351766729436987854619629634095258045537747980670068235139722776612436433502159642575364785391836703971212938566601238955562418377665991755331558628652773002738070428713324198821233872082638025500917006148379710239614748039684395192475905388383443837450579321942523120438360217983706871189320525074894944123408819417572061192008201697223692127720505573727633066558481907225394530688632073852131028822857966838426640838096096290793211380624146771263697608749931644526945412701054551669258244236496316429962215840183620600506888591371668487776174870948427255019749813437494458601601092619528282560540679237352961248132409655525678464968586353294535578478086721269732131405340978000996828372693933970786323110444240507628009408222124848845698750276951154539894340693796206895056877340098450240417436361919551284963457720429687535634033441185615629872910639291877806907056926452039113377747663921437887944012192247423959167719934504985274019581608487957611699380046564056919855441277393268463592068222786212018801774387490046820663919928024342074041391195242320218849762785651835609376618310206489493193349951260983846954078577116856402573692089938957517562800151870991212175798775015326087183021276543898241327636762562675504869692793485470518868940118145347942631447180163524823112974829488406165868200005491305144206577389148792547881621819696025162077407563250084282752633838480509488509675844884691737312565666643838904985139640342377468604138072192979105105801968602216374414745527124601811577449677546661169486201743784784008783861819708716663433715049950787441367674089374857284145960737158989372640540235929737261977933814441288878451447493705930713975254520156923411081755398805224929380793509808272417274327439487039591155434224922907623312154473842237379752838055070023866417368313952075541058057503995448679201873310786468038551872364670921416001620194875759921028821660476679770808879858538446146739442089967132573343919247329584942527390697728004619978222911807947207252324363482309977647444860518206511490243570747769642776687491263816451846963536862863331360881476923490613572637775986678261322950906109026872450684651464919985142302179453044043733407866569518868592236071928358057675575114612668160560463030876486204170144030347949701569764298268378380258828792819703648415160554458227193853050742959421319619264766077921603462095839441097224681858361979717337126568154255626606248379849241725215049224226005459575839709029084723049072868445760404113671020409645012800464761167081415879476407233681249439145578826788124635137867969933281917823334352812108109016358505675986848411154303348329465840140577892429711198032524139949602486479730420672181809941537737848787233143165848257843427078606183456013280501943460829006565858297505991506726331801768646530401487872303508951777207214165959849819048522443285943026077211011792905131489631821367491776387768495419272792341611398389422318184485282787290729243476304547677813556673685498758843994317865583357156095589849569966571030636188238200290151840504509396120601594786905891402170920053657990106865716856384319907611720384582988598159213106273832479974743586433034791517070432653471832404733027262817422397965687081923298719497534546476667781949661198736446868587905735079099109655112466103611865648833613062716439807569121593870256148464852604736002937835655102015874456244052603940952718738893811202789721788600886939817019235417792103210189521788070628209191861959372610320365399386742478674508993587416197365062339080989275441217385164581284586012403816055408678720679884743142020262714084258682107731673922737481920906573441320468551955459417684101752649582745124079641657318155557064327991407610365597151955029863358154780153002329219288497245287545031011164472905588996348497761867764766329460563546095128044656430318505923559403548397941007975309990527905800810286703389563623160628766041896348180587356217059975823917791982282926278820237576648510774727079961444330179898609564513217990901163653884644684888294722812111265994570093752602158296482391058577352181083320349850643404261359910058184760004220141646292905236373401394845265690775407240810507134794493262013087424181363621789979698697182372145973806646864906121823588272071411761881176349694123858388403025403562671932069713954270799941431026474999129277142996055983287105942334198318616348639054822388630440199862089612779095065381000218599225992808530427574825325486939578397838127229525475613108094094509921452745269493656584342245085325416064532665596711480007990736863868284684634179077176972156473753967393087841536428920713228796350118378222029146672672242243420502422002791509661636095727016537033137347780668776095204513263123705592138203670364852645674283416756585751173692156521545234034668044769248082146068164116245741938703964027186588643280697421589993257278545853505254426450733270795811787646853415451234757113720741479718221036044455108320386574177287385705121112369547965961185741239685600808958395347875948711391415660300101656932441718477824000843913867946271453161603468529530886863408731715201731067510294833111484385248677579825938071419391168690486780587035927890511789599027479072753474038712315643625119409058518060100913411370322161553704582715828625606431642826077476281947205820745759629656357597154180104489224491564345029590945539926562656619394559963712855647954560913353216596735490770421265275922809991632964641199168462063277868363788405651634358435023478013800319594028881691127622543257111300738206988771359642374454508900875189489627636791954189397528019489046739477242912644815816057750767243153106525758681862246403125837955041864801336308449756307913372429236245337807706795195140026300272380107418391762990666802646781566128086791572243135027549617616191873580375687828016687358285462579955908786509915367551536673886206383120707799263762218018406199842760036659761989016583356563831588019068527089233806164738909301986591412247731367335179343962192142155903976276399689316952521142428260496892712652166811976014807537625767351924132671565016413151173246360779402247675946946202734352988946461008672845900222367041541739503275513652170571438608821991811092691441895781307772473613705211021551330632575944044166152283423088679780665207938262200018124908088843982328968105672937099885009949105516381024659235170025567088577268227701805799155622232385206273049937105684291472241980021252202431781628047779068440487059320274405354651543273091589021909586242799409059698974662103463851366227805584945698425861089132273611959658474598656105313005285871364472577891367558647878814695895644590883110812229465229102906111746535542986999416389423003981514982820967032772558715623109627196626995345189115035397736927348188731478187474050747267065708589415839258793766939416026652304614949458180290784532297992790252493143008778474612365763492714455481821196748502661495544446885796173275718568271311371797540990669171701881902275307820623266662872923932100062194133860858516070882934226006365442364371591301727543659275487099449766459297496438928255053852861374932177819516391363095341282947642396370530328422741606438252469025853427455624611951442846133861666901496232036537029362706814583177183217538932861364926235718085461518112454397338194372419852799733607904627265279768452272735029397830240346497180624534049698982595513076815039329011056807579621029207484485117319662589192629677370144690125404084191532388008503928087081013914066037345341499334209211096128338607225578004327902695617065368629043630040143031822152891372278516881589161210477590957345969425940726634349923378120563307700079304292703484081142631614626009498412624048542361664940117285507077339301858238308118169758507123845369734800847024764022978378169650890366397103602663278524459048832439416409386328792111573638596601382294463415955370579058940732499722408470202209611757389672741579371945469509159167528900266619901535815058715640819236203748347983127685478918407041052270369390463529598876069988365991933721147857203574569343826522661540714526903436929721335190474937456869184047577677219333687309710712020223045925328505239343956674389379930386098626079341266395859677592850566088225485031870312399287163319592312137647125617755596301172826714015007409231920688960557968562494309028623476724379161498020839480992349388378955950014719110667323190725328234260997076665103159793932885620812257372092263887519858704186634817916651227105269990276901210712726618605950095553603540789839784241511631189555534344073614756683939094093485201204904203751242662758972220228112805833331872059416916449670737859004267642539255571007496194148536081503591806560413777618357584544265622508447189417964435798147833110544876165402307533568813759565243402152254883227160164637184866030079305423841833522008489139407475059412610601158525851709655246605671325891885742619177441649276742593785664783196484545124174258340494285496724459554355948913777049410314183197648576474178214522938198579442698519755202366480718907408060371375217893288580860927855634189730525824803572389267108756917205280084327070306566292962763387990278312900906607159600158453319472684867172962048235232611470737129427390490928248754960053198756618424292306662893632581750388391476176985719100600927240571841305090833454184532654965779088319154769576082611477311409414412232329617576591338239662787544897814885743708118009107505407613993635456047755749431986954485044289797238175558553430379707247869258296483442874325792422452093118095499480703660165771441209470087999421524708150496809735983482898764465644576182295982750121921088300434323237011963470992704292218795725477887747948642399350347053969058373913183105412132846502901964849912692047826244112499634610776295552720626054808830715587913651412096514894624426574939841312660036722236519583393449153126026555795413743448686892340785236446745840329044451257600497429217421526082979512744977388939160644933591062873994255815993443181976614034231259856608419562647463921849790562178360644604794768210548876321119420615105877256147179832754729137738877440078052724597586321930351143080209402174451776314896620726246320505743718445641393989255030434956069259627041746933648470821234787241821799278637681549332062619648573145009697968661491940787845384748507026732961424626240209647977221910015422673062185502982779793159129226269817022206633643821975337618056846640472626231492202307444417094879709638062152470357517965697199165513681580514006621455651030389902737665573408062018046062676200357776430278381703781738665057711212563071328162475393708524057035998711392755534010215195504525918165034533414085119099313395610420196910882290192321460518978878992317205538022569403730208515969738053536671877197410574274001518590433583872397917015691434506071033209715589860516412964742148313584258346677446653237844468657037520005835480382080119336240401523574016178658075359196071834581362251391547590260473665274404248182781181159449648468258886178933027423919615009936747728317208593874066798251351234703407514982534145706344591662483753900346592331339178469583476427412647576421985799838757744862663513889576502900169511442718419570761949236269461678868150866404455288771764009638803425598464963766953308294068954146385111257468917411951404374929465601355134424089067801798870668344626081890632166213451569535894557959524979540428803308490168020531621337915550813538301131014801762189009604350272302165520195696685073095100725046849877744232758644688103837033791283102471444748937402769947301060176975011656775075825219358020808237578146338525693639705264913027831639391121170958487439911332557334340103455507655785286641770306437546870137893099005210688670138285614966420572770209052047657646385165540821204443730448175925590167832813208006871068947959655629805219264954093174159919417772635759990804749139064177738460460270895389291588644024547034912197523579737838207212537205493429417863341414660851607302715003201766259364101917338158370122864334665277154330325225710323726051873279918847450086774229255600433367404405706137465729405872963373035995051392828165083112026518057194330729215772135729746434020208134195677995206306941307194094148550011904954797945691062923895335861100591760237723130510969748342615753254780827887266088278192124832891210924252459954579563300217678147016014796323089009784941748741304934640708006538945409387608270451130994187072549769410893969845124920986829233095932228544940885871719956134765741907999784387193574054656435279007902976434007005023391567324050963082233953615014005133902474665267183764136292622849733297173497278420256997790181412292971395103911538805148415427528544238052149818255912245170789123614448509782980681399148105325482207619262719392618497408599534112470615670434723282495121111903222836136262285523057547727663331323662353552673081608688254862333078117027095641015894855772387251149960268315877870012007492443605004807793893627345840257784808808187959707400870823245754517493283530674912485742880089941029748450872091124147126574639009998145061968465912305199847695601154041774154888879166890651503391762035645680820487152368509010818628908517109770028152786910442049882863435552531897349171482437445411413044078761494318476863542160715926083586679668293321216689540442087059262229848125847087311012530036818606364257065047361210110183045526742776561476541376546995109796857225430857728672498633785119290791629041617241230820393402072132410729554276378153192780473913225422702105654735373960177369073237976356576509707008569905931196381357120624618404560454157885726752266736365630708108189100496286820488220027097268713034031354945782766139474636216319139461396287724053441354813280255051105689125427893890399961113382879195118066265511624261436984440098297817674416742860980551711940544977535971894360719024826143171006411470144114850229479369751315783800461479775070106782223819874139724277541635870230502671059117578197019777831984359552339857529818858755619306422215804665657172278739646975732076964496361155577394177554249892321205355960710793715357864994340749052866738091190726609817478445520645622485428424137279861235354654832262582200781718087938831430102083429545846432694444722545887119686251644817120991006915139041353395221242610074230734635844364881664023104343157212302623074572813639617141305434318483044533187984964049688255778608494580332565877058694315126289957773361789184760432478098416517024869585042881981596638864036379664414941349026860707326037318085215156995751864875633283153436588649070608281203758861377899775058330410063796566399002381787094886192561335903596701287101504819264959080354550599581995945373130646366337913543235460059698159630299117493297518392809486948429191278611431236564126399547162494192055897354156304491262509851420938109258256935867652912673103583032724825045424827683304931985466934207748773313835827851502303126173674804602241490784150731216986137952191178201609560352417592976138346536906339154478961191635598919431109486800904233101336861620252298721202665453084010446354847798469418979569497990226434386969373682600336170351673453432466603412028723804089167857596262561624604300129023228877531465975309437830819877339499195272317338911081840180953727628096295804754266362226276824318712728049412754720782116702777695554953232149386974742711438232907914808217918114541679994904041691956727867472377436053850217281176556234955868527940967953034151198680965131459825025591188901780959981252967495191859147484839182482748991503013708616642675843656629370082186697864102709718397622061475911500378997753142560475903745718147002502146654711274050335195492955039279981727623172201919892552175654197254043009305020690707374470023836803288358381433054846931447336964655360879318941847923319529883228710376283670927831273192101832805011192950756359501841111138125077670719793281437685065234356691209100974948583867761932591600105543226328351247775733151700145706795693254816933640408401586174246151256350870962117726874084280798756389875109793006944457565777085730290908140349051535683262817150974832194549316277860069272820610774615643147722242720701245003118902668331222271717174077733493885458691474760667246475105404814571333683213209256369465652419555003811640048960924723035359315781572113860141353454676179095470552487675220808990081386818686921782460024254823352817279233752639447817450210539296698157086039236070465963915054427510327329152429861288737623353843605011815479417062291565461569079276061086183649625473326700949600333217061959341965953269668432009156360917487884222470132050475096231043997657180598478362318052313848488057244022884156353889834789626902456874028268637192324925512752444602244792359668001967969729825279949644069565057912263989257927387090718806139833117248433529022710504176722475387427133234323593206795949767692199917576868049527307351007076563991637571679990432403568774180648367917163150095455476245790742119173817065939883820272808824003167858909515853101965555754718815946700146819590307394100523195764535294507568035340977631610018865529085926278413244726394961894565161254319078762379167346458940545748389175892575459226256671125085775164806497262368208157077879128103290405464945623046690662358846495417464803356774782532144458949229510602509328742611854193321835178792239968220235679385092651903453288952876875816769492250555963428953795345293556732240853305688945723286158144638497293012889427854930897619592906949329066873688108062318278513012297942804761879256708364730109773927711380516300826605579378870350819227207237949052083641781039817195942430897983483362512067892662572764121944514249019224013188590872764333246801530481511041971222873390068359655668050427695669222036416290079552707879204591548595285256615788687501938368812020749362602120758838086325640295556028320096234869012400801943323798561346459806457627991491436123691690906613004778569234422431658676462568907613644424427143321473242068823143033506287316928572640257379702765792664152995165280693819593995704781649822618380228509025239761063477444405456219947236639284223151279522266447427288043679328062778615734937858324675952674758422087455083521300980066686899487238028712128960364932403013918043804183353884831435316597860177651099805857932532614654860645383312446896996029773618701216483670733285086873495297902797829980587183034225219516877835749739194665606659654170605800681868975124354342571164214776816605070703411528895039156296677858392383787377876533398544484183725756046457727789295186604118513391312726518676763268748769270811348634627066764067321987556384954243145491784067650547845381067560494236494584779455600344359126199781590847010387689348640976817216362302141663830914647807446538867077724042908435987608526460230351437995677833288513865115637426177230076161631705400180695454276136822821836702443414353977310921086650523847871848796125870273072455665133508035486601488873474579150326414006170939952177839732064810293477867529018883198727335424464139921622827942288502073408873644229737625762249257629178939421985692507753496047122288904979316770770148469343069588846670924090953903275608648991022740240315753560595997070293816837423268191038586176638206146857936542511343339070605251255015215300294282534189985714961044279328156364225333806409245953769023627834790984559729495297872302764503106950622052211622759080743676316515662026810940962083393633801446391915134143529041686744963832145702443401370923146729482563289746485722434212243222092327357728238558817167682227577648522449241708357843970636020851893373859126234024658477230135450133538672323307230164838108430282907759390153661670379984368086257288734175709009575539486779105643384527331086457918000005011083182298956563444807838752702916878979938631181433613228845979681014528825917097765232322980464774087237275610280506814790937303768186170828698349584900955675745751669512557280676546451875930360884554830819249555729532465870675098734342392629129703939724146849823774369560573544893520969380017804448034827584338582830596710402940750554237605809826135380109851971759148778329611004952218210929961397036086744085729334439463090229834933497760939931684518955585954101391316322999109140198556112849898229503421534757095799899892950340376962904338566032713700892802257334093716423283911324341622148092299708525748392300481633808782818776408177240125694068978669474220570308071866306264426076490690359317470005184261598557875307633115041919254085283537665908179965309040402774924231655431615326912913489686639812822417449578029181643462423333826391545222943077618192048756001377640574777414194098969876536107534587836011322622554157752245595685716628249901405591914854041158256720190330316572222950405078247725276295657131181100271984044745035875783566620281980512676089505953537161262236090401339967036919111326308583059680797348885317772018112924454884167858653595418233516521569528007459170584360358682166086227130094688626330806083117492727406334957880409957597591368135916183006039823431232906757760871299212678040056069057201868135279270438938116727618899431965528678483706515639567470861594907371557058528434168620089788382224920953272756260768868548106928345028653967480215662370014226637605103563489282226457783604681892739648985665108565532480707453256193239657517216714966548402947849624119467494024572147247153696074717981472562733431267484984948362578735392384786141328164002476297610955519256688745635057605255478048675763720849331245150941591558220956768945074815084249054527177062338413410061003996288914186433747271752374447228106345359380506573576886648501473474771551220700016906558553543406412284841048057110858294756672014966288433399632509821472745856757626110772121864117137875465178636830337163719731302830423294887066004161902992744051172026298328076722078897282461503757648708687934315625793986203197205348783544729772815641116004214517162693821220167214372336367803385854041338915505901391339321272039887337374958715020606992047139148629602854109845459442410546124914314047388683996061893522577207071541623603413765148695916311814756688402661646066255103277804918975357852488567167657236825500569318904462549602826866215331910039419972605990680957407700843849202119422615352027246859706349611502835551596952623618812740001023748074519828906507653448597012931688875916618501316802442225558249294097461343753313448689419340375168424781997882244911396773378308334365804564920489268371856190289210971014786964283415486872101168131883508841999405047657361118459086521540195072165025821754406265268759410474099831128537184128211845566056242273187600914192931488003552365125129158097100777696045839170972969720222912928458137764147944661537386883978396590793302114286013089087967815959461434651659207731133321868620352315334777896465687355209636851688542457133039855796701833457846104830901752460285600108524037044161471422637762347046328605060586414111589975817948605093573295329030388515295533323595555166522273907663888306352090092383123564468533836012463577972440356214511140108031244861388522098248750456124841102822273860551888527597932390775426352838773824499444720098034594163390322501147135746566568626775793266056639693021461710450828885774134317250383227301591885002293890910270578096746332962841141166481429189313573433109042046241090547008139023708441879616545457121414771410339445704107245854404377784003159225456611919776796600184525682446721432365170667576323024238065507523553565239260651295716790700076271173329994049389736018427599814155071717091217119453654709181490630981087833831269546558291957141836046161256031002223806193780691795954822602636764246045848044814054623984580216904162537298208254689471523043732205045352517442115768499039876204165465791966043016137487993008038463470647623932093941198631069240483551673422359137183013312792877984584725958922419281125881153452232517923349923529285038888494895464280732993270046655100229601061319005442863902815468226368913924052177258580051295739856371376820268181672347576377548151966980710327594406170682110681668352486748804672093404507208556147458625588606552412637866462837486105330045965087034482203829938382622363654535243607003338938029122578793150922051719042796597410729443980724258877064651410007993475611190256614926118384433458368750366794920917014768595408570570543843999802227989893473294256316669533807475805755730372730575994947665031620522630971887903053973634593976125689931452006015056159139990666846188032059062741968945802548287042854210344321633923188610063656030347126679147836223203161497610061409017474409175420409184735944853635892831708998019549471834592752666336476715653015471265614266624252855002286147976022239318830258456783445010661363864685511313821157503166588058163264478646649335405915368473448188827457766909881368426224842860601940245195156349789079766149546474173481817625835972187165872746970443369567990175023067091397076424753461430299244200634555406706079633461459212781489132673667518218779321872309963381821453207214385061273807081659299825315921044745339052089666945596535851532224214993312433328717430513005190434948588252143983431161391154030965710214154618878619087933705326901247987621762592681706147728678434001428115476142153365037042507264605407502308045829819116263668880733098265466702533283687401569225222700676068674906459205318881989318572972271642009292287687419260136842724394908875847128580458644239544443319029430312311390554035057614567383580890127287754532226431936325898426056112294271446528339227446894685461398499763867363590646604009063143619439448318774599651651644456917222629141428676323969908530812034937859058097686121376630194874729581749877809380061182591834284241810202830365734402349274775302908057998184585408360320429641882841755146840291132011793618330910902089314572486129965147070370025068344359747331083910117391247019818307086537599234630405456438106855925628206140244012333282718120731642729843205910433609576887285415994099236393330715108429661196430403283659843576136655241991978656571198579928404881328475657802274578429724742087982465447160902133034548023017954964405486700658027370656589347739892817856498075620361685360258747724178604775200728335007042031654665793232702261989269450501275647592668326412405501243862145713355782174082814046201298187412021622491846119401160304827444892150642958209942812702247070438234597968142283266067389559960029250821020017736837832244575823081609017980967698688710821533789558747951162628706267771648712389402730500941038271240227658247530130127461602110858952915027159044044222652259802097188212751175087175277624082213436586319198254640213625328494748931771490919805553334298791628279078755139363801752214048608219048080936159536122264095788948453613296390669705622161984717241599363659256574486167918329325383529842908445642289817454278781395121598697772658014120576129578328099994232861054263284971018725382575166832186718244751481653858656740930870411610733287142663904128606320881102079281502469256135948400417735226427654763182856167185643335505036135879479784768907877321527402192089910382849408994428723549390726553592165871395179094869691794251450268042439749032338678554561975975733779505594929316789187980754571167602487341992026319657731448305683892604449110245445217434837339097317888773082524900172648357237523797412993676636199576755024780288879033679279133616657906877366113377825843320801368624682225016059215672938793014958093135244096007033549781877409574143624668878200410512842286114020854180333067385979349623992048220291886913069043736311524961199408632586797427568790103798806767251696370345267173061171265412140616177879518664420201336833961936891370005377330025576243970574300014185613482255586980299930508447383675314101116361578430789962206991027157159769893004735527049781955565761781712425169888050192122847429688583242269992678958426070007230898743731665449681096739462616290645388506590491701645000206170750350465016386379247736265097528640066594447688581183491617590133973195468711828774797327188524166016740888240718926108628745351889726758255000906727844972455575677195553242168484862502878590277606751770978740343934610026388336743701428292715492206535735624774723584166629665278318260084888466928929430484332255762774118093126275953878149170968978619206889354606758200475919940770976257062797720013576688013191928955662473686297894412270401617168789638890357615221750419178620768760509671709858774089207975866239727681403217599341447149428545978060885557223666718516701683544344477039619874694776994731029729103693372877350286867770801322139047554768760983873132745685909963698613816154690108890420572662673311377713278324250575907784318617323017468670375717436040851983630718331605212101652531621313453138852326660922856072478451961340787972158503570256920531271983506972733091613507041730819863955221500806037852559851166322056659101181356665585564246049323422643821880416687803153333729303086575848621244001483987056111407227102153011457248836974623354375206510386675641281117634677610616966377757651991744228127581436506821219449722693056211949412694370704093427004726283163474533764592084037881759335385396412224092608898088825630991488031509264233710748958747192336938226861106228000303335470762092894362247143726626136564560173686304715241729693175155095747987713078296829394575113842563947228341089719583748514196652549543090535819132747383183019625842026956595280538463316837935946284307586986524209070730840526819564550997806469837089918354582983542689903448904421307048339714783047577398778501835901995509284324646567425391062551943915678153544320764245976664742055813446074973745844409508213893002235553941528469603130918537318690814687819836889689102531416490527114352467934900089976248328719540879695242086507818492691512217880447411822726476845583206027273509069735751947779108844388534639597573041084545262029977247282283733479313926419700728085896051516574509575644557853289287533326464461593622406603991054698219983794492688606577694874666732487227345256342348142281094266509265078485247450658060946074332147234161273096132750163279984156222050782118463480814932645021515709101471981991222296146796043291365178037519315276544290138298731001543787960204409657154483139862554035213194418983465957291531649309590582043313234225909663207040410778449593974024116766356860965163257250062816490697867706280461380879470076804943420111639956350865860662134034112043466124097040121130372103317504747435363712582550371261654351458415498508834818724533611888480396657537785584371133098897151202625179441347159678445177048817537655861924126058908938425281251026934130419553101574105189609604598691321961113896673494469237717071812722994122279200410468012767189223998834312671621094311661940702125163387959707318132561496664203165758719623062960506712681822107544541737750635508042941839351997854767519828757782661023416299096253480286294847048528006982636351185629618284505257638194051602335384751396734795165968276094144984757621946602005296987312670982588847265863878056336326031268680918834002107647907235183246834053480017330658447084626172731730711995893806907900667089646633837837012589039494052838735864157757402962178487992432449769419847305153891826400558916142753203259455705812121166598402855928097307354789414281482463718354440227823083353879731372841891373385920080576893869444190345860366259563529238101451999153089018683419938270609874990246744445365287431335767177906211974622514177058844159268206521358482638052052984131960375662386397797488267169416596999375698161049727977825233745548985058115424402032565282091898553764412355478996827027795460783799173740989837301865326499091188029583930024134229904768024199363580062783723130906648905463232423934055716501515044364852567326594740123411719020114710536766429960420374422192788679255527893481970520424654809166027951546122366573682685751738799826308183637098102175209153283640121980890640639729458844137913790084849795662635928431375670665641595229595458785420671556904908108920172684316995436452413761764876556661573991436079194175468950574386078996606137039627598655010067900243054969066410852985539943017828850964487303257645375943469445445017885065665532753165828453716952359549524065772314660731615611023510268799201238245304734184643495558668207503550298376491693482699462069991170343643889887656620356010232770092175492364946021963896252824823836246322341072354224221877868754377903226694378560050401513742824343953427572392208756070344316794666070648929944480151777763064127777173995894387461798477264627020259759027487315285369173666579956695381295817084840417700507267086970481166726174915373764638432822380666827880347462994204901392947137816451577812085699998991521350099822332407783324010519656761216930356077598017812427276974040911543944029790780823356122730122070337155243599560428846295785226117257840112789352765565788182504437733119351682414538589916191074520127994322867518634048682703717763694537483609696672619463751308957221193376205700814552088421281229427762567001496969086494259121309529168889218555741142294962271937118009309026788840972822091038874052166852788685642658475125894462817774793584357872750858949973356329493388964556233041988362239996979155429809964235786445020034758937818721963532166439015242651055254976536038313421152479323132238527867567799892080544071305823305085623156439588641935759042691589545924487749944391322270193456284523489820699540826985553064435290756196151245129516901917000331773819809202461910793880089498993238320225204799256883825549863076408774570308520728679745323667414455703496034627047502986460097308620931240519393501947869344310271712460670333530609026297788438307288101393358134429155492520455732310832497223061343990794682058226895969424659078737621696622932492114651371955918051984799378143318617069446104386636007529185222672095401436769113645659750296303290195716055746019490868373234277563778621440777834896876248642683666011340533836125879314311463020332150101755020784903392838984494070149971921962042075754611935951957347856761570353729671258292819293212538024168383636269583584197040633782662160611567321976106348922534697170010467583835844995271838374311393858912319953110568627781465400631798646704333990123879117687367446307410756317812056435150204729233779452870400868612742006776060722614923126635374242105428070028821070025691095506679100867493495423165012210869506382508287553357803002874383696550488156887424217984461093126905561181491535959771880790404625080368405008326293752848023751876839007537399882999100311220064391199748891394016385408465895419787959343442254261393133375121101366173975251491722377032618945452361487120250418691369662225675560790889099569720201817695800340889948939766775273939267461667516421139933120463868015509766224870253694358206311605408767540977823573594653890902919800472902516767056622449595869481143518098064013763354767060316359483971244160057592895807311282518102975746232968763724409127952051428016780864991621550882367423369816609822954948132311964409273655946314319952294823437499410599568838564562831836431938128231992244766915275514204150130382803973747281851430813020083145287206867958559425978024476609420262700995485405127774295303722601593841003735676594582084657438537984163422293395998137434282764256247717269018106772197070040450623261382808198895447126981770199527534491103293412258035422941118746952005029776750098879384982150709855106465668429525220821697766819261500993609628864355465562661434494572089189088043586545061216931242630881000211125471146940809556677044602799755083687743569291278894357863044126601351908966444956135362737373715496732089372358921779586347411554225821172073246423967797310217173595796720900428892569560282540022458388510414173336868792787359014233784086856810004353755340251449555649357985598717517008523880229297749852941732430740769059617952023549482370893492670051301253616339108436841821016986996572213961744104231920785663721447459372805015030574508143937019781362862473689079327252443817336145352963325882845959497662279322834098896429332972129630355494148835708084959187401448810253112856683715199678516418392195221540590419762956918093531284330343231657146553454814683296187853664397445456061322332383365166325093949496414465876282375658144677920249349665258908762637758402337217163913334709413563343192676051805639598059860966392667440694192873304262543975684908256667005922646432198757271473019185326422956021028041737969495086703627766582318946087730294935885475064789392705450568728705864536765795791176756481259193422075932820850906521756953839722951164813108648924254220207121369622181166952259134200099275167792309966636895320226152812062599423583475308860721122683093961710268131038321074277297345635275522834695053507799611434005147339547493906641228715310249339810074145909623462375644806772994841483204626237655746735077692769380570113873200266217536431304319316752523369442607013933917831417233016393580038947545890571476957210905437196579485251278884643418497219662812579295543681678347639646595348611746981894633922787954440850230859725244987993661076511297769904344663570645289284434972333685804603179962221599241048748400065506984244530792968602100234272396051217646673613611622386440996703036350816789019415235401713479421558484308566142500928989676602260038751944569873714618951336076684781070211445800183310774469252984240376766146428301488217233581008295178620092507963709344357232401534091621290224823497797832168279655870902605685507767034932452181376059781769388198702003673387228639532062893224271646093030335532530974951559598367681367824182116349151848635078483877303371057053616341372338946492963449025830083360351761682297117253922168973097449750394792818549893662780017336908216056854166034521315353845472890058988345640426358595469096652803238859341419697262807082817631456121510923944001842328827278467677210968614893577998187081311762467586823729256800237430854325851958580401777321454815979764204716275442295697336397733409379475468410221568416797441894852780154442483761995550525547323705049770071692475340391455229608442450789408746156221849070375116208604459623450693578668432939544874624291984671557928403929696661488513170006002809296253247883296595878213769148900760303362914922594772397277446336907909484934389621860885289975469195814132109539045788650395142670275026748343084883414779356226104092865089243566962959700741278662342089527427205187362265697350626730394278701598331817313224621617725648803424165123713140347568629738018879571592830102770458770296585830596068313686530610221463014666549955519063104118326920581914273568913972338186715248622930561667660597726501795349498543326736451902657157329040664557798994541593630298930823331967501227426357590923417568632382008004953142440894568457724750509521220158183910312377775778910959162661150730917149795201704358547716814766899757685106234254724015020062218830779962844384623978025076212724861607611317191383829293049914823149924048331642115140914781773629758688271609242732427605636528204925994240254095540942141657615722963041864472423560764866014218501123902547504174554829153383440165395941362055871244490070808975134159564507835630265273707016871511868881820281959448202592689384938609865842453228631277233899574900377196272002018389170903438160618419876308395998209893680143398123650471774802040439013235897138968392478235524678760211706417791671076239982265022148273027781884730409516793405245828038838863405084957606533397668821748827407728150097091307092846156664149448112392267431990591529737418368932002999841766449770979978255643390337701444886460377088012541441601635735336294065790569979251523918085125692875868642789193005212530844011222865083831134749336811728726041020864612616235798890710209828388520709534394381172802380788821201784554066427457785873113485611314375254206570316927358784975650777412477586692517567172460256997590039438302296364276134447782756756803264271797098829047595093056347608037345077335307876584252364041639106185420547355975490876098278158048526485508589220035472085178903208243790742374714021758611650892008503259691231923889097335462875659597307843807421736613752167860461706404385654522828623004747962377888146592393771029627495983328289830461740425581268817083932801953678639385969193619233349386452939576939626203882470073328525071270719491564700722777472476748163684484454543331468908659554598282147124203896242708974301072329488714980414296540408021767981312957351190282422938543404461215123746531870573860119365642196258389584699837380926885660715695601367204210649358256040577360401730923844080541350005462655477494575339781770193962894076900706886196842238978924627628058463770568361991453694291593190221224928534156256016805467652294166947555260962084570677841524101867848645340635397432958316826402907579408289523763240507779677818333273171403965658073742840402989901852850939760446268982423750882085698302125730683535055087028966755920533571596663884431923035290017726922641998673526874158568563002575700327641402544437513187592029353277026795305403998799804055449391457562745253484378510095428332613448457835115430507874256992495857065510043137487714057849488869331948461421600855894539943350909477564421106100613990806288383633545867198006741815889484877258684807532091771922132796338915695688094135541436746141703056090981561882992529247602664290649748966571782671070758059957977545058196748626884449986184488409183081992163794292039569461890783508479124822816278166691361368987268803630203703366301197610889332644404194247316630041909366201555296070839135771293251745309405621205131553959577156646315415009487006910553416116021984618116832757181871468950459863068565725887561886035383151642855386887418976145585130824484865101147071824863169340427470192334144602762127810429311431061131525387892168792621060300409964199444878461104437571441596020825114912774003455730612767782224422569544966929096250827565968768356971418734684955163894409651886698461218147193012534404502877165754427627587294460028427612452222269859093380620539203989401054705230211122445484233557997960883395877318607134687694478195783417902086621265885254870519505848905837495684236795973435866202793870639726666693733227726449001031240769128582890627476542244010369802422950047942588462246034739491346793564943438882574120085416257544292113275379405864389619092001038328168905675043985527508960308644732855453765149326637856595401007035378516158308118032934626460454399662541226589967764050551822790675762107955083561839378783933021371368144329813701587440964965486310549722831621374130727468917042816098163901855328787383408142485130454167279645137007816085875993562302920501419814929114086643805415416656412483132554063592754925404609316285506537586652363594931915991541783546167576046937463784012455622115381766987505924218851642752476761280726585525323289553260884251935214518838489973787144538779186935541190792802943444225747302884802630452872051909102483232406612085896929595828612867770403457248124936460550955745798812284856010220111069147729729757751383918786817943714609062352995203543392368317604354706342821839375262075313685678249043861361356656707302880136993653604462738564122999557600930617271343463839863902308917805444394728185173944151592152172378212961804638796437769437990002255746438431990491287436540010197825877061797999009621256453861827547548194470606723635580433541804039668728987523260760281624855622941272054191241467435963547788309258014087974346592934854513423521020234428205095064061841820438721994223891963296753153764873763740469162779013760263967250744071634718979071832798348516683499674973682002517348641052216456819870273377511281884476377478262058855626291471689500570182921295199652348187637223055197757762667519195648765746393250984203485480309745656621446069288777445545647574744880229887017683984033471218285416551045121841114164979127057793563778974784123876981736947665439707432788749508097050839125629953114417873744613785303520396891905057444077337460611527517755043164967991353290215089783408871112236393046362800535203427442330368897522726700390640623449291224350826582621896670978649551336081161728025037770195915259915966401013092177819654356154088591981335651720995083568622257573325950585914758276074068486440346762057728465575194638645554282661698351674425125672366511788505850390340176869891154839396063334017243977253767886288232613970830587900239637886417041095886842517948478742504548593475423139013837031729949497713988465612729128951778827899865066334755689810032711772775226875341732024157869818897988347018014837468108635867070336519080569182774819300744341208595103812168876136786852020653186678057487890390636191248704173406655849118313824482705794265729147660738759726209755821285778426503386171242111892762435078473022237052738550763721804225072950562105583089331794785133442654158292446253444458648292139865522737848978051249707926389430514777525436483542356341749644867443296087417102769079968048358681024997672046027292870396191304449336476672865145870856350375676598738476664472937548062932963407919259560222972964217719243372101526110112426403618220052392655651189003931839515124408705918816663113719264323492820272827103166888609540759479659962058230195995734439380172172896391644416148194460018522188626881460977636449647101843481744117118715805228113955158582976920854021375933783436032794782771681236406739959358595804524710245772163034187013626511643297679305574683767096062535996641823468322820614355074749410746962556838635103754503850234050015325330470379487240881681009368502001523677409678498542625309353453548250747996030728509530900955803235020675100076689780654654310623893095410632282731542451930228954226419685014104002062075223695897420458730414725423471963784842001013464186301590160523238299423145219262574879749010767346645496744658238195596794978319697210590879227965820019354953244772616252414299695675462618495674658713476697995030304380126720697054465342971084780170017882787567114327650901187876497487672648241396009382641215337524693757110887774382287231821621281657115579055083042547902798394448535640538037940669456311769736454309640534350580051439752654021529824326372028264878556988698809239485068735295423688129914510513903656280246189782623128107129625259458860113969177603315055651153069971556081767903383321936918324591720391789633618520600603226351798465289125810845389036726393250235375197026156890451867407815408030478357542131171591410476031059255296266562546765058264059532642039732810337699779660446934851612446084190315476876721963164835458985411897501004979270272366671140768987324765049797622419287147084728852846509388289269814688540765259673484710291716424349382512120581622387553165304678926938164890825719314158798368956632955448882440569163589519351693950490775277987818639177067763848676628093171084974437530728267325595392684504917163375512860285819089353891572794262687261761409444509262744586621510033799087469407334178604835243801577992777984292054856618714105883534566394515066674129655690321208343654768653313528073730390414484086826974677270672628419545816961574963682926742249952332849181587115814981884747999457040299300811217467991292072293924133871464382433388118765082860448291557572528746216423977115871649168031586134730120904252846265897207412790025104562390019167606293934859002010039344979877023200235188684603392922919164798947263400031867855684665272888389013588569319845903308221006901291400849273724081273233343263260912714753846463610645810722556763087486215315275251066679308638994182681735072120431413641516193698474583752501737325883796587975532338060438634868690019392470513979842953927598055887351753707296209697224575678387730109467181339874147195650754716135374443606828211603697454325264138268743621661176678994210366141211874725728913253719988057692527156136864812532953660381986211028168902031759871406434142305751374593502748189265395814269529286622956166910559962139397575216952189400009307047643097972908763480867855794967601639710690368324526893579953548321625492705645308018296665471289927385731433274698392902401906723576906520725920231320837729116617901783798589280726618135571057846745022147985250951368988175619464765610477454051337139337947195170915444547914066559132300779404337921392105846516912547571070062776866666537770475648612746769079059592741815260627457916189569121327599358979579585005913936083229308990455277907583220901742371183671316110079698089056344592230767765282279307521739259314012540067548347497764251184740470819648653623481402930405182402745699918947124556708798325514114888985844359904878455250687176247528970448254311451850515081253130765519059441460600043285074815025676315850472982465470013454858200481650744535026746648587683112075845056371442266842563173247307817444945908374299104982586410560997306001352110194276191302326260476550319119075888218814845712344769574347077233719969905342573798366505305906309137740859389148971423863549930095652014230839210240096618891708381980443328790852057149172607591539963812381358555014039330820884924979831229017485103813232230590874036225145330637734265048578327426146358333851789617835106540768186882804747262082632625180600635559589255216129111361967921680848233207046419783243828630342788282177960561518506066461678185412890526548075286512827389167011037400165406902152363566962610525381048106173348473388536547876694683398167521227743828692927303430531689171689723296018411334583352061423456407385423719627189924281954396616080653490843368148856264092451777934974791850328376834618864384815431408942233522425596688338201626423461312532305202536422162161446884801059467260516451535548302301021132591710697849543997845738315627041068572001752389793159088979039114581745350349948126994507400592123950438358527691700159630642345974096071711572499150500361157801918966205923960865452569249260314939074992682049929336462237001636042120495124838855391545024985114813634649172592549415390882124667298312735064951510201846092380924400609927862981690326981453322159088550236213614879304854677592371440067359570949943210821202069964919290811711690649746950103673449023449476531300795786857954069194843527058600049648163706094280319110590563194535700350958302024512209208894989021862479284679891585628461411688579411111806659549899425063992853305469490147344141329808868436027775144587164346781006308616566707653262962863421286297767683577853196377727869499449204641490569795276410044655455238059672909915643042146100359095852792426699426648996785242800217048492518947011749274287119115464039991158140348539122336700108599561097434870778111250107454571658688174461254016980723532843432499641913760159698636708200107511562143597084415651391682767517908812240585421580847375837045405021823098177722178745530527103622909584560195783374024848056920835278681948332797412659054245712715824761053889054151577802763543625133369240062815611288005152930592523831596932943983088217194082920184506607538170278941617330315007373205848383643350827430962193590240093339693878572696439725477874784681008918734228345460289238478407805538654106374935622456479525246193568468867794890771015744118372477999437699067824808107468234315749303560046628741910355165186911785437821268605887960742680061554935444656920804783348177028858901352338510292509444318205496574616595640007035205488416614104819407496835254598848228746414417606394122742350697948220966702376174310425194226550261974791857112371157206322261073670837868247558157142090878574030363049875101355301495896915647557676814305085572578322115517955209769839962822722799262612627948166082010520676935561332408867969787581761413587376120481301565669304310742652479048139282272729042125261320979267936320534231476746254137739111656023549865645734836516545693326433289505520672915237902460173534921553938795213292268066591720007362797210976955864356707542669073557152225277041791248664043258467719724361812421455358215631698344255820982171461300907755085187802039626899429238059179016423692290401967073759843044336581224859379784504221175964324275920243646742957584023886953530645407993681740019421105190271318424226597695092326642516740879261990830846143812498219622093768347537249571684181307152841772620429256505862592449121886658496220406970833256395695820109813306182612111575296509769772806107765396574177710265443856063096814905174267267165705676098075884508021175091933064686926385363587346294356190396571611529788306012899092302802213772343539508599916691924957590723408796042036440117709890362065002207921590133326237904804591620740113508655921705774477620692981343576981113207138682027814137114480096318893511214594435758920767470719486625081201432042855125035983514879024783167324404118925326785352862422705245298604246119230877382213653025556434999134917058363638441067304313207514089868942787598527666111763829418806460463727012472309004999857713253711550564894248605130219684031216472031568387137651731381915630766746382940263550545265078534858139077284891932098285506635245301852410194175583341889258468257188245001992154673296581985793874351224375270327600606005202417805309247518676824051739112645963958668529605736096300087444283034082327514860836777792134058705353286427990355377688624606670007846097994948159655196994334246175546977800128568781916590941629851216190971113834538025176180650195003496695983817744068074632476104712696710042733927961335521847055234466255734656318562785884067445258877831397968247825449677362177429094000127124649880442749667448631685985715243575006364504246765603168297761639420498867080263544857181184645542155954349916658160129915796168012674626049607726200262380520758197748608232267390588697455003934010357055691425650629690290478241152570769677695081546966003233487750166463817220859545392183098288645818829844714875431942288749362999690877380252814970987482047362925794145712165959535012594300666126440212390940221297441073778329767839104169311722149426574083303615426203685416921074933938598828394718539440448576025513932303421277134738988507602462700192112543261333762116852022063153690436480195907859037146634619351531954385350150978768142386993167551696907867450687749167166720089513943461115489474569847944808833102957148089320470044930050784703108441330287548464983979762957006635926106172707153319695468218370927230213046809701826633062184391434528339234998809054120781775552984854512341285755821016276526217947582815597257472762199271491002592030120294543595708373637528680180809565921586765109942195188469878082529198646196372611660265316182407181489290251670836504832676156898724802704860029383528421221327861742472385828705747309502468848330047946436021740782908258243792807799529184400279658521580806145208688012376038245916747573668802835772733176901923343822955574946165798514022870811324047918153227582151953438656874964083502783488055131175714923143865360842714765433673110286591612990669495900006955348706995667606656943812416641212370633244279625657471684807906727760147665302703885895341198596795509128221013389393512463056197952321398965267919439519791655233180343989112884498894762886497620518381070586495210501495653179665833240301452830937455479663125365666026630942665942927452226970317566192827702361352083322910079321837381160389201073393755505004973379236177157267470231612379233914053783952091531103804181709560477211403610250007638822273829072464889192430446561223088211118839572217993255100118944449093572834769204711804770992177106395549121261110307387052815263950587133871576728283274083169460286951600306266103221202264911930398264775782050304739153535413240560620468139750341066126063217788377955552229693667430081911490117720616466611542119070488335918555254926211856245513883585248144078676282729749571742479132244883453774638279862910362591931605397209263777843201277711239710851705783062466817894658119403745068885739883704266312387576758643800313803232497618956892057763881098130030702807506578411708159073907190053273201840165927764424713646280250626530735606791779135681702692442093623583915833489488026464330264381046396204951355035099234224925132191823961718139257584302944639034230694747030302979706048306015844711345179140249082554884158793636464516358115316984228043510928954151106356011719658489333053871309164255153843641972786034157287955559346553802439256068597210360230554139730824444354988029971380510405636738661289409068962866774308594471512100677285388245115310064795352852369427756338248440543326033760482155338826864000913823345541989550813039247313053917095716460019020223776649578587312498411994321059213420098984382918159361664873342514350710167506255126277609994000585437667155298276193719942811757586731234069974994624489848385852757400610252883734588974958848583632956377926108225539490303494662023182254196101977885270790048825183024362706728903296756522684368458192580540875704659570159434047304159658115697067346231879607342763928720559043080113704762502039503500314739552126103892427441870830358929240274632525477278425080493397705201308066080800853604387755978545504048680138141196106218833377933238082422175297712837033065177825973383259415686208673053207558525283223184655058593058223863400627678792983935924362902019701903447145169492817969987501224239456442019292849941902033122879100395142893418688762387829459350101457202906699204234965328266670674173050593353136155453638036441732394375816016555882160552828780221341858237752520120810006964339788764202036672113184525068743344543175132107959359128278691510090277832982644046887751565764765913104831496960172104369045254390931927220299648760285662552411591678572753501418030180253533921275278576650685861188875386389727481829209449395495859727389688585438312247730740556478438585813918322121923533505966998018646587229702854279016397745114739865445181357855939661968041356898683143241012722747677265618673909914506834250023792986663342518338088649142880870584110907203122334054547458574417596373152323125577249305363952018348369050874928060529064059165401851020183248727735111380254463704828279195272714649562695162135108385740811533397780312204393992180803147726441927763656490077366522848450633161630133210709914443299820634693201233110032887863072539598914156567651378010320284137273009639809262103613354699481091651797576497277469215835762399693546955109865165362624326911064181504439939058903917373454083473864710333801671751962358816816288560901955829209167154463851673974419187418671045158224362216553404047013172566301422228118837913266377689872825004981379417614380458982576898435479683354887979971101941060621293468866909143425560882866406828863207478960950574424304316827219605188072552723597632557339202868488038488280072394784162497536544520885165808768613128943133102541811197417275352637607926699268493439479246284756178248111770802630053890867019644773067990444348717429765366803680123043006234033219236440609929294279618534525810265771333640885817032412092729829852973699949582200016697765269972856597690425856499585534748849480085145384334842659232814190385727047675404679794149227602356424933763005131644022567501035914116165541482022669087120759602898593009743236005358443142175521345587915158438653684546708946460999066324400120773847465907546364509974422179904449785611439515845974569275749642372281209927253898889003864863770122576415895551678161974903582476107548051122501520263423189059997221170282279291368601254126165285612316068729694804719374756474259971694249855853462488301755659201960741093149341952265779630080429496619562807901693536326120410059190354502794497045693346763225849049314145112254069419267649601734960086577882629815508082841445144517470416097409769705460448160718048472171927536981930489039095356916896457636083837773526354267263646134718693985156466622178088421719891242444413220762526834753316137967459642519364619482329269445261768286358522047207998398826874150749134217504597236582349559046262329045733918406249703412525801814396247788956760031731052670170801098599674519962040728130317013346524507592413703223662696244876939724719026444728671638996203048838701359802261439203720998552890372636039021215236406753481352042832917175418389183691562134263110076213617254058293746871586393514402534565734557607674275638708719058774596768655463271295929829531439788832001885506324666323739813243656181821718223914697813069707162504196972864700582001714976852780206334638183280875093907856722942659931871665515638857112174158564034681092270793745865922396986526438979602614148359047800257724245326267835316077931972976028691628858481035454923047011699076036286152228561731974318424028463082848712541726905330617248461398339238443818964362633616175070135223889286330309951492184877803646440796675797233339261615101643414153648702222755725766205970766517082461634894004382526878613738839378850597819499566813015754857055914370375774023238800075957405865395490755600112350513977651665839638170706978057528066516701960058476890308869402315859694393611268594620176375124907253185664583677888354859388222520788579213865833055427690597388513712183542055106382482340243621642823849384601013922376811603615765592204482508653007462040783414852384382278446066403229304777507930480931811446520299747299130393152245152859691278781856546559567116668195311345661511332102000649371323200050796677956282117647904794829716904536132182051212614421065317540975905674622689314350724386883270175377772320646753436113634207333722545821889673732489953994950498300530927216717392893503119864859884324169266523584022924295247089663622899482357746685246887998956337644045721545387561926272199713836349104267682758367402857392855619175067188306432477408075901649728533614010508347242949653866937968218474445541845500093384381948862536074813046230927735008902514046907712719660343604028460810646162492970590783941272744285928002648240621501636815209968425744993873760137381159916894344025792828885000389671200180662006220570644566833855005228337315170212223369025524154041048754849360492587407241822198030979128263313295980714580214741000408591451859326510122998323641360479628132526305419833016090078896221531174864421758289519860665439321520786047954169773423369853830966756583791514048486937529950052109874012210272567168755922281010408670835506227225397760488776166721616398673076480607117408537004798594233507943535920022947024715075001546495719759736530212852583133043186244990080318179241983841187401189380644280242611889989773787800736978389797203286234570877807816823839377640166048371931988382189231370338423497704423040776386124228549755600105117505818287549472084843445593370492614463233744394712970010115169161305168716093046242641588271488557477542450679032054159018064328164274189960957416631656373957509690044036676763037368249447857777636885752960813970230436842399624006364249078944620396981955424381186350932487945718833361068969810278613698393004841432893165484687980921471587604530700513502666149016515878306411353536974044440680671023444154411414740324296616886482379379967311750287682662439541105411601056903900132643838989674251625967911156060006675330271713847734616666353888996547400759308406067586094753318080770630343726988218261796763957712945492686908049664820332354233188997462235342208245723996007071371612635829152714912709898623827914316219791597788639835122783313798378293660856286582742317041548063148885904775140901079035937420364041363635952626947019097506073722620008223588981824903037848081459714626620688672190556064030265603446517677973225131366455474652518341541019263663581981717899403860009255619711972820253953484203284625822290052551000532685693976768279807148822231680111151140672532054777716584459397803706652773314085769106371111929220157039177401217664419136239030004398456227765833749450162673480032573726827778874578617915349679233301356073906915597567802973639147176947980600995987066373432200272696870235853736350600977624276591212261622908919108336512676924980184981587853291904901551758655372258642893391090348691650175939722352515865459557562932474409556819947356455544667762683805812344245901745639700721145542229286067477165633829004272751189935241752031152695912483062563213485992921863539701788532682951190591521690305048298700778968756858044720495264884946131443282110685824652779935496477000634780110933560559659195963104851051116828214730350616433205871500490058479844025313138725838767427331701039748287759782014998394690799027921019469221644171350536887004469364142186352596777019031590382056496997903254535326427738275527749537315801893749251540664066469740005598738669721009014787566676782122685000517345565050180229443467400209035410313965344154616656825546857068944925630478339353733583559725526508973552289753842116843958141189872071440111718292580525696034029656705787461466178774224547081149740739593010909581747998846869968924620570513457820952282645530314266343220395375106298364698933406801291487498544165183306832939870590014903430112567110050864550368959442395210220584123409432632911031419667088154801852333714590430472103767867931679679172360134869864699951000790906527069848801728689973038168211661135074559593016858738022348904458390096594215062503354399563299622702384338824434166054667125827746492877349260828511287964097980013425476791086122341877482789793521946677971149948313562745667667887223368196673407085744178650336866331999336135766663879258152665491952681057597248179070411269090538074878133236778394311960473496919555670141768105774995043091009517013305977201187632987969871755342719663217954539461264245735216335514103273832690571239631096111954689534915782222803387556471265934852059222899479884805017764284848886473490116949754175527763451235810179942993015300630700310039824634990327105276052623975104940067735511536444038800432779290358227804108987895496675039307933796544406243142085675736805302448283224679622376368536708427325936219067458918993760050752861196766997497438772114652643103797446361140063751027084490105964619770298592078513059061349979097064496525185684289342081179357796470535830012314536813245750179697741831295642650482455802253716746590856086198982274749657233615820992586296364914391769259445721660410785829387039804830734571960148681702056300188398027544432346068098002018848138490288936548948455940680412726579229661512199443665303553069123692967597009325052151131132309831841286926416485940943361390935148043931336225173837132656856562677541486893574052967475516699182643006560362323145391864312431908886641217352112481647012647698520194275015778297392979938226659958058137315553274979311839728902839960929403378328924795351317100768857080444726871713872060026423096245463046088767343794673900903391281049392851298492174024982292087130058514933988412115596754480034449996878171182316429410977566747557302248777033169141624402373141798947209235450750750692348458800909690789969788815948291581034793181426973699081164810925645406248717355116482014711462652838191609871111057380332851711204515892515596554693530708798224822739186993637418510882780738475720699387281077926893358447247969051584598380486953346636225470559052166912280330574698582061791200971432197793276832397435276247878095102758694800529212963871491902183185989900015065828260786370716001005349623986684019113537185414237956153746650422453062210703169503108639593448366887876118012357640337833136704839272825511653343882748660633970722290758116467592058733648426273489845112146076888359448108466474770392949538859844425361165606468298762246008985198049130771822641916182260378032607946629452140556660132206854483068946728328211605063724072858676642627644782903248757484598762915316602915739620793456630270569697244326744464420907370339367625759211654020213877687757574183124155244678186258149443755119933746472170959832162370082218210770673949585796492481735063826161602400225642221430341315621349280791108653151059011740086141930180213016152620346325639173964257120984225820758298789718405439699468582371297794793086607655393457653172442941577654563721376171648360574550833558072406203664082266921248027641456302812391134202091056655287602818930512573977928382310556222962648162471319705461349574624105685560932418195569855386626111847024877589745222054264912127979943500117850072043468945934248329595917224445057869778277564297219564837820600548328348617554178840640642910125459870075038678651125804061682174567378414322821025067843176391111418283071399776368319842498943580722028513940147255598131093181292961052069764624486545195863990326933706309852292321651509239284541337807563796298379520399051633695358993465176347746664096972608649857812122558821438173164027541972279066538649521343463394501905470637465359542450619381670104272931330512952851732818446770583096653831415078298080569189187440255587844519983816186484393687577244408428501660474959078065715040643968098226339698677490640631999397290184242587205104575145228628053717550220783251185498614015472815335195072526182221989528537773833937442859954002320947538237987464955826062856208203306092984035259574740704026719135128378970293514683522784305638021481075702623561916754688280949604666905310909264505398518251253130285467650069909754148113432370225065507780346624501086635208591167410788191504036278015070843813449404993357861137558873775290251760071358501762347724112669986015908008650995804928843391655607713391241253793997643209052574479286673567430664720474432011473208503290612556182589579228413436816240373585214453665430780840953605254370940599886415964765393551517324822444284144810206808330154488013454837213817253655792626041325325448637567930471041265969713977030988186540978234649171210043221948355393080145679680732519779050826096678036348782242741124492095065847431894452875103316884624274129161398468082344216467129417713526479297376222359608718512551137064164770057177825046403377299987653951606803470930790064647102211863548084994393149131671935841291302764843784500399553333783545070916124661730122742391275476997084209935142461400189187805412231130018294519795356162415901492464612848584064597115467065423882025753720042956391566824700300012156392736476014115921408956439671998834170556643110269542852648159773520710492072751375471956656231409546173323793958854720627894273335568352438378448853280903377735262533241218574483376738541155765706755460494996885047814813003088233974649295170368586968892334771294954010285254144131749072337296928363101795959371417837288290792598109663310337590060203272229143068837165940503699279477175505174286656934340951502795482053341356826534840062438832053704829848970168258724181470669644629009551702969817390172967749041214208444754000272869800855604719912666007257873880730259937969100558381090505189591998015762166770390653188483042285325488671227604023178778153214298002261601386324012854529249077573917135208803012727183836183944683697633285379353925577881389347202285101078011904609669668675925359264517795907146949770586426443283293148927701775519333235835714426980945865268599298134335883911030811173538663424172726664717365356953289742673280275756109750984364587185065793665885912618258307237021222353720047244365319125493873022251758944362045699156641177699659813697845811164292418741373154861355251147886410351823001138725611935127872929395672104976030142415427970398901816781549875523411000481477254857812817347689047656439684097498495341980065069618552648765957151229435032880805164091166694010530704420059634228784377514726895405198777592389404872685460994412731502129875080950730284514088264524109561395068619833761451792736099674873643885526207427973029717219220368886917596063792855075676210690145224241588189482154914992247869226155600979028920177539187676318775783141584118414075966268942414557584888828543258135595249829009997312069107065834953196203555685159399514050047993382457831542862347670925271500788395386309437843982789558989809638932239777736707604910498817184467243381969426757947795030557963812963831789923665115964875139468568746147600877811032546681102371255525960743764601602984397468831253776516984306174840564385045636927935557343268044315632675730181499569988090226331102413092026910133272606144923912025198243547547340126210233558695873734134309819361285250609779085826452844699942642014317755396526722919679183861165472399794967319244638553349064639293497350813746999988572160469963271659004006113540306424787044497743829000419404484918537868880821080319454673542245737083856023024490642789574871545886976924688703651564822909735160367683572886323878271245853113740080037184287541025495387515515490486257509413942376868720735195632908186663968499051804850194975472779699192736332568749049850176823209372559015269802424149972376794230783335696836910334605747609518514341090486930772420727943819176950142666469475767962142444678297610985879001360037337560231670787540239898927763998850186948015393926851133074838285856317253740336306600938977111292372927864425421025021255119445696598859656745355359602353845182772799910779453584362987978286771798078654742954592877294269174200735480962408559547225726791314373821829453516013175451869614790679878382777553255478964807906855479360402189645487682569256383300732121804929247871881050073988260481400628551123629895808367425498301748036127053860974796700334489324805955231325528815784447481575637628539443348193515804455162552782292060114440681823881732278214330093838377506649962112129524269075763114267565568373758388199887512812854249751385128638037187135575074638985021408410278997712466468259247527962703953513383814756281510725883287808977605194463786856368580661301817682814012117051198079054692165086204131814247726317521527909021808492972914938473014573908074545310539142605240822029476920618127087047842514235284475399251934695591983332300169100015755812193128207876475914285365488773354598170244943313527411041823105610078544006565086553537958650956794555221883985472024301753245446154778887986243563077123176712461727772285525962702481031926332241989242690160149210658032363144789480181166367009919221392598032899604302718910496447985388591652305879705366950468261319827404489005002452322125441368800577006552122464185004584131617951050327409750047762270189416140305020961298105081057616498300795423477216762883888874959035128636713395414603580807536656016279377411187527436416597738979121599981194272353336116048330825746080617309902227007317291313138354041455008873909577389853698409084889383653824968336061771474974133274301749278676343597363082611573150062239093835125173600303421623042305220925691346823814801285251525516898435339676123312900730502945660269772782194518863186285655627933083102119249698058321813882760855019695712280020619617259265713855219192628059815222601510094411602837082203994430102654322536517886137239420556524221721997954197258837504422205629168706301274741007679066402505061048168275813355104576048166826896747614398984887383722773684502479625622744257435105693596745662466333290915696380251732489176989255785130595607925789126263370194787162690817067229359201444746862928704269661486385186818543208673783802665822766798922668644510153939273335668936021907941989384830404933357183963922198156454155185652123486741822432243582511412090207985161752822285405047497179336646005989997452734577994508734227218690744211966578942471851095687487646335086568819688666313277913566275418980869015864752732030354955183581782890087250619462913520327565270373292261066252285797238935597438165746437256090896139285843750597592175697745627125415925446160879352216074852324602742182464461349786761880944049332270011340553053786867247051383963457484950462101286020668827089864731219140012732591933321215505342758591102390979898220079287502239272091740995070764931864294864597098585924067441445728782593654823680722297419198506732596415721162401358274724401732858871568340001647929093288208869387464623550699184528336320422207086380652813120583863254875564648473761217170714745704383267027870948134864144319661277174944422767832773807193881078210659145097009419067681636523672296218446863701346576241540804814874119932466339189042111326419998244292242278882261750346526710593804006010733534834136386119901071124075321275317885249421457295684231966437841191696348108488099003368936011917518296968698780589147008050413065608750833894553140101155038333587482226224764395250585989840283891621864647787552934309246330615855644199073433566055262955955589153507601268786272555285524769207715233068386195071860512561909118959270802570437204206548232629912515295609961745850654130632389948556102272330114473792143429349952384553756264581447544017723453994651511441653124556718093712092025827292848583434655223049953747403888105396366723842315101414599351511524201632699718731897700762538641799645904447030334452652781349550555477765657601305948337067483556256307852824925236009522800070694910008057613661197582808018919385498834634728011194808354253291327611781227948803415750701328880840830807959480019891729483381147411836232334307843448072570562566960247818800166174199261247462338952965148584445433136813945357460772193327621234444939667209517414262054931295636032741081221926479545323265925491026961528599946452318984066230689503455421346185094089388431564573648319919317526866028720383113537970091533165193308251818725914642642441632282877893462947272096121789665290114761577116813647990114841551834642764783261242275963036553830820405517937383951414171342797490625798029697939697415675273325356313337996426345690681910325442558293611002839120275120739626494873275101028043769502434646231740535179202670639794552145260584767836382401825086880099461493054354546073519524061406011816959276486898909978297611621909347510342841449120621063389525029194544455742389409125965835644017140943835239769066030791716329179252027726134267056978864425580427844840688233279964272206525093098007858568633241765815139670184089416059573149684768269436607474818174784434055664175391694667669108733416068912798938980189637226838747369191360850238910634913730827859547327709272788738325142627745197336545364722347170482014124461779120504049571307076908761743306147301598995356520919039104955962793491416903458667125029631606168017593635154098872719210777091510834820076871683201171204020724613112887261513141264639633664602792230415491245195850732280511597009118943102449211679155149300635200843543293210340772831868835702212677551689228245542850000663576153364361728575532214688396980414559459608853038674215062809452469637281387688366459581225880658738768015659268519148002402916343379324179965389570044876307047013841039091648638181167561772973217577425498632646465183963111904875700352071699819383812601016164464621201189313913395957117314884913479354336939571834993488195539362233968733317826300539233931608360558232542732561426621016068417197494006578513795887172175223174179254697412384219035042823571091119406284558261472811179951436264745903731192944681425059890493513927324313441135517460980248752227064058755227570727997533814794602657037150082368072271125784203583177523038300364577612242941484854279399715594924237464924536566981430260469395397145805219611436280167568188055289876188295844483926594409136000710884462248968607336961831887348409740019762689535413124709604819858956717952388332217277720426641063755029198492344629660235368337674439131592061516921110062295061565041963021529950560596212979445406119137587293588405387813024925597157883562962044846610103023795100788873735028630972600842262406426886191016336240384330050897224725037892044185623650514534292740846964266143829753836669446378787407029379759427019915731586114209301114253449621472096760676132574228605353459067519426679428124233988217026294126575612180322491607995264649383281676990374658741234827589643442205656696051132042269804770858694745263508226787148621018860022367098407007460213791156248568374471869722752149536124440161570359344117093634856913248803486605283897087991831878065023044903294037738940217524281742388861245768367189094511252200684078073757349560357998844989763290394624133809511002959101494777408417149869351697743959134982036913624020396246752337317946916225694616044462371866329588468329638396370374988057806970225189016624566889082668905275712078929292274829703837983078277572043836035134022932307527596048510251491325859379189525599373030739601700149065009934468665707409856990592035490900359580011193223698056621144135003346013333108405099437642567386653887719356545095041290071273606212189800491156387935421985191849032725510781431695110521104876018550904086053111774675448307643398225113117012302041072156316740066342753664291821701483195073723745364334555655143730509725652681890880089008736212456597099046551625560779148021456852402795873822743250885717851771531130152547485424518575823193071902984425345454010782924666966372257543918952782087316043688934512392969674804930745065258247727536801671448900471093612373654536583802280340798702940529933412509291721767375152503579684370807662774937250709690386458166673602710424591580679211245889417961374118202684584896087471900457723658553828382304279665957620906908868538069318715467964065403319293899758942056968776560312427981736702226804471097574990055327530649944812983666478675253033906802802848288681877894363386876592339384023290898678872897028461845483938338589245674031301811459637931628270950166444636504762488593208177566009410343638108004243375939301694140107971840070464774875518649545490253800671220335880665014410638453383944832797610137659825819972488111855030535176685621187159464829333056980920236353537077289827425369389872334911370566270113137447559176417264365379654588929323707097937610047573280907364405169910682636323084897335072934942548428146425637587998513590928012471743847577421392591867979835846726378597473979651296111141498515821469846408251698302718849197971643734782432205623182841989905177109028532170471047915196542058632262990193316322709306602305847350630750729496324753214890461546980083764775561002822843850742456709367367622635190679711268006700317151055147286161354621022083718445320535216981882110653496196367816312164490893151079292504076739836439706935935508971344691418323084508432065395021795241903259832772610938096746040494500754348426980354949108368741423088773669521790417393500503214653402290685192678581694882851048775642054738283094569498585932068354296460504757848611623195115648877033703378582211482408658994927653014256184580027031075026499703955207477418693566867801656449661884755756901483145073778220351646494627606582650357048798751521062035923990207079171811564233820627906268468789516455039688018244531062533110306738534534660006874051104052163757802504061772659070359271681575166036012410748665372021064263213547929994166879118872078022481450910034115280260487512480781243853922779456760271439718117311372577846670744876308199154856715644444978178045469151638482862530892057575437822388929277815474225178080114582241035494536614751647389474762259662967687402124523087850918367495928128962827678541629127935485596060366359659231662258952614388738809272615354607167537710479648097054314672643272627048387632299430630519124122860508447763408759265843469000352386422164070881479218580781507500476335697979545683161690522122810471131405043041043568626563254178061875388063228011041636661695075436845100406122349156011219883890787360831603710906199162737354052640561694853140804817758657633840214219177093836993156558786852278027512010892835141683812207577718509326641691988581748025375829995222659051742111194526065327544323870734319571586895250438406847293395111479434333110093649115609883755943594675430792465054584582515916718492551650155645748439377536610800236374216785985779978268927515701581774431269406701041438385516846423163545396504376037601626614058883394474196234554034363183812827982013799455701964090329975397254830553146598167239220481970253655836323910693867034542661527610058489920707555278683491404256197474388128979308871718105368730486088196419940610705216559246033441141178995962870783191587421931823589903404751503652803821545365475733684318418260505904434465392948947817548914846298832512234062469770513893989589793941345444004707381647768459951737874942223548495665190722267765203113104673992349786556463986063822214655729793085082665310222944473322687989172419666536979916803009315461188224007790472244013496517426112972708139004479091022402410709046748873027996022533844332216255102228644747779787755861592873357159769906044714671400901467333181481746621958674528830798336470683690784742060213152004779070934325873046822106708744145099124555981110163021847615856925300957823185160593506385244803888386040005476556597116119166841153960285136634157695690211148565814332027946830034609304973577872364140247265704403184939347729650805530644056952765030445841976962325268483159171727967001082517022135371830849083401162167555006801512876226500063068168764095956090721874486732654641756009416742136902899870207658610744835316651179367117606627372670770378877354821581238214451810719097504532545169512977804680820909511034668515850396115173986318706696372373359688959375075417592761196049764875920905124364784908549295609820430176337482534522067975258328892620694473467660614482278444768230720606474013619919915984961344082611987515355576759485166307873401297463139059302411686761585216956680564794878951386851246036046718096493081584810251789763687240129519617140917471476489697420912776133803187877665922588329822259483258287369021380209309400289051655634222807075248986779161261130500454800494059967590312768342309839993547237109196896872539269174510386373331038874618304674048688964965949042729171125409697979610760683145345518900084421211358379893750043467226199643238590618879631397104402143923985050958741681643477677760171853251174340777822411477164142496453230275118799330561187151011609519098067694517572485136887287948943401975236284894781279493523708951388407290114601399071428914187253552518046501688761573084940417358902325276202253920608364757776586283979544062282113172270989933844925986482898303343795890745819567304527523139773854501345634310414887836114041507511724510705883648125174478328413176842174160972243798514624915971332810784021172782796411172479602372269927338611126805258036019263478077452880794622079829326279867092914060130520606740718854666987215219202881617278666393883878092294145328675113479093601130277185930129763182259950894083054614364854348891416289114997084253694999685800368888218105757010476718744953162212957118156376492547965601108019612265548430864122355467292264227679594234527020545979773555164286948040123395680470960546017447186179612726548030453448001484092440923658355937565826180582706676931506782930012286962191994751109016608561207455244603196600495996527271275644563581461444583954120846707968673037798723706753871611417163697672080598690485365340946763609926023941325815819489675755881555307172342474474745816270306067103547957986680559804978131483228461178270872397494841197654629729689375426985038187459015018736527061591925262678713606635615924515190924517812655697970321797712168806199028535859481553174611680988292233779195723188623339269289786585287512746994494269033741702996327012603385473661325526793941996276499609240179385785389555034080975036092051954476019926776755420775965905548328209638528490395837047994677076570849539154732654026253563774834149040318360841154477841894077721449825510498222378494536901911280489503554803673145717691346948700172783069545152764524369863120721998696097101392364554110280561079155251842819599156116590904470522658144801426938672353536451877502055103272203820010625231891468332957910191553244180604622158182125063477138030931336338641557705280238676160130229273981343810557237622064171961784232845309143505707655972430449960925667704739729663925989985692411127679546955536370368439622069934725287436110548406649176005595227468729401387287918358649270325922430833180084433020249612152008265624867323299000344769137464954989070660922861606656953827292134268165164081075960076386713643168691791811547457741422676558204196959636889310902004789637658701155350963644686375996354664890256432193490814270667042119480645403202405244560302775821349589342164858563945172148639465302744399366348364595910703537986330690824388539424688987911427431423902005424864054674001845156480749155200821684601467632662277923794633432481283848564951076459953081365885765217621228908084669661803440470614836214915715833326976376089187357524169244121525193158591954879693684666246059177491261931711986696123528524190286735920738301731259533015757072817872254931472477425179365119920537278938599849926156301806273302151083888487127845353028285911587883981881338328026974617370734977746615463059504051635225637571023512568020813005955781474349651551058528901445025929711121251892471803421921818412044450719247505753539052110467662568761655834199720321933737615538780559203643472485298147541764493057207785740853737968077312368119640220509137587261006574978934238722659468930252601247166022704656788937233239341822312507298979611523929215340960199136765462131716789870349112261853118957350223456257132667585785093774098097360413201869939514229102440605545408447578671004739157070356709043568276645486971604039350319050780232527315477609675648839434497926254344891913230483509820345921242834373887135128327307646296533106686016968529255211549881192315472998560250427244303284638331323266310513454672427142843502158841523890364748447209982099573659966867358801455705378265174185447327594934960199367472673585255411367172097586570806068026999214806379279414078309321672449460495986307962472324143393967747718458430917375196994492203112293168369038275493673369964804989204273959645664845991808571449601428595261259618859069969488535002091392299480553649338600897424708790111083692073633558104451660131909136052761692275533243955420253920515238223344363741440197300558631293982826912773336301688690189099453118187324882148760653029752304532807217206092064782193218296116835229736841894805194892304938063808977399443764361797896098447385568464619586549200044891855792874740105715615087997133269815437885958665401210998240352719818737760595068774838315163730744935354696932248034588714110869379219766275621279520520331632742405297728511375929591597775572553206656704217798924720017653735046293174276462582433863602324056007543342741265720160928885144432651270236457372897722122097897250811389937044196761349755877654486833080839629867801418351626799806965242150310350417281714302673339070828757473355082177950850461525726003569142630498100522033080287102224496554433214742163464040344782288052016411985870415946556176626482215602271605272816597175484859118972591310229860095169088754015396140501615613656318642674287212663576050153809121863494498591388745054304307749455425719191364510118287758523013605529337560770609105235706629724593542256003238186135489271569364023257956209204085589536773232635557746570473717224469228556663582932508339717756377988778239124395682787183087429886417971831775649130143615137278590974098236517950583551817752273088188685498917424746432876081724945750969952408535344216323964199965416886133724901264177837600263334242177907265567656736000857392896974932863297033210836095127730815012100013882203948425610496531220517510805828289279899225781957599080440552047359767253717288873330811798356874800650453809330017375356862799438553099001165583626871114338454128365470452779820471610752900796033321106592633675971162593592032317214560674093016661282904330150245341037986528413180382829329463743912567350781334793751325948799032103906058360884646921901459480289964715634360605832070264596062345790828820156475259779408490810707390139751606113734984477538673864375350918168346408514191272810671535527421786539553622621786643382639268745889404292511897788771756485234504840394355221784010386838640024865661232765059911969693448759823373452667713749680802603565469573616482029529313317269641439931272669942618770878734308635726207511707125664538549269761211905805423712830238699114057243209445573364342128688723020231915029890723558395939317153755153691256270527783665266664038505290312915561852154046435305884772378991937785013580954476625449717729723582204259271943049157892862052250307904853382552328218004257591386607161543251250441027825244260889306219020366066061201879342917107642146615897977736857433891233118880808100814062474008562852198956569415044452677833917079375693593389040999058747365278459717107697914419054788505789626418353386818462606230438823799664788552712916833498273038576682510360313888054820940794300047675367829454423195303093869609445210253454700821085795444405830043076306655234985525213017063331069436965989510030344041764876825948463343843143709012411401311851345538384991937142920787183151322596770097989133815216517490373492183585603791631475824110105959710314288133926984326081751948183348374964381149244223302595927836849607931014370354507826652082378563229152331003861522906850298363012348493214943495524348234547300793019516285478563750453331200961333953725653915471664263131478510891220863064134123048942146111821555020812369280505177999291986123737619069626914566095172153085599427333460028781666234417292826796991502232191219548447805190474982178955694363828087714766160619867807507176633281776316033985796103522319399659657372162264742729590686163194685628377896437524519349311844493423898795542860706189020050718391316152113636376865378601062331228819770233552061290959693108253095181338868979849587235584273091048586943335754256406841176335275593330944908766399313844523616606400197493042769582401227859812634284985620794859806391768184028318265638951031385720002191542733985656136362449891305888401372777401929410745290116046581389019326706013494614700555918455163478916584229355444804175563637373894378420079855784473592426064222191741792852668981797214440571651353502153107697275219975865597336136135756484973297430079625353178754676481650323981897552762577440975561922424970657952523197312503551791723290101094049577447249900986396725095958873325730552856575154472185813515682196371039081501205733589602943795659907759889876786569436220734965332417339277837070449700599669988957038084521555264782829190150561957555196682439150226700128529070634662778131733865107149939588089830766577740608641452394795353357364350372647148923146710148001765843385029792745159768123639436019963849035859147598326148241138687550688199168047842956480551923582130664880116945481232395816503687656291770029405040509147127408571428527348633283948778572749475576001303314479537032922686348720392260916804882614573423988707998012210803842903069420922283718761657207143037172440681746296459551872371783791286868193766416514522293701900485439209678726924209817355782118501182188097139909657215291298054865515704699717009743379967204690955880711789743498992297844707699866068472673003233584134916480643105318230453571310043309843617028667102469936482977234823435701693364861783973477270516934984905081677871215451156346456992621903163201046566375451872320755013843786319704408947170995884471643325602733543906042211351795397343681647319797365596770945373567131593987967404639771662614752317280023612108857291075242303870329225393553938063721083872945971828135147856346542412061804783189647036614994838352347771157622748334721110302593867271727175548495208726239722421488574584036462468027358168288477823957171345494952035455765611801862021180672197277029350280620687468913078493940454563271010489276422981933803055814140422487871339301375844040925700360602118984219102911567486235692641181503163424745852846178565067325046500195523548368331002286581484007034715019461135093995215293801686704041195719032635692176391137361346358097438000408060836469307313893159018047189473576173387701835932415431328632099300629653483484307074351386776211400791176716441861587900163399731445769109269622493611275648564075297648685289553773577336619364612842038289951670023613945066694579688382549056048556146340507132093163917273286049658418043144768703848885821241602581098400949836266009963493378592260290910650996204262029622632031156208728349599995553057928241830931084379568107500178976528559191596890183025868772008665956969885965846221327205284270446619070839708414334794407768693824783847563440561656736450661171235578724727734111068999570451999047812914519056242527872682451284942034479257238913948390810508457957418628664062316668619103008954767286445021280258432403296854226011423156370984474001275502559343803226662072669529027521034055424668670493148883222013006678026570777488293401985724593852386253819240823905897080054869797246362319936639820998083005782166127367239184025766599306376358095601074475461301118886277826410676488605098425125513790399978698986701798252223432265551742741302503583585861923565321080641707022688557944225527442790449918554906094000081584352052434821218980855978897864839446638532842027493191344474673302568135699406842766608922113242042866390122715331932144100934979115037954335476082783337139595526583021642723965554777193575014809725602131258933583078807723789878085868198504570388396657770504593263281479215868083351339878700428418217228571847058897837887544616198882956374929780288955188965098836486781902326064991502916893935459104684320284219212336615062208934998864855673586574570847413684250287122060129987308041514778267329621857321501603504753933978967983584707354012688709699081691083076409039981202018885100806348108489497368773375254373495694865110588900658090532540532660228327283265554239232118970402583992556190699555230605217490451710397299333942485690215180528035375083318645020384308936318093546421061102365061182901029459042135162443752519225955510059563699761927456087532371358913900608276014219725504965375817340874126346045769683309109316357480012261233051457594063972623049427115435137908112970452751924081248766652434668522536135897521352841678161763645184055938463894218186308499821056945473375114899514350930941411811578236479576135737205707282852882505243262505492171555076369137621768216071416485443211832561674175197263683735883564653148466707044638654129525841272752307176862388200801650266422384211439600389319114674330229968004614555962850270425577819841365996751287293490272886268335367671891215491780791361081380293142415784882052038285420752917438929132759243355637682144190622268804657847120215719670401787535005298877220678573424652056478973903011726859450113941785973675297557142753172593218588222718732210096602102714000799013009747695010831908748162967910386211034279067169907817747295616919410605474174370110753063943325146726179052907121988430794799886583577498946150137433202190578144949238922338275430209960028534484180859494546753655719530661096635503470917798615701089058263956402704080098451254249586368572176248698459331922992433611655528288659163195602348619198092157578693711005729071808393532952910938862166931250819167619685248092000758366822696170633249953925441542755888616999899057466222065545518952311226103928693439790306742351244484351124711832175731544772902657664375742474032283634460264953674467221030557846319332042710220281302432198779882712325356945943708457092784759211157364390476692388794227474192976473260509184156278597072693353980552899654256376409515961204407957473857587194080864863606058575263753338958673849992043428486417819993340196090737882329078584597956394624144635607042346316544744059964657769357310472748269712032204326990116371200358257263861883826689130067738206258832257815608205319551725220325711697099179678439017597162202433530940222028769797382379879424496278994603210435143373710716639656739250460707948820569945319166962654003702946890690221180404009489231640357776573515452082322987192552957710487948281669018888554863041835482366487664197816757423293506646268675055624824527278582807348114147981861967721076094617419591778050259527357374363442118187729222264312349408177845455286097473597730012687343021743196366645022092053133598031023744512194864722654403617829051943513076286875383029589853322786181817904595829736791663989143632036163551377865451781021369604457854596552205264958064363472044332404946705720975907775925058496140950905566227344699340137219585023507726474688525555260720220241162345826479625720537566605290334049767072352570447028054968675575977649442603364954056565872021794805426436275038912090056618847726199180932353188928881587624344291763823589456797938669638806875866068020165878892296812830850350352160565382397323084008740208590432617233482199215349342643080363319673343961799801843771636190595883694039555985922679653838305876026963043995550999484154737557329209980862711596313867282483077049506611654587351164457903580186405959703303509800864408185420554779463532532234414427299753757609193897931688054888310907437205340203884500370875597948059261673650138288233576658617580150162982185124659401494594129289618481264071167789736663737476242261319067021734948339405573172502081370461224297388356489621298641816999349204379933517795065891664696426722372159545152260857946821390594376772978917434263826896028339256222412799924589727174286629633407310836543971610418746873397355917160805114328986557532918102787051930548718343269764969494101432445720776554079139784244279976780298791741835577629017398207570853778796523516188310099883154359484188188733570334337129624313086387273063770816020455956994743777786783505760370882888383116578182995463069995269074160570188359503699700023844758526448557816898638491077745588972922588258706726777246455569439856604184727559469730241119829058300701903537184961043276512463724353783028089069075637638951732873844963453409950094235474507304182973972356283742408785948434558543771046829867498965932645143633985865109385592762009883853343025652984349360396872316279148469094400199185814225054076178152469587484290691051012056725507379813056353382815261046829623807417944694511182599150266722051832017839573133563594106519316091319246503752478234467468376277449203930047949648786799523989831616683224322296208006376624435459080310934272054077303636675663276320840467889420111063331914542297005067458533366254059342478986965440803315220164069869731996225378752723895448541331318397732258515960670059266408508660733617220829169567452270646884853536959600716634057158020881050065439445464329876157186995572107513118300872454197058843772003964693911358964307907830179277469008976799816318857572911549326052563930355403884565554646247737326859320475087889673573678543089698076625468929213561688004483137500350108301373199954844805495172883836581751821280379845314211329070022160941698007733593137528706110527517686676518094227458931851351344411972487635126106084072175499413785288101525790326811851223175515710526880798288719620042681439787124207284438459677296478677808234442741136583733099252371532321303358550718469842864817641214402199870239637568920122897642941730298100306656064324816150210650112049720951597701949418462906290935722171982417556784683093047467382555246358881379822233185831799398020894564492684230001123025198269397706535062365376193181127308375563689894290182678752523073199143210648335205474915173123961142439771996650171008098979270169208658559869904537889362621962307507488048073072666310877843367138912564623975478534767633130496359231291663926425950658736083785929237813085001164257932856722822621008949209273013741591188710769949390643308610364132289512732492246700808801247309732848648041298374203375513304351021471458996171026331514919837186563044617084407802845990388706919438387756571837400900631193727595690462622334175784443555381435326804889182861419598955729242987069301177016138633189234594109694838640665559681134028111440494528547002101062534258544374177234486867796733476325694193917612447663343802489595702726475940582987389519714641208598799383531730244086095187183549119708827307046302273112869824017724571447086321741845211751563662287448101519325572573761549430857797343048370476005578753598411490447485570007545184505661477912193440968909207910924337152705092811937154116780207591202964106990318180966000965762106815365905017802917130179090236727157338644549880248678560201933647797188249864537702698728662837274312775436257196463072248574052551728905887285717744389487510300971343636429424826606017765466159156194888753644416748095034846659573719689454305921467844680485622256461734362260449898281707367214260240016324077634753326346334468202609028379394720566274101060560238272190334314367564457846344396128981642440819542710996742400656560270948307633503258177141177284183985601819284078957864141140818563148573198943748892829718955669658161969896072899855280318012424786236713545446298665203295905538823902076700396345293942012916263836580804793488532781709522025622691760785819525709152142109158808426282783329848887775673093131148884293411366481069225598169054228902679290270391638909448107253828385389591916824240470750146988221298631803391486678855867650335395669827988096784684800231241151802573937249058612458141461533933633764168882465671421717951017543625989291475575007073780043382667036734662165259163083816486991933923969904650901744321700099193923450899710378597358843670338598659402623501351772151977485508427726391408875063902437186744742455052792539851253348868566908255236160237943002002839959539199958585463586225466252302519916172781493847254373110533327248761400227500762614339269616707314584368848418533471152792330279444087763532192613024288533240914075612141418960837096180627191081546133692078924971941595993319555715851258439286860562299740106616760221905491937968765209861045147195399609883389972960430710993704712214384021350980549416452486654410408600635201860307582375810495149863908888260557510596110898494188154844689083834205479199796538408224283383850310736571638250391531309003458892012755057525256965733306919441123711219357628900566208729352618223611776340642083250315136634738772707650199742589959687286312185404583495067453481463428533768736796957808412514152869309702724973223958767026129503601807038873810807759358838815693336726929860568560296404549520245054074398158187225752154976506378184828750098129394109971129844475282961124519301219173899031453864846230417461986053914877978792247702536616082342375259806221348648903683237600265772813601315573838546194027080973840108015677864525241722619953577892409878618939470771711432298097648602501623258715389725693373186816537976640018318315905343971810084188153331404613050352671117728618493436184081620006071258499019156004579370388166699035997266187966921944115642473806555409385285901429932595713379018036675102763393161888650144042282425309357750253206849041539901503168650252426370498570051243838264383103994666751618796800143980097548093023619521707051746491038437851281113007329308038900568543129721590163375334776951793846487788431357380326099195699523654394937056983938064361940082420578180447571864507527102463035854171805007206615909787911968341187491795379004549038322621383894357320482808310788024730756337625259054773701835883260768733862509939221191400592392790155882636947696173168813853195697902423203593083372285986660318573770008056826775903625605380538896995129123011986480107053360238711635297995008625048288438664113938909206411805449911560687993879405495514738334540620252556956932289370503476188092251048491847403046450775482853725708915636821674402945424749855298413343860695213318521863412722724472077509922196294248728668492352312679014213734381831197844836030235737269641549421481033664804730079228225390731533024634759696076476613043918824565108659236309241236219035309224281676861866465535659500640604478963397965476412059860221170906706231596506609326294819398901733630447924772350427304657757666001207030826029789867768366178688420737775698434038547817815362122178827808697663218281584397613165200468312148959880880477341603710113070636591100130579500976747144984841353805094954681391994276031655961117182734863023270893362166028866849384296013393741194072246772462205249403665772882127701556208823854089906036151833424627788761512810971475371364818657362227819460397156394828761962921068562186776413353209967415326871466267287529586799933822650585904540958616154604915127191086214460757811468759698699951517477929049108659686022047766142074933070084118029418588406959655809144148187095035142598375053288105075737533230950892016044523132169089461873139031619081451324904846140596484463913542050318315997129525777216389273849173863146814155983913779801451505580223051497265127005763225485104367438726492089868794713829687613110772349431926565124223788534144190160501835054831340116675515083317350344302470360944257201111324687135060491748674064800037211633959388263866422248874868958104113780990135191814618397212108779335136750681430957574006756315041007261754491035728057080351790235741613290628000393349945809235203865609328146551175215111692310963992014751250755858349997495824133971413176810863650723654652886343877776564415005785079091264490170574183674463204658226721520435785362033821249505211369413845780871888869852412738484348050860240327126098769275392466772605064204549533567569647736323766907763903033765462187800520887005456904298679138254402416144969678126072207809995898849140206581774054055056948094972483750207094529256562016668873253843047932693660740111982976248542815556304394014389719346946235469832887196243286808682268669308177879443412476855742613670165293974683026769185684068948691255994811608556813578873128159064917940497442920395850532166170210473343012781818423264821522365130092194416369006058316554622581336396336661822751819481369735742111812755667487897441672480309249221504867974112599319539352663964166871980692261197663843834162686201345488345973520836193201694245373219618644145475425888856878948708965991838599544087692462352136154859994379992290353976112773497448293425480977185337601340127904325905227261403918842422618762115847316613037855627650705095552212215847805144419624433898633897648467522748190282228445030346301696864869752746346919606738388636003646974727698902020910375843877567783366772623595036368287342767740837899884380307423126265307850475592163543910009305890751325396981479543671163559433412063145751055581877148294053154530553592863234740070096064901360007610002577593278412302720239679842025554755412992580308491808177847099224145254764833586230830997687047784317365157508972293411649378679944917972989258104576230355588056424662138199392400669566888786463218497036051902822190749991441814951104935547143951132736366546801767725346489179521269758841629129905446329179749438920297550899367632146246017935335659396935024744956780573874174971128104054181458851370478218324246099685436044908031950402230348690128898044027393767204671548373932364800427120246644260564562723412590371099135341802013857302266016861509541040086234623432449447831309747301154096608754195387325573651625634496726054696001850092057937191153375372363533153072623931022270004889315353024892085963555478766134965996528799626184372000849640675504267681204937179472333382224877706380265497826510380082123269232901304419047881613805878323905715185913033811059846081115988659442663890466795310745363271281101718258386090874017487848088468629841685229920679832398084169272862820528351493229212942066022528181717809514609404631073680802664117057645578628296112173896564019680057584820913862688197982795751269535116042888463688606761917502068130037309533902329570179649596711047480061619863687627818600308655682466823689918430656199410859442900339784082786784815386565659362096964952303796376897460446962895585839894638125497483257070956854476363605508360919369967667263599160694501136360881186516824056527632466609603198331017904774391733737680864185785611966397234746442278682623660712596798878489533220967617406792668424153910592639745157612948130529315775697571353963974580881612003820424292379746913973999291571534544605080044162155410646540774725537262373802838719589670644793325266387320740712486437766900877491329453145203517407608657663012346730606361726191474298673352610391050394899897821372513314376561130015399003142791421215445305852466894204385232649091802056221460675266303068826341536122162776169681413838876958221973635666115256149230628179869012211444338054170124397777356423792373019606747681645573226218640111373410804518473889306286302585324527625780744616939917210875161646546988805361812789950893735224386534259740235715343424128128239941932851613908567652281781879230224082668285239842933756471247723281763841391946051519874962498538776628521470490072272272466440781657615540318839300964208923034994544182815912184817543338514357622686764884349360946251953393558111476317243901487573249810587974172786953976535413327780635346089148618999323394760834914283043637954056945938527051079738956962878283478822838281888475230674134294627636555847750668783542074433839592390681801776492183669298779541632904075322677145225007946485935565163032826034984332636138722417586107601134152020582151778154307289946884986297204546622256148666427946596610686506413546043633564960044467271328599063579686916978873125679597927081725792183631573864076335743873835450309766670757538764883994097139505493472334990500374888831422746999959806333840603387512559440096853256563613592479481031400394824370681583592860407884736350643864394845250022688699260012678914473912733382270994674512116239783181177893564106936614906942211070349060111901361043072762613977337796634036058181500391717633805216126790248634982214628843849464339000157490832169942799342643766493689203840821733963314732744847568049682659697668098542887969937956354682819526259731413547226354863683127942834947090458353210790325256320464802683700339736761054534807968534901881822415305173439361063549816396657772804555468766579848726950256324195140854806469943699831032476209394305377309309225007573347855424809405626309473160665416309682971405633131978199500254221679850878760736905450571806359607486569210667909668589586832628465967818088269516000651762077947589483819141455088989976553150984329180415694210342434832237319838711944258696676830730542566467128106904300279542096363867124550712051882321742588235150162460938213606863999961848715675295147902054455625893623738851362497616875261726246905970939056244395431106368282029017193476530231828587954401777493520703325304675762735143728807079298276103856637608400638488321787032359683210036713013184246117528363718603017027936509256467841613604229318406191880823740043087607955196544129842853900180508697115812763271432911484430942262261304420346247515061438005461195056235831733230940387105387417689272022475104760409823334559757671373665822138740871881490784704812293070146218796536376686660731387732728238778091643439746339707945505123413115234153564344315380134782773057460489585175994755373722378467388693729426473095339397494094774829096525878957691788254818887215194141531341395118676304422624217313563782296966028854557818824285211618431066628242943856221294475232971911295744580581916348559697929389083783106983894970781058443928556365078128822263925986571497866600718911069381231080001793004756090156954356185363971496875973738406703434518191550148242018491958662476069461605981251834310484923703277218704060803718195668760053018976187283873116726763843701928061530235959244133178396242500398583595798870108073469068287036702510826452556391450818087531704536303403191556174258161606797974781290052405401225349553175118447659620725881220493059613266129106832075844820635092624221136286248969240942627115201998952522531660274584530855729830336305400684498096480810618753376825131641646732310965936447057599017781175436365169928994826566801579350998870758754182986665760069190514012367890483830512579233211592062295785119670086549689539885030690695764759616342476688591870843443254897532035544738204186588413729053574295376826535608610858559646732486744771325828499839478825165322979249654257283819357045427770485637272304007335278439591451020547756596028722339171000906258727223843792879479129723784677881886367742932001917448756982318827230382487696923584717718653988021016425473620417861578037881394837214843381677091890220418075453539737089264484715655498350063847568652015784109866974828025666583306759034251000311422707451394624072052991030006454068596832803004866952168082660730303206147825063451538595805360526393584521913549647677710708264134558373622429429400644831768220232662369521256675817639143303635220258956271645788203421249440607364767481464299826240331260508578508322169790054951010304878659422723578658680645235175377486936090820313139179705078889801190716308675697040420311796642498300155882479097599628989855456666524891446837497510671640917751104894604121198085550729070943510218604013186293832136073101884392425614308505082455290449645180270833157154710231936889925357552062589916269187308795425287243706040906018857639604206994177761807152957269796369596639829276784954284588503924330958001959686550657217958878179665560587692785894942842029885994259803960861228718831983258032248012561343616980798790970202827869758896419157219998687639449185141123467784109369189506219676037616209315632087006214020889418615711984292519410416416808359048612362020738506538645741659491762932629424561630740080926300798656002932362449360979590502972127493380464769640422150127169822520223771345714444724023414599721496009023862054963219409874065228872345507606092794072223236219731817545092310190426444857002970945750241412571600192784019512872396809839680536912632673919390649898110008853317207325998619502979361447419125459357989715114456276935094301626969992795882901813319281555170157606251863117014912403201632945510637224035393999847920197280036252073205351957803428601702724166739972847225213895503906164614703071243714542345291262791565113542915561690765807673856149727097328187700907116988410010178184126929558639837817131529140466308804488744579791955730873529701417920211896673026938464144037842472482780807087695620387347730400377312341506334073219135588716499176511622955772383385283904037184639042696107415219543701215477814906555425773216407497403688955150911436454697279295855542674805342862711042535377805529027955944294662825395092224143228400550591545861275534722452754267369396584541697517507007554945244513188061125064397569702900111619511837572476602400960922959458672568621383128216435955432466074372398300563948710860138264671112117601107745835574704533212988255385227130846570971386190008750345899692933259773328810126455976139309211988348455942153279726947033968831780601890688738921584742222952157098302187368026842784363414155009062832646879281758811201632825317210933366970056356674911516690211984002637715521208463174878836990386002996128354666901438949795100397164995624432987663035788361227330591619924075114273163310918521209457337915667928512530325937679011577876813685144685397084662175407445981061451274177873744690486240660163506788161853266290842562520268054473185259156472459550971675142965063385226399436497428278813217264448478436396376063856283434679555047076259166527750222774840586793867120721974124600399592422137804528783879921669037942631405143025725330732577638189095552078633469332788149072414766896599533051855641056637448256187849895260525780773077703033318518615915606400058956550685640180103441032244993675497189257218286521671889285836166614585806283383886184601778953028655541836174404884620607739478450383715521137710928201233780009281056659518054224196279835331277520225274068363384102577798652759626159510172943551892876174443754274032901417487310634365589648500078910333931501178342837022328467081189958687994437147780724412562797115740705497559300847947704388599270117257840128709836972104697138614991421732790493864468255770854784088114890775494496803932568576036299711370129868827282259174971295455378145509932163095898922197545212461613927925357590614537700575556238858161268578928649046361535276067145976112145207615083251329384932814752848436473551213501942807964475821903896260295962784012198571992298973497024800794839492702539986077961618397154529438285520531261457951483444346835453565693772402752201231650391456233318401870446592866163495860154228198896170904181503103989579641096457525489060442164912125280327433832622898019713882960633141329700507853603568310181314741987622989299352907295577360917110740644466673931535370069854450959589624368599067969310983951580638589751246756928397227008707557816082637135710141620527187025581843139113217265840790175705587944476979055815716928685966865641038970804849938576475906515526969260373008701250026915803498505012963943264342465432627070746095126858814712801304944984291587509620372728984859396498329280968670665920307199459506755503076323211568755442053552875743149173159184184722949561044254023177345205057815063382905998133985407178537397015569061156513367692588566672762525357298269904876679690210038474359003030387652269867935010317223025994297602823416183230918890861199115056415942829662793240267134552050296770372047882252617911649377179193101540800247589482472784740462793755129106097452266118461653696785781568739854443524271200060279726903441964388691418496839785176830282412871964841507993872932338781143204497894655662149680747468678646378382111885431773973151124922389120161588941913872007212377850352317853167080760529697875158911580895167176776942115691386094156088169356373995579388759459621717398587873621848386328922228708781636584092371117702125907883463881007010301571811570385955840365491261117203092852516483684389698971031223192981906452881602302303842117115550743423345802015518173774248839450819815917175753551555053195602234475561302541820402305310517878939727832670553737803705989307328292780072481251525272338222994469670481435784123176294511079020307636037855264832985079383986616595544130368727373984321670049900187416421970779115492698234576710327935886683083025650937275704963735027440056444778004497542663949781248961216209086279080343416439554663181097991303031285116830639351299926041586431253762039061572191800300087461316150191024145729414231346234129343068515852148275392645048145428091140476352597128035277200693112301716345954410784163919608929529541320537099930538894775193639307061358616187912782035772260319387420289749581982310988616048004531770501680236511922925972522652494155771694011161104359582490199968367885457079116149153065649727087036550218258301979165436400772788932156082749725121560430011048731947622520375183829883385329607315402477798263866944795710090444205423803109554698667190724342699536956612645234047398988059150878591522692565700767968838254191235627877546299106754538509571019671432438572720659372279892567906903347155977391675457142212386464653921093445728748318513879860491601233079846207231059566871054439025624720663995178720667371293221027819769451981245904058485956372862295967753127609973294525674162614052299211963501161318817977465573690649378514902131613048007690101761960587487972202232410075056475207353303909646751636060363642746252659941844872419386007771707084579020736294269328430841992637622780231512739360353594287963809595364803678958408481139317648215856755366359181411486526157724500281443409486732013046968590629800384427387309476049176311790250053660755537982542061288585348355044735940962437825871192369225899549218165570140204396634990511103295803794700317535508548201668928792588934686066976824061214146946192819298849066365313836539442493793315623531985492047932105598764001527415066219819270051475461477373266233306359969976936434064934264774001280147380478202525611119452392763079608132126452464206806058631063227229152267030494554105935377548650235417055902335218185470435129712282238477902682044101882894020262615222575883026733239268387226456228325614695481141994204344181752708088542538854011144497657976266313934045736576199360200378265527929166358793860146017211438549832614581137260458884105940178569814038083394984193122046402771063918004282419281818981996291864731689079275386184492445963790592471944866940151386294247438012159908720628837243869549753564103542836376808385821551505462501055460322443614125403734640602596128663300100378013009623113523184461385053541927063770162775930143886989869747668914717176599003900634161999241721251116178353986622385854011116158335840166901902638772021208932015751402067273117551010472696275235591376751590588628378427492453496974377355262257006961809208098048321693919060546032105227681264370643343684933878596548356562293299113160371730240333123194353455262905014231321249051654224060315375146465162771367683652458902151479904996565951830050514177459282116119349977208016971907884261745153512953909439437438449163400558311886799970021247808846507776620871181771120762375482266357390450723183985859592928911975541284776451213927054418497862298163880628580881338024256331031401601923163239275848383410778053036534844516484725432572095809805919701699992149049422810371493450141260213692607926235879129340975454090609379553445765954490398100575601283080565110434519234656616662790399469234661492660499416226681514367639279733790908222162095750455868673671639160033896285969488200128219021010398641332062082804110824102565908729968134074107950265032151571112775726324023645201140659486178119421259091654105829182836796290062363039593562074452217581072909107177567747406960721044621870971461291305154806197909180070442460710449472815921288527353412057881044510929858795348280347732460307281913687803382682946417089927481484848565167898784247164652740058277920614602852759744084823806311737014089381341791788043633748251169082160598246807403341818298264488307246926286201359957668992058500358258170083049420037052727420432297778261865862847219023989946163625814146897669863100923543579901907223473906181349893424525851549866253525976651290969787843018778516278363539254197740598522776484909895759151077330789089468650652788320704889140933020527664420535579102144398644635016542915996539378933630954387449396516880708664884953632044026598961095219854033077188199855040339621817088659295000190546534056130659357976859384577626572916389503385555843488014583401158448762081271211255412829674125907234694330263045785821090436081887739595220814823956248045625804974887461678795284352789669175351435797276926882593675046382605618240428971004461979944270051342586658239053288803087568504123238949175799820958017039912363603519538723140524702321013048386223707353695810896946919168566793790844672042719036442775660767905050191097935038339404073519768380794185014045109294321196819264029567261321995073595715871698184336867768789964785330753662930642869898727001993194236959734185807843157345795199329700359018629893714584102311519147878849038243543154413399447633529364933380620630604398076085242976349789144162704304081247737529416790337353899094313813945442565186615364854927319832971224020052143519147485279078600331450360703831668134244521002732028113083308873917622029800140883561896733849819319045844361171688894222063806433188378016943853142929308256022398034032695153579582402099941019280394779519076159960710809030328335255540327452627474534175135528783734182121823355148075524311754155899364800071640074132234858009428799819530818862264090034887362446299961519154609053257692068481832735413284351724552556973846135355352858627605539817502493689973841852013413823105002231036466657281844122852065504764549398561120327784093425021953701078503010196176951065298746307020742443333188662922082548482352448817754124699792865271034215667406020842949604350774579659469267249092811313609762177896633681833790632520606262266958535479684694499875577597806215361679874973910347157299485824320374286285796990091571485300639564069643380478132244609151833462847615374945437251469425631728516052884948036357476995166645918804467335526742148260630389112115543415820703978166199119548629050346275202991406662801644217066456533796992721581108580504159529873315379869403143444427331718155702316835926227819820850635996336819573705868231042390166672317960949729116291814406817125824569658370295015330507398618351606004726627281882259834750769906273767590474500172309334005550599667751807706555396294132098798256563375578773444278220435619520855423909288721193308199505101314224924035767594680785377720048293426737010474763554583994588795773014354366918804168090529024980434221696763594835876245740382244077491136597493272751097036271455606240791909689128884889353190796609985647240182003655420378524656804341420482949131997563181794137730955096264798713664518444351908741574586806036128015156814641165138204272411149339398529204672012366906555987806099450184031993062664457129984186107396354481256021962112005906637727586913128501689729453865242623203476827109363633311184748450045068667307148286619992224211701958408763249295272140907653998217416417556397830570893486611321843005793387024718680624207299710201721858339620990377673368612831675502769644586589026242048124589427100429898795723332901729718751963227038981339073093516114408651058938727120343357349343875396020406014911853707210299442681776153419571185358744008853118512568689139837282007867835753821697131792327063251789016748780476661525186728529801011178792162671659980574606602157175225415281328166409554446961980973601413502210527437808620691375515160661699486462139720312232409235155353941305034223051041998449040552211702326491210388113552148027421238584572766800877398953050113413343308413973970718854863038733667567105777859241601665567531943223000650843880889544870105769530358873884381727215340459987605823367596888373317044914628034799742648194094178095939842325878550056837754300003553000572223246515484353188621043231179055021679733021520187044091538543587619476636562801706113946942067645459002439195361629982384502558281199660511621651321224286935696198600305230026221842541266376867984074682802706320184469895922141523254872932371891324621233796910514765720894685925586145101873071586678251062190070439522635531727930816724860719493759517776514840493884624804376222801799326621849807782770476972223423786741475248720709494401349608825501582588645814436923950138389512580230086135328054727585254662927392888086402069089672659316005001753137255991668738246136265950124371923790027161078223737055228313364613440183954736732582606573988375382544073651783217457411722214072107483278949904523587972195459855059236531739734207973923201673661508920124576412130412000260985191416728083878036212752281961525895502612817401936889817841855193116665341270611806088741786626558891415990502781315474707912913353125378679758161948981678757845248056878369726771745142638172829230058708936831707750175404336945151631820925140160554645725704362421821999743407090780080799426740004365559842516693898127751841577361668701591257957797681315436578978758685783777944344991817656042163684765683892231435153281880397989123148913099463552596405985366048135786086161913132527852646304634238896657140316490116879751683221652997068229600101735736518966994546833383902212451514589327514849207581684950394107539831211845578451880912000286928086833390753301001563369835185066731620228201201513532879517927343741992637413436710320565429296208870504098058857696845740015960915859453693253172609693300853420700085156881909899990300761433829357029555778867507174387485080623005102120983107095516087547417571139293976795958764059708909940146304636400799779991780066688128609454287309919335477878034126560073378204502992688277476611371274970779560609313746280279384243034321849134576905796647322414924314968528823392897693324775979611274414501400913550837297247018132947642352628219880481435339481677704157042651002706241725457295060462509048263451431964006402117149558658532803864645504494872471804165580631149549949877883297358423732261026776201445713118797167118664053230350986664660919454082189556469839408870234394391805191417730078846414785345672178061891182978807361491828374705099584399427589032425121357253338587307232592074860618110930553281215146427511312447586703856206416061622504460124877279640423362932272095184018029573468799377209417287889834460266166603289637872321045762319705792909759347254660315557731369407869778542957417824489613313794232161428466151042714722309906905197873631900620776642653683932226178545006681287945851434471904922793968009667067350779522631226589265389732806346758721073840397057658719345527067554855011540238134628540589960974452465759617435767441547341111812452400918731212422345370815022253429520149725861732195237897625564098076091247093509507133339633857696538537742837236493923185979521105724860464061173053317829150252242189533067665975392366590482348491198160895420323331156619653223232165514205805827817063967574381177553481746391328255723959356953809502599148505591048561829469716728585610127118203490611969328277691337802406498225788816364595555950903983179473034151452313124073013611161393089531610517127430584487720121786605589265080641686232586327496954841007660771167679916669103531299342453181449874305680213095459707460916019743266566000122017488371015166718302102680101909242764815227069999511645393478562361262390866854869621913087436329238221058224140219391134214413443235902912712000064254014715036376217577490393220458825476251960058846742857536920385638687138938873505754185939220034988740849465381079691251047179387398786665635841139544785520678683073205155548255500434668804172896937580225105430821932628771005364142673416260864106403970965865474766791736917045170776247671564510384081285202056197973835528476043099410336975480972704968119676042180814067482499843965549031540360790162423063907407169371658179473871256936781860635690903722236560106698667896295161779019714721675636546964556583595517307284880156870529986232718898876482448296074849257245203652578421084180417418104169451742009115495724502462559606804164540422275706017275568166017790468719072814552432199348271986555499239409519677794657455615499582572107807646732127915437623612644678022892485159770519366791453716248640458379356609605316592598564749150402949662501605628433042199065030486138033067393614101543624521771484432976868426339008725239253842910326985285788900023879754359884987902663193271273644527964482835623703789282543983951520259714768330415519876312334694981625956043130211395066474797838829379234858829670209457159086005025490800897557893222271387507194441908977537620257528441871687048813284430854133959097691075867101964977996020010648743024044614498601771766405602082046049246915826362065478104181021142437733372134597440728389592040923232001139830074671019072790633024821516557201327224591164871977356361550220443773938334551917843037684762002493576522512700311918312960733189116311508749167151439421188251951295607672963885978760712758622130470047220557656879021935226861879733650525828256161766320331500948583673471907838233626863807915377281802461907527306781990714186338451514456108373234029836609761450236971688396174464732041936040562154171320529618343443767940543840088790994761359233931455494296910684015566736493515628959666699307210507472785045974281484024738009401057473290533522147693260959502821829277098525313732901036720561817643567248241852754155556862408058928478788408450774773884882690601454534074923502835285728872510285016306493157203524778593477071670655346582299733691381557667655410246613745891814196876872686941045716034235533502632435072095390928066134706308602354749605807653489469384798743971740083965179596882636202458419527984842390292647504098250034803152212897847948923026007583755713716693918974377538751045214111198707766862925331482447029545377785010130353712086792628474729371391823956844483674532741541873148471590906937982596012845719713206107085520570622827664484484583571636492674641683173142449566043344366391398030140320771234904930516808061771128795185453993790547037634770964831611494386713495947234236465735094357363668246576562235901702647541867008758693091130537772217136361980535743914793112279559102567494110890909131862940787395418552569399131030505504814208760314847683184666861935699260919405803375701046392500837153977039905223763916969898667026325540021579290520813505175587359425809255683551239267356426736045710438132389150652276323026386609967404814584237259802123022400631446506810861026053401580218749791796922767854799319758515091407942195331444017608837977817554606937567154627817913669926490593013404380398041376399928700378831361302293818237927924675289146011841249736102849540765783142913463197267484267800112730647728916337204883223300894621620164095644008671280732239264206699757213972431367321730914310593019750324685239710776566059983858643986800016255119219514183663741971912620698060196068926542918336898939676472411161808735892452577185259968394032722879148977384451749077868670378703534042863125769949987492623886071262859525741910879717476710421733043751987341924936802412740702494175613683510330220517191063247576087839580274513628253871841149796364807518863439804876225474172264605030482412519136593550765710532742487088846962726735584037868633430095108647596064870967521368490881289640066699463761681987218455034617849101738957401290822825108552897212333562969700759906326483695231854264441137873234110163644524123836956814967743875495951941019389601807296237572963007063630285448697923222418686620183817833003307649855049898060380942132730451351382874820128524576456197166387335237642769519417338969586256785318324980628286348821278062413004157742863197791407076903210061222103916176052215888843818394768432532073069318117749847648905661167696682171575395773511986166554768875660642250414685521103703128970426113723149082535423842599820719207943320526503423057718795797481180908131943508580053116482141880810627754630855897540130322078229100918287966603631779291019564729010020296868188284016125060800647379651779457749994955267661400233850489241425479677276782249640039944820013159206565609215735279427499708560669549232223843813706652289233846870107137751464159441060418001644265651030924220253785471297857314815051262442607726433188933792550288737884692899538813291716960827022244337281908827069419479339914497138587715527938194187626728828609693937732190328576410729050388892720958053208347153519180588620794941225107542385328191202589921788736911887451666443234800867422692586353824722599948116189694849754474859105650991766597814464347190222912762422345849953724343802501294198881724328388156443496224817437612125807820171377177594052015422709542404913570046160022064583388647318980562210803129846457762411257209451685355500174024658506252462524654886618540275864115862854058484108215051766599937717058271583985579370362757031136476303801603394662150259830383267457227869091407793033709425779010605544174764583410311401976091238862512851110580899391830812263597887805394611813860222386738241125888199077874393579102502803781243954979785816774087668515075793607205615245921049892043503847330306718779996274692868745663575767447112407509207093073786386123173023366807141393139536104611922086502477017924523124036851275462587545468715293008294781797460708865952057959608828667868496219944102771605809162979250698973435110402904776729912292468765838563556981234544410668439555428070542914442275361781721582211853524679403431778232841481544497406723796344971377664772176818356432792259431334416541954698064204004645927368377957815310174575561134260901395519888543535140299200424922663757195607739088939425465341319070247772529790586342918171022353960880824753627727758422731292423909957719032518406058147863333898055559368402118045030457508374388430737834962866412387283070632634340901022679858160861129047175157385870326784231924026426064680758193815083508165805046131756630956037676786176977905302568959841187586594298741989168055226107495716858393424900968994610556718325683046769929476114646503766810926689032428663588419906377443934431972075756960070776365138084048766533186803569173998772059554947471467416357064706066173775091180063754119961841307960582055704104200343066088763735311405245591111767259401576187834668141617814882282353990046129512282369266398021366274772581658537678436791713092623531179404697181701716280331918252535314719589187608981706538861316049623516031449489670538267408292713519036106136603249720077133739530382007562299518637829870028758576030357570424242480980151779304902138366476946549737885074488194228941449887333805094012467791127170680490032991404086087112243681331807609182993764300483935079275461532004620163097234005653561434742584621868328855182841553662487568397161003314481547738381544283463943478240637332840663292965255572409659340121873845258228058465891177603689089361614593193828475642492240538708427702170885497405605696361929523990092725535136340648943426850960331838572698354986883924472859443071572476232349911671598816232031800224009097433874858630879150089678188506249030335007679870142527586426325178703219833499494878600918584558223612051954508401552713389301522359725467588579786427992954121510631484889817354920807115870067300168899390609318344117739611531436088166433179957940240769916040519922043109009534207499393767387886525976713244512058991489023707173508020861013593537103428249139268369722504952499875528139717136773007289040595544887426781829374487636317773523934509699046026921819438834721249093936022654505983013651743527813873267976377667320528439369947007538123420912353678626622704282872438549743217939725072503395762879873470166708220222494313879646399381407091448585155311730566161247163531956906158418404443357657217311522743614176263025265017967806060356536733040934440724193531287797485671885318006002337842977245162943153073004438352921249427297567331068808964725111198371528608986481219330094333197656111841904139827666315642874200068090168620113501168782157856831715143277584080995282657113805464920041554803244547118094881873652658466685811953927079463639020995441383261586722276460870411900368916763320282990375135173014504998381431832999307948155986712570097679331211791248425795837076936690479940784046875879726554154095747978552544239838220996217269292054476834470819437493706719453297546098775670461080854614987642776202404345430266383637877552786335955796208433710290830221889302620450284406669750667941669500960172256767635023565248174728511974507700266181018387340143388538497196621272825810951036949198916121554179228282569989654092935194623464486834273011021979653218105169545795399481335893612382629042160994557713583258143053333702264301252737179131121069507215430905882473884985672527083637913999861810217221532197756352271994511347334089116316550753993131146889302264017067113790255025993346031002679763455542075875044756985998502498625104950344641268333967563592903002370528348593677174046087473065150231233601918499715505458083009048245206848471669344435454647096904272738074833594978980865862864462447965198609818540334565924175187200426610677124540596876679211674112156068455497142357500074562250819435888751472687208249777831900915274779395297005141536245517431618864181994173144835227560204937924915925267853261638560941058043251812097187654451792598884859152817956520263831363512752314633551365144569482590242272184122621857649076598611242169854755115670173322493626240077581614003716380507172537099927457907922744004242300238250941890096296341096604669748106194211680996591867185878874840508811869449208531441701755438092319141287013236239131062805197472799142912283260089109110972286976063497892525094686477915305153600484276829693039556162842376101107677503569496595490518655333846790846592539142854745415541744513827556716589740594362095820093552445825874779866728914570393276056463369556341087603091766043465851490793152793752253922450782625249256832300696884064414914272168023432269016554467453979969939711823667857388947882420888257704583857804418903977923821175406252774478325479511210381279561553256074906873031124642407419785029582952436279124000580733448222040725711373828147764575594744911252662476555923447059958723528965663030118481242174163051346540282903819410489414743433725382829711007307589596498836447112745624932223639201949766973213404742297432086144875845952570529410603693406162189824625710755503378897907115978370226269870643323276898349563680846442608610623079264501120922250489429910599890512870053972123900035613001640067817243793777426342719453424706790572350558865628115452579401550435290676463317108891589830763465747760750222206093771463822851930125827058575067147745693869731259601052163001411397577295771144409513409262209556970531797669427459009680092398799102812204264592796935878014052044881715296480011599019940284481170816111963013706823244535349278660600264214398492185095423316932814899377088862355730990508162233021552153955441708149881369666054711019118626497512140501150327297111994856591801982577199139005237817187845197697889293942634322061255992023274804754991738823375315068523149320880311199040312672375583868685503103708476465883854930065450244891611668593592109689706433219556155706340190807299502245532296425036088838450311586792817747443025326927217071839047420678832927544266669140999850645025325710168459960236859985075311261277813121356706069590521452972256308662567816697521903227252028453747066227218182730797281826697206638583900132801347050440264082150505056964573379663745294620061542784056904028343136124040521475907683523164317480599500910836632397623878419238150078614524106014556802779424902707933724021043977777134983678858736838426535808719398713343235741997144636196288996567678163610782446466921714937586307060858116036773398629768752431158784325991730828774535569327104347648877205982984797680711565631948047491509999022123383413716465323322998124722799095772002272854420701439411880101953228187336004589622399919562641462195545789954126907714046018861697841861686445857592158347613581095750246502585359521435371040193101368805573722692426061853436372269510931540822009972591082236260355302566823096083200612671754590004056785362742541413935522197263649433071759953030234163984986626925724889848087048590096841495242362690450591418551583719857336149886351629491417267546947460571048612646404591921602359961989153464650266974381988610099181078017671849254097931727283242865680387742924477973169492181846119333050470391619973723469367176973801814771478720281428423050921884633965096437205827187690712460668166093058089368805281990889770856225664581066819907875263091509998382353174806325715643370084253595486862061992982658070810922346066763252355736155192304779114568516958590894287238621612854796837142533599168768064499143940739538945747385332279193290219043557307879238728843657291297871299274001379580130882278849109288414440894195384195757172019673588113427882350674247258116128775382943450370284849757624423270410941240310888077773850139726752680983989189612033138018482445175188567714599538766548221869607574038962742318651249361315418970298051458583267438418724450758477124401636886794675994434913737480726000731509291212482453334720264930362362737108545548467779533267527694899638307763655455093896910833972881714885742444193253250126724561524445626062687784695487401309555363107885009550910144570641075087571239780319482435106444745452203246225422577986631258945555098714030653800505153344659101232868761000193473310258767865036947247843203941733343522647754840714721863829578470468651283936906397106975704970149172841773180688900968497904569041022935906305009820394090527052271951409255473413351600435108741204781490326760233747913111613896938536520875657071448342465636579037681193527753101138145017064535913297673852481236741867546787472314941646846344857507915088850401951605830090484633646879027867129832424402919298063387853938020850507460021440237607443114988694904088039692206320925812933598170005190370506001067401698774045087077259968730280473787947808195223438331001462652511907592625481677792993592890048930353491096335105465315703742709818408678617571899054415335608422786012517646899658864858435095435587027183963133285017867928611912021759489141429570659066057708398347039484916625567029357302701901917841876490872352355013970690743763707027232572596438920023481353061052791055961380157426701308406516460407302189118026875666232799766337912661814665771534598501668610578886237619943752156233690432813665719110933148843912427930400924350149668218668843924677074377672852743384296216482621661405678979992557805274365995383281981869343081733664423064308814978316353191024583311302357468822441118681898873114092313921523717218948967722846993981279832924009057484228120781740682473823200574976656419280496574966746863286705345793455225935471957213991384319526561444715594196534023765883335545917150555131368815000277402029672370911125045194588973212947161561262884360575685780834341977715887136210926379051007987153140062635264003133424978924018513388130282601180457543438419745614471299725700479366426276043673890035550909952102168974562316428503791622878958955407416276196661768036490097907393174849027276954089349750704140444931376164441498875303255283567229705772352349150873365195635631033882320912296621103660706801870996231552157620177394440730119037124680951424237247429585374885585896856818810923963322290319063360635220672804086158176002207532000809976045490443254376498526026412656029868348677114591947307044706463239587953343679099099642314295419184180365953879109293270827841366698804827336626567613598386911506725900893630121383711060112384113865161955442218678469036392216377003039536561513934129757465584642256878878300460544810609235191308558831690843460680804403403660629762554246601458932966145585044400553934656516372200596217709570247186369595054460218860961681860656225765226825682215297849810779093751654496474044139283881037662194649499566001122809174963582864755223065687424576628863176558388303841153737398148142855826123756747883058295900131269686359541686493794769878064675467377977548617720976270334525296957750754636749319809692294555735827734484712541188260537597648213942282962030277554686149984566110546654937131053755974960296432652837289181113614747623860253587195675101409149370931230744265400430858457132327359963889273264547702964120258492081796862315538324962331286871311906825544976031679942943940555859706018931252904261706851382323931676007534720468484323875792743154388792874694815758738617946340120774890761457487203791722857931994309129807562294387602585183958432618412076986789254038513689271701405367593597810424773304854312923155751562967355777962044479902435589108633094140183374410711824766983330243256728624752497267581699130333526333424669049947709101872908137865484442190197364981342492840956394075952895865581507395851896535215924745088937898325873867805128179515643378884983931552354026809754521883644714010808947249744253756265756058207424429711937122651304387336902947524312335458511593629053926220724085795186844422473119372279293112456797711665775203249713624695354896490254043143602402558917067432615163168784885858946965639089826944893968484453073029948594166465819680943921668201215996111129654708170469709468624385137390168699557951985036591697662307840186071666305419986900441224357417867234082416850599572456098404148760659772561948979692073210154559509173844284107720363103490428298756079717321921690000915764869281156796190041556693062064953883512182877843974910631436160291243817642767299181187889103190893211284364544086317702869954306891720946981413880382838945344404281775894562797479964124659142956344728381217825842148745580085675138723057346640170816103869108570392464724584565890513771552912053702111174006982370540334593254139978076644419075238445128146073650597483890280921840868423014500983306928747967830004870918270403770079593594817874142237678977281723466434430810108473863717234535942789238288172952869820427806333202219023852646116866331145075040417147665521774833049146651189941057312761489617194433144909822685096607668662650828693999862430132566621938074740603119242830739023853953604667381285034373778614911935619593239996958055830399457598348202700485742101612253153663641369446360654051592589224995075670211123830235033819449145045746581464951325286077688953231033947347737083018673840022768007539242511189625110957264830634473479956810363187400073944014593665326405323533841114217772139217702451444744559353099410453326217562522548310535141154568444822696201060210456648607700488506696088591498141758314574483573574058679503598798243666347001912878608723808601206463509010242139809772227438945220878136140979615890362322830908359748048366021523832183779091137835251534961726539980636733168574821850545039387268128436262806568065526781755279019621102009928391466683849639223807673883090733055609136775019487172493173327856762217744123321878655672672124106688888676382152534249155053707139559969971630186400534021855336030993441103192435893164552374403742942227913236495786863269270420683249691459670224756402909139299684726240241804079679319194279439575624694364697989170474490249458216078432359499128558356831156376018125567407011062390259474703856151685892811997089960334822560353209971915504290816586464780809115611996351111667481742357559117927426908850472954236749278649124788141606514546671455710118844665908618798859664097275831382323034680809335779439946424962413209769118016647354878642891092458853916298881396494575955762451845306513375771278164857079067781235798100208454469604348145171288341559088324683550623732791209372121213518366583184065608064779223404783987801376127715418583365502787892185982495492669673493715076665949654145693317399521719148701797789670145500893404357713994201932650687536211986745003461923226868019600161555331506102788282832859849819499984577681345407846530542372556237255112320268744386233713695457296397153228327339134918764872042582872886426198633705833281183008362002152960650631490236376249392037371093659742524275801072658983561448751597618451741890339434364103778151821789567517725693856746350535492537462341485675732564160608057408228347675813695380348911954941706367387823618614603007176290007629197978348654576221764829735097057768119267317823991786373291080429672825621936480028336881990759398864857775441320827625894210798148255817590432988193891614708172157628581755476955157131700136116464954594521759421154609835952225378604905905606098760720305546530789831327191158381830717656693172695809001970783137997325959031456053236046057486061389994591874247113045505470660172491047513077988566023767546377493165714374061401721803438701445683562698834020674328977439997912171017520669214064775390645371290900593137034905429435382408561928488122312737015035152735500054313359287659238671192124949608464638965152920897743814875028644109975211330904978141345916147285764417334929407325246814222952726255291772897493589517564685481387441910846398528359869406989889739830412463006561784520204301202159276271392618057042164947763153981190838424392442185290465017994340299222164996696493879770270561738777910106719498043959278119053148462007415596747399650846382100846411034887573946716378824582984803908437589424058007715228959240791170464865449056307145972837872237169287689100845065688507606969130292135456954595299652050064887421060984210596328728711050575020382211687382912268433693180538791707276858298764181417238386632154936117176253449580231015201337739900387817418066553824780286513777989399447690580778242578153967891142682675417133475008447618427000833688710203459203679890582197780287055867623795574906587405770162944735845245746866953205818009026409968900019523773389950065065226398214151665385308361147341530294604052544245878233892096606418908903648537082256932003208422397035742828368504667198256268477228774373986114010982799476728247669909928987679495475563029507017639741556139233945710934316782725117122057867308283468811410932674492644973878020541877689864984247807714458205267311955694635664557534913407264855740778237548425963572672619868295232107303131625687665378909684594978245910252327929170844971593442421580346112826761893897705344839540009617397591274862743703497622024920697137972050757121405828553846157234751377481128943398043821326471658220405315243184380514205855237774121245964864548998064735084244644588942097980287227727433864544331269168344561162653782291448725416968774439080879587357021828262154436757221175185477013244835071273413409726624180026650293406111808204251984028154735903429987919762500584210252982664563731400859258546995128963198517532349183983133379381037299623303423264383314891360786555402407957925642095530375268021192579999765714621658703268580251932105418719383198390289285264453339530429141523274056851354993803501866248156591086966231752447769090807776750034260965866470804509492394960145031718837916776596538176438739152104049867941259947153517917256310132311285409547988355435979663938808442659980658295680736168080677571703028915800471109869777724060987764831870663164966199750479888284003867899873703735095167495764987250350412496436019880314173598633283581055471895435650665360665341626666110034044303313116636459152438121335778293735077343056952365317427946209911942666191432143551455028238711725564096677281158936695533142369250681885343673543730635675617678601055941305755880663974450413052109315386531337342205136874726987904948034746392732888958766645295114250845562599483331704129840572346961430889146464181201536467470275108852387707556892642821382431764144382906088643809546216001334359769992147229673713208386144190555915771129494810667875629853149473632435710050705886742714268575247565506019684803668929410218221965225500166846669558828397905638852821112442936264195058976340873428599756966019453156491786827137257858561361376805860837268572247251396874663332415189071689269512824109382072246628610068578400860268236496022229069793861167853089169461061052506274547175267924720976493604570583967461429060294784290842411410850978890801061923852936544375375758301258964939820474527000939371513774909948418819185810966344304390795053171526639361559073043415046811069012394285872701011912911204830233104447948871984103486955763890914806202717031106565351363262778239470471958936941387607543310397426154357610391773124973040284396855178504177489060799974810120808078761709292369834475589144597157295630544980503371365863126566644639273867248865887529327526453029301498034375452878724604556877961734518507909431657640297175118041088119680501855625738763375771742297122252608135236972838127253296209096915371772246001011639336556923756002254039307028590512836006065991050975227017306481070725764677337258224085478336694419278427617445007463542211817735950321904294057868301920728710298060895870462075891510535890539470637957482996193845527346719266296002061531108151638834813719184926118105254612807962871033040272095964910467732863266507127654338130901743140735598745312774767895291243786058461980965799841774252751047210576446327589836654737898081641600785366071000840856644458947621145771273163454981211824701334182662270100732682634610188319371405087714060769780727428338916712844609527105290540379777930810729200582940425372784252112198188805835778306205473172919587643371081425282411645032996211255619355324657070797485953981874476881530951099302280071233190439640062285910747739927175896042191999802239795037000224312654984400764948723251992202730423551179349185406870721894374571360866817312133444454373242643897383451927800583022717531437973487227290286442427934235699724284984797761656014332403886172255490722618605365995266977341981350966836968594002664209832583219727996940996801510842945229002970507820360101122998866530255523311011012692423782415883591639588397016356454539403614749687040272616816433747959374501275106565011482272343563870152314835165605435510478090509375797934244364840408133078276110177437414618066052516273690063977386962948795243998668500517833129064043734334327945902834844676774097980591320620804530414665838535091851328055527599470152108770174616988193854416052346338721929369188006100344661805531366730974235056793916447168408879246596916629003425492430745857077712893450996238962563583581789655146816895563463005281573217132299283090698587946382406052849166744996541652413048242118846312569610930883036489914828033044710109933951892509013874894434573331310393951198076873567309891123094559838004861778378442028681867416267811661180564218672875251349354971599627592882100465288821256805097854499138969110221037840916429044262984554723088039835063121776844183132954860506820374879097115215758554925560808811883507605614294876079608168807764161971199937252779824432169377976538781484645864907112503541413433522963519052845685922384039138151083226061946447553764362064005056985410040568914255183446915147943422320892805609488908492319534989805798831131687700033141156591566925102618827666876864399999024235383803456026620957631995233168409941127144723339742989994396790422721805496219554949449269305310473325624439028271052818264108349124530139453855259424047541740013320865936076240500255367661036756353327553687009310139046698375723347255390847143998396491783424180907071342453105788562316656349491694655777816992703740740688355374631960134031912541107423183907266649329116451396463624996335651006207927765009081968576165448002054482656572306714757720669796290706110206832208876115012321474326400433418290171910948497159597926101528828670203456083569311717868913666804063036641370156884545383635466243251022933427505296407466551074741731413773834389559977480579419517644338242901366558159060182730817800582470962404282147461610258219521451154871100868565773989959400550002146076902750257669589117018364507842383858879852473299400361139325616705010407779304665170316351905519536692507432076244908201948785527283571279390094427485791610191335590564507164571062794987341990955615793827896996321235315150881270210356750338831662576764841791128226825639590014200366643002017714555411617157625167779738834027924189962646652525083906001047929234585320929506937753661633643716469424799783123799514604069437966864483882787792918724911330481424871517843762122809386515392353561225313564083126372761795549233687135402650856544724053790891908860694433242150823637793910337622527735475278466582776774835679426332086012349247510906540730511422645008132387444241553451492239901523074925913579610297934860755400117759656235599685575465182218890681809156483661849500204485382152593973478372490778844310204467580926184772182713851460497957086694776189576481521247599158836472438531126089977341961615554805368293783174695855691507943111836750296869977022129281154548079769933153795183300173227151566624931638643388310649935064671808327578487904091086974401034740853241092534673388044521765996965471946202963320305066375524252046476632353790682217991643952559435887050226115382084975054940005353107329197433496287254427116156405462477245577670407493074994106635877126927222370450685334814918469304447237696095436003092916223615572449661234879464146363504765656289720045041143344437863594390518894780655452294238789852127153385500792666974256593915845389684031297917315224181261187940130554345469638648486370836848747751516863393945806498547646583182272034954840837989350031469512112899839924599753225767888538988426497596518678883401514704505160815205405158621162638158587839483248636736125157894997551156542389618993699923354786707856413075285646001508707002653843948375981303838642603903577749851705397315499243975953099869093843093438954800041126111351694541771119729095816210488230292680648765015399219532991648834902694097971829009983696668071187057069551372517537249772579249468634634415816384994341271794512860418143324304552581183910670008296979219549389051403237603962062103331472437265069628607326263919677204017368973490882546592417699669385913290020368089818457789670419174971492710704182904000096982042175653443634006316075756580056890529265670863587106845028735374027771967736981929757094073536367624722645569883936013603513790848767170435256021793434339141557845415735829328884652629841935769229218244099820798768196382338042566329852598513250650810441565339408412152759350535482807786854822934695157506302502172267120236579500681165454594882866428784768985830688562938681570763933631188503257854449649347855430727121890956787838833055542501663995194084699039155505224544549345705453652386279791185227445603172901105857169197816957808695087565195590939434118178553351871412093897992963734063368692681138955118249743399612407525857874760176612867900854257703624010403615401936932140762749444373648415496029729542608017678565804100553205798282686278291040325433019442247660231941267254939352342745690689725171856538847562117519745292231968667732090099303394505615712618567167129047381245193413166776787279862480471897772076480419452977549718165889559087733401630138987114650950695540326481695236323361549561833956059469593330062828756226357768381005126514744216110240825493785054965118357208092265041006497460425202418689031602736316509795443652710517565744341124128372434953102385940379407741991012524758896121766970287438842225488587703602013358668983154594634418405202890815596184816307395210957942502260477514384906634163785654545569361851079715483983687274056232330182902144922096609853599000080001301414704827523489052959739356802455542179634770444487276451516359996137566345148339552755975954093585217790086286829219599113618923758337051776171573971519147969781743807493019884581843132880386294923758478351031733700003642966833620800338298272397195809841536416249731059601132804659344091651886222322444208048604250794218200697243642471520681644652273795507772308042578561415565007399082202701528381403862781603849470916258041148083040672031740392476364506054346562406589655836905072334443607181015988804252213470534229893549320578373409393452357046137284811679129656321629340941417113562083570149575009879264941426314815121372368627137800117886782634222042180572273216891528851549415773184842781128814421305892286653059707054637420360924386175791231973167144708774000517806256739223965139328443901092862264759003071331923635464561934663365460690460215981302617033010605904887420061957843859586888765812137524996594132188925659021595644514528539795615955490280718942114395160460445777022061701323505701618234706868175622716174087160557359079857837224019319466231492553708671196921259369297617402103491433431317348063086360869883024629413155915666683606107409303781300336978896720229263490457215590753976023025540167056193437278938850412497765263079132456845580574290134615088102301177428685427086065581442235938666744600028492681195029553183303040631273250832622556778883219260680739040881330081441437221901534527625693434132855502084241267156624057586303803716598217991413988326236033907859593502441464975938511750386263942912193014690878953013873297361185208306573377927416338090679291043398853281303389193399959305772622283957575512404859423325228962385094491883848429327434162571451165957094626055637533687896845239030195813654239058987555551535726285177837817782118249725099424618640632470651761313384207394322848312631442585460345565676356807784125338774849422473379457109016746755202921221711914047350301010105713203906002123200478399197140143049866466122309269780985160178990315955438928287925434799390940682508176933231569221523073031241807653897938019275962585285234466501218098335216260246104115665150546271261173529483145925573206251916874926393742223059924517925506380930486597495614039765868491212148988434160069374308118866648365131672293638971133181923173226091889632362339978612114271564958070692552240588618508307894342183961522276551622661905457828769151817671425657338537660269016055059608420539268149267783251587324184262450821448533851612220164929486115282853439448651086477571955388321825060121840966340958702420325518061473136690332564137282005680107362891205300229019897031311105858859209637518572800744439197807233710388564399640522538819965770808527852478000632799045543967055107183602075514995206085377850813074187303084597608482639104849672209980496223741858061748775344139535075867134775570060957991053294995657638697211640040661276703375288745743467066569063947759603068310857082532248080564229555924795406623790243463228473779827219700733190580583170734453178096502424311104961125675922901515661043915805510807924524316671791953648020028730244903205010410267510125948270925055165305259374699871188559764147130097944972454634325201189085595341506373608481948211092669623299260258900809401789406675810356916670698789489910684040957465248378102668443856913883434072925549498756715847790786673510910012878096198435010415136908639689994833896512282384191426639145323484967279758237402370712105471417259024506594658383627068018147385105209897555127956014789064234753833680460812777377136182461609777381870772841959801893342987730766586973549866659627599440186479323018226763824724577425565137095680305116532254632381320335841403766309972314868223622640418958517806740129125999479083148741195913044540573782000300445613065285450199874972547088222477692022826088396862243553292315258325435012756986875414666129412071702056771967706418497959397907305077794813012166597772640348384809393822762422308126856355707408597144237260233050453324828910343568106035817994775675807784025171899605602082142313020034282040219168641765247743481890567182149397369643556527751180527372436727097083235057775675157711519143386840046768164355482370299956296663730542115496633313523180267711785587664082620054122656919239041538227893699788067339838375834324798662646207787111885382521641677599380182202322293053463972930247832481968042441125222947842412672010522705420125002416520810544621925366614321943232954128807631495524591590880230773688345843977888966560639732343227018975452055573105517983062503401054074551959388407117868460914942821942538028804727934228869124430420780155980304344001744435237457129428823503397651353976715278202370815361260980871540882608964111140865902588632909321379705992927090555961807648586921431210644460428248437671731054523673238321164632414902855074750166121642378120669538544778494629560128901770940898108428228861989244463472679334942285382438401101128422766576900176038225144044722795683968185622667799873365875589534091837831070353119354058100268103238635377947128843741563986795006677183799641144416696759259236682544560482419577633657271339175986636953507599500145546821423682883955777866515158982420111190928879121528584683938459131584478316829596322627895566929972101464511941219469022408754818285835959183283156040226559759002484304104685291305096741410988924945754632402284212963024947425057003888442208696104958674344156163902117840246696946873238769016338405409851940947748880234399721336599859896147446357136668762444940659629110093852410327305029713149697120847364955773924601375645775161629213732922008813918256824678296042286006033389862473616673030622993454342431712175150330725479304450744780504555471324650891076649185792532475435716920132062403514729147337397592061359625116010445666966299891648057454085078874534369471459474545790693596589353281430128549765090443829841459335667409165548788194690313834977813439930002299287752361118660789391820653944953994010528181257485568842989666687488333436435815749211685071609767694930739612148690967717733577380265552681949530966671639368928725020038971710777536175110827722225624874559107142508080443592472941209736501657624911983578718055496192843448040280696857289544768778648239296352526697688746449003436750088883336704258569079290862192295391799433101043241906773280979035581810186790203483444047320250909171636422901452864885977262559301490281383628540436827575921638709598774857733676960070772794992164050927721988739721120557996656476826726105136878591841291559644196963344809638946107873847181305391553426601721484726840111064759279086808693377784006342331143050391185309730112084618454081737115264321247273734962479328476328216633278889088606990757015317002623667025970223686353789458974808921180642112319823858371103387516458029393077932081866411613053370912402333096102990474540271169685797208352101634368073329737197499619878187884655219603374191996361988212658235093931064804767099834648768578453853106679894235155622860215624044238292934978738769666805168776473557786406959309656056862524075174686429221647564046331423451647276904103479751921954568023174946878418857450847409831391101566418890578054099123278837732728124639905832971805464045855453822026042556435344573871378775185272148653093826488334593213256194881373633192085292914774581303410517342320825151318396798818694356310930465843559505452070937205124319882140007252777345353249324347223387590763193887354016568225235504789319825332301153338486575074830595718795382051335493120958086058719542922283576088074566031746748186473714443314943786456278737501346799353284263489015376321786192749283278104834131533542544649155575959233857032931852628666511791667988748915036978852544206412056316471102034484082860609925558852286668148900543202134592325533031152734366714528502929690940109039966754588640551038487795529693593444034453797594713568716862081164394012422375163817177384274351287579395761573606082784952009557050667794050947522260449599940075642972144103480462048458859252935657178817777397216637329140358727284874614661335332740906635076532241921644335999761261465346358918424416148814859680013417431614456510414025807900125369811044962354980833406339789134590788812820369007385891928105824118461143090522098382104243283881565522598366055337179595369096879000081578807701002904769144160507890538938809293601296318906411525273449209005062081138904926916741657362557922551328585222142215487279744940841780750594779297473510346615436497710575609862409415509892412588066611730052194755621834094743466371812272658791370178000686024270468595299264884631067669677543468253262917361433986852410316490506571651912708616111876326953800196484835043400443806523957964740483834020235444881009418169459678489606527739242396630267742731060752450439750653207646883080814997158055365667758100635123910883701227347095725879186358086211702489419635636614080108718209410552068934777857954848935842620330901884401269744320705200300125196047808420747465575256883267291851486411452669335883829706344042839859666719642125251928333750370891079433324688602263024333652263898286560521995944992156102598852802955939640713400266158345839463972761607998523260979342150161835363755421243812678961085207299487539333055749741506808234795518334133228726825223385132419427073097592640724940827358840913167942847431304851654477751960679602147973854433705570595347130354825151425866066873120330909495112281076514675025212646194136003837132339952767890807840657800877102860455851720657208571941261856163560428236685498411072145802610715321630709726759304128866872104380451871640776903886115417467388078962858762572452815490365482634675216396911555714003125644939703654473493820339673050319267939514643507059689131300932382680888450941060682323714819937905613707212768856482948495198110073187840166605656605544577671900385734863835447466985338825251905538693009749705726953078134049995907750379468957782690044226510572766379741545209485086603895976854382647964018501895784154000697118593246998004058714499342131399665494398905585795110849962661605335771847971796822031899846843427879045639194017241270220588879006325430207895259213828823674829624242135111007621918725860360718834066435034917295869309746631058472018397189272575006114368538028589714726732340896728007338801170798112670234912580935399199623071174214611027534381732304306022213637139510986282279901035076449342598237109430233596856784217142145427267546241166408646169520749157208378915727552455596936731460691126070603837263877735676713130249645171169164894964753710117008386327997359470716599632684631796818868132326581381226228814861924945561632221119287384878624668220051865949910654421749756680736880647427299085891922740193139742310215552974602278653489832450713852866825942355508585802362418297863967183140669366276872340528128033357575860358876830163778521715971468406770923864438754831468516635084109918283446749890272772555084191587235651632961215298356217255150622157941103597008937897056033993503974708198411145912370426887095286933577183052034838410949357057599996015869539836652007755037365304138353696427767716580030808507701442953484136668521606219844053834914320966180110290997153160555519249733743122461164414794450560826799378098356803409191286656345829613362109666723439918427135408692443452924413571785445422124033814377053139679541907825050956024919627460864743984415045140182590390051653539227446215439301557188373476545439602883808806561831922800667844073503249528282380299519718190546656734367500532076525413327405183659317736758230745973517428672006972554917184051252404577974198177166258209793210261947842149665886170378109187050121825615889065126347377310931650880224827690434503853910775419849862018807777318662967195339560175536413931626133395490699494309908182978993532518830384013543308609756129771564448495549520387380648359880644366946640366861753610031825422425609078179064849054290319227936594541714473594204773507203660004082824216076247320443060139762539330554210613270323421530574230286574046770454139763196367041725857596948661595635574002567679265788988913602228883690514886404198184093268429732610653171651646017395283691093189496522654348793280704789457427195663866558049294249717594243789785497347403367019571793323117571807181262182510412301286939688958406574298818827042768946769928010862923751339539094915336496539293911822858409373462935202434633267800469483811292229654733386069979098620326828582981389652930129257884335721743175484138232294772468181320564120634546692117555933534761448314751319596920812139367855093985029044926691413844084610378290033866342207006139242743325670753308969470257501230332941846653897893200164572033831761984309687938515257442018760204505334739027250653472159003629567292209388740287066460642461311908246626002074122569201243856471004382660887843717550103462993166876685471611573516020825418957546735212084774862197337200455120460162702036031427059137134346756830788167488491260438908793938000510496642855754452730736195022859825339502255200691209891989003273482450964768578366218552647685002444726094590016943977685070547513180485848352077689218898972810049611115268675098525952417400470508060488807048848327832483109766313282540135017359831161196516114268245334943446085826126093288243445978239331200605091419157408764817756740120110165774016521906913859845477993979022927785233248712529518265623829851575699470542415857676068412076925042576854999492071475833541303859759906554710015764711746518995801115485551416473674624699738915007093551680890362967656322108963028111001740335069789216063600311007291186990038375781642505799183430145015248141573568180012422047388643583937235342812795464675520808562059693629841681679148115185722882134017039097515627883677899388326386446528278416636443984083516864643800488634327487972598034982410362389073806301059112723754200466225574798070950538282610687295429768011431854716183102884646103457439142660904351656897036662667959069606512857261265619354326095826908074866892578499528694481558837667272598003906662355124263705715529145499015981077813030073832703581950981728110187324156548336896124078017423266355852935230962825159672963650667913001672688935302598024345605249466256006739965597759641858022353190279514427621232003626701895923996035693371114703004239771365186718603193553222181286495635047965826923906139208501845720488849654459832554608989409308936437198726524920748115229276052940054162940876252922666426301782467733661410977803982222366079381908558012622639171343796629867610031313773443192032559297034941423189862627874026852845488833749824749810143912153169186362847895411949528477208560878378461336139475584688359353864155194689429325058704831341288002425058347179473976594244965941372816328065492967800024091739450000957717721601162704707041838715757855948564760289546991668386473646770219520322938777955262776622744967863893830767574168056240724720600622965366538903812485788920979066966552232828596420537198390483012768976624884329570640525753701619495788674419826080410891312372511774498975711904584774026551259701387803070349147937363623198507532004516193362494424624208150945037273306386271941955836652373557811163598618209485782528412141533828360483192261857796359604574869775392829950879548281347531665756303876472448950444231886499333623477096959086548436950963701511740454611721941536729557086179718924302766275026479789981709996677412769080303947881163538457027020084704556044362125797160696724403357128325544712914222719576647431902889190623949030541667788287003928122059110993576772562557604633472260275198248399285537510959892176577619264005105537371385345209319867648041543903822333782691305880616637176030888992055078214409808055716526711492146784492032816690247815007102599679109444211561645238920706294255145573285952235594303045672995866978188940142289184404619774402579150909468321022077140354058904100847263950789314293477671802765500097245904287791779352110171638313380922225122839569183428895703383977402026681692412076746302770511283984322704074633363913241500949863040970800949487454920757696884055115256521407362061662973187691801627947700398807243717700827126878969016894727437788205785723813086114718542941320741301038350302768279780610335257389280174214793004850389216884430199074606901698761126231411702900410884531307919875866841507926112026902549444800735303382745847402799839277565615844208250550923795673423219740756987210952298179140879201723380068377193085653785962340269141395545065115034656208216890274392878078315346131821948199598014765822498509461644647444574156006126848623804721655267324234659894814202317361480903951922967860433611697024537771840701972311580471862027739151984675079558028974133894536141587438514868823489807142500281312354523959865056941892853542601572614560650320007702910678411680009990221220271743677788698326567538518497642240803413653624251317776623548487385174460128645556645561710550012867699720541784762667765238932649428435397367055976828368754039529589851077827985826945865633446785478612013618487469899055806386433226591078192988517050186954009100577590503005066461596624345948070450389876673837982156016691692675356080027820521079623138051211887784730071680278282832550785564230064446597680785476305039739544505243407389639455232723023666741071383323934664896557685537660709141681437151736825085625729314534888684301641892498315860384904083967582035816210364429470800507528201894527860029001614983373149693344155656862425644897147683887712404497551089262517397838375225123016537555113008994567690898112342778013467571327836259073395703545031246819322721711649168005486962720989755030785966043113001722553255018013154405799988553148688771771205523561144207051671423628300887788799693867685342298369197442809856112233518089020788756184482941388396965253526587090053071857283848850188040746609277887880294982880831748468832778941567806338639048788720737886524144414501329713621587642461410994460277511918875960814163819597348621725262188178481744358304258025936552208835847473817411265494983277639118453855877047683090813739270475941830637616192800903713562505022832620599413494280140802373161426015075188166463838828507049771680221078756356817023898471969316394001771758702335586325026687207744078399627197639777446812123834787122110729673623342784945889260442295610438980997305894115211618891323551583374654148127476890418127185554612525445791550752381624157167617319804105821595414206633297170677146899478562238863649531053670105109744701314622598436574372802780641383841898463885464794800340976175462142412046297122753592343240690199818894774202632899651499880685892466579131934345058503782146633059230725057448349852360410890360078920652523897795664793639123429326761328768913580918854824813763376063412805794518135916990332927962119439040864981059435723114912414653891536156252633848021752885900127185565596254614049650891883018463895484182153340957132546605181051763534528703989621350957960894084530456565650146554295125015576308948516779772469355457539493404552570171427154440070648671159703615129987954434862921347256305155878678381943248035691975186867065581795238298622611663572347966479984717346374030650460588406305942360097847908667710050466538313368742898208319352866147334682576689506987662200152547722050072326584099672323264852523209338624063907017112738222574412273603035042961472998820126252417265113151056356334395610304543266934995752256166065259710286220209129821589450853126676369351599244335179801012510530223884751373374548376092424160524201776548101335983005255193403683908216213472669734145626678975308035082534933347609108883449236701088011192505009327065382425428809478567091069828105448475369134499673851654349655969197110906891427772515672694339254397612541927247328784165718288494180400178155351314609533761147590300765707338097478729514049330352168059498725203150687197982714211763914188369504313147243310998830995901253507100016900129634688103764165200223509999033104781185606504211871464453413234177085013521649414657953748819733351377667194856800867388393775618612078584588502887231935411594664685162573356461911796139674720723462555844589354810307977679511589189144269870260161923145508374498210126786138122154274977151081605122690724286245956028681331840166954980822467808580637838755743937814885380916276701841557990051218786322444572662966640555146985422284791631339048561774485076375587204225081096866000724221255194139023529768171687581465686688359280043800999892132569736398108502203009336227430968470395783959357829634029574841018669389295403763308404588628319439345028590767915787337196808473201319579027985514181944137992720165807970516783762401650880531932265863379295622737649024337631406886149129248545990936301420152169192465889234526808752431985009487713335646171589638581634458679400931097394135667358724469430743755815522491822663511879991324608792797662298269097775195754920207156011908846806071879009754974783322316979293492875821824659121627348168344914815770298740580634848668022023789454181902919120109845684235813771121681064252011125713609233333119157781527864981292245939353889513997554024114299350190967904524944155523419264700068134934558527589993108109576021026345461443149730945493106443505416324600980470888164351897627186582844452042940768530454730559385126072963441355006025775071490605581408121202872416383257296441533441784658297058663556674030627080300705367230590649836952645150312864082886544053082435576028931880898005265914425232987171041767677558458988136107166775211140549703371119028725727278847868400695531351276376814286646831585152755073007953797499959586230807987633660781187436096447382181122731067453783071100512685852512089532879755492097123387924147162241863290966304419815469857902894407426909427453653103344637701706768606355959648059401558459677582277153582715950584632049196805244972781255391721677518387198014850901099292162031560306106660380531069256846953749906944181149959805966100453954785894619361331549989627329859274928778252123484479362644408757429568584467841502396106750287862112162172448833510832155650725921236192451371723156957908386624813206273303803981867426186013883306149045822397276594981787312085537761603314654564151779287868595905507092695845288039973929082135110497924703614944430939227739785181929728192503029936389558215945749043269934100429766363970465599158095520699720593386160866642849585922672739623070667528456238290845515054383851002014209379205206390449053228223397856915758668573750979474429065530785009555813096942505778720531044371827844232780180599445032002185808938544929170202610483108371313844293044583409963485517714110719470109023067443200575285536193217940065116788446931828636794443145080658050186065447073362759624528356902207859413334936418081832636585235496971578514910809866779949630516257473094761041182138965093741920499919830180830654970782988683480002982397071384863061981277563833585502630258113651347324660414063821496941308310080641629822123368943573376155661021797936165736092170352955265637767703428638982609027479668159354994357733523838618745540975360902368096685289717492155860576260948625411417771972438318766432958383191851365570073232141659213259333834565795132740190645612248364085118249099270149322381773970447941711105710697703389415274812689630484822690266667591611188821097819129961432622754076509669719374315927126359953166933430343877107425761623110925757975032022982949359106393515741441086894731918298407955641087753397301302794166716736943437279335322040000264369366149058801260737861715235319296088094892987992662601293907041196436148689960577771802267234624716197530560941695962279215901879873970116410730859465395543646424110109676106573191644418007273858828606773386575695058254237879773827804983561514304167617265914499335093320578661999171709026122017250860559397578488716273628323927055650599203164413883011430679495881682859450229662190697971861070536251052919547499650873467087904635013238774517775389407185723709373285549954574518500572628689795290712514429714679256744594306543042213128197574188480274457397427698129250571593689924425407133398984928113927647143283399741634143792662300788237913404882774660117563255052393369971038187092080577077000473535052647122775539001156746005742617309510271550287298961169140340737266130712932316873922999134371472422824112643705496220725780943461497902645828593783300457633776407271150610706769294862554316667322999085148084960500668984803486800929155664114007007875240949038762003263938202097397642065361905213675580373817670400869094700369282180623215854441334881657061797883304210533281510009798631755922405053877670694963335550576108719501883858971413284569116443252282812668909023287172778273429164958418968219352934553975637793311158259862415470700697008851141444067544590277500410872887469178710035777777038467764012830457783192752629664963010775416636520374108558031774707798825212622628482155999060884877133559411428471349378526056185684591811515472608785503266817414946398399174285118282528090398212807108069010488432181959038130053275590123572426799153386225388045276688822028618146151727145813286253662183896472613903917321538394391878126472980468173129835125598185992562438967839584524992933390772816757241429748840498221337208928267762287810435964777418503536196102391116506095209078899919824274089019060069785044860010570300580706919362965246985341318325488982735257429508119597468725884378716744493314116893763648523068649352382968334545477946391512860216877288895310749139964342666644764911715149140687522087393153416514700777346133602049813870858500916356503615895829778003904797029551816591290527443979440909958093070749653929653808814863424462976433731914625473870706126652136770768636895869375490669377981302576941997073519553475994188111946761571184161597661222196773707833152842631396210715236620470069312991211573116058873365980507809473384170145148167672356307663348304268010326030185330584186017748360774931052805602093670241039371313550831062251572669414366057811332791210799242337450195886639194459447010622110992640664197403499354731338047090782039887620798409993433304727992233995768624010107557309556895820037318010985369703098672722727109597305278938118854132655231456034242642741271406461212074299567708833378307012930345657360854200320996871057065111168811859116744138181412876848340580551983042197649687327760881669416878136724101883877658037512282467194292765256617545976001417170144071651020733092377284412432597441714404457051440573584814622642961569682386687301760747350076321085646393719292922528774428413167056520545331584567664248469450905644935279308383569053092466939640225076345039981829446315084425685499514002786322725352638604017912543920773594001479453674827922379859535400068487952550884586034188338058152220638765913828578747865824631623928784108350156867602443236927575807929755074927861299927167765367552140435971778993179010567166505168319761508494985133164170689303624236053407239297874157955807794038865583447854286825405247751170610416088046879299093584299321679014012835933004348203083162546636610759332742820289925300614844590863053173815176589596859419303935801948998940914815143718296000034779039356827414249525702920761466405496012598776178253269597476425515077846479805784785298952255908701167786075589300907631819135894520664659891664495354522114792511772381978379694281467770787952052112801418106320769724955644018175023672791811629969989295180776162287848350300399106999503242812838815251952830386259731726366524240037296515289695051625187857259050192368149477042212684963830051910279166074039702354439385985491074611558392826715641803807242527234504402977746682748975232445766930309555892897577237472015182381369730636416502968135209936959712917148844670799159180274787910525748214457394247634004413297628894305750528152235221537280997665857504872644709474884092259496570156133377818191686560669932003003301241041413104933305334593818660207451427947304088210822587998352068583119254091004580076351898913040897843958559241560118198372253361860927672765958399214824292870053113953488254683015509943210546570068643847216588831812959104521442375857999964398935200680664182082363105698199637182154738459602044049028195231297785266308058676947540112937796862112929555986504453571459650572253783525738033449488704139575292875496084808349983373874271103680912821613834710798822650067281385698725130306808819331667038411112784589253350176050693529187990441900803597288682233636271996366661708882670243477895718509302694237123481704432226685875302800207110655431634879570671889284476476436819645653438856987682319437269035153421555832375007622990301954599296076731220435622594560281242577695303230116088003136063225239634001033250663230287509006829919013203646899883974900110400293560735677387238460230472664962789080202290047042117356572832438472761642038846477199201884496758197866890315718118680745149947946043111978416315248629056423283107632400192985185456855311441536937520608136817420330646454604445432963439275461545119242737630583525257857885694127226991414534248419781422729082324086732939617111961457047066418216916226624084019773987632702911550209450601573525672539868177999788787344190608829676638752972705271518678411577991327352704275026739263940983416455549015188186912354532081344145448908271059922070515746638664444271634397843616987851897174479086278164117692806623058578232459678256204269980782389910537097005563998722588474515802698137907085297389303495249118026935490672904150830451595463360682734202264104521348426859279849507089329395945317770256668934881336597331063849394644174784177376062855805542115848469088051244300549262801085429812605202381456122101579909948527067950606705045301644393437776154579058863972501988207855738040677692458619007767071664220390102749217099993601892901340155803208337502088142867800463600095970552107708704458498472432751151033501209709960384026629686968552505331328791233666783958876273326158712280942963684339459807800804479996561755341659287264173515907203783679787013253571869601772368455017055935359850436701051348088392859601285520473455104634499583523701970338438558723891544758988697727429016669533867731123376003061005627309271657157647073898944295521232023115474004018219544957571911340714233942694917054245683909577978026883239112245986455459555684232090656803617134481954271899209320940655363051655769210841576549117740026285557670937195589213685831234465028123539946767138922653033431535003304347076873088842242375401406801692961037149988590817183514310393145546457045053615176694416523969223549564140254221344961897081056700912257551593073025569060596412646244132469914855029134226423502404550777479280145179826270740386644654173772228173004164939523979124703378901351361670928161445031103239862211877916028348007483434213068271853147535544224312700303260914948475346059863548704798266785392849745901737781857483681941094647960827213134470861154637802064355272382682243203571028938689851543462604726354703085466759779063331830238069424698046361211026520656534085141098604683808908700270452876419567764502558017464572837591766604133199758628573491254245463800607312719662888098980102114250149794427497456033980166170624270971795241014627713334470197612910669647468723222066446044594227739930297662399709332394708392646712821767322849777979527149222880904052182848565163493190200364335795219002627391892554945266077221623949824715850559219771349409642427717733621832044499252480642208954370436787595736755536883746514085241961619044564776571070730149816160322300161106014484184703040309465852505331539569411894027213176507331789361357461709818509954689104139701343302664068846451089568313752779809209669694263607820845342613187139863873328052018108052740887716716446980261175066763502745601827204452721759226363675621701852297535920285610236147313032515418309545679243002458175862063204290907670912068586173078096485808510807200443209035006595564382286842055923529704152125252875785959329366057777609732980438546826391525636338735216928607391292831322681776709713518295134611530772828781379067336733593360670709816948791647947736765392328610014421826536409306609704960288913120553592761503737811112895395874745400483118736147044415808248307575035896055679016121884831317774023216954725538956186733023474623055120818815353950486381556154456814600633090059902760716950901886181394123743894984823338623354503918312396602298148500005119976547762661170218403262893364500512954764600913667909173341243838100747690590606842635130721453442989660573906440506318292521692510408940513223399597415946597492105877500403686174062366850644137567349584111777966753529187945126244134983355540700507453015520576051498186417570113962056568860035617369626515932626326786681383878246293888414710326766984440498475732877214551368474286131379168206041976060214997726315009486381309506067380400258651314705092372770923898107323988539798637785463181979598355941111944551609712518733662585873489751738188306311660188337082888316800699382072330590696208758591055562652271742698649458987703003390378347426550448953232135870686112562116602518876872439395441224632737558939358932280713672728297569997080795646721581272937836022710261802991400992126095329368675667969255874071412939372229172838973875957627887576434976204167985647819312154387720698722363758214858529393089150175068510370415371768862476489576519063757221002865605707734025931845728235678875659628176418209677402905936255854568729021583126205346476401650874710764105223029275403471771774250677384845493000554712774096191383834243872698431840017936010576041756768645095803427220963994823543358598396188231826149066084832378320526153113411179807193761168504788403732709916138790259996334181350964743255858599536514595730794860858358060175177406473246797236669719351707015390946067629723827945073853532236142557799557776000040013124535039023988286749865953039095263662426962860445869564450955080638559287978248109879144384188156563818439510190097415301764506469112578221956018563517447456509711834085133305741260610456320256276704784854711392856227512007770167298723512074670918620391060410886606915040996771515628615349015654274500218542300786350719898286555948031014226171724069644216382650454890072934838495318822104361800415998141203477372280403528875555261501016718999974565981964971898378548053428540932878239876826281166229209947798819879441383161284684520243072515352364851553244752922605501685851629231066275840160995155839822463222275544203069734559093407767168625471023598056305690900221456960477416666334263970168808833282094013139562080848810486841392821341368970226651555062473462186265890342501774419507936975101974998369185698358824434733324484794726783691052195377150845485709628895571893541756655197262139775278726873839595389199335513795441118673716618134463928783112929606147195390359223911144114023563953487689099931586700617521283518249974708768196975621405027576338019495142729352673214809384095170462076019543217061541592402197838223892047663367995174623585534542134234235474699058765840221998063433342994095651113403790811470897410037222588802425242570156708622282870451651536789927962725929466990941455775148883488170229828402019008832623983834359119007934559212156391814221976534182391334588508528539124936366424953743758305757811594303060340099240251906294143884434678227408830136606446208378223580709031428879648992939403604117370216541332392161978446817970633188814679738390075410317904471195151603831862453283951072715466089527099287439935921182069135892346293336987739237634691150925960927726591635206467082955283700659744712481386798106177108330157095011700139392489513903127737878897041300733844663890283345763088579087642943748178056372567737887657287423586023293895671153781460613926908769210572346753810469934772961464573655763392462797854120215043810100728639996874702168813647194919189390226369715760167115726095790080458544467813297984273535049453329529635562953900529729129287876585269051034860083552608045851604266894726575227951016706363339146313135002654386807148057264437431115510027788141374017924397169142911230528400493727305196617811230166815173391158222341395162803804390717508945392451156480728555070780823224190030094820557944121369255568621354786731535290843080369422043567249076335573878819540584453121556058916484897756550114297211251140182284303468974728872522572180570509568558793605926584250323849024428480760441961449268924875946664509841427020002395647835312737399715426636686449006421795709320404354741761424067208095568481044920607760734962562553041914748175602511548898547486772754984214089939607287788366477405137840020343435048652096113277848343978909389696436734024215300296073475629031831692218151345333231324256054592335172198411322874590619972518222566851421564347387029543055682029642928902909594124157497664698710949886887431040101725170596565434158794524726577984010144674527548171242073561289320282021166157578137512317083484253024907967055512074452706590278218275752226275011439540615852954737972273019194914984892109201416184682911927826601838378628006829551945962307363937099393362401170573128526306532591858084145928795117470601895295321457619778884307773649193727065938502355519072018847883156003028273046066789747006410256254443246131764316721019789797202100034910879993253835329690437262155920637579571041989102915020746958082288389693233518225180781959344404140420912943821093168068791667046279612612709823890429725695438872571224574707068148366170812929151766100035633944713557675326553617920299553378123826414209540194599559518670617021574105698183298072269735239559102117003639509557177467448031240843060909368828910070977584438069066619848854780952371865041647257939042485525867713098076435669904626603330567608152287932600296696312079280432104358963399943208403895248765133931314196981539212311778231257597328636525361923357193075525149031544707202935764828558458614609364623870247352703882038239995954453869264027335671916499202253844458891315910350045914560753296334856253174010069843139525604326207764220248853739198337613094388971306937406160874830549350610800023434164538856454015845296749374034861587784208439374611205033968837609219726414236225094071282136480231676585465267986226995117890688648132002295097787063489426644264945322868773034968844255890133700748746278932408829059150151775919497630084696086882020901606851904758635889268887185972915967790143811848033627106533492429484086014523801012571536153651435244779824915056071635572903313444501274299652232579022019549598348962773429881472108061975942438045539960971588980347588540977716806494536448513125233395662759495725649706479613565991609516153026157979772806055387056109790911390400966900766083409589337779924992056134243502683205973030078640866710950520953745112676447799520350523417397203517545245026722857985520623779413486434171565675055293902782197373457191200289822820705200358912565948496493538094742870517789117301770519954036767978519691860818069250625431354680409580149155107790916592913676311357100210253767378309893892628034103083405471658619365933978079278294296030503283982868440714611109375416497032955002351629589952509030517544256942506180314192259807492666904584274927303077728621686050951929506274064157653618477043615881733449874264493807862020352229329636734442501778076491352025281787276904396198349158017872165075729799544039272327762417066923227940663266948970084867210240081090868385892816811695474164940494528461912553568730541672319240843751017950380341185696438285746505907379890966719236499619440696341470341287749864412795709824930276707417963063717385185845765342021610152473535343814512289147936674566034073356764216891925240186031042088181681608176349411384556204801783321799047649640998312145886608959902363860630517603608011854324758404031608704501313972603561382812152068642660350278277523318083048695665375552079638286706601046679980538174344927939269058340532819273383927233331656452740813153556829100963247639961626137969704733428318721921506777704755763899678899650620341327828901493443855004340863789808289521247626992011751194244562758077511476138028571226983941863628690951602692444143204585044915457470205953856212868135736411480414977796953562676872287098650143570354288126696781621571924681773764165058492966226966736467333701296957144191011230416223389224924432933881887468984418463123659321997701546170818519121410710340754613347170028404826752263302192394548807324655690245460716732156587563385447168946599540903935261795658131577295121941269577104351519007300620788732089038793610984178762329611607616727684878568651778720804656735135356157265776189658966776629882314058868722834171974145235682577609472241238892038298076421333694501103067223446611723340976424618290347261936409897961765999711637509153264518137145077874374958669216503509161163630823932824041181886994531866226846171368410311681931003136060922077546844124391775847456754797255210295969517083730606614080004504751859220061956381415414806430223173492624807939169178803780083403474348662003492184949084696899798762694341238569491975074518645672286954388385286613494905627451893101015771976662386130679957557982660748886441320087751655776609145003180961756622185953897765622414649719928426829275954802973450592172124315708242170161012177750763916240189920737189405401702734019851604455199209079936892939937464951337878562273416925131426707573155230657412840398853033309502942232612027085110411206866669784368596002536954426648694812631066895075557116414931780138697563022812140079775431664747247483958464434258151585803879435339597913974645643138676621480516363270859940279940787638958739906399056562280060720965276516885284222403581670153160114142733486270079190133229004224237359115417385255872817104896102478888375097546961038511501468348846110381000677304727141175577002736427609939079994085370513724791407365492750702969425812675975650744552560264266109825857115519614711261346396064746134909382296049947214635570373548085217390013650160265860694599362856540336394349693175104087694568978317816150760236236712997134602680482767195715404236737828101018961149673434220458230839482967294164593728070927870115115227226695039646109983966883185969214792891875512981253584493807961851533517978233547602463399454444770113778883603169091043623745002028189031800306968832912856109102084002235145597165619138571335299960929764535369998670338280043863916226926809936301660652969284854150236007874992359341562745936454545937635727278097417581941254897059207443448463675470969296231988811230273528644694652384129678749632216803655801329869336199532730973794931263072719749646100313614893190604223459052281620380146024053638540439071390009975442430374675547371275750009722421147832569991230910242914992135870714876620273579420472507505721440853941733909941503238054486448791888281841934080951015131257640705793931954843783747335948179331888580958704197414047985928252055384971720995214548767102343082126244964278990579458605792865228398463514710457966161478871122721860518259431196885303286395710087410282472934396386135570824095243982777101183850540846996555166765721490294169106403914344136005024578750233044907368586518344973619047849456105688030447877963711177508417979304453808293785606222684655620430678622242809571558466074469786207470244679446886990616435905671310836232722801755555441015680043548496141413461208956673144706510717642019570062787944416255113069891017954609271696546023486075543899069808122656771333322219246247132234527003805594358947660070333291642218887699130006249656294984474994946386895936350174058007176805722215118605537824251117711104639278606139534151865894499876663869080884232228454867139533347100402019005244106024231357329571140448056309226997716194057493076716713780778948022016142413664802664270411618961911285557005088346951693983218638737027482074782832965417031274943703573761152320676421157748844928149034973110190576384630233149389588352697704056650562806765880474429789388996075031997259545942190422131755700691107243365238172777814593944877795059674106577743306389387831575662526909705871817561869910035249148773230381571023276071002373341109399643581279678694522145074585755191223049134497587821292401635857283695270610970456983704582577111271193691478803900613477699521202413605643205584658671122996583811322937791586755530115449882489256864803591454877721697968215917230775909201891148974781742766155898500011755480201440625066639021022371476580859088067661432631451396872178577608307011253367263462777830000008220892496347964278813505819935477807527653715952364794571530441543194162176046916526534973093524460275078970082133250943885410229863937670595340263999903105496239190533133807817750280157103671371359715880054671603400694541235066510603259920575170877995154504010098577037177318161898094215768828996606393202469219523551191253915797664947385043191084809483755591291036304281640158950959648370332057683516990038905498909580495536154813924826664536167195155453111746989510627514066508903415293700326497564972608302414701339863137465575799590150595901744145237853134842999913659951550597715213145764913043271181675249024138418364775865601775607577128208612798482914234451100999310465695165591198613403411925691997284695632498218677747502458124249560704108293881431488733753346380646564103825193373998294443774610803377213448130734674531232969427527720916115315159830635918092293858927554103832422302220256896177950097867329066924836277533304219793006259885284135976318731260329865447642398593619805543714267115322700873743108339593706171554537763014839149209356340207341450653302378887877707512084546766114518868338150564814404522597589890800005052270596170615707991168458286480051092099405007347743408733370290295003434253078340940940870320678528288352312211170808203448619301632992848067649566620739359890105902448633890401471216187365134179897060009312144438174186424276994353961270898229003880301282138388265662322400186874720005252215513811743311246081545417426651746689574243398697138852311297501497807356796369405285821308772541824331019601220040796068092390525711171205387468949519539190364146480660268135652826781981121130798307623018249243435851936494372674888541748674427469963040557034533822871261995440199121812624740592471090398574620750474621067971768023088368611470541891833523481260505174800053445697563263878890071162580878814155899105750028154713889753072885052759238977580491111366961873729108258392202485543746039443637136384376260350046730142951853398498871352658432415131846772396375561472788449030416102712345324383991317561107359012803845526321357840150306491365980343496370969459866957784591087694920764745309594389836571198440603825975150743221290852196207973535027749946206277807384211633617092986959691798225792960188029854654247936378836294429710161149041925552334900819740826180339552190759739837986819412454319950030006402440818192787257258583587706799384398253056874815105735342847728312615458266080137291849596637381903281477597221079666147593151103111088583738429440791126120103381342513048007110829848052377613336741135304684115566655814172067979250850467370587129733260572829956855876656289110820439496432557802072421783039653630539336559110972884008747534485278272488318419675860969634656020583012783537171489487866291947015540311611856272558169602987123043417058732273311467110330798378233671705726274568808081257819821113100754287507916754050089026644429174246396418663999467775199083101506947085783972946853132736696490462686425278575068551838008258148179110953650055493178436316158851851060872904523017550397900021700937829736779622129943949753848135251582253222583761897070611400142573778985847344926584351885694033460150814612792989473205929401209796408966304409515567991541881991533129403024949772714145203034479404742287964432306066000934658823047617908674921307306692770450170238377074858716371350437420718141873734099251760501988136578484937066021498626638400780935727433261913365764643053551345396090341211871322333786482712143407361391699941578369582274462379108021145168887845314442972222755396415975471751753275329175086564136108500014315880159291372825354142946634837188165201205739293747868285304824083603498316413783550661616145288498087466336332804008275689642285825124803245853945890756838562962123677109022700933915172288250604089525463637910946936437505997088985087614142410852741204102448427027092446916833550628719827003836268601258214366623320115486783303134668074947509092703659682108279655338703284092244510593346482872509145891665993083688231754885260550719955622030694355883970418454841056499835127818132591798662055811843753270592362348593736179157718592504903197268770817203150220946489664166621538203575007520193300341801948722912396129312799435132242259639183787509410367179862566150157716540641085109678857083582056606840257176401302303853906049292920989009908548299578571033753564387199756681694835674398296495086438998217869036692025705875975920645131941559186195327270353800403942343072754891585899965821297642311087005481867341678902170666580650881056825502282340019554299882679032556646584123390726468185501479244807134256071966626529054578503615665637217770263828577432186969290186532943467798951622146131882423445175790269774116334984531914041841302702902049268447973145640064202493861551845993141360610964330092388166783840956055835976873048920578073067324995247974255365015682929550808669440625201350943911664464138589239400753599140431738255148656423090955857218928170512449882868063194008695207302021864908724567519061727475410656761622956534451324181305447983202065234797888164465151717125273284708275738928074845686839030885826159811521175291869752321285195709708498544087269251583431945384660300054943143392212945027068325400271940679361975819451458496735677723251735570736987373708159451856219385274778404620379234723702057583530068514795535377594030068335287645060942164848477701504983851214998677764237511505529988919391125233233468885503689972719826619388829181926159791719533436443915118698320355244482289851273353544434563192600396876727664323475871708129627971792230534386965135995253690383826270539936911838698397842450983913965552717918900761901354928388753291761550210860278220703323368019017914227700666272507580200090940094768310245196820017430773137170338731047347051474368394753231501207869106597192523023210704498984765566807649275737538516943947614209201064057405833324586339770043058799362751430616659039633540754682006442920163468943735446046489933615274116577550966452787512544290962194851087665094485459462597594377677512933829531566840299928035246208675964882237395643825512107256398113485076885721423417738814320793078493674746218755259001611507844093995980904438356885464270138137817855437646037491874000580438533770027565092133025047176397619825744429000434254748405694875065380008910921606205704843918152881950027418131665765395748540934993359790859991088016922527156220643017787350315599538877635980412814039561539520215321057650337899788619408667981484826557713912861265802570795192706670601890724759089097411248205543416163174991211666691697314913090438906783995613334030389062289324166230047468919349312065390114447469007359192349358076323087218756826702808525411118462257597981187534143582470530227884818701731237779187135176956633501197984160354606406045613651546077969566589703748965269891720640545190243439845939777524804402094514747657885186664970891303110979772480922618594314866655596752467319479249220546623505554138821025009470220065501194545028247520523353457111762705441399371309401102749030784868355110701203451790723253835658746251850071368213251644172013611081299143162251041998400679742891622722700554592542884831774097274643838691260512307744259511876849350492889789242509360375546979284161217211299781257170846888710856698166840215132743268441623242196176513655440486153355583775361576491582895956321760846487969136600446602712489637178115347264518238200565448649230253148453570882499247165927821727842662825529240995853168442073648382233030050498467200963612941634153063995812152320031964165999678650465956033205349012708702405676391566882431452287000097847544252391390525957817912296266893609758259233409319438664981643976383491351708684192484246169998275938229879357724140199837059473872222688933585203630784028004650052761262072185666410223116982574553648545885629093367654846766567340868971494708658683385513031981498819813875780566923972869275036763497374924720448484553895282346291668158752654340014603222491066004548379696363156376337565730548061620588281134269684944105418646218822903744612979791125146645976848863712111836126556377031961068882301730875919897000974720043379990472995250955465085768728964622904875999415851724748143793001373679608537619179628419809276207702666798473856175462359580411264484240413915557857072237181626487961628038068869134254771814419546183161973131978872764995433075372899684344384933239204061952975619379173948085224864188061446487148158976923838020960488410364149930949252614987605718858645597148612034410529700957761481534018042725318310266865275015918772467323083060700974839037161911631914829300524852779844927588930116568098724729928591638115693630761377876332285744965512835156254373403643097042471778218199609743069558503156522997345643959211141469462432731657025711501932962405723744603119083996919998923976392240140439638841680060575336327738679088563414091679950283113991973833702080282612028580732692313890767003605617921290420246424100732179363737670986821273303897282766916654307081033709431389898849996972658614002050609517857792672248235310817420523148556694610407261334192712407054208563194562997908434856112167405664168297605333437054457943321717467310922649814780078838508424168206222600280219980454081025611354547465030859457261091112619052164343856304186050609323961355460472199688790004863869614518439150969255034725761284494125993760450074600200745115065177693884018345376235145189718100378762384968380523747720201468574083020886392342948523391560423941664498198717029833312307112590473636977277619061192760530361075148195523188514382450547015033831098417997283063532660334033730138209781442104916734831907317457079941373317769874001687611124932926543453330244353070310106123431624879405254125881432870562708401307734985516279231999567746854417019352641521125789229577782475287653756844075517048965953427316966075529971338088657525702565763849482581600362068398745724918778900721765467974621187186924692518386941962354133113741158157974344900112744085947536122322896680391304962540199186229676899151571136469571962672360214883566742889276983193181662038158309420239057765705810536322462168297371695390397828296278103587294543744122738436289473355761520694057432968108972809586030274372246094341106339247197809977495146625574935629367545703711776845247786489477787449745566188050435714978269847506983776443837536270024819005458756420635523424907481520254017689753875125852009040519711241938046311949137481175443727278924357877121076342306691992463520015802559134106443576304300041521292491618117932361700358584830181083923032626166813228417270410203361148100771272325624048979020154002718192818532808204125203051382970130554673196037941175240433783815630301211685909352877386456941098121091998251835152239999521291389584509771468991617415067766363609370165651665986320377034369429335250553490153322201717442862483618989642478414476266102606821122344032832029376805359155103327004917868571251896172431872652179054222460063406267136147550183094687230721594487596400013576317661230261212693654683865075758877750193236169902759635258832137739282971019137292470617716608073992299237251804525318102677909862453609341701386226253963205131984456845823146594953127208403001568394885302092712074524939634891048541425584143942133266621515481229798845529432223584093273977716582652774518160948961794445260255303848710891217889937550003787413838426920616696126144184935562741839695900047961915788002346220133331977694340014522754697751120479280043811910606430579328321618581398776953487967298674648809940809102623022480680444977881601313943980545878568309351905398021337304861137973339199575758093073280122178188596705530901598613065164563424651454562014577457429773298755250815829112340949789721975562726304985699287234568791560409919531123005397175231238203419999777722195570482813961615649604692124845118639760279651127551616828005242743570071898883438939803803945054552249214994277859258704357438134451874160025995508767810556397709073989431702329916800475648105317680260605763837391611300267525938890834630075153985535762540378993037121773016334126708595572705117908253049207765283315768229236391288949601674727513879725237344645338223305589056597815960781570359954394428335987361729275993200905360482715768871459540661941775935140337397937953191685690332680476970843233637036273091805129858713170451646350266964528548672012843566053482278185940946606777315532136286615005792861214701041350680265476063599424245137153790403694546713822984650814184358329649281960958453960798397075111784240738458266713140425519746845790751806486120862269699444448834914373199342928721686553203688711126787855106559396153122790685104363248166443735269832795151173374406556606326503575803760306975175421295072792003198098117111077006662595771628636083821937558969668617965042155329735651570016147214201276154007928804294306568433002342947415172194836748308936702180633061599501371002118405954999708737273623631126122086288099697030856771768555536696954982183018746039744704010593505017266367329472141629050075424604387033704642048644694175420617476013415771059353018537035402719124060231678438086965404486434635339411410678890424960275521809529684578671040822041305286395075383898087707861375891016515295413982781940941981511343087911046946162209352367708625875904506379122167143045353224665274489395417583371671920718841536088167471440942796880144682667659952590773877731394845355812060817858823497512931888902780306551035466937193425542666226304732025623376276314799952787523825668724795299081112781731283318155824950331553621562227299197565424625047183755878373703884659731260610264462919716146619147736956012236994462100065297707157672923630217219496418865228517520357540282243467399380690497101983616846470733636361707198291796940410936771239681914585844062136030896066431561650593399698845214585217965183706120953377076550684317323207646110840483870329647705915096730617648304036038564337234301141580963413778002620477511878995082658795246404098961419805705649381137796088871659410059491134511517199015300249168225552581484991499221041580825803971851433658929270837504332913303545776347839696536826664008092316388896345673532571851738985899642711523176434925228144464118842596717625819489491641483375306088434888154350239314141418344165102772025206446729849092029031570578505355748352269056596401799924011379348704924146975986554573669518614912439567950663753475031922607902209491513916102919233988189453500632200523326942171270408926640582514320427202780363155145042776344681738602451557231806519086987717781487157334674131842898405505607407152839014675000919517298650646557761144758115699764062347651179675605411485422843803013390751366235948243604216437699727004684146974384047065135300507650493371064109629496771909317961784241878519938622790249862963123719045989327224942843860919511227356620037419400757402646287435178597536319202662124001778990134951879665310483584177373717621770810161636193521344925259468244652701811887865845895282748774290526778809851432957321932778618480746161458075368926872024120389651385415794165913611445071262407887549755082653314380670583520700365722232771874873727528764942029230358603825084515522871955562906928202966662420994862619412933839236624964031817437814936565939212770630382787224613724400779675075645834589677350512062576999560531293731191974494979883216296065119297119611313343727090496084277157112968778033352834526815472180423423029252540136457117422532453570424392687796638474980221401261719235394225330621372986406239960682629770157764415808327666265030649096335350387545178839385296837326109661305029513530540759068273808784034267648734487517184361377013473006837016383259609974229816367025511685557337607033785984583245512866168185790510596760270994022805844079842495371144252212503408326281289678869942910826207469235807047138190875638325923818536485489965667269053728757120108690565070110853092657537253037350959731641701075822508836961581179118659605338338420142020887260979253301768164018810553950839204447704830123339349396166332896712110517891591825595965747273130040003604179071309171270619203513711248496152779983825226762231953386875194668849237235348334786361380068016596864314584099979506486974785552946486650490252053903908035148004911343149714312800807734184647798513947190204579291961136708558332978060223865715556213842196545421367159701719462628635268497316187616357449170725067469424979420480375596533684587090950083197359963370560140774938709802980191745448092949766796556929427545523966161238375146946303188149056343039306828944938770639659760699414267685699465735150415383050960276650747109681593051382987689058744818499106809195294394703470628657775156564635847407836277427692844425520603089962067112408348096747667041781548227215696996856502349322672647175634184621223996535405496410319913444030713138305301701168663256561383367785752345154124960763244877048172604087228016689219887596449368202442007764178096546472626454905595249128709112635251038841778830635503454619522408322972707947257253135139515564106920184668008232021462129983837535148870829724866664598035921530212041358683948668236311211224237853779159720806975083011677164711314806585474757040548034660651837847464875303851912096207495285940114097562784726316892848529630289315974853343005535708627203881674450531699980296737118866512976117480479819443394970617020593994464152648560749282515373529985549501986769717235132579954589240763973420629294899571282963475457671050033780313430919004104450955265207991518038670455716733367082066531332518945469016091686330223797682279533339325350744402342200707842788094480719701581063547599362465799672319176522861769934553600205069749251445345841029612094817320139302173862634226309335543450896870060288064238060845582157567632984871794010716568840298987034129436278020249459590934703647069938571077145673831496195643517829303762952261478272138105004107407760187106574366589553146685976201208476820384572214879583284866238216639394347258009940206406955495834169422791091373286304989070049818353025524771127425756398110069997299606508447388541387419168682897751750927835619795131913481817175293822426166675522152196151884423485645252079102491321191660630104059730630426912291152957064709917831822257614267884441002833051358005505664033376406654749769936426300560254483709587978603839888812428909736462110783549578572515730318302040894292639907526955773804787236377456071076626979249527384074736420935790014812684286660891670961503435842509215376142589266127325612466824629302283525656560950922787035243907038844247088905208959744370300016650420065763835942037717060643079024302741142615312936185077936221751084902423979821947963333246507527072035769868172656747154338804245488701531966105242121451956323651830443543452685930037215884086576295967064507310345842113139530682352243406071454622622196298067045106245932206712175326155431487281257996722920603117773812238600438581193203552291417611383777311772581269249274973736055399343954541278280195976168001237455417364251274848359949750469520767542864336894077144248185543415481989414471498540815789707326425627635179503261479296184585189951614501551837347415237691177490450424028015275531284645385432072348988509055147571513499028421923260211685158457179623885070922443097657801214776756297493798610610027058959580156924796141346400845291120354737054850213366050206598049050870468637423495586888159702753602665071688404532243655966312725733658292409015282216720185727274014018172293287621113982106239433195267184446601827166716210312560659122994262555590130434830983089965264466522705032448320383636945901270935147357587434966622289565669376616108794670827398552537985442795629638173862369923777806441892516815837697671668360155517996625099922512866485724132807137169414224755667814001070845573150224485946643620031233348412095724349034411040554883197303499399026283611035327546448682099067021505639135977531901112827474250846344814067535904488523696165781179791446825939466368893484342084625623441075468430312084575218877276454974954887805157694332763446464511433846953085992172582317455910115648328821225951633883689810316251971124405438595678624862424823549811021291266260528421486497508372320578698575788883186437210689645912625128638116455424713325845708607240727593627136501575378704510973941354627236517365544038232671106230934411631559714356857621570008777179214565289828698162308015422155240219965193339887729094209919903959793414461599255408516930065500040577149648528989086636878685756387242135437126318410350695062996145631632100738766180673639769720165853311623160516741959746341242972947954384552065023184547775686594534146902242697135443748719358796643454601355270027727250865724127882785542940320460185492080430697360164966985584140284249779700136054882500392535720431579031222768562885806511595406646855968147051038712622652889855133504868830580181530248606194163080313160439163396710018141442327108601969328859000488274774971810426159416205420326033628955163069283744247774425248152521674427495633417880976682762825328369574231984918222975369423686668164035616704140844425412518578598283482184886369157577545773159036733371973797697918513589990881363910897360602036955170079440040664359009366836890234400399789550610702039603350653973864415753855574801894079191876056541986153244047595754875598780070926498239778550531859564861567090381608281757428088993125490718092514129777929947243829792293530472053072535592705048603971737004591989336445022139464439797779150521654380077789993153602416412475634687917996447792466482838263280486082705968268479093393042247470132488522423417173409266047188911612618085021957933593302378084631798785613093209339321109792552787592585552632317039112000937825202433446169874221980553862249467459562509694696714608464129004059991715280805432646781023222066832093775326279741632220158391948709272048621792529867264681118756607142767589141937067473923233343592077110447742894502433760243467756504033624463721292472783563028477334814167271498235543668049998859566239352349229458147602934752306481312358150039350839601316275866339851579382544187316986903353678797135089959939608865506804206677108303003457629465310613578721485960018596505033856172080414114117199274698354077001599113958074183850879282964847574642421594738732310670255607168894852838644146291820063633177977255719843481390160820845190537035187645568725936128122251339170515428966627854443978687070827528995227954748724390863048691189091854147198678094445009727671218939825007670194727725587326711756521003792770817464624096406975942117937649459204577906596794844666700223866625395698785724682578739805247812527084166430014205548065414750852989542287699868188988806688237151093339047689783801959329958123107011262832780084805659469474504523298621893617269430364093922187185534203398221225709158808153475324649480174462104742751887962579139453857094318834118579484312031431361390749002739448820346099303889660567112003792135724812412130454027649648826439448969226591147771120273319693797582644939060834995931459332893712433915801486185719958905026801355714697218905496643285530672189193439636533579374477441780441625067051360897254648977269947305182373423268342818309749374628911437224360191995807514808511882788456896685710415226446102533830402118653443902875818125704310989361271422633624826320968995561232228428909753599337482060425185078045192175112042230440064181041296139770572529975892967880774362542634739792108475296889488225246867805222957866808580646003493486254079135413253982504876082825003785443049228446702782538363117213079074633372216701315351798019194086449791386284176800321553948190472720961773427233548421169175953233198549216513886879431986134134882732042333323553395363820960934738942665399034051623903606720278326732367628417754297007022607437972021686813866813326465239373899950032959884161566733282238464996859404137224139313684566159657836313269664405817471125088231913258640082646317884916379533510783169039706384403664300104001613583583714649278439478394546170881306684648115750917837894937024079281622158091319860067360198355516463503791385008556667995872103139967462505004586775750400248920206040145891072243808426932799357760066955226968385844823440786261517728480395460087629892773866597044667819741105931618600067794398383617251033204995916331565941626883857719363018233997965730121580613338278063049798769548926200815560413061233035235998314098956312580951189558404448504123171621526416560197413460800605206211793200680278940904937025972028581653238138261049292913763579497306032543403515706244300159716407781657771897225479448622495813854399972832025153143444497356348246147196442730548031440287253876975752816206588026526288405372011858974014144420449756320975987662028530311911188076832632893381806084976993674976360114110302072045627497347168020766984441465539612377339159589890736337511201968191101362902549072077291881567103483248874181106366316729758447627807326061131934789125900040948038311102157893522925158878573437659454507185828128187087613607842097508104613685823913273302354719985734684865907519295760150766783388990812823204458516836146663408248121046060556038298819283547935735828783583623424099117472863896992943984851376750677012151589330490478249074852910443186503464932834804482936998946109651780101744463422182307026341407820023641159500281515976618985248971195574165158425625411672618504208837146696083419989382363812678356617714386362306982082043716733253420120024865688659437958647138940694178270556657338916440580123022713547426933600813802909499505900812416848800197215412024141772745497689420261284532216987639802421467851240216319310315823593554484638423895929590540388999414790086157179575329667226295338906727050507178298405211093640009755716423787081540112647243041518591180081149282099572511339477718226792980072201965807165145858077714096921586002537362313416166806677429265047150965591179985523623817599426841093739435843878649075931961129421885709917019903426942783174128069638160719861685996461188458477648755317711257534305081292728639420280520515665116110972978462508721369256132684552826848955556376398407158749212906299554685806931978962338531043085673099824056132216901143238010455783525287842092530883092720706374497368116819697479268469025954201727339259559581093033651538153556221144037954280751696065320556168655899012729341445284313540097415408104046128190721576036986473427932795135524458331228846316206402322222712993630658535980526671077166840530223517699042060452359625968797333820704729905926495464934730040558792613216899496987372078829683258806361660369031023214617304669578241311453487138956880539978944034071143321186123124861170006320196799450126801594133288540790577269239718562567204208650301999519388940671189656623388906401695128657037082238618099735254184043951614199941150076002469506238688786394555687237800285503768017389880664027390422179343085514963506390382427281480280127835326842849428556740693645325454255308665495357548919811018090170500641714278316845480532652959713173536994781242946622795174357649714447639650976914788004391217056621023496934662189619804439535381550062430012460613565536818835158532216208844953767665259837509167439771444615745890301379642274547275949689513167876823685457706480137493366845884839886472550955089879450678857216854177992802250845596439902169153309598059867096014001112505902439978096654475256137594559068573386804504091041102577621930139218057469135372949327609001550206588800752999402981175420715536591803360693205554572472109079817293010258373213424731139663216515906806021386384657422683609044318462453306889050396564875277192207419318454617793619622260530482544972223821850502288930916505362770475330728888850366621198125129490780666883804043619293865385775652504742081948412072186296725512487422302434152289490560529495158384787811153943129919486275546015226150802133774091723361784243054642488829426442522657696297384505402697151446198178680936411998812378980372339461720399148173912774067836268319298099941430001202945885178165189586192725740632908910914159090347072108379737388034148942142574975035945132042655309663934454227917865026865612671437117268186199672640585655134987906205914834566195330974205972057402719171244824121895600799819034918575782485162784327986391191888078102963720536213382022402443188097149426921119516358062144830490557082317838866845568546099223954246221764161264824018757609187353166493165560945591304973861699118524293236610482256573592023469181354342721756716287501531066305834834035078345226163199106480071553809494846620824056811795779564340026846724943387385602583230091233925817459357736559880576288276032469082738817888900285426774879028804098604916385129216370247693047353390614065658046333782046544506323137537262183492807556107908842579299933248193508080635664208010606141287152367464821284263674095612799094950410785422414921544908721204933091024042502798588161395091622504497782560962994295096839698731706896738845079208711723806361483521460557519956391028283861296891209235538449693144275727033021623030246248457758708890896336579861804794222928375246664972817822219965475627837142987051107258998909167299324039450318274443838196594807406696260355157396824072740180368838447934220989925124662556411504153068472172767449797568133376390521187620204840834522599281228578635476358708155852586469149282466370382041950199346349973108035037783030651124900498654046440606617845710094513403802918335657647971053829139288088506672047005343554394816278235252294473890774832933125325916994711899895445943103376864368916223044952844340279374676636438655074516058657057540823872560587350156247774291772592849091191908132000880521208941893496313280317001683730996394930038910533348278978514714873626883101372883603285689950894788384762026945360692323521264434547083803673631167610974530079241072584912017066010315561090053456512330325059864453742023462586764881367598622428323742480475414272392255271382923032157417495792011226201722895921752378397315619538392758449133281375059629344741525466987886919005388648525141419303507824553407950900960472611473849746363729782923193510368494396190008125970102003020091355835434415681495673773292559094152391073907452064555432737858387704715864578493978356678941253175904807006608178748404468669292070714745170950939528408822988531460216787597312145075044093742338740879265485785016067349198213818649487798335790781352456842586176251647155123894047787969717440304663839202108136260761081638762467390256695820064294295415597342219666352014756644996344273855751060056593803956182019275719787395149374948347574181051321198676025579919931903523633102911044238994596130504920358651770968124959892205891110498399914813445984758033723910976240984617943171888368262458921251122920701825757770038510067537069384415871065493749434169698972029842945060135985923352948963894079420080120770548671067906692267651793183250074689047451515007510483800050685601234049585338160608033775830598234333578275750996197727502287909185256521498898393387958207416564009981098826662502026796607069537686299601523248960844269388596930021496988222894608568875788602570292511861338076717868596500277890488691172445180316831393714803229355579144971769185971968649316726763670525870632914236296902438513213973723210633584670660683026028901583632852133089086268898808680863800624152087370185131542164256544491642809026839144552446649335338668054368094741067633140562202402761571728751818249246945012594508835906198212043566866725219156880735031421444929615661216965140734849737895788007578532656613805670085228548853943259274284187337878117590403162073487354996309236915517851944057371874918931856997306988659970462813914439049323833412832487035199986110178101197474050885332906062373093504458148443943433219143223681678347617685448679579653462069318093253564527287804726751741605228047875301934319298753164313944967263172365614946849940449994901489079561288298693963062368632453616463487769664328765333053932522581756053293659338374808724161143225590228845801313261601792239034635282637911619691572550729772833234630993012655558870871046457043543173809919966137313651716896120624614571388966527157737368615222995065324713578246735802888919111471112875693762044441697950831512472899622736958247109282479566635775939340173260336818600854104155595401074147877208655847937799557852062738435465590031810118432175870506154291543591350883070000565249225301342494132920995852561273569308173083628987678552161461688338489809877885786222015656564802307975860534086717564062777842633303557634830546876381435661265514640644886315184597041429967663049636333840856409862528364879703303019591119826549642656775521297997137785750777142674428463676889469358448732964851718461817776382398621738019751720651730307224586671340045191464760412680954157277750478053492295225829747767258687568969311313345333155988924103500008513867228475201425016005755319308730329336468673388459840805844717830224331167842468283296174368002126145738028083637611838235194511463224165177400035185829481582626622395284787002561677509883997927910718660162416592636923131933573713697813914000922733579601652311080590125582318357363956108117882688136641350759688932873969540500389878860571910710624328475382137320436136325275266454465105347783649174651737495215943987057140305678614611901896604132785031095048977555976947739428844653899468355431681170036173071992664690314965866291277701186667636639712952694069569863690352107175006728020234931689082233093017715851766989578772274604936043760374763935351141169375685352080306316208623251339971400561492339654017618931091820560715563412565186009453700157156895795157478786510967178239889844134871457467970168653648277495041990741613928514308652824250818837147262882687219443344584669885039552429039284949600039929482816542150885997470294079678793442979035948272116378097494723761514575699701029150347464927549224636671374006420201634055529015050937172370374442308631908069541049418989739050699875354750783584069519765698198066340058495055341257743411948680537238340564447018631393088336995490271041038498995296206599097558451252514253879492973715015675268474047865015607877099001196818408083616497146565318075774738057709135260738789718081667681417924655201105782183535462139526820214228282518581217568927923510513188467053294767225731602295465478895777340062978965997656844682383000559615499912206734774349645695133093955651908403175708862091419832486461469974781707241052928414877931024224491722404440524596471195111861507943093651451614503439998607560231043331366590844748297093899331241709328314417573308449616839430559656236390732153034548362254881962867626245121844396214278271179528850620149438469303657818295368472566021901320659673099941705090717254021614777296931248226615831471263580815796758433452250624385456278731009645699184312424534713275876342272577870322999427814012747256303041837645952775268088328113142659067941018261720743398998523258275214208384136010901561158766646769377885491523393622791839411710520371147210221513721440548507743743841417163381667948473122428263767532994624543574547713532520005590384205647284082742608970250216537099778542528959321518012110357614597782087504709700575932069662370233372824553538482744084267992961386598457374560311718637290305705896592680390265331844625471695672456178262029854631205215197692009967862996669012435434903133164656569667946440561971264459411906434662175369095421319213642674301460269222570861853414125485700108968707545567478676157062727241708686296013418365266628698327104810758968662807425598184278608123471245598769153718509182561159074969124028047691584105601578367050324192340953853030177397143384819324371592921539893321612627962681519969631556818093660740237583080693325035825979244403564409443260609253892156277865796207651219783728778318786504149264204255744693824524283069318193371995449636061873517567195672368110833340924924552754944464456893770735957555853416664844205573896162439606296487267643210641509178488009171143717649321434156267923807497364671823121262179749596006533567055483364985446613385591315320515091706828341347917154312926351395850825110191705440101954089717543154102047260871499435464550294136660202008871775513491656190513949109185193529960906547902806451743567210039730528193758053480076353508061948416734762426192755509109612702178905854547014079735278517406721214526363764087859750321574804292209469451165679937540105790868796005146967135584728224666451718492124193927936977798349800920680366032596130983853953206604759351709630828031377189856796761881656471701728299555943865777500922464344490239028337117474481200562982415494947362922337155628909681163135729386787594374887168068431279362052586579597963063336617674385089994040745825895949729747136598183124410814149791970245207203647432255118965709372395954205378211000014402078611815895560026388032575082338030129027081352946931705173265742238109107706018783572303579374545310658655001008059937292090242776434909810562040143507419937798746443683764062118438843483326232457697625222287089349729637945453442492218407176461976380497214168131538315283363243966100545902941034351364845284593870456339197842463887130259242214561360471805708974921275329216774095874134737529686580480404912367614942930716579974417275791857557502041522148541811531288686373378834937541404092725291925468414853820301965096174864393378394241082653894566419786324547068747598021249818323641280480274966906766880768485984499938374585536510292839510200848610967469610980183356857141102155753559032899312331254659784737974101473540753130421935879584089518676342721065025425888656601546479405450212424826416894295407186427845647191269339789543173629171508062443937236661437158578925832426757656788777597725455101894004487663677979988591598665621398526297076237188541985364466003079443150177435990595756585742077825247841168227001663957335428070712891116771443716363822302382511035251585324505085353389165729512874702324531365772637044666540507293041643391685001347786428243313261773507534500976708417013857743533656862159875269275446249552071986923985291862775822237368818183664443226267262812315630185157655064230071017239840227410723361472049064205487543039956378397314431685078353400138548975017366590000314317441818669446097778379775230902126354804005777571421740316741065923241999020370370729043785982994274527189411815944849466614724924100187328976775473979506260902712272903034056165473439567898796186425300169046687142311796152755545198797945152281867876848169492557377008848853264405725039689099179675959053728411880947107884113965992259745878052619123085670791353519392700169363115668828629660231180142560047359257680264533452700126412988003712613335397790181266631703264741143521407342419747508697728957204298059944672443845296986635875578717692889435882219571551805646782843219233391865313158619861982957022256725349559810820413933477369928592555730079321578636257217147874728993966388706035731140089128084850862669399660671259809810526502303025702096667466410712940556162024455502621441463658725556597799493882588750989801206827546055796334751563216936496674143854117464732082163478200633354603791023469233069140004476464083382097782130977497418141051378913424699100766592653973322539261239138099514011585532083275488724352370968087150073790051898040031822792929365084035096578251072406999337278942343686650430172511044753173938405772564495472140633423036015980904542357834520581686909110977848353370861045691303114559895773475710043244759347579556976068003120656274899698435352162444806694757796684640130297350124359181976495567283012830039821253626015018071341601165772222054265684569967400838132477878197329550106908545260164140457128809768353430623710786919795794634254456508642230031668849363466212341668009911408932097122118104454997366401469111965385357270655280430040176445000990148734582678677272157818679644005361443357912707436788456754230064015307390879794876096866278557908983656476579938883366483062695699756691102587362915967049183938015558640708917618954545821786168038672975285933955291233524645726330661039986080231015392641363114589106573698303657839320114935357578984679958377042249026650285435532329277056255075750711637274373793470937903840184692126416592647275921504327540413454759711483701374469059889961490253205389113013478135280647771895259093633620949463597353368501383609068722615994781385689644404261758049762958448964345967742767608799449099903347981093514532294563125616208272655622434068371348996792653098481532966661455307681637496519007334794606698561103345168575859664926478161424598356667299213590433566751569458199372221327962556177165270490987107705068920131147034083601402469418221092123147034255563378662527358667470165066734189034565270919813875840053205028314847830391845689157921844527813899245674054542032998066055087303842835366579867463783451330543314083087054402830493670119521307433639268470398194145287247250349323252545673986573568252526864210948445750767695448095373676475160735175424771541668615978156001201803284427975896885971470800637769613656921079779613117339570624895566323840670820335345164017978916276288248119256134784928662721121658516914978836085152077624688177057558759692882081618749608344181268097619524966089527292501776439047617709448291746453297077586292820716367002359775096693122584078117881467251163565710879663444759130300860691021970069929437676497873629450864049657831891237412755564693274646180558112048074037322850615199179670851141539501491197089472251738351253878614197137916766970068285509333512022952429266464813703160198975055069885672478893442134029463627547914327412938689177754886333075126210927222089088760762930616444867057130695677752905885611781450977434443064331781345158471026645379864957893133423651636431405518324879298397130213726644615131223300205425865409341333647905471223071916711532290725101485021157706949170443966793774262896108349529877850443134486656251725217125481703233672999660185200320535699411106668555717282108306735234838169319662332951890974573932215027280014089314015726779157183927993692081390476791451415941953438879166020787932269445438027736582302387163479760560373306562461929302649213219872968735872492565807703210170254489006864582357810378945458942968429380699716192639042587069282876253018611172693482366589389203308231938688262013503480075150526964196197962930961026842962627694123637012949687110163685227866811507023509537839276809687809481633463598403377125292931790337138425788113423470858446278295980917047543358754680178169565245608982220071144937221013908350768502702548737121470812483461820851838975418140801692037179043293049643941141015359692891106283788501402809287810802960815159820157663103774354791132866611350210409994591730992106875915134985118230783599439307281817655542436139507944416675082286034257180808421611453988733469541996386891406549484276694719795128094426354287810475079804537858185493140261686854792403773374055571896333241368199144738998619550296037169679523183987825615459099058088810775922776971894992068993503926502552631681573639189645973291297388500306538164753728070367434831927613398461809706588483642576712617107748714213910810521713915682074146158658505426606864168816520567858096604084301078670363328298876571561148032843904511808399252429798718990196662969842088383328815503692113842155547734103769120258082535340555876747950454219751127828216661322403379598829719572540343398599929097385050591188026483597723722768975768867730431244851161864687423418502369086880291542171672118207595575654607630707841770133704189841851856004052054976676364258536990885497582892852233208648004670135230618853604226640088805369552807127530059904401734749263153432271602921801360459614876362813854464783531342171534445739537894891658487404331340293934299479712403564832132714473759641690262694958572822003945844386549209280484756009174369484379977896413580736674508265451271070387103076585393492392355278163074107955136197283279851511022098957827503070100815544950274952701271153738866286224655040687251608086997110353478436807000792592028269395577253741572644228358658484554598882956459921252371351038605885748696332611209068493291279619106641132906038369455464110668937158973507615606556689345926529054215831139672774743003179594813665050067731262416127516666076004420493154685468854500567009911963727001668858965321740259390222792630908698368591804316954128420668067283345137766896887512408031075717352068173765725576431569795724548033027154840590782084720721729438994648805452747503018691845222020984504128200008053694290280719241195925238358946120370503326338158268274270109257296665803966262630404860317187942585987766107872100779541358437261712496474149031273372211061384710982143082235161999780395224339306978807846108039245654394630491566916887451152528688119367089246251779396637138715962911726863410222835130669316285116550970044702774508485901986034366242096470648199060316632320275417529682152589505821199636844631185261645455689933151878220219098707617693515782458808623084532554366625079649027279379014741644534967547473141740281275676163956371015572745599011190410416054212196696464829909676351574227864645351414983879219165522621236710798336751855095339008748685985456562516531082711968538768673721891187127338630947092235316162664627926917113943232681920969603158161481972990950106383233549426434987307820311068473325804807763622147198667612399578965655060140450544174310518180756520809803330150836904786659916507618625568577092812398007340879699159071009275722869433200079478336000301076478923666999788568111302723876480685034593852743775213136375863316886847178769005480438479508596301111682334502962111188916111778294390122306151873383288610061497989297889630201046811772152352927436072933773503840652480273297651862746300994681212569622276016808389195041436823128195416205508893736458680837982302358090440543055232034235802528599556654691126771387309494160055279624715379121719808763095941246314455329302630314922747188532130735746276727032655394308557646323569898630185754162061605473911233321463458097918363066646208202427570550961481579288540883229003353230396107050279318288952666698883837903976957501511674467368471330690991726520916643866016508845076344555099351215763173638377638384671141524836923730089420364716438366115331993390234044748790157229667813755863963557954398762958100074681938087926251816953804436273337543706116233844261430639846154736451519609309930009215132403083537412883044971441934166637821532468469796949706028062347882512418251668250865507220717796889102818487449477282643513909455140177723066322590085021397713104961511648711826140433455739913634938805742082959691249251764336152488154693494268907850779045109744752024565865034637099299883397261408273601451522254405630803207945991715339176342287217045087829479419034331969101702357021871038347971793295499115792092339515320469478294720920693690154406848230580917488911385886487500749131218870763271690977708083525257944435448601775191536597053523062734596805023235721898558905341039560089534098751018144337464185533845816255708876495855516923354730205910233632438005458586289506182752500904533960703127050019456975564538408178667116033439661987244396483768977367159770003163035617018806995740368362813134362719360281940192487470354960218536424043702202111733117737412123321554678247826599839854126309097754959678930503338498475495947787505307478566421355283869877606205561383579305695966254265928676638164920523930445725732028149708802095853438573135433757008651575697103031822569687589559648766550563740614950371022389445402609633480631034661417275174429449180331913638693984994799444635303292262133979499167433481139707401751939165720414590363962807386167829495062447066469164079713764974241802541012608438656652487074907968039025239279268702183883524147602018758540173804505268961169612392714160575510678355172477957327213175381107108112323355355183348308700994785876707625655157282987047979351264633607826813013889350033951487541483900811966209775894095654637171771835115026086251375951327777778780346589486734341674504792071865836498367786286337992822107822739213043743144269778834583390422173052320102656338359710969073025413574640956403102571986142501568011456512175589300191849136955791471201810760178694335284021599236337165333217960289999860117224787006233808766271451438247134223750655115791664479265839146209622177965829874026217972131421418525226083544081898614642901868370401925704521246807438267177620551280410845340573563724293596542021809771651354502274024125305001912812999643969629606219657740335131373687275025096386221250940246878002927646127382165123401131950207111940425625172223975041113462417334319054198557392978512455618930443332405302166956955330475091613010641894212302332270721762777725204461098059619983758326549817154252645932728828580879330620263987574080096055997950096378994780452423326567877708902064090998381684961840636253163449423880957778512714399786057424531381985409147358817486905884688586242978228795829383817186353638814560546049622600602654118536028272081223107677862837765190479199295821766977751704864897017367992037157113787512237385722670632560979410476339676354878952219409448559504392970044787537250956570378955824312810241041149427694491835685881511527037845348996889213456663654209836823168626930101285289877051600635229881421103784304323610034877513154817037864836156910507530174071717688156102648574508346279527862920126346381424559340400456833978186788812460590288974072719977102881083073616805263840682573227838411157102358682894697800615422959121499150002264933281698832993509203513694149258795008406307301794059119086581128295287563418647056344026772908962159349829487250636673901619687152093286546337581720620914669865051052199924556944177584115987685511386438744988789550674578372522052250408900185870820908747369072029266445241182769833412329435513871330857748053720265958613534511527359850998294992778332668978670898885078483147122490963795643945895677461884326038745834787167048573096770273265900824209884057766706109628941146825861957510029039870689495952089037464424441397167813760121465667653544993700378968736294721282684471834444770165894372526678212682314969660633485103385585614861044743231720246384263741317363418960934990731441713004641659134073497385360084344408220213195794671351322959787266861223497384426288271405505214957963065006891351963140727464497530209919704854154215382978435399357634182106490233215922221070380693346143476473762448463402641552437630955123072414338446742383831031986703466748922979860475660380925464269955349482090211285112106144641967095769436232651034613672590573837826474937836885301373700997625205226162575508560878626246305861834138849968221138429903638972958090724256798599185089913265873877382716754669115742162189008470136215786117507213907020098505124393605942375311994627678691310576532240423285747894578469142771467232074572970062947218956663202239035438146241787451861356093787650812550239238002445831365125958294607531043198697165609044298263296639254861391723684522835239890028694275503195947908495172565630097971212118137923112429765832187364898655962083790355806012026246696619199943725575646839402746230071288422071746941316695648786671855652002837507450227382912899207878167379965951217493703684090204171809297792690330077263092946854362025278292073074230372155472471450230839226256389624723941953426349815841456242156617993585328373385037234368078519774080681814006967710030398291325686566897825319441231702901572776574202444404193621640038818584217369307097344261123645290934012222365445548032625052808854612139755547255918876060256306147940870820246200639316806929425418183561743086479473818179646353662905853814120929287955884987102119692374183321566966776527577457538825244187689584716426678099955690052210867085713044113992938144194589614055700228055627800383343587676743399424621770248113654423313187306961701075866944988616348052996091492745879134738357746443061592430822428894590581357744977472522813325278674123411115949404713448567161332679931224507226884025140430061450623693305348119149881133008900360477064903008940410850952413392083886916509974335646935507254785556684125135522580390380506388003824223673453415250993854780096814600705579252628117609299761065939543566444972207901834961376981430930317983005690612735320954502219552371071450743182838829247561579358916201817524586194994010514123620749830358915730367879907752279856340272443358772321312586478115940203109777824015947779684947823037363862771265731125975567309637615313168964087822678053039614109907442060780848435030291293713676696289706237620395661695044295623396543120306109740780609669080169811156312182513086865960170214204628451507342978278738720790736103262072909985598287755457490589533451491369696331794895481485393390241737606007976879072303463132349921891566574489839607760301333177444159163871351192354311592013756350285272728539269343253527499835243637463010683143307971808938881896572951927406636255112795643045034891267933305697132147232672980173457687616327631671767865004664169779469119943276285017103650844869561881320295288549836367425464093250415731458726027175486244684754233549925592332325626760512372703771456873546835026722833351772912258222033005282557003411690502086870568457399716799279784463092897062481541539437191615032791353414215693444729940919460210079538858876812842757761404346152567384068362456614856935253522151100310383392382868894582696961160325264098197650059640465472429321270916179177392383557436732771786751818299894014435732132250589173499342705400068360227175365792753443363029395379104164754911948349460486666677649999194447304493045859577152033057434355950683260239456717477234766245569365521735025034936715365027631193556694670670644382753450048406333024252467596898544286556708538427723151919010945947111292574133069119420383093622609854209576113878236641051122358839381805939751701461097527015830075592834432919206770411845540535972580205474835200198994496379381890546952039251878875638444794738927169155408240176574053995521579498424652520054975099307563955374411541187108510417199084568550649159049651253323402172120530626732929911285965455741990818388900615974672232107604828578938975109463192013732871811268156346830489743650622239055607762115822244131880767444215189757284852429642498971369460142728926540150649581259157394406410035839892764755060749000975590649940077992024019081320508721254365205410886942473669506470566071269644374297729932041868447528693231967057177185988969717803736061963671018613924966587623077226454383082728063431564373404029607788229823736466199402740253143880444764905214862580531388476861287817510052052330226152316217349769552928308114510347649820656451047431030874703803966110485046022634159796473608039751349361716066786239155963365048535697264630007585299011252420267534164817041814350713503459508040370434748201674137179583225331710220725840062525912009030656531900860679572155263950352794009551014911629463072122849708981096189124486625991753519103023222233604439824593775561813200085302974370034387779463045353960153763787266185301270822952378674949362004789313197364156980617120916427058275157264308041208815447593824026438593985746009163298391980606123428346312089526815142302677018435196130193292371743590280579490555199204057817901879365828286015095739933336626543573773037107715276382789514403504590889609977659217125660184752056226987945926570585095081450056509358186778904706291496406808937655848688615409785610092217446222035659419580329441992450656010067031986584028059189714674143904929406457910748537619902485086714778640353319404200950192332741394209067630900315621937841460987929973850115624100171642314752116540237569087088598040868560813529490658837824253520829107034989020496058681014025990764301529001310476147795362958247873054175060233708350419640635932031305289991225382839689238286278026862296695832407839471956429658281018505313482987399152881458238491692013943153408017488621263832110346595690193461943938843965829076692264439739587992839946762172717658250186738083187421231293241593254102139058386660505173970222434739924116561884946033333477032612779949137019240543628190398177405911189073856375998398673804099918083982389414969961870567394013601646421125224874888653784067421582790965532645504278556111915006624079259158911227494471070620583001530129719844473896740284869469795544887428681836137816332073844881150205449319156174821795227806025979096655311495503229335341877067447720329056246436116909469567404095094479550552109237088931963840122758924156126878484494692283547260271050487551321580982984807327933604615824250780099704973978853966910512528478938755364520206565653202203976104226468569426746441829912986496419128692323245029899070081432075036972749940296109012482076011751967334155708101386598974477590448330857427506234149812319271959492284449252232157156904886228732062199352109427731582338067852465016350391512754565461768848317155665343989621314602153102444110795748245718281207174042526220068823175481879517186591606441465047238737402835507073380952788001141518601692105706658148111505275678164771596083925571759377505189555274100397444083458715770534281691467089978965936855239652335640792546541941650706134541113837405702433359305629676461534319720952366994100298849495696569310183334321070280390643720931963944683935972990685542682381816609797668855831780101363890679091664614623606312858458742485529421711689851343899633040789101931820534145248500071013364648462293758067505829626508382274417788605550966853628620057955743918525574309004841495337321325274609497437387439483118660867558737629774188901018523346567867184091762782529459705918986091327306106171445611419625940018506311588447143553335657364932195502869095381820106998432972405005798899005473673894021507362425353616163180917480980252094950861387058796472960040556402748990554370737913649434391471214252810364060283653700776392920461692772314108548267946677897406170317336884507357525794906473490546284777644178569005748689939656103626774425457810021483616977375379755282736878341258374585445824466412918665076653686659839673540922706749307394865499859721265656829937018818732831440333106234113645581927908937039603086263634365831114894982264341660540639372306861716368243685328320649695264827363750984799474689369490658972072540593314949030740952985514304096380510895384793620293759524757303242254856132644214873208619674524595971211178206882281810689038379767036301809564450849594219360465585440938796664929482001100341511788516305673384898351855073583206282893882980486122672921981407603322602665631478947746549984468161393062642467583325252770015329295212349164192166198949719673314513779567712238432099495486979020753112863797392420575765872673063622393886229831428066992840879822298278147535040784263993477704330850412879858611423677601827244370558908206462744515605517589469551797729387393532738874748126106281189181669080027976385634810127871152191982078490234376972176340914212846057174485555964756248720089027526905587994031324996768231326506150020021652810978510846519501349823867790794829901497968390267056073063708494700157473404390064891142737641515255616318384644762229981073554014018225554171543221547040306196852417882104814535081156771434060052303254789265107709173598205295376990379775429181489822300116356395553246650145630552591776772666731016480885410747443225316457833576006172121569522079087666090869189947659387106298326665857262167538913071192770569429921603209999446204555843429557819380707754846957011819368639264634602990426580523170273109605267638190158173081134598904134124137623467061352584059265233194168331772285442245827808603144999589097811671498089062681936753664318151509370949366895445727620745240953117078428479797831082634335354766505231509494742420929881174586404115677668611215837572390402975651139768122183064361830327739821778766692844679540916059240862631394223015451520695211240721107060839283466273742436256439718535784793109572782232482786254743131020757266552209866885952888123362514938620725032797955091000723121684985805160464590416135517477872707284623095682998585004738080812428918128561336951779797563920079071355834348497538989543319462592136117060529833026051860169561740616720742936449229565461372762930728999167932236622256898315240403390739659410721556917012400104782055787792413780165637745861424586616680457222643601758105102130799195038576147262537254220914164717825866689318219564461111176121045410426296317880689039801912964081824878326493930881033898433825787034407024075803327773800987835063340966517847763185534320710747588803076044206723593663189723074275076358032527344448422052448090870334728670789781288789424720265035134924740951276003474559855053452461997382150143786953918417911160184871465488727748341420657905856982513723957821158963870166089814498195817442780069081453048490753260046023523550176720378741399902717035425972937953818030730397943947665835004037349841023828333347112901089333070230468809434525153785427891433793757799618906007355612902339490202711791382970299220183830460309293190146230047719096521870223156656910003933120057159708230165577654904785889933338352716360328405228708600123357247159149718779977406403250464489606466004456314784697859315995551965581813778355585686471450692923355647015013371414525153088211331097612930510011499213811963990381860688243736951426277202309865743332227098612888893803340878451857612933189202421412588762722053919528369718829216757662379244501158420202998838157098763571361188566422596621277780821705094430082639039389382675695652702542463115393231207142996274557224635991653834159307509000928199966091752243996567790030916179562669738274072436392135871122484479722528915871705209246911759611486626666333985004281194916305907558668474283289889873862140727447571764352773901232083618955087294158727629085019733755562410377440342808799826848946085316890081702746254172935470466125277752887578562851888189463839604592717896412239891061820373186955199620810989801262129430889332584446343920369124839111446913304111942886663084576758108845388575809116043651495442387069325109635879773733266870170796688187722010375560323792451321528809687734447938049785653489697561914825986771963379454267070458434225887718506410150441539106620660345105257978589221516743279961189148064869926200032336181483466267582957759871405372695114843623344643021409018116285423329312586437585075020454474363185176014389458649108241382037419525783416193779034592800267001955617017878832891411403165412680605012240598551175376336763791021518712535321680595713605769208046831483617919869667170750206670433354116633258531332871729505845708875320817137051601756768557505787839807764367119160624810590982908473223546118962346287509686290248438982024040803379295510796851501010095961120777630942182703473814051868589437549848680827700062326532685283659463365296633334154206603823466849802532015083700300040961976550328813277812430031256707127421803181064803488253050428417256728202761910236326396633268472859728620227115666270280971765246529533370164349431094728771091749157344465735063646151175420010035878502585430109177805851485375914111065026862759008838154306398509363118977699572853869876670198816228892458009173612730193837264355015271666446978222021417882874550574616265729918193168057007435784773432496240205098045224303542431722813286753235654327209315067799058874212231592075203979275829420428801629414543073811430368837771727568862420801267555272757709292180913551568271416942806525241719387826281497069523903124460114983642702000812119424697750653081558072024918421208368300282458054112024158360139717301061009310433302725233106027988532309424161658683232647344768761203662482571907812551023366216143874791256101223344109601522814382858245820243163208631610474990564352195602827719462321391229635508699758937420150159507500248429065293990941289417385898819032541915630732854142077793407560293071739477005358026747881203749574875728548148891423763443557849613254266766552370884090904144858326286518135441443269426408305385496832632335707195932996979275175137909967632386918788570739757194339549802563794788162462517904760020946858229507282966451091268912744287284845157531889010327014376196902250234440292765298568289203321713734303521369201478699233747415239584127147335896790835173981582526880293017189406207587156992575913001524311564513616648468170061809554791197170731484479135738370581676279024563054020101653074567181364132495275797984426597849546739868457097390902949192102171958160280712265587241498022593381040416773034519978423603935111948482538117199640389824671718319772155254329801351351436589358851027927452012868564369736153872423250974977873391075145921524977912388830541603608695211501458497076310113779598404926940276881330802266706784106685586133353299666219473637651974231198443682002881978180169259575221054561044008488232656295465381406698050582952006648081000002747991761659158818297649602748016891888839661909521976672000780214732902318544194334671358188543015376746531957584215566176488369329222376898544834031154482146935135685089410163378284336668716340556204726331160019287179505937260058455651291449025731157604721024028845853953814216338007980838638734320983960328743494143505220952233531845362131884662528390488593980039477684741129279997554643654024355238207358282136643769358455345041755712533833215909095345620657578726242373160757399889849048843776360098959470661728814579444360276254366031866893751029766919244106569403643369252197444351025500641502831403949741272019825695031893143986192087495275245777302921976307189252205496934515058025014840904380438067698029012473774550938682233218579758341157855875824781102119352634390972520004436633303238385675838257821789344318395599421923614245243881233462994487926425712274491626206716951510804206064475760873684237741258153972548109226881859079510928321669243720836743184648002597325605107791188599292046745659387452024027578267278781342392856658892171022659944429166997958793664096158182585557221004858226708841925038174865635695412000207934331345631385191707071762059961810299279999168614085686538514074347407987196279327630788752480554440127224687508837337152004739201386005891396643836009211592761179217929233819711172090530527275683510080417771468802260796461260256013274901275909922718632120518456087782053137297648652243716629697243926452755001916497477066406178067912443631216219724935792586524314589429651553339803016169913928849383010428079207226140067274425510644573183851296875505901467660621101848774077177067697960009292834523376431958158521235289600061782607564307190590292571043440108870308491814028050931838844294841898189658355386613548878529015216366850931888793593544973500299805498925178714990422228684922073142807891294661002988855096883468440848585938366307231456191660884300749234667147843114321661190782917604432815334209821011675662277352410165418322210223480878243336955896250640611026954711518135423991733483629280412220610627824783901886192997499121361631441907669386481061754674116016242820645072877822430979307170396155026137805483337577348872669795987115109668011255450266598691554393911082119919351681164376344487984826249148841412891140752517805473902161504200953084615457392546921423949434982362587475780676270310639144680732954681140162497044154482223120671807284016357782981078910967135393360718362838784225600822010091506940856276835020323298063552671301745214066532815968039395460508537934480913263306279256026466395793576464907334306303330717140841856226114912935891753915870217961536685706592786605989578347631573588820632062891969367000404392675724722245529274031879361606140803407695570151027997437545517337748300934242353482084869822744155385501990720326577558946582256654053054582428974225328888106118584683929707538507434650057526207295476884648806477410432254458518309114461115714653388468870405506007067259036734304814213193122261960476647806586459377597164405939916347605930974414530843434420258295981805003771673020729043306752184257213593163047389038672458621572779385914517448171000084645768371265796859601348600231161914174633425942850024849637074947587639039758945741859503299368176727318139657206620347363589709823704066683799646144574653008769178700344857333225342203892355743557072858300889256639830447054741568608645495195997657893211584098442551409499698573396467341939316341360022709057930543940116791032065622000359153803950212000633306141533030602081437434496873400784759927727884619072870662698659466918012825313723160846294182457746252273820303768368760474734285766188514786267061491795723110089924013161437732361792834935915026655966911184072762606293808058189370402202144114020627616569884619186604858126287270483859016205737918287410744595165397353725522486434123808959147264700938391709023753226880842524806082184109744991111393958909792828619531590592991870699483591479922550342370817462962412952246333540860613148004365886317045370279128539484924848700809384035095974899848635388812390085256228716080737640571510569468290978358000797613196745031312229381465830550439723050261801595993640139149584661824596318382686570569397664537263789399503926735826989702398453829237907987048465751661914310120031370320763479825790607795532479825036143754327941772587600227147339619950609819417407051515626552128612633486934680962744446833766573869370824720146441952998963988801976536570662952258524647510318268793085793507196394590534627282908975479212027923826220847889791768900437895746414392579957950203921226364415836205553104547544024716366180271565117527098723972609372069400482430845813057962043594941505680969490247205817580478362410754271507412324259655989399032946244731581464376337660185474844619126296341782891453142470656738376893173939639581608140186035519030220699099667449570172534350754136896120471582109782010978827789206415291601017275287448794555845965163013712071626075181592913457308526912038429260833187475261621827882211359302431843168078074941612796339682267235142663036575377706589409224471564315311957956170315793009312977570096046622004044945260921918383671913009086739642796140669641448984061378111761629958844919608987050968161599515175516652177074322814117994209967147886299009309433132069796914660208603732305282877391367576764885278628563298733813196078357547031799884592802744187272319705470980660770806494691640863520512642307474206378950329355463680104895865678847598051520202133187352259703687529285912715334891196754149497309105980805051862574284805843692840665524625517001987972234991515782188812451985773024400488634657425709580451586333020281894307200688417661100351054364117598878626536557881284586702952009773781118322832501714187914817316365408490556355443981498091823128796361688263809645622186162120868038061302719299062497163732314962938711511373961732781535235404877781501199007252695243984936785645640744697495501749661246187422164842778468430228231898351205259471319279446450846118658654557717177261335928815903906922895110390084627421191622445375915194644690108479950040835068913216675542416651830335552319430371706799200216547748115718451001015609015937373229488319045359636065541492822324431132899389352775240077414317077568765829329306740972481850817723038965475396414262864253091925599525603821179532411214964271164019447777106820692361388401138815382806430364287096296811272458610396228126091668006214143362266371824865215860103736099849422812885631549163823602585804363142717002051592227290475774548553442851011650476500545886496347705315933676122024611170072726591825364739832725443420760668453117809559651878151594134787882134987318458539075586992903931127852887951902649254149256481898867152060665282434315770126603860433841193895811371004453095576764609001364086388194898962911183014702511541454865154345260551658026189736647702729958880091386707772316458483617668490100417284102325599889431850076821659961889303912885134123762928344168940748569666949424394373759019699014412944054726494255133694915982976462784276054270794711394425474020115943031722033296351540289817308410016715649341499894422998206743816245753201696900736561120505727796908478791956501242314421055831480047271028707734391502969267952949285106972630320735046215831111335144182513605175449797186447882448540643029782878912568012701089469794215224188097455948435670772702173733955019696772711214834139477575415377274433136565578284683894119167889776772357785899190156433041613792900405482134022006469984185881366966561598981101384918741742117300560022459993601225630356492454514839031564026101238705571644452514399618394022684197211150261166013503481083064787540929441693045834784155738192824802820967989506293523691397491445764952933964944707192870176150925378256298276228182157871469162771219148890959862945823859913191553629830601775815014912012581260407192051880274926479597362048484436489901118153216148966280599430424584633809659601338088836831720351552953606201047568428075691486880945375439242652237832375507340266474749631680335448037081636400499976687333799121590131983520771005604122788349773119181819354027037813294033567618052809587733113869396968234506569420348977993477515557890936416610505136577685529599065020204025754971193875106557238794839880827565121666432093927198187681603885440415882640989578043755239276507485828787306526663218215902844087245003602938605746538576885862633990289011955268873004896469925168419837606402440470522860167044564899023947614485503438717478287934049733015089460011086668774501262808386655580288825879777683073917407264951753115666084312501296437579181161896936497931627168757502540037943657520662599082129705119513789678212875937084796034434155953557801504099137505516536167496168132792082148924300585275016439126833318533635273184215339297779532318580846957461102015097710871943076734345864249411492685484621732095439133948835715043533802133720718608462214397578104874093574953116121681691146977020451886460941946937093225183184761339718893569045515133635273016931546552322740583352918891884514662560313489062959374364010422212146384878977244072070755297078130156990819511119705356221272073450302073440575758472231207788437558944179699521983807039689529121950109876463396569242089231722449648825989866591717649095344916182284583390205947410639824003541311607675513247054852277364028591366787923434422938845690887483680519721461224276724779788061548310190493889273871334305985846268654896677972684838980957398538033804052582129055085159467179118577210771685102790425950438053973997057687125640349354241875218868863754323007694003644419856791657430097114493561135004108242335739196595886230949735975626986668729946800247835440020294046242561777813492444993227120430299554841014856888319342344989078280211057370058579126396539154628200432399529420059669462165512803272288997637888830083693863488263824784939157890405268865004422901478500091839515734775170463817285848033515505991385468308907424739667414715132020454860572373822322995050512831235152709785033777876369324237785893677681238159003734843089269308203427106251294079632973630201454548538791224509977561019900425670695368861548169949525605122033137024424784822733138084179108374831407869059814871794149013575783167664552805598994961865262047329515641483355949057044087490834608783632430061916035578462559575637508274434229464801150821432762741003142485122833846909222503495364565084167825569996572838490459762409850433189344994556737729742821696170808118650187925020632813836570256565778612393358541263809177871054556033333078291993188787161331541563333938378832504035349904863623070910457060719983653660703849300758465460693832581564002362619109503343559638158928510693539614167503977916319628876409243923503170433263554813902803176918257389726771810398195274996061602567060023856227457648412001359899372526989271325515812663002489851355206008309943181086828161201964438946216050007433325357574558302812328544823416479182083743778588011898620543852268911038234622711823248205775289741519041266332110976209203730773518268940830293899492454057948829035867540709384726497353475036909768186351536468201385256144314337724547176483631308847309402026058781880845004012670375694350674727139065530786570664018835086488062527325447825288765615398157440448441068514165510805580199765104480094453471442173311357116513419649089406923558824299263083771696440092035413685437928084420142969504461764752590399886345344424696925195412707300705144990249767656348868043966851963914139974487568434347136834676844051916283024004113004444635439041050505510885029827163085769809910212400511925052454005339968529214770116454886971704584898157289422313238090452412718283097031464399474096108860600464683716586007272235805456936804620574533644773097430170124146808997957386846927287223622259068626339883533362027522068814992612062300651712785953466294558259466437724816267553729242003179829486391872102475648798536940050104963216074652924836773322749608074811497389986871400530682225384941913936309214071417048557483659634303788128488549391609827907308734756351595963482816652177833842592297034258538056695427640973043552986870607447878725392814833309881562997232554758428313327586252480978301260127370011490345603858089190632180191165987217371403695083897073053402945120948861596505449659844213406249175143183564091150896330302839637629459504365855990554060934916627752537104516849725739070078603851725980874661265852194203748856330341725047855407478392554706098690884638252336910387972543713660952941573123981923628128871677629644892742231652195578266169885604119131575024210589637570779428216812084564224917010541203952957120195204321577912713964732337477777194568853725026845133408658362420072196879656645740762346388181483689218336723042186225847400388238129393906646321650327371607702547123190585232336833008300872371494795849051126477544251350772023720673832075963020247265998516742658677049842751862633308772020411931784831828432189447035934214479550387033141349613085162883583707743281052648872826234913493661834786585508900304036804863513677306279007717432024087739566821556383169010092954027606402474071439198732914043647161383551833645316119718126960533689073401603838944899473372068908494063306786301696626351098357307183749867588470716141876867617424277220353258026807488049625956064828461933524739242343320221459006746842946377469537895571555357271889083284593207426913285919229184986022981282280281156125065914095225763894205410569422758638265758500240734417103239316490890621423045319016769234987343720666309023286305016424464316764332849117137181149326945439605933232361316223858849988461618632042813841425101086069733490471207050366504931088204149899678978751518389407152971614017417997731332676393001100640420891220962391917227627520138974926434854429285113270763157825723815339590988450302696099317997512290815250185563348225630575107788165965407417829269308836987827369738612443563041686352848692960710748714765571145832192703981384257715459104798159178278627023236189151826364315955165858082818959884762713723084788688445830449062741368633119116440987637951499897759893754437570162469996232669380930597198344725493867048231663117049306461858653568153500820833158291926166996717829044492367864589104727103958716262228204584470907663591432061787345373693637447585771926607027713589046554641700813214948938239802853535043605247646503699175144376927330291077020381199304367391254678236557103419947164750260241312442466382546174668919002427155169190389030251064138243689042134402510207732876670229338196510484351272417915592419578456187715609204454884910507588159106011663688008826123004031950975316576830317296644538155245649134762516417086546353979028669028724262034018627284244156223701579695257599768371169943007175831904625589526197547234489179735027678284778950064327684563407258278715901124542990381081841607726080914153250114680355732997764801867079244174925539111424933583935717190413239535226097388796647524465638013693516248007165614132755989598436369226312218880977050209452303342776383571743178876358856280574461644789719660930395749789940602067527165092637595924369968997394143805255305966330819398533135249313495701321570011638451394360950658763157712679251548413891665300268517867117810876594826745052624508626888668716371632395951830775165356966127987703390005816791949373061403059163612878161309007032070015069989298854391351184872398488974547195423672600777311867655838495852864840838703347827215317214379815151412811373898189433284968713261604371317855294065515979218437806837307359176150972500586016688152807294404115869412173914701795411179810082403591658570819122306151291713171875485760470758088924422109831047398486944406985532032524841226670779203257859527679272244307330539449104546123641131083255548946989291292016138775200856027969407087650407813092933451429705801701321346583102003574348970753666245145445099410127986914967513249032109586326971966316054499758023144597757840320102447438992590483029407613057796136623155639214373999250572324248771962766763943179782314679576584719215993659634875485458829002085919164371541873768755270903963175115491318988682481354229389270220438365075798985035215894218471315931648490357483872961319714829021370678053769753929776424768632245920430914726841562448405216727484929437991437653677063082321936229281381832367826007867768586187632072047493795363151325162782689036128806973034551817150180130346638545669084334272535674529766613178636872712354560313648707780199910122138571036209429616112968235917219429998336227545085728288553298854742480318980603804007777508120244894972677220498379647563978743828802582908688529746606885789899001482470297080755602995059748254761264424455754395964497777486523272067141230888038951838259746028533879681323102269784683561939739348140346379590851897984096098408429715762968685673410174612047175219369189883859160598412051385938893162459905826979458353058871358346903567230621840421622925851522061161435422462580661596094447114667264312535985642513149768375806956574430278108313261794417401536711078983677424467733468586621440570720612363660077953373418049240720333751893697599244548152333181521477947930064190855450975143567687887067922564664754655076338186262091355602891820914462643896686339368931063573627014726983875278717609676334117969625027740552577953170230365704337311632655501035500673465946594218051234948202786286044587687054343741295213329061456511221702600021607082272943712151094223292951149825278032032531326216004573758007339076120569549882516964992427919885626890078175248991286011858690334807491832837533141651246167256335844677888694619978139909931780980453884383347244741149618615175767653425535212420443314306478758626133406585874673090155480956849148272684328270764119844536893718915059925046567496219293725529860313697507220503230399170315214589192376662016529959840408216074771634145412820404394434121116388730667687800461995384255915032137740016467159867416733549871750609664918535066031648270959290305318161399461412788626320715060147365596296107247519848562336531385342302462703391772981919769520230728462296561721021798602907223776131075992652643013597570633221960014468857278508784904691496142403665110004799805113772125683982499592285663571022460802993687355343008651039717555424036441723990813242728849140193894549337490278481223816268053211408005271764503032268352927760679475367153498594422757764560995043393276006019960205579910510861668942829176412066596042734768462071626155999856418946766148563377630758678278712220658123755988227390796635491556489329619622162402731098683064404601307368701352687249846020179910405881051225575753256758356449236957748930098045906576560148628017044559495967651038669342039817187964557077559436501961817857561370982728163928247575197524855404950587486077426524685741853543686715274619453295965248570780074049682185033016993755288796659247322387455074829411266813513286232388869265929544957081790845812997208742320214253084017665324035708809992977278318772619329050145314236796427073119615503664873029534359238259898092488451215893291915131340528608263479897018468375567719475450120620702800191580467940095521663575769186087797782588367867876593117811543683748170704068419665476293298959391477099418267486986955642602555039582988634562870260348188090862166075536866096139990435875782595324954156901490356511601738598558136635924204718179238883568268168098512619402379097172549099755482010783211091530910356427824227758372138514847765583356939198025617866005035296123569299395357909511453717697197771520170647080502494300959375381571651531831363954064544629999399294748580103575533746994874032537017093990693404501818502132010343875345570571101629778606042890899871477382300521622170902404333476422134175883517846689066276154040179380274043664000917378952724076656046677917820408124305570151748319694890278493964588243015662037682440660440299195345523020849091973936365902525904154421987852278030284501992310947753956086578601074529301560862149355873431254112817729038680092064396161767148490172619013919326572945709577174485269774966589638386116400651262331773846038326400187658139132582490241107324373961367886656713017983976752165567371504883298672937592905982120241073636570300019055762642018920605348471903161717433985061218231315935021605547106350285808593063922330609885971457453318128238710047474188550701501971447365152141611053324826450437082453323605957299413455833217088618793749948210463427997798451729718806646169364672301226498241875747092338207598127269606739146634504033735103757699060359731058928560603616499839325814574173789561008567797255751134258437745246237053654374468046567068347693475362727944250342464547871132301356681830777382823693067581214112757844255495139515381321140196855134621775700773492801010090489757572343961736062565273666494809407574478500916555436664613106959209041786474018501374224357607242589027995738993432792968863958679859614934919158057788077150594066197411205565035533268164206417653761936046093873460120134195412767832214715439509349390487484654111683652498395371362520481284488016078655673942892206338547693868731836242863036016849762407564740225845673970270848508563908018378063462887936419886412225574140164787374786582695561421590049144963261947942961119935125531473075459322503521696266316872928965081981302258448130820854128578691536951518424613175329303785036088946480140072043158052408248020913868483552126357914217690178524915721975244365055629884464336908063470219316775031614959371985378997849368017913429812795483131265637783912284158246148132795347180328075468005491655986186986838480972762110528404437961702691289420401983493207934262350863779800149656696179817678862008083832922305893565120132348010286033326883800991131569697687266369027965274097182311526673071209740965875803628865242879575135569300465228046019939510385919970240962391610025270701831214521424556478426533207912987667573401229348681626360718909364311076643017443350212195262844693125487193854102279425525426720320028791899319793916623949187864926881506785421087029685090672968850373659869357971393521479895589011754518783844406617802864301024893125376128978792477833032926698380775334758183726911698982642863190314346156140633816143934005314005391063491500811617242163487903413118890863026092198158580902144326106511812002718644156805079282943376407757419362969733776305212234026870437162700272881575502630362804090346387789968687529737506070457514038642269661629073866762934479306187157942049235878351405364446310462491428586351519117629105878199638752910631145161636911963979411405354262481672934595676167203610354670533367293366900246610553611181847989445017668931022523060592245040348828799934189118579290850035019023878214373974297412832749273268754330230495962696294382999550624583335791471548079328115538064655244871707414664741692154211786141256025623771504759020463305487974140079963887927247256461396343624048028796814425469498566635183776491158978739878743841195626859093893495006184226348779343291998543766571416274226841775665303151598280220902274027409933265368017768433900833179305990307907779767027682369547684172590287609333753652201914047276646229244399512457124981218589764083817796414624101221069689161067981634784565220708558225573239429947142533146881319235764244637531206063946719512445722293777389130191373722353561278945479673823575762767618178974556119267380631224650617489137787946718736556237121329858317922732109563009348626548786904481766066305590031819045482805372793464244522102737518621508109708098784943858188027065014329313587190440114877978818755630580207167292370743250667624511102952243822140998407460781573519076761280428429443735746045427751147421395297753707280346965868842339182757336132434838728672333601896663741229669737327664597036705106768786685623405963593560017298438467733786169073038002778121632353460919397323580909379242746573044791270237280751644136164733052523807285393895505133501015309454495529515312041861027081144336393800888065679953710652811300160911423107702859010008277521135195142799388758820000166514253271907963787215223550145198489941851881672027197760234139890677687973820518977366272342192271117594384394264860253299246028936881102845824878941326960992868726501354874608658650618372512030789840018015845193496438803817510859264725994459776819985220452783678958662713213933220344785274314343167168140650621220479009216272536062027979859107980552496020523882657006239754509003972227570496045978527095711448908991988625307547608444359589950268879968119766263483463559410519007349784396959556764088183774753527606884491416302990347571119248895316180900732266559489925980655688594368560711635299107012015088271549349094666267928147989511361401665945414872362037233707493360030454533834809116542846786231074954643705182172561647605014770904492464016628836267016126942360352604344024186981110762254172483354332103186984065755036571698933077835603358054447441467543553280937324676270921648664975386223648138492289672247085914151406346654932728681239642085420969311164081409797686754935516787164991288363577040505861426620135840102530930559427724392293712801220697309458084283084545212215892863949298865616658059824045360672887016085174390691074193859852654783450495045557825810112469150553093201461969996130623442700178382288888849689771905809240327941307390661982273025528640298367981185234035284460757506416060418936806446076040298147962252555119750984867837955696441930021065004304287227376292558635487942391688017135749826200055954541758062197529438197328373279105301776081843136855788217284337448012066489223020807525311076082769852863465031587048459205165740744698464682601212720547566189172175596680990327226043124707787030898467332924430476909747578120911871478369771246126669184966112891853836892952178024749876350284929971698344762094304720788071538043905267519199953210031734974101910903371975988601190927172131447034888199512151188164741029460640780639416406012501004672387397654225888513324582795117751788698034901144633075600164092651327792664252992641497341560332771687453786924053838668532122808854957747656504627855232945101807363189674679769848369819010026494927915041779882580570094642585746960738399213558151894056743013763451242801057858991813173239275124452596444233187400897771564447324563954417496958269837047619211866172979288710346359721605311391175844232986769186899620995474799827013676760900232970595838345602351090435898072554952297477326712200225609856628008833490481667107232655362180340134528436390846768323004359012907234574815294455719490172604567739382153972835567411237861558561019057130129213481193309254196917596488856901720919492101190129532793313027909880346932903518371165215579952643847657983563197288847603731138713383535899554573398197491671018085532379584482423023846511930838668436538706288967571422427647559175070437893319424988675252488693503507087661393473360245801748182324407760940871865810658008993608158135815274626968072139811946762202012782987517671499609284389645356404265582563263833178798469598221326673322194419957905518211417334964289618650404787381051024648180698385024429223008223946205230227723088066181227906494913588284728861576670666990977128026065724817257211938630597801860928585796258637864380349144213985541645382773616424342290324039138723452645379236012709630611724000778838043845038755890372311883255244577853032103488975413185914476477358616712323624252768133732727488821638770917259355081741590086961080917263151042927778010436960415857308364519966365283312462231690183640524050633022859191609710135837643912556212430131154494586934619607397005823927855498232534151433027877100989904561409075515901129178485091853510863609006857540135083491433041933424461401105582672899831317924670185694270853922044423926464167672267432134963064452235387882180264183366675224623560749591266188719298284295517581297446226085310755244940396021691416129091204059228264322552455432912104255897626534411814185335278733269636210386175074672978709392547207944514179493221868265134876777284326429708194895728388120419171627240778051440142991668373277735127979073398438999672906349021632699028766435224246291410897023772084753934543897539545557124447233542409942466831964493100970043827418010254183032069446797711831952615096607223523195288988607489792462774941254036245748009030173526573333080360432842009595808392790681741719531175743081051389749941921909749356607154313931119280567585540672303399036006445774249755711470189753936182494740278679310235471323974402031931385248866220377980627933373072608906568909004787554892291889631615725550573190185697605278969151288134655685365454249025096358108155366011464545120324348838038920939065446034160060200873738501853386963341034417401645089993439146442576724903096988341910525361328464492623150713131442589491965265552259154723655267067964127285714687293951550382343910833382776248826862939393701481701369957185822782258437674372350402323595714028946604749443301579629665595297895655719787918795513101711507614746163367317457750869223998695639131028751734837734584448257430979827313026553439172182731293878953242279124329151714426691938322929512150210858649757564353845532292214800524027308135048896189933943239192602147360098478385690578450921681394279577205732927440290237725852113890538924197120987522109070823887783796467699599946011658676670308200663387352540374893986696500366138015007731247487942837261497129171973498012726108274450814581705868561634287072080852460274302421409491577959023352032114850959835324776350757358585448766927427534879744156242689138098857755373854652856951344713853263758992703471322574342760848459907757013387785943871081514856764923372960358109730092233226381411378693338850900496070446593165886264317225140994802752561119151915066732810261882653606097872283306568650318430302617787995230929456511239506084492749840022646722806189198003100548932288106377947830457255080402999285024514000967599766664468603950283337228741156295245479894396737589498810520338525961054900597920074679129300018110926334925000327537670111791322644706047925088987418579974191457911432511703796319195577995108080726523290913504014576267921933002274269028412863505460823284296962533173732894136374393135642869961047183532397030892716624946390486665040149343123405533358864499884011768652272507660666377261989598714765357905635930012303059258473123548673705465071813083257644900847203420260966288455500063169242771367561530247955704489679706611987354989675726368012102970844910896892506451621503740144032913860693685136462501789305309300247795106854126727948776866931217978400342280144281829012339502531084629470739057244305900847977605289832794993516168397001940195031994926173601010425818972539158957059600378930549489101575658474393440665345753448099433788189550884675053658174473186721285877609355025332507938742965232993796518569753681753409380560720087191547332663808681842853545665291358243731577916211126542673032359141900105088396064678359085142165790229037051688053796302757335676430204432330851427100097988649265906509571126998813110387385862713454605031307664991897786874440554465404681310720114521298246301214907378041245831513493680556441393130142540690606807281784085812969203753243321141629919613262533761343726065757902373782751319189468804636208772253741390613107549579769385783159305697124876632970081147530032570862621745663818307059335833474197989029250756148714540136869746453954494348678738492322190356989228420840090661791692193900487951915534678691617441166043925379284631911683636872398825274263788100460713323814975839238398895302599184672012734802313798818225742778042591602384814671448359331389373623432231091535314089695591641767391919135931771494685313190430218727444754505450927210896490189052094348933318021279901999796164741817578305650782726284675149936333577724288458247179298044422264562856449830146617572897733567820881147581954980104047002359853299703114254286518514919288567432439055921916270652584713998069571815666913670922433090566266146184338853922422377378700601014882802230046581657064516275371329156063556047028866283625952110905401936462058484716155413623948225339963135493274634495967354591627252843701570067362666172010101316318132000345334046962942585615542382866162762534161190605073617034034570689038207794059520227642912690781476327806994899109507921095730600801853910327570538271558731041298538860584278686126911655157016728004557176474646906803207450750386261273405692507787482499489269752404487264200970260450996802121297127755756634141583762808088003475251598060026503625957178726476371244717142030482409702660242153309227884476296687548761096921867417732771251015647152445531717832592054030734060255763760409240462427508484122200853098091888834406203927796227252543166546859598517010641439012699668796094851451523567406844759165424420204768364655212588263601013540852565045930079877319812162644682449984340795943574877177633987334470817573318533339704034783024302872997684749021117517822997548118583547254005777712753447209252723186529663286959641119022509661875063473755718620523202892750758791128172841874218958901286073769093574183580439175821207825041145229275375561219949775851639686812991126849666400122846615113623673662500106994480100483501486682111687838049105543188511700780653445595971203736833152005483076711870208547797412772543645769020781445782158437188977219956818960095819005726018084202731233892904144154599264105417221036645345676841420465562174810369984609478805444488834344383050069678355618687466518626644267528676633746639890932213624504168765494473329476118430718266328447238007848639406927074529522475706748039667427152783732967828011769379429078644335133355092496660145296290908729317977078190167656321179134245228689854954559853250466344007750236381585426475673902035017939794695135086786040750956659626123113213723654978375375909326265534234250415956382021153492718478923614298404291944204181734864976674613658323611038272238189528558240193901145899958011598275478576821924067167528225600273540788252407677654560000846601982007998681406339805336664879355327647084256888197644948522659257448428272970653890370679733044820935828626434088780289652986865224969090631207967811965761090770555043311827840555990421499497236754255876766959560425431867687824176399048436819024926770228209803839600875202754665261527105959975634394990429730236734603967744878114710742962901238543983267209802809139638217833283303138447019419028128208957711330160371485382305355574919830853216131389444751624025385242324178837427334037608636168512037254994930977300030198388153972839982670932593369871431004793687603002658690237606408794709307972739119496560425564492863765902886728062554489080590934639267705334351132187248291033837075125857235443228749036099673237880495840412279034116545295797860799929258395068612382025339368506204865507660424248377607495044557558533514061827982654890350794639392545982050907980832440486997315463863598472983144580231311719579592813976302467471769036109581444011295081897427866946261894827985379984765135428037151136747781457682896744121937309350952170639338269002630767502249547167881878693530476149771967980065546067100210557468299792237929501657812629602584081422613160476253651232737192971058191158062553572179376872626768955348279785555981807299690548411329824111656076125731073872265396293827863773365516706504209465670115719354443995402991655393083136039824395567723563456332690804106895185173160912766362266559886576109248234627003563430328393740405877421866326887097246552239061148637408258354366894072219867528532972908530707980904345212368929466288739293049166215201407254654638746045816334394888336572112403702300907419289940572587871510066595735325388510162985469697127114840849003708149415035908758530538013072024399489119800284378879386795711873122275193270716853220724673038910394209620305284252109645718636454110746881864320946103022693583658824755966617948831547092324630717940589214878035519825725294406783016299453555183415257725532325679645645937818953519365035226533290244345227063098410167198291150903312621618196971886124890456409174499901190547403608118139149741370345098754918216068481497568108476508307709509890021432189932868324709352803840356921057230228143982642077056947643078661926286891087318740264558970896684489751514595864195175740345503631497113416310660861417043106081196468733944427287210554634757172425095436519960215707841210217731168954069871274153132416360685490511805425116638266409140293773516644452119948948752044776656315820074326646400145285927416751507938618179902868401219691671808917073504430670763204712112449534819259875517441307570306992057376957187590329389913717803193148207142915899703720319634097555602472331900849821121861015926446738482726628256077145848204974571022027287599811472177471491223201499787855865534273840629009281395933727157283820224025681800584568878193292806857853663073730387647356732473235605126303615956548501942007414266751670344552812356908231367962045685997358124563898542892973908022060725464357066321308454079485108786252394310319586739426343884787439749953813026923270016628902446942373581788657271118753862272091858245341486277663463173552777722972356253379927120653940333781418740097628130409986034234344783180287814563015129429936712425664396742492381214797397674863777620891367043077971721279615785510577504915564364197107497631437695321794706392756860799417920257784971866942374450378589007052905844048112696769878851718014345631293022076528787942477981552860562023805635142147168805422067266745708393950220760452443308946012064772579115412233093138304760403860380876028860822276271385764064548398418739261009005178199413773103281836523536691145287692361173994764703666529124776488160168398143433100398154581945565125390955470289891349194347835271122417904157395210370057974281976008538699854879093140454025287815186752138913530264335027066590259060261144132604686285227868925022713956571596592848547788586103040745780995677337815281831891033705688879854546628331126177010639242773143220121239774440938531587839949115017919745360624361129332768483502229480852484614912052732159133208811659326257109816386366127601558467665180953496316273813921153988820866473636104004358280040309886527998745794389003405340799128325369384726181037778450011290225962489626086905224935299566498154035691094308614100027970758010668597651334019844987655358587339037532582374745872144450289467921741918618304985411913092291451231905038393388091631733951907678803926804462597334659799381315148827371108875663842878378902183610586225285314665669895231974002091654039504358950934954779587274236427483350207140416787130372529967201757397637132043474957302878563918744450442639963236674566823848176489587436360782023197100306065738196750074990441529752602584605858178506058242529779983434942991880373747072841950487564726996328242939210172464119011128775909991416581816651911734402286866575716950913751471065814154716771127756078529695951684490894864101386776961939149373975422289354794282693052523635161575248643715513814402650452010164784891929177163950320133799759418560482275847995162440131009863348775662840389019025351452665482452306140987735683607631534719024487654216860062338807031295182861897737447584536920338937125419074325342439414113618055805287882768843773769198517475124206968179534006550067694757472081589395805684880421372925424908798430691249689652922539776784934237069151021920719737685287702132195706988586130637293379767898494677048371150957354882774808217223082102587745112653426501119124527030271081895424287351170278478250936119230087694083908873103055643213384110843343684318762993863946296713777784337649386597906484943326456805068633088673870008359663851671996468277196736189855924473055704825006829839420477293791968955603022562034206974837159582074157947894922197118668043482183284239386822835160218021249688353358614834244772406560124237877376086662867465414055842674095891970063202142058862737083513345892221047058077439148316885703765532679582180653383858911762112704329088164678324175655627838778433348880652258654981982680137074238208229109953430327287455779147056330812879516281626637199752128582046263709513145541177345682094125898637604882345263935324245722225976044737694487316697036949671015112630126739063462197406186145643517088263770009648165518069428065210941495561849061272792359277267910640829814395844950663042944452859743215862289934850926289885811954750659719193837840540516701439835550951298348827873846187292136776780242049198584613205735007331103589070112753928098702693526835515412362066364475194769869431401429362601906736775783111128303941268951283661195115651004555919031476899782677481274365544334220702451524652041285932760403803710152854742591520989420407190192407265944706732078790083391953529322986943391794491137853615476548500391412720229165810906905785968574245582811965426578337533861058442086189685406757658973713559882365666776684818235683705273004798719933843378557324430678206955327071847767621367034092172645137228055349120765106533283060613562693392686705118004971148818916221034337120545700773650251798168388262054364854252551799180881105129947933314349061011631673077948452871173972317869947987529578286362370592616279470559957773993383766375891156520498569340329248912460940204015577297358681728438826400747442170272636716087547708921765567557011391857937111755137836222470187055735085767845069444031765907513951978255160607040093082105290670357664331428231734079303860587039020386386957925247523326709890685193853943611850531466112865997347677518011355982094323131365672798765990644381693810749591472569967468933172357864975631070979677101110218495825757287714592588851259060199601722946845495630065912074085078847198571971448435582479890899391334069086786154988250897281642074230641867207814059741677394753652579870923821049801087223316813328278449209485046241636652340632203487556626367344609008438782554989191862078939254189417453455706650820125172424436926580010410067254845662522715286240456176056384585655361772935681125093389898546295254834875460031764823454980933821069545788118189708450788145654353409996606793063106616290190937721952615960112169047374226451821987424724260696927787789206756862870334438194642768519527258767820489407634285142475680154021810837505224236869766115459715155145197879389727337740739960419649420189842920208733108286386358634786117301007338052102604545196639840827770938164580664579082662390668922128854405259527373173378529179773227408577831461388161879626841952495475052723449511247338387121238673548860846129936712109664414354818738575992770934464652124469727356929044635370156877491827357532724319091302188858144431939806351178366596823933638866947995798445628994475529273970598001966997197166712208372020577764239810106493860800546957269001182913030003026942521227386773570592791501227287243284058547820963480570439398504980947963013223758284834385407365113088938722087506661302212189799601899339299733201817011853716922744574831382346372365576592138772458911886251917664696832875229169233681517678820229950104030660973418451314984853435811504229836836472392487571555797570112348849761870767298073149718835316387478499833759581849315703856965207412348132798795635175636611097926868324151152705652022032340493220394882170496391217124898492172570972887764841208557756333130985872257143187706872456757725991615279817998402230784286601336169086449510047002533945477297554091858818843003697931224197706761721998705019750531758719873636067067130879116428975010490959005340093700421751248215324378108414959043952319911228095507217241083613279890882560058289487988723267283893260534049610722713702476511491423634618422255752874067083794029027948573677575550980609932024734386862945974882782753779962747974477897812235189981054603998403359053786712627485969051384892967114007559112027188480801002157025041098391676446510046462671328123202289602526917447666433516724241156017805576156848741174122835430810283384663324775957981710442931572651356292004048873139697144914807399734528121679102507125351136466215425589952902191416059641310369569276843585943202182911878134951154722329863250609909362555987621958315200408442137211684639659545365975848635401549617573698855168351771729618726735788206941474382271096068401394736415758977627429485195399549265816148148509601719294877015037974107015028115839613622926734199837192945247499337401209376459647183777285064056422889261675065722978451161793486779829496971047673547593059585389078112262039543354916788103974391011883797379726660781105409946815567749575377125204610008694115929722724998667824398166036758377538169059904638210048770614526225577117817554829541370475216913823148722786626097263735692308344667849740235358616012546984853064172986146399634205558616737980165690093444993516212992341231448155759079963089239424820055995954076159790389408940284621059048451554300631747424183706405809378039214930234965781511863627457567844100225361202229802490827340904431536437923351506470492759555785543003943564595609043576513405370397737415774084754204987570096507140002142408299672624412672629983197255034698342953829411442866371582259858106376407386621866308065526842781177966785121810576960931760354812861499721875679233312999089285719502754693711997100938406434933107566385246734243041271998029075200001141875971333390983130026469676735546032242076405857739391317030294017594130080761393054730264532615519370858513469118679821480172770177652602770785550656517723001200554251248508927341412213457521657173485375779981430905067901777394603601439504544606762456576217534920407717567861915257593772286757753049424045233228687284391642701381068662634401357343289389080762838358537961389974096702005560858997154410029910276813287340739636450908500454881163995556162660930543891862241443590009596792657944115731933792346121800196076455273391612822909212845350545711145704324569577293718823260117951049405596989864579703075449102262164893993976431229869593322822046987283883454783551939727753419038522689872841423840658042176661736968897522458937720063417242319418325584706401087562102291747560618095759526763845800111426686227211557883910370592515371941622449762170982011531309939974323769534435067995973461432410039797002968364845205603918845019755205750527273081914857036453616962470096472841257064847209673850551199684200687324545191349538171477018948027925771101191728938864532196205662264022151760547166269336848392631798249594792801036262096674251242942913630548884908041976607160662814404996874712385205991624033383118750240497511805945941112394183366162312562868491562450816089329861068660728109192732300985211155554708422772013321565367673817215837855637609026776354012722906804694995727921960160361864478970389346873227498923596876142616112745006229262067341182628655944261364602459614841495672013640576913384256050543353499097035715815260405901756815375636649928606049844176910618170414455353789581471847807017807401188494818886688086224390233260358654933693242877702223750882211731819684123950434861715503296344980620972076137452045571113618676467935768652876184155347169284936681989427011309888017853627427668569032863678150338182321248549618680759716893569015025008403486941093666833088038271769122604963444554697371246732373811820298049447994682311239136048411997773268605756205086754181568312313857685348050135295836228397405593036417604091018159428954003688736508306676630541532629212291536230047865411526941456396075986413652881610398669554238235770784386732473723570946829366068887962476897299683461682022043463782427280007206379421165058772051676723584983806105440306076170793742537964572045737250882775589619353375561298807423339860303672841039408712884805967528524562199337223778294533401466947943932868497748014707531776047090122509354558387137995975414028649672264538412154939067575590340152437642418301330890015450976765392325649453462511140706556779056138768902636421052934836350726163217900153426134080138200251511176170504934998325913291193780422726279041211711335175015415613875032224407487956385494433890263849658218941720959703856993358610468517703790085292154653828373086063595843669035121315276546015296763579698659970231645793987644037942741021739764588050558564825366317239688189591366236319780295397822369764873281147215641323990568708035749981007839795014902965479527793193423796364086298321483287061807282328355020147804718196920959049260128459492614966104058317908449112789720029435460781009513912609593992672524562489448312956911531848097392456661004254406567040216851190565456320152164891341529792455838357200734873819043082144027324850848760745755736536411866750695567447058584520543135123275708561726209757227989632140235187956414573257786801468280009539123183246429374782025529529796412001163225313677302685364219502652901486185793070873316499479397615671972707813835904691852066916054311644910056413507290785057414909484206458592332327928328132228202541434041648522287498597151309151950191843042337969425920978317222983216448699027796120034260298536163231316752670319562195688650227444966670545493633975311059540568496326417396737893463651088562323023623417240377216658033526785740680753972416032596678913408773833065897936159744581074415695794997290774335360944197494548296206382739381100872524703074687814246349077451495224422683178652716478976011784315066438579935406677523084168481321008801242043357000803407681525214987393231999143616182212454982487725347873831205171533321316251466016146395066880801162209666448428675940253478810285317000460507288488660162248052746464415435133365798401652756951898674751317671054009674033616202948022071245287623999682244359795434141612591040442151490603015062501728782975537102392556630064560178893577926454585336929404606014844014534520423153770952738826861792516763654118246309564258532756977833245149644186036479578388061076665547341887386522186153847498252593709209265589739683640673369786286150983820657696020620857975684905150715271760912626791468981279989798790496095377950384276448031146926241730684530784113985692829894408536075295769350229292247344538612604199534275345216532687888131389218147477019049757336008701301758138243797252255933155346017431156963720516201624312499447400117183946073678901739566654089836078061247388460726406259879332032578543191564622998337443653085561715436482034820133599121716427704668743234943492065884700163202272410802584626056738011687062190744719892497371666706346029430191899011314556394583304041999217213003521036182673789983054527438923791080663475049336649599059138360569456407129323250752558917050159765008250802860763438614160622952183219062654628158967934429903360028373174768734293758799318028774475559732559739070426428169501491337798153124425775972111334066895954735081714615647392234406923230635227008194316675803149694756865419757715999194305529893934794762016953304929753651635374724201448565846279528036936811230979345822126094690473485786214340477777560833251304815005913082121014272292821322603750055913404648943888530866337565676976846265027187795181199814229468154740543070848521075821209668440484994146784510219924258780276393122608389873576409917577030720419791951770443823211370022334672437689306433730469765422516471795633508495865829402231151411543664880990225032517252922905295406796950930724919359325192351901574881927706551798078500281922353289110104778566985528143329710072943243607087904530417632040704207095475630067261720203570640690556892313153836114038392629585122546136206612958974858858072992806975733369732510448538218860157119352080248102707507851020064013080607552946322064040639477468470760465620298948940459633243968411921787149658016968599102493279128546218159476410296963274489914138679268726315419372997602279489824656901235989006397709522481448867214777799020024651000868710852841396743338244047741033138742319512576636682729014279498829588364167673817509696142458082829121593193365393549887795345987290943731494603219307546576446645148273524648213725001843176780423380120435453815576748505074606239293981947146135877255950266494853422835806569237943324548008242625374379894861411367816390694268378563222770143341734675279115031477604133263770564707978564779120426709874844300201742131057178246201302427002260145311440220118197801411261034348306946931051585706143298788958904307304744750217183600416462195779083600363447599117587933549417854759222437055879475944931200765064433570165529525388148741545951684201188591775031745228860912550243984257002603019362177036379194665248318375016866816421938509510225627307243770089805248829877124422584089376561838166033481387312866013219511931915128997231420411817169440554399794531594793659257625233668985390941953904295018473400188576053414104602354540893028024829663644764942874311762594023414203713387564843456840045681282197640064696664223999378439716790472971567468254559591264246663710895410698264095353244353551250348839600362942992762498685619993338940816508207735531839934527885405556266833888780813324747937772847936867324689575439300412771576153327840143829678977774370100066666828356936198452047262935051952888436212432486301765059240172829316069564810492811124040184841772121690903386524544251372281128499866837418224575845315729401504277510894900296424143506410409204518874047733860877274772637737009273350031975381274139735114721956099535210107773023799925274236541869387320007183071658615876028692431222962175221825106010319344998676477432982954562495252049750593860390436946290229014398330911113060355615911419538689567681088076221498900440723639388730038465406783896482028598674883509481071798370181871379755536727087927578698490847775456126265271012770035853346128941443180395950692440316472558605264191413292603783800995108209861707414175842350882029775870087480677689646472678935833131418615798560848413006072630562140258201563784389693308436797531343750944010605867966760034529380563799023046986483558725590461750496188515759773906750771303121752320656282318958314622492633588931980423251909308434531290189649461668917404298692944099576494142015134286497531341865502255252229543648396546931734298327325910203393796855674895277689165217999353576812118141170236324930047982482375140403560804255067310380775323305776456283653273557678353292233674851288900436008068719815912118840623741886287822123086994995686058459852425715864630034844699671800586665487221656302764368353778457642518409857276584646694525868238093233883984545506841386791341441119279494402259517067514587284489355781046030592778834174476336240741703706404166919004354312892677081112063010843204056981394512542124861233799061162452854505481703675792984600161037062430398701467628592501735333660779586241898764441165730104148246816809886573588504127747692873416191236267562991477891465770174904212965484212831455942544177531754925589549041800886809337301379250388464179622482897946909896257310642281319874510939824864405617271832550575562066584744372736502177169272164222785310430664167068242740204230671145886236906920039842977990849256458919231274633705795494050714646843796955076345078289198253875561076357666434645665492914642534654877403782559797876904359479054515417894580640308299315824724088722004790002638827051721410876521399384320318412764222120805969313974710515553816071125204687938505721658076929327866641398854882098556971230002771804663154196509475400841176050070303456260682400348878929467140608275626573187566222347806858902963909142705180323261168243157379346555793749314104572808636154502142448931391169823915913203120199545568138997163901532442657363164543746923069341318933970085193223739154608921192784255691863366175171728900850753256791410155589555881968281567602290234402736253530951144535179889059119914624016911166250894320733747781314851173758656994435137966068233734067995704875661586832917555610310096861668954952499338164138947689909251470434270065070052225859254986556751760382148907467517700025553324237816794963412644506960980515594270800220198785289747876913257528902366396479802890271294676693270420721531630569506747872137207416862214171346320691074925841696765992011581334185413477405943989617412629302566988212888998300440830283503331890650676054549195384283610126674967843634912613069075901520269474384113112217397152834976538574465108118690810120350565943093104172024609390132333174049234673007081238360873416166483038093597732649803350617018622903339030768154110402660261675197286635906994316585235502384576430997091079536537416787181006521079017754996622938632378025204120587683863794125844304292435696233631538724477760913099216135938828252141189226631556277302792365777295421344563197723791143887169329159750341945786904679248100613063988318925990077664897595867700214135807499182549568122278835714220544994574987130141909076191234443531079034915119945414331608540103649077411979442961230111103073718884111675177095111008147710538439796837863683337746820681169837580888903574135008723286204913064586130657933266085868527928178851106787853116653161700517743907691406716458296335825733957001666184770248302323416055962793443942141979553472685078622014832446902601432800860134390262100303020974672936063209617048787929739715779174119357341908854961850075828879277878046109493595085162597585438325074178262022387091667965611603310877810138709816207591945212538665820257026727262825991129027868929206158893053764708903692476680518538435352093802352774854515829564390808216187451684494076222274746880026838900998859653878533962895869231801709864463882994445421670618629253540226921659822139730003210312475985847338940921216930186707205619540161247567388172136537283726740000230930846188110334734247348792023859343289988704706027607823529365654295463160384991734493870779853493619554055369068342623734739821421682169206378464328346243750348697650552577989168591099783569724164532941742138023434490925263562759875447932601505275081139021618594525354536144236020919782871410931881776595038762051706238384180776717088027153501984838646210713625733159970964031888625309086466652990593657555488340510307400208981347640551938548651846375415203192919300236333784725071914842978404760003733100413716994365127776017422145968518250204768977887679642076168379047229205577029721281666219376669887137167805335527975004423985513783195308054688705046023722493022418720850503242935902252028534977184018328622849485009048327554338063669155650518122979041859099811513561957386848803279515346588702964331551030119629520117805627368675145733012248682262429175853750703984844695796595129834148290568369039021625898640913035635218368282411984674680563168774085833135263860333214792460956488926360812864576625202804451242467139740145961522111928195793071310647225135525408571246125397953069110929098937267084179870783355949433834399614281163497824563683708825596532038476764928674979688122235067441302350228474990936498233601950395797861142130660598445489482029767559949008001803071746899051698975835789502032507033309205772977716052868396340334349664840316941925544257936035770263444660308213976751571536858900399197525823461674369713051990372108879650361357995274855358184852177580743433913287780239007110689146958346967389165298314976493555421911063424182581768633648810928540672855060256236352907366095620690980833266150216814094545378357264904155656347327327427806664543941969525362357867941221255903804247275102878192694086066957956749658020361532676966884346744913707944778066742935007734087092174147138844177061588970932652371476695842042479118491168601846468136289716858750011553695564497076729905630544532545687435447765135599571766523165335875051160151881181213393171984725309018256967298204161116805956486842499040231402012163449563624744148274039897831863142423913860849024089968313054269337678925222200787192247863520574413781759612875779129951861165027312377426782588924739552836375414281243586379470184154716874563343736683494058621818302914987132166342165218074418190702308554988939057831412097659155059400374586390987658065293452603693004109252158649010738485861378074957313927283117119408631052318857033074119432102025760800355606924571301006914607920551930284262152424722090012748602713429858230844981190273154379732768200413633632468419627488604321617018816511531887143344936677075769011956014414690276893846006326697887026501621327308171034239418927040140396456252370779483666448300438115147971600335165528135473838876909020039237781676444733246608985866701557608975326269509667037233122205384837801556247880502648012553775109517009543047583085526419786609607983573963363590443189697322652898870344452534518893366368988623485620752652033484100863982057296190255052219110988173173250375127150294941402972115225306055323445818591578355925677108868381570751731599311425446996641153693575021586256232307826603036368968400957256839412731596050244375426010659253516058883193239637456610935257310158466742558807864390059236138979593845714243707818506856840533904556651152935890897510752087767491917396224831020379978291417668828304153070477651623866476271058969116568839449176008395092053433257607454105931248824664497969499040818674543245840076930560649277372263720267436473810636540233420539379689067348443808715298481286661222090296583538291816271358022499102609507366553279508523258004574414911240372850927363538183236395367582673991307632497564041356280331281361369556564721925040974547248599965517844617295169679598077453724244740268354581140471269397332299571399865763725317632096936406806024775274822893269469704184378639570763099701313803387692768080094483480384252212449807374999610764560222424053650939065782247921919169374674166258415267671384137105961538481307069193609452991723652203289015870483521170277289306734649753700690576922851938909676712741057630101431750652409011436685422025646696764151338312364720417786933752885204264885199625699894971423004910379344041800821949525413687021263412047949083162267280468826760697097079470191580197713308813824093224897526300647055820089135808670265974246356986802379229589873545017016536561817866442012014400943421603563852289814709273504826499617863620291186952495435899295742867946750076586908424260723331950730946011732546048120279472363380504665809596363584047598582877404537387505571821499491486442442748238268220078857340994763376512933316061171366378043239374178453667673946024647821982150795342700608852168054215911199695902876114349554723537088779124903365299490768902815895300221388370607980837828674211891765115806248885584861405236402173651149425743566496037584425822861599854972431463468955540921908812802638308018659080423196351801234440787155535699171632918548073992367557555952486550620529817673177024766863210762215595472070663893638438922864772339559106491296680393692489191650737584873845821912180648764301766382861595515121468121980794105631334853004278740188487784793492182163392941219236002039464271585330463900749154723272194240621719657551746643292619546666858841784157600876912594114754897168611080368072821787142360997604953027575424662327719020259281782823775313773723374112513258413562866985491829420768603626601326912293793391227435083444052095327794028155439097091129121683563136084568390015408017894235867808783846876934825486882813340051704864221287273729386276006116645368959768228875970776278591415330282476287033173513326102848705280013013200257221967507765613342873054206599526995226326496370758192601614996608296581902506547071188684850024858870834049053087862975975612453261134448490944839867166783946657245517692281927569779314059056824576383444247055097174997657434995683307846080784688138521713507854796190393748857531505166856134336136255606250925005966168575527620277034822213707237908453222742783560159926540163574735010844216947632840769788362407089745142848780968411960207026961208601038314701651709046214219485118555211092141887851142351243034870145755119659730949361202534328367625038903720399801987282880491686778506811967640075764759628994632231182414983814584443251188884206075317193843726254733629719656993499430768029099312067367920736287793182436262697261957173488556754618587004952781118445066199509249993117255695350891672884555746959892761933840845466139919813729872407994810615181990404256347251916197657940756584964792863723215466864926129834420909121869274725555319107304724694840978521529498739018968490823954900347872433086119150878885132066090755873424042425581909495778101831036789271869908435721894659684082595107569202346228756698544656920543043495047539891770366630159827159090994970827304340643313801397804159409740351319010453539977758707053422012246334133112939857854471662570515076353217906270542375882441825262001464039583233497474694699600440672668027438706744659394155914273806731567074972816099108282262893617617823176592071323891206417938775236135409702919903148628213989592146836663578160124185510226420818888458619229396733470210368167652949621641967131109855472195751930373871242023745642434808253553682396651090475866962874606766793493750944694569051399920168867370926297807040196278190393630686179703030418430385633247135446545257979503961217715434287603862030572538937105731818436710532446037789739722043930941118458989120844718058131305924200151073288640800595930836159569068733225376613401117528444495827299919943039986669529684802944170794060735258232884206792973384161798907822401973859956897351895665168778826469564203174976679723605180786400576067701386863665726827340564372553018280329472380309891050904835064653713796052180739834967116209171543136077314769895059692220381308522514069985542190334375100116999186334779832796374808392624347585186237054640036634618306927194789865035877934883812289590240867419063676553913595841222364628842303020545064374397647077276732757044385745892274724318042594574279833240768919298651352370466461316968680113111041554186475058551777839398638563560710142963611225781401916998287079319490248721411692793601268485061939404920290596335933756562123456349187310069129063591548598124735177255199382273614411520672560875466605018375209779351256030434677128635787718263444815369647744452937297158943976337172371266654209540592581045886403845007736338561659377873956598478691655771815565729407802025005727343893764389747156400204650286265725711978406914758956297296081291558469394823275179755384454558912894140703095884509635684755049378507130786335303553188576009507996196988528039519642191983411749766896002960948230567667528051803388637846979082660230363844486880014160700936557877797408560932411755898833655082655267469076031686557422556328757901328674704418921102038759829230349762601501742260765225996153492100571621841232638633243539553520697471931931263614551621691340299688450984808353345788644631178468694998810122697174222880560488104871624437229270357668490006595361944738333298490568894682324017046729229615481133012425575541378921766907118246136558966217297561969074713303661708954445721654807296185169621426379825746052528901407121593900834701740298445928341815295128311614762403243403549135642989798293292900334976870120290757250794542372929655648377474154962841756707786045826164145623594446235548259035461826666839615743827693647191488298177362366165523351915008626761666435053275034339692626852503609090561629925523607954541129723050990480717222523968121291245428360496655805711477803340186993426541886844452138697493448147665171603848228720344143720998542421797483575176570530807880981548480487619095261252454695945724824432164343685774404656071510519989638288254376826990670585574745598491191334217782994233543433526699515872064870851412229483563186229877573295785416574564813925657537330171500118814740904714711136827899161013968788220124936212136589480398588644492569434192899541297986411311909425595776870849773944243671747194081695006964611456875460224880378005481219614991406344055996283085901673560579317378419181023261852132750489841462017180237559540874904382072575758212375473907828953518558422122805069630657708347354378678239196008208028306970626374630423575617903187714192573841286040253335149810359486982571753779217991210950990652938553345173745540042368623241596261603734321810892806310388609975002592998373010213621924155114004506898207799262835085426192124307905273698359910955254409586513052613442349811411168217710546024125320463201865814548530915996582056552077805206660516399649678067977764309149242411400337429072067496157475575545579869143507114152798869961080896449345972563779014839028026392490438846559103824997106155548529305805742445192926425883202624976884131348481175778551795211541212687566433702760349603035502442983916396417180501314897316727426133077687941406411965779180736689579629811604301476910254309823430008195762845273356000612211648786670874080577247757307171862735409679709191271624065607112898129064216869562859049114104337606858108530263113140737203100323160348636461949540545847332984129024976701918526736569207831380746303525627048500918386583941829299899557799823621427797939223128310530703011582725817580756115892452073614821204880813528969089244227598231172026641251851922582583918069591041326280170510989065676276815424006680591506211860806977180625403885835803900259144749167790470378465443348650786059624491011246431735901207704481615948924224545546713235981600737873001373011516141333491277569329761161254209699932119241596752456656625035181392654756429636587637897471710782293109836773322456763635564024057905038592016163881775724712139808819583771596263988190067939444578823227528035823995285510381370649925225092655229959701814844938803247851893013518506836450808566076295686338931761429496449601585791685133979266733255076191600384920834935980874874091940942804659179656557006705731232135919389592663061639351891291578992689021780657634243828141255062478677342043196365453948570914741550139648175937852945558337059293365149313118687811667917183191443336372684676437638034127266666820466903506328400141120473459412308513425833660973003590350368194661987619326844910300317599687905075280778975849632661995592028792424637735044549364942501087549724023258120576049940899477431793753904385309412594143551617964867673942829837219764748674971927004174001283637403033755963438033402866695613884843008599823357769232087450055595423665246294106268055533773368615102454201573504746508314990671902610293580846678817510560556690917763108537151329136286461521752964072661071881593690149505332111842135833005594176907111026436919311390262662730566571154264414932987813765107503930274354447859610329333559533897442450494728553454732327392828145704987604191741967858771122211378440554938506033472328264411783313997636709267142471319577382025746325500469385952962087691099807504600220646722021486424188980613260002205564733679720975220079833562610367984133622387354609426798953292983101882177480572867622130721924917263031613271019497066955655098187576079606239296674590196231733940597846955533435986311373304919698312614391869877537110892577976732424304805608885962080832008304678266816751089493381740726971355983925334256402067622193291876176352210725525328714350878885003397970507556937623664959886029575745011298953805660212218402476841433363589023786869755966077645553248922114919853402343362895791033022935291210229931096029334678758185827614104677721079587281544808943107880748036126760641961833663976861907591887065369128513423653323169594009422611544141898772275891331569149755705432549758839312924729248313360780721862425943429676767577874550231215499393171726496904807135792086994604046446366172747263536997090428471041919829252595059497191343133252906621270620109441729055536378550032553314232404065416001275690942234460799974565896716695732363872812137328070890746280505429769820141977310646387522796299044651048005136889153977565012105308818167480756386907805268592800279280767112873673202225253678536287077131591829758679662538119293927716992469674866248773450999173717787793166835862880111565677484197735804952750661881190101955613433169444721170609878836158608193646602938002064689296588245631314861582208221133197289464737006834556652919976224047338179291561417248867025645502566871703223606038321508194403007265353779471029440634503133534922970516130138194170258697278712776616291810284890737207674554702258621157101036824764461550753902240844336457651733059813102959693559947236317838138192358983658169960569596761400053136257698894096389026058333598747533519702036475972597855773952677230616233637292864310278801291370684085403716218929737882951615462132790646330697055711216404738218727292319663034790949786761508692547599680975685111937790156513507941224091122712599080545425672677087052283890863814112068453322669531113678408951717884841756493301406106619239326255355599110439751030331748635521072127895043808699177736078772272603302653212055460274730523088096840702742080519857353118282700229487757734719844486718507510649629969777343754000488634281020003917098978415030637219408344428162157844486832196297116976478547237003880501249890009386071689209941124876529842244649438029250146625244098625968630252952728868305607967420641727133226884778098588997255643356354505973201163009401371602014516157828472156942669793400851273371905892090273331650257373072096436331297484726610326728531496208084906872812423234722084122695968817072158725782308870373126130344364207545894098938415985303155062725233660592867758274619627569066739202146732932347676408629145392368167763529344271237011354189738337395469623180828017084868597190471160098885144198340919325156278801539709838062236292603036247785379379737383574428473564790249069113590096076513398837362785857329449095253090216089319414120813562841792582570237712368019647426841704471505943594292438312992806879197879235133331331208448366806379472578675095633417106207186846509995951587596459319018063235204798473526980792616561792513037462145861808824284612416762627297943782308450938255416231279716321782471261238566889119422818874363865500747472275543990776344754350679873025699436846432608129197973037677081656646077393187947371687710763150122863404245315317841638137493729014632594979282006911788637979005641549345012374579075890416453892815978743056201663394708589819366219994211077985005025436374526157981045845144577469668691748881798768360581697028500061759465860667606611646127423473541184921768294969008011590985202236524953756091554968775106965279559313536634221866983223095318984755747659638605274932609472275651070500816691665753705237815775223759335805023898135687763637392630192131576344816840978026912591978906847817658216450744108601391597218924891077224463279748503576395062047226496133941996441428390346772888540950686696117668125137373666620756318395370009143631671427579556185997446065205108838669320047460485568750310739216139505412353194370460932504306793742428620600133648114162603480378503302478931175656647927138041669762601176210376393929065461862201673674537728975474218959104602822273664164818608269116230563661712310172268353326999519940208138825778532391675392624086044300599128592908962820514154993629509680531158699486735614662167463135756596440283695316124230526487822713821045417483561959301271821860330382644363857785906587195631561586529780025179461733853356626683374436196038088950164057554768632997864872382359247388835665501360767484073527273470660481440377328135377563956709820960841120608295185782281751299780424313168513909783128481079954986996551420925126451579636717497259217307532429406556856947460971077463433652994391309937826948199582307532934569899423865648140238595539224992884499160084326663840003259565252556828407565186864639118765900659648559734839548580749805390930199981219986626951872073716149853980491839220174914673931431547756754508955712108319309310354106163474310741653886402235929289043410629831281280471884015448027209228646761662822518523795538969765365613612631955911983215327670249758924785121544443074228041113718404345468048006652386313492140790749605948870443787088428188263573057804448591256251169856120476219265168099510005423799592408117125843354408631386216578493760873406291603888515843360558756009186062816280300747349027084412557133879907857278470135364048853202979905972662333074804957323698068308460335374289375917727907713097369044673833023007070005612355211351943581983842327660157787059210731939534633265150427816568200109712158012596368235140403645124527455258922814262773170747600887765922688333943966218929136058391247638334031584263899228206032723649490015390486918729214881006507075383247496875855709896017365190558953023956199573115652650732756166553423273409876995556100863907384679485120377129174232437597315150345664588309054469664160364706284358228520154579321928733586039270330445205865315534196628894137892196727076027424168270474177614256594401552364844547712461564206352178463687330940919314393217802034546239916892870978522524788618188262907549429110533355689276592920000552762842518399008847631453501847394672734873480455635987636855232501379467722475330354433389679538328806148822173175802533208879551824711913074700571617237539470394535021978412755021140193927342781794479871515489142896955035725250337713947238523601398776204343123402093456604650238331044796986553861704535724834548315971923572196151152068956321695977459197200538608361011816559496848663975589330193071592041037780669280920661641364822163187372521689395005637340357314450727602675995948176027983996512297934483891798272807816619623178170136494229641575367253080743007321495799533255229417661144160573734885521017142171430317644547741182557062702090825409256230174623338846384734690228180535673447791464152431248588531817974771148775351649854109053221635305028968267343337873898307863155137552824756429059416088794479100338425016092728107792029288464475398393465375838259764424224630885464511353857628258029815446869937284336327721772156328947778828157300374130681078286547967413814088401495648409714739287190584905015406884217854401211066131484329943539288821875523247435963547581821268453497665270633955274355532881715329061610250448216234588146547304961854918334313115887676887410754488171833260642733630095811621482227444400082147986547294137517460005784601881412596080737451013175168958104936681917739983657904563685943137809525141724355367084844037982602548544496656203467161045073297031741978731548718899255240739001956304104888098702532364314524112512963522730219273845933901409916095111660538083739550067822549119614840739870152567330943370152486879255477481930409134134791791817058525587447605374025208329008310683024236901972489708847868214844326806922077490205782862763576319117708006689779736732180131128098277899574912935662265606795128893865149910963780148224238047384752690704067894134760470192589022951543985242586950924904131946770327547807830003211233426657828171649459363426414379357405028572331588474603661030577975638000500476562444402285123839003062461404180039700181278384908458293215179647758344039945785622604201834771400926599833750528858029027627534847731133561845494285999615531973976038710400686383277090595948197674428516177866033541095170606385553579255469011735603664417692946732067616804591407745762946696107620864954338180863900854729329650179733441464029808621549369249195529741187415029703547160176237971769277642363265716092768558596569959337313324730242241161171110629825558371267457829982457102964408585773490042525840052769354972400339399008391369895860009832187367072368007905248563126177668624619403216090777486384461312737530681387003034722722630596254990444034194857585408350405330269068771197043174242984411806783627977048267007193117499789932449145093659937585188689586741588886132091148419068517971487145655112157374927042229593436999855462750751201291521611414346863048069737740605623554200213479121785053086022145135939548535124283205785319323601597235385014168755109724391679210664821741962531076079740916502990575139360350911576693263310218665687992879708913886393422961554112099034487633864794500064255455694517545717942001396458093985161909362703806399505331288788515150431690117146381667553326419865337711735356669077346695623368177855422552467194172748459188425671045668394135182627877659595021615948310838582782123788982640693753475913940749507607150773972473566373645098809325547348794621894679354368125605086514534642699444276658568976488509662071693930329981115569994192107029169690851023650164767286080676849283941528151393370527394008689941874274726285182342147162071337988736182944920652356536964731015884316292268644933304023136760954804754872654990418716677576405104217864950836160347547240741997770584115454620093117543452639881060727119854069792570239293594907846302729870350862524151838476127395887695946634603720901849644871959397187637798899284297316298412338462369010103472664662653312458178048709992167942077921606958250156592179142324640702766994302237229652629784725385455064766087209931386917592583612869805279117851101860960292501547730357380976602212470491674478683849460345876167389995183651400163683400801615609561352975547075650540337069149417070991183499499151886608387705824253403218954538472810079136378623891788765199851279890292427517302223725418617905710963012017622716934151118296002190905645357554755323399999710340387666714300943790755256588620164525481814631930552233612314691306060729382250214497152545201729424589788008562542172832698900418996411270811285647517484073053654586937278498554428264833699718757378951436455622288056279666923007976458334721043092505561017589623988020373720193577823350317842053192362607081197299351927853239425815560449939811826829799522475163376800277946446053050274910568412456525338839767304004286042710516408263653824220619549770853168156079924887033797717590664711940467941551401708538197352530284820279577085919312128204023092721734575901319156006703620662001919992566296752655623809334390089651792580136557293265199174626184555320286880416991203405071140531749655713982972702294808757838539909345375608723229101218797392593129021757164399758500141081051590309409865978710265871253095016624826813676153280615796011281421364360654556679677124548640415013945162574248869008562783948602452526231707131734015741983726785390763227266678749942204299377149441811787432011724883048087573525510605557308362822913959347539815847962380658131224310088556150698711761255295567532860632229046714420999258129135143523174511050495172866955903059379289230475505784114473687386724613368157003889509314915616831200619797278388120523378526485668890174941798169573411826731806364719042088402553658226414955573926640760636837617399391550516863180883574538603367803732639485735881336897169788193083792499464274966771826976882398847787131164583341038652317563135555597330181903794011179295587629704747548093970263624716031741587534365320623419004635758511691990588569997985354409438140225997663765712286406902670227873207763803232649401118290094741854429709394323100070403048538251268240362354904468114294186410241634557967237024448396009782337692856886284961778667970558770480317578256766733200857248536039751116791582689090358668237719408843158187596496187252238134093327919736244554344134028516698580455330156385571532569689960986098513070376453118644027597107436145909991131215357432635560087742721150317454667368354998936950222427742181699688185521867931840327409299309905169478696017105079489581347180895533983026047067167846520861113520301101931271811629610156475157875477028802767013884950065670574266720780875284367414831400808928930859194072775456469092671410665767854822985974169672120810854187021099728596976294866259439485891605598281121928471288463153070921916445993178087494651611115535767566716660270005641233158463049819746412959910705973809287726183564950397667121679096675132511957046610532855386641914726398861196742355728580862544953972272684357415363365634761930779103206341312306800068548697790499904311650559454770591748155137701751249131791378129385624736082329759897771709218745243209277551148098635300198398299138531187627779241739117644074873428899879743806101022259545805153698296561094420667058152647762191400036351753790841410567867781576056259604495986695209667081838984490892886339117224739677529144196155531843308038720035371013753254258061885780003872827975203328924848521579765570789658769979599295126115471554954366543886977425900037984608018028366768537749808593480702455855788684917950430364941908242232685705724639888857215947149169287401297605145903225022379457786218395122343664861452442362176186401335802164499323506372261305050193139773258877828934252372931298482486675747145359533060715243382508619680783824984084196096926426504091209019158469368835231124969258511838799484962072378548954956661894622230537820225624111986996895544048545395331940650497945095072224160854950741293363837732256190009657445633923911065518204803831013598191247581760461758763665186141988431711010763757540953684378338294647824538973801959868085352746784413806010000837706226772598059524067173821798351093691831449041833723349597913433897172720721010363835062734418405452258386697352956228707176440151587499026580473826977671840829591721193238121120977790001109256179406723747862338419219909269114400807283235944465284853032074369960983488050146619756225337739093633379214236663158328302453452673819007989586633092221351149339933007347094418963378940089132755887750457839944607089630380032653922293789442907368265874118904929939833769621300217552008694147578499170078153141026312203956823925271049087311474868508906352510705921653832988370845341555784350400242716362256222772779958413342347332478482116107884837293680053940635501588657280447409080872886938073710619603541621213200336237791105993341765354478795594431338333297907233609899860135341331805265713681903558144267006870446218145750156212898802464052377154460839905026375064181852533542502078240020315876676425113510121738141740313641465340534537109092260533375615409410385904601132021336898769008449229166610943204659439563840107594067394343853171843839775771370721003098526838951700974760651705566497108159125585994147235858978652686413333195820002910123883629845116086096621911397947067552336643160121123775184556250650390008091390946551350877636404471230052010693277346483061706049883334168967865358633469036467198882499285835281494346675288517911197777450426627700209219520799980112336428715097754281141637018296671420465596197554055734195948464220573863005961164922763144432292676046709348746046321370233408320979672971686348466025338773642853166016310330724597966868382079806885653255824626355317821116504956821364200955777496879424327062491996647927364880710384095825134546369482208979657709145100249188584225666440799751780149983814472684931538342079156093355273223529865150525453318264835813777307869770108592296691694081685718709058560776197954161159290284510025304455757987975528207649086315805489366283446632811344634062663681545723239876081694840652896825200864537332289080294168478037535233340079315994890456841931907984657702196550219885193174905358053975888704384604214376678668161052587972130998258731714043234640822104098992154753231024697997130895458182573822947076612620643757325743708554452476685132428458440270181755328024450759769399346245924909142277797916915961620680751671182208717409837274673701528724104075963718303803548471999378896363795622937135570373146824889254102467586137851006056700203566748264458183419382088000417984290670679227380778519174705023264872741314448967822457845624351588079422057556986954659886404893359415143934944637448271417582461363995836459288602476641201795620622192391555369918858607697751938100306449190265847405535933951847514041685310447671365707534557047530701516449495572633561528294373060212747340251458912179314023260686497252414637277294814890052936744468212755091502960474646747586201292225834580081537282096826805037849164993626069819578801716671177570870903949501295076190285253848798796703300747509142969719047955707237014373585930514422387783223491305900024856199623755370201748625043077638311781704399026617108641229526023503935467580566698039298751819518784013564814973777160064702094780149191226469884414383047647249063876361406188400111220491004537312713794874693427521907188688842350884445277992602976519231964801393064929756095172035945769959533423005955455997253453776882181669139258115951762557082788042528155117724701738047002481199298323885998638910483651423395041519256748798870587626758691396737217857370388889190306090487569148335870678271494719992676507887246619938574429875778197248519227796559985319355325581864095371715540655999182076697847434246831839584729765864044210141506768995003769333287661703402658588411073245156425983517915888697630996116835393103859501181247914562862738124866269537299240765924840306030748667006799534122001976436402931738993263705155583041129725689310014956635870028126256075951181520038031182288816258142423984781086263768910712381968035787316995630399371436978642965581833387867122690008517660728466896607371581318291101551544396481476739888145127330238545957680934827427285808889480789834793450359888578313347515233788552134442691518960293778261092681888462213924455333863746718145435049317614282752716111888375509351171708987291411311409336632571032330646198474876764721993234128188275723864317220298633323148739641820496358013280927503518339232318671084121911001589205253619577142783870201657679764226266488935969819277892558488267754829736759290412142766031267528357454450489671775826197577894371418873095713199958624503126452878005547871352683367945043199856250541166473656784712849113890402465042827635493518282770307009685471778220741376344072913778356568169034377595651281064996193086194887070983617788856424762025743646718300463314909994423326421092325726004680612454912242526234188640718370960400360274764669974817760668013099878598480078488328973160685074671737665643896125171193554593682112753988146620433443598896408249213238329689964080022164077600752946094843561124252141715321654129525653650477860221581455894436847685122563939690555211757269327867028767279449927164692760876053328354375162967674725403819977365340047026012726206556599871056743937039390471114051684737809517264030163917564089322791066719565355761061310639595401435983924070774825026338682640573030353947146100680661843991885877847034881470969432658454301383348197850854842995386929853933854798541890297266272345856367726637507500838069820433650647937926355675608782826817989500509568851079045452976703778251403945332250156885625752901448079423182143971773415481838029468742967013502846352145323720894311217815710644936944767233792599714407224565808145932033420339484446331669068553510769023840096526634780377355290839116281251667721018668509886537719310270977402840879387306205072541884664215326872780372870827767384349233968029626078753055225833469301685301242564488687897293106473658087334925431801546187402303156304119799954825353683967915980918116004518979633535445216827345958384618825402450295218809652848484423583956812372774593935300673651155437556493109825448033605592205036541235167862459597745125435179932659498546586193073482650089157180549535030214133206984321225052320385398592889411203342399228539748815170453247573640503888054793016907532218599357333529856393717961120722293442791217046846894302209053302313140334313151708988692053209720698664949697096349649868086606810845735528193606655096600965015657190685698338040741177099719505022322764789266464270247046220297819894341065814426931207481301879011597070410784268187792819118509360932902797203323937873595374739562761369824057911634175742635564647829047905826882331534957049650111098612837964762405585329947435222800912305488655167643787996250473023875933988703547494723625403553348150481169709291840105465180500357645845305188163706665659556647731989164739105541538512246248459852216453295635882528585778994421452950087752417418163895645331591143006453154537004054935344171278634348977237426318715858637833723666064207325908249506968321150466640072822181230715896523893326168408095244838841865646436642766624833558071176787702989487882249439117540476533886925795477121696346382073627284497675743891825534882634302606557153733232823746997547963892840306941900879547401849394565756273739404871054042755556627646081222684691121614287988102260905016095760534042986465836677412920505634021475515003488051454185104360689557773448241897288761431281301279182600002203269562355040795404910224200725648513091555806615563867548323541891662047568741107789044042384787793162221619916068931617422337471102008393010085244693362198423026616102117370469085124115885144665350591763249756491269035349165558525115428154270882560159403441376132176288865272906262027468344653267272483379846793011562213252636247981446281158997307748329652680629440710404985652520140301355322863813773365243687604030245550553393904789972758471963476906726715691534464591131276972964837754615202792437900203173584596835117665995387214739051891688882795215930699810384842084742736389655672003917269242448759886076103627041634619184130391121128479051653577739637643058637120747446361209055978237687724343398575534208920056623351054038971623785268576556278551327681838951803630854035928727095975035954677646558623790802477820416284886165191517860198473977609276414977474236877569783151772897564970858752383179673714040525134650401522538089252189372348197276660913273655330375652446988701785841710337963872872589335400727935985405066506743351751837189269951608926894920908901456066175649816883998555456155849115375075596122271832152929031746032926466614551493592090977694898175886593560749899887667214307343730519380184570223982755483636898228277021291391364889440466529507435716244591633903506326863944198887616193890220059440259559761736088308685534261566158184774054878397499961740721311591725011204811841248737849091037437251573428792152311667876081134965575944448199996493460446301806755903533936224832337490738367576136045772125271558580725938333729529964432925215618752609657607286996313384427936710503556692792941289318495800243047074970412324272210553737578931851886168664035231029411491971947121506321363893885721581544778873954084966935957957916453746114204975329172121003056203428515607421828741662062075007822063827465257353652984453319735505300703343484428116943816300893245143163258594351571710537705257523583443066257138427363326157316502423777459727758940020241723918001209814576961853028880280817410299465716918169803569559256800346421252057574696423597958508868730035004579725677813969596410152781026073873119582815023674762802796049140514871409315234834845996853103477090174063906214688520479839457928373591799390262059601657586775482592033686930447667059700215408441841813519702057078074629269794455635203957361138696127251987521351124069633003937588371606975194248552027731465220840487349272466340039322055874281056324433865187640242485107814584144884105599011636635201465221322833309797545511030937334561845027591333912239358448874001244293773324282773875765626698887618912772789866630573062380099405096427906004379319525451542448543443744884483915612686858443857095160648562080954372694347485106020325388088294000183269076597361525573817492696676786068292502611578212923685322877277453177961544861004754822341500880153592005010575078436491499845106368988586095566379280615068204943816088629436893712021479026182778920807129433656373603805146216094075500148969294403451110029767681376905353391252246373303327828810392911791024022860482318716846801861860682104871269154588559893582963440287277488722890018605540932333053371649311812856991538479838676299024819741061613607268118783308931994076456031587886464769689947482673050552734319405198546807211433436945596916052198465885009865537959845620049166567794810900571440763523972415784166041711846425219657712890078034966039406731015070527922667803178594436603812015246158138501596035228155192455282840370776150319695941241506193782157720462243965019024793559059642580168508177337094216213736293629364994361501561800899354602307098949557634053679312748406129093909304900583238797014056746638255590713834385796383123072117851070899091887786897394960515655440118786290695680668933754107827592043147037486520156307944786964003935073051547288803607512122812958925967021414371133015072969483900713512518721247425417600600447397679073379637364015858813396850864834471845847406026106940589825004744911272454548732988731779456572221335099380117221726409364920970694674491447869595964476574735489183809138969591645386715003030923830153344379851469669479978132606954178145465175150056581960667384073627310954131496298584373737498019964366902187588833182648841729466770014841553541370025026577519221166811441958968233371819874378999591533210885662535534590280231576546755076477796987993614898669879068303378055214342302635676382103773385558537054941356974020730304413371618733321810740840026615915273716525495801769638626221124574682847310250525176062719402434050488119689774584001115749512185021737073935306595051046027319745022843737496251922013154451208073557970732429202912070090709555032069778340639245313663774326667475312727176637673574868459649374836033893828513131139210888385441983590767625372103232256877550979611664551151628027090618576011842287206868611310752314509236655993489317789460269190510009834197571855175982390280868800893161894990925467988659551407462694822055007707109509715549947525491184976464766078492154995537919392545574968047095347318457256824210973812486554470919953366121104837376977491378852323720815346960273779486569313216819290333427733116447769935366220501980398542784569773549767188702496646009522278681840234935341693502098152438305576904715695212488973685102654357741689420482552810178543807552137114354170254287338706451897154610977797053938030470297448842433788135012052369699600833392374433436981056286680946432868308167774882545887561789043496297623364865398398076169023823083594623745502176869051493294781929507062426046025034638494868889088902198188898002458434600136143624279517378744737726113169642132591249862167077775281681158995312688071110635464119106770203397948066173247240531275163363772810362875604027797349920636219934069378950357923749770929212269215830957693898765035447692142204735234457987977315165731474670592657897303510404471698598992377783634069964496926793177641354089946213450990504342674638209606614320709813279717144728973827573905819269515390127625839751261259132256039948201528754884759027553427631502752830713018487040701523301454344676527197797273583704215279040570917769047864762310031635210884047578559111151155706911975315110684651296199306932623943948533289187799875380217159110056140365601869423881638364772057471267712003582708858395672504505808792209489338348097361282031561424100252901898375253853427558943652486546170504226810773819824755954628278064896389719863754963112858827876472760527321397087749753428020807568315739864392617689028276163822045864609231664512183090955832462759387154999064040806464183501695232547198087600875602789975960393299167338315787387896068743189880754127923977732740151153024201960303507424472621808198298254186868329822789367960750804940414400166194163714546274325115671221941291765832229180006868200023164011312407709392702762554406216398221468982184161976237913328036748310008313310501574003452758310494549719345059466153935011866693691114758503743573582436469138742482681255221171708823837461788563238217682680158718131446782606569389197435787646068498457698502503613457343490670545419761476326010634767698520411970943625852961633694092035403772732729318553944910999852707820498149681398943453804534530215510423992328459791188724345800789974414420627639123388392839582939721703247029548158271628331104856060057896318227984111817910739630979610659471370532390721307829064869299991961468339289668957887002198771248398097842560822626216273393400141665804408530065776768278683879946331743311856310973816859863783417906194627523715276286410137828749915006315140165971008321133065676732713876757799853886792849841697264943978109854520482038315927310402495071324097904364863656191707328702355147101877004987841724434429362779147751076775583420639815618016958575667735922378924530398610830676839343551067943258722222038807655007944175282887763490069292211893770343004027147650671626480260759976701799120351288038317367970424808368559823714330440503687457400084148349038621298381116401701507981370305923388853984176039848508108956901978099489521653106118147786365763032346445505707301514976159759359717751539993711001742976672076898184954818402256099548756778566853437509884720203227970272057684023727315954516591904987092869217645254151762050935597369359039603677685170051905292427448965097518365080348899348020839963450943211641644799999093681865063833777594108615496275436341486830343498626719824584347773622283772813436656860405867920218097208882817867246102915694371969047141893324968583205056268824681339018713053409501332316599037658208670012922556896261167127033643202406866957325154296131163770129018033807580595685049747736536257439376909594338023039314007354948417956281513654047200590068597554529554581213345880336207517897096468507993501758624553566423966225999831255683270567416537562111164145602864146671349281943148288041551731231967812547911389153212450202598113553090306974161569037351002069213609804866685421253728944902540119835454921505512243246974622763973917858101897714152466383508614132602297628841018908852996122541261661626462195613112540883374696376993618832698549503045544396573931053995837278178705265970403745788674921819177742919159562353179662799366838495671043976011820047336822523432168508096706597181259326978082187765108530385684873537481012187424504722243975958711379116809607895173077958905379132085803467674056842185260467504010111147313722469402174740032713071211666041571054312245872426869338166482814103022077223813527658290749115037885669435092320176418206423824619024622650699821629912887561140008606422471685892160397715174730571114788248640260714274684024733380301694522401749830415381345137542052127525858095928934897514215736199897792102357351239598580393547302936047479494496504803406681829981069737918122504258121917254036824430290878711032345007603143434129379644782119045939649352534759769806706900610864941121469301112991918274414823315137869329005968869181414732319903548208770787849476320566207646467918837293327395177518890758463519627890988917958752156892833399995662871971146404694067267086425220600145876588091868977549833763585127854616278933032085862034558931287026506790565608333138673762011007978906899293350376749325983270417541200368289570401651926304793321609950632314533383966827234882380125518553027748406939000332059072306190636052898854497431043610621680840621842766155160754999080907480614984447583163854094879855071317557485106474503245654282513744254598118075961379723076501308020524578167902131729757509415427832013726233122908066154890492217278532945270146449004237860570579506520454769247275599208198566738240001791308067523974532431898213662499782034912483424833536844106495754001871069427434068006598689495889287196009997804383703425389917330685760188604960115276157786069173414687443121769992995679733946142117122684916706398815138603817934636554295683260974046034910634016019238674237078073615431098090180987479481388337794084149274562556658858890882512541509692532811938453739602483864882977999408554637658987154291567019203582925169917007811476218026865540993534714278761651444805118396844467759092486076038515771602272845562211180309228129339492806098730235311546626461868538942607065893400793466686913418833602420544892362089168133480612842782974057088750148610106651049897212014009295732018992153755162381387661284401193198603962082092871788731923365694927494702212613454267283652583535891367766900765434277374651478251799542020206620780784114726679946880616987277770083783449956351890831938385767428627192967731306434437457903958092250749309239364782054346498145821553928521527688500795182155521031018788711369967139942626264795290583486504584955719335005134511965461564235166430106638585889189052533644995707466690560093400926133006334312826751084256321683334256150777604932741164239906488983554057113886118543711241559655685129718365357891028116962346608653299009713504414104253242752105443813122810237159147313631917221184773308131572627015456482199012154836665964247985891883313417195006078683015023864363349615817733734172290364711383650904987135379361884463136275433729952273888936676963073249119563890902401942290701019885653806989727423631067030533427336319591026879870674179991462399818344412161891992806441647242822377940938393269541969768589082700375258276894016276504034271633757186969088014948812382186041976353614872263767321965845830107588306550950081900333219949734497774431871608995930244844533035147728804341179244338877336806106671324204489368852999801591277611259129332011664487679784683180652114247380140686834390464718033605143550546012970862496579013436515658014580823986238064143899881418491079519671129503462057177127043527435154761906727968205098859064841151087392230233738505584432952047423765765093553350861976155385781202981421514951271192828849888419567042140631693331546692357285936631912996290825080074875206652949234238388374994551668750904040341325332362879761472736519522631520087114195806672863375577959497086244109483126978428224912335706018136855571014930252642942494883328033130746269305300942424604862293710511056767980848268835637791230599199185337685323083143172810118507367873724809806330735449312814561744855623455468335710915128442502172330347632956719994333611795430272112690280528344093216351445313170601454208770752056790219688644149955680945949380707468803127755473553467779641090626651842912311581679301930002186240011063605909045086549102786712172076409430693933861455387215331107255920910570025018144365017028213295012348369216783221360600400581319157066136663067152985998048215735502642979603770464384259907229139439734676660691235272257691633010977115456701802053787772652672443069766088911767849434425342349577186629451448764832653213133448879797983597445774803526335300687933609212886471431468712063093358572887370253528570253710658617537721534388972732635917673719555403119365241432073527218891859814688229808464218102611898496085246936026843804599836257513122180990623438873229147566246306543021558773792351599166809354456122499467740962383391992334677017980486969868779757927612682197694570214266432126356239260386327299131679661129020024705451999766872610140907172199969973942602802313727983552251064499396209218080280504562315168513397035600361851130945916868605142598399026120084595652068536635558502857283892953924339785420180013872425164556803155555263183130872268106053718735787101942202245328219506803320316535569833957581496373787705839164508048930695616490467440091813473213177278636602442146672946317847661283030827577981472753736554021187046505264043811053229845626739489806410461249565923136851126653866276899969776408851819267620359911844783747291374098776715445939493553382093502321119403673081473395525382790357077706863661641720200468804002502774287195714091958416115756672840249935479037143653705557324667827451137091806446178509534829053400443359452539627597677057883111897624340962872052742034588302943051944240317833147691357007515038792354962243728382218906050302730036582549448848200852702801367559143826420878313990340541136562958758477684127900123524389309577103238493555958233702311914912194212564904076642070970956353732592020169673770851005237369009974632724426393445742087518894948508957422755297945955887549511427169372886865011356791495957218772026297220799784284414490937754055308169631171034763831414137944144943173413678981727437897629163975119492106551914525271982430623155041794863339880657156220980519748764186455956053340056375044809951577511252244494111302430530490299878764695972820991559924813021879012434152663247497319235620942757929021590567319071315512003076904414513498668861437937051931104477465026351438855192206383380436926825182067436341105956846959254687638829996008518948874015739936274061649093271928221260407707577964246286087941210131650328055206641207662070512882856869607627739275504546483292247604461508514270465698823483162254282516047714034737240154330403949033396751890371966225987330819511778945685045120549575715350481951807393416282978986255626260641968026846841831280369122767531524461115757421616481070666132749972656886313689886806254905130363377837767944730377152007697050293156053891581127572067147797128729081077126436852623690468022501663159847192752834854906631623863240028278796545229670356691291663616214316715560316835459828236726793932309227071085088680248855185909156503112247503040171132615161672709343666165004090101540544923499168608906801870307925310225956979237687804563697537837349519234602884417372047445854371761856124419655968297168235470440114053702744308904677348877971861382911811687150085719792564811743845814663187352095110888992567371820857031025032930273561741180001956157705372513219663315466827204209621473063466495818567118266424488896026116794173648523549496332654079608454348461339866095260830425895918785337998565645919339660715982677053866680435567946370836359929233962762330101244631560141259132793017860666685188246673004351163766822511086923230102440675368604118914696768024466741601029145861336420848339474014683458589291307136270305541188559470431879125414775719291438570909523963912877871193823374894998693959413757862387322272857565513261779507998909676367595090938377467429671405108466585860804836302334323241741522810966828810299304868372758359911790650726327900997323925791158814352449416594071356054253488894690882053666422420153247715633104080986653485679579558153927526127111684029273471316654706285529213132561398580425592403991995443895529516598469971504996224446551140804450677075145445298712203282826717951575016664997732242937877921896308391822413238372379927331572913559572134867185755232393532723696477545182794358340467190406618700484149495299633957028354350967381639844109155072495325113998396669316756002695051203577013131446188619076840697565996459478294908861507842676848457968743514495643770425643943397534446207497444445005326912660728595893920078664556315926808187086713449000069452098584615681744123451263872726166525966426068478203491826063256868140154247680145069519473345923307656535825586469230925844146814072940812109917119836814542730740388376799237587052874054617338846314231759105824463673070619646327430303821295985353925775281892652602941426375453270709355264017059815611284010851454302900663497069375134236387265269827448155590655668677943611507603562538697788175150480099636363263768238974611915956659943807814028006179147673004954576054376595760973721904340217480756949998051985517198597594014325457309006513107140178321384843632255805933107153834128414747656583387013354379817005254552885468199814841205185931659992495050489930461799398190449414151317882774515826950497742141234254962250035787740294507956847111763627144785356012405421937369200101574581157443617673866744422242987334294698527823602362729550893452877661985308452399864906147533873396626378218570307070440416552084809558445507217004576395201211880756624687528490786390009022954167924059201426754185233483138668266543696787586144305427450862044016493098352715949234859301231259296866606273138786876517142915410205118980330842609450071408954408090063871765885165297591459646092572909103508988014533143970344528075820152684341202550747367747553888850237773731352026524783163277218975426756827136223035931976401570123066180285578723407152387935214409274014919787873187097796357627063211955572756762280205514692957879406928481285768431913151782665817112843899296696014502766774147715123547606606846408582093868156928889471086433201942804241878336315430075731468854945617497076434803965309635831877588231826958083207438713728468022353055102253666141074944565021849483725701270107943346641989990530113538819004613837438363776638718563889685141419472820842762111484011004687762645922328934365281660546872029363403175670004257033696544764750363208641083925357734897322100442366660978629048195361146342805236689838187981172401367967402231817946660112629602725830253178225953722820823705484875844846199149348342324173365303195957463929462695872597143128487132110852513057194220249743529277861896681772711264522765644524676618728042053762374992016706957250320876953052383201215502607904910674664125469860789889096648494605151380238495139628219721429655297459273441418238121228221426143782512391602974879915529579777941681522807554803254261203380170937466863973676241487651413002953766611778117727943326368780295080648974147824228123351843293571089736884153482599963181543854905561252794217060111519014635555788603418809035157183383435058448752975406123170944397849684147982284901399062913215178814216274869359344058557687982367502803141613564042998911154267012368226759338081786473945663070013666960555411473505241545433957944096325471572721466104231832547993185099586360374221571003061184322402967747620513490573366532004839817485087409054414828596653484288453125641644934254498066292929031095147580740801016397292564455959995650435292630799607998185271382769490782024501326243974987531375093814096574148859242864055840041669071412415295960431218413147268488134721384697845499490157548494687360382592679034131220547594126956238707304902924404884598300749891908337134872160028339839965418400992536895860298410390732719626598644139308965362413575081529189187568188976839587464268915697680419363038177083614133265909959677247497564349322332236303695753296765722606188680667955474969902692960230358229160589555944655073782254937503130387944793214752310813958710755934689247498667443804813653810997520367719446981532271609595291483461718972876892589179586371974865044546249628882740986921019565441432024966628973505934918327170516680709499768581166415245049875899300752251378393388713312148869331541996060076495163326420875720523955297123176290943163528682047527718109156047791310412072656253171811651347813238251950728565014668763587184249307254524612700681808452077034441836682209218728443836131834058828445136047358595613833490123556777752993781974682841313961108561611886946645406001293720724144575263168111699507579899203827028460644795966705466684938667596867795346202157421248176398267455913251243814950823005145721903642961928048547867645021627188493582537334132002017279718830291410624389573317716586692105509363614302037209080344917125581196454287001960121236349337518198228739047423846114240954205771517553208104018752273228530331731625038325773736647956056479933418728204491508523517400787495709231839265529589294115806191856167043637058896483666344030033440534249397192346533712183750155751895717280582798991887700155525493925224664984611525359031555342793499595616211887251736923746898209144822399535133130842350020917548140604788958490412497362221773742260858425136800792805084716103208379441347016784048086464730207779300803408838537335485118553301361863769116396401212617593058713746166398103296986001702738980734904734819981388101105364838738180964131130864049917892657978251286475935508404766898258791116052923847878389134944484785784384163569213119320132730491786122165727917395769602755516489268082012455902809593194522599850603663994094493747884802389325505712817663164034905497935430363959955381363961899209232230530709326387611461300342716912387232330946520865388885123138639374617751842501397964119427134437524032199182244781508920158136098099041359257646383653064938754777703841491598217540606063553685018422340633529973502454063908695251021768381715452668516700465572482235788253465358592440272953795474658073245683956979232516837364110851946178260081340295761003906656827613906533916667211315777171770159539558552073398531048400472869926656574049611636553797331962540533236469790803166758974643049629561796350027500592260041340134978418686137177262547409942872169735432002175146894330323023852991386008187691209018208191284961917987224791661814808186132631478049786595130921395399978523820139888409044302866090488547122671068100852278789246658238547113759355067188586962382627324252143617317172029135071457019806173511278453168971814075198098191380891535278373268414193141997916506048329280963717354697050467336236518276660218050600968202384140311077757522696392616413194840877075388977751415856848569501917828742094270318271876510883250683520004641251648077491702551402254222723846574149631414966210841537828391051646989677993623676695174633749743683713787401560404316939866699419048183817887464507302507897387874271138005823329311835767741864581471130484858464835471958200235291423542141741347983639280460377855411672980672877156893868086771986416643242592314883570136241531040109036031161540479832522322253066201043584039448170156669547578516650364278408817668552704006180271265005205731840958334561241091065215678850501082322596706132807093403654990978811310462562629118895224965429979110181138159016050763189246292843427847898060058545588264912997665005261917419522510051449932864202811166579645485735739402230487497339668089409481396009721537522610874290409806386082814954830679503744228149567817107686080760399040644950851607142676402957306702270502225866570381012561634184097864680520350154662345485733706091409141721776434820572253468892334202433220198056695611070175903039724816052769638258025362857477051821413721405167602111862477059688702642893076136699177367866733098876438535011423908612567815546749455636302243385862053571592787658687711104582394589340857491171412180152656003373232577580670978077823407202210855043927986212044682041738391730061556748584891770590943223679763115120492006600879464140016945601351784760177524206610374838035802875339886894016788850337419283463420129466177614930530953231454141371651563564215207125219117743585956630909873020940857629164202167642623394075249694218578512275636368207631648340651088794007188170000712522593009907429807072812883294415551507915577761440141406041525867491469828610917300429778601412088377079651173915876575661439423804596084705338800154932619479208483193430787366168489378015149751183494744588622523753429459382130580053622253031155288715466868405833933202409838967316056910632153721608054830532860720678938194433902579844022738020668224805420065608716258248020528624786455838400632303509580778346691339765773158585431787556640610105178888799813189020274345942990368911640285278527117246146803617108411914747300715975825040696992942787749045171004084172562958837154311787388369054644368774066287126821743045968707313103098196858459591819741680437966492407979952963025757179251416407853921778558636204106182026313114035728775715962338493765982529787163534111868597881406776306782418614166891707448901820267187738054233936519497137623711703449809824233277914663492817577270372037432424038749504917950931945023320246368268837767445848951327428190578096085264295672694971249511686387385983477469764948526443138266997480374077117897591972247166887185633583516017023978326899245174539138319107177277596718214548646074595356305114723322234702575435197439018109865496368757917847875277925395242271462318080349053858503109831614608673287994695217685016782232027706247992294367090658661779442071376032333849078232195436323105595137631907167476663434768898383542769820968538313330106967770442785442866753953024132555391452406987799907943477321743316244671297498042332108844988263520910824402168148773953262978876042408949243120970003479446768080267103394190887767241722404114346127496219805415251838058176994939939057774766378124395957518236933775676371481513446813945345525927536417180239494877567173067069292539574091767810161842843994237925213719976009919623005142819448564949554545835375401853075718536834854410246305788156369944684369264226889294803525908441729802457233282824686823709437407826360492250847572204787559995684557604259853928652958622200358827666646341200466056032883630381767221192410173070451883645504218724176473103017080280090630043018459588355420391553453444724868546733449865145203182678623816512130109766925363700761425006898295519644298460297203944286916317584598351179272729928039319117115427426391674211383991465366053000559272483476769630700445114200621587943272235487688685585785663671845326608259551339631759192542553105909336657139801854758647104586454403726544337492014212467193508296138627336168638528587279204939320953734801539521903949533624951341836133571603263016877710868332343053092413564531368000124456738469634263043747581329607815435730794166983244004916955881323385180731767996161794871600385090316415167116830276707490062616285857006502604209467125491384201021055294425093788091335962745397771410683897703587874960307176460899882210469773302913505417761626788562554465183558998395630038089633053157226125302999399419551492740685321775694227234962434827925917439926448238965769886583651482288290638740968578532137461551888570954698919980895489389258163994183565307062159088407319255436567301729566444435856905691868473217297957198011603377816128502239757746835660284013376681615648514934903861996872255970234560056324861476088299133444684138013059141671751588015384916730927268547333957810479589021966310353747107482752769104662356749917700034338875043024564062697825407647600119732507960781113478327519729610578085784801438372624695087373824626159773425659394496441537546921235937596588768306242897379479909983497621042743772164560042286953147124843760723104230279753074667180000615499544122761950980697191675646666151890136881021244474811824212506015644210960264402567174664854782468849763877278270104483581064307956869427340258492294184165739261403158012282492398788599520393131306685374724091639040880173336564447932111530967344927025413934338390156995463404554355519632403620902821415193446608185628185747177496303565910483118521177185294320594093271409468241452047456031746648852048368472538061149599576060008793850946071974730870152592212105078400336650810959871202545651846942648461583748980202782224440377880777797248159562374075240473166515815533791852561160367686964651948187879673764945028563137045628884429145923356080583273268131962136256504304515971447776788561514357808372380985446108033949383377540811850723358058776138612029308846798655556947671676112139857753589134285019944979031988452362549407222811787344249500712227070962882417146635182628826460077661032962367941503483242761229744130504820587805638678519905038180835777039575779869245348866391028627568412249745940352904612156161909284978617703238788507928010651168885955567207819994978732814867444035163337707800876491283448681054725281057717965454446466940157450891562445557341909025639309489253697342137378406962924452200438364594319477657010413400240643652302910301955276018506282116956791351647586299279418819221834452890207842835889300792151423311180711410356394686712373876487725833335007679893439897180067849391136025391865308460578979195598496824087343809825025045246443193686328415077263794426884579047123845855800137718820726122752535641141422984371413578752012684325852199680013523056016425399372144533009502592014685952690703543365678190387535080064260106358576260394148246582970092405884169479142256882159699259462313916041471823767315295851154529159779104470319662376451155636559531185140206762760088938026749296864715595725663608528307481384260211399991032491603431855804243473101329905207993164423277180119420762366726899270003764345731307705234610777411504199752504063008688122112669478142948606006967028035645538106036688677569034195895498110690592575116164952875049525250098946549061395390933930434616493965214150051645215745157424396725644759852347423533947964757586204716978496716118796987622641412995886217241582533340970685893831353049378655031828029264419302622044955689596201268516447575124978260323021790474336510874709562755888990168018170052562301261566859713463490833879136305731325614431470249479405166371912080552033011373295488555600758589434775328386871433872367480176608694748081287806949481258260875251417869539755851884294988381074201966989706818589309370655076329156854258235372630775955131614162914242943038816842470219890648695320473366562184305772977129223302993726831236238269649864893637951024966122513724894764718344108816326338998470534203270425529993231790144313408570038966480421059267897391788140668417234025297044891533869892148123110125369360235510165889699245482001702216300460183246654893500788164331483087943339873583661166679347689754159354329737857283610367542912760161939123756643995001263443733219486906443249750992819467704273653583943221620230873536887817418854568364820144915481321663446790859067658008026522229117865675093361099842731791055905880863289347498465056743660936532012214178526888793078806860356136643849999232355807738011541013237945945558740710748233016482581895016051031697868684014051056256273172649346636933808633304396465935712522150618583698142791782593765429511217357633982913239753885222280743541572426620965055003864154320035261438571875394735674257192169288461942889477936804597285952185517213843237771445001770548124664871176468964280417196002702068594428583287465932809862480987174192919870425045466479977662447110103078259844958703991292535648511707195630401294155263129492133478109059770388914410198693740609540064888949769836514901156132180138722707945172672269129527119311924517221970444612886337799471957753169040218122719267709101420631889258465936644183803913152873467961248914198564364379809041282551694455521266146505835389591430654337277775803646357458536256216715283627476744980978268795322964516620241988477017080960348224180297358063656796404806688587275467573091604157592061584957928082008751673324651470408345287908256370098631896109010391979196946253834928401716846091477484833627897495539986365937835763712541815613325434352271943042837100536541432441684202631696359694533676513687350795152295161090266562820716680078080493878816380009153454280222802028403543504191083069237834688604646477247850028544040303806533810174592586537144954152625365173431629798480874050458952990631099767406734403226148222686166837572947093579504777634411034579126359429531307128929189017255246705582952320436867109848307564391751519242890414869147554358643333174094771283408203395797205713853202452090070374124390813605241230434891900271804094972446976069638508710184961453440493490926465787302946281474137791779598705692666700455004586055492074174909529413066162300369491818332529197701097689909661952615269587988064746397633049754660750921862211627754761364624270328676562877522250863132948526482169987235946875119708820258586433580446522559299036081330228498778639766279975408234371190024341160085156408506003715160567934533839389392931334491269734970413773326930463847461920484479243582911962608395547128548411542087324826262618466536357105188679500344324881991174285828184205689844782366380746042953336617343231396042516733232578475991702430522770656288042278168475684506535458918604071042552319075904710152819379542024429070033377308584715944417525499981215487250667818946483091963412794834368469821394352856213930579193310022439718434709948433394386076707327868187624517193755998491966223310726193226731472263560683885121800607234693947353375593633014911746512699314623424170211111972172558811095983767981717464743790470350788206057704089677783268598014986239887391209957640797517085692822298690479395861525552131380155567838971228664106663089645128961958328471774885777915843871181685441237055024133119053298256690116633381162530575431548697446111229640336514025153722795704444561260068039828053517456794590371315488234171587030750002049051331203682110167287109898068070282424295728113868199312824517766445652961333921844451054704264715704188569436515717407816167241886898428347385789692483409789114169139658530491219565825400541469216428360983598583841337059026070958879872887444179256123665929667833147672189685125112338149296025781799070830737516189345980658342804070717141242761286930942941571165333047907584871793921023044508609446497314148015942893448411154404168063309459366722084484799036978207343240743670317934084608233973868186603072677496624604478538621149960021030077356065822086067174037048297660714077772389053303424946002000481728452982853401532767550069319596956391270905231094903873490842471618781505215568466917956922863193177883941876154346663931307455903227883863698785302434085304227331748324725223456182077854169946952189826194815848459000733601589692619327634993213971738872395719533573551004008320611603041407067499434058930438556154275009745741142206007022544862958852558824535778268775654514431103448734693771673888823320746223986520865904380090577570518836315724422579286536117823180652416477379518900925145323340112648741916872925175585026365846449988002244220781524702592875790690307190888356474068602937680038076813397955969939110022319718066116470576446366115762585311414978775258994845444920446585123845266233273820125737850521778178644481162637287345626460327170578562497492283100914726982255879281082638444831583164941343599418134609984598216793049619278874666730479129847449568730993729478993742527264466621742170001780121756859531341690574657469546666271017151937637541956160339293932064173908952951523823057013101229469750042449300058842725776738980093991696411749268410618488595662337687793898269939339490368409040677054988519725658101320814613375323831230864627944539140070734687535820857575236564513429965487280070433433973221670451334490503273327746573154263318373926256394240266962465654914472755382194010427697658069166500866135610211799729118618462917366170688403078333581839827767517540404116011003737865871939137742788723689982457277378314779894658486555813610791748826871681332308840573064013890383713453230701201495288827531105733195020738824481896061394985535832689237957612582182655251744759968124238171231474247737051850639955259723620459910552486065763700852595707843962299037157996637156636072499908472478060914496994638228433749563717512821044310322743166492317618587336163918204720512778597437075999770481372083225228473522468872123690441881765805668759543586516224012755109100097424950161288892135710300422930521589877836109079691704656833401686075096663846320837319830702651832909905858235043742143865242596442773134250244205073415244289333094458920381502068920682206198200311139210143792952322244184255397407630637137438032109817088106574751073019844504659931391186391218169570435026469823938626315564577672852482586244055111320923127239623217261461599266072500378745981275280332655751568374142613457723726941894555448800580039919437284512429839202429844092290473374301712079879845845987552789406593338844504468065243785525631764810722782000521232073822222211405275017223194771158140437000961796577982895767867397722820084425397905112514629498852765693180957935445051861796899728151461214789381398069694920019376879369908799075586922945921586155881971439912363907324336166746533601489195193334752829480512152911006114908086717576017568611338763083352156292106294164084148546774735209225594962937916107768839551817981127190483718989664662747852524608095085437704150251137460759000775197305339858635628382326435049675973453743039040090668985297329959109797391391212225805257560049971911858278726066230274186212952160899801278344714215558436190394950024120171577802294832040433105651328370249391190558446244812298000180578255819898285352248478642156622808631042380525294849392103035625698974473248459352729269764975845338659747985528522959182220295823904247102118801671319873524936657730395852477498354061937585367009248198033348084042686569296224337764962136551547403966227345072795106700916782979428304332246657505232446780217431013100815811003129563399270398063467441018375045555529560343883535727834300012367329097562492633070034294409268621054290558743460253125007623282330152899374055398816322770975187852962475934285487180967079654821915608688064615899790272892083499005965424951206538421908472942584614104973051038358521403190486268808441069499441207168202494821226968980892700265008095380284946837982187129264249000418116821927156659832155434337379649180915620662578983340967068821075373829755617001463531465433045821493070387089248434321335246185105029975270812635814847102097203593906014716813592721339658610242665550635752038743165309430815853467892800641599903548734842178073954565317623516622521820118888015535012296641412266821339493635366750443881122615682172669716516806790703226356587025037152814933614680755933610934225484636793551776001356499718077940351321501277148656018598196151447172817225086032753207102900657502903129086158178778757859835883501970636349168270119997817818917267774218828168663598569162895700829767487547784855654571109703426846135102492751406350480784023763762883251376273011724767977744224462629918858732500990527626306705132951135030515568392166814761821711529759345210261678566582924385725154358859916895708876073799847368327223994695671960302430411983578923644354961121960022520561400933779304217722442858941601096459377765862087106237143630989045451411071814835935623516309396047238407001746229461678974013839006250442295066517830676395541411494424594089560914584636581582274406728204841886014415608064395186207624888041835542242107733662531062319401852371732246931177823598394596189273263340042385420048966249936223264171489886257381063319643154599473270107234891636426323879683662584223719273633768206099933460890607159992406175798406897701616776862942637768748278861181577536401025013229464668585849220182668175638728665050700809431572583008472682734782640584226265486585681473952380891668604372346391044669551709980127562101440862830752998063672660213871197933856916841236912171988945455494524237841942526162431367983000916933813959753937370310633861323898377809311705989565086251382244622575037085434825484621978252887010549813732764375289483575039330359210330558325954495920809768609911192912351624340328629338527777258655521327397449734811550041342199102805634627517656868771858840414302101000280314517171322726109173580695243740460990714728935686209153920000479139883515766536793848230996328859789151125943054213329369025684001336606208540322757873613175853391845970234587191743603113665230243861155245191191770823204009374424203113777655854195627121823478301141895005824873780297629721252629890894229357862305263257507368589845144969952296787399259983660295621522466986716521828077041455732913486330811205060004075469493982371488221933576594678927411915372149081803195778693960500845175132043141612164507313850395095519114873852734158703888010800213367530681861697016599198079097038411029502160134609289148069105532210384017605114973031789909437358964861333142654708421977432504116172724980560415873882989126247154324021644386456481138870936703053465118434189962811876390395549168948392657621293728709015575160584401475761672419523580515505194173972860108386848095804321088594651868866584569887537345270276342724880372004006312819176259235927873795645711024501317237660197206109962541307630018665638356321656940464000638316732108018784453877390459762375285452273841376508903753451541738504721126621535523174232324234554809548602063211457885269840254775052814836889338463340274090392794950734293898728213263190826790648953522618755433708415851065463129346771715146424451115160593374082909549412890328753982287360855732307148528677943869029114135487519824983253098818849284600601906439131304786624353590079425082290894656018097275014463288026652057221031261925046366304870064619985091525274047781263472195497663493407312179524695488446516400257614435485426977019805630840954577731461990111977797438350990321832895771121341557276961455058902466891505201786467873019389562557277429365661872398493903383253815324512582452429058752106790679373472500475785051373413027096991626486032392375978166551892786084643052583769734939908119844266402383245492946424426295699898859256271802809060072475152549368284079678906278007897235466878558316743242971449188697205932936805949666806622517201919924291110965835024943534580368229332462504743203465494289232594592785088351504099302090928103825895493198176149801899271904562217347585462224389979365007498219655325279202439132505149038558223860369164318154385093990677463062795680047282711156079348527801983296623883332695916762032376872862293724340651336937727325899277286458725068054297247953795650255732058660147361368335499394470939205512365795839280619525110047398999681188807616414175006516984438005558825387986077362489509302385810638847953658726419637095421432348959828081630692030077797494827431002474579584646277454966654933172276198705030332481661355575588863083215153525415418036605696444647430531358098703264545677611530332353290826791281836272437062313883889638203298027046144178458344299930274284162623941611837504404434729077493957785003104269055557807276845595824222568908145949700158614749632299769999895124537497663336576178757955754078110724415785199615762355887691161202843214701403589447244818948823376109451925989319996987478748395621985705589090633322087264142475913143212895636919446121243316127804937726468544091439053829764046247647433637895216100970967636071690446664746410560355272775194796023298178310465219369118412510719321101381807828093972028058037886089375933369490232791130703643683863676981181432774873933370356058927062642114868635322974533805257119900117319370275628603609448708445679154631845266038014056635774163867916419789439964207204925397671186470021526421794241940961990908672520630697590968097410248339972677903143158481785036189309446025423622444502276379972661337969935163097413997456674837060316461755842477592285759000375986936497075128798489527730318419279170717996192178212797274573010303533017187991114929221184991222553639378063186800885837861151560303962433846637163871930175715172138652117804792744478444837928433804417472597702282128403951529471238571731400930585808836225085033435722978465144382303015738431916055347466554083596356144608306216108281154081483515625910182826972660320730620458605780305539744500570826215873781945094590637954710271634706200032989019390375922239524345442192441339796562299264214983342558864482262882126322186863176504694026567534885426046655833464251640164468939746589622911603248191432117830743922586863786595807743541647457893384952118255669792631331228579964746756494466914389576696475451493955665635051081245743843817725186516913917622462997887396874036219095106849411378681804013667084392800934284033704843635739341350242425232028091623426126737560915861648882755885259268621037401104509543050555846218785819010519892715322970635603359678645099639005418625898182113884354137992501324881888046164757695772202461421503018115905768842169214047183370179249883017081802538753022587898318922983504295083770777847683114265075358911257365658034018310252374564218427975305189605881641020363265231400401125981000586877050474103231780451065350647672987266198599792985979254496796589586875730274949141890053893068415220900745515648521187750321114415924299062819053227070023137150264043787159117487467619714318555887268866158705426926591253849262193553089468813422592763054735234853230085042697880757434764709353643233193254212615081900229512267426806227304438785702112339192361130503922751671898758673330654841845255476643716462889345082482026269925738486218408899846189019957735531419430155122919771577298913223705685945686953163881166790501387963046212306828130899942007115627048008771044218162465620069190930690716305423326340229972752099577289254566179783201655924886305982687395578166689641770605230761459338766141446573923029910473766689745970021495103738973292364407268673006405013438338090022325281811017664259324696710482075478375582787685310071630072909715000715284811973106253537800152166359906126333768883251132465517561557398812866370825943367269377395494869294442575654932617498949309826009750232498728947995263885143980960210019594952460622227541643162298544438459842018307309118665811622191365885703739477049937553194187429050454285847192910511954484026401744313503169560951363677403542244714117090133939157593909547718964891596240039749327850211330146166695175972379500909869306937844553201954695520283005862881286445220327249713687452800328422420082224874727960614194828270704603532313009616287391877608381494575858024040857831896854783819552641316011149611230085846459282086460406983267055495846576857859048434600412339244999258200430430843354574036478038371055546067788595506010276106138929416512722381838740395578409432982533124439246054405311360816948292396515225449814141213673729499295115494108180326621673994168341516607148705330768671219335679595277226202276782201874436647529118682221380009211942801816665577510371328023264870815265362355245809237746639678644502865901393426638159340457655709680982271916674463940426244620097716673094855334818723141212416344300698446195210695798254700398939220123180414084531757445240677797910380368866731370098781041129688039950464069203012311675424875808737770884647411861088329054719418480496671729596560628754352931838590280509986641488943052264972336089720805872736374554914120555323319350650183862193084289668703949757972457391849214722660714433085261275801829227503885435692140977282749272449049524948900195572302089491602159869742378741335283420813585730540641087183235826535763551677574557658000196409575843266366045226431737614596161138173134549948341532707702545381273677965102972601734517939756971832940229809210425098065945369675239439429008569802867345821706130564711796499379448760841293330975061203845250540652982585537357557241862867898610308529572333691851788480115482304469029690930109841288470149442993718678550329848561376552056935118488179746415255331324469588847021046211567961273283843383910158454527932546225548926620828310061400890292945374049542409653911008077038014209596597941292092985186271607663006326834463813062256320253740525293242357431673380436041506678954059015770764447326676560916991346483781570556245750954314068505427000986155606514538163317547026734256971074404399154952449584171961931384548285779943447436208551007731617076887209889033914253084413524556173437964862570853125722756625000010966648017728167731348927329482140358772189464794000717535727610796791389874450367888293374735742360080272326158028299604331914609253977715953873508613380753745927691561253833039411180307070447462672444041331391624227585868876380544144622037071866364094645017606965455195875953081894800507551225200829431423421994816746759326471969350407834284780142795813427721536394254017471525745324349208670233175076661144242322193354095173318371119905009450550694990194094593200091687707243537280439179884832150769629991838078571715009351374276129007601711239312390452618723954963848909025751734401869011965576708662307613632868876595821434634469424374243404285894954165019319668865960850696739178198904015420915734337985727343114581011274800639725622939632483576052333555539625712262140747893131598104341272942575140240796071912633175028569625295123395772767349522227588122837762109142036629276969621921116953768803006115158194451143947080160390533931198830935140276702436398437471211787848253798620920057550891119424374415027381707746264091423008122786078754094764032039861155853269400928271005049903017430553074742302321700971014801865053402953116080062358933253555545786430366352076515284924290222639084301970859663105561285569804839210239615615989930577667232498226374112283441068337192289750321607592499843050270745875971287686929965631313812756369139212193670486430057218390553665911623871810489745423083042859408291421229114245790390632286176139869114404851259115703912921277225269548724845515999763348368653836366266845163605663200445818205825319081350498202788959034340026744859072699930120367141676035938205895641616792120917181037423609992587821992686502673410676684558831302339209369398219709455010875876578827641619378123648650111000178293996608607866231930955692737585641798529023524133319509163668391306607334899846859669958512621012906481774071546383547287720189966961631025796279593476919157865714473300395837537682095524615940577604829767292031491105193989671715639365045595122585594169774881538334060038052840942414717880030896647211930466378427822899775220884120624354842545427098095333631968325036281273842686945645472557983708376548107916163164289052496149032074543911906512068083363701338557160609933358104145966836862059406099204297352393633342549112348313375424914525525324438337366603808481771841671123180385522379284341124298170434583509974774501614602099400851761935319403477173999490342030936954766739420792687767490443140127042609146627055462335865980402783041053573383861779318056803998821241652290237057411821334584920832415264518452421543750833945858624221461392330499776093477708256653269020536851601292526539916570132771353754519183049555962443916238876352922852112924550749511708222235779997091517320584894081180997868701117097660682376262375063616342324293271868726307291076404105643476431899958712646600828007626156201165762715311414020646229350377972796558106678137792115077061850829666507508619931081382706763841332127983327048513158148035985270221427908409028397553778817805109220882778272992444611391394598188566392473780889839834736279039174510954303229115422823777237249958332310993705309112927314908636585875797043152048772319400334316187707534639798145633019056151801384028145716486562582959277121567269009560580056291352683222913296642252074742044514950169966246720468797576269378898092278436658561510727650553612555647695091093110840634409190088198059023183043078806892384809041079335186611073259206855623808955498905967411551834212745015597726870908059242887218574397851752676412857227359976401167370649074967565380107898621764386438367366573171294595951193542544934194621588661748723097940356819583807443995407442700387409128981731674403545755835052863743814726642950754699545250536601471081891766676733296565519402549318656973613760007590037747483129611826907615689030608073499557097983934810456396242795675215756973006851683984417630356026768300941563021424894229131448010090801473605341882152113887994892691360453146889854794622155626410527155266761577592294513316873937884504613735465813641257300683293609155269966637622612927208338748461469905266316976760783000303704741250728828070443007673717568525943585169940594315677776896367516661201050528740682086949049910143858651406830509328861606150833392734548421442960236846019695131830941054185812787989469746647649913992615878798854681379631109062340836260121121755782833331848640802362683461187525201973525770919095549532822502468700385546630862061708032595666292763425371521590396288152502497043352536196171929348474107406451792247218898313104803144760712343519077466490112075231095037506567922030127819664064764607389382186306994063390584794673164926943705331456235701700437379323546824006873119485321009593404113457145722905827333465416426855138865756562023440948477013412505203237922114459250636440677932476305110835974439057078488258670352725534449714780660188768387392344955375613911243489494079793330911559645223773347875101161187445475061080594970153144693519192172315415174670097517283388730238972616756587404340526718098975255050647075951142547141339597155036278542840177983580569823571897449624890575952704557307933702854942694853179100338073022001639195335613844138750801018374869566721349339915916550155053322990722432215239202988602775477069688730742865495369183313993456984124246524478487227793883779809746490325729099693348817543100978294252774314626121493822919402633786597256843463029601164891638888829653761223212055059551361187778417645984553412389611080969291831443733163669595806568553173637316417567105385941732715396866432053508495015283022846189882410802453603517821182834614491034536170859582235088761802226570662545985016266866486924159255536984537691334110130734239647491312435164244725700825651655778936535867248098796931870143238454970165473839110282082407312257760177356958074098782777560465373860878693930844899587780330108261646649512941443526901472871546612340327369204126625019719307734868992030547943775514441295396085586603567398122894020183159298610698005358196625079105363892326208118941399852560846819552541253734332369783136231086861917493552910057150865502199771581436708227783809550527751455755109900635553046760440239682063131574332840998720988302896222515347887836944876925197073694307711490605352839461164339814694130868452726266620820035222179215681874369306637303935676285893061489670351356559480944890473998567626384104656501613009764105562256308289349828345259544077231616670199936084113196777362763869327681519302454188845005941201500541827245267374091078645047499602417688535361463518351204056436489804071400818054510744353090545937152235159212157972036718461821403464412066182411838661552630883429196407212923960703170558558197247226424259377909319838717977035655769115012397368599432307913884218592469158149366754552764419267098176346148317309890408865961600687953719854031749680469142586910769316880700319648431994364412242868979284852284304213162513335096231569668684407714827422640265876404224209880212760876890828636209756211143235400980124425142582320640861412367892079754437306968085326201089348900496270246970639864939244989847188913082953079444811965852355002540234400397695501177372831637460933558655560387092377480260021600873258890925611020504303964946583791102555233487319338970399076839640758791856903079086000867798417575054703946842997695104524253303640204743518648265577516771650778462429221123903445324416965632587234728689805609773587185051042187288086178116517751172656698139941449006948626799670897825793339763630652633673407938737942288666371474957634224602015966177110946560201094326129447536474599621907534550030539230774316256989087062429466099586214834315431361004622446842579253030914672503077993475055098531938767571466468435764640757763118540355279197930318760566656813189301673538574842311062274871933867314865649883341684089864954168875182122696596484868837962713902639166538330098070427445984328175568253763449822711735216508129221092183533221227229022060119587198189484044312579034495437768408226229376723351933971674028047043451053118497426898632272294927057638803370731359393025558556208271653203562659978149021483444518251703281926717211027974941436836609168386852021446868276909319990267792588066183716241615353934980804758745116698201252301824038499329952238335578832809558620327470220567289890669734892396647796291956986884328838100002849668825953686382819400771879376601692256746291938406725340821426044272248913145743609956057440725044083866481286122749093746386035115864585837055407269992487165503918357315757985215810648070690761456834671492213420565293159380971672312516195968316582347587325936233043450946249173625552077717090270449258096740292939788886786150233727362359418998697656051200580240048666246780354272596071324917490045287107157527796941219577026297161744216867496079296820991299008251701352441674973594173677755691108578514341163679004062921640412308682625696219927712859526135901835027577175028280225649103026982000261148700696209551985482921888104164331715497682585724162832886182149169192790143881333206941829136460108603732172833596930495052115972167009008220737656410584018078789176046471892091109520348905300878866174383163960060593518084602942386696443901309000942924790112728896737930283128436806193652219843078370078624070278903074455020504965385131492644749551998434418898158012258077402850627773921945757085081845114981741276859757732269008859599773116134954896141095230749928763184638512039121695967019566914596762037372742109632042638650393099972729732822036335463686452095173067979329264729354422915392399114987397879443171851472826112168774207212499941116547431212053584305678645998053937598300904293807924946078681946504318698988364561451367475855800825805120243992582792704963845606336252682178038073759281944605325284382431408961086281251209232774972068960249906066386678778950540791832832007790060399917868659360432311934577947945929925987978298941610528644089077714109235107055688758899450371415476700975791488809729326215896567983473154178217307606821195174684189400318131434367271823803865958252409648728727012132520186816975368206920627558257944951967891083079129324071663632655068987551812003656731962294263284876207965055380616042573747296153727512032158963907201225399359512676914802901528318694619758737531722308801170124680688814083113229563034882317761273372523780317282790833289283456024646128387396089789570536277858431106448232426007712022301943445910320650327738009405032913378586668926201162891919365690285406484965080095693977349999986327219843384092011292604126184576786492925691345366858383327067440613948322060684085939084642815086989008512096155918260996709329728181329892525755583213060308788829712801562199101848827292845784109131710700116959225869501412633434712070328949251073340249806794876410376273106070757753730728422771476578632728682096754440819671314044786934681358780236105117614218425924179270874119135520051759818081166574788513070599299672303844151727587274712618913446652497325492563571993730783035244329083259318914967710301470022333606597848260116292049506994327888958343702785914002008509973098189209361385037698716810943895646386020731057208766102052152604590296364535960242416420792815712635968127063912256798363029751508941171505880044776979145039789337727573717723251006785100757338339151668535111520450528113172597217260325107454844261443237284321628837453276017827194854625423536873805144112421896825051121219815895176100927653650935884456219548347194299359282043716537919700320689014441903255724310521020078981524295297498492266513152078765437285933165186978619859414883777299234214549669109862378037772294254193335667657903813723041571674369427831484948589915622605000190136371713658936350967132163376110298974803374635670429172642642159538176149425063743839320922151072670250588275348217484070135464993231667507143087422032758046028527494879565243907241413790135412734772646967628309732122584491111690346195627958074322347182747251864759900141063877568936744660672811849461676049187728895832412602841768709192251775093710176354884276183763463823179896255022259913870378574156530821799314901984581380662698297675837704327218064833228535437793745723706910360412228209429790412477743663146550876523060407775428940629897873633889798821391225711965840582485581578743620463618761346060281994441949237369062285352648320868561016648567387274549700125290516488150875258894638636302347194517232536097832228916420359202699271921679869548357651031237576730518748203913954837031776158997935232635943368728021162210413665297315309536355714558034262859882921091930870764807665018181885246595321046719102062324804985570675644389888645214769731932783182601581607985277053163633267654679491745980073680333047009810058619821899815721687057218804021259680777636702363285713931166370698516438897080196804211855848202278201011383792525602626967497376798357462968553632510876741658857068182558195879219501296645794650393351170768560912632537895002977516823905071198057515165894567914536065097170563050681641781086830235520248794928200475468300017324400758630011508773231875086040396279291886569826863157851825295145202360922291149961467807672203660798917306076290373294251866394468659993540339943199350696864748514940331647505185793660348933958151611344138569947487790894832172681473514875020594131285834583104889953208247651386014596037961878681009038759016179435305719654190543885661199273127466990788719304446228374796985268417091967496725673885846583278232439347077348012446948322580837080086385270864082467116924585136672367288417189102617592074065863327357738784104736614414490296280489159060230024098051980600498191714728938811990657563734413817154956934072267411451371812403790376899262814918814269638936311218837725483793305041990098258603123098655689629072507902880951786249874700637248830094951124324430554768933367175384035142723753187812962465126846732668792933801350785875936457203282203296208130177704666678646531192964556126859329560927443584938847359053784194977047332229051995437280341858710755153624868179392997454712806614607204762815220387330702141217528015805996792575129615655252094392040152974171450958133748087414784762335552792680259116581961854541081417828551748434779877182531900682827331668925022320509171376294626627879856367372583459036959885590618101879629447035010885027117657184319068352545778280471401424178107518844183121853586121850152151430769606482464514119292755413282940913846229445173515366278710146716642478672430569367624429908868219262109899947622063258869186030956213167755772322545869894494628990670878232647152532239780620981670601666867155148194068881968986263984073971682737141555446717238107431289835995165015618450586345133584983125932680640789248097337848901719189254839410327940432773080524597090910468617081562421392591076508035091973846794738871988411042452017007490547220411244025618440900963032501586258679782083168106408686725748578731279564226617004925362254478045653993421763804385976510685970766842219134764458834959423159041817057699258426550426442601075022969964643842092155667242090885481743048326931451651546760627793102526476956405202304586712241459439060078453956503536605106450934841400024864449114503736195589636852534791905894444891901278932679435112176934708278304880005672258139258398855198312514132185064691720434516823649264194407262663708718956103505902244042645795977813010133526626035411539941631920964590953842271449767823344857993207366386374617835550733892591725554430121570822204821876225606749533938617680709562357623126212248795033440228613588130754511758421915379857927760805781558118367092899765574395299622361351665733473475499508143340771029226345229448259749627365011352218897023482109156215344573019692790963235805861001549678932626240763627263767502088627128911104455881309845740832184607404855301710869654463132562655789838416084980401767134108340059865360769806861942920068275803806610603893822683663597037328317238072287981736300147129838763964197046164390239125597168992584300384814249645195011352994488199654896477583853130193487870579224959602718760526419527643389236168083443067744424146236417573280629803332105658803075798583292081562288384821769461438793207553512812979253598255560536145266159453683238520598029179502088885316954775912516134412145153487097173545029793600226691555220607814765666721513259077100379621705511230194598155227989482877735678275483620777074258341179612967459578115078734279060071574175880009175389261502523378263206258733816347144400345977897338128499424151208466417733219608222905941976040236576652370607990369523831914943819629396929041168782179340916609682946894398036870996983625169958206042525476918224518647874325204007934949975970546140186589320546740998679717035146521015448738562132155220834555784972252008898777288224117606756274731095189101419508717113354674529553596457251910563570962946976652017418406537494424603762980006538415720670118030107228941131023408497683828492389063165851017532176113994542788248822849856989892847198066422007774883924162940341578106518473096928422274413696977418082019442614074874533535701408719197253809540409592046839777847706168098489101063571489616238470624074796139982784526321796768056843555010739030559519525028701001402545132212524805872947482932959445566385358936626490683721355645652560991457560299695462342260754577381184571139079363620754159186111611026553185778486162325216670448914405411066796344669744624449495087097244653699373860983804674546706636800760011405733716423203002749660811362878474875975527645480758941863251462395654897985721334510308431873477637150866579503840930873163936364894835552470050060393774706750828647811698748129452534165758009787034265612879499204677380673081701185680251423862551599760172188120582124402573851344291267270679847247069632349084795893979373506278874397500650134125744659300079287572090944145452882837180654793243839656269937652602426355273239584140627605437208694484157070877878065207373424072118714019229554858082718139314621597117521634586130039408895260291039637610563595359786851186876875176223322126228380516485275069469774402532686309643981044962961663902997122902806818426046532469505503934954348634123950630605979451493740651701674971652612177308271829048501135927382813333855184543962090176630852189562614285022128023601412155156129132877662127391680897705391532989598525230492627898251762228896967163658388139529394134076920263105337502193217283121489926799717185482314278505652075517166944874775063376873847104914853411821141585011812266505347996898020906341447794839602941170633061559709042631356846914567165599370087559862177695517394947945004290171578810671663013763091729779411163111175846543486226202110612232968918357922919512858362282723986699519654186788549887899313241490229989345663040936981765539162044513387170513228176834959443449842352560976926112963320223093310681045806743292736652809477431339585128031844378694646629558621108946795973214483360779952693703323634506821621673051887015294569630947037237090904831588486711614067469047383809784279412065837496352066289663710752540648503276432268638600733524465432067355414259204105719200110245474765303261671341237568006662493037200202916471158971002058037304021020465682809795758839101250523039760685530973822929771221037124005662525596947679344737386180454925267269553907322552707807951638730904360321793068620072915849959312657830101076008148123392806993393565035245588748130821380637193642615568816111057357397199134426636039773821542997957753650377279626161970029073514794970356391605072832220397630866960374621218256558746627164759205514606667823124354194114610411578408735430464451553203682619326366987936762301342621389794910763424834974055543978911423134250162095023940817511598427907614282020260255947024896259336627620375658716587504934932477587351236786740658737092007642369660438557112725991281953423031517406085929459474189754011535332642455172922277702808356935160276850524657454183673828031166113227901370960593717033748894976953126125097461782345889126889613175325415604002665642272145571672318026493621031694667540133630262223424065785098276138364703639665115592114183770637136757968968259448359623513323751262265574286227751033762762913751160045789626165388718553892130333948291253873568194513241515545851254824705719096089572694585710618697873795183605190210900685766620376755324322147323910492957738185138085296054535996153741411837045213470683303153939071101093964131241840575419886882977454534962087203419868222657600892229273876118189093172891829870462874293578589188300074412047724610628614400355673760386083131276905563900764677265753467980541875401897515673967629455200567191286580522329562033196033500456289247057291407758797922430991751275268301916546801110577124312063934278648543669200612724495941779622322983545965921332206338168874650008784321041625022145965571466191501862585768450456769662204034148998892645659740855510269318004519167090942003029353650986788118673630866231816270358726564436626746436501143792925184763712208472938733613846574174839797258356840771827308396714202283027666701280333442084857429323890498068016206039690095050094774412759594008707819426800215260470869529441224430788522462640131973350907992515644550126025621987553522844076185124568983574051439514507931010276580702463656303572155710257036447241195978802571270746218632215232420339079185147748989301050382362092999721628374908363537685597916907835032591007169038906664901046450025248076525829524189134137811317176130329834159055368230633824959139646848829952951008658950278520405037253977079712950533807086059857841066110408708284288287134980249995305842699011256701845109811643645467986253195184497352983449104382970976486613515733700956075564551146449532449285780915478763007125930519288588093753523362548995452874563863431596056995121301016204141074014159045727818299044595678588396096664142604938076558912359289000403181581828986943168536118968283675839208658629218682042995727139620832751657517922570725388370546386806940439833484370776940311883583050376298792034069023599473821301421709233799660982796146057488014585657714004903641482960794511834592871563072460707024187007092427799860298317494302049886536794086647987958460366223918580972203724581011115828140160891095161853148160461538913589962760046319661056675805890795018242561933972298195813758684696197208704045774327584368025279220013744927941922977948166265517174803627146536730117485962675818320758533686238690423935174485383930723641659016827902648949032081187774897238468231609218679336047877492937543098933360700501583883527794741038919539190152362278412413699620709876172299570073328582420661702255001539037290344575618236457400277080618964091166132266047109469566081524601858801904599130231721426295409242543619920186726134118272202000353746599299927730616990493681178597266920771125617394282648342014842941753780341519755613563897498883689822542026189007281180769456424093806219605841210726282034756308798736874168798828545909995581471885508694418173902660242088675916493394537038065028145674167190028427375123628677262258896246913698522803181817335562679174347981617042494871206691177299142882396784067147711146946170007703818712635905939990570126620373393534101360791544789200220929612860739565006585480347694449762734717554658390220184875173673784171156689926054099224237662903333778479375013697616096610393512516969613849308467553131229075748956005658665562388698440203314010049355207618535287914094764816124444429621132133530786010484902662702293020182649247685662594468387354580198249303069535868456079108872320468926515442319584782088001332065873999819587872315337391428726649485101206565109166334108992015722687772100860147065802191854186039287863779941529925097637083853991993073804732067145437955407379539106953367637358777169170486322962991575752488425524563153655438632018547180070732506655121413952646342943931238857630158996673916651479794624434889575358252416573022957323875481179673952323983002844056177570680330865724906756804921873039556565122395841829194486718499252998667406035952793512513423842926327460019413539482352740763478180922036491298542253449536418135536952258635937034433041866311741840221855699927073334034650430278990019682544018915430048332575807904940668826138955457269244934000245237262423299176686005820647277913112739646918248091748185156298484291967603697643248773707736645550835925474440704269738653775368549565506154245647933619150811817341481670024094440378636484618598293082253939421031727597357335210132676184160985144726753810212500183039693032522727830945044695900474537141781631463004545227823042155129848602334012343918473622277708248969941020011823793350888298458737029506903285269695258456907676712603587100260677228760550398168472597182317082419528691197011119890664308079158802221805820958080137936832961576561928941876824166717820440412951736793020268048146389681784737093583153444665947972704812668559830260377900162103914629964063587875642383534221859829431966963920718231516177638644458813766839210323760316648423086136748145714678417084231108850131978085573809946544234865805512651544494079568925755111721371409032544467899399977723380776473275444154815458025305277046552066323671035581990420636671532075141363624496821935175437224452404465627124394445440291242288660424999751428553669529811722369738461118550465082626260860128945929558647983450312723041678984019546455198081217038609328025294741856571574961147267715275948744692810442272759801559895595048619812208997326335418618490505554737682687303587244364693566635950494989796643998979259004581080096344278467585207173434400027932171178443110355276789990836265058861465272508168335700723715074304481413499444407633992610191524529381424793872847053344037862633079874724284897894940132408650084045283572779811099041243943370515724364333433716381721657695875439108771421199527352266092001648759886131031078951078061321334737394780738879014533172616731189113895659462313681243103091859305556040570685177406463022242941160562765732633887364374317639144750844454697579279089112785369425387601005167430100943463715829948901012960422293201026334903028122785220579868308773181615852752809197251217792731113358525050210086251422460928578321383788494789720004037061669018639344094741446081604724374142588231469248726419867291572526346147834385355159271729758151970522510379328865512755570760495415549662257606608351349239008896972952979547544314609252138919347361649278197885002458508127304930269206847789366551259050929928820651237457080274496079563654782812118289013331141073754697831404076630015915062710864748954205111289979712495982770711352037020156020065703376049778708976685957328041790303167103780763401347878485040450605717255744173202678262814037966657293295182666914456814079965199106271937220867647441861553443672480523765956674292268685275696444165035111800272019496862222703658192093659695226950242086919564230908323194989918863016089063278905012651585925264617320783419862553767563710936392657656998106352957503982790289076364244806875597365144882085026414182437786180901422258309888738770453238456030218819406271515085990687475391331108779329329285677235846802028959719183343509580319658885965622480562056001217360352731291525025547647137994395561849381210373731103405016551171373665080489488514301583205334541901851399793772461218876895543088761513943707092455130733789820891678238446860636927940316891228745045302312203838087986716686700137222717845206179256548508170465402882051896350032607311426163650772614320892044489730682182863299283380938537444441797379901121594612314248958996947115910125121366930966847848267834019094916092711489297475794180724846131764655831671622996722755909222791632728191883358118826370279141766492642014418662460554835296993277702465273123385933292792383051114924822025272734916515552792879292385099353864112902185119229962497889046913069124826643643642032240213221554525428252793546233003549729330435489799765448643253932303717447593024286275172139824406503423554139090764282885206509790935093632860058680337186601348704852034708705072456786354578692490701475063784418311241199026827679586321553090048280381149380901040966793347967621915962180400527987914633329938275781441872196899277166498908656907726590024783347540539245428271641190236201173719471353472147058326595355177609389092807146494642565852278606959388753381074570815206594937761339308716380758710951834359451215689918235652124670177083442321207366096703366335883443014063402408582269686362046394981261719655560903691115169648682094116708677503735589358691140325994611387315355061944318476438914770612168523156502666472116189581502642693471187544249954427125411685609385985931858890702971933971981193308197890688520068639406557347741993407215704033180682976308397505527407299342291399112400374461832984053199283257867053379189818453528021869515841535276596570492256362859218167939042944641940810975454337351201633623034804074252814009880126588684597422678520005868463252752736570150025340587288415609050352639825441664588241279460642924123011687982529593079658101424537722248639651321388626393853796416166829868659006350789337888940741003234280687076455846382799994950162948029536515939637840538194771889576618445978293149807438210463471221511975417935679988117620686685549868976300597983900892443025322681586635745222129553918962116274921527056325559675309429207748145970482208312795105207696234574148222621441313075846442843514565253766194857627476103853486011243655777776349480764026068060177820027931939593072143225041892577805771304961641982048054120991249978180219841618749684378991624029004165299576558690207886220362752173609727472308506050541973702942670542283714134799367270396270421369241774672180221553759813876680695422617825360864104497132654685647642850869092055068835988642443336901038945668036606260713336360465391702276344281193956141753484587932534083897795276469958239945722434025656779045192872590211123240497611561098893394569978006951765800804046225879823743199665466487314449409865605288346459219458659571986327527487265697201584575930629409648367443744336732865045937455530542207581938451576282526392093339618886019245157821577079898424978422238643423691284789319606353639389294085369304492189490053172819620826325507867582632383553654964306602728321036037088186558165077790691552128368510066916216970728496273491791643908860647635514440534932209355958904982741761617794032170424370809309568906246672911534024388536537372134104147374889750221466848380030958206620799782420594969714640130242864171983869143047049529910053012709221754464017711935015275119777829355693825054968137009072729471784216099764151968930712369565884454806124224215155770064324786867894749287265560142201982413537984956082044502135401389909883738537698780776902183069042678649125422861162041320120314181510701338768882501062248687211673021083427943547461874583779339787449529779032973468531213513177671938253410825747048701483830841139749357270821549320029879342541970979711572547971424644430764555154238865176807841284836533299146168000112212094133619472903790437698983706172644204965804823662392376857778645305920555542131304974193026466907800166151433830020760021115183858508046936286881839104884122366398026360258009075955330659969941230207533850496982845262947180009178426480856382136083528496605570808407758196523920798150553037893960696867816151208393073095344826116092067097571541940779658505712647080549086712229594485833590798771881630449815109352773481039760007491603662840621155003991735323835967718283509938464741750386239412145138335203959036129984468359620570615982229741256250327031842004822042206081285594128991027170244920371732468453373408690771722831196056223979622704421720889549903293925748584840039807370760421403727921540749326087337044418311064240546573202359497324195384676161202912558035842794103619011000660192153604532160762466394108119510510056592307178826162071467080414248730596486448485101657765730471663457445544455122384592792305456049218184138543812926306449336688891992460336896282917052494268206013689996014233687701542170388770113915068762363588988357392052664571629757027355679401328626370972963462655768521699570154536454482377171927513428453737330035837118855379540331193741677744980884812309920933499456655983198602835311651261239680394801162404128942698832813000227438662576603048751261281646576832310627739318260161413796879392322769072811294335164254986696623592777561370439987469307240520468885085796997334124053885237058353697612878606822355986392460955294573376652818051306299805691952890929460690085389557219511299191700873659100969904777041674723148816359151563595198595422449224440959084831003322203377491433065010663283408793483383820613387404437780277035329365551573030294322307530048737702207419442754564466553921750123005059690438513961874894405016053637020132936458419376484672588166658838480904369287027540975610222759739000115061949401095247062795383954893445573095669843022945169943808840876337301771199763338348032423403337381439276314241831612978739324479849834961031400273963941862262349213940068870133003885736989763968385672241157247520720344774472437097647429712752607066551157791947713866740836354746764938778880004946159569760878977966383663973876933492291303516077349501552688791734663836082294672477381699119927737002306307929162650734995770039210950510015242416193299836216413513805449445043868829668525982179455510052891707066310072132532065196751720344212932257588230048329846942677455835723593561421585888516608925426363649113341247283540115034732114503596190173666514230226246983322149653572785360292776060204384840090061045239098748616054088003445819451190049359228770835371002379657786526521570839785746481940071679396770001748166399929335346319369415216875982076378557546451231188596081496558310710214621438479372670773855727478413073070212046098160743790103771793462088746127068603850583844254530608863946713991377515502114986586612774721055785953399098704074413015643050404717906286954145900101624494385241822181993091907038265233996087746717883360358676901294088294682704246578488040447198360853571249340717187554701494042540622719887049223205595538952015083609296007088668412282743172789680598101730329344087266761340391920547421414180540786756654417838918990357516543650511277992557196494951767488720488458628100775003622433958785773539610321388041933678212544851689685629804501012100966586890883127299713754356390198633347514795935081665281338697345992646533230281996868106425024643396783140005507924319909387482777657033162746987168747818661867835955849371195766582978022368357911616080207543269830055557189391262608149811678276907088442392843004023606603370774165936802140734740813449318908670878754131421922819008318700541957297119765034168054618662977184007559633689562143772836427341384988894608357478526724898844594007450124542681133151352197848666264043953177393280038907318849943515922571068080113017365542363922548503531322033623673710174654346505907732139717433902079842295593723999008390973313003108290643389698478927713114238259641452215319580229864917650026956925706756981875211541045430028175465956067343624415606418407202796708982426681804586945771593026445302747020881341199225998428948266836721851259100852584123266325819440802845280852818815102038331150206515518375566775885023620584939996331518355806878320380381474921218210278702953141318311561309235626793723106107084177079623966726639461031960095599515434789915221511464116930041419912302592372902105842428817608717241698192101004252642657104938022048386351512566313930723626404685333576883895377680453497557838619795252002787593310476865155179528111854100056823141730918500401370406365458479031432804051602202920822573504597862786415028843839868811946066904931081590819038544738628377344317062717075298875789171508935923141253349664813838810725174608047728038806031969455271366519333536569528382634137616270164646435075922247533144141349984823693806100784535864655209620392991760079980973748364552191638084789627378280201627518494517118333889846631986046222521373447734407941116312598313456859424427402860052679109677636203294010636130240633366151822173856470845972935889936220437091769122924783270465007901699048019617187780450222455906668289202551059589340058510449600463618101004480430534009208226697632010194566086763930096818791535962455941144094434434951506630175487114173252373175216523188310564310309503886222892578465688461368765880094618940182580979211490926193540340731368111112438404136412493524991930710801381938743808963649720901503195143930070979701040720854470269502158901646474296304786310868770818791040385072646046931509935151471710987535873853818859846519803654680936083371518788340900537937260546233128112141812345736027180434504893256949448289657826979199273334676745389685367070977716982264732569645391543988183174456728882493673040692640129197196230005490601048998463762886085356782163417100492444105297669742720063754051103246268758564335651740605224943403726475346570703780424322186950254327182718459286880967684008373806526978021898951590478961160330433320173551800929467069748656642485813462744786628116734134707681849932849178070882587533788026065652533132161347773665200560849314476216075665409683071374154103895708054207476740293172488232092776169363426273178322811987755745747953896335606348264864895167135277918462906530239589169221181001472185980179279123992378559748297328486014242174466640445227393807018376196596221416095346728740959454215919896428158783255330065122683849391034093047481630870707074195135364453366785237379116763770707925515250839226529595719383899706156604685948799540450412787006036827862151978628998001703436143712668217759649380972391497994567480813947670651073203842541236666328911354433170773318692866995942948392238853730901648474145595869369580143390874853205985805620659295098539778626520152330939940215540103305472861077140780139019513623115751142118667965560347108363271170783001510006296317642975767174689368331666335158550540397450266762653889110699206120141146382283473696630720225745959215609870587150477054719578839506669397913789506631407655768667538347398410764963937559265622343800750460548308731801644535153558017869566917245795520147243727305126193374068837630553734363117529594207431170647254247872369380321842060427200461682690270918005719184664895325214713163151870038011397250049052541364502900465491828875464595042130384864215288372283462279012062413251057264436462747431137781658335933185984875816876196849880831143130178340503225313735251575347398072514499518917244194536569029615057901997852165557263401560146924074664969627205787955946401965885916203169922345069253198362002691272153263663419267339699473089731432371396279605533087692442156117696917843097561289255348925084158146049553278795523455773721067114353969745278904038556731226575688916805714971311746625565053636734149978571740798407735749171589740048864309852938329620979117726438612194720466279002216273805996834685380572411994116111479066585113766874635904460570998100955035561882488307313342973435128971142517329416046012761827433522729171890568224538083988433975743149972401901854684951805930166421998172996435860127136066593005537314391796740556385000650931393906069142279069255903413394889784372534896322609289883005002975438774515336184517984613174854839748932056119245024696659896416171945611856816085838058239809811648837863548515238693719193459705745295131444401052651135565640106721006677156338502287737558742900142737929326178518992323732682245112687682626830331674047377508060943843435726226850068231865760742214940964698110575272530842602706259094081287883476633516052816277382415865207616487314527014058272309709729252723071554480313205176274906557521157398034299426882186713784367438527759913286596680516918001433854987555333582592572015383040855339832539575656171714667304787814867891762087712906630984913311926606247445855156931912870958525515138706835450054863231295534811714484485623913410792152650423319948155698963086795318308097027884262596633912431608329926348745156479877754913443737355777646515732884706599085146177612834616280212660478642549023638772093464289575151634063184343242819354792438722121925454904324276532048987733961611696128832535725748875406530169072634961179690689303091290932294220628569938479100440266480119383379551347751885504008011980173264785338428162419363363961757057296634737674802577214731413768355392548873324141216548517131679574367153583015676096823637656696830206366479930595740324416103876251465305901275611181806013593663938834403550925454650466454228965597701519422484100869382411754087482243015257544474880456787463318591504481607885173985898805019361601291483271170168333922188362608240364550202305463132969138574763137059099208748602567454782041741448781046195305753708152387787836649827260075050143498078094122406797585801435257469563563390969385952568513128338933378677827958667812752588446000378842143634083145529291446826142573370866918115162923644435490601046902776162901274389511801161238383731675787674768516173389451974536145907366100571268940420040078199567285564170985521070606308642724037492433884110376150403393154349603893306184855629248286449961704643109222572345221810273472623542886446310933922172825210068440380998323057461199163962904879252169447668213487973515384524362527118233771039583835618911626175036524659378595360037114673942237462790302869176784309028936426963044883866532684348926287878001520145563151904606409074611095107194358555422584969509909511089468044335246964656669017547708636188088945470019396562363977912177044247643507430920502139143404419948352125530633793269355356157586140559168834526877946927154942487032576005781223873030630714549377370913857059420168788772576428782699557253572549045984987329468844102497788803433723459285117483051963057728007139979428207964478816479280173065210684974028079630649634859380001148620716905495209354198157743962890198685865994478642819542170940776982713327647071372593386806031185113717357649720478978602651171602296249395574106293077968527330627384863056603692444937872133460796167665072667263695007164611351068917352804501314335211129691746731193105988752280416968045021005747892378110563032734466663751010176543209010227154637068316040882099380648228809177328450893646798743024555040486179884665284649859030176857883006713804407096985556973475757595136831154563693097071678278916805439007963732759217292973887532934876866204788557453652298819070280097981613322661232681494843392032492059134032834775460833204659260588622069548154401023773128889063255380099809775580935653150490883337224606438727630194488306000136676855283722702585629805096572348623692960918860329667821224255478282576177506338315696670253234882022561483003619104527549984065298038800860486838924173118778377361771668475887375127337206852782334350712921882043684987472016146181004795070084589592599677553791277613644856612590574485854178066357372545697957494904125751601562369071043052411085427644993756438706792072282412265767870261893469102855949536989140060456851839134805476279345314066893828218929169209918078250369691143674457878095852494984562256561183244229081336979301082191808295742873839916507467976515719982283204591727826732478101610685660545618025090118394734062258249532965234878617519267988923698115956075100997955720689925233699513960752885478225666462491963960927346917132665554407744793161185139133414287314072409658030015328969701648415672143385940504161962569583049774731863351848823280649340183715770887421705826963415248397911961341087858494619735993334963736354793389897899440150828468522024148758401656289535783533407277457831397905851602906805663300105680954325209013409545733598472115339579197459056066269925477628983147848981445298947695178643770432164344174224911736340036018450168204208522502579286538453874078518462352328916197587582444082163739941256583926576990423005612957403509015268773002935646969604430615629146446240944744868949522649419026826556614469294051753210543225269492753546692616463142952825809009263093647873620282483676659404394225321037566853311723298235870287705023375264729012594190957357351360499655755656538094292826997596896434620664915243604183106065484477163500949241315119904260377958481602953671299068710227227793521386704099043826062866131633170631521172806645584449570346223425032681678150433581183648870750169430026819886692516153940494505039499847919657487307925819161192008563789146811456028050060648362913449142869710023611805012683257072880965647510815452338328897517645252048936888842905084975091300569755140255552073666817519942959509611711573956096622128729920569962426932797547112035211026513543826553066976277495999140887507262998416148372434807543124956455863822726118411648267703970977023969412679103491118956815754542567834215684108118834693420446179179405685032503275073516115230460538103655330097920774604672277145900583140464435360537427046420182479536285345485993026435257735492555420944974750980364993680751176334301796399419164271929759478358218198867992340815709414727668160336966727898261045201777184755540209096448150578215757500829586694687909227246080999616981043942813687138040247480446098207975191153687425497197768884642235342403083170191991312661312113982391157403986588106924055288043459665256402260849931145196897701900969645114102598001677695363052519038452395748534876855113909236943239089526306145909336455062386856075770443231265463521883866327333983833456937976787531287897129449589677474627732766761094406870090713110042097414566845565304444079617350806096645093141555664930710239005479536154397119141753644926030140568549208420365717209749127578645220166922034113592764100987800819599871148990871095278823101145415467928836246353399143474794821273731954748178750886742160719626205230163901714072495498614026563581486714189853575993736222766614403299959580292142955846235975471848907326372552044665990465942208298127798498929626914851047459598649168774764268488742067600795714458678202401142567192993381892585909084624618857063911720579471311509589257633542341175090949205830293262582154520646056430665707034051288280019370344970092387566986631467553900668291945928178155228424446435741276873637968145182956965629658190027086855813436348110359286733974867029279998917468530925360268560772058137862125737356637471493218322176723764741903725375838696789445508918925781668184446540501879901398597664044729256450124841256451622411619277756498938247963224455591297099580560457860038310875628019766421747939813446976359066584789583330734839951148691227817447324411830963685060688939948733357641904783194444078361813702451786618406261341002046653321920221044411766181494495116541962346875120137309367883046087195417512631200828393836559722650198291529505614875590781790129282553019137040249430092975025575761352666614713801902007109429582119887990274498049564878929488584419103077990266386385471070554225304691476323293755450317468664301594775350949813703863466755164245447970224074608821880504914001852053542272443826881851264068038234514371479051862019587093481910073705323803586813994702947314789985788960525294078503635584957785567021524182786294944125711730967854605425533833205407111155230881868898673922233415746101442843769964052509795366005829183904574375687671652310048032217382689649643625069927100499025718068131588343086378694312600024610770228883614562092094258910646012293977845624532293404610208173227501169998217831296510818872610378365700424519908975848478083073155251147393342918381115621234391728044684902806315804578538300210385485130556048157242737122395806690948465639293141713229707118923751700370477538650903013640614464201802501544141886931951274880178549540595027745370949850810074350089211942648836011491507532430344880272389455984189909371998551474072323093909848614574785059758024690531218002122311685216447971825171613541440370989402454867457547697572143129215205010032246241560690818084990850996656261642128251409940424024464929017032515898133948768761089842286917801793736733975452194633038836864292614635334953979075573906202891293475796730007935155371021814686129048526522038990379199012691640154736109033459688949332489275685114974128343526588195663039184891635940852729207445104921772070124244483866556416620542304057178712373996598461456008188191712256953862303332609945331734298105500851815640382994489547853510714669985841652457896809114412547297105319095244728818861324948624308895591723848953322609694286811061205115106174961760174112899262303051719629694864733543758836323633606579306856195941407427947476357623322133309921733411720841458943680022875998470410190472291879880047364746392615429965358914951198598901455442417099297500681712648740748619386080031443958428367447657334918226162007170000579995330268768198539506511318555208946795822472359597809016919772371416416630439018044595233382913389263844649312873166727888943120181654729089191681014825412073576991926489439034155166458858348089272758096279033991567575130249472565779837663302656515092812775536972086040688199297749557372492096493416226661000584106027449576985202057185946999831931410667673299768068810132433877917334756183722731318254246963735798776197617604199236506539322621879155621273571801619198940284644123575658700663860536004118589188229995310484883887514710343248191055431710999013137472153503219163583670473831200404462304902442647245999554964823818320038358194958427485362897597245847428799698359334167832159118507616955378524402050029682468665621957246762341617603012836580084338998225992298755531707540424775240397711059574603608171725301964632003024898808595116998388955317315230835128054824832043824924471545693259077110413322807927449261005531374579754039571418758440762267159294155936521951440637157799666290951602023383218781438086190320691187939003154333377692143761728568928506685396679573200082600955428693112106113085879335435876030129494763754534284372101962905702168738284374359271543568537379033405885015557611405811057272389366551493871833222956335368526190304747136852662582045140953081846800702072562396700068322148795395140596192469378501860406466182179790025108818567475407103902032189722940916685331973122542870983617657940815502820532908170453238676234320720091809066512620266321000530196118117432084245659549558673759320233166120293421579264459324307581259543526289814567520143634256467796185882396476731417418039804721902481963202753639729635572231286451719154505704537350957576781194629487177985582420315697570148748534553787289564706677863614058136866049330821445224546646698919239690289001849132180636740867742093711959947523494087679818185996148873748656519648190953870948872659340449684769871104223125122143160820117150951278684512273176956960361561091699544622748993558504607713669389587639664167618674943195012274140444949955094816714728571287656254905234857247467092503603638553323403776623793067024130603091472681459429683461719731836327185145683040471223167795409443037116286063291493563286901012922386344667002340539331541087551275023201488076210669704263912227929164002912222335770646236512158116865243756826222184599701715388428285768868744795648792855726599483738251938111320310018364458828518876857224276910213766867897679400834690915379497587088643928963083665988094973087980246581311586814445703905260040066057665210490435181745070210408329887985684216086348000393160734744853775307256497910562422141843801468178221640191917178977263173916578221701215622300858966693360022294543811486322703493353771351113044917937295258969783464236913129808493305139485512223787042645717635140238861637591626400997494014066684440506885322429091699389951984022029305587015089677900539746522693879047310288687227327707819487515222924808185847329663951092209650255650408301666806948346788912059803636128839152845867144282644726030756932514450878506900240051265469587006666354010968602649049177045303051637304234701346044825761997240060289365109474105933969596794615590328213867053308809581786201170310243268739865259840555122129434675475948304678393728439401092935078493532162316057012008915259615018318178725689244713702227748227442939397431166985435531653058870274168044816625147388868208833721901392668834114348344871701748241598166082135477806282872657047635650716851534098960546230173641342388546614492212995696573524669998938138944620070856457250744077431818347495499183422677712272614288245633968768392632760430866522707903818554951355048797307454987958692670507216825031123801756932808672542780660334732506687910616001358673859159731889304942216676363917109005283246647556626949979848302600752906371642294449531338422941424866760687114707026341500503876513186038128877142538716405802323456150925428098601492896134317010216396218057605860339808073344045552076367455262249495079481707518211976320567230088549448637397739465144065759612489146310248981950117078951817030843322389777236462007301397700493903052423903489296150243573145996792255775740785316959757721700253913029154775008246967650655063789529167902840981580097971738111820540170474566669742232960071626125660215871762381402130426581513598443005853732609065112104807956841788649529183806610191259698059910347088511077789730634042618202741792466357155267056264410376158873639334233254623598500404821034319543253221817068202555737831778459771092309480397822318111348790252858212621796825716083982502441389764391469865188374912645299116668906024423476497338873106164983069952801845818377761363024832384616825939314509051676088384101542250989341941709670348200098441331045071736749925449022087269459849405413078973162088343141869900452005582260225756391714178792233786011341019842442722510170129832553882183011132004842252029802309512868326069381761609949075413779574558937011108701250013869551921694787903067939365398235457474974639718016681600137440765099598118956116406589651198857490451458085946550394170501519795100110095675156352882018751895714021317168649860653094138765720548552826226540172007361320984822284483021083828600045864738916402384370200048445996408792838042167401190496710268211965034773281839445584100050993498047164054547918383388086812217598776304694203996389928920594802514106394026056027772734869405354195280572574619674126671363364466611580805406164249020675960040277249715173978052594216466069971936596587700319196811326287998734979397550555890603637718837421658073662448536377037948656199628357155884198084350938952498628728520304337881647378725740180829606994209698207677750163518203265335109121006892665313731914163971712548938403051748098068231431472637447977848757098364341071811308584588088261902808823377305157357345970084514515388549868963549519514225215895031262799583166630010341505722687519056498586315670975147742689911115842594593297727353631489162996026715172808420641002421695333349756652768971933215769796863849766639727833063770803658977028203403607599600244797382242167709420915928642727709450169617154688813342233811217828052917085113477249405516591309819934836931099223394079387788773050610096570526948959001043734027620653515004353584690663229853543526030192188476032327915446023352396576914337198098052988873909036194792222647097936523657397743170534470780026234775227825657080907176457155386159254058580981260795042102854441035028265261581889411206622234524220726370436038925124261962813720746130978973332005357709812769836332202493971385173064178035616418153147522366674612628451768484998375182550513450982309147626989508548793602446625516592414924519845172701301452082079573826149349779069165100689730507252602416246931732039932549548999142466440619233738220400930040818080416814958541432126903195935190178203850323905129610417009969911857020789169442975442349246437471311234919894494576871923258103073391723025066240703845519259779895512427443642510288392008174490151633506141579243949445624416671827999542836750525592182182434729016482332809853103938658328347582304094729425105158688209696670498502696937713628590185975273991379908985770320703947748325815295918649840762498442721542663183701841935882346466753696821538359183093194642077899012307030880634182682656044098107245523300570081206279498349841473970325256481175073262325715995971307656754774253051583911130412022621768324841351850163422914222318396344101456808504664666806909798425267876909710271775546215225226631666630621886506248917664333246939712774329258278500316692979780116617624262253636088236494571517246615072425145323316231940000456237781332306355140731063143043444329094574337690233850232233953212659741825094868686483739721265328206607972718197226947662400419522836752611047133993182362549548469127338455576383595653059736334590505288555610966249826335791688504512222379485164832081421136937198505239071485060144846259312727641410627443343839329637772084648358090467366552850999956988226072345324745366661532957344127428076743412796632911152213875352116399360429237498390211667100305993615215266214100854586313715981700276630098933124750929967121230209593353389249033192959614485104656564696033123300844274960200250787122357093890193850209039744172343407742551996755168891433274467224480284255472863018260775686236156087402105297771024400611060471862331938305190637920223985801619389823249439733937921270476325783776834702349719490905226430007018795626469703893476563787009929191955301213775537643698792541683579053736803205085214162925206704524461562246564184477701317275435416480839583031113723843227624848408726571406409958741572703876399994610029015290055029331596297703706351727997476118321954598543396395530133277774629471968958438588769015538564963891700053136963338810271274777256652946970752293350054812761796585981516280193062461854896399633351523082749102674087272660560421502516309098232904785225532307734912255422386775525991221229000872171063455022147151672034758958858107366013154351539746182952487818716973964583085811240198312476754878785978326112994743644751802339617556353382691701815157943271497872014345400186566798529067373549453153351375254654929654866127654333037245840651935091071238797980061838971394605421326231817040531784656835764435601937132516692950588977871963382150314638423096184329107975046645902941297736672010885396592862374922793283977823632154463130815258812481519425138024373955508900681739349687078241014807265353117977448614578968514562493059803000810348446299926067930134468898116852299490106093365491608655610266160611594050698074171089491213505441337798366804076687485708950540589856013859972678848820768317478485315707883441484407999040041263926181639026570215603225713940208017317549532033868233242228848415571773210821637856567695366350961056806992428775905937395511182918800995642361837930386752317351382080605085920495526810796600482730078667897048409903965458036079556112517265807160227973701472514614820933925613775292916955471990331898984272929938375862904604724562355560247929257253927646602555452511848159098195059617358592605608024303817850159345838918948409545390418486104979661087909164971106333841303925416629412366196549730629374471639447924428291729571150285859664893251481615398343300625538862275553109761542299543150300431521832684377578676621917022728622028754508629622688760032210022686597868971583939214904054090122850370523200479449671212965926053619516647917934643250431304938181870679586850158753269834952268790402624359888962304341259441650068772622669077355247346563073575545498127298891487853146183831287946889181185085100937629707683544651482241645231637261552316957817273246234788639180024631566311817789561652222126233591217262415035559606023358773054862969965680308230142335280385886114192855123633994626372994148536277803808517839422868487542242841584752520476034440555143102101268641595754892836748188078083167178489920955281649456249188971487228421624440984389181560144954094275957234530719309619112262247671339008349058376234818832924720796108282966802369982737329891007443971269892839215043964320858317604095055596910363712967935588772823525585732479618189107140674665914054270232537532220378147033862432505152569928314326318964995770340802025270136396548716403500820208484901129967245971628978579633753416290900848796025062255732291925654521840821939625191096750583059684629439624081729777661037888639558571023304601053143377802138232298483714837463122945782637953743802299024604333063350170508078356540062081770798615666019911775410974040138382992298155965392168864952619918228733866613840752245134284966240849781881732306466504757754177425255016935059973805977791093521083556218204726687403575922172414773324117508106831043929517850627475207709762180899580961518809159575005414467096918510195098919999098790992638150066983515755781280105984699252166266087996717997891163073044212752336278671163030943992252224062476630209736325908164175788239787426486367080810018941608918237181706118943339310183237254424602659536235753103894840415006386757665430168024743703602035017282305215182559862769353746351486765036713857934313430818488999409859635528737068743518283598280103176473571647118718536951437647049345656350603530842572852651187095443492212935695272494793035489604453077843828674190409162239749092103624765207497252565652236239503125649651291840852314565720104395296343445249226980796752015559424228696814856531407729428372078928925984112237955768429867172922469180047078915951733612905384279905936800874280631107329665701889984870508483618323024800101496240654254149865689000171773908142166215946766586324510199464757662921941330619471772744442356232523367196255296340679342017975341484471238086847780492132484990682353958925491161186698836046450016903388053808430481497202727009242061284411719573412067614269018511266504050836426354089885794699407341710225011217526210640970570780966086905650446147150808054025839702848767211496631446916584621794318353241374172582483068197975083397156632034098018909764293848490323056394587038685038101092386307138778848281302283723925085257925500328382507782094597129268524266274066950925469023913361448037098088117926478058203723034807093755462477587547092535083913789126513639019415368816391149217381549829952876121125602097435261288774110716955148583075835034312421879189822044031482634211752613038768344293059107239792523860564645443362308075026415764090696361453296235915850623497910958409418789185684024770006218747178871938407223241076776367069398296485655665065242039049384256880324105323500851488768189066188125495106973424209953825178813111191047820665087598137043609309518996665475214345907247507327071468113906220596615309471266242866337241986115159904086973012025243315809449130852618954615388143762856707710546518693111842917927773192829368644205920347376683435274116343795156136170288357732920066586935037123912690197139614921308182123116798016869894637696002820991419476338438596482244627705431007221604013946339905394415924268838018056980113124509655998948275943428921737432574347784586226364077894912268796197323754964854983110370700780379871839951644706951904177540581405328552766505618875545502513278866208714432145556589138152823974784589464918165743004829902748436262593751005255525062426932712146663206619638238969289489996043914539867390631009648606371165825380609159110279902564700072111475210624504150088730858901423685140495691883216192023050248350215545813232657659659602825647609432268218356712039873544667916906206026409617736035114751217671888415545790083251939267369541397793439377878042135159082404742312591741985392447787673973530735500918269128837673354337513887954702524333901005383842329774557562640416262560697968892704140797823011302613387087112359813988897967515264675594792246659834471781592910585751576850603484017059880312307297913473662662465511504036158926532587999066204650219392551779766285450108800207175822990316235969682207078498359421927498166727125415813265062574746904251546603255708720144982332998505872678132373341903113607316399728478432397219462366876961312660030687067679023879800150233759533401489547024575826870929663877187902858628767274090690079639050038975055560516544960043483290870561398356438955335191582671465559351715718666266222708095522969331193947072898674761428813812925086508769526779770458136148558113390326388268627601603060382595448526250872806422554562902359857673735378709479494057625625715407069686910097474624027996689559082772440004883617566091963913276175047901943338418171354686657953873301849995493330365117266767712041531387514715789502557229252221438124887321740306944429038187701853999947055095812834915730815444838817501504600733955469460101060065869479529230430309047876219577603307809797562181150593545185896011935175838795846107714210052757809807986159331961530851382778047592438524658763291026695643413845604826248976853556060512182169429468187504031323576335792417703614865879938175386218284869846901229719027941188608461390159040297731458906531053390068826792733009244846487766506616919262486665600084464268812999269879186391884144341047860652995722670349673422886360626774300991002038383976691078707081739634375751982375528872294925720531314665767844294835772598231524855358705173258476058599073534594992311548514021350663830056076723427022105582344107634928902432948164488082697273378327699011718071950178114070901550710539948853667172533803142006593954819267551633881777932328904550976040524983799886578019361108748310628215227769551334162374937705837963145740274453426477088386075817300230319390852486309186953692425413918832764450415090707922123588606942277966188307229557245802497430091639208997586258703396106208736297941499853018865660397610866354357649476102327346831721579971098760478036234294732630619267416723001433692801754294672549001738858563966386979078254442416012336123966287833331455896263990473306249931996044852178290599170022951610306025187866264455568450653792214858752296005486944217153793485870525179933404523718225257946953104187892872431208219057173407983587805293512567615047401964338505281468299075880183254570701797865609764559154932403820455133198061193737920902779232919097279362512883493902590163797695204040413044569090477278282213131617986958214183764506723538370057074419840992511545505273506899454691466340649588111033747010265702748848346880156802668057483763929404689753921830096762890492299121149862566060893991988343603008069422369972057898212424478920295628438585999417744717920518340326326497756657167031113424521763299421589722691897314366809149016128715435773942895766290790031122529369565213773685244606496001355844972777196287479078768097799514806235186518892876768307546438423613772134383672018813610815235694152754654384320882352278248006840579239659154956780324921695076822507722661555034579450175336984343198764223066195805511310093103154253898764464427735393340161326425394277599778855424894649551785037963287227783170833009662887819408249468244930026758811379329676286673052850902422386362741270218909963359080354151854829665800018124178459679626374144014946910318780561555070387197240925853987567855341213140335909490488648950526856515472803128267111109472188048153365819997045375324860175597052031073080659417053556216848891129870567110558548826379057057846569874500834020471258197579656116224994051680360038683072720801170012658704239564355040486196584308286522226657475312721117980107481659813045564571959511781580250486810339648984196913171584142688247551071602377481506793568197283586102817698971916922751182767795918839850917539319328047993474144455730871571872806918494886347627977266403997093894826425264490530697811061499485052060057335490122065720740835943775829280377975424879946164836671556474604279835594957572112669399031531059351131320072209902965934084816075345317924201597723252148825406382769031214201542972178734660323202579499303882089109147669506472404514301055407332337497879143863577064689032754366784487765862453603977367611939423766594964477393465049338960997705095507020599783939525635843177699810627593151210541628933430397425990871636492305577527521808924662331545255611716408288536083577840794617483958940908973089938167030892069818063818772781501718765310681656743507075169002193096416557847180544441225092781471227749278160359428506876054238517463504475851599106077468454384218832759910163616566924779462245228416925925526347059808127840352222489615420778009624848742385441109996671295829693682855394700191540036437751188613251767728808729560616742369171565515425115421201326044973944987941289485363431417348081022273519079837010280862162104551757564318997369413988870772309793112686660783069547991615117036536864853894689398057351337772556322605168283049468111428542178648315736314389338535707942499155395799718908144904159943498111189637315968789495485591204999212012382481363111186317287055316426549811047865434337354406545059667440828890585754220773026989505175818734435689461808131077386020661438781403795420243616682383566427342571644464552617770699546336048243057813039833795225460954829477072112394804479102792423300063622054553450087252886617415381285752614925722273402967281514431306439763740962237193085715680834294733692342113282925893769694153543459152932453874992979210492711463389859073200432016667625257490626539614611955750959176283874281334724039221026098906029656594513092554969779698964134677285928633446501683941646212724152434812975552414102478303493727948835794571601464402869125283634967405217221232806880793269850132407227566003315276279738294214317135604039469656788904156068739860803561060811184672284043719806723552685481480145207557443124455841633909822979468605900115988010652926696512250213260356179969962282585686028756953838697929156976329232803298708049568609892567914256586867119811118013008617299109550265710372302780468313311648187102563502916424536259081815682870927813184730950355844767878594939742459877069273463699829462179527393066392427987539974149120119265762253949595381475952620907866922935459936829638549758205721666734066498867405860615857635084171486776102444666373255024277502217122609560857051255300788764890287808827647325269068588403061708374703741561686818509879345051415420915922515889895850558940423254443621416252694542898383402071223334969473553050460663668328469001161299072197006102059616790687532522925139355364274350135419443385008909606824001424295903985332516714639528853808258008397867133826078987394433943940263990069806926325988297459841594515198793492956394732745952322916366112245324678663331591113287080452041297371476563008130502640002782635058726612456606708230040165283193818948827534757873336214149904165524302349235437266031697138220448991418854806663637435483667134136674823140967210754055109507055956863955389298520220360274767167252478917230528621767744656466896705903925532953516064271178342685998483214912316113046843627704878544411908597927466673108596251922427967150529076923198068837417064467220809610895702277146274642865042760461713823401152146863931026850010420709231923038226994951928865974100058982839548644763319087885371937567809670073363862680515650207278514567832992860330587836683250194734805654516749157881194370758022653781449290034460061483021225702398233929616811738538155039670704727753708528425832849753413101485185915198283011801874840930090728792867751184485936481535494337796711638276288838598415860583168703285269383324951410149634991543063931308288326596942241582601355198544908810608679615261518670317102415577703743306327280617725502928564592893293493298955056308425734695316014578350323477597099011019070063455824149705547425208955935143524934628783684129903010961159215908082429665050501054567338395868256804346685235024599823572279410456180125084184895059521919306762438145845990166604113744389340050387462984832919549199217301927572690907236716575878305129967827516048199292367144877921184767958317824403384610729753084059088848757149953113550346379266050619387411151140012008749942035788600590943799707402865819761413830900428409757641223900203612128146317095771229936020905097523904752850824582872669647873715389294330394578910857629625051111797035054342385114760925759011730363881700890969392998774388921183514618140774381398294879627169779357855224036434979851548605217296408104576360604869827943174655716091446040623269175336080200294391331023600222210021197673352790907861966149300064771390891589114401817372016801209935266939272372302143238593898138496082970215926347231000753454765302330269335005277518266780584266924203208079352862145385555890793524788844257986020060605943470161006976119172515706656539813499854272781492896207100149981240841167727286830160642982080348908582022428960889907505144440665320104897264447025788019022849910741696264300915666973585203106782633512390472288875804165730870039302544403625395206256482331691722260311567607865361218372652685526846589162863093583992342923719483559368984180546927714508598822800679932714298187807407663327211810627504239417419801531825371938266254356986522403916685928428328057073619907343979830846517762288467651270008134969505876341340552435639178357777398857324988732380766181703371759470899223882901595395756863566537341241288055289822501847646477984757180607807647932700048024841530261918039281577103960490799390288580871454396368806473333378882777012262831470346103192060117084601587753556713576646312409875641103086254736387672366083421748185921326929252091086377827284096458661191016360138199325351730437937617468918466704009015048053814951097010902536520191832062584174842900373251357222340507259581509129696224143772744069477173059364273772800532146255840493902846432498710414593181173895715387870560500902804970051121149877160559727402972329412296266128837538540391676877842969431685992376342526334387187225034696691569379805522791629735912689850967390326402333013371000358523704027684081315643362304746765087666545829094366405204906896548651190550051745907322349619023211953315785088814878588253697452538762876475093379869704075461859918783536459117235427298909316085226631274144871094855786784631580220740751107420598914240484614209951057796444324125746914893225890003733228155885129989217079516767115865877310078419253232851478551060013956233882724632557491058094445338663696116924966495126427902634686413545614954723637760986236119291781247270120339316216378362085280801699256043629322787852460433000646421944366824152097373450678425423927193649364868928546326753380133925659811760092136666854592993869227259342761047886158865848712323899921362326570951955228257979412163826138416162068153661917534002990293618709756605023768960201881063813640434500337989168986150244239627525515400757437160020967397857268174717125212609588227796547496189420418336709574059391126922416454666726287902409140312207460668176452679647404371573691123471162859123928648295099643446712880717289969522003720517996204395868651713325781516930224941129658555466774781598888259690361196002031007624357491983033609932869805826530285822441728897916297783941828863732367296375026161115392985992833788975770647253123870004487894010923261324339523430099110558635383836789018909933321854094671980623825251710657421873410478151695819208685046353320992743362360092842562099825247034713137581664940917000000204804082567697391193212464074663308058188426243851373850950155549543286024905318650039171764906531338058875413988817955204471329242264486653673424275262149373731880692889687795294665433149585542433895823807062042949794900662740215631882441636918336638534292541901463592138599422402666239382360781669420832914396310004185843258196945998087331749776553906411101434356185944551529847807397423431602797289960682721187816248829532373015935036541058408785249098788143760906697914479127835030538191209984686168389123811312093914912480623168723922466131752252908766892271435644154013188351790524759778842030926661992755051611774500919658125586225080618880925265962830949736104861507847894783449877508183906046069268309091297492227379135984921766490666672586449204968937938799089832426699905730772804628505748379836097592167696230165401232718977347690717453324399642291998692961234553574293768447011133041710127939352846601887395824612398859226180002387792439387535671346936668253688080394050762825917484487588376392384454025523984553928787828657119039250680896231491751139794606316918311634232777327555819314338400889895618906244625074389737801313788575668591562377791033696847131036648405101584553692670207816980120660272606332980081335161646192202036356843808495362732126136372089632556242924771706673775142139050251677172164127240181177489879876176529973643112992747550504599516557642619836958358217389790249573567328421967731126787104565153404820462033566531807836328511224476027269637768294791614637374428009041941007791070313973755146049908287169192389356437801605758673194105813866113698000466839137996571910021058126469585861370885636377443753536493986287732609915051504407337268655771409291675233969914889426847312214508151108166363057729147855761035770047491677824671825373303948503632336837352490757624173159322821978897678526948024128504336653925679690266135352914961963804958935326938879834282179740342266508302104084783223699993500771285555028011618460804478089071645470833879457907916935203388038404833959175303829824520138096686836398379309297395662724514389489901643600756808694692972717459354027587162626016200293783895941918757250115117343826336027171730039643499947763863925461041938639330210406949703598711266241358235413179723516460120874919402302547269345236992461219846678611521943212648104179087737896077545867089957368538381920569176132139820997921551677576276361593478484653761118125447252368625707193885472025198203632002010956780515634846319913543793356480141517404872047243507500332110162290027679053638461864849446118016702168954199148541938138342768025392768094483982063883197206582935167623033066855305625023213693279666670010719638359681579129788490759248771704134328301151547236111594472253767348186945207256743719235868135371093971909538117887481413290875257744016857351530295869503208858272627415109023838525349580462831161840313949733910857580221836900939069247949664228448480392128689459210885506663403235151671033215843854187353636237968491764567521543971712066155418629205252588479438017463826060882884620672229942621470938137800542430287379566176475507544963740755124667540470936181417910622834663012338519374515853850403799135798627197738959485745232744672143448579521182945386604696912939871467989475208896843330044050621313282322050974279589338742170239766648395799313486563339000531647492188435225715689398329145701494078096665553248798300547553192755237053466836931982987328816082515158777258780244399586643199628691839136313896030721838640961699935138136037798365965193501849462658877480825366668859270839159934675084446904348054429772245855689262171375154037889171768068878201652388301146542956278833945707284727304705104016093958141555413510855900355710115457540572896161346107072545273449723296195871703233685837468010060120954574851727788898132648882461998306949448874011112652322403160933530951480240828157688286098237678643286367739850513029322476351236633516171454511617138260428913973321835098103604617666601778262303075089981081798778404263836376724617809145106918230967681028470743098900268206126143564350780922845456853254047519635394664998100713469287722271945104799693793552640629670342782710696028518868161390193461404421738154106125429411972171928927586566241565578976069645383219716250904751024924835397548559495471303542728979782206979876084543000868986247410593621217197083806642993197808183602924787826161980908205840933836469626101375501476142910248459608899304359609815626981525388108066836184844478682432363691148592274765213271963523441301495250854380160948750085079001558634480250185918062101296713404268916457207924567255180731715105859540864772230552730562176894277012797219074223027322636448812268255129894254240626864932170289957482502606293416168102878229849366668478269171851331367109092028256485450674961051159816117178463747880609730865568164339484837641030643204048439667785109404650110881929474334776524471274064566896991268170449113628913176883927736923682976932715055410617885363135737234656407119848395373378653668909425274598520335372301052424341845517932704303115830713315259313559667143879912495480882497831595728880086034843923642509937036915538856299441190586616168267290353863019791744311214194132926932242630496794372325016451158212887141202970154898288078390404650627298298451797176858244155975860850488131908206798114018039172335672563654849116724997999998749411501681926764084150763508498337192827512256998599540047241515295695440695028915053732692087641929809758616095382084283660497663763672230974103489244874169912828282512828880245813863230864189732762280500926926581515645073311171979871071305961540384914328586855324083204089416484281497542016865686458311876791683566943058856673567776612659750223644998616659755084303752546556740802788483234626337642885335059343464628689442423649004016977217513169983735782670019966198364958641906880742937619164449491241609126583352942981354409177720034293394617285854948181421295395856540551303358109073049601233529653591017458487006327542812626951375836797638658085956902984305898957184470648161506044332789650376819309936461585849917654130113847399034421380274463427205475444993298545169389378315304982518400413020130813763731185784076940020286063844874419631587009874790521473282769826653510311115893915333232515500821097896161452975392048590244749120484904796013799837587214769259284485673692260767361162148728717595871164358191184102586532779178628104990468827125863311104045440710160649141804644717413391095397283521583006078397982621121275473404183123845444721738605977374883061404012874060409759142084609225753898517407222506475617823435173523791203032780677529848189610268651867301472911099333648115611353709986047059176093355657992671920726056577537586327390428935211592580770086420821101393664498588490030905639337959683974496838437671331347772817563122944167272971670419128303116951897885362684241776582907730157039518269367302683438362211658731019630610915445016092683780660084983188148030428217462557897283790899574484456424501513565419501004524583947324213238531106565461176569294965897089474262385424856084083367734185059176139997144519286230794442030126441325693409833754849292140111502679892445027714761708235481248487472764852552174359377227514251804146091277958797804556102280187485637764332318072593052952086958894815867849070907870605787591979812183276157065921376664325045597151534409525865832725123845762942074939926157929336510215728242075475294232783665407232906146509699798459484647030126604406612099639006943219270391342475740552316758858599485838565126472430995279138892741000330128274760735066656589733850672124520979741784084966581605049241807005419472616468727895208278053575343190835604152525149836234469234735240325130592667947068625610044198698240787100437802120860853446418951974036645194171870670075057315863039778120893787862571841160890630448186138954276668397315317067959930186069463302488263429364515404826807036232887435414825517099159522796853180984074366556653744408877885185376158917112942624982470676470738215474869612528748525214208374129201960127704980771840377150588245294956953891217618118059476602186153299920860650080158737003991776919127146627712556463985298777042414378694876417650083315461104391462117174799916398194111661374298323382716537342950554209404176610223181997909282143211839063809744878481330371833738993853804622623282377908684892028058630659001503049743404365236952498980293263339240120075739262622337520133855276909655150098202442750757597542987896525068091443814279875163941437257895667884879211425641807334723152090128605186094243732111061981907723035922865749534841998555016909111744562889688520111966617198877916481849381619137370855663785984913104959932574995632948027499260378467351121655990816836162512748668993952124455030195467885400789147662916063871187874554512997224988078455911847458972512365435896731163123717907947364587771317458161854062011621874676106425675705172508974045873449457447881091212011082881006093937473777637551706473298536672289048414300666623610666238418512284451498482847600186562594402709424971466962151527233197742909847773585828853809423594262938830526259945122392005436399658724868978030789140044477219087429470087777261378194197726905979410681563325181113253490833988281912836200385730829131244124349922779848874329923291651932046502146407904777170617087051551699945839610679546546298932816198053507783869071317328589408936420314028624453024361112575196871970665464499521139046873958210430394760903992721315466696937042749108446497001187441942827745758842324980561561280933696588208319655575232291652741395709312406318615606299774803621250622699221227379127412557326909583843568834956879049530104081467871060875607120053980494692996166349645582733997649584777066723674239393362106931745310270246476595943165393242242374042389428192200338776692572350809241153606365438975100408425952883507333744023058343994900609923416113232164003987976317133429539104269716260384198076227715799833418183899383110767497594597371325819731699359908311432205009407104188525220198554003609501948284349006916273769025736387643612121775849768752528711703024672367857563878546341894362645725976062055527666282391302889377425321467533084517363465872403850591708528877710415819788607364162986124591689568926592038387985017620758050321881307058050243082181412504263355947637885944748339566347212050570506682615742154649738189183027477114066013773881730405133447500338589552977290177949418331934722719176664948573577173861017605049495765120875958421621448955237189945757714007720543554190499342043693186048356322270385595855857784682793055660639963868504473294257509068898575453421776170876166232404427970031319273888057453012280573839292070033878295031009997112564503036988776301226259956409799211754987452932318235549156377461318205422870641485984848097230630281183147684188279617686395894347175213107430956547421010375875653512960849624396593645799012645916736899030095797155438084446125553219686825198523667068441389265124346286078671165681036811979250233668644375098553578591942470373820218500908179286766827511701443443046055000716069682429003246601146500057483643117599516111086790013968563478082228408411043826498317565680195524822327821225816813535957721140263372494712883214706108075073870433326906818295702667381543895032441785126733739209479376473045093256564654320391183805556617786202700367705817747380263048225972586184960268779376869139063160346613369690185747732017229191065621660915834916454596363461995714649016136468043078300296764560012794807094239543315210717603909063692225758925643730467249889825542331773085278465048513980727935724738945366840755606964337627739412833461662742808304562863813075327004460060390582555645635249179464123887311767448827899731236277634827272615619650043665733102305774588639574572775797316063195499795565427047353948045046936460849916528126758825947758453751084043337508586722362008144061374414525918072012248146287853685889593809346670835663437602064281542890313067147841672347432745276422512882358499976100255132274478794213753657361024783927624189057750421265347714303939844365795741564217704975026849813521288692725775527690530234755532070595861553567001560513890541184297233577437970977968285879951114595499409603021760896160645209459891279096486276577657281068505177387785655515693071237859709438961676783981752291546130747402946867178600615637701190080802282083758688328131174554392309201162967042947169824896804959615111689020633716336695955143178951713461449512375617755790898869804354652795681488162318006525712271421455074379547637988144419961107967455380937209956657083429837379904083063382409170313008454492910503812276467844325809854255375597731261884735875707434826280169951352807278546791424848347164787419450200632049475719871865649504993365148317294763469683067952694913634735523455160611030565853443219064235131382434257447879807243035481392731087839431581897129610205016177066683714644590919859575558246902315387752615252671152307595846391069389871046721597457778838871934726773189758729830228200735596059289012203152166299086803109778472021442500821452891787715106744319327524810608359556353950403302919922475988481670755516453810137080861942046909887448739854262169096792596899736991734182760493223439731075675898007876846286289020923879838824846502885237247485455980225607440026434271326182577079749923798582365565996141675099104322999842965554773201155247207350139224709060493967977945955575881228073698450817615084188871960645338911059369898767675692628836757777024421093420977797170483962688682346027466816474423001269324830294288506832291269412169570516219873199435978849490482065828116454774152876842882634382847812168557802494659180636319048312464966535178968018301823013742517336116228077325565135262231175929679150004118746165666429057479918022632271045356921126251565236630766027948619292350275503670296811519821181489507394734828897355708222582249632795974080569929254082181555011093344573628872227726711214752780255892908906095653182472077894140183178557671886170467238010034458313265596287704666760728693417549884929950800416950883484098794892583058953793981268131833886924323198306211919848519847281322890325104756315271167470587029179557263435276453063802373397638253851873706214734785295813518839559464892421994611619702218501945748635164060622989263672084860047081536778305959408072803386536209051992564261488152664370097957727466018552456762264645905179538020962528329810465309101166339309078687669266289176707121299589178911791610004807749520530550123430129615711792221928914264412234323674214252462960791079182213272097563498811368443918286702576175187936082649299532803106177297731054999977643719329135566063674016895271680311173896720511352666645664558981043486874224839683326210610554348952125700875999978844970400260239553069094276828171760696899314321724121593936580205731971762076924866587977947285329982138554125538872265181389113054832750130071052797989382065386380128308007071089753163579498573441618796476941911708376193158523686915971522450059338226580264488791667567728011346466005964029253246215783417182800388551968182330778443300361572283868476530979911310268608952296230747958424228367586729498468571705410855941154441600261943610919172183541271361589598156328821052933510309107220774850440276571191566584764890308709417257241672304859560633893891884421356977219642788353927993089901984616907893472887523626218143331140908993646385369386603901447282221932898341312462303696181487852421415147536665697318298773272739890529092540126606785046659085194627164521206507424612126191204298666908366555101119396719501735752452307591882473213954671056957184917030358039750716618538941378275154600825569291638073241129007390858044489028864131466511613903948897419378431447003737337748115388262191734551841685960759257182408006666097784796191729125863779954821550473036358805990725578372658240274099148519940602254207642996227527459663544247467480068848768649671054203825484139414085535053973677535335416074505410975414403705127577114611666492744397047817039212938595698556034811278892390581678554790115431123383845491347472187278045450624689107869145311918727204028507950203333609041695915775829772065376492384958000655735390797482541176096193014966275436266132527114585630025768994387213926971752890562327350759707574292037794474817802523801171781336826606693071190799172267622796933019675160928111816569752302274994883759487789304707388522318420451671859840076340589601136582659116187234659459188844577626488750912400011717544752385730214709822993492325741273229533485412611598505303645482208155925860023162576867265997499623514155498399767972001071238016248692682598859045867974554980130861936561724875869975249293304598806705347443774040574478683528004720107921697804824736132832629855871567590180438948292015053714198477743378383272462080689070520884367544779811041698766467278856600598475235900875615868631563583904835863505645769386420966778051551545395119826659478140589333321947737750868780075599318726939284914577129623927281332185512621624614739324520190243418091585129993777379936549514121230750801209805862251867794143179321002990382669199313150996107823317697928314783412155666714058935898687349016980455964982414330397173279646249447431062947412885381773577666973792477855717990640630195603989642028159251985673446425610793789851590510224265406495944861317004783259559514815154673745969557216710605696621308046791020616596194900642018694073476872811618143075594407411348927781024555543196673230564611474443301849543398277326845423771098973446753535272476992329389422135786932430184846029285432267958109483466243536627355761386465704857838317735367239564685927134833991748820190468622551104301959047485092214242246470422552638055231517428078665580183501973316460859735985858007069335608416003985566535986885935471836782045138340654287552748914611231246881822747656971558580853772370989722238675347023837926188238442110443647132771429224407948219178199535989105195064111195617401904620334035452768188979965444234260473596442691094622308283178806639223684524565619249154621312201933397758196486463169252967327962887470485136360275715835123986580921855964892675285223917192240491211393135395638928291954482635028027339667202171749002324384392518487388534933530030977457438830803942015895775961657936870926668404150809637019783642790914491818059182342264801038882106042958851977956799705590654354844036184092397666912270396201691431422719866959313565736633311088761008763612495219131295283051632915943135168778239550042441021395801806814236584651406672348104185772889068077242130415155871371602164992432773043894707819063647577493809915400482782781547471254534018515780630667304753273872322646343589285794165709516864938994129256500793510351411539136974382459389949633369862395429696963545864037654166272397995915249082900967785200262429036559245477323704044456839240577463021449434350202698730404966566208279179482206932099718448390616445787653527153511058994865506918216976052238529420213443320856770398779555338201281025276904286666599869302222906368082195758873512408738800995706247644316926661273775820230467885034706464613591851515216053742133781285751909085781045560781088861429062601662363643153081898602663082480678527931867996947527078166987953701423153674868671295624240536805254951285424335479807948348629856096763584883736422547136015042814258549922909207757121828585555543844484390675800182113936497155466308853273129159553847114165415974320322217413175346977614941782596906565222808352287753224203832259959441009586031101191558807575602140731250148962188425204952601683562239743952547015434607773379706304382677007005963376225649606566565123027723908028174855430337886620078079980906906277446205794412725899019377053983914918357486259093637501612590093293401335052096998232729036723282547966863238236921447991590652710322297727199806067380977840948297184511869875109576536974837341206835140511743996828038128658622615833726278156060741849448905687755412841608345296798046387181699492391301379757562844350440969752742355767853766959389411439428492957961427032049939432361894349685946023571503578719228854375259443801140686236763516998046898895293448796690579715745787499867374924458020184902564484624502771094136055622665292366164968307607309842209738700080914845742092607297575017106406957048561294352617081537598126996884267581855634121567000046047994464760217675622153535601036320537401458618420864441423324607046433988063394380157974082116494442510964256813087050877866053276604852712270268268988597391104502460274157132234176771889317746017006911013314903866745206774845039045648180892594200395978045961310701305996859488630808336297943623447717010906233543107125059114754120881638181919706662869199810352104062353593813826514369483920186977469707872082740145069004673784945373790876955065484020981344079944001465544364039580011679674056810760315794781301016667813873039038478092639389401160726851006469360620845478423386041026582521426085264937536922418852791424656054739615250180387372102343949217049973592069079951424792690653729121301832083166223854356680899239540558042373607217763849607621824467941880431784247014943828499305311831902268145330681639288575698693305675719683573195699329992542897365147230126429325544377567988569220271015891639533546300842306079136879838675206130243353277533458832432158344632132727152405709949090546671439197667210440380718132349152250938932022158463154328822044012637282778093711869372285664621429771938279464256325556136543225978242342180529436945825612292083787687999482132109817149041956877862740852081077731228626405640144464835726055718882687207775483903607146741732547508204288927644819302188429954309662118451873324773711708615165688515865150993729887122895539571790423601943678863168153548159613918430368447471527280113663604083131793567685646899616417204928132780500373835554314909530684586348901771376329380999790469366397450821072586981141156903967662955484197801106687753480970305373380967007142953991998645624630893580963740075366984623061681108399591331571040096045663162131091830466249495463602538299351079742842562183911323859160976749236329961045319300591387195252511927241219804125702995764734735079629291261503320122393907591335758961097420158694571418778771563033610199292229738448119318687979410941551236739028234260643117784348181827303046490009651147034323404806747355379404698783547467501626718034451883946084183627469523718735859910919706861354632251370888591758754827731263016752877971758115839329950903267801846201916759252835094427750569845709112921026585909304262928286411324904870809898566109194903672457704060786086995184100482224462933222489397204712010625606926274408420359436993885572686032229482669158899781817222244563835965882708969325819216949045328021992357043400517918381996866041683157157086357716400618437044998852275428962415118802398631922013463856741857827538613642089056396436007766674849500517777485121407626976796215014306695653108548945953925934411260373695157576375758645633162786522350308353887643167585362787601744214108973881523560663750237148446290921083940047663375306202287744161354869467109427308051171559531478602510993392600612349665872607753092136718895248381909584461710540420048666652223187260047295695467335916768020100845143297631666372766041343807383046350647103862049742146036050318118949242410506264806465198189672366836351272222304029224836320909430130338179727556319035476352699990909888221650844717830172899038393758157548546303762520668963951323412123132940089597450096894508128193804337496418754591875700012968350811500504251042443055731271470946760609134126127206761100680721550864724387092532861482716683762276073614273798005750635130589077240536576994043017771340355377441454565075859750698126280141790699974929641661304243769098129011848196869162321528942655227365442239018058858967243044361920976703454435686985747829905035501570603061589147549393518980761972252585646869185966014128493222698108427778870977533410638259684531901601479245768343682031864099089777937867547325872274996050807317669811982449984783308106917889094971137331860587612427785491604159582220323009502960529616319295257242380047728174915035356371569024766505395500582744337987041792169151690962433874546835300887477153716926091729352928825543788405798380360457335312038181038226955039442819539036828477113393228494907813830827809340107407057306836696872779210077678751174467874659757014643716894757440232941476156522477517278815073553810251604955365835163135794025567794769532401121831832367943197786618186819020750362374232870962333299446856208447403760663794972260665243181211377012571592394615808039834122833243839599022301800821314764692314339622565932452880470623578081796359981001151847543093067374730053699322449224847192062887318540160156324928325820606121341761599233888268621283468773664550380985005669719781869188852298189889581967509552952900135189147136893804216882042704656401591558248374123484571078304907518550162869940492961758115116723914088127824353944376402573751878802779616284558996300272279357831744838533648126844459936442328243227786241048750804855764478551766542572638281653738879877450604258153574531178355364829022784820197006221694555923791160726424348683692061047173546025221893674389185570284563927046238042649698713580737538163630399810878377502944009658936663060886428649646642516837139769917308909939830182077920863511496768520719042017818010207753617363685341902987824875843133917691638377980311035990493160744007453111827996794965187359925328263490482580781307449123346335973849711118108831740503324973267193839083055053308502840487762740528374300000315542607372280174538600534669493881885733912880773488659917794675720700045225492507154555116059717791972760737583372371456893626429328528852776321323493292997678184764470242454297309967468840905418001176767858672848647562304222702218643131533634890467327224651653072903236119224061633086020389867078067452855612721269624521735114790012559375346929263080661806167070920560838636654925747181395779180897172694563304990182845878265956551184169618708003696832812612258410272134396085019730390267134784505804012606474558224142843846112965324518245487161582600257837238658677303449629107941708161337640845947658184869468113562568914965390118433189043437526627522283536901297942928256631718510272650478446007666180944966614248026639013714850606688525303476842824841851144612192089346881185922586354380078398989019423078968509460921948843190458768021713555383618720145368447396996787187596614826435781855981784510604088939561704874070072274417281617437798062289132476192998360401579780400322347374927003440828720545010024716384340001890432477334094946889843173254618011228984084253796130455881689516055115045765252215727828478581095622648078380315871752954214943710545814523163458928747030393661169505772848960111383813507693379609460741213308195403874895636483863870885100494487958895220317879404406203167103139436251531263819399461748253253742642424125588914268900833322499026435321254514866287997005137839341584322305741782341552182332459662894776665916630147437377637567036633628465176595023707339432382380876896319601656095546185961113738946126030734198282144800033401434750089544733522206329009682433209254537895058544294933269551750883801114422371023908795041157282217990560715332889841056659414257146125535142725027555126501414160585609436976666703193132289363828533201202561915914918245863127618427261140372277785417568086874771021555194982216976691559298241242133519948639236732264466852214606150864377545115110347488944503119271516926685108952325132943450546510516071455126677077577186995273269790746983411827115938083489014641730755012231115851114436816349118376063264462284887239551128210377737161693515512319063521159766621871192377257163814848975041065827733115123577909465225092926480081510601688861242619918180801495829258710076476812519890026080418165235257759179180134206558937531854913953966588134594008657523356157269542093758349576166374242308614348370160983517873612476307700354250053878254020766433706028065665215877142268668736418719439769646864689060233312166222670424370223203704385066581679212961533123116111562700758013324633061168746497319126026806588396249059599546873362032674120557369416905840687621183090618847145588114189227381075048878880463109649106629638388216838073297391226640469954808003983417918770842421797574362162192053829584177952602410029869708684171444341947170267988283729537136202007321974876978647723502135833995466718360399589022032485477567631501089880999014338780925465964615862049834238675683931609478909642641811563263676358039350026730087390996898442307782674856590135708428556767511074693800149326046575644123784889026801366309483881142316751425085014292763554780945081954854902109661782133462423391477535436611884646631643024998195162911344662174660865189996220883445889952842311632580594411581621338290287325799717327157522469419532219469141252803003466003090248056214866015021987623114636214925023919205929349946034038281379644070297608870153418576594445678589780395767115731373152937953249622286682134721692946161699897161485626428448523511250020805270571044009111513648659235976057514214780487716624673795411002291063793519779960955771282581403476974412666648212934408375106320955671816410482382229054425607288654474530344704403513674896222624883561078592623653997966316232387099082107568056335065308534536451895836298361056552640167790721508582776395175910027024673272177733285994495694237325748878752966377211239506044635262368998040304115040888856056305354075388579553868674527402781398367045103342911195647589753733681024317977260515521854016375908367668471190593702407202924449686666879874733601588968969373117063894876819065441532937045395010080410138353315731315903047437742026639311747186418479639793983106644743390765708323213114266091192503790855645483362004513366779092311746743633872028871904828116441469614416152595787219762335630202820402056299859195463218377454701794976521550897557391517470443200856761446115472967046056991670843060097748441005337276743017135702895527669883081711204142823568784523591645702013345967283424193639163096239260827780950423546352725931517062688548563447825927433713553490903179534834880341048234533870557170713890067575655435165522954687776075831477518421509858430146187923223368414298841133240716673053578928000242662906576071585713624409092359445305766267470043646181272015169412393529934858469143446244861183221185280035434602971612359623737684928122020122424935009951356955142916423272138832628219219574604539674756707303131185837416229121637713765985367985504747708692865586842258622255205624918757510732312107560341305505282024701932517131130267544273234834710655089207377773794704619496102977515093872314472135185715622444832492658535049805687592166837438013303243710588981162483018890433863415811395615562227724350857991333247624394123991573851265431879682937452244056021949044614317753055541881979965844425590813689498767521073319272889207410146119504672444919228130944927605131817017927850307491324655298696416312253996177615128855682301493032213752772249321672343644309308988222609483547073626284597762254318502205490900823121248500809946443426106979205466073063559529638457049979023126997384782538168619765359993012048552302845757477412269617557684053961315093371432490620573068621307844981415109612322063157286017864500357548333256375458320362486818556544667167659272958266113621719755116552551932710388509715488251460383785538593971004848952749735680845726292786368170981412942245375919442713331093096268504873159118940061370595746009638438824918418156367510796290463700829580556327912264809574083237062919629451822429244861033475616840268275458303326263640017520242956162999338515959266733419916634944288380990145668222889276191853137495859158499654904408906994725666204186908695232936338239409027353698485133808124430188001563010181717325708302617461133444327662217159169688113670070584413027537707968983238042532719485354793489892039150643419028961533491763273694774729373475097182759959170000616974592425876504445544872520095553151898889250770599530270856952461038804227554826588774285497481582862218231998652231620724343984502658998669729867217415390822822870059011922628461015939158161247041461140958877163874132706587032690235351322889546963800121662396414116464679009523910022472511707938198567432933990482138673411252625662030025342044060822967858373512203697070957123247097135643998187864074396608142227963086014959179387827774294279364596089240474081070367963238220399016269519191619669477223555300088851104417126056494673002303794159986109024265791183425055084349517693349390962441142282295422530322767714396620444733193782097288724266239167261551855264532947738532322795544374837771906311149640192529003360134518066247871983442231706912355715648803076960417167001442826272258101816842035529700560201151665725940242583173039071713426508777793696122607203902592014838325136555371884069441337155370935469276765432976148950911312719920292409815344814829729326057304808942437329719811372775100218089885125349899289216607639206413708856549836868147843907106638933823813338239461086164269237245900336189982429480123210800618342195225842226759504604760498269129013109617329192487267125974700141954219429601281853394303593816680218244585333454060165895627760622121352115450572193603789258743138006736638318448601132732374760039970746390001013601297172743729932454985254657223503078599689605927006426455457315554000980384856438266927402712088869193721105261253240608108926028807631806186210316673018677564243304243685668746024123192130649851779513140113926140483418123434564961523705363283668482253540259142472490252982143858846729842531524064561799362951360789267030925610989282067303815857440738432886005827185716138843207976080343097715366809270944867969154565717594474676738825647549349963470757671656147766345082769270887008029088819401987646156385822579355057138447209237902085852763056389332734652508858778605777665910715012840021095223951555774063421847538569811356438669032547721574253615897883126609529402661108267791239324289194724933223264078259150193905896436052663321330123372572393072184670144639666131650588058557550141418270604383527321321986050177905517916848096022205542564352644888998908864295868006377702317182084520418130122888554158259746925894435780352817033656157327641753268807940774389363679593224083837984155982221457130886631826637374980322935163995703646458073675337743468585829689376255078789917241652080022955051380661330171913724500684117884215037292809606942621658044843294607613532540734720358555801697283016438292123065304415311434073881717855152290260035033442958503645614188306092330739683969887111706338248664208586225719363823273524127221286524151060632080947832272667530050045630770615716648921948760151358491127782618739301761895568674858093799216006649521174186061392991935871507507143755356207663165999112158306883214767486148183883203833546251299975312013414297926255992509864782345455696470174835104377850860670778057962993578282676600311012292450229573313113691675611743296216079860871785801250772547570470632251135096322426065587470113344307778313206911404138959429151549651395563605684380403488193436861804854131079531556883573485216646772495429836555887685146329705269541400710555450621395598482956008532165723586478666054628493209574659742557042054478721605686286371698352886262355685285642723572488348049476010991626854007398421962363613084263372882406526314367058378698433582686663726805007064437223930625513136084134247041641825810847599381447158795383729229719064910465095550094825990618579224982269118039899734336526138958516592226768354649531875647833727374238233500838885576656228957732353183664964426940354721588217188788300541803271838179414407323210399526399666285608112912939000862591100635475373669174842667734589577243344020642600918142469926625791475522390365467309969199923669660662150688696163458635762424437001846354601795900770950258405369682594751114246644654346416255831111112150939385366638745863252116292858812976327993649728835310080540185516018097802925238451183698851660134271094141418447173170825733030593606574993023146740694831309246780573954814583123581107996537807670885238139372694146989509633401433228450045474949273136943599947886414001544457516775969433917978116472796805970264101892471387713026564860621178730274910135582013859488018172921805693154562966752126467829828443990903995307493621734759899514322123062148358570220044336189831778289618625252323188423240137445907712632121107895447706651138274857956039072450986624532995735006676010675840414807313846765246347910706325002809331477351344401574510691285220122591976711293455604413822004704750989895034327855565492587570260054046239403882222003729355727267459380127172453084330254392570766062641701664732426589981286600766703595351475103507774610109125189470139302752466855778577095720139942643969171351824614018208949077085200018328804554594396631592401351006739486741509174518135805181602382662720641184618227771691009554171283310307573679163249150885255397666403073097630827429257003117127508930728589316127615126850791841323964967022287764266481454126069776474528379913209964154878535256934617997200810623105288600570828882497918687569745236103565189551069292855840795839026247277780856560575794110960327324246615980471575081168634004949498664572152352100456373844498524490562469870537827067185426345556280895372953340821156570231683470824769307209140914828873205091687784891357027531024534527869392320231484834439887985077294711308947546286556575143352050275302902000628783057210397740984484533511710928253186786956226703657656490604583680221894671709840099576554464963151325672169810346507082257793961674771359328739701805259851252164976353154111155847639281367491537560436009328309984377391962192799929050826957490400310288155567955641060898135018290455308534150204318058421751214179452029827062367848716891097736097084768237670015724636255978656611855605296680644347874368625941487824021717415106938672869931775487529244511223910192209986629142831936861658174692418602394256319296255481870458380050691722785250535482231438814195652625281392774138318398615829864375258885576596406553869326628616055315027683181448940638118300232015564129644126722869105979366772039862370737639987705149160741208729901399540007965442923433107997782541738168007435544835078703584859649738024157093883819171439545951072281157620344262325689298554311378981224995696818971919054262935957897640216841078190581289149303377500554876754840722217359359652452642588913536620658470005800090269177372692327605157848540739724397819463919423592159774604381582817135195148065304849440346376577239696041940250295603365257909694617194393021603879893701830429482828787115097769913876009523436750476391966634804422344732661864098668115462736912737866929010145902008642743709083137788175641336892168382654253055181419667673879094649029394226920912532047857552128275510170348867180178168096851426442464845928695422536791046623842701739069943071752544708918287230522128109762084690196371057607105120240327254872895402431515876058576398862851436244114141818537177603674007517116704334151608941474103095694996617163205551290570738165438903284221384335741436510200070634483638428738279718530140160672760158322071821696165811725610737324991092180428991712346035838001852730681835978057926197130369700462639408178449517832500473611369608179367999658598860608504558154194179503009623011848111167640777518697190313500114359718026859658263917449446824845799252169975364357994892892671245239723480268326156181071748012831515754045440166350633209988710228108377527489447629836085467038084902788392955493824733560427151704110517347406826230623526239788784544910320730346136463541612495434800815163123779340798752451568561497712393759585299147423572069747399275702069451859714145806936580071121828709385054011869214215514300799293831820330606594787960043834061838774259089136735317814550774682844830861966913832843433094126271841217145011473520216883647454822100673561614001501331439849013549979133083014129434576791688186240482630552608520508518023825474489911890976884018229801205776655208172672611305299511269320757381817692880044028072163164135260124029881184674704850329229542016377214481176786923146047511838845184431003614969486168119878878019771502033592613564110997778954018669529949838126007074388028835177395516403285321053032571559671296505159975818949364541060058981055500155806814860254829794383690289599389057894329300840515190449297062450407624407530749057126165165292205169175714478418774923535580215871317301555726915745037045492788347313660076871323022025853227450461405964481284723735314425104643501513103766039684161299111984522647912612616679311432829796367111646160590580504003282600030975701298020571528201649333705780530017773193446138589031385484740185945861373697814248501710180890467150736149667278858292835573463680151814558924733664153548346547363487013538905020225149709697633101477352612888616873373581419006673512693803271892899660619158414638651568970488938175871404469374342644615583013709856729941957109902617282230259206045867955104102450809741494798593969235698174488417874644863708332100146720729304241761242693965848567951915551242564019967752773990360355332787897069083260399760759620558358362540363486578750280229157628354141961487162966379179825577141169928234667341901802139079119567863169643170453215635371832181798720791203627488694247855127960352103428147491052640899652163829284172678860093095997479981087308217524745539097523778819196603616650753980038305659691069491187088561496492788940031253368968616568278090836572406237552931496608157746197214828331648272586013274705185830221413342284262051976334737569134792387790607143061339836075898447257343350256530277797824006267376022851076114720233109910568586048546209727497213783235770150089512501995389168023074203167054371292852440646888718087357878463530253529444385015769110929420434823720252817443737857088990875541064043590644122110695332839308297961565707672401631556159121342150241042419718863435045059765197384799226272746918419547785695812082118788940264287564447761171590348804902855296953798948755352526882541341289410491326620628528375991381794057066940842870072417822173373825330771129619847477017708042864802309678691691983300503900995713989939602461589308585502452861348490848278199471427515482711082172242008927465209125504557277785659866841869599404783985773742524850486266694074510446625930594310564535209337727490622047042938528220780743134372329837520913206176404222609302002885479501882467702429238464454575616422743979037829402181806016232534877249713915316197690449999117046776621543468688185009216188877269688528367263309597075737809111691238361957824186397673332105608854515337171316135353849670426456615377356167664990770176691727377207353295754992512202738012471384253870044804636052219723643182923808700835362561266009897373311282883434209345749490513430041005363208978727507304919692918462132594567549232282191551090266023136020479676065918184504411821469225709632417418242048183953256778656015199678313105230268452232861721191212150789197556887603542078075021165357923470423693856243338496696000256357791966298532201264558250782199368184304339151370458612297791936614187911862601766018557922009914173235230278546289442195841185486653802457372614893477735293057350758865466511771045612033016028050901602389228417387984865332610666883095553253848330997986181068681394260619612652675724901275708201408827431304343907044243008145161626542014264341916299572215694768828487508697418700122171066557481264027616213513758964423354251234647367398562587874846939435105394975739084045930948985407280853741476883664834901686565707343802168549453865482824973851240721798388228966760928755777073202699267200113255943927809277893019330072653972483293484157921364283262040471808069037801823260072182889386067970457322824524509590096765558542911864562537914819870946823322545056967835373863429684690535359412314230320437506840338146794952163438904509456344961193429775703101727796794580703784892415784719378823744911150889886171713937965713754186172657991021644102365209855133554289795664448161001357957927540546953853824523241539845167658588591265812279289707999559811913115913491451236286861964768757828583100537092176257210802256189957151142517670491862772132726448388317283007828485867654523257451583398045509857692522767826347398671908097051098717186060554837907110623442625202220207475232534047258774235778722912634263546317525408277520522799594543807694451164571169573619963213302454427726315462699108608112572796108379640491274061952662398240439034584492223436150704643939018119429920914503707404533223207487179187611534752284911703009117425139515172017384642092354977511128847627322252636740381167745853112100821951379538929241386300214285511486029292911994605221435465984348962781061744082522005630557115290767643137090383814449468211034373831279813974290433765734489585166217556994883313903395263938967444198768097532797193763119816549149966051333032599054003364073699520641218903401742965480212402637279887099433025215188448703125746768647303468694031814786569295756997030306498933693561411577615084811986241993246159520161267314393937219326851308801035404202200332464051062776304416467791201815726746092862580082914864735796704454109444859294041971735363220604836877345634617456816324991256513180927583616184960525249572967402628675861526869916544403346844870509664267691480505926797570785520199344079434780001677133579223867218509067918217527126726715677738771894607758117993614187957487670279334379378490175558935030144102991290520272352146990941261202334334636194543656800121356301357019776529527621987874728368208151122812772492923189287071147895898138839287718126295016242879781462595933935691369288797365851315093644096576578629741024207283004151566522078329744599016423573736097380619050333240711497235265651135658097458030034667021278893492331383679113572516929758118238721684755350486815713577683481370706780278154813304808185460897359612126589852870823661975726402795738343976578663200043748178736217284465371867501395143732629711875049434382379338989937084913520472290111797529688385040642750482130371535975049846336033983722589858986893479217584790281973501499644106350255538038888641025221976178326090327737018800382387249163894639539945246764499666215374377653743457077731580717694903244132444146799506866677485795432085562152325591809665538436459477403780337425923996817103112653683836241285843544380513156449340697990545224898778325571133155961024635049947138903374682991106820396668621198077152338232525732790257165912088958758292063826167454036778487995285142325767086318839540371572559222960977523828170773402090057186142300497877495965674462331198998875407711651059202125023885064835202951682458599594884100300951373081838089680275822352980296920139514738990890510242465841359741589041509859051319762478256075652233652415174182640935346102121761465289310898313847465789905989830087370444775193216586240686907553390233432888345416025563762093228322219075578140776503183276457391977875984980224710783790005918608639697812974947234418321864716946922150474925785672786749757722539842878388403387748499748607031366922782397782361188837610934824581132356318252864743635610638638696887541317970190340674972406497304601772454386797904340829042981408718072895379780910101353114685976800492467604042457140219900218036355462246483440635327977695679230752920746910930221950372181508387420582992129833940425782115525811326951998224028598201636637009968581883400878943264458868499360003166210218176796982423594163035301561019418247225260105061733157585749523006549485460751259500299579725451594806848919937850380129751178375564915801674996874171763653259605846591207302101708769272947383057727449599167227062735076203848579923218689420289458366328791483020794049827698320999152558823204197607383213761193465569316976575538893117970537806435246756121294003243980563253137451667394859717287631035543564294508103570533628045105149077143059372224467368460360882716565354363750756734343146960438368229517142284091201197988682231052966374315235482299115114842156930374998619504364680134525870352114191461931806895911139188384026699898491887879235343874847784365333331009473299295660186374463295472808914454100982946892428292920962082937880956712506934456490344683132258006870542385110116024892087494461283667125816717928995683939956379040836353477954561106073470249403793525202553997223266862998162428385272198025231820951925732335163116701495843751673465631904127621504653099092434116722506948329817143916748093286786500062352589654935795194332001406365368970833305514862197224344459155245881466743703703191030202861745256544108587658036961442079182655904572770516094872742060718234987507162573689229117581273174364331113268092692210300428270972465912536990421821004014759198026960926657972625307988338587509939962493132693119402064733928297621296829326122733532450777643489678435091884672529101489702839995897903863493446243546147479329012892943668474767817128415592034055324101109033214388323192800508074978651833982118711284824544689469486500454830067192597277791488400930686027911857198709141276907355674346782285206869608201042547538802807819789030682666346508265572013975074512784297781143764145229979616322417856513554086288115790674619055177866769187649408425911831858223919015545359371189499439438559167481354608779898339322998484637680049954920729410242608373289221001803765051021049433489180932021163509078597854895137799891971696028846906092643339558715444565032540176537993611247372979902781655982959477338690732346414998440014660312006075209919494828048459562784323986745727996984087137769044911645334614909604863487879671750285537288623859123934213750494827700291185316240376353425557562950221403129752706939498635472795563134299811465929944310754654920849612256465813267307584797583172339352042602020805739853284791859826585999650020906064619033178973527106228170605953937787922879630027848806848484904389914257757876870311690794049930513954151308014522026680005347785567968457079802622186949367612887183678905118026173859890108357078864809009179186258924779529408821340367542473769751492305908000805165324112674759501976317126918425172102854763170375598768112152490621632940798103868601635509118134194651602165864346916924099045094805658966254932928116296038984757282302118600201577686791892460525209193134872230844751707119873781345532171972175123748300822777831847970512136021690573501487497739555599921294974108831343732230133338528635777750936424976611896157158539686941015192522308178604432489319079199040007313148885664992027131953473027638914733685009280846575686995810423849660802246063373291471517702592120567857084106045984280959678262123362138491531200840299463635848536409324983408715988148922955361890474993960013469221010265354535376430365644289418283075433953663180171873821826244638876012476259800523535036966539806256760669871001400771892780989831209453406121951539244028990714551845278216259086390686889315915029130547850954916068793648681664812764676204301384571045466691418327803161324468231671095227310176528997743667478212792114797911891119781382486877486008352499600916043677000831481179723013900330536924622916537583734791535070727552893467582780822344998561128419730936960504895386859790581104566654449919983089307798779817374406537644298917425362439306752093933165737452017345392179272786683630802878891810590110751711981461974520527064026190763578959917892418420443581051625889129553905347305127757103888257700664713917721832319521965539924357646423934219367400011342923756472131570357750474882099867866475158860534142136697446012791530781145971763202024836891379941768818462889851283903422321775712313804531094384024025015333533273957364566114376367484049501689761276240058139435155983555415216546961714898601740676493675536715348543367192651026877916042389071018852431917159532039882632446896181986060069988227071793794134144370207167143730801823688279828664427805169561487711681529978468683170154413646475161394178046118866244678763558865118630932203165888481839885721940938278146859829965869742726056778506987566311306467116355946542394003542048321155366720768683602956105673267099521754349990232978169379007213970670527979719760375599143962915429174307939099097917646312606720406245401685292715859483892592017497936446041746994130910943336848438871875358657296193671279280790474954415044671543668657672444646171722119071357232281623109002393193112359718304910189195635096345336263248552875357950532420226619450072265784881053866754184192274257565503137049134838135848558828589657411576409396774823910036235797368943880677593494488779390574827373799978373584010123348278295027102339261354757537480336193705296633560222441723409335583348369696013544698370093897418940916347456070128647606131553058216576328896126837838408185256815368203430024795720278223137584850644540284824977755409295564533231716876975861427865459791373165415310088581487265253572297699552397925728009414598306818462678118332052587861956173658230872077479540975049158226991772308799239850505468886850263781265649108552447950100163812669660874895469081174856255793662637889646774214246663205993729390155955598105095590477748272207961052535895486726680364199000099229133946098907282166974838749103595556357695933696428162691147498833631588096714628188623063900042577687888873941178808346213878810919682112299376096868896965150741331245075532309828129767961227592999994184008906165364293735119132454451363787706381582812305833140060791236814773777780301785340482153007707297823551708664568689099864600711017307922391828536445666862788280966927853614607014474066787325275070157678684890873076294221418307458071256432717951419784150265607135542488070121085262267423406566094385753188204234026560208883675840923449040269253923634400358781184728819056241001955539634354669936790400683760112123342027159473070522280947355185331133698352968737373743169817719951645735297117570998118481269480182373588610866453408829738146812788973643645483942119871811559426507503436951299888839841256587091889575497060646686543168442005786497682449571645016099323856919731864292331738791808705304537551688870392703345620306471955486637063783196245657244496835126565062029229742537227665335387556626260774159972423089807541974864204600851207198918234889424115877162433022190323872746399581456501495029171760535125446184791421143021228338725248255862184746420843680593546274904742536042638781752344824784196552533033336846986301749849521608469878478477293984491290510041776190755658878751758649735410513960185361668454560021340666461884343338691589612918011806996162355863408544154895556919775469459795401946501981553997981618187601002338875640494767704280814397101659348245780874847036820343235250510889324346040239361325397897773607253933486069854925925115423544656995782152651090201656369625965253394204135017924955174383655760299097449913416636464693446723120333984441279119924979157810537428420569620751583499479423164683910954997557635598316238558941340509329573074773185458684711010841002261846559608347315252136753053173335427398203737427981696244466867407223917524915099233771838960493600167294227428742859619716256877338754614436643545168544842524381052551526910661368924893106238560778842210875185393526903913485242109503580459917121259262424509005763321074748774949855787948578991992708506687583308569391769190968762783787500713672561011259980416886068767386247402842102581432960411937218267379005670584044148137746562732596078910694005902617361573731171675266260385553513257291784529376456151246016180247650137227582073647972431627148977415064224282415653939956870191288304977672143809810453818797434734883733255053142617049609509542644184491551194561084176457117275893269470406821659246981541105894120062359516737746876772095577453941864982850246623523074260699142667610315344501643194937705405991996824906350119931997065093435509249521369924654067329547854540182475392788777050447113592413199258812853409996301787281305070833537866009534993557835007981913052796693828854376462426486951967735509462246312001944800332796873603287097483070719677838598733807431367551109936476576076293286796758169208529690462845728248006734050132704002824694663026568438518669986256928434629446395805169005375166429563192761302512590990039867867077856312873447266105150593498929780449034603575749662895921306740430080220633520188750901496712785710648436529907992489420771817058295243185798702481167490238972978076599679532405986854245220304331063482471359690941248269618541170326135377803716804010522942933789380160289992958991689778672359098478753046879876561238507508013968483106946152457463185585147354877452631371045873793667007163824909276683175624036334014023067181009474672753258242693269906635200619308724205301317640474692236771355490479825775583146784419645501942627331288773411310239830263415567972366024987836693416652732846510019544832590657266364908395817571357744637129049223027921065296318600584783047785291763349849525526921954879475913028606139529635585932883567422487229384279213873387997324412106908175136489917246132422734906957430122542662917149068586854898294841901850459849942390157197623432972246669566198219565600473527607402331156303675110122637273754771060058932812672586897847227637815572606624027563890846552352375949502425956888038543039791296325642556895561004039133521405753595546848803444427977610932925306990569731110850337085853034861188674003871945306854964268493281847145220891922520499200984927868653526492842094784481884788120244579187628457557628205124550210525167702733979199162103505691835432018037688115903332712822610878213192977661319398924979304300343096036209745995025160911267379251720421941147013003405926607472620858031712661653681499086843162658049419449170281751959678294850025967782714347955097886189030078551054575481102959049805880262776189442175023309655844016256792702563726009821022155963514141801294770762524838883256906315040394416401369856133785411080536260668088635493610502739748127434335779913342718730317078465703918640511758300789911968191921581747496547539296838870394269192288113139698252217657977622156407270146422621477839955426920383536518787252874228994717831163490202402884107486604617899346035655684369009917530081251592085759526133550983340807239696416632737349560464726949828087279351351063380988219884889667827733225837220774079282901298589025102821326155797545887235783498438450791960564363721653034834594690413295678503674113956745889659825091810704428913752047707000571145682898528868924883722025812814363971980270545147854137490008385669594555363347468147142338248876188447082333464569323461243257905835349773028861802105368416280662748127883731778753399489957330010714079621522324114645697673022777599447162468326281107288734830991903459651793821362513039047166030687809314276601666535366304654225786890131162468100614526631956469809269863713739706531404704198078356898093870648648064248124397606928045402282909654821437504443522113861283094505412393922955656870355100866863712211453799131139130426475752134750389624617237790107436281737208132414706654402616271452352854946678248041534195395440777504500835721230796174619270672149384118112119703991526257703552422799943271745372167635752873119455725462419650257772922952919266101247488770874169160962555826936706686277354919067652480126536824211220509135648375318709100492735175719906624450750437439358457756442603672855851173013082000848164539028930469638322955980955214294799290117951939486058250322986579831885259055358320644265124057428678510150972381621003061919119735682258936677852090097207816992649859025804561456482150667376000252025175266462478481989951509887236316766259389524181016763543284268268261398927623044669405041958394547457180230752943616991375114870692121494403114070486918740590145462516452735233361626627053329548178425239262623803806050363018029133910652344183514897768438140736749015641995899560271500712898525913001886462142176303863626082966102280881385503912338007994860049120221076827018256707965805991591075956377858090190266588706026980210692497978899428816365377028839290854349951143066069917652571835402929484179975851165401217121472943636923830687810977859290508525570832990896017297391114489899407376357745384495987202956166538416918680285968124820079574129077259449545220192722139436567264742117842447959720613325525721781720014577307209612426215965354210865987627250579085645516959836111864477028579492181396761205308440660596994141356124577916935503061667050391312159631943508344045006039484840480276633843567488196654373065804118949636570931308966166135991025575049023167360931139885148212927043694386251071878038724935645754016385264965279499892959948671847459235473283472269057063486437096476854046836972740483843742731287192282842531031132774991518752101102674999058766081921701092535248601674923223232089679177260632491726033954249314818169782816499920768817501169045200797182252829581469134361434492676836588121116592326675957560170212561574492356195500865268728666029510195329058513813131468133626358706195142657515503113760548154926860570921227791918354318340762391163761553057128259828709390176725203656418244171821205934075970551545697357163035912524476830134795343745745063302225132892035806399901811306786245767042600232449685222306957993293024156431351464787816453223059259192543552856906854503833736090929478332187430625527431974671394052168581083094746851621017299604679186232698688067420209435897158058460443114350513617272235988462003371140965569181493167679306195886082581871992263416312624176924691092321806288889931076468193764727259441830342636965943787137074200117717819406542446017300382588852530447339858693161427519272324913368522341395735444866080487510560958054717980051275714339721147442020821804827154061324972572202086657257638540065559351747348837928744795862221599687801773261569275614977298564736729200828989745639778673003449884524045168872780252317609805280360103868202713755507212089617097903555313280256241351315237315342637947606364333063800324054056706964347634780642567101804099131502305900833615335068516917643983061210268910720868712471057250253265245377674967154095850471767240686418067886907601065063102135327214175685927859133724274914806160548977539223100289466226296185858448832568571274059808096704192852349500812801253918039609538735193714606301512393101047461514575539512614310452038414333704936790780668414085709925846484775490817174232983837332639145900817011688921523868881073343403772485119898745213933162335831949974849649587367535921487981497137861959645556234064206452551389725597645058392112603974379362038474392777419120227053144537241844148096904084653625426767723058531010946815417398664504810824199917117956885351650393682760799962345951046151949494441568226097068697071423286246167507436845458493404135788707710014266317582286884785141422131919489424883358938135728041191554205381202612068328449625603361605210005934896498488339435782511631749496219870558544271480737001211212207322477687708211573742253912279163352277420997702242557763780315210721251100546820908968003723370395868364318606920916365838294533462007347215252824996672393535049633204238919886670271358905346460768831627790989037814079258936067862731619319629220861977688788665785940118765200211077615579529826883788477635678051871693260324633791661527629968971758896831123656333091304702537435500342011003090325501099074110220009667362643183896847442845321536428549520080524199076607636951399684410624096031671684414644619929131168392747653697715136666530521023954302757695729766740261746414043281759408540530795251736517116624831253076832190643408961638590916507796817231605756853261775043549675921980206479804675926551013252571769104654201260826099501318160397560977663718496016189631223270295343831688133392295950526551802409698074182308420974736881798577248157781461770502254809580158579849810740486590097026808139565805372480180899048016587450300395780597254579417818592814093892093908081910875706707213083367901697501926986831511400181998636471798325553934288654584246695857797037365444167744102411291360426181105904873397534568594356567083322265110381409427466793488767477763878846684596752514432155841612003115286350368565896637616123517524352169012744672605504439019103384753210828449534444696815899851834142971959530724644549441046254104003051287683626512715283522277429217339706267751513489973861942910772563361280050420894075092516869313427080426430467509899539712832117197472389586619670403899790644022599207484581905823895172451651488293587923235893231560260722130627500806797488209516685633407122014140667761721079403272792716314504230462310334954177996354843282449491165986998135299264038614663733134259353992934853552473327253371852423570730183814999448964056906389946710581943018314495200993443719772829987083585505753450769890340147796517759520287375554828857698684782546599828449814180437547168407803040103193825964349772433139184244614751678701481204011317865924256164420938829012395298176379838858764840371771584493664277548478273638057579500587355074945553354302331661196349013322877365396184487275333562318221852724006628048452746332191388297770398287369699557612776334711625173281705415335002985764319104050449856108680692324065857605961982885402275416504170773425721325905038397620388448128661877467810358535112227882038395973362069855692509282700602613976744820540564881782980350586210552074704218847769064342229416095443815109700266682338997950860915889875185023433121213799934160953022836325954226687646710858328192677478825015155490912724768224009347324324793549665082334040178134095479752374715086568889791806917322626235028914338856528510486296496925866223602180916485023929864338486275535885699899823216700304065077298954926591007680256207792007027370222047373217353689306365489793980085362532346171263916753601360878489457573596695474263835567840696590202206978947816135352803100505503018280733372568650732983237026837992647253055235481105163867002261961447116047773140996803239664776947596526496069161871895829004836568504694297758962941290391586332829958278167742002675350650767672811376670243824270529127557202617194256889641356131322044248703507048890118763715453937688292556148405056944706312715325439112266637300916285019974493236673089361233769177438696847665284400238372787581354472523818783865072591337488930217092564930510651709834635086971148136575552154735312796214138622740176469888732343292108226855950711153182735983276394198152006163734255613776506402446623846102396500425421729588088975356819898394917964922545304462148503505869177240647824133882872235973723054328089431426396031204110635859749942694810708230381517023964432379629639996771099733625145579715012023655373343075460708452161800559056745509364463892573252114146757564813202184382942338517561373310915855932126498831414091437471545912263073639146783290093003244505855731324869844261563783617689003311980016659729460371382067275532098379507037657247458808048459578281411671724801870919680786699994375164717491230425633988144176766826935588094564263085148994172940085032438810557073527360818374217603781531437237598072806155508921575205915841270421037022425480645970993511618362151815900746894540639746180338686522399688805660521468773410714471583532657691462578526117663042623954579010176003211487673999728767543249197445109554135901959380928262104922728945132791298574314950151687766311893468595260031108787483662416418805623013314458138976595671197632665864815528913247453578762433842528708866693493519335168225692876220350035691855533378507401037456977137947560271082884462633866882458281131876366030825578461048346007112608582842829276771109788616103978777287792044120143468659250787200471484969539108529739988287257978007462838040611873892234567239210809559363826196145870804362860128704529456674691974154094040451296386398715623139505696458449450344156223360351073307370440104007244916655812639368955366952630134409344232516056573334955616651862340344487724588503797260380552657571250424200115954964548670255701415170529455772936624513733211953676444218606015467112527682396458883767969305476808094990159755265171434700695638955091365902665131544880195909320162956149269322022181408956629767005932317611143184054062230943915992276624362601152622486959999872340330964923873633030327913381640014903403885306913848347045868783752188163700932932196257308094051444545463352143271746034409481495322505851537281967607005345117699018283056837092576732624829122471299378209954689458969155297062067917655789234633012992438543816147719860192652582059112420985254683724704913941505105317876549906652435769085488412348294257983088825144952595399968139219064326298115355046466967201937758394369190339614523773011925643691733573438234647145810184671571889733686305900832231294214441157461652602989072927095449205516594367579690843967797415617311511328385276792382473878265640299151072923015568166120002756784075961151326534734593231808143267878748961807472654320695631771818158201547374843789740644664228604695117622104469663449633287500359754711067669678215459647704894653575480677256877034771720590865502684292726893815608903688176686040635161515773720048113841643453273284665875654285152358524009050666077599109182166454892552972487613009325232060185828583074388941246456113647834713775779336528225988120566484278400733892360279998580519647306593604753598974953915519448080692930355160284920816647855076479740332451819727816812080603344972251380698841749174505781526354058297339666304417653728213602497818093478042919083451863425620565867104360746646433906586959744056319684135705782706847463280176042658702305216119957123160403434884542739903626699549573938708408671486392646039543700189563321811987124172443018552772646308300892522675402939594525178813733403922224317614216820234322879000636056160898795459414393950359086444662310432294752468478767289346681303357646261950056442125826553194708915003387514860704256965715306242849184251160740335354831230102729304230530437174987679117321344034598605249863841223200463134274704740590735147406098543045595409251044616337958956912809309582366233787138062932482217915210609992684131024332610527912065637955879038204420110179115780200779346509920867821375815623159275629727164135784513594318790448566344829016688103391931016269254714610502614262688779085008546391082338753442986003052041742080493415073261620134605585252892829167280430441978317688050411663246967411140974624974609952931332780101395030206106961545956586638769409236793194439529961452232238412655443508922595284844734947239821345981204184287178705072414315067562769753776115007753855537963761014771941743267225045156017608683265115371282824962614581796276181871990651629238266124524802835052872460234936487487191421475286892964684033454728338306949834285196418229883484679398318172844887928947460838051548520478573932830507616618881692832743613521875538505744754931232827744713661492828848187730297000775293223976802696881144254014866493285346470976901327894867096923395955804484196678792159411178415971698043549249127377434131724895406015498425003832940942910302773558586644357267094553015821195992933600243549917548144589246546424705157793694630415443800686451846669484356171393352204384693398644439645219015914992323762412499761884578172065148867661027777352837139380633698679338165182215462444793716169952845370566135455875545706603763970580203510110177951193739492344150858349805734456223091917527803913553721210086134853815798806815426819231196871230791888379888562329403678758150224110667584787607171822780925030390660808663273109368911423515443291324843029140010856270534202386870759658219198510524759484196277303221822133110468820516582483042156871117424927457047856011608660517981949157169608091307677178919133415952861005695592513722482463408441731997451483251419463379380654023962850835859170790392275524868155238756168209166727892328025518593268042954496834160996919019916410774514945810724490778308321514711419105059710523448795142195502105466347524265325501681822576207404998829903042570462367276170149217449957943866408442698845876515381119976606746521879516113022514990036651666265633918140687342099311386224783082910880634747768090014050518101684787032917557080332180400956075894232181911170936260233142236456292962041914591067437474829752938827972579061414518445270826312832323718006483478759652407282152833752669178883712504761381575906226122563467487151924681803027974168926208095857853236871828441489330869080862609808602797025597988408376641642102281177711282576976818095329120087823529786451698570245835359034934756185224884371029523368533192001433295819096708263274549763274410215616645267371111067564776247903494683978937099371587406295849557126818899028924911047864608495047757391160798909346839132115067246592429937630918107466757036222516227198348566234931722031027939527732373674537406208200319279266322463570320473960872313489129657574650772361775117601476857065406638339071689396052571208092449633782906360078330311095329778027101886203748232574558785414521013031071875174956343269482328883732111885646865994494163869991397965880473233365700964386434575961673531018850239816715468655430436009250567973052241897224325018390443763716932624691938238596923538012938907275814191307987755916245667492121937517650518154378343432071302581922490720656663179033205881926401360755801011716089800003973776448229851181703477907647753053219155511316253659404167933312632071250994419561958470380793947300459690865556320283847938732238763807748668717565570063907798821392156091837079198164144078619016330997798989184934847727093538685211785098297649488665810065960857543668716299950352609556800242963580923144199770677395218470262763589894040189752272022315101312359117029009257567891284215158801560116391430089940960991427813888110585398536901784421406262251058042345778484293851585267306047470097136864272176576047507177210291287940733542244698868118760526185909241673972570891350052840545601468366023979260875479831051847807070251801922526956393472230296827761365130066146187507976532246255195708914094031531166803474421272494947206416578954802590007472835458216536160360786660417043844915065133889573127114208541260448755224084657064090170644326002593844501437726642156655254790411055274734703474376136034802010453599298283923075355836390710398659464531012408913163678560150112130455806295712400764587639119922154682245422990506154508440677817178433872620731687679060518635699058316102842445037254349717391315858418887658290179263436064323264425467574893275611478038105164197384406557950599020711866872562108812801175075670670464708933131250757107813578358487746948509696680588178312218575712988469507396758172986248578701274491163003763692981526439323090920688676651202790064787734427081702352570754334248769921924450532071529333957962860682329868493207770672831381993857690544143006414167335028345167693025465076553140078668642441363273662629614123574767751839040716217290962268747005369577207733268424180887447608179182803843999973383616627856770281302992829130126179890169889319227328378936882348558803638604467208902577487090228840387053910960798171134448141509951567727302249679916750932134620650996314383196418098806210750151258698211474223982243966294041789847656855246585308761247051575484953154020080542269424603765271500024200960745144280593218613175178514741836376817385601066723986554312712862345366129695319606782397885735247356873013813858284177191247901727019751301013071476271302146214094936766540194638630473887824638091234730959428501245463490020147754607716461243219340427684756178778997610000138103569152199983657497401317373564099463270298177471641039656828743197008172037016497292207729790573634478211721271064049447357245702150530873085337184509119351891599426055189565119418918859160370835594525875043401767445908622686535144924097382023627570958741364840591521155360065832831475968726149352185780626265562211564356915984924763423643671287321714487536472721196245769962184332415478852873564943284856310435839211039442773137557182558420181682307162519881711044709738159262723197941699649179753528069060275103113224005770288336227230484891708249822151529101143820509708560615414467756480910255714612592346826377460712409835228605123399166335799595295094368522605265783946707290104146630856857535093493958886755841599624890254553869558764513479905888158657574999249821218148683735395898281564234807608561569397782012172726980374688389888563696613362897624376600096870492765675381275413653035968073134053982417455857891815629911577908018094311756933199098188599716140597223178477430100428604364323558195525559035419863009706790778615726940141609148883079835062956513903570999107677110583146090139267942358457447344139752264625710678409101173431471019052659787723679655703014005393537391035825231197047322229252155675649954062071605156534201545312681993917219742237517726245673165764725432990842776821260611591156247442372903648127652281018486894816324303031805634895195040282347716571296893720282527533944275863934775611845680725149652432208916444717825481892692218478230095588909302901410295558112202130498419120294127409196708451741227907535479022185857159949983767718672002522426638873459770264176424482186747832755206997659035255074522757523194276997981780245256051071492263685176823523059219197861678854595397266741914708039288430698817793493378725779212572671704945509657576051272033696098261699118592917101143688893793609738937623413104712861358507547369959312126452388256627784763318428980485285005803327131053090804819493562565385634188088094160057941020803364567896608490755942415251774182330913763672568172769957580781691985660227739825708812813380448957674971589641165182977294960653841172153168184429677023554541178186817822142195897957142309552633949341968227724970015239412343321156691859146504060145223812557900145304883357425837282453406264529697295445794096863887756037464219536575964100480070971682010777166953167802351380481026247247006282175940434250463531425613139421676314979184600646769396827268576061932960037788965585925650051830660829232155573367869299034135771674559640159303628035401276357851592661843003660636367527737604331254552312852953586775187713963164231891014266467318292854530398324191451265207714282251034557280065453442359287569293871716389326305644163597584451303340591208727633934231894429944473849384203506882789869158104788038034540352845985958663276846537381707466365083996460654995012437301259251652899575541549777296847941439792497342480727214477565740998852803115798621492355096878044858409490254321255519163778839508922896620137119628004263424649798180862384938967518755232183899403435633633989031783878424046555976802181585891005854910192489009021742889327304831747555702013970337169923829661123162423448423757620651949318889290513295867005987219509867182623314500949156975929782985324912873646200446216342369445992811740897889212060738196511722958125881148317347112567723990082618680102841773642401209961992363364635704881771669237625579181675134981913875703932297584636442516175219811132150112551481408682136954943457316256067480532885022255819575017700002726719607918794345606372064173058564031063647312826488806385123454840197168193835165066109665724510988107092892275951744682998562579398712297670936664873831561425526228355344890053995582131403851884681063069716539160297758023117329086913848330262025014049992521846211524346061479039366547013202712339938482139714537535610830722973461539211918315786496735302026896004315779738533978106296309992070714671387322491220556713024686471957185336002507535075900756207693476806281823044585686557698491864347384179634276157179515532947915361195141314388330724471112685215093341999488123983759325824410552523210231561089951355718155389791044029801347625885453598592058309525973602260447444383664567069347790452116970956820145244989724378952202943963420622389447524721454641445883399944722012132131408086572097316915110704052000596127953834610287886679590066453453218933771354151642103353842062651904435383119399508628735381731570456058042704187243402545118599976456397109169114972860564993322444647219867145295981600338561460964956520724961216440420007452930852392222872306980040055856263705796664416366765943664321996705416347872839221110016260884688093029377682834761820511836386659946496122315642575396014072669703036359545299990948531637070621242365287941877654278643645853417861879460957518650586232209006483093103047910190245691770576876664679821480540402879466712310998141773337096085707932347037885159878960966793857351375199516299607860654244429930664961095751840965451289604901333572196371213667631887238277429488115109696569169777967542373057144795861703909974948913735200498116940870314354179131336648337369643074051198452728818116183648877830130764382040786381621673321152076466618730292116166497752771043257943350285219189228662617127224676309968227843418640280435754946481838659588920959984539938989630900739422672665500184065789583827129104919035045811124679191965916856871445270502040019916610742407271706319404977689599222685301690760673930539297773752934269081268101063048115672989818854896420249829856849446341757515704262058244400370893631933657159562136745206136907256460458046171898659404884454726153868730700607382422071227137532022501659166938200606737342074476324626035368467685179230831604382964763397051934483384877441030775724007087919258770428578844283532933429276417591326442349359606333365329041054042192223706799943477162079962234280696618707039628032218560133344131795422003736848415166552684270014792277920925425614782309884608244978989627487893315797836368511617915501453725894928466262927194740756772531583806038673718013246490408785668184272481071368513671148658231185861686228243676435649881866351832180092790503562726957705183747180922489745504276480589447138483831061573732431171615364642203439547966385480847361123131348421905837939324896349063158749424740800128281730892356230265302253374100883733701314366161838466650786809596262958104536591453291067835205875114712781229196319454680218096677869426112796043044362576238757475280602356422458811728357627958742201716251569168539581855509709530711653219121487741144485329786223497883691581073245567472588872903859730349692704202640118969853170076256912615634086293065136409992399086669896324703096061596116694935484153747913573815921115542084796232423409454605580267730114869368826677413864631459922338973380161016410416258330447576639479403132074347167911469134390854265229371219819898928729153531806197356910893485748284893255614027666059239320462912953556168942922290172429047180316306285025624794485597886809813225104064559067797628700275050333177430235322814145185779356717050367105985775846732605788753267429339591387226940450858267067595416217983165845066813411057626479302550540598999365481455416536896150464637224148408266059579566849542557739355052976482768933083719898301009241104719813524255039052496673716872019401354503597482152768046521282145392700619801392748829143947420194571187973794807699581800038263414992212641846755308156678270460713051822576248904137587559433243534175460320366206073196093389166628677185845863062197921265842472416964897341559371522878205073544109517702863454226905373396647091353821673933850250339106365057784333102135778895235354906864080253965685070525512352833254295072573400581364693201368079774845712164219395883772043622985103789040699148770055911634212034757544593921171701639194671758953495355484119284278477377316159025325468513908773471558675965997716039241595339824112205840149484703124757865807551847597331902275803719946696269403537932295456732276692006586429147786503427870068300329103336725725643785891895718427773339239263392720579541609390629579611379804026851483126553460986995531060957214095793118125201079942284677177327627173201951175195125459940302465651297646602502445926508110284556201563518182409234864569579276471317515619937631324089445420309356281193555848656178039797491794956350139517936133471344123818155685872265114800466023463044544597762191190589691037545531733616331330906465258319902462412592153387485721275518893585420624846830824774328214648015948658476549747907160479872877500612628937207378899013864689416724899076735642198823745523247242091830529681181853030771447465583779523992502743397837522683148527370014580953756751628482308169044632281859414841310774357397937352284424600029289470523934990492087255501322423592644145361811690000621615217272130183368044014833009338902854180866703897431040683651068266012824514821506388055936245370259017911650113568074616278148915047909568096379909428387823065830192071270575184693612072112396776639708015409325756080661312896049621202992415617828303989576249966299216134818687593457198536700939649045400058152410737735230638911204686027071648449479529567101911863282989549197365640526607779425133707748186452264863504400442262886193282979352342389775064217120297881094428851806377620895649850470398067646042353607971625511836600230934677457531679573926723892660619402518492249845607846348454249969290362283919754621307762331661433870313140400837617362157483006802091420349618642044082448197801748318514186529891698964098491876908074880011996730716789359906620749412815750844376717822510556645781567142086463701884831628401622541799528553733476424235698143399350402995978049944354622126980379746115444907881481545407376154537643021690723686387931917641086380165064658583769763754294342694727332072241998985229119220254799687466578140186331725016833087995778762734824715402700201428658981746359178194959293204085027481375859625793063390876557487276578178408427455225140361080914157993413822267246957655353190183773171503087600168865077487691559088101497674923317936576648340125978220250275260694827226878197833598854840397193551144571641626765247947870477706216645391565323127433601587140049005788324626822821493602912701817770385534997602307231230755992181894508157934693576205077862403239827396644617478610499711522779567064243498701419405272217262843286822184075146470400325814984985109570037671268607419017720764610930913379675190823488975424751393844524581739253693919664164606058816425440990592977864443306104993626371436865633040125212780808836122876317040605615095829350176456495783561263026969399360538407361729564541130849412252784851503392579862997587295495950535029299255543434854959577111921814125177874792193651933111375569329771507676117144725158123328135330013573859758431302053507156990508462687450081259703794391093966715889211193282889175132082261834833261920550093157893794644664638954713902903636541138605828651272013356497276384305725634374605707301634469010365564901758846964653312713202431576767449093937756384658202679211538515631565943985939416355173017764012517712217935895123572488351217251277865252972030937682774165040235562852978361589213204330392205581005107127326653997246370593908478814249129495840926509211594335043358614533793856948748770182384489272768789112030453474171744087131226736187681302282777288618446109687150416448226180859423794989252282316314885532516421707093916931530630191211368032754820641660642033715960805804872222916113580018372857879614074947144577313463855945720178760935701145550610668346641314804148349240096188435248624472033453763822524321326908038039329190462328074463309386420199618100377971806838654241193430987189249806077632846938421367853523189205672672615541130292182927462497704390626973607153498482500713213364074117359247820165295572634268242498735161847201093915570175018679980360896909880050319020094156375713120414272588998711670394214032220531149774106815256075001542796906017362065471393404647134263560112630090711518588350328975377675705633005519242963029670469363802328645195185167840468901004053978554794851374094553583386382201407207002598871261805444811298692574566645941384983703195705653267297366755583690343705527774218415798682370792734307529963131842306674455602429697616196948466268067330039512079346018301662225393492030123261486623255622304795491920774750063763180614212503452379219238032248258144732325976401277197389174478271445389880975325651597475156266017347511743714978490818092232978306193946216632586381902325360972262838564564339595231096081149230583925464957948454247723271675737373516538054318239717164316248210174135433294516595067137057695724350978522971375936923944392633928899915633305928113271284297514267511573251559188581049495455645485036096754555945592477292938574889496073853563210165052055394734018873468547063626101264246387171037084040176107222572001104740414283636347617422751697380075474531699094344413887148857712683123511673158486099788748691704414724721640778913631139221955647404671567959624955225630851634888303085619625217647492280921368705612640687070210704981268346858674977216240756348908918660679229447487491324307275006536344302133432950367346574576586602026849829424255542174295030919639984378600542454501610595752669088265964920440123245727528508240923909469752858437561124925333899936306975801348471420966834548843585166147874162926805394925947057116466078141228268692523968423502407146604675137973037380123885007690954453413867400025461923425289818614464184600064686617550584661675709038418721992297550864883317386135042977101190321059945164827384469330622217784754009619932370712478402971287581249436010213193482213148155634329704606486849369794696766130657279827473839338597871561335145004443163070257205895480193659448649520608497162986591263340873630106399194929348649587936025852816218843213019818537039456835462003375263288114474336841460923296790720728650480398342144511260206402035661880890779785294237977409524022982515240138066789683198743138748758532986423147382321434425675809254200476918988429280254758303080256552981768337959434709144647532819235332375367324663362089219837606700027512461552288480781665974587836497804045685219913957101470395430559263117675005808393841243971981301007593339817980188509146495947106266507259381162080458680675407498967028503054221286402774122395232971310875207720496780832494569031663013653282351138027396950642343760116125987289485446759391450174435953963858846694799780870155233165527955001353345842380495294473773793535733059234867499904399826505111311932632825853232096413997106426461376674939016534151349949207510178013331946210768023077969339463149261103138501407634976988175037393276515312688248706517616112190984029469154160321166639217338424936959851756550778073988542445281784708333002882778239590780656535835559090836956060001341243949910211128007509000942867547256000277513081416130849862106473086178316821886390592785543588362826535034702959899108439155568085278344371762351959490394959846370191745432835946902462375458207653394493689180965487255295525633642371837588940016068276451122227013096579525743489012775593509786492082369277346113324835632652566777216456812802523061706824393632659272701118877543536184594778998850251584428153766435987618627588707728397117070201682860496591883143768950892088966820886224334882447037701253051374268505136853541530990154558111135751233468446602484344389270492077538888407369962649561742805789550074502750769159180258047046335104773936255625424644431138397947906008681647871645896631625048609789431612989195524690093543959311454221579489641694032341175140093159372401767895608567245160539818601012447441264940559898361660253769471884199364740213937764475612878918004160952821886646509499380627310088273779818093386186014942730564482574184459880952878774918432573031712744453637505040340122383672744065239190730061386021723181830306610564727361760062963925224475239516084649439586882167190630743486913597929713959528287269321716930899819167472794542442361353114070232078047258644785997131241116663320584600401209549659156019796147243907051646690384651581365040178196820786731177571767378124988134560732122608949093146563467607850507780238661028471399561890900788429750350383303770911616506607778848399713454569714715325464139288009487465024441802936368271620275598243535084547970130068696464124910282503128686736564998405053912705568488618613967678963589065436928924490201323166150119506156456349923275450850107948945806924462023037907539589042409482450298993939563886674134060878660306721846368842754175218575704814778186520153082072760889708597536022535226871290872445487454748085388359527878016853379943299497851510949503523351819202749013276692256195394565693930964474729172492899598328009643577388716700270796742564978126989896485110575817549726341037340282942578306160123809538602264767863410264188419976938481629056136171763853368277606053367253545753829402757027424445977190350700408770213936704928261602093483569672986839276822032118156889829025415830636037800760275595856388056916623790753901847172764649733176938850435990734529335534607221718172002931056613882606453928665064935224405667712618291194956463360070178235897174483104333926643001212407262323211099754625599166768284416910806457526608217470976928844756041651881461984764393809898167745380852082001389463038823583022251183652760726469012101281099930221143736276059810713622605453184566360240030866654043719525754582761628408263225671145323415487052724912749023356601361661160991317148379665392694861270434916112514834200516589987047865265269938930075067033674783769521278682158557620847658016316972269018183045364389791834282934189651372651164754443213221980882028759591716985422943086798167327285833374277657483922487344310094785404585143113456996739127603005541955134612872725225491439779614606367653128435955343348121227575977712398324598499889286402078265905739503261981294264040052854864808484959724527225371690287774570481840354820231397421566101084433621059799459290521004817666678869467955961927656189789209814220964421338027633547849979652337911449170765637858718975792153420288918802765675044885958733521223565482472087684944922236416939444291795900942822003435944776365564029125929549952964003948616517348183687984738973802008864524305067110987817467576442935234763690207258413376649487161954848710033114461393846781494215951282587341933901459039129739222602829789946015775560508976682038570970240380414510978679314936110164547033924917964585372726325256190099274463900485929787078935229090305691055371243685982150843985601817462775545599456950323799203411572500301466476901802130972407072694580569379972355989692309025927575629069465488454288147179858324448838469358626210797598891262843567603543893500945231641184244385311756417895895959642994479213339179989938459770633479729131872996883999628843251906007428046665886718599427138507769487186619530990884581065983620832811184512682136080757843549179171278358876959126446657700552447378767709460171763499433602631966678653573598517354029348058655339440318772121066759556913625518425781578713365096829299433742393793752980163603706390503111417021558748104450948252769188379201402999527528641838531108574145369261151140706148066866246665703371529452545929436310502994655938266188390351136026821655070769345367372029029759380185295603848264865328269814129540667839539489405215786106163060650030121298486474502474574582722705253538426354117922690751851991338241997625128089956948225676447941555931572353871625354181728179032317206554582402209207916684131366906455605280139247224151699264672894090683316335279921336112144352612902875382540016816679454954176255258350484251302030967546819871200001606807207737144353176563995723202048742942484958134222306852947853071968477262286599008045092610447232056747903217816170740383378564200118749868123856438334234018957612725333760500500262441811272351005061304550275087532349752249530799524845520489301545859663927702372139094681347130868776679650294464172431124439613684968285148360726703478327069923584159501409275617228264937470105646146021036766328626506442079596232780661042336198049354920344733838837555303473682105738023281102459524564074468634140245165096733071437139175123313077991223452803254836160311187497832064702664844302360237283800666206481412933479885368256573612865588786517860257127724446985025243743190220917449329077063357333572443373357203216179692377005625300429807270448479793494318758661326828372683728724457779428331736693866315469494342477404454275663396845220752534906649032456275642784081113207522535105463861019120629395649674523758579534826867487627164359703532910242506599017140147739644790182247826709548671384971167751708457940143796226579922732595856180877746769292978377314434155451252404131714728279355485327255789003882135509153605927426370291552483110188790792157781347392136407241403451461957889383068296249262706543574083546896799652915010827424126453519243637614235841186400237135366131301081219587928848412764837292279831014623315247160380597591902675586495383056364749838215795705372841433939286650337478333068277490934045137019396752583452099448538106325833821116226841220514280646303709410546094149502060508569729190585898876734599562767723522055111997576042165251597709217540676738460614986474305799729342972524903488666536561366714538904147494882509885014539334313523793557383561555738026868625739507323518328989337816101379032708863910325944176416182308649839228450520535861763603201364837212285993819995785459776044653584060772647692535737002196663230185915058524837307401439957674278714740956738650617656151460257341369950098965424852321956696275864519623525077946933112881948440644988724765793281452640503753679075895248111462610906917762819183764115048095850369358919296221173200550367821034548264650062798362850974290247876669724466322530388338225844419882097803669767739689699082675458213757205414136225028085428612056155580726932776888602564834007673435893205003452831740965574867886181207162008990894017499474740335869400518795305441029638031288341924519770042721616417474998808295357581899905207199243410567114104199003780650202091278462133377022947476867829059347874833863544069303347757103690545135709704581058312278308460035584587740106802246967532607080572132517228021231970189119600891152354745932763012920899064190862696523148613849146876800219435400578300359820655225532268673413797956626672344060863646875990673972761144508062139997354537718201747806250522712250568919144509345949075451727108120330041820442388178726902079917238901994947418440303954891968436457592975475157759840710670782368151545438254518518592733874081412250904166799629451374023790447932273280193548818851142092849746441723585297337161454018855207171800447263427350563792302276144490014482092596044176827150213644491002927011106631472164094135777422212646917859863676466988633636662169715518765723900808265048936742689570738717957161240041313550803976597294155619913452725312254655634532998942994882839195321632366001354896115985430545417452976191133227159637805038658080375959757632403361112673309012477123467677758744351840907667437627830271009122627107805278936316305922724626004553544050912819284489267522387934398407697696894075434629500521703046861859795620278270473677666951787814709174955527781565211908644489974370402421512321826682036434783032230668155317215949154675654272937385020922977499395895018915135952088543970771621589597185123901136898653006143676523718575731861618897680456794431643733284319447273004404888024427641946061049407761706862529079068208691364340808246081436397836593337864128839719161261316773915742214771486639804206138829981893264637824119005506406304645426186411170894894184660495559441321001701257571916032514906895816955258409645421723280848620831761883312665979124007903911896795860573362053971608737706321254312782901327915799171266014707356765502308286003276110725943273064667641592636255859141653577870091725250787332369739183063626059019616620945916000908008972385928737325521913582536821144175715932683895570760546213045459911572981753255666490979250368907922392919015295447385835047617596023985979099250579518202960298174840346831725256296101122973894699327562173736221560113167789620074259971949874283662834040154768790711597059580193572493337932090732242744261899954769526072546609689693386588057876387161210511049541800218587704876579908983429840861234073333929604556362693270998163708760920989675966265169206537976905553795526141191718371109693637267062440241095269382078486687440874844539120684414521523165230123013360394469687849387649624784892187428279535913727976799450061961093323667643363009666208722017189874563861166277500638057566900520318483059648131833611517664294829977348718039231841768109394129150620167820163121469344400043745916690493803997796576730494403507844524726360249986959330581285392236360867928552265453931065321197399447023835001674472792621139809914681543387875801923986116545857548629939437994845557412886167882211216892776539168585961414154396137779186718500663440485228655499231825920464054388124096524885342625854166971953075650979021138791818736460097225698818136441803265714414568007301241886240567152960949994494442234674297063380306099374283445607598147350505271128408553217280921530226361076439194172271913054109815127116927419204040752047782100582293210806316080439002097010963571386119091325890422411511506843767708656774441017426358361643413354129375684518281125933854294370853438673331555421407218825817222100690862783367561803042362147561922854113418458857257819972588133348086297662594127475142862178762830255851677664228390202766012037721882544761155113631760822486864786765157071187311684861749078734145540281225978634505248487048074206788309033266069456492180293976773554638309426908395748342124954863476011432160734386898918440386544952337023316776619643469968833572381044351191187030174775573397588790963245075346751384088127651224623528194863607491064436938081728624080754370550453297670913698282590770671397270042543121374586989121345351850415849564998063812970551838736362534336443743790076723764979776518732798658288789876153162585484158957427469613971882939325944472487370642778283169477699199737560642106766886786948552657556245616983974846346743179630030007380841860195929629480962661021692934198170599623862860944602690226680691429056538783392569398294185790838453060799587919424676924047838576119937057734548576235721657410562106306975347705647884771196373089343716743874454458918601239393933301539224621272230751964098250554357338935853177000458886774938345185148414005448729573414600095314499831917262262198339374750215217320603495595358621310968719946141894284768800035623847105244479534184425313309948289835721251392545742354346928312867633581320413044272083636265376910322336878663064868833011706427097943040924852950461798522089432032632559815673622883066366158941688726658366274881200521047873412475359330445570279556581196642391258405395861789711133792790292410937616373142129882796935348337128903636409499438328329891989675529327050941362549598928123857154056125653820647127191066877044368355972188437564492194277254918760999478237388165620006113140304661650034881861945812205520832964756468113999709774344410595504465664815039726600693797851326845895808474460040310562298844054551630192112415883687192739034708072725617963276088583907663649038649215366021648622143778818042521312840520693014325478776642706252771431902082391540601232347017259398645863543820368783950892003875477630379861516862781263467239642260479214145002185013311439390679067277373458534906417741397447907274674314893669096722816922989513500494065566246281416212906202253944667570886101090717548451738101606974466221485536098094561372703806565031704159062276813855320880935606371331623457366879360240251430925309953725601269703647885215946110585948762200013668653196446263654930238851853234458339581017996397823437988434442560698511024983586584466100881338251408200898442618474291499873022167362109556277785260261482483760404831092100362097135690346380847601159131979153950144745908588063732930138441885753747910518801856484593530138007584413311287188627498126472570711625023575537940814958092071457011728114155791905039798752436605406108544857917375074205212504622502743807015844889617181582129976225542802191738331045526144720424565146853472065673019423785141170766855761176822223179406037943135098789677599074900080405449658821152076941303401814898988998372545246398669216294552004261953663705279187650566230271711647204115758797263317416757496581749215667869463540769097647471320778225797213014416115316409025845279144939205864799144078260237171817298356550663728348513791444437858767993424135612847155803195891380742347767839207324262641898992097410504007441741809356398880336873340558066709158120137333068918866155195051394092080223836562140605603692386188052022137592125201732583271143100943862110158971461834116286476587710245160739863190575645526084100249932551771116152622684685619366663517751862190737247665292426606706060216076463947868804596171861229944512788308506851590993461746713443512713421444727252305905764585300187134234341517091147085383399590206617014452656745595614402834396102232400437872378920138137785668916391219446028397168050100005740087463494592937624747983494473080721116265298979425394888617877631780983812959482567705042673918798482732918323026090946645011831148433056110139524206508041659636243793248615692257398747044348352913383882457580060106063528326830983801489068207182138372413736728266866193727038537915279038037455127342821501592831536165905107620088653373134180125967553958686531177854089277708466355695215793656597004478745397762685354648813378192950364603512755150013390622921958468438970186076028178148173896339129445195259451774615491727687547244706600677892781259332646320288195274008889842518804489950129833033769292774240964782925883768192409119177114279791676754705746316064221953413131339622216692192567374159002352362190947371432069128563666330057492028278136431836769129540981124204462228775053799015547924244024674150531869835155097053270175097802060972531493471339787511367531098466172506755624515878790142015246720980956292266074473576647923000308440895363028747182279541480973150456515941302557392745550553895700503495908452474158436195906672354692226330351215912656123510895919755147805380885509038417142241407498336345085063484632832272925548071375242824214284841089700607139791571038097159560981447068792320380540680609568406148825820602393095040604470650834452529052899443636343965545031042225194785718509499571046886329208153783721153979623074660691424932119617141812825566614341444317149041373539347399121564831508137102608544880215702831296437481567752988473151097048439533928313331410598422156511648445672963422392227809297999191987227280458726918814140158771571952391716482885211168136902745716102904982979774758976525429381788929320524179168872432338315298890559651985314779593989977589505928824867274043979641278000064717516717885703411114093922525366827746167347403234206827889513889125899934366057288426547960431917532402076648057351603423535599809106403815252521115913744481274071588463804842764971823807245806716766238605577371239748458426271934180988016505576070236194753121400657672612078840069798032078950504611641153514495005103132732108364906454046526372501276809307931342941604172880536041019791446840705858042754507838498872556842284121306157219195435114809780963129580409083901091557385786549844334726035764232810289538131412824055797098216998940743523000808149494368884571641243875278059150005948465696519349318002975581921329912050938660802094057578484635049171700469902395312865788552829204299411182846009375848547822571660525101085661050405183478693869912207926373820037075790745058660303257610401231441895456415306209363115146432560061664909291210536255545502076086886134096132671861268471292140392028289497843128193191423110644288047727357831124816229685729812207865921575466911534286286549132212154798395838825017634465521600640442935144182015059450004453918810938098587196220363481200247713328727788476117363011919083255418836371195401735963947130268808455782989609126547490236468956412999158430959420419690081789714466944589712373991544107706425737692808187051891656861512162635118653934371078415689701024819641584150956347578478013534659620983553959153808896841364798828964018837702880290076371798827639266307547904031950164124146220514438472677383414161023755174198814267729482660751727575914298789785106544520582726050819722369586454471741533306561166335791478865830059250175039754001573288153864739442959865528609491239657751736790894894470833641598911387336398927755101498442757980950673718242438700420038482712532646282472796249549796560942112062011179110815263412196107297060518492085951304615739163779588180970021225030516156373995457613637024774839808908929076790407874336457321484521158993982119594108342545795111686267807218174733318283304548293492797774093177183709979357000899107189232440508687856133100597235399466663704945860459658280955831109775955594559076184787969028343124058843170006311950305644363781391938363559061199134607962609854400891449400930252647264673065937181422386584225124120831629853456349864833505568963042873310158540209422146463203558065666263246165323837825557798032623620023756299351397376617003092791822558361886190241988945369135622168215002831946771905891163365330239954659186559485094789908873045451128226397415846306513708801096107653116979430915907785947282587857084856819056033387420908557416993969385732825213799076492261784350781868067139254190126064446424240654638851890382186999235924255569378747043787139014994211942925939719992312544437175454195631561991344300715028372458633695992603303838218037122929103537280058176360364711738316281532207635009765637745968476212715675605433385199308196735690635803898851020624773302359298913156817458441502355448264106041736897249120595152038239964875204706382175702753994187237949037093266986968918386249922849382178500014345655049764608050916629394524986513642277755552349823300334224996083853616981783156410549400503317751740304679346776566965628088683401989226463496890186030553858217568965025105068503146046852641750631049697602565893985585980980283523966147681041023380578047109610866868924988390461077356344432249621089476227527026631416649457083518740771662173683033490073172723284654020810852238270963801810719262386905820666674117418200970257084756845875860814646656588042591764696703318999985875073151341097403495271981677379630840638561056627444627293754898864576545648324930024192529189587994070102273080638170478646754571954892202453982727448220610303318747054172339328433158587846556067706631149489187714296807166112801863962629496593460394796950153607352815365027158661391622605006680480992925878456258093220329632096717427757075243384479793630091162573318379079085356152088537629878798869375741650720418145252565110104868075003165954165015799298231654982870530237519364326892696490025145342358446418238033586979824653148264425270569856702771147667785846452876590192640724944727195876240704491788216479900546977782181483881116272166702744664222138869719100904231100582358097027477566483712924212406758501399494494930947760329931800558598356031152742283247723979851594984952384635555061739332301515101822495235736881695154671069318248445836761100673088195250616430376401599615465104430487975845908574228836780558094360569511917630224724574658328107144511709663918033831317924618592984393791960841371279844835938508730171062761465748003133955448687254780379532877304963790908838838814911068969994593935842061202040268341486244632342179936254774863107884302818656889925921621569025484440538745578285082568322893502711782862167002672548785017142738368498842646328229590138853999380012643565333770984380510215669989232907195028173973637464573738935882938135725538105687253330167811348252709665361352084525115930136394548801148385967037346460341241117490657602603318693906584916727750675077840278345392494005589054330197908919695866399605213489396866165112925596045930564035820816354817059348138720330010340053884967540594791998929981538894458497438538695442633305594491926546297891187342788216102618392506454198413826323037468888265006128746918065756808158424195969133672403981237726183694537634582827803043454119633152384671426041407988245574359338039534466024511570625942016963625694396108318222249538261587335517672878810746121391063522245709504217466580017608279744352383114985539821389140915643949118876577851779076440062320078770195499621023599816170677736481421103351485352930931079704364427112743358473978563143721775897875451990517719418606163702423019829638695980156469865915215201225594620403121313750368420627927552909201368187554264593934184948369189917182634623735502688054636668556218312816609868089923887175428620664382470262206003179399223548855538530019545481765896740418237680591477300516636896874617511288824188312366832326362653571216496426370807131797828953195429983073302190863850067768079950672211315318929538257067942554217968731419568007184316997901375812686667232832529324925980570918487596678548160168511954721765140862809318836766642738319143120676017336142683820847391044615027764421896123652344256288079926652504572262374889342706284441097046256515984480804385364014951335134626769979561580410160004453192310941727083389366851112374539943801915937605061027268895510764195505899379309397749993427879935807187330062000265254455381765030538472242062732468611765183301885321915485696261936867836508483083669045706711361830974381210346184070591099822310227793660203034434352839042327159633277796447334321040716700431130127911542850932598358678362411215479250537421635163994592346682468816130509305349878310010946522338401594154704114616646219645501352249157850654819799236626680091493909630381805419685381004588177624238265496351905338003651251663094520715353254014795822309094435442533309147129592868986537050455433109713546004665803937944198767066913651347428547588400882725008790367688452283711191459039003915563338807408993206129502847123302389187255070158464222255460363760699085917859806173239776809325962649644046024772960677041825859315358974072222399276505922092597976161196567380007677970498944508677806229106256314206769912444616775730717777113349621237344722447351265614641887308653795314076492800197869406619557447428930633628334541030617935856235271375894682170927297530561687688225555880967439893985039515089353514732768442771533071797268133475347371611130626320626448445251793662412860088988381420617595250337597139447106805132178272766973457880836002529778227620158393024791786025238270439715132422719779954607784407967472875817180893484929347439795080544846627412554777569394460071736216878596405664867377518038661090405631486199445801089773861586773065448630537204283118287599962956007418348601112668206630789696341630224739046740767706895626817297479047048936136916939238058620293865681636782716641415259470740836814611751277192489585988669097818526933905448410791728695597077264798295336600786152256185420363493166244553848240222298327704261206621847931151738726177996393621671743826837071015558422727067052852476853425778552078336443784068381338447947056956448152099115578104185622840568454669144384189656653768202150996099755906794458147484907340948087573615564465053009281532804206418400423058792212041578443747798125418752747348292543393914608752493839894823652136272456661787007016324807748215222485560001018802687626312877608417990644671288899696079278630066858630528256166844257091678279662257528817557057967905117009705229284087839668885707737997641076763855127764191804854244635158045524966858918397434062567029732820632896391672443547259239132071364895911721436744228938352704829086070105405901052053318211455962238891166930253232933426056109049978301104217748135055006961930436369272671988100660636400485726283169868949741219962870194373752087530892303855375468896560201058785428187169813112998129711074601315158182013097079794189015981656556447625808071312602059045327651452054472967639455867373359000368415367915507996282880362742629238468966989951931448122973369240384697224552700268960979247175881896456993962478459839060099111785855955262619482397296606078379862075303009406711454734538250825008539484262371227230547159864328234594412139263746618261252410960733261243828478160204613882863408060780661247414187737219732140633957251757976910265840057277994061372378593193414789385652868743132819708813235563847486590101478087155301538902896733806210621987286039232293473219331475827818502523223545007714259697722525590200010547886728706194099610469193691962137416394744335441083523548990672042601706447953022766192657850976365009324662810198945591450116664474923172660447276057311544659700894473720805315868664975547867093529695633486706638691665264853019482434316180485953388721231880440365216463795316646387561183952557291737956927286319898385311090374414608235432073321313203126081393248200249486267365449336022691146336851889559140522290898684518201499507479312385499540835980020757322859565304164398209671648036702270771108441077715645554111326315107545978259213003066702186643027362799335157564281494726977921897086911412974349626903881554141768193043938579317766997553264645740604831495072248211336888033743660792986612024566529384442604402963570338876489702338263412835819358957762833071808256306114986920013646750044083370115999089801486443915971382747929367610176133213951792842373077682196471681779472106332167913586551079392846443682622183447076195080132818932893243052480879335183917447904083248769019432336462367353390342440950189531129062738337178640347920086876346553972896831495380476302228043065766544819231063259252369582199836692429813461987204833405167341300719063033421939094234912680228529440474525182326064928975114444160141432665372898368796034260284380021186637692129444276335875802668494767890491049690520824331066206459313621439139004271897510438862951446653528082838134907634845959371033950415105510368458630645087378924814842449043521288770971943514165394421026041280109296681772962988419589233506019648929159331359137620698402324148182924592391602570999655784639367080143188986551086846681507296706206651896375035647837773104993030396970690988568709924213493951714234867450586254336505561071566246656343922432285123723112197146035016761914296610193649426115216154744671920227187391783629167694806820302976914225735436881533475066558197514487003357915730481683416578759520651867557011595196236661249334792208974092657969451340891308410394954743987819665849730581554987954067547942499897612849348425551891152029424437826383409255636235769353982910498296931333732952448278831930528894995895126020195263714858935887537487539464689466667005717120786004804223629080408693388233177611203317749973294907481776032612526786307510997178840158210918038260191141907571255193261812554359304878778761862034676626229964589438914929838917224826794190450211589982720028016885369027514606425598236496106648650158145916156677831168578025250168022560121336706277039135450303354404359628866399709135424252283558977412186091062737300241238564128225240818965964987400412956334945677435148159220686285703505004879469076849520056960615261389648935737646886892437072525428945620261139571489334560754713011682254969475369061602312802048495364180644210485424107363170241164166874787431901258686007331991463344913361675110126621411741675240148126843171208358011647190303747797494132923470593112903076465168097031675797831497092629528630176150660286373226490707409697003111346910928052380329290509645892575971842622775394946990172019032829196426594936014287350206539809624783354576706404690581781862369950214276411342074429862457972740148284222484535400299315377947234099772318696046080179427658079356661083319231914818100605417674172959626020059613185101865656477629359552438121942141570127410332816280429883728834352125741880441594517281743881709554766607161554817173161348203947533728652498851599061498427568923323358060349688563723688136399949577923154725219736469730909570603993850105348743475422334930513811915084872361443593194418791916360528960218521246745232629552998813806360313541671646308517461844203173120806802295100794960185249116225064764168989538433081084566712650184156069939576471893340500295770665501460228231905637330438067727841163237280199713462696460855106612151432944146472185619947672386541429028102855008534230654553445026381211359153329254443703297827774434322062383761938177829975327057178100653839845709357130176325912472632295708258154528213580165858324211259431766113889454078383060664610340788160379996091459663048626057697802574366273749376931229167351012253707966355887573986370908128484250495491526926270232996304995206686016017877716237740122005566518615485073189714284089727301757519481022880572369703655894938041322881468899591599916395783955188025598645860370284662198976621725673115447819462600092374502365106931018521190022340739101671163386915943945397922124430922474079218297728362395924332247159202222701059615023094890852109506912837797580204740417673504838321172470548221374807483804549490549739744531960116056863123438951626198519583925564082121278669528583877647691872090104126300019825986800343396618955845033157371208061840001955993597850336137896242507171344294107841859132239690926288630087161167856910481204966705389102354365944743061781494562551708384690000383205121148527915008643938119742892882544413782581567296794634888422815487255173310099130873374041007269023991687105742994041814625684582861470749341760318637595988223984394304528689453922122387909580869420410876894529794109210554937697000377586777330380288437241031236846333968231119205464301302395514300153015197937615380363712153134668375479746686802716971103976616797010995995672208732299345323447876368597510535569767012136146043936047673801878075193260717161117225079694613340915661309418664310789974809084837337891428708284606209838734552009726879219196845150857866854391776552128102595556967099816077798038917292480872965037283007040716562534313428388344238678977515230104631199485029110475207519829102805920956693937812928359420598355531484931636971332102038330350736503556188820256888482420659228066352971297688316711656736352859038809024284445444090241676151526642931831863008555161247705970526051846251020527682737491684482953066092563466044267573273903375157337056742051426789716207536271485666105385271232035793906707202691325773200386145829193375517379945519364165308174992362387241802566803414817445091897252635689006867736412025788360941355159510569306203642500756506798031931247411155135047935914143609427593858996401448794741851425550495074753683274736354385211768092807155257175209175227011147311571617841851221250163780746395279130411155493439903347613035472143072760510124405877708639867674751149855886816661417797014569312124745092148195497538014195834105498356459319223020461113667738981168146759488892206204363932851515142845825489643855840572091676871567395940051439469672374752318317363102500075973326012002547350281376261738445388120755053785703371698598361833123246607255584772691994208946849618987579608349362062945090644324044998977100459875316838558268669303522608309553232625850740579786236875093171175969720645011189799174897969791276669243504801806600504944960171886269438658315398899644082937261595798430154151213608049409353643137882624423378277698950194413262177835732337544018398497981920869127642915849018047605439189052934235870438498024599141593073645358654096157380543193308230744342164136995771213611296227825959957116391872398453464213447755415639487397747281653388095223795876185737339525899575833329387201740067557522525075810853088276167963157588628010112726772042640090086438384456093423186133409942121112355001644318135730242660326250492534385575483774453992012619543226887453219564177740064792695436455681921739606729594332271979036677529148499675184729908576648944952970067043564213212689362218945642172964400353472963363593080085457722683070537629817628848234738821316688749299162377329507330407200554582997998899403475631743460726938724439187754379881046249053636112357976366248600827170442409010839214821536264607071183905456158352181201265136183397620004106750419919916961636374335748165046365857024680675808479199060473133894775581650947650062283650528104303902272968417434177954077921075958337686108934316062384604952671410822491012206485372649668993380401451505572050575686135763715517820818939242464695928245295924103143070517861311505117154240088964329864239237419240729913216530860728677247271690371240842793157837170120630777262254021983303426486551655903083239739608728274772788263471539126430643580097998261298900116150746969584269692117615776720429002110703919609795016560378256520983598894554271147655931511114600510274732843442354961850476713170039309907299458043996422802539893985044914811982532933945519857355624857903415598003432697842822197965509653644173084276540719136390087786103447134076551548249749524463544813319449154326159746879855411797978857578882725702231646105300369390564003541878512268085996700641347188832724310676218690456105766328191346500503769901553115529071149024418680427218715751470921522826881862632467696059357898598727486634113070860704670877215583254451926129305019561797704798534592406208615183637012668348724778587557729174805560398823426904057810692655526558606631352819232859610833473281029709301476397129297184452395552038245935319958574717646580921389995523057544664197014366079406619572672474556548286651729199754344986154812802626286954890519003658815409839345048979103582104283115132541896653154679277632120477010700554090388612840407810707144776483425101186469102086483297508763906266804685844906903664696186780025340211974635664846577165048990978863890590985862209823936370755009049969875272884865808583592699132013149814418978796818891683751998478551962278289533193536420099547704127956117876695047006573852448847915289853129138626669760236885135654252814722741998439177652617848009043919086055318225333443759145137470952126557800857077381449995959997583885299246112938748856645106623275949257154259698511478593191351558362931508703599692619571537104409558541604126344343941018328584028223513549509733951139790526000757348223039618641777823405592892100935949388841937813805170753168725944304532038420675940301135680101525314321180359432698898910512081678652924658459976999100795777725628715168495846552984596205311949461239010993212262270988415230002901614120439374456491801646588184555519251831920959778038548443592144167451422596318357771791221172309024544059591498277465628721311759768757071917674921193570746210355804102928735153513717646929012583915881995726254408134269428468345137975049110371940816653981716460889970925388044860337158741219997329606350512301606342294217443802557264333538882569599487331349632008053447295643009382986128042931087036099448431675028449844904023600879781905680441740476437383612118632217662664953011718457340106387429227043666048877204988483514520657012879868296836032121334041683341873865229823353864433883545921378360759567147710775862159688438674414829481049880832697521592163151168481633708569865107288924043331847349832365837980673176822638688711666958245270524554078964939666399080465607227740605059877262077432198808709271788101575751636210678110234483040879214539769766659892597527677588090693919862419093885435604353937140097929587128673668935647823219738688683861026550231423826618493350125263283174998550592812845917201356252759145983864167639760966671172276056656651273130930809980212597411051389431389743713086128676553042870977830302756612611171831124190593489340292464503440415808516776494902186097712495541339358385459991777893194300547644848030043184108103069622095210738456796831907983172371867559832601260697472507016475726500645963026376874834780891904589828879297843276096315596271577321005326271023212530224992766969685259807193311214242771584663916147150610020256487522787204587274250676821907741555540319605705062171081130424062817198001705677354510632720308856413896046287795034286911767156722531094354568223935996209011470411992045504292302904472247429545444218274820279640830338772114392201408625554164430083818343119035646014415467747864891332408960330041571251394092680626214701341822864602700335641062002582978070046048844132352159577226037010412173839257995222610101781575722556379676239653706044341277698195693058259988039290251100521806465823737554453616149487706481974711852977397770314295021201309289208259524171289500900084279723131665688348063433945510685124615615078364981635883150651597813849910063259244867888946303825582982301310045681750441181091942824998708891534157601014258761868805554191312377684633540323749662838084795116370412246765969200361099773089080703116719819822443917425482650378102658239056753031393120990457811069927586529994010839646024851579333829326892436565949140582786221868927932545343010809322559997885107561885670584148299903312502641514219555091574344115733618010062169902730058287312418713583666366498839995365669441994071610306233983969977633353160319399016619562731388754560926554078091891266117013049507345552164104742847426371322333078716495205367918938409666380957764082099166880112066263177933963017603628627139829771548788002188647555500236954739253643688945211475732176411680080679800734996175835045406929581968240085171204639680675595043446776761571737860631227255225744371370266090227139676536470858193856327442739011952644896918574237322995244203224718477872083582824323163283918382774085971829373294168448926621227110975467589556345765734966036807205587284989558009010701000021480607360244258071531116718443714275950087429116528879100582689639595393143295802134328293102124691110321143309760367211474696343022438850868201262785690253080803320998021653485459425267706823560121348582209299463267508922155556434823931199477522694955451544685865566646785901284784506971390909997601758325857794565400515672857289174164534629293648965465868354210794854270958313330124576126807566227702899972360333140891239375342684738124283578840511601201556494885598597212512191839788747284489925323157112518441860380197081802742315798516147694808197991233727413378886122589322546607912038474000517204534993116519436379180458687197652662414085597732980172843249092007189799439246212812587608569509692444987189294358500457888091510782397731894014148039346898492423833446435509819895953379488559869112825049989621860747227177118112795475579350015622497649807378810967060646655191096436237792984032855365295228358314593553434329176964894779939761518174965631645897933087499589386476765435651403686174982699244368640586751546371292439422513531730845389778845928081886907166237904440742638552758756288626252425199905768884469485825406582007551029708555101692114401277315092505188701227701329630962548731531400331825815999362623007880569572127357294004091822454728111887512362175035709871659300863421392068242797739579580827781372971972539635764780242356317676158095630583507769132781381206509022840100430729003426146856649613195609124711165476846132086326387348907081829895424718101643105378095570691884950468746551510568233367377009483494593986293609723575874667404866861368587705676288171955012539915254951662730902711420433955462753317284009641985788194611300997402667632732144196203819621348854298408006152813294249088721958530897606273139767462425143138080296495518384508862874368375032247211098157831165718308783265629918377363081126617496983408267503918282899368980498134164882934554231553974697698015713963843934296571659165108950434183628708711238725473857265641125450031554302948154471835841037863852186872871270442226559783041618698046849092915766395678222376554221023635105092808965172085255512726068479261695185585946702536161005478068066308367771063403714918520889587119307103697167568326786116514388335999843957052628727255991116628766142628044848852388996925595811773138138086985546982661208418962936847529395264626613074925578940431459448954566882658299374837698162027451940206974220547721947751957141726709387124315099113397523252390881931703214179227821736671087675759959593442104715956188408387599868292217906021087071656149195278875326516795936700734667429646507197081556441446619004629991250002422162190530621469089878731748747366854446998735089370206864046419427582862612138885573617417919279050336871849257852021671181874607930752886681818925944115180524173247476579834118104882583715311784976464594052208399968713729734365393881123463437467560083530949037293817837020513458350748051655979871313088551987495450102026108134941868191435284925304552792487312855410139609822162551566467371281080480453383056510267350731370560924798687850626961884720594653982997470718932694489174335467303177830246610000696549323676998417572389463051448232874955875462192722000445193242930489979694164415757654863395810811151113300224651566081603281589892384978939426551444003132863328898456373372452781366518731536164177513293863284496554536883043333929885514816429919054836990883557915430237134428249539081340154957707270829027890299369774789801604058618606234867693755756223065306112376699166067625814624766904553324494405193348862390766662941418421453091191940830749552488908536018223572644354297805764968097497204969435239547818426414276413218691391672847590438231957413160597199117430914496946540390116622040217002333001397684765745813928494618191875513614001598675056214477664421903433198983251633020182070478502483537671743321067714160373344040199561930993425883700144408304350462799432590013792420662003847092209673282011183601341435794203275741472598178703977198290924842393096582158533174776214020038522188487954297002106093516332960200955417939341749271115293289847008198496516296013340540649245005717731429194886613164072652695369695492685271979805425970817132076448951119401896716265232924907802334384159366516778414060715951160534435743479349324863049609375866322864813276163545830374974822479765771156310465597498191987027367272103811482401110502121917189060605815529771099196079268570551241753405094886868398927124543497775419713859686511793341108941487513577130433409676430711250128013152707423566228213376104824600965368110889455786999258732801468676051906736211127140836534535088417444256785705099482612736388622263918524152087430465305037031173276064793760645681524384387073494442451701278057888342813793432473520164346167090531608355978936367477570722380607184450015892396891283628734440127043983144628476676075637134218853001684726265596374736355899766034927674065865498201570270701227567275328613826859950008216464240075733257552765268418280100898288452906347854462681289312097652557092610085658648601932246754598033980869828711238308289396855996281459464649144399199786480044830351576061239901474879287438395886547730670357163444675960680583174285988156711150189791521071504263487350410856993873852620375329540352334600964833929150148008778358547286673887846431664683764346672526841629240603855440667257883734155635882006161175344540407564583670320045483422817670143566177761056831290685552314038267044410858157212436249586763101214047961439502641515924714071059931835782252533629964691613207711763867504892865092097484424546937457000903970914069496536938201312553851990837422504851266658889543218433444194938967541721958946842752834444726247874133300302602832284669921359332744585031181792803240521472173217809010970850318523352082639501788699127298920516876951947894906583146196130383502480892914520942719564511444574162835470659836584315497135805172402753407787219093071591802507904814929469381933140083006873558697970341917971696130039858839611015018967436013093802623549939286191966136972631102697264556739553229425893518936720544315916059261210980671297121433648405281728171816563375484169884825201937889223240295059328577155700762821404082661768452806497269180717828076270474326736719096508807755766996170208547954274961946158610373817619487217563633495791081188672958174745264067985319372024292599871462641799734232275487317169899219432329621257168960457058835630475577985600623784854785954639930429613249550255367458639128651534394240246348605120203761661353049079761538710261343760190444547852424785390180905147268283923984475221721649258590533416640358081132921758155530394395864191357619236759403818814117705392488993454681396967655105000290046724236052703947684664504311224011727376700329735489631360470137492632490129246611004948595036758887311227820450510075593101002763325742345220853619486629603742163923678871985233840886236898774581074358691415063602663800960680905129655254357072648972315407701678800322421696030391201031330358655940034931863228933642420823018176820884282059626209236989580933487531240957035117404163466747662769746558201557764393699443712480287917225853895951347207529441962694519495877144313753443438372375084595904033703812230376278671307807398630977124061779918749686660166331271545644746948946229428403713410375938069313471184741446682056266952116398044208107077703588896790803053372443863058246254147678282517770288159478168237273818478580477280639983006940029785513142570866400126608989328398809829952567240316443506263676982990428095481331582440821563755293802997081010438901349336037845082417028295802684300540569210151366759115451199617735754447201734304913497133284070145201946917998777804274539280543151216810134195063623440241756775101719364543439290056642203508318282605509151037766491791531013857736979847207092233637522885953639128083009920909701817813138419638970409653706587510015852462939743141496335173112493020504969614563025738086816654464588556754050929404350831535738967393148098491835717589839481449645638874608024492046074428760924914545419182353686455138745253444181463991121995620034432202124781487233048455967731016797955195901438514217738602911534202932538056149790243480567882469942555827836449999104268937273360479970424061135273392135108384517075463803219266629905654459475427636968787163728991410925151745173872342088100556812737903293547970524031042355284853946085854157611903937489336460556490949052845903881014928903572839567448228350752606959963815727150866991411030241664513535898882436001175723217624985722416831149512965656329085099034719499618418563211016903206255149711881515614829792513535994230945433765426475394038830522805301055618157949790796980793852801761843010769706874466403963313808060073605990693552997315985550584683684723592410809654375455414889624645760101381154670406779636819668518805568018390296622344289829313892823164905757988325046376115633076789937418591281449371238979463912671999907863379233122253071291681579775074364286521579856297552736952379897197458422144121934071562769835946657804611519105854838302742894241526938187150256020317131191167969540475921413033795497274862114330259108934088802986070504594941185939917094798500011311151042619619080682948727114704063886246776751103085936197975775806445845704945474523147153992735004557120739112168371152269574802810671547208438839022479265933359094812189384617499496644109208053652326258099497677254394787471449497939247267777689324563686588422525448184336747257945854964665341239586396921322773713780359636630646613262963605856922249397180049587586859916149240039777806801741412311137193265127891412939869061480651025118577218864578357032762460194678356978155798794514901057593210209681876543210686531113629281188370857007962254195580744173717417822713991087348743317605356730020319210671662331196669953297203508734727254770621588193668251960254508108583542776578708169606048531568880309762535713668829613339953636161564089514918288408240482781961304060682007857670305956607932720775526857867238251763828710580816471813822850942005156517096921121265870363110661027872149211736135354771082921573444350952710507802545938551599857701150091180043774622347038208017864936989689403592478386038389589158994095442364205860162930974667100903331782043163375705633371341068553054787812546093453672811990117502909420250424385987713861075492354515118783749889012879673255071915269348854936572363397639277420487747049080258898504788922893836662463440027405540354146891014153596982829986681798390134583259255963066848103173014414127610788617745320247312136474060499388597099428560387517537114344742264833415565657545108128516217850005014626045541793406327418710082334560036575633727052344504159774964927875772862135898592742115463710744849963340968190223669149732962646304040757323286069175777414385069749116189055748608282842731095379018416436004524154379940731537292952654882654450329861783396894336962831275633057661579139873092832930170238283091468295120069297497524364300611941676916603294878418979373981011520205375089064184829800003792324706110394184399675095800325336878086415894257501026222115494314100251586645626230983468780804543804330162769207433321709258187481654523909378484900977719682316905602190786633007701671922210277385741473153654709486546916278501167195208098123822568321722634043711858050471997535083229266748602080384349182309138866215156682060059651333050572221460270051981379183345230998088996022894762827498292795186253721422838489490546743610287130127491745335190513441225931622381108688181803501956744255671113748622030429963958121488771010538487934385337083658433631997288948901558627463548846607074866193622063084143103561552542673905598530429588651034583728851257109232813555498352822951653952226211728465568142851446225945714130512453052025692776314901034601889873812872723473577801684675411654584000575479063005073905273075480656288683733321743218304283200252654001869613639140635449955644704515801284394460998968741616338697070078235257500682725081686932282026580674449537793252034353441994010351468925368459264470940226146813623117740336464369588718028970372679586865514075375733492485299670840920318261123941693479944578801713087940734548118749464692339587920301587750917670016285721779556994225732292405837012736909454629931241043508959854719608507753118679297853577925674342082295316980979823297564678704231740621300325294556429031732262802080081103119751251678434388334933825869060026698678863097129204302612520687228552646996960676862542050756704642280044683930675149060184682206810191897209245789999636188930130957304685718047114002132839458111633089010771390699059858182078357148166522555040497713438742775959933000142247177244017936364992965209205671321577486827349091373142566215002209228087409136440579580510341568283617987561262174858282797704360402000535895481383295313333863511861345434218826275563681871912399099602543666253405638162270149146467000332882278151591653434684087664663006601287668936624832729493593208961439021851564472257879370554488103154618405209117101976859720644854703753101563442853360446664383332634508110490941343650271653651689559348720099620730253958008003137436408713535338157345106057351677165192742971389995414448898433139320407130573111452273368111411652525622598296622601314309723277546827383969790210278383314969219460487908104497903870380377596655935467391472876713409890756156993269955210454482841523734157722371239763350692411015693613562481458858403619780629561314994635001637781010473194095901908005932758896926023213834143417108375220423039840326796124498366628952995105502805781890984337301649423706372869620856382373542023680286997516192626562108005633524356683884509261874012310832964843161370569094791682386789758413964176753604918418801574791184122311934065422471537412768579480172892791836407857576737289406323722106521266862520315659785444021189111929468478775127421966933957079478212518720416624042205775054797417608073439218301855226383725053942690317340052720075963392661651130998010493903543645518133441430768692615387864874211550500957470748393272508024067725681368873415011218567113335099736806457466247684314554878840117148725704648567461357506793952224635556291138131868442642628697918007188232980399957552706308880351896290981880881999502282089399063796125524571799845596995924337266209394543583952186776012112088053442393558471487678622100133373202218128985360789824720411151631115274425933169482117289275886876488562345614128730143130498361042859210231085499715609237602697099263478602025833968123574301135949779064087452563561086708465616785076606464049572085310836390132386302233033256547825177118733729589030022513387989338112444013750769509324377634294266507146941500673521900860088820318186338296902527142467018083841739856993766925763475670918223545783999811247922600113477566269235337184613642031777035957314459614976630065446376149785504638723561192871785652674128095718483417517414432860720350646626624676766498999344528657759165800429128449141626725630319278218063942143992925138850727074330602655393952767807348602015310386261920749211648614319865724348333319380733534093988882165699895052798132299820169391149964645296639466164221784880231053950259734300376753106332858082330130878914061463681612290876068258653048595750906978461539680347298412679967153381990212112052461114469896931154597304777691190139746154554113089925439473060084666808537145122242673870804041047243754111060023767562339477668820065831835200835737060332309111526042126377193807837103748878390559368295937073363378091122530791953336428511552676003010772144832996146824034961540280688777214724648938502835565203307693267438680368968476721674576849239970380743106384977551583271932224121591073153637652972458524517082157263660964256645181895699685543613881235376068800711740068155545619856483635087173425421437619651176357670470633991624748051882162963829836144112429458524109285008917968717748139631615663986279277932912941251147383070172864619102547102690594358044105924049670104409242498738586675636666242957040417812081199594276217398830132609845546213431107530369506985461710828578394555852043999471117305894693508946202337355336222577560689382135913881440601007222083053053300113328089540336532452415157070607750036568440795476994969713881095025906403474428119786439959332005344133631434106517606569283887984484966726343784527800305830476571241844636338295025591071976453380095447320084778111963123533494440398750764589199139617762073114882521138061643261709223040231054030270719717832838442866760627419195374408784871103710341061117966181888093079932505111632540177466930239776631745212219922636594154608324190652220329525940001848086454453370479639926551826923058605526198034941954370319574044461735001751847527744514847720800902649558638594743307206185841773940014130387423076392706948579140073630658465693038127790144083731164912993916348959749461542476768139441973729389370319202016491585087505026568142619933754423317490944047894716919684181139820417184353519486285815472586908082125597707772808948095847999004984765828436787018120720244456484891954407459610478307458100372224132772387659552366658460832733451216825622739475361675632469212970392551801184310970583477831223737858922657823430521595651707507342062756007175052771543237091856970099817518182337865558381448982103484153862569280293602145650546428745012156415618691732914495778386959748978269219428194008390529176855233991424109881231876379906410912279384023265094989138845733446182480864254371968761955210495064908272929499228810874825831918093912957100394528934037549249418643258173452819687558775891109620829120525259201415781703255026462781238667875036881344249534243265914537914533544294734792817615504808388620060320981701217094885424594231889841789928343172799054027224454357002307029832039350321434704522066505496495269109919111959920011305512415502791141693182880242283093560512463666988819277057761470426108775232511454475367213729772023542086909109393827366577902554509751899777947283489183272385900192046782192551455391134957749325386656658817467707864173803380152322079795936009888115989974649494270832229492964955870406317440720679034217995386949232489420388272452689260921414608961624849501897813246561422926687379853665698851788400894602241246075899326326719385201608837836162283717015790982532827495900284480428630844805151640927593662950190704003560949748072392664837249062316341798598418439408901042242527499928584333338485192289012500753568969552346052115358144379965597642164838886578689379265315359361726743116304879321257249303888042894246047407291144780994896262629870900515103848530480088320473904461416661925139357829652305779623135157955267432645883910266971391778783092368080465496265293061018267665810029972271537800568464858445234479359106950322363154364807371796746333826544313768881173463482385516737896983992271665536910932279411231313617876712109212570486280547090397826127016295373534253865858849588948334355052729439096424828984384015243188929957414978173750433581416182728376701262998682324911130589370209322713464725268480048768743618283956782269555656068849825265506284700212094136952190144951436397704143510355650886703236418372443111449058271350333628798605580036191270778173689083733781878871010551587956179282151980881519359131224505320528826564380676313102073431374151480547143037471245600598757202121753766997238646963723650945600431239490860301217874588378809271991574087892213652151955350660806708078554638797829316933349875232069664663281726886734979929211964938336328055386924194133128093650355914270782989133733711172197895782498078005415295683279845092968912102525007338822979313867717617317290888726957846034102038155027418319227202372436587326400268046374146282489525108809844373804277248211634330344050966447868543027574350369143928857068070407290355771638537876334425858660398440061813102083200183515447107360232770415450393824965296819931911833088015123626905738761269961073646459716883982289607632227203769126640581549645193740893549249514368853413976945974152450751376069003595714926354292033717104746250438998491864142055218989091837130772955313019159729106888337607363896854024745549000230813002594621496082312655536457843043987209569722909560705455494315748933712159074687198769260034324595468972655375170015405112368139335797712084039416403093045117139839878577307521670294702583709166850268221737264797098118858174349412219057058154190737443480641183164966028098786034820413329215579646156280733516847780366901950030882112359554136105831290217700828743535685764893991066875466890809819638148295455185549640980400802684506081825454008484437105149994823545705986935985975677944666951229584223964761044595403628904167951343166238583581491958457103899636898226655386435026772203662193563880658205009766545903821981546470918616367482623301623155747719538923506066008388674290609875288024571627760787500008792777549820796330353500310523320167839028898522837634553700012263838897735932753409855339635348307559846658364257405882565593286981992688457732586702009644558455768671642050043563095558028624816784200049450367750916501558043697030140656726348739182689213293495804578131163747111413522316759646390344950127604731923381769641936718287545137885681672085973181197196383861847427455575154401152195136083829382140047993445258724606892574846280441194945981095465575646632580379836555693906249237091920242471680426142150719312480884956530302866436805368038157619677799413023653143106249099839090967377884118896983147114640889012727197257595084858425009343687541825861540275147933972315403811262066500956413237652266476997400802250042783513641678345586717760192617098984392734059799174315700419633070757491003002043287334118326969696616252191002688124421479852199893774702941202312810207731353617551327264114207948572906751382222894989414927262402841054435496901387235536716174613017951742482933038457064274376776306658889378227128773434682653003786428115307288245025738839136224892902140995477429088089049122053940146569718903053489060582324068000762814997826851616006334538497461505441848896955092774707542524065998663651050395478548366504420106547195620303428553573993103465583461350256181673811318002808752366097811733422657289469550584301552352630082535968259247612017465897182227361141971211372763614457814745247405491598526034401114126741158123837960810647294421890835443109115535080375306857361962928105160384453178081435445070776752368707391271845008242194190832559549476683828627556111883381429728601978897961797015007550425320080403603435043351365821111647237295154225013946312720476765841080886411344323025962266261032648441653316264353103891744958428667468805247176053723618350842972319702949414661459234942459351528398011174073041462592432338339888650243604483276756307829817359956583164110951581460930565155031155761363678107427681106130988876659069351031920668843005109342573360141049477090217786470833180846697957632491131997386418488339111498798256393812894780977099013658581379220002692121519647458482684926967536478970753397853537654861185108055891039196880424891193942954826319397985157703385568796344459151834283174261610100775683658831317834551256882049714876528157308216477593601717008563394109387419269633444540240533036031002902715233677110893428990003462034117487181329281341727984204332201054381673020811431996943339995828173888869536950315614472265760302320038082146005559547816999467688235380824568868179568269581158759786074241261488942294148144696577476345109428602566773475610632853524348235748771583226822967073166435421755355595995889332704218835923686778320153161105124742141333725543587334833605226515557299158243999133069567881783154856268138210414215539313652408779759231551318321865782968164710794248115213685288561067236156552000361679617532760984569433065841061524392128439535296194777467118069175211839225087430385673512006618147745648916381392898451047211926459251241687403156689145637124548876525982070301364596535638873166939071786174439378280442001047927864729134798720751292990447927389756950107603227703329541845478231270362644535095734186295728009051220879149539778183272237313089091451220599513817303553563809545727652636128478232599332710963826616293103049938210854737112943517429843057835209535520194462037004351444775839373858430025352662398427165528427137759448220683061238333988791379844787554837686284264706022361163746795926633299723248346413931234342070455489934178684073562518998936599016717615328569598815530731954730962114295531988478491252921037451162072041520637192139622808782938339704606732773290986371254379989762677244124615679186478489497561372782888172434334679567939979463699716253638971011281236596767883586023447132711525317136077166265747744667418189816429793180686533665780561079095037883706798552802292354006614453791129892670247413080083950972688095937546489614273977944354625713049009980265505271822229288922112063765359795934868549390034169455359522483947840857269014423575304905529468106206100480115496679571379589762274632567760847324367111580928465037415386118983001407672539127838122817188117123224359112691859710877787746426537633606126387825717353974436199398748388574485999132397593683533213001395457037358983217457999458376667980650508341978593020367631376531095750528703451310030484487041333373068409138993593985589532401962991569881423125225879857421463871377262409736833460563269876419121555593813985452181570253088185746868172436426134530653453357939704358193024967374461697257621126446970658194453894220285430470218862043130337637529181399593149149529382901397354607926515555483446759632010416872755801525257391093408339837391980379158374700940074205522433349224808793739262034932509536963384891849514238861507781522632945888928272525720079476961884274967587907158281651907308561490887129597689664736935140463419537478591188577917450431822652620202395045263775365623303444439634010384134801934052758768759132556106254478920950833273360530935726949748234164224868014671112704883990099776116714029497226616978820885682072618002373985627349854598105328747698450202852814948435721199770429208064925571519528892407681396604687698879564877774729067297456380411212897049489607683976517353500747636153653526042794936225055282594201658019770471786592227716851975950029002204563613692498004947618641501128396371361776116610006565941845445894239919411869514623178741022184284239817094083285974408062176726572449323099648226283369953713705859599192311636127080718202216153236680348209402552836830972628362268109979660462086054151816075950083498207678356254349730298303166275929244856958619948055635301316468012481406039399824675269082345051069495905660288764736616180221867393570272740833428151447251441083346451296225156514992951219990977408279877710174005273759090833529073894165349466399068928098204309916215240717834213477072114508574310209293952154225303879960971312992263558750262026781046771906257857728307877344761361126793859247933095872734002145914599677261350908050562324053656556029535236229042980681621073489101252310089671776792467379874376248401840707628751462435553529961208628379046056295707530537935034280928568824095765507424535699041185851749754558199495728116430609945498661072059575480962761001708242282995434444169179817254631022056593977924102535369694410138873603281538651056292127949723758345429137416752280071690546535679769855876041036347177007127021322455067063336503637145829533765077709525447579025647097775384221037278340972539279341624118338011533837459141129933496176797236504041283757397655915341800148661095555061331357033422478603757899722999974735509663085394646726727628800287224844398968566263708890666735622166841391755430799812853718120667384877622617788582677032188491410758915757936576337330578178236803713523561877617322198341674228265029175568067952177297313529261493908864292205672972648767219081935833300057144101109535840087506589013556956935449245715744483693886624933940963448257987423608211345724786955330202972425586845242141256462875763627721288045329261874833326901296755507624064122206446331789735670957675094645004915990844173337012746319049955670119881788877782404636425168460658186556393403965412329719538403495880090734942398358525893431762423903706729260455921850110809281666290583980649233768173869793082483448337487673947455063256660997349852514548103642829030536731215726639764394551386869345223875238988502711352102139602756072873434680497000961023208898667355677176139586141487909129198385989297540217480079985704574192716313910891430935531828750569874245659041983037024398381260482097364603014858864462407541246944717591539257710934096643333611148034601597889311125489328759311766986405797191838543052952728343790453957799187138409139167175652005038776021635131472304083887159283877198508523275715134862698031987922731821370525746088203457774181607236308753275477153007884204486264489281070842818101023165510805540016840506893074498087015379705075212485308707391995070682646395262450773364698078727580644882327465964292517781247525022260552917754422579109400721730604875508284409525517881366704511607181920130738942991572653810961156835972982564088519192763172311459549657728898626830652988339999660648301986651576437956346268380781673761839158087626699004929533014066979046744155625070084582008467870120611202825973372198204956597604923410650108556584366315809222132384410752317589902451390437016359452890838609845207318423940134449186269578493283062575381150033268708596014708412397856052411529462149603759984790599642299031646062337820858137413194462496256793934943640111777119390914237970872264628337950350303369231703011205740925979733479554599166735333817266937705679238031027517209253027571856566736063670339496255650800706405198524714282597932929890201603639988289298934470528621902403791315604846969999903256734787337039230045207041509097128764369303204396587866286241870337865505070564612698362651426369503349185091540556057927059363460372734632267186481575077828710432801831207018775762174689631186761796217888629012301336914080684153881565155046136345041523800242372749312313948559587640936935960934945923708613600037104550401916858551500052659493285079009270374591327167114714845431685879469698696302677493784324609643271685997396967885091751481552330590150130245817891220063170597981662604512203294808532578300042872752599958074789635314274377244587883968930317168057418258809042358174404310144328710261909200648831953141124527790204516418765855187105177271117475977712574237207985308167847197901120051673975544400584462429107114392845551225765903106094719935744237902598552614477979330845796639198311668534244393770188273231031180514370006248021897350807152028250939586153802268237354629980797041788565797276908123062389160684648439340413901388539555685426702567313012204333855281117810447258056713938272193198607151853256895068241375797214547467081305969618206691544403901704809239287006049963870433605686196361911182204214641595174558735079405500688149200115692817502513503933506751345887860920829197416823318359598534753110051076626634398423410796161618020549512297017942824806603652883538071575136777641597156016246209391962154988119703367120153775710646741034583912483893985493973745222357034334509416453298212501260962536465425860836952084498604090185436205394474842973573941613275035341381044867192538002616525528313858443661743885522644878798304288072936183441023005655411326127591296878948534486136677506141748175927978983411589926205795990791434594305908995932797606391752959106234696821555142331807678899575083441289380424811537295092866672821997092133752976283491546577106832381235591501780084581039194561505465789636004868507936663430913724812813284989602384107582279881261714230466077631223121926154219717816152371337232090778977558983991099966497107185587837384588214497079011301947096962732402570459397813071491439142773623001215934300505288493229693452986536490825484788506372344046820614631748349716020727711240279283168334950999402363194999744489532142440330115206185528610715016416164018972603089414033400853595230446433456873143819017097940755918933657570086766524928553348804548050497377806277690942950595526091481688551229939998245954323526830810328590439348286395464131553809167934128208295976670973765650182982342716023898508528994522316512615127799339648335408386583390806838937674661406322136567612765897344661882755032455778311270585415308549371484464838590603607365718648344840379085620610457686587998116483429989058948805104360841832407357072785562833153937001747804171533602120211679911867751235898150310260407051548153679513983979414669864203808171008846218018247234680477522943129450320590221462189872095258880416340269069718781461302013105433661707405091613567132247341053086397135390172600183343972737227202246630294404334982182440111922318788086365111738192838382284257903200203252126147579083055579220713156206189895277662096625069232765846091803829061600260322727727496997105849128133358019509808515710438278723836296538499761633294777570799015797620456076189558258519804917999120991898964765762484813339046359917307365188315165434438435184581405993398055998379662903153501288229881572331492049652845156338432266034607136369385296238967648517969318435984494193571301698329692476125537329357977188391584416920438089110906141168638012712392200104050018311536931844789956187551245885513570058127857841739278004807483567291630837580816938623845393284110135023249282393664166428331438240954086592445635814510275473166976681703280304614659400462688691768130015308943495046357203692377972549717848965034836232627734518185961984078519444892473030886518534492803761992040537539020174811268354389889265338881235372038407866151361902591654852569267736598121605367126063711214766235303416644592776917949665437402922969675972189151643542888221314205093741216446811264022973784594771094378084043337488850376730108305848298238588477633439793645670165826097179937831741235917928140088438360615600820346529069268746755501459793100648701983609829390839942295263024716370869448589031930807694502376431105738109912236782027760048802479937486544142021487033683098645295929840779378125498562054078281776251944024073812981817003617977261330087763134920010573158530019530530794991409701520564070921657249139743532636852188023022125980491258701660410815138258354543205923552489836066920004776884670045044279213928002866370253942250530998453051838861695286644565830671909461786089654343656910792054556994857937510919620917858985658011287230274121971729152453542236098412496466859127069305813516989112989703560769161889735333013921538376293482782285950128010891854113282828050740723682972100600272948898275711389814751272774981216422286314289649529334610285174682503310897621275551908577416826658559356940659563727873366323104878649920355162758768097373903487668031181584035962764569946694747537550565730070975153616020716839130581822756376711398691403957000292866142896162213514872496892752788928595290237874654377980488172314061948751356281121027781203982964030012878522132732509819456595602424010153003411045798383425917759038376276067906738764555455500475930975318935881713467222818120730450447443876637389805361204159236939318901551167831141767662852623021652412609238447585396516100432029190013655126664584724981252465149216921243869846659557788174075977873537193804415698983409725121767464725484915164945987221183756078055929164285909648678695348521009280519262096337191251345634643038198658234795725607595728474243169169241336532454928839411583868424319629457547287903870575077177091346296474041529530248784208322941500825666494556331625007646972768411461285207393261012154712926857086584386614226903216141298443864089860408106813482088785961951132810286710727242334518142234752453445943904275109564485728644681329861102904942033626765068814155831264091165229401919048341691544553239882080949106706664484709630405436724502799389446148927909759570081041003264979764189641778127268533049262116000771719209813784779864112664771465513995411823215323500194706552301189930168422144178558437265220217548800181507882460063218669256668971798138160077303039810394013209061939865992481033099423706138089044249336161892126379510937209625180479932675030099601592724093215221748775159836008621463053853299532067784297734907855626520144666934679125172692962893014881427704901333967546833297899998410122227742512825116660119319124385899112981844674746737559223190969769120426656874165565213191842825451814627231766838753678917732570276047229774700578831636909998238756435724238771505656911674282556099535657595846686884329865757744173164220088709850732324300638249782135023272395975332303304034342078362762292436908945640408537698493227697779329240388182732051243155732063761997121014413469522330143850075720176502163806663782944626455770607392452341637750743883505061104450946011407227062485474810127743239481844300189857399780758233284548212612078560773184023094292436368396482843188816071582659264423106126151131464333797150083123437089927229982552962505618638054400248997338890834138027926410627257015313366681987032021432800660652510596736585843598581686689401704662523928850562137566252846051156148666864993127668375431929473378941568567050170229096838821203544880754451621027228031986215826938637009235302321942314149871737172534988465138026276075550331003401785598180174929034927115045472037975635454939478155543689580464491801293543629668323336247946570410120727424343466941346255906908028685921202674076413501692612005277046706133700207905524489771036970501741818896232774058199622391142795239317827658559474227740260983270489591187596126558179197952835539007153063899686614318063798035657697009985970416992138184401260178558157605504263282650085669562379709257471661230223835641381903567552063913161243782911586025613748903811741312495732330331466118893512789560560633226002374194724558041935095181283961876953649548567116927153898499831120442661404001020234655516286152939667987049138137252564821768057380155706930501769760252324171286352585453407596219895328496256821101413896345297958992836203803112090564853232840739805322837885879556039420364578858674339443347281805989478361496217593975120545616668749616599352548950259504921322913820138090430077157649782217909649874085050550508713117619048467745534390241790580606817605253109913239791037752345534791097470178723690791210611071504097479905096766041413961850327175459992061718642412771397709536737656454783916420325251694518932617785815758981192675162152321604642272724856008766356853825331524553159857386206834360389774005986687646883774076224754995813394978928401579658369258028119459700054972947159058131576125969984174249477655536250517261884634190652865816236426108521802889199974056337858995393530962019723066069061915673649486156150267006228912219033150803054009905228516432733341394032733615045912669322242097401040708900844115672658990199658036524962068986247491990436200493807847011772762947296947453444608363356499755938689024131165878290605799003404408327022282927769083773659743227740777230581993475192925043475817255795415864947119173733413294903671547766761527273183933005307067939264723338606156541897629196668768290731989394535039245698351723482529571610738862660075690903850629935672473135232484874372971084995558703225216811717356553295581068210382749925522530272363635614324465933666717715021842229959919161852641123665334706222890111638746431970585316877036089967968881992554209809642743184644848267570877464916945013164419780425419847523687253573516461946034636848936997739134783618676111387525890345299140284359645447877691486372158096036804813208237931637005733883216041119666807122853896504016216930532256104975752591889285724437876478924796008324133770724810784772420375463544413352928710459488009323256114736910535966762148211751337731875440602222436441982227698279308367787580930244425507831237903249152508517492948126787929414616125474943990035150770272261614343432691957656059014745738887172436050501236996820252869633886978408037045676402254777942237209391422087789937132794387840891201057325777486247037980538035242746675664237349016733307844290046977065675609770232687253993936151896359900657142406850412067378834871251389770870517468873629725473311961289312376457203282239254512365021377220005833521885316176565940924070345401177440247113293600036977196641941229918056058506169246665685662951971835418411722810797580535857681514847718550559424187381094497156286484901978264945921282386399431541553018815794420157796775967556788337964222311695059678857751535030878809005574472346348673446499591296297530023272977004328831479541318575645326173241436308551122296836333703861382781983595083360862892241223767470820367633245267837442707713700236947113976830601499784784187757699927359049954531233570686211754376453412048368017207779297467169800220081697079454379954206261502771094179615036287566578974569285016587096893944522868034502497688976282820212656229406554510413309386822340883994649490590707654802274257689263035586596243505240506470990356792521223622871539736278031034640265771939099978602425305326223508761688887633531829235344494018799924713378700608785079904227950584715529363313549846255474579297538885115777636065691163083554487944977694667681734725785396166852806980310034180101484768801614276192674298130151373397608086561173875679707129796872918930996248968563572097225558171788437322800877174585051124478052449664819946860229978232730019180862456237990739789485068120354097641562395886503311107262197627808171544768429855722512915635548041421699002961958283846018705995700998013279578201206764146756768041976968206360799916793005790922446259382786498663562916731881172378021754827053002801531600107118975425964426861366632416459642994234781240530415014275528081102431845784156451026709686135655022624875132291366604597403020337777193369083062822220486152327865386757243931195923917648226803200045406514887151642610927088097171626584278261166668695371497223666729557967698444864976696187229046937283825972882474572076451820754124492948844772016255603331567156061107480731706518865589903801496120343569707718753835215952434210570721798885765474004282230327708312997303989107434105252590492638980212872398407345164945275305216515240973800215660645430922228181032579971181601409710488195641493366600705584735692348388703324231147486439396190736886390503167763808468721631475670578583624910204272435808466044493115902183673220601770607638043229361481218689751624726830112237150788222335176872205716714787506390108424809905718284112697421660892591865142969678110476958574939831449768145885843966265403685430158579048966053873267408247121453154965356923177210496007469635174108323947183746237534635928654730096050130149883848489732714092933369010525908672699628407475671331290757951232078817636511734637507072543126320955228622371350084670682795115673852192988291352535020937469168922367390553747223617071977577571989081816638937122993796215519902994204866191721886564548456796961270747084504061003663806861599223861558234527080806960370307528380493652121589587256739997328996410140538758833202489541106315846974864366713752305889947781824633519941616986261184135052474926839808199314451831853862367420894711020466149880906815798807842909699435468565750135329490887235544221943294025936088606460725181779161179491641006048181049248267513144527452271620226200093668526124662755828266328972055551281854624010777823198013809404436778236972143724231895397453624978026110462850285232828049439092902962613870164832321994472808035022970382786074954182888476133043724184094730635714760091953015181696076637912443754527817413231976904598429800471215636101694359624181052800314487088475147807024880372749762084597740401539233391324143447814675561984051471432087260159711889051690167734273278285639464089253867802879100689919377633738567973744345908789995535620684112106877539761236816356153777622779487732538663472520308298197514000027582204537822210711212793598592879108869561101135619920387561333458750513493403458426007272323197470134442715562309442767924779524009233808505350256052374703059916463722961790114104333042170295621475601643411771791699147619676246946796627350140365309759559827225803778560974026296565652839377630163791772429072124429153981395225752535229180829008539859545447553641155770502925731262888308458165215417429822504575896111061638484281960112662052394529042608249035940731377357893362402278199240214545106004032799748575942044102979748230368278203838408575406684141089068009151859845297093912083643685504660700654641970941350739507233072645211869054736560902411186461171676803983987928477489783559344883368757484979409173698219101761517010073933067749612769477903095954065186067572293577996353201375453889882554758631849858603185500477374244682526854077841918090908490327694809346411399555373095376488900094337836099513939919529062291406101121182561580871506554032656265164904798269460595945697923300173570100601544413925254899190648863504060664608235338980441618671622488594632342803497074925483320847606494176997430787646993222129969739805362113910940251938372234762890212795703317500536996722734037990364088794555979730292200587926810322715070511281025417877787777273488125836888155364003843374190950829119038072334250137279750288324314771524125469715278197099439038601473407386975495179231862250485356719381249517534212406092204434651763773144710186304237983006074195507300276058904997986114659573754383059312019499034741345966305062869254025675632518924924096706835005771068962801140013769827498674346982997572638456423774195338222058305819999140652951422902138221564308002035864408887709865115068626460721307289969693994290634330801887444705198059103721775347383140140401481917422331582840887715283877397901363825402109608965953321271092670468135434865547678147763687939556681503357675084699713863747235594525775527817265345802722022861266038198330814267759580144260067305347732076250624549442116509354435456410520395066681488372904731596779380392169710547427687210296226696461804930410320869833638888708973102644374005866150569042226136905820016075289120731399235783709537817650467233006254527828363558137628857673396502358157193492683982858635092488622411011874004577245886958962063455195188464996076087850136678206885229281978660588437246698332323685856628238619909798075874036663047634895529825145251889260414339059372746886249974111027293078374207723317568438225119425264515511126419710956957731696449256458567582279646051454136208794445449235725737629220555838207189056655753923180723534024188980914525362612354343392436279043108900034990453115948262083190920648527874858923912051825741181332670375585747786741766576547267641897748781750185867402834190338960762164573690968678934875419420620015404378393027955701159790487682413432479096279963481424450368103619699339980869757982650898011642621577350522463937643321737867898383894192225755432357960515305821549540238462139538303766103078889345786805697449743301135343396872823868290131277651290949641754212534727714141166340896425162810681007940140553078882007210842266490900148636205205099065087747047811344797533649154585358089032958000800419185563226781937903700312598280665581438475932993016761886184854908639006666492209916042085845316292985451656733465093847121573754084464749575345959602291202228429083850933972637046730554811033714196773715951509621668816214832212346031516183992029279909109234222134336298582588682995077507640825254636501020745813591599565510578466115792987872162552734950037101504781047494362654302820110987681320559318852539468844616023248863385241504151208074276302908027409953661559752261043824097359508112590639242744860430165141639887646627832566925559707254486948550385405097883846406864622309788761171385188169006382312458965069287524484627635674161261992898426951534491373063565900806890138530204685862575660108216254896571169281979893567075176482291023311202185833287345755357776891877247017884514624969806373739047135549697332049317274119818790604346480497473793906281272541663074072298889758697020562792329364678485252184608692801335698045340184673981174398047278588586795800834033463112103905347990639238000713481932097131939934093404136017554160537653990543968045860851148675348195362486289151494856420607357071313405522721580274594354604699324993604269901185487530542702289879084354004911882835350598422997664472615777254115666092532313249239737730190227322268273416947237461309560624233363032436151476110390268163600752683166644961434977116263365823123849642011213250931534378535133431362630550058954106131798160209420316271428146066696381879668525256461285028414120306269587810761532341896153033472951771098386552219942749203093772717410111911774033218015187660921032217408188278476412310940553252397740869689217681540699763126414429293687199311171437126922384603606924216534996103521059621407636443894092451562873312757818734897580768880503080754219695292466926361024983520360070352477677093724820035738740673787502393982087431335109695132826399482194500836198005545347932800266338854761545474424446036399483836580332769322450611631231193263940521881362755870437735952356158868955376649562713603706565580186896086239700569078300421761921640876266606806797471264983648716765912380357846218215697418234401376413420644518184538681115365887919746366242577791395381024268376852015979804579743837003953871329770102191954439270291529265188925343142503115412239040249544186638114700234266362722517665731910926889807385070091886100113344963789659330837905615235097128227618252120683188151914178787217979077669329357832887270809932107818514991925627102233913353688365450807503924231398021647398735597535433334098171275877062487509607284821649366663176489103485831221766617356352535274478337634089786115170432200514908746522060785876981600395795536564921687666599975575765574817746640788512914068722072182038537354480565878077122315079981838168413608871759707179211211699320703208828455879344198189991177262317343767240637150826540465626829710699088193073908512084791040931911955095617806340496383664397598810246372881222335162766555223787784493749349526860765314849646986840942740947482938981889840533076873611419791943905455028212141663472485058882770111712975728249936458237360104414225207330187798303891806163029265014582518512509940241983530493287812331261179046275885995959538632294392273474333342884276423813626361819582730586135422345159873875502076461245452857937541405133399952869810164426934342150727333443923581647295830291591760900047488637432106741821433603334976175529418941307804876948062808275576959612625526174653200530501705653913825622776752566861968817044188145652063824249951918305969548240271548875036025665888111670330857135318256770784392955651976271820569251228361111675103005011079211398712764449526789795924435113367057119847703192136514743436750892098085215531713515061347195238553829722321334365359115413160151606771353364842332522286397662327122094172331993646333381373517947248692242433844628066987820810624470316806712256431699467917128201230607318138489239856227855207822301672225358148886466908964691191443933833758129513240583898029708745827068873884692758960963530403999043867457648970019063511318857803740339781504827131928968409406512389555624664111072186611074216199288681187017822057052109483809699278970886576990628571127035265646309627231443815537861944951914165393041608255376424585491752350717856497419867910778578098196563453466878274850693991553726436442779468151257283387143441688297789812492288192334124614367255531842277916705418273001531539411688329196405738256305828146977131962791660518939991468787668716494739150831401924161558630907543987482467076424019062407900246723155866526778867978718193478430767908467802812629404703305692745503780131415539499572342514848361457794022659922425065757871321203945606633351833189637244005221242638314464362721633284598108623968662533667296001480589936152831080623705072338818515553146147944143893235756135221325480947395911284193741160131495985466053565728218059798235169860743750090921040498653961122545825287170086970625703593688871855786418084523176016119989429163053860191261432685320279257199201677355157721268511544350249983929555659740621363589129576945668173100163424369199143044317930212484052300211912290535593007575244673681482353786341856136948825825112817738134704488098785675862402296675225999012728256267431749478185544500010168828285905935083090232391405891467870921157453177469337780874585355296255129841754544610167470798513929118195183910835204470945570949472264122984506888973597045304102566520704218670472143431290688856158086656161261078980230571440437261458289085464794888569558242926393330201082754075790117040571420953647807535173300573306580692311532236886265384852751978148629519706674498927487088117799337849377274219880377137802691974179112422562184579232711999707288875844773171568019856340939335134222262590735569950817380248218277985336016091061683718465248809051832603389883672925163938801518165132171672167466066659484175794469321230630230699837253416063724645605713293543295399817569152922086045682761874152526838314785881239653205819894305059727140526266087414725539498294985197983075912611398996737929871052791810429529621991432501045226150787772491998356212097582662344095541844333598345424148584192471930174926614742900222600352800883696764506854117797456324772733586381124561407092896558928757869323975094525551850103399631983197508333110157589309247084470869959823116868783535324764006074569965391441714454005900917803115596203816881055259508312011410150746037335460432407507979862173730396119814404898337341218602273532583363927719375939811387522561837654911197080183716759023152366166370648810783308732993700623716637933597961633658577395952168209307388345636899769648151697913065234318154191079284106504519402553293583781320601263481704087858605256747955333094485812019148616298106105298052941761301090123951197373754662457529225526790569328257351070141387005687125691812051854033635836694103540108189773893938848531310239217576011497535668131872398460372642606807838698352628890923745180975959588312490075847135223847263982062146229930984676941518998087595028171503889431833772636643550207158216523847924610757980784203235014917181036798082571623538999948753925258049480101795317063364993472931792965883709177860050655799937113693306633556987049634064606053114777590553225682239677888017317932873481088934348070423654210839421636899929879875122675442222076388475730926468472335460543419724532771511639929065333283882810549466557683281372866790109240872336235953175340484031973928584990662377864195224253362054364266398660510361967790955556369750554597414166822929611363723122997814186796016327498095336741840291239968764256140419742492254938084479828077409955318343468448974958292878452636849911511282400301774529431958982068063679989101751973645878023040749146766215624688288722038035323750101735371180517088473900376298050267932607397706457031570725556370144383293894068897324629124627930417096534363103540502361745021665242391137950824197334556402037629622774636479876938971557253358130245324341487645380474842080196295822970049000525288077478463230731323846044116616744031446412218260931645646201139104404446422590587614452352283979345254630946450135384632833115136977658341934263600333614831888904040957427271006755604541101966704992785536112065600993864655241246664859127285074668989444926426828283485752300499550806015873767920388054291118365657751220769373731752644633817911446969909289379158080386617190603051743214327752154922995436429397753676822543605574794565748974029386165592772942669692009579479133839190259138901825389237307852353646368477287739015257491666932575014555598387104020374024393826141642830291135933085640194952325258699023574199467595535293310277577477914891543657490178840377088605212079655025171120459342609940086406470093295579222832854631563053868729510457908843336171318399568872120169098606854507796066553566628107648650788588493404173311880445411383318743831841838130235979715544568417085859305178402307019055069438942575884312634087441070313448149997445415523137937203977245925308038935047230468431373235190204236687211922899174417283808150610761352601883550930155876872728511289993015502061587421443592836493589033139592405902828411433024290676758225115601206801636396860754372042664049047964946765902975196568025237867415132901323767609259802326308537621422840295829016148913409641508618335871715624909554057707335978594063253825879920737433990336068970350628953043640073069858449420690583554470114008623197288889343752317540454554284542554934547151570346923534783668489293774892066488236779477546856196277067474439894797646981127810965364661628993520962593454379984260096089108508320072768497283510589903221405267049312242885154595522153733243655862894789090076836364298619651290705840213168888015442881466420405912306490170904285172200164667530602896231234505129088812541321266135731837292348475745662247653539228881498984430579584727003991015918636560924313397879706525887742461075861944367732831831571623145528478220784957608499390356154850953731651810648683788370727158545371965700680595459317090101150840455632985385627934429594185537639612712419947461103733266387825107100332035556180259942899926468413653834905234980188118713473353851893892987790130132061337216061806335116640162359154675881386131152652625257661395713807950490784570821184210391379039204689588685798495576749732737249842443969427801741223170168199925068024865235634130944447167762447292087397726748499568614261689785022245173644938075307648179535898988850451847076547128816612213665464440238687719418499902528958961299846759523116555882490706292628793857922679734242877645899312227857145343257706064383148801166828675275440151678735627544328887537261899336599044893104670853564870464076697031196089452259004086606616984679161469192300323532686015797292205658153028543879021514193967491708706985706669992386273547927479742906626610975291747399056708488252347441330756265223485482599507294914037797295017774090450672838890223523817921331244185565500298696291545467845791763671188759341199995938989506205988744070493806962021175291672656088244047660535834691251005606207764961016310735074747487346525015542909271167391834726596465638739589125824550965727233505587270431604725369241468134317376162234608313889612014434496435633196481492039937850666229414129262848670090666423597430983946467061057188071465181085453279502017480712309632485039315677358262974311834462460778555771517997198525577712212322448144539524182889448416721917015002848493156140003152163873953032831246423085464487132456337562447288001636862348883787551327731741591104632422940945405885649865314979955931223738764655390139843291058787216893768411494384606120407909822229027286705678049473388145952220889699038786972812535669749272128751267246882000519572237301216898313776497661069288502598478439323248156971142892601489318011304073408016713829714520718805977818235001292586823207132394523934164392083326869363023995017932113698119415681409533910195843467878461783750381406852228395412318723391217083780156800377243336768810612208464251705474589368103804919545969557918104697087813610364474622507157392094061059275099784297995220453389504736253634006987846027865812946927955354313674319269813904545304920870469639346545697370124009151376437777949759063497262166119840278479996130240294114804876163808269528772965058260900039366251652457930770049657423126267839393734852748064587532766043081509605431261134070006095347289921574454936401771366056019489989010056917559145658259742740234017043181189171716642342157579182197842810980000719384135738937167822945803353539122633016860267639342623255656683374296845432970110949272955053487110470486945869478703627715343555586666578281653290674141427817535103852106509368450095436657166207339706968428467230196910212612436368304760056798013893724274073962160753349620594752200064106157271775673445208458544395767101910290856302101683627056643892164649166226462103234410709024307319739161289389943083861145822810977005892751239558924759960026261939025719067305119946047859578523730724262542928126956934537803984906226585523585492027142594758493272769642639341053454939736710404958056159243251809607247410511794158578589948529731288978198564360643498215019678785257289943359496777526265576339106870720513111987673115622107372039002742693545512801030310744914872679924607415398510261433750483310865029592878036937505495864432089707042941541040558455025963860538295902923532659804669678687637215748489132102530042296108330469715577152707635247039140933434688272810447534973379557119724297135180791793976864789203375871407090421547740206181294771984726357346953184445301467584829617924919228533733045245265375283416699163097618790774366074130859013800505583038227468996363819083734755434575943451415525710047559954778322185397160843563050876533233496706885231767404048594841652615176686859800711383746735131005389007959469138726024941239106067449024469974927481569887802087772969964117922348094989897295188878012617132213028832377614831794660019745177884700287864050250906262823053919098467665086965843199913064831069840331440307081598469000984756748643955319204425356546433128974964441995245347388348683633457027405170478526476577207239258508728928531928967183767961792963811549373054332106868109854076169794146378572387072256865289655166542593144816033448321107085517198975646927481813742748025569685357943321927882366152936575887536257987825230811011910671266170748950951372994502017338554355187200723798839889813580342558510083414177947523492453798192370665122781219574815614193781010459155184287828591931454455074525324312827516285049499732264480351144538281899488538362689693162402085601507705122362437786809138090291593894210931116352405923086460696717107584154100827734030038022926748267608687164568415431622133132782964671567316534303627612593034578993935906647047238652300733863460661621594045502398197728493098312630384084444652177570179323078282318097407339414701230839197176870022340166738083978122962058567583662503958380613971108780664570361712595867875846995077050789388082346596794765054074708509864061437063572156252750871329392752772821014687949231086043185483854818025674412898258613067958984946857944551563961654132197183806864344372766952186194752137756456534101357337923485921308858010040569621248836952066044866802920237874862778831768816691622805846755830220370755505893166239284330323695255473881956543061397496806528708946569610453664070508733271190560784039276306978169040933455694903035521380640944638192142330208771012926238963365760285634231314927720913993991350192631085273077701832116072027644326108498628707029285217081937884864759299703094723074036382468774286208973637729682930822625977955133024304854809139332220948612303471086645981343049490817217205652434060274184711020065647523075645525684709980841890161412209910863066083061304235102144989325651173145656778833369322098002552838225364857182510962364236416310687456927194938736124624711470344301958749146375697524003976327512745198567045303018960790183727744819942061296192982682630804749878170730374042036945241623822452106745071531806836173793088377734011248263441336550496047053696947525889729442489468844813851492331045978016918392364834019423894354937924744861375484012355526119559119663665293845535719902098612748042802346281072457757298150146510661932007778630900659448472854882983229048620123002375917333084501208935109725449967592486145481717724964483258563046367815245172193128225391361344644550504849524489208075890171476322792988439209225861674466921538878768093381990107911184982700078051740754952126150489950636222989455603467387558959378770800259841400117132238456408171846752413726932260860550949767276512447446356665671869485024342932499055886829036217799852139013830676932841417576582234100066836904385597389268152676384359261007622161161605680986316872391173130884059719840498301236789803805912384327229368883440336543564391943190310297463375000508305141484939969649232421480722765825732185127658928076529864173069254205588088145233657172241705867616539894870984810303739364264950657402671076108128024776412241936780763936525002923475361071480028341075466998610647184799272934089097042453274811918798761353517239511916196850357875528521587140375152642187854441952189008211632757508536879893879733531773694553978606505737259947052477566802591651236393730604569801072533954653048633255045914633883118295788449980948848256234931334573485783651667465764938910488854753004290373006150219082480593660626159816187102598637140477091723853381389134825604379474310463514865795724733286554970796354540469381020826917179445885827483746750869665833273039078271798949385403370337583744738558934986434394544311143608190096244807745722386792661782510885554123011761623572070359034655877819442535705937151531790233848315175130570881721276379366273288776709528445071514111208600733865294421307541527419229923239718818614033710183993311990970124861584483462475813712389755200889363604524215488274704761830641431806994564643644159065130384736448196652963965609995856308915562687146402834496298953185013080616797843667947159630573363741971493627458713353015968307886314195455820192396604519902099668086856028854805887651424674946873350854637737898544194622088629426013857748808527432604126984931330400764492507968172371716098770100078381083096090741164781455846218893264728656840699514581441090837032861318276859946849227690173308630601687263470132156911073715183977349242737511701127693462406425037998513612075067774769998368433875319626014661320399657529928979280634679805646693105294917708921591588933145152926494424616377138056136992139729410300916972665262528178771118170239878946030013521963820278828251932997684305935786596066444168007734624854615009317964163578854897140724459784588316849150927858223345158466857357028601987000479399236521921401155972836150420827747649517483958198753635443476874024450900473042331098268433620561139268438845255181889340690489900569843725363150307305651498013619110950898935570864293950316411886823183243654864865439402906743466999337024202099620291631057971296436063076736363343443418090998853119454411682186738329128750527214053206118673112752469505084596311938570889245920431489930384530588555586929104390610623884312514593682004856180430254033566263818526552659070222745775566564386394951632774665763292987169777920953119439955726913114209550144495154152770513110837618180868761101446700104119258244645411540231873789097852967681610753053661181920163677861829546485705334603727912836685139231844415445170016716971594849810270477515874987099181685482994156306049477089991276113148946127982469974046380993297973965686061323301788311533787252507451563702339191475535143508920313826655412359830101082680616906809524334501609755248284661085399990649164966983309764787669179152036465323646597098615762642905766898737793223105071442519488684981711823350967501572621297859791000288174222443923138674964034342514467099622035336775863228998283947695153020230706133793315568527475359526573650238448304199021642730593521318545750416887049030826478576723645667176840281822918907071064007398548606851173433567097263677442007855435638370730868813963296554784005934617243042414851766683007239576012050897748336447257394049031949487026822936411253634489546098109063388215589538541494323872138113405041196751359806069805804339732629786263066958512692351571082751631155150356096053098699616839006995868017108134801349017885005349971006291391796992229189068576414810158031937708040036176968653620276856208124461988175150714955771562900951934580030715672787287613845457155525713470617924829899021067324661268790542398191775223748710774896481623548700404789450952839874885817474929496428337025343745773365001533648598990293710831014321161683802342465016295679249093706419192917146175202138913747393606487320479098012818462019837808552999012641619284155869986658775621718434976679092583489767874426228155234111941356923909227443540596054714622787873500774710517804993150062103226870026207719219086562959072130555860057347253933244862061902194752324299903617994221426147024646829331424067197658910335655499324487577858500160459928049049292970406716054803529990482939982278481531376660515926430721179770047477084162503073548055980640818952378058987419590711762218038321434558994154627253535884787989464598069458198033873479817145291306709211904859094156609790945803812488041423457486078083162404956413588877139731992411812673786711915441219283544520532542992673547487482566857426432040615499167322169796141428717203799713808261609319273079647177549466094191083883822918204028617443639767897017687540448935936255193873492165697341650080044419092625153734033287821275594450621708853760027795091431315844337985207511297117184077171003624799200608498546234665901269511533117095107514499351978634398613433398487513768586324342548930849758666434692339499669800302204074248131785819265197739496914495473640393606619934729966977862414147099243414252010989392332280995458199461360767598989482586740656165062902071463988840197829364683202059001830742651240265184077585938202092396558672368160673687627959533299616661113013557744001953009048394150251109377536451512023395785778604345567313541962094426984465506686639564030727856756013513552918086167473715648591110071766031640840711619181525446825306002572724841975429615751213677840860111829829109993384482678469345083360220916087129430322234140064717351189891710276269051217175309072634056049984128208380826921304540621727131069353872597707028892837300618204579770879624724676254043599420783743676615512650704744288489975826584443896448168082310954177238337394586560236861835434301296927020807883597086014856490572251944586771192654034589128235975578725977539341251442617373929851062047202122236281760588975405680653708482830887563482351960312391593171558386663907258557882603001166905596307669923018904402796194810342457108298853286951972290416992471108058678932049729802813345775383992726637593106712416277340547131496645526234486807076084571147098408732925662836668287780677660624148231554924052329074502840454393518215353697027241676403450869612371068676456115876399877854432775979341903874377170014200386000992379302813163680059897704440889639731025441214261183586386271607262403866947176666432846922617330746781855855852947448932995309617571657749684189395959154865828531162662216331452470442664177627674083005214440044502010371964331190380209503745557833696581958596308425976513078409891882767528662532517367783803383350211093748622025974933013582994702136247181191904206733200212291800382328910940006937759660659002394676403230068579107416871592237488200256759552875815509791732303636726112221745349307549692417140687239817974646092867795182025273551880098176344736685023908924949563389888625414690391595024352844531623391319265582688965426357531383942939327760306043894438737615709454599499103385980199311743131827820614097380865243975061881519052726543776555760176628003678491012545235624470697928935877540835802515036597228555204417862023428382022024999230160737692467146027441095921305743334874537922483640944723986802893914054812171072973687107072901172130317996180779352085865908543132732473899897310484770221563991881682010814450667176710489612812414592359768607289758834358030553059273502711323008730499762004385510084708000626727589571077621554857166989592827317530520185940579312248027378499276831899880090702426478278087025439613182012291852112256051574939574177694408022769589677252111855199684467048988947117389189354362802766589098351525397466893082138423917833362741562507479067767195026016928502159743279110217922558520210842643478387575855718846526869873820395777741888188085345977905347270591685723400447376871657483088977675390553016680513310445877010168759595282091997398776202093306373004014970342446575076685967900714806557575747902384297869231192159378906136167647365549912123621980433310479341462183638181619751435333659235882451650441147916626685748289501065538812074143131161563801504479949060194648799767768421872047668285311593625472846527648603985729265353276011994321352000042759105348094078875277053515213396264533103369936038040667535242562581501434522688265153638267214033158510919977281512532144311792600344487671748142911793917583886430834093384397987822483445870486821171568489905092056335833716422884233163128310667386598369000785410309794822344010340387355779210542871819951500029164788921774267630572906932914281523885264643729986480118075338877626868347872846703640699243580536018508363880696929025692322027544206894419996289433920204169385886169611219283505122803122803279551756051069671652994918104645470513860392197769911627956319197360414804156000263469695299376123996420727706873105487769319948017798684407305914091067684080273916690648300445747155333407710367127685577603020894104818221664550306538969002293661467499507812913425739376007956940497250899727411493344206569490341209666411435329905326791304993595312226636780077493677539841919309891009135385858207186750876297211243819864948760575949204539483566981618997422850127683444353691700040454985684856205556170039238067856175604144715129770902864754030959657930224921625965155430383616195136254110061772776107369437232027569882871298020619564646912723826682728305252296149322751728640892170464246600668019339883526635324414381929978284789778317007607785187009439557062756163876672196625851307364352366437769531156110454469922311498949991226295735741716120220219679195972186305338598067057121327190204642228319847066178726492592645370717387597783267380717387538575453881923257028726538950117614133839652209014722389233618026198368605695301153193940186737176916163527679049879769146094159120766470355095990583398173761664511107344998822604365226695421446736614236181318632165228676150201335130519586583875313992070230521503748598375391269609601803970359770670217294266856954834001903573456688598794051588944780080670862472030606337442114899840184406538274242895240328535177576416688919917081981826634697005855847784481338912379605087900132597904798959775939852194168060521407235344660904773650345919507667322245173698415261694328358780046068688120132503674649785019803397433771340440179272714824866596803433605436447763068418518729072179762164053623627025674402191051413647099690399789377698001639793602532723389297687960343214880473600292551101438245718808540118540677439836142295016554859599394982408633423666927400080818429854884750544381128855651038310496054065667139871211972135903923083948819900672925617807634912670143316450988420983950286514273574012972374682377097965564148692649285936805849451789202010391822875262958305253431601737060260225187351667904598793326499406396883164818699853925460072823031669190766985526176169096135773988590693747145844451117423377757504283917793189816000774255823568257278315999052043578970439479028040590948309191165315741717811157235695095181359963492574409665040210105205879572227974030740923338987712866687737727381829308039340885404553440134021820241801511873208616263547361222752568332783629232590924700618440913551067642788146553549664002526782971094365354856437631075965879782177424191906018079044128184639880883077948040816958681290416139862035608972758159065314918603157056107927103606746583553198497607505515655887395376569606832725882448231478565783767466150827986748879559928900505822894353211873884267957438935604115218269357070286803775986132541157828451853664236416443506932743254405855390539956612338801461128338096775556877573409760844590296762060750998186252082837616295028782461247837244850798570050680925850338062328682412696453751617084027748082952600991510542192447015606677077379481414933051958156971802774271632022250743323267674373959874407601303473084872774363895196002122806201629577035191519469179622239624010986402313374408953226180543855237063324575145136709899343912641811287127398640430613563721920991609842533435812300591570026317563396376047941386114796216678782423533802065182873216950402081840161298415552644746806920145552460885196392465802244088127526179712414412435006482229625163976932527695688262603248465293840018949517455589735574549166294123625221156854285585194347025425210532904746434814993347645006353650162508969391326414634094979885604598381683834973224338281025455019682967921705821019226686106592738864611517350018785089842813446996240166146888981267864592435491513165968374262508087078963572324009563240173688759798263444108965497055229287571379748100252678174928014818565971324657393815076700823288138965630707817582567961765090163478186886661385223239808075808656367984279885519598321126894520390045068411267811634716231630322537015720986356966336603841765026870696524933648011797504720537832410116963798981872105890635270738230877770644902025564371789696714726140517605590699239160848799326786441245697753703961089371813081749032533854451688755549099470763900976508304518485125166574968260102462532293343444705395152124714845400844093881018071671981201956871021986244333789884908289988558657795977168805954705096077603812855297703466591609477633255434100922779261574387216678418026125666877266504570757079371790363175256817541482541746353228266710411192785468871164898461437907836085665593976040189950051459595424443495808236053352506217532932452732510690698749720026236059462393307675542024308799493903234347395578829319375896085896131754310981740219838086946430999244797999329865380718435779961098228002878132994769589798165681828300817288333671077601991784218586631824851043390493677169676131967766601836563422141117618209312951405936287912666553831663858039773747285902585053759603348949457990747549074817205327835455206050559255556591693104442758692906742531293015341648844550252921300730304140196576399386816090529719197995414946936714454151921503202127703274349148248623526592857710974420686201828934465381213807330444579012915037840399182428648341405455082521843489400032673411418824699905945490981300309312457440444204273110396197317659309454563886069863401749279915722483374360074471357133668192908928153523444177899780993860520861191178983233444829363172592770767009842948782844081885357109269489859907319080140816510368800096107326977178803610320931542357066124572646450066475825265853526149539103172453965246620053158746307949526643048220167592895469169837481009911788276243309635115749650089975166402588308497171368050750463839022011704609075679040296772009452203612145167364048491350205586622572250378802572912478536708272554073373356620058793113708189784362667288834188556821736869336519595193061369196827061526167165516113868919709853566421931067647676921588576250598299198092312794909295568281776690084762669160965861300960644572392684279533631890273703270860398916463082598315858382620855549819572655282160191503313297598516113377812223450709848188597229575289159164744222562295549774124416041390491442909422664943507910254338175164884006376035226171397615717206268720707800406821418345144915572687533367134743802024083049487844809429811892577463710155210693138905551134946873114130973309979578310422879523129992690884612332348506979673083743370090719640735035812058407105611008369604202064010813987446362496945164921510703036102160248096510609735519079235881456802928065540132254026571504228757148445263468930335280269334786584184232666852064327368732839334593369308851544400232205324862276894660092762351649188624655938949138070526048659904211453113697909536511431465048041020913371809737683998258625918230819399890563244581598876460882131580595586707012654418481095794551965794716125983694738929664644917264231484575022458079511538306624989555457254787887459351188990737977065564161481696375133757012785143046148044890033435839000347141268083167692842381926716361604456710440613590974917852811855265483831358367235635465389411596890162107962566959100990535105882039604992049317668699061099006381191043012115673945209871953149723240781933833766407929582977689822195737692525093088977048623131753469559088203016285657029045544100849702193027558944746955904783479678001944452547751697943476207754296961319409549819625950080045547132992672711778060707504188233002631846527981934834275674979540409648237830615682871531014333724127178702620608699778366951157756045481373626591908746540562318903128878341652917773507843806293686749140268263584584622278537775599583939003023758608655777052499536690230398018836063639257367688610126062683440112801603338595122771846574180457714041238721197327335116692764779557699274612670486579213023229226096374723471512124388540606729801531423172375253504824164117036885964401375976210585818656009319387675675297743028625853395826191539312640877021034389733728631446627185110166505893173630655514988739098033244815315717693946786929863934570572074555483521485631904970949227160912984653502718700391402870909825187073137830496901987390482385737070104338764513335082697250861206292323339962001592434538644953310363641329098367249426339497295476715389692510629120326089427707447764047007841001402966332681386995827519270226513309063495548502561926416044202911232723785929656662831913171348925706050852946097824481324579283943436257226828819851957023314003757054803233007646240436524322905617998213852360981308484350627653588940058371507466699677410689609015698457652863453001178276145771656278267859539019927803524968520819666197608544776990489632454031682714004954917075942712997571969177309295119977767553353543198339384615106199386591191991905081983018786739907753579253319411316455875628699656240084708017950439114972880081774392260369279271702895887126602610093862862843771775844732931537934852537888704506996367789467290224582618731101157061137412364122997508478001492972970386799511407775099121090674068932883530239538551729601319072463241221612701282458178293701542039082817424885503157258676649867484717049115367080788715411740504642273462424846364711654989868119609286733732055650991610578247332425181972283788005110610119714087949500752794244888185909083924786553680098993898801345563725923984345930556589557768078937259044854391013140800472194387952754359086314176504383718968633075064983541197723547313815907377768929954908207941136862100104843653506435034339382371646789040770190542319600116852207858324396776433822882534372368328460876021718864055380975632669532224143764946964207113225590169980849483548502472369746200406628177991899043262692728538605756840141932134378207698337107573199933055473254963096110999612195154854296179416487314550731639223408693957565600024497421733707755563308298318091968850137313849545149613072939771231833093918137469687242252758526513881704632066736940073584793160934722710914534132768444170538053424526937484707776251747357097131946656646700702349838436910600068869788711744923714049926132281180075959473478552230328369094857585607474967447212113227485066048438156060837875087714622342891459739889942089450966338329495337022673423843211323325226860539499326928794463460395202307937143148703103482004395415446265144951381993033495189779318363125560204648749478106602335271371662458438904254444315853476670055750598307290163272811540395185234520504255202774567233419053866009611535721897669974240278702688783474289912511897574275933124779740516193147008980621028801889712962901922346524894582765578643476545922884824399911757396458342920131460982645790233540026884650943446293715305427157107665131913568252264137707822162746708808330959327680794653214720429350549201616348045309396879733385672460165565176705827835835667105473160449161912541776574386358689908635288530583283119930838913652837315550596705544332651798994388154740466900756269351729672453891678000233516269696837928705962130535366372753413965016257889363388208890088560741666768564368260130557941125686142913284592292897658541079140442271393557111679089227637889226181824201064837879021933118335022554229431520217193671708329261955302611625363617960270469012084315762328874517880467031454329707515666821251090130851932617192197474634600838263546271781809280343697586824113139348160362053510929124613816856410581457422283287695195790614889497121020080643009958873414847487960689412156917985746839889769264653440096782110237017781345118581212762572155822750976893123475074177833495092983052175826823799468950905137982140703072950556431081176737147913023012210602854142293075399562282352996709575188111329573623640007102555193051931911335504512528007979888786152563842200446299172229605020821450427192115733476348128702132685938009309130368033934575825144327283226287735500902602233161672332852534703673647291022030317348609107152444655888685196078563639716020247083298376908037330550921475148628949279673182166783614751692908900490169298201765686255068622138953919820015960958693797923341014579627480614770651565290753148720293178792525445174766976197482234018241022242300480702951905512766110256935253629032256665187404478956253808256860604948820901884094236794329626967958597339199226660003188358091647983305531935690327589251394128486678838990133236093613245223376219844250194722588651246672916796719697701385892546956353561497666593148035131984765962147803994201766482770003249914336305795027779977519037234921316470362777820919698810568511350345661045196610660755776872654764675449202186926894832739072116908679096898510821803953357192611950952313685607226743674080211985868742098546694637273051999818463735966864764542937627948345586652013149589655004846741715355944407313211759030159877573975705983504773374295853259369130366041025510548443980483791874590270883581408557567256398130786146494858724902320976744616117060752408521945370989928226373937873994082339348136754170929707510330636595692134709316534762109844720719461931573377630150682806688112909205864716198617356345312477193262116436612021541634095636871613034345496024956878760172426334962540653969997304529590248716556821507198476923780961899001747473422867415703344071934609148640590428660063334174863738877627283198828302211969108629191309153697959836931739003153420067320274480491391345337184543632909578396511579347344051638992237500311653046131352225066339818510166745083255087234368992860040346487139552746077368537599751817007028397547331383279714513063027596055146506567256163150369691236803106461814481454937846179030654580295402259028240825978144798160748161314803907258429711588128181730891199321814220010457564106404928646882953959524385964492848690226233706391037959416650694089299703855574869143962987556963413371730083040404262547524513279413505391698937615645744821763623785404237261265665686301669688669124548979828310391613087253321699463831497222340866276028385895726070649115231012088917132745214272846698280670988108199208895886693503127842462571992304324386339789071671291037941903628000266828129785453096858609924210242041149162034314294008426858171049137696603994368686595313703105013106492259570860322823840355467262246445725889316143127880571110231140742446819563764021956155887152841931356782090672782805237182885486572802529676973390521006154520126371637178100765122545649989917359325901013199352676572531357313943446341410985039699596189136380196150830411354758007640075397398795580440402046474465742101449299266658147465308416462405458933456259091331494040212654814190448112535378178708418549856047057249776675984271860719949716541861180045926152681920045796998682799558144047890192291925617364556132189228527517577507188477857068350091252837053554771984809642630492982184144569833395480883025709427539757864236089454688740129739420059922598596587801737073504189165555855167958336091182836422456716649492036206452961331346153296111669942727004029813668471449803805274154980899066389438692112700662067359925592600716041834846921856734622235316822433403752281864385815908519841829589257674196194044748895124787265580869983593168946288597097146903592975445456462984063229631249404014564967314687190911919393766467900457947668752044889545559488412869315825878641469309788534615640798539154950305665165038634515301206676128871297521459140716240459695902576257670702418282380975362265092869883634855717037991762826436593141206283477683841040537791745250585391196383546310376443640549131612316020924335244563836143556396861242880109009774060706719357604872619470816510461203055068520608364921595041781651331434861098688032710314104700690034029229154215463863383352045159879018625905621285765060342269810423566267419179385357979698466566279222623671152610298993539970388426781067305319992410712387757741188271279326647764748689609138165508150024727871258119065492114967396306609361180205092574946832771895807687981726903857996305336300924135757426848931631208553177744561664324624511621468495870664182013123315668783749896876653232365352060116469665184264854247381211400070987122016137028567366879740395986964313955944878219788034008910037653626001801611048044457578783714126457724169909487845798615926813497363122857261347694743356231555668323775103276393350879304274275364862233696091999383433080694387181416323741222294551553899254094411856782748351424798359738316158954524044149562573601189397497863154342751015530355800335123024985723311624295610354251432471473780871731307756116629657886114219106071118340871230080625682840308402799865652719204958963122869282923356760360227666416469057218861860831372892566932276809420080468743132534061032172560299219260723706846530800294120236596619981575208947130922944415570884128831607683561006258829158898644365765649197362802488369001405173962787828597996915220196248948818483777886808797344879237251046826911226533517580291333147594939275552510429415696759269332384696686996341248114955065210303938921817250099578586922704372334717250512392173613283439639428045746645360356800465358574682789292313983314588383719397168170289944103007971648986697820149897178744169060185554605069685490506316269133499720116493720657201591409089466126073021678105164283630220706324540731772392879248762648982215954093975987150658295017260464633146819820205785107033620866763878196297568620268671733007540288161928041276216126441448695201046787415211997025087518219223537888904490975976798598501325108773122668073368142227240741689143918447227022134791098450870545041593460330917415178327401894233598382844809619388037725908821220469596845104872295119409681908240058114074340226232873466415073137351953675365291554226460099107659705762390913786484062924395450041797700990179555389381802106796110890411652857301070634081525799107046074384447261720588874396727251269452256617994322297819464906705164067909195213640405158801169360782654506164350697346579041547700297644929210562168678266535945200783873974198771027640976802197717169322455395394151214671010991792950728819227880377784102218455371749541008299908869887531746817604269654682428930991847954865742502745687907511336200960936607538561302595103600102973598621098961529351366542245487125400899398901266735384574924988251957241759479872738528001929287279401320449849655497847868033364260837683401150214957395017813068571713100631182681084485613179798206933789419039600001522877535834350920067753734287558065558174416315970408540382768582497193896104248276080958635706712075243091833162517539003903105677009182482275187696495446779357205030324719368862224953063176824640708804423036676031178955034067846268680603990045638998747871875741561097366805408517177559867394553898556725189755624656514240224300555345062832615148556143302163084144277652225635308179856939494009410848742112896794788787583183347723557019976362737916142044681715548129801768861285191046381984300005410029943409168027866449674165294316169401879887863749196636926984462809273028440714687172944089792876044893948903652421627908771401416239092258737470811942518440914214448193130486569830418153764905702565489516779288661084827311329207704966916325475378054914805381075629718121335067346337914443734294909125922912966831965547184291880850851470843882876347773986264693463884487026920552945223140694415602860870518204849299029878182200290538100533438505184813341328680553396750139526623299685315966261274148766043164709478528077517085252563428624523151310974995382660456027090520126320508561938668339488463256276091140949595812190691749401600096533404605186688795137126500515143465404633427419833421508144402324750213801370843562257881774124856817930996656131003045366994717656869124352418481394326599919191707640449873156998759049456506199454041181558477441189397752810352299569518061751913138832620670363184455064956445041268076142165252055449750465052268408161529447069442447250622689641511942481612751259292999418110577519958995646833971627652216648124957933692781534746411841424665638121005444377391893504331998882244517570284165764046369712429365984245162266056307990718862376088551321802253626471217722965161628923926165229559333150258182747506471800084753238768321684665634659960405201214081706289271551171280086105679157764361956602329101139842533089933214130300405497631860971024442535407701184620328820259894269594350926386054149102433822927528867859351886161136416983296596167816108034644458867666176343901818659070850331284414625247774503947969537987543127642496792144852819690815628199834300264389256754810507861250709858320433055312447089296357424898810438619497334153923395419181482954580789239833376802080335014946500421483573844701559253046877579085763333087132079257316381832411576857814104960036924673309511009395820349335442056620563050001908763264457793512298047082090767712910230563970825411067040056613041639566415557962439949039203221690627281057845715621062808532078581321152656774275620065747078428604737888652658328116560630014139853715550747802520198652752292029427350673214353563708886051753050638202459856077190335798318166204453853208947610027589709474762002921679668065335547922059278827565827839938399490173476012971914188442284851514754482619187331668844612344610749648555145967206019073757144254859747811769590909975385848860719146197801087147709746804582523763157632254085972179059170487039746706969870475286457520668517482602905799669860717568378074682993629395767172491553355450066773470913074877862710191926924131742113284354313417282080335956533715654162687366929508157782364335324986596941460564651078312803512303270385607098455892415131999610108767084932003346085775476337954654745932622689928076272244569960466044725496890898018675722300404718776710706873803405092378217318373616805783048362941859183300906182850785755763740793772523147348502328627781520727678654178542867943335307759667900737350008208099739123750866063524515766477812433807500507343271460295239409681884451422653462035451221804968881690895824580004396681829637667991378071370889440186576791568206088450953845055776585995988311093938121771930866462284377407195566501433619311254290030415511308754420111525223382198148941052840759455659892777088917616507101537712938255656070767560300594673310280216043912928599627481080486981192210159429486535932648942163779317527111418918567367400586828747179334647869112400596649509600875414725335045633880404709447790800659825701509977270316603026196032608819956823519302019463641837530160228832852353812236080482377349422046892467114009433280750544822333964910083284656281016416096010265283314815657340634039245143334241969894248210261115431324066029835594455687306094941929596961140059463489210475520742877337171562729151892227531736110976004874721692022066306331728764263587292084180141224683207471939291659484663751736860660866769000904193649463845389163986212365755924857638948835836937264538252082907272615491857031777351476266480876097560066170792591220987989507371182929120853682546261035902412736848841923618084158166806557172992784047579512565787614534230889820911126208492180626674133461872437047633723489038579417444010303172387669898558159469107452183749286020095269558183555548879341413459968058150390722381917567035823742083803872461437569139714587613228774800104840771148776160982035352044501578736729040922160210165273633253465126099360373646886297866783778967911647813094392518383794162391472895414482071736178715283080838644366933891320834521550959398285926403943923513579091607366767136128770970787623533823201467315217781964296422989038213723134822194398086282495565052443894056655223714780396947541325544158371054802791531879964694825413383851822167849247129549075706379050412148907160850643786815080462663038343055777596426962586161275513292807859937652139867064431848152511613025810873096023674696391057767420048009925016758927792699458377693513322767720055109456512683941054244078968423168207721639116404818911361732896494689212399820515289993221928373556225939649093188868709122334507539164327746748184206759550610123960662716711938362973970689739366389943422569996090556859324800984911610526918098988605578757839701879628654772732613592214869364616726557001708343441563277529816138437172284946777756739739393109653934566012334774792533923879481842122662776902882021916293389813767708596243206577547186003108224572065914165735029237945083397523115979467041125007442436108597391127986079387740880191400585393902375140541989945768922832860931317555860911492665086045419336334195511786809436791666559157543776579260076509624211138362453380903001975141335686236698005051597918195326869939250416996764757509885555123220184999695864192438220438954093583113502551669893290115412874518255652420828026413360435867664578609964441423116123950528700296290384927381393051182383266786304739932613381063761303164741194376601328270284623202753703399854443706164618229529340522288684449519106889529844418370219371246467657352680674371669448572473858910711547639614490095799599934874141116601902330217505233993798989636258334551918349712056340403161740129589251568383920330642673232159273499532566913281297376723290234425570123039409472169982084066744644028419846721537330950873858183972315234550094399640289725843460775104178743830543813320244582175687176767739945972195048031734259718015612480834027655509402952868092278297859443681490987537023179675513729751272324116303554004053156958876593584813831297995014618772764335160031293428553075275028392871388276244526666753084266708392764948876504736890011060745691888412111474092819353641614278155887437526357071228515087638507964826193821427891592375067909750472918117126703445046139535032281150927625230262608310674043420741586428134572073427603287911925404913777250160652791560791911839965241584778660959791440614103195109839506201996254766831395644157115134364739503275650544168106030753019875928822722066052682809659011811659851190849490648880125283431044229571936141443040364965471129289673892003739647230185158468486254533954837915166189482829418237424545198240179210874198712211455222016483152885974392752841699780597872040295164496934553458238812192124102002685911612068981959993778655930888081093820993204550725890833782054554667987732343754129374547474492796513530951536902596129880599266257311405194510105218198115250732927171353157128562336061895768696179090375820741643075127060381170838009904175921273767384096385550691037887281383283629082276775321845436090510150374810627421135098401550535038395317020010939694911448691720431414901871074046321478535060621091470226405394346190689256328242613165601936301411567302098002394349480957317460482939077785688842893424659385066526152166611212946295488804660227737429881515531806193955201262330279255565756390454132113156294165150501541640753220187674843843162642982785973308033887145188275615577991296935511769870494160238967534285100341923999069708255467810201936454884552847532191089618755490134578592289646919816857456964776163021391011000788728445258888732896634032410176187752703971938584716097842512100123586531643071864456039281552320683412388636814808429528601925869780922915603181969190724083384214142987409955735238776222237719225478977698157369268779956569155638416988920281368461911314086861397146527415942518777755152988877084960252709049236995491814942040627529211518693330932225535778067654710941236724224275079273337028700123396894216421178583502467570488968333601293843416886585703412254817714534575275966892796832364175656049723390628361346785974099579771418457857671384419743387107537639879209840684187545343728393088738837188987467827489876014563412735007602068336894079430663295348768407862145193389218601627436345711575460345752128943783506039361967582163799552610960051710564729215804874261888119275402477854183033072507389807004846684469068207429321159156015093240278087372650045441630270954396358402436819656442419195540322115632376470494851404243182341547933393260583448188826755649879461273625054884465325007232796990072526242776399494169871708843345943088386782115438634155718855093229273576007454733434781810369082269804836309645631069820834876977930431070762899409541984727258530636199256342007583031123298364618133722290696406192627430628255027265125674010894241789072918074942739914374483201722528805192599456620517042198898943733232275666090116413370742804131864723112210090216711222875139951056815025402957793134347880901761324438045427072974918268886787228088896048849231871407200637341479538254126191942895090387155314620662560329520356883131923681307241498672136684379622659087506414905303677812104229303786258311704443438947664335490040866615384913037940792966454141702916843731521959768025108498361117843483591638110442777407329140648888686012035308119588639360284743681747290493507344324953482849130843214434154912052726152462630737817665711704201512721093254166609641436982176091813307122461897791032938682637191613639080284431772802813049788373608494686008777891686001380304896667552902590621772455262455354119397555143697081584334820404598965445274581198794924467786076799304459091939375255821888735681056841084900848839914637943580376237421516648635443800455471732465915072398634578108876518678792205733653291823380991366461834349268506210208693696966580791080294885499682432793359311955193946750602413741629254985566725667540586444363647618539513886597491166000176117538133060388946856248836881309792686059457517623200553218863809452483879644120669975773811165517067425361959397184564285916360547712282150788728143893226704081996546324015114135517298488121813304668541332128216203837370439926322916212511401900153561950754382396891693498176476459274175598687004902790438251343002718918805920521356302346613324302210604999580317395948831309731207071550270144750493879055029949458410732295246967980782547552977603009176076512850470058130956651206226036857717091503569514702598340380299174097184692882827512029094664168773469311761529521070489006454772814948544235197294444166324378293653628077324407148858798375271280205745693326786250387423250118482216664051414622527424875066089314464078851925606500694645035165085890433772922138183763285333133770328485688042872165170794695457972223986246902411924004541682546562284577309386853065569889222433738714036099466602019682860160117391712176325652705460488676116844024934129867354457233575660149597222499588344499722668851436040820410664331622340297834355594971756630608353833974345699903293814416392064706427949948903017057575394716632628438070388405411939636865240115780586403679792484486154804901530253886149162069006541935150322481057502335995975184341990800784213271911224217848000953116095594860294665204152750550418765874954471896249443613383990978040092070710203572803993712777932986987515770645448156925667226103442833202120257008640285895033638475753738453622894807968248650045424119145065156194872060844513198237907095882199677906987299087504609134663902253402290944078392919435890568442762827260655333711005580240948734225469887082831823438602663800213611630981391188132416726892315831147468518215699307255825499373046174410075300393812045658439971596609042320439633893429885944990970412701175540826735567371169455219986826296123957469716937612217606026004943896668779086394570101348863461374002466715303247274981594563697588038694605564586191152355988858293140079873623268387220809783672544425107390638845248011849128854730554325213514378397558106924379229836056006412073136071219969765985072899716211987301650595975590070539721495917216908046589047829876386801870584515787944699237125242328925735244038539926895295139503649135759286606061859673590934455571405200551516816786604227776464555446253750288730209063883501700313183048145789680935597946928675109336423066981375452330051606123308860805368767212131245997537312373719417510248723992388644718628590926578184190017522010197208150326232503256967647386191178891395484761918916044045207675110514110561884760067415623135557150147455734043212843418385623850913425415952072123884681776363181965005460885919884620719207964336684456657705587776009145752166918780095900200561619620961936103077188056549450112236583576132657341760776231537009270711197234044133354692468999602320050714371197547537406461275290010827824240353449669916415414007876956038093529813006637682200514608362241722260541463574200339837255958931032922443997760668552938783756256566136288723546977101306487797085754003775647629805216529588346927923495527380931416672080591665825793157525559615803703767817606289470329750620630652041506441145663499877978843655830872741645653274311828292387222490190545604467732846080299452351482409730594903628615853096914890287277302013721450697431339803251042703548521496242360995304887902676477884656737798242829864742567649490593894579329880408500909893996874812582367526151144077940374440424246589574057975095716201994180776738368055796448420845721339527599683522716703506314481350684744658296992177867986371016728841279769849997824620876986501241316690193967206560671256198481836744803811125600534418299882521977906096969795796090711229192712710230854697974606239972277874937820159697411453709281334853034147552968654169790426660576366633929088341162162577149273930845303717782680310963323397053027668603253416857665960093712980793423440044373350534328967040726355753615627964016505237386979854514029754968683113520943114974076092054709809568043385987001970012961152081701396824393347634661185303525147691638580880684461496508248570262326380073689495369174766070450217141536739177261188513010031494159767333136383888119223985156152046798075535018114476557442006162473464737449082023167432293000218945455636668757504012719771677310739342209288435845018811357779452177391053850057971213332618522130865778675777938660318220398645113879974213916595704752857748895811645664760094553542883443214374691891295148370445932440106527559975033666210054257892092802682820273489986282045944781244230022231218342094372389694010986860375408487308734189118493819380349884548163084659994274233427411591603274108631502506805630473836836632737846402824874439397073411663724369624340562434795730885108530949029690114054185842193793598846268307813884922903096597881248607276885204740668127473091245889253764170829350979814549076422190037236267891489707683211350978493416421464908307048893568924566186420570738629341914084236541810996841219113819277675907014156628603436914816149112017056152714374787391073148914539939513098728206319208101344720333460021659312349644333172592713339001704750546622655885812673773951636453006011292105719256220531651597747309204607958244179847194139144633155365442162355017136729294816169649326699328538367825887244238469971548553071464377421316006857634011520577095876891011976956312350432330419982313889681037848971796941650659443944447260387196255238757393461734690412995858066095272968917059781112282301092977508173332542681899287736177817130646769132576665029307900680761369013462446932756470417639299742899998048197196288093235691885083239339487011116823977786886147067260805607670265799740312307592845198168378308420943612362110823513647807486641305013408454015072268711643995747669964298318369483677975005358938694935770069271764228382148112446880898227125437741407273578676958494355556046839675237919604735652481850825391359371211311941924241390578897347048908159044836195697462400558304603054076998795740079147292631208588156710616553117457626441117476184914702912420175775176069292527174560216062042924324463364603570029534394427849878429395876297822049107068791641987001615118001271030333274124233403803548006740797736586658451787021747472514384981173636084254335023882536263161451810228606725312479473286875898107115858960806777785921256065958828292315919123692301370540156097821195840056726497160136551712591100077686679207979040931672424265041013007246442275235736208970432077213168382210232186664985917000177405907213068257773742326668623738827127780510039394320003346777271264469589813880872336663641398896060578000268630653996239253190931293328634203351356681971449289421521983509171770125793436973702748541906882751800011520404785160133897129461927782139256200762725459449223488077324745697870432879611940804511785494633689741620836606931112833677680433009150916850784053858451539082519799579341334194928215156583774582862021600747660436635057031983096328635665764625114021921611290260431858442371067588989911563980214370824829842006304118497448290293200962441486970911323395825504720744913131347446653853829350129913526252306636851650186569563275308887713095953886263788176372710154485471936772593113598185702082453520928711792682947292184412049590408588676721337680220854629336858441145329768120768586242054640748001109593251205180256369217153566993032106476628257575314466724497993395791387110509717978313618673663105250302850680111477373605135319899801665586594464487730134518001680548708731561625286086925040321366523984717850504196077784907342975509437996217696779996289004906539748361375863669927631501469045130424569081956284177040155935977950141758512152902343660905329755792991046173115375508207912694855745785998197322611144377530803929299416306541805887159586556853348900302618329230873258553508704591636527231560107908493219386636484586088670133879709378762521664683677218049959750884736113306543175213920511384194463853077276011898223242638442279234849589271198292903808623926682488202288778534692992713059438351394410926668262660328434313663116631868053930465566116088504953224958337047548515747719222192244461447243754110199618827755982220952110420130073551543078132367748414925164283717399103443681303790470172149409675411571166717910800630326944711289798855829649895446316756359080077462627204481041629857753082601860361541519564381868242375785163660184610968663355654109053463460761575935738845614912625941431228903375642426735696468060799186803403164174665634214945214658225098394443495931816525399308270211676570210381318207077276029736944235612395565055368309566958954752832400070914385721578326968762385020970758832814187301406680053498310672786042047564166400284591895658704482679300550919188947143659765937010791892172446716503421438420070867585566418801533614586536351187265082504691866425236414297790543632222501382806034207195570428801289375699108842961710299114863509889378521655992883051980732186149390115942412431207599219135623594505272753666130937434625330130464226210036428262167166886723457668058796423339077194760783490785535505086376911834471235548834023305281249729829389788722593224094120588600339627362205060024892704497756812725241364881611489930885330612757524653940717825213583036940463182128159163595959048757113658866838808646553283421233937348456325305456292681507914032500838319023819083264554419364386353024812582783893860857128951930482596926620440616654312977048522300398092158529232898286410287842383557939734522488803394429721066443292258972429099010489088780583112663748892922084323372611125133699375469571289935436403142815103453393233457374874778294945670595256171751786862339687733186346901921178596891462660526133533513639700735295135089836718824931383745584215643485101578159491720031725865511020939360933071348273773730662533510869172790716200277010248424620185226197990871052084239660040984192439456916223601526534583912483844606506428586720477100624315933197606034893114583118064881542681179223327321326468856946705713127714155193665865104773040889507937905554269678404208890943631931009647256908366092050347188352448221545543213235327193314505403106707868208334080584048163183151877431539868778493524830673281096748257848444701364050002668450728832417234481224032899678775000219723895811540361005614767018714575849101756775790772900497461957100499467462906931544170898583632881971587461933119497121980180301149194823840588511084384910123358053933944338504156541631735025818623960643529418443683753216255073370547804580110696946839105011621308531699766496787738489845827348890873274539634542874601448997843062597278264075712230329774996608004510448344924455540003254544768518921616291731928227067000376182488199757447070041280338006205420634412928822439083137539590569344934224018528648913845392179683118459870543793514486623530323925480718137400797614342965358933099385428120646310845039860874645037225891248848178392803331410047577948640592775043521548348504944273731087773656022337116031142316980473863409636838131025939721926081154955049598144223177693096775034963124156038298856043805345638727852699335011949009192828167565635923994978988273422570736420016174501404700600044186598234812862785111072388872606240089592603164215763275291867893729848965839225914145495930039143138901285831027846853659799099318151671763158982844777205773904971867699969058125251244361413639801404137098972393315439504187034387182312926222973096085072141435613413114726016461540450269817937789476558180097555099483932528756143912697907882564905569988227707131712347320508011307858270802125586427340452051481671657899853422608840204059591040664893889138825724052185032056432346141173371815894310596666555563174342719543290477226548403000264846112912018247894526950607741966271225190273385603902973961801676317947152533463481315516964678812910825426832084585461448046343888233060423340206597423344142478397533187695476803570815705118411760081867051428309201388054449229575950325978505402210241728721682786118939763801314628821305069894994161292373910809171807371162536125495149118006093536027226173178753499004391462359286520200360950321947752221271454277068097857449810591673368090444518983186915013862843285934619405202054901009877712998212109672799832705962435392189726373226236112529085516876018208204839788220475008225751914672784942324475468738900485480191102678442587909637411122240086082522166173552558366115324341065716426441105723351641953085597559472472974902512664610505863533872019684214019670093128616389302235527178837193320419443569914315134208352558460214793577799267455162387540652343929105833758195681310509083889992934617221597523789032289371224656157474805120836004859423793382465490644958557678209633974578057827336563649015036311900035816348341741533758255976833696189164692306796972320318351703453807993092988449459422852637290534120851261629888494957428300881615476770459954163311412678247897531383568298712413042847472311240369306976970527832028376390195392970183574994313146149437744199196371314519274450561419316391122195354056449120217833776203351834214189614736062958540280585427355914478001229965830781171127639466229441076100190994405814799235667196085452484176578904660706561926327433517121856763567360841143202258534710282503277259131012486304266132092112890556883184101954486317364062207733840283320626674261131248252969133110974002478323750084540741049437991041909930774942977314463514435419898309886340042991588624902051155231817273055645707909513268414879142069356651950347421886979141291775018680458312651377535609883158594976349830575729688606109011361637249653803712050130076699181265223604303475735743251134238460763847886298501945394500689081040031636274063350835006385379312365287407099378140737548859113260080441070609045724417046258767737196880903552646901212032546609540447966416227892296623796564602316688199870302044679711184406130306605560824564419181788163781490257507212590489179559221202851474337584746411006043497049229206142418603422126291050390227288637976595138564788839706983784704678895517516294753133509996814462420024127568699503626804646373097682133310161013217703168135207579259469637074751129567716761981142623134350798664814453194992069827890800268519954640525078901767326099305162986434493719873485212789308665891896489927828583765794501284022582886735767523508799817359452608146465205922170672596939458804392365079279016877105193841714975794416398352313134213338194431639062429147079171578957931336370712731433289639989667188392828636455286119239507363425465756615952347741076526910328573166740988576422044947055727439043626183556325257809219863021074311145754864563438484319520995063706930261501380426416605528835436122515645511304769815949064944834383863901560094022896785474629642622171522412818508922268352899352131663265042523672198211532528958340369723735576473571429599168797414448067044475585719480894258678149804975024817142357748306392239857357540229004750277597818970903764500129873306546254318791763637689902851296478561615710309047556983140384540215172763677828951796699354402069437683715874646310678296912599690895759484492700637466057260156024482114711719666705040456099347306718781039286033575101535396573911984448158624207858054171004932676367938962030907765088693953815308530636511999262990708335200033199405190909942167681839292595393220139029463798078551128816923636294525450860740204960609209915689422124482141872600920188625288935055679077817101326648660265213980196117261455881299467677789574339370649859023241486401725659765868622990657474611831553965372234949716976129986643584305212326430278756875359820064638358858866478866613708256368572903267463315820431424259666801336756318472125527041053947335747382453174635956471912845352642711298404582377275733316377430928574464923509789089104048730235659822681056800867771823601166170413568432864579535307612339488381986128921341362262844454632462995622423202641655066287237968588679164020940956901717595270992071195493465139626824533881151382278663715708837948134837965653060797213177090683696196591289181077104374169239317421123318430039001138339900083478482806290373414841574084276808194333495578007531780012096820706490958850120019549827031514532962185767244026128089874597284684380424255178470304104675194609041313289823004817373359447204195637019239799470631824736620753496081128694918604177306327707117040672007708559542054728775507553989269059369309909811698997836086951393419864400087292583273992808960314568745763386667294846125961566379175072034198102853844288591795469923867599275949243012168421790347559303280098910845708935281061996680685394313817977719810957975757027869708685791102404920596608239864724192672590386550745880789203869007667140065537753196812930593205245783779202644153545285414734338314592686264517330318075809427268210549526260976843124779973843499287931023095929690608720866406876115291506657687121928479243377504989240573074750744359000832185138708039987926143155444172221902240851565343041445633507745019006524027570207004659063758570475646662441472292464277088389615883109386982762106333857205524104073769224990150831413243235157900390313308890678360049097366312307647765882211625038613435149027048730503921257809014211001008971679014155332459677004162429254173461167452515769140941699329052548606855751003700000284214200872678518102606027530246468112937668884188113740661696922741051214839314101346269269366539692779457509005278530654948610303309645200834603728657949953351248984821227489471518301538693347768046433342908354656305538939652962311727097442917125688441679232670904355157861347443421654158581943518891647501922147691873053500336532474809155384666957650982788399408465750414406476096503289440154509842650970789259452269838927324897075295519203900760590848096807776360840310675594586905253321562072621320918751003293033110452861911843380970389767099499403636932537394580755921776741098399723140384223664463471152823569783694251409686973207289103220605897887997204893598559704759773710890499355833883351269040003817269127657496255343244999847582265717967265649012084406094189154546097312257931077522458833570491794713557182665321093202787335620415967728928279772363002694358398717736008391644479907444401129232649551631251705019706092027634469893405980202757252196829171567610433595140720356481337872749030718618153005148122631795744223908479615317798956234483941953281474033972607582322754190912616599011880075988635601850430317025192805560393707300319414246112588982957631585924846638484615113534639560594292967421467248579112291751406160539120747181693476831840958277116200831398883683077804536649237066888070773199824235904067294698151484094998341514103698961967336846054949298338185941665980889423657849320924893079040241936759018851167739117816501551675992716689612547906846749508076037285855214753989393967817053954557667744393796753145991682529845507473733167343729011779324841173926426763538470786866781828584854920357787141050177350633993042305972756281203438672493545688481772924273314492400304849412753960707473617787958418093421218323728191059988163192584331177200705383444120498572336514281375378749523604588859813712464169653895499796134583357371661495941336362500402022602263765706369164750365430794536197300469989653489213873093350836139738877540663056295755568959007395837062868039954423677570438043035005447561821833247942249847053194577305916165597495603282375435725704222724256164903469268683934069705464359259914024892213385513050121510681220178559568474641734388834738748527477467686493686048326024359437965340377683877328209256400231736963540169283132402841675064528365884047464562562593833563588177349364601753893764755097186937207521970590747208094173470298869608358954596834707753160967414778950811918705689991886386416914193009654574085590510298135658748065164105656290836652317373830908486895256690110404073501749849136725902485624581881898240097430899672701710299144830611822389724694800184878786856533837319458959488876830192772892499048560406685211727498163670576467994435577023499643291965992970767502796761560258658920267126925290948243621443350860626941536202332694123376308263865207557457693301594249612824101104956720581451457567045760165296235825291810302504854376151105296161927365572629681154080219318341174892517928783012194472270196900031939754526594553223560818843874244360210815084957689373835788899342995069662959540652211884170912671983818561618357995818464395609094663775295001477680760336452524481483593789007743748040209514421292167487101266218817328947564147489454844774748726731723738879332205883216507343318188088810284143916103653690742527224647339239148445208004019214779269855119756831264253863474277144323166927063213797320240795534050741939042141098498016947038569204117831127927504254082297739324443195908030530877449615735740986053065390128533423983820216787177532160882663240449305876580475386869055716685697650656692276281873010205425881236490226047221313065153495096936048300150193585595567067785373942735590651635488553405402689704226523585587208471798292533693046319559978113421220081925492920756720525591386891260383758042092314265220260457049154950265219471563000419924547458213438172968532447034014005443405945532380407507134746349827449255942068058336887370767987782049357070521386873951611343397238970805385989278086945948883350338171229387619158835957341943447907394497905980406315108600503847756854080412797680219136236721812895877711915504808471017528466004942819268998578553236620211830890300827936078635193787432043104488047249550143573839898480727696416122380235937915193700672240103117002840271269011377600545848423275444681745576351665023695415846237187583138823823367214704533290871884657602966025800188360721701720430706982024971400882088639793106051144005515593688763967340390506002340469166904907263903726886510867318677026231648169270899003936028151252472104074399811695839166221743143015183718476743882150899202915710847645810501767963312795980210613133329375830399640431274894300160269337271934796350534417620314487456128226448646106222334708955733310594622344672879869789226173655093561605307138321351558535384322151835636908229576027009136625202914107554178071132077796990109872365123264456732744350108500380250690999239146602287547590967500378777224419425038521282151417485599970642701868511682172774376087785017743302299711678174920488788302095181010726716131587770769458800915260955807361677820291587911729326485440686475734701840790584719619746813957781585893408562651853219329966715041434247534153016746445114263712233707110626811973697776960979369768113092142505046133411867106815699398754802385138989950029125214793195906185903178231210376105238318014033791395362561915183130106282792617514982011072454351347880197465886975323748061407822633590787262611324564145711877513994363455153588168041176842711884451606521657492671409714761280704197689259913893060664691463859802887717597558967344331372000757313844794477841282360820070477534610443046756840968665678590312126211917795647135119843072388075228635948632404102371458775353650988805702806057765356862139187384722910054408720178047342863809423739652090868433334857338128760938554434520563660573754005981080645915258436196177264259359790210760417178004602006865245645206779789472962339710804202098543121302355014253007524676152318037957911719956210597074315786854321178268247626564618795120520998199729830867623824649322717937938543804534270492410887261185640268884005749277630521129029799677648509702375100979968029398610173760659466244006626501583966251307124235763198337643279462731457735299989141261846344946867681258345459203900105325694708909624773421492788441938414303723840840534566733365620646736120955663738456733516798676224340029673311075916306626578943485779826368404723304887389259559265222898856425123607134860706438788283862933359731315369275751464600205605429304027008589157922534260659706105296967898751467978826775047879400192097284603656349305716379536336460030335612993159997194187782104172631094236599296910675400170195959580425876536394138212340582486504246895903989486730306574960776231142456021757205477380314988032750479751370703339324263215371801607821210058441644345439313486290315560385281954599966773824683343617656159878988786693822469781499769220876902509009572732118823466926373794200676594549995849459140696911097947278451491235584734136048237979119537896999873938257971151864803240028552605992216851207353889946928650420114683528194423901384737266119120882700163009565346423061757844207735997189401221529085046717294847205292915546101245652392228640309728439952589657682247025355096923978054369033814408102266684071914794075906472439203707964292932286415143003901469352425490580325285995468699541293622075707874166978639804690091533259146293666010771984139877596877119160650827812222459338137158548253674147654517873445484251627958048223837955245462970185887150160928210109587629776656882728611880261500494659530723371134082111072324647394867152423266084130813844762198316530735644503381321177616126894211870565884311762956464610077881956000947104476770702168277466946206641074644487078774750066960679889413391864145208376631790499155634118819578855112091583669547987980491619182373544757524826250842499394397554287064708796478264930488277308546417923665461096078616887812319950752635397597461185240614735488226738894787483227513555269591783153396059629206401875022684909018134493454899195848825590326224514159301364551174376505563116988547500530740736677139881926697999123758121371558737541263497350745964950647708366345933478565906837250487603399116944050903034991260914921286695986488126226726839388395044890030150139526435759167607932207609963636057986599591394921855707534338742574207221170863973322363450718630454918215498028545253208753995517169754109577840584378324624317848700283922039794233934952532601503722017035884930376506493869018767571430712626512089187337091161232587287429429740099600957704307868190404987853768596996017621360117146382156232423344838950766087687106831025253368430902618275868094909162734105333040631490395934133226784593188301808088862768876919163160202388201838969186055527148672885941309461860995053266758080385039136907743398271493871152955521709681767202826340632875679030422077517101528637413632899402350018280410188331656821792489605464320623213148436154201208513897355268320370171206670898030752749425240952230101878745780676745266048908569408063129402940578079757136052285367052902357112528232028485621682567742658889912975214837147494238502161950679736960116728861017625047867169087743739320689883981499083996371562028200176920260902603583566997025264863381639164428723534951625731083336248068437622228701208105252687749954563278433285683004589864573236316006225835371446819223264409904019220332940284297365434504971696142727940972050473271488151535065814951123116339161113356552718470355271349422894694966916447815785205766855147836028876459771940794776559839102479692737609495656320133977075240376378831913044687184424962056298294773277995831586666271886244272349107957493349393116531948058538799030440618518791806801909903847516488378927458977829165102813920244927588768951674658351554028062578832023128595478908026486086264365758389779584255922234518102895945615991870968461013001419408105866391500214614813891678556667559868257303182845106948256876963022719422557940663466377440819670733078112737372827283104307692587502047984809220689771786473344175890469513824812905307168352915571474880648792611638744895317669399072991743172854122892076173919877420019707331622032262905999650952428849432231851239977298400390503105309873071036408813356372334692532673781284474779778239101551424973397584023817106640102410789586905019810936448874669992210564504754310913928572790696187106575266819826951762737488062482140527399795787399481967412197574720890716335475555294160807318583277411609866108199939886466649515768800377766015570162077271272523262806357408395890545914658617581762641654060100486910653270081688134700287796777147916126071994729816554918948280257232600601855764763820948836511968408315128551195184883333244857625919067384864123304077789482409118387379128873423756629791660088913189721537203640350557132848854755852098378674386000524423482421278466617044565914663204965683168235176497204236677825054624312170829058233784339416086133010049018349022404805145061851850867206057974662704369033932244817868774467053581202359707324443555325558661648399255223645263145142848330826142820051717187152486241192766676448198471073183463516279442787837869491858625528023060117240491903456473214037335289887205733252340524869954373899392856400691739622441351599878119976774300751671681052111099498108917800140589264625642960472815275273996786389562674792059659823646665097292002148734864489166186598542913172424377744099704150154344271756663540742397636828363174347799596483479239914597491685184548595906594564163882176382460717229434508438346046494028602975308125059318493337620222649176114882937511796371971834733685770261655352697538367672065427118109171804067432331901938982830849364010462173725424935783724528597063929811920572045567150444088807199470641840769521649097270069389290485714503023641628516360891910810133135479152993667877018146375701328636776166285975557726491874401144589688004945284047010690230209133465319367259395062513973068404355115061125634710689963055057403385368501187178378571699404697216995116268974986242189515968958968959503054873223549844836889564994870968512569319307166710924977324381299799464744627730491417220149770490701318708011081569320491782365838445365152665255240188521933972408850063805385633849852349122621502004569703060917773925377440239546576883682213258863984501592622224028738106110832470456908588124836095526260465284778089598506542349548207254980569024656595101151446368752432581528636852622136934244834664065161176295960210973589899210472019425813149464881948148546218337942584131889851965543310667226480038612686342764198624192173228127823193093727271532998554041762063840206872553466423526610658352191379612594526628676934885616468988063423361426476151065194303939400743030472155460852316995316028154148890302408801023852531332234716010891548262704136378320972004673506880686521724240516621902948786446820882984039567081419663952930144464693505863292462471616818139562153320497932923428441846863387656151863975324730210326860877409901244465661307917416032983307290792277262539444832834482703165626040404030123427922293450174272036037229763897927429670557441440213808113797864663171693279159481809881329150589123224572296995197459873338279406049884078877956137804762346594596601221863196944337401091760581705000487080410764483252648158797211095200872402023703135309438646014127001892115841439569140672976294370777244098250216439005129004956917042181875602402239002595385834974076355783338652517306546720509010865873088198722570857973091132327949186048815582768457039545182779277148490309643993050702298057369766590403077999942912912354714368536706158537379525164817820798260264559994877092884965322989018523945196097304060244531040897589958908787346422795660118916321957580900393232815825065727873009174609170157631240291650925345151873426718457920137529706483628622368903840051328834094878035580251795262316634119356112354757773434074168102947796630623271319273321403236457800085062445637135458338177401738086153233245000661181819849359578103401720238333655799930672229823260613221659375245134237228040363686811435559366243919608350656613159377371758490862969319558483449636529979281432942534068727467302931777328518034495696724761997045980047117857913237740466134805247100562282369123174645380284198127753961072716730232858022429890750272461264805483825735094134031682497612283286164322246093391880130843132020589454308615249412459730958006325759504013538214606698628595817224741831517414656828685176662194798315040176362480066937369604023389868918374425829601992376442573615451097216050314530537041210301987127296619601258894242981743526628052095561228706854922572231579826805082145302132523062215060584440928831468422641140404423853937714579721395928958197526968331557529823498088115929764790397362666711987111256543405966325187455238065115699989172403982817702628816055507312734157463996973883637419207440766562169459440846850902703050437615870087565736014154464907003515364597326445929883058278099241127853774741682393182683547574654248905654639078313751673362213867305721738198839538048495811717315028090728698593586018553424465464182880167467459177121909238269940274687558285910715778674167632100656278906645992955710214747647785826707665569250942212056264261480071834764068918599901063303677973964830118572444995916083117892987447649654847481631487797338879083687438887242974957382620214835613333389856667086678249940970432501334148287679259658296088954107261455889053032108703232480425004999225823896946510292962735876860109794384266446867806495245637131314211310676595234969909581870311269733071946777434182284426485035341958988712911615235767704532976432206162956182406446009123248677872077222672095438807318923711343881546290333958032039477996079375805340737351332267820771846487979711323661007329998825297046455259284724113355731678079200323679391722125483905193906528731871899058335871680375501943371331035992968716205145683487598182666229064236620859859705389611722702137710166294246607896612309181257643033717072719440542143376287859193339737906548940270222122896937262883466546814909450700338153198772307380218479552731928686231209447269225088787923426617711117029936724633647222395365262049796426664802087110185617766787266660305420569695046607230204050765165134158914908697814806518612715850618037362905912016889868073386779106821983938095213698398519653161942769960594257482242184534717896014710609545979880401083264840625900999435907549260303431810640368253838297235850769922894021358899077173208282413754986024539254494834850825052243989635519908059539286458889361603651507512700162053229292502576729375015196665110673005281296116511690414191845977400527245853937853827741444032862798155854950802425812616924715454344546249683081015426586311836706018678198803834205298866226613261409468200110635409786097265239542250190052688567915289106578548205886592355676941140071905863585696886897815830313850742821140484128069948098867715669092889556086581711842374151987979777838249969381938951141998682875650346517820596899748117848822895301027180654336722563425940545209145006550894498713594574845369535881126338305921854710747335207124478395385602641290753315178962060776000634431045500018709904173700048702247182429543475141427503054711576607303795264991190573388865952982283076805039285078466804950152826488272931020584165526018091867563621255238958792376861632102273173343717775881474134073904830861299486906492530929622274433330524228722907040971607674650185236649061719663136924920372280755628480794805191271854312308873953184977908345316947157131997303731182856994027323092891908726699730774233201474938346391174148475202687110728020365085256021729423656614197993073560555427513969277144465611532463414129750177052282247603807902227489602797074204066170893304168880840230828410006290049621194588953389801299185934069190251069705863150183802351460145026321557010370696805785704297722936488570431456734772981146663053981855129735286314222959871501799574699966957015425013068940165529329408606867985462277777024723825888112200583896370465605242647500886774724125242506426567636133568643060552552658392416120266785143249075371765538075772684206275206945714484337292510381697066276656879616501960450704292284205255672600348403193137838670014786463553721353658746393634352253588861355750075920622935297094693918917863604701950682737080213145698930814565038601086856908419650090461989660603557205127130864985635544047130005796081178259339060931441735605006515021180280772770941400112850188978953791584706402820057217016764899247827505049062798479445297920624349961207634189635790557838804938667876770204239240376487136351708327848923458876989617053961600798214219419872146543625966911849384468727060127179290347192273427620627263692427236637553445789669523809789142701154111343944953777693141261429265738822782948724260694968009382697770655651437009472639002034639015313342126538715342877027799759168987337947520233615164754031789486724184134458775489445093441213685847712679173225807140027456623305822007414037777081299802151594783909957973532221028041406056767377502531475424826572844860245709990505423714104348974759104083243865833442400134241819876699864070680606036832690003276731071448493664889459123809421856986212969767558715433621954663397765830016999373624888315686468139007714670143072345343353729394181758383202722144941864964351168203147144761336253854189269891803262041368947195224615890673260287172825365581014937044691761777240309837500035843673801373085839367564697730480955574043725585254245794507193385830592610874870487873747548431654048871093460290073981702722694986180041632421986198261844365559507341955627373866725002572622059533874587846939828505861988648830332284640993510884345498108036328909466481387210352076472576124013217301176003831026325539762403841889628501963076713344294531561929924214998895423486098886658027025089042844303242086463862427003673667728440513501499345238892984061971308418336338444346698205149321135298974145142986516196140898340941167599914753610505353300128690689544619968535522258897506095182085096943403029961683325604219979421977596408811574699818888213089338020179819403393337712740529305516180464558660373393658063896867158463749152492205637951111812765341916674254266991294846790439687229559586989094044249827531845617105385570641405101817519001518097602339380073404830101118683947188750058043207954397951611409125472471097340291836452540297376462134583753950490556759024966154314023089542238284738311874007447946775036701753935331446708767578201679312257937683381966656471307225151977605128346211022266436012405707537325628900739078035384736884152235145103930800588951952252770967231893702629680539273386091182004625696213054420868638187466954639920829778295909983269678480408817446298470221734066998368297398263470219256246858030125253777646218303665690989141017455786072357246898325145989747307207674060580455518861556869193333670728794108407251619222252705075725007591586514453651349273261227054162957883589266701211315089160751067201193716594410748410890852367708443417508561101141130221081982350628640801652278847761107276529458787757525534657643047749972235661707087767791111564089728080811409659732556896144947563290750835708155923912088947218639138102920990224807507985348085624655348429375930116149266206635925097336990325903009263592574462306617329600582398877925786159936205259070165740635612961467080025784817284554813261339027710070171896513752668296302459613461180782386009730382448527923607356742279557723390622069322610190759261876181622951815467200179999994422269579046498205093393080395232340080884185454659681507085533616026390150860967020849806464746396481265749733245064846804828878988648185257569352360103288509867170821510790977617593723723406718938558623769709160055388274542047354240718780163275745390683836563130797806418499493223199261299354199879830105407750133470380791453217450924585373517938957187086890045386480702349129475466444031563069346514673366766497946283357319672489974971359871042504557882242692064362662183676133642627449704214829948891967794045454497921690959588175933302419389294541184892613772754730882960755876186203019488109545950597908572808970149516513230736745383097927974510485782016461717428211465663499231528816257803140099089904827699577956993671502885411430650442956199786467847502686428033093003102299588645528661836427554313024832526298995154538100178486336612358157524750002545936889753291520213456455608160482718425976665113915600490807323326914117902772046084679963018445796213960060649357793551865492063377352041767283671866536388341747303702130281642541936974438523585715118947703481106074460904405735277294148206994576401468347739481196445205280847058910431682642299856322424224491949099252211947045415409324211299488076127809659125134278136040071445611971339644648536190842042258857241109834865847538575367554513461728888213857612609426972233950486722387431116764979448311996440372180291660557335759503743032946944372960975777266963069824853766379829168575253228056209714810921680460640840283507890136257057538582819845591971245074446662338739600893319081518891938741535434783076064251553450599418686830919043058003033711229990142782188778593742911368081227912168513740422570539168449499724744630195877454822836939927739889884712120279138319026117353182481632279360869619032851767917345002646128386421864763269539195130533415930797002757203532016968435083278779435876386240372474197607263825940290053684146613965464802178707137296205854291578322130389994437708769380132482322534875779082191785814412262236816940358105260932811340059569398365246886178414689644088348364776476753773771221461226138069772649053501916775978939240807586155540683719760070622098117358671031770405501618038361601013662021544473592472728169116376428412971392056609067169150631125230007374833738389103349271681823646979964325994715611365528471722566740782764817498005056409536280023875012612582176134475234535574056650955137085384026919705986352738642999818146145966281402139759433316237092607837413706688767347355671803341855151277500515903087419166066317224717746701488326077202199554185089976097141678647216306354453941198076851139219752594894645361892780211771271419095801859392601816740070540658534634944508700455346107819655097392213175245020441646512023315417242664323527875709887995516800314176414305091629621638589901609120771421423478185571431342438831061489742249984631152390041616644658161970075186870801341761570260653671465018080858264643625290393590070526404240283610756098149749067613479342870329759179381701474785184896586764851551893229773174561161722309276319949461690242105799745716595554878904243506132315925159374727353926694113394864935943324735233331443007203521148038626868191595958030102555204234821187863926696395502948825903945797994616111102403114238433915751251432105005363878878318095361483651510438526517822542906868679155802778804162713004168698464998359705313805946396323018515175851752822617865495056489323059554356399997968953973975341746579731988749617633689232170227454438902037360557138752669986387191528841449871548187443880676275194273707401053883232917701460455921786992750734952615375201846673106107056856533244897169409978571418500933353833452003382322521450047182230102786913425647544508207319527348221108297499130340956073931199488419413241194816780123746513959977962212901501767154882060095370165908142008019383455613395436068225659459458888484938197512618654023751585376821761013455587522143087770132425120310998313520258650229594240919105642873731728607388648868164081521261307919886588522384079001616626064784387715043475612868918950186819106565339811305588011403801111202646925699343111162057379105605685289537456917143386930767054562595542567000758022294875209283782372335368346663562723497267642777000996482577380795583809187308702819872031481359496721857011803210945006249718576018075036644137246518617758822432431381216249835489045584956050748459771929257102685808587509356193787549557281636672739410577161808985451660720056245412533196646435437435813463298835260455542081801341078499996530768678960973137851950434481753461091118432998370021833082590733414558603141411042009074621326094073729155982459540435766856670365816048409685436668386167604314332733082828438696649391333799855968406963376622532001416248019510202173731205753872065118934835242716181931544687593029512199963193180009281469295697655795334168537083598545397655455781749718119331244351905565811097519938866725570662989027597344126297900425189031404416226307798658154853727841261517720545206823528873170604931238306717331477904411543084939483360913846516617570090713055245769000903043395231889199972544223550484685461800672964491297946576374048224819660054350599164147284205058328306121441110807404233194803529958859899971121805923588290664090173637299763557152980673443675029234563348896429073479302776151970518563778022512062024346197539684367219542220517130595895940108540558392730778621655541183496367793621251742231622579450936652583401650001235487857444857206125084395094982055908163016672772806232392178727781902876168752012721754265914085011888181656001439877682136123312225525570800804731764141437750537033870870112510499142708272261310622767622575358333189581304830924022441859943452978079597357739894661108488415050470951461935955323264846888765312404601324949570067244754065065366819318700960891987296836161910406643388572118944304415193736375926652676565737573914502087060266873794202499027426102016667962042780358324852368212632127998163748630974790244963666965128117612216790387088504772297774577026864718802932359534327554488339997980879293259288057487884597075445842915817908352744030117668267106835351388474634934300565493645134209281336198367420564173494130080371236958736436853943784259364039671629979247972374861759474839042210106815078433246045664407175167477588263999071268946967916568807474203852751029100995785550997870689285470855086563437973636657966157769978259944465155952176006792177271742360632474485645573803001473459417986947594082372697560522727861691215818988726040919443644408936879125966308404384399584485175663802146479435067435711249785678560118597141438439363306631291690371166226100894684481334665023033160101824714468269164597322010805901783661883980628126150820678355437673143122364386619739117036023201584308337694465043807675719089388341378822571145430597806002902325935488534301216158629861662154445125475534124509855513281648162056811187719737992929662191102801142205877374475355199662202612780303423111849485418682298910866843875931730389572795091609242881577649480739489125796674057100057440045091355258058938649054862843091614811686537624399427912849129236132783859470790394126946530630811934866041470500448662605691658760784056580088266856911766392996246526884890623321601460193360552317687817830202037136547720050332001584235085134680420447590104240220581323107072597958892629633800800451328263363697541139011280705176778817073222432982242549066423186327052807297331851653590755083726271836327447271272506334723981279741921510912504867236036941954867943116960640952674269935869580333762047071448311895597948965529227151706972587241123168500764377936749698623954690122761752740904650418917635780591082373966501497622418665556289214837132621104393350179118239019631043360855406923406345115871584696169018185935463546611641748387946138669990329235480601299442362345843503108024563657105128042174810668622922725006627042439508996632849027986146510874357888695639667426846475903551379460103158859804574103657933086357425818109914461986017405607305186723550440729968073674358772252340550092464718166283117354463093208593549730295870933424662846248793996113956478957407503862396187428228267512413340105872035030747417592734712225597417847972855868653049617721073287807958035010146609045628200451453010018910934336493283877210317743590562835252954593968429264614349793154513489499857042423104294499780267668947619335316347285784886047670508278539901721621757362203157616272923561523525932987996696866512863105021242272728540469451272071189523378252832616557926948155066908997278457789837143037592510525957024500163438226237424237348467018551035824691735186484443569051712211292758381263959687416409392796016881067895304110177855171335655505645043981653463600766283550597798475308617086218732590447311889116153378542032682428246798903102697750206030543318222739764964255024172071297605433135408525060029840471803656284641586606593506453354624390430574290442053511814249265375960498223505081879736671164791999988937658528309271482877192665789589409321803952743057343308074817920201472472138931698995511256159517260155384390938836146226052716049384600110207976582927805936160193267576567840685680876332431739758740058596961218646344799455177100492779634040843952040762600145297277349664900721428611458516805588560868834352061588094542495703528730348432901871753677012959574051279213472450460683600260067359791361081430278433162694515788594332314299671196642025328467894151590165803380795733233150438490131756872083680935790593771886502658842447859807385563226611013464766361409439204923443695062605114575445812620262691453593766240479017674258984341979011609865155452263053797596907819118315506458189776020184189193112225754011116234481213701708489798033528337982066137063355067313241313736610905462402556532614033959593228010418502562950258037826463797842597835590264052453281337238688318401469892360894409170687179294751239077590396243052293099758438466709349398433908194218583213206305073022723735448166263871381465489463453078603180480766343894269072541313271919121485380943226897076905644784424138931595703582487681756513940102912471426195782000455096658567346355807370257176804017361977155818928697894973538231312401432193518416509125344583255826891678797567909574288215419367539004117236230764623344249037048895879748930691200807511503096519829655686285566117757845767591861481695882340068387715677588129662718998827918227384175217100835588535431930511753565192469131636195605575094377323836701063821232831926556079108160513906083735894385060780776492400401854082074536669103013699027586480652987566449696851588227538257341661044620202915358955535982240985076016519959378440354073817086195173355132606820342959665125716686823870452030168242360143821399806099340068743726977733398004932179569764542258663645667533634759831176015255566962719805553164372796500494066118512229990597377800758143202428261277976863518126213472754410830957358170888078752574980468734971970327676220809516256506653049964333045658146681955914578998230642592841279979914039511701561412049586861476153587934006927399109080233154603049438588868588334197387309017798783266392319450074001813956367919064411859932702028248963610717635084525844120537278585320031726032001380509498220210784509560986457815110591084149918546056013381688735329025086669238206140440632894308931179511505471931624900825681607264443077145388516806902952945556559555722871236851676783720032457227465937335272891861052379147372995137070638842090079899471401777738056830859876917152789130819594567910357720004935380580600560630748104151405251633356391003955457024397574353225044093543688617244430331085333853397783335088051458254937605058472586566698255432601039867336299724326242540148654957636506913146932275344264226558366692228827485006978608581021670329340746329153158635839907746503822792814163868137151443321999841579702517378451675940960208038097354685802406649706251298408984268722620996393985910570104312557785631168608008665592260396330126616080411148390872544901096603349717179259144436533321161354903629745354002907549009161026259972904387107989868027797657155687162385785447480634839156983628984345224260411877719066682161917371189254730409639036764147090114319146110464694158528054428537422817771532915834045093616445305249414637556747729208361763871491087219526948905019395915051831633289753461564516740993272508944127897028192470561387893078358355178396145460834099652111008423562299333058447282033927907312666421508106899914673369026342294356404772107223047136527649169818762681598717150435470082415132390198645779787409210589746986369171278884206261568671488352907034199260377515372590737966145787963129730234147392765266434033931696283045247816318195546372762336548770743527183474407724377283338255528267370247463935323132488351221516476580486405003123398682429004758815519235507245699275492620903981013557860422863083707244361602305625029198896047032314263375064727300988531562305448555566364725058337574529551617118712424969726245531091119103993185837251475660149071782625430005952098178032436397126343235532204180287838901844600677481453307215839106020169949940430191884177592885834281659920133539996610660919670880131594152411352669564655881741820556866941907079892210858777056659809894871806431987093655848554866639581502354899375303890746887572948909504208472109721399829030392073437668640115644536071264845596558002746460750252759424351725037140661650953708789383843769480540254331774137563869445551083093503220118954038635956418221113098555358715747089435896032083743901959388890206710731225112804996911031790014772234395494121752824380266086561483351357146147140925341589489544537311517476941340935442585009796024779883094382998607883178056971166785227342200478299274517629574785843962358412277156504229365377604577487783444750157682696096753335396896540588204365181921409442470995507437419420311621078276465263772404939377294425492198589348764290143207069052645171108952844914401553912633012675011950763504961526703167971411703255028775266107010554397249930788805488295392262062708442764568666663562789932608734181003419347676743045232015572729583910120553203298950193356805248977747750469514320018998703631232295240773185826560560090979170413503417040085315581447455505765527708863332709385335136816828705269296346725070608270637931310521629186086713152244186680453356854248165962438635667465132210130807096710554101199668045186076461275868260800649567548603664820335534596284995517707093676722393477746854083743697580600663682242460384561473125271268806601482013288899514050014523524038993947227094853777204935722095364996859032548691169402519413598900959350959307400225934730802358144312853117195089038172712795470972587799969789788651659244093240381466569142679087013609258197740426811873469381078241567989305769293282854544838797028095361579366873653488082049870548166563183428076787939706271386256927706089356612727512523316541878207568242245888962075094245564106570583098235521032627884508227081384503805461137011692347536805312667620287034877377317627689291935023906237569522762170042249963954213093989160882650146101146710776478082077996336569819887345906333627416043596172865335173435204011289216223103476213533934281537164675510518000147479622817292177518814503600013689541139212409533713187628756428823521782440086550434062521322169398582963420263186728780545819993365273844932592298949794604845266707335898176485567862527661021151475796025504809841478033786379577146769504178718395210912917396143699103869355623051608340469388860582769235135150812298091801475615946452166763299398683215715000563565845604244600914178328235837217074024155544119982188722151543029033743589934135439573965098685110258406105164868942179719345687640777121568849046192274809694397158621108095632548971654502966295906551333609925121843846710878995434561663024705144302286574254634013139330315660206332592009364499396185891828047594973405608268469076823631193316599928076327229104904823439621180703454637960472847822976348759942082511222326368607423121074004920154466564662052082810089932064024931083495881187219518590214306398785702362470600312000704154969713980410250513811704383105024124403065964965062936084066856369512113756868047454774109074294306113714612847594900487327709098546472568108941379925577900684154589491519161434794326936870219546250264222206171591670474259112265520001814523132567780097390715515782933002740489341055797008289243196297107366001160399558787702514990055567391412418090349989569773912500923731585832103056391288137052079723368841367304725299392737432026240605476704697191588826663276290903064130323523377013904939888006446444296418162110592026720738037395194260750206050068747022910915521442684038036560820127073589538821241360449061997151152524237788338713392600354305507484183407678980293448473728958844737100897019331186778482047495014592518036017109749184677159984830525377531948137294808115717398286778578945255792284539695973282829932753786884561245797527237152819100957616019716480632985639124898568647647260132903226117679530349269165944496279847482109396313560458973136788404027344575525508441242756974548444013292653520934003849597030412076079281024447162668451871127082797330121826313484449176810150046138925359161537095372243577068973931471639391000467875557269749902949362332985626882196664158097945184246932342102945359379901750569514774856641496808857929319832122506271987082188683942366343439562306845354926496313718353220322030445745311772349233450793839309360520652416271309826405073134077825545247149971010096024776420845610284584805574768314577449746895858309429977008166041812421412709211908195011478018300359682775032352735341130184738999124164579165727501111227196625221122300158586819509743598613678263371206523029719078219745416301110515833240141291819263202772564081952940205898691315417632794098981575698477003316761461094691118420000917394140319744806680678295726095949332904800563866629841294339943998364028314239425382159410025657459221379923108702876600084871718134135391773547675237616629790321215041176673435016304129387814841687251739254683303955975257231798012992579411998793675311082930023784865651111906660697807806997441026469106730583696718242901545977299697960275236949210420756178056231283148968734572095071876258585016788153303013236075762132812067441299021208556892433292794187063902764933866292299672654953021834983169086858210386799834151337800547911521762119079365991817042445439001950022484635708260843861428285025281513537986055252969013976245857024117130793656783501522561175988699068196713751506887194069841712668932351139355900955135728289333937472524764529385697078926097379249011287762399652303663430805296508476652185673581143941348627379156291126589084076463065785609621046065080738845110252262539506657671583930488877865689556396390227946447967850222146438989889383669175866635762723035058016522500550875545697157426228415061716236568940012875524768513301594109351074995560794913453129160498638128126176485554469177755266425122205466769617563212816096165579551805831726503407692437836229777285487059336234402486560202996241943892418783150519267716618479156463742142380510661547755531604820579129353904375711254806828606463028334400721193301428620670879399422449345242969288542094743899862770303302780156467929792947669872279639967244550740316109581730607578811259323819140312141537884636927516912170492371751056092351007398262792056703300875271330396742117261917441884090832468861109396917401700461003987057073256879772395549447401210327631833908508340311903076829495550462996508948269239332232005823476662074076299172373758708703807175722502430111931207176875403022513816401777975753256877387565982829616530437487649452234041058198608388675048735574750884595370409824443642143682534547915651838345628937543196855021184145269141461905031775937067283499443150253094112522640741220227782474990010654896768755258789802373079440727276341303717308314859606466389469618776143218339937322921930774540747371982361929967452092588830669321162391381995434066151868412630887434807187695782532947716125983030473378832318205720430805889788974826333625092487968254109106953231141263013195943341295029001077259832729392777112658617046250481002788625768436711060444082080088250159030795046578690614231956760118480815767700867357200486291283895771511644422571701155376652415633123662603320867999459512619559025829157964584175465084850313260911119042262505614354720816090578128529508228971739850261216875666324295744976768473061657748213365011442691734772175303378295153496258268787046021891112547418813162486220146617992658400837590215243862325575564515008846136205873799527198946664409114579322080167532694685864220510863079497239532472627214706588280971879555388637571778792906053447761776943951612902759268899993864329329478237379738606777824341487607443940152001301549254627651933171815359038872757282659429180737350186354728845757468779515191673080912785438850747583168116310493333220524505907282927028422648846917358589906348374725306950149807668540985288221790326247133307854726308321942237949246313548857620706981203313134537657754862146119247115364710360844052519761473037937344977605530197469902804947253766676599621507806028467979297269588786734097618312885490441184670364415684527309717882264665270203014309942171525175456789847708172498681022417108611385576537445962376210320138391401618277470417280516928081261891781454220039231230260139051801584545568514140262574103497241333210900690912174830544502847479810790436927849641647770572698923033726830942863796662510528956155298754743369593033187338283309361425522007467701776102093307984400587571560874618457559944150438425387359605535091598007106729526255569657292108807182868360509831232205994624305976428692601082794625843428984233277799486824254911304901064456930003157532616220302539262486955998107670971417810789844168945236541027177909191491534922934844745136316475483287722149307074778449380757541764883591330834213330735662617978195265459260322291974958436382444412773914852443048527839472875053304011699875369174293244002145769508542286553849800296907153564928087010468230906862554618304711768469709391104839149393612964861353085293574540890270957290026467255976631198017651212348847913991877240974369875672996623995751116037473577061790984166935797526174705931545391280929511310126556820617653476378089416920510120607507696336380204956521984081469675390251085625881100626759213367755991040724731402133504380843631200465108682171048602596326645277663340031390120294425627138039278493600807970600797306606251322639381618850729574595793004773943224959091638916361677934261509444507898957200806848583627597897321169498663638574654987099400300723936313093943846395070434529498306568815812803893676502314894441387289132570539496657697450194682599688615280854729562265540299690370777664709138038600808361671310614196535812422693261356314031390510247555778702471098629731631534998821673244302471494542100123178046354858925139567815863503219660350300971057183606388206209257430681505059423933345646394344765631731546432405602366025358640770667772865206016427102376687206998945342383013375677736219139082962013007845047555718867393684800827838961335027881644880083680861902860274103813974787282068687258535179601209674763433358256732846755771985086506979073455524511413794533094144957603177003245668580871212033540540302510683016828272826756986808737991326007563982092881692554839817596173681378155409115015550437900380167236211671070417931850563114575423567566694975325940420702938507380346166949250492130812680342943846368433353529661092554251600925793215594148498896952392675759943575397529142714961723543737274929571774438132742601876728853480833008128274841208416915855248715924739402545823854416431201405426633065653178565469792751586999156505362168047217915258384617978385067123984543943159963192300988252574804508403358499438897523648826981278441507114372685801311786741371322006530260617571581636941925198634362707041317316516924797091343616062080746284752830527263744512283671324236915758882210705504978878014765211200675106965566180709653509099841543369308668655612989521756509827392989397279179292592996679744559894074339752476335165131333706956784499527615858311006357333271815003257240179646879219074631494975411449602085863788430384280357479708520385390136587035176235194797818307581023507448918102769392841450300544387788775969753596007237568992108702720073845220124467303085343494101389122871877844458360921322682582809011248484249429591725216793586138758140393597912850233881481040298295988806796782999432180082776288448616533602171191211198047236087696494279609451719779756772676569194525718689806226894552873021619677679937344724330457248477214993011369437079961853403655998176903469632062004808030024905004769043481094105563775413293146429043424236534320370299107015456139695011304728879693762883829904085946218440371294220486316918919582096810327172601767496970886126350286243446528028387447434698325131877197335318786180547081587823860692139967598560913303992884711841124123385360823200525716436357033443133958926663756973632155990358374096598123712978422717405429993556477675819763793365520517304384883227556220433094572146714551063877682225902515778903441019336896260844433085666408450182764760739721379360188260043087151538535022017080348863513127706285357474934660787025520356061928394422019924309607590830679569362766522192325454205808450718351002381868284686886571853785432145284559823739659228579007376504864922331771137788153303948282496742435085724030919519691751939469116806646419013260748462203477319272469016009337244818637587670955124854115578973012794636720667506308961777575277044885738164367921048856439552573663018581968661623457887340908020649458252563335890694394502125727105097836880072878613215248950537388576986609726946266785105889115415703562695051912050491632208379152938131152049290673840366394812128966061007472139329679628959507769334829790128729319544908168269565745258618368562519935038797526063379796992937159838195088476694837792671761891297895015543781357268916779754691398208761536879566366199275305435662675886848145758144742365833920391291905291663795782525574676412255128872742485055485331575215479120267591846291570785046470875126114811047107789106908238883961473513482757846449813985190307124273411608921294070402407418413511317722460201008313744240563356324400161850712242542203287045296763398375262595038966390726034278713896347811248964532507866302696012897147857904883382508011764448598618123922300917678331555906104283667671191807156395502064479308001042693167405291070701656078402404996973538874414792854452590716588079559368194945840428308176605174191014257437132763416898199573399078311991741502982252531524977494872982430329265071482173236364161502278908791241571270355351823442661910643105790845625020862585913693716913062702732862084619312143869397092860335164501845649853348680299337062063109967664497544126091302054305244636525775364360472462798791987893180518946098306318855002160217605189750863778140286256626779768693572016485731394914707100119792415139133098124969606317230497069907194151009289759344974754870348137725765649993271031659034046980588057552614948078662715039276482869000550656860828640397965489184215004233344050116817361493665974776483365803521010986283678535164465644215386584178447408107609760389562408990026110413586885038307121782297002271318786102921974002546338345943599358898512830228842244560990776196502205455452321080910411311698686618557324053034832777697605378229842337116953389069460959091782627582862723533348968048576827573784180334500907544265481366796139549201474960535524104671557430471498596067601505018690487814924065507424800568388975786336011393423919778879220300993578067199106898398314896372475798637742014737900604583211894023085231477950211825412289558981492564839565583774399826595929353923174300683676134990441748553656129589624492798589523042343694016134907344849273027929782578978846378739922420383827507701727246470549194764176655230599714569291088571302565577509090079692918733565366995900478264914298315970477916579166037218829281046706963435162348575979307044411941310450769507404039983757333303983202280619774960593477407416467001624126897702894059255793063656284032419795291815702651221464237174398083792948501984774707912274469870617301078270336521072068799094212946544195311297333483209326435452644144525920623365947881823479618208232996859670851727325164303294958720346284319549086713966131969023655103156174406654555668863667474634616516855400482200443158254353843014215531646640247649842279842910855847001931179842001836640288970847621351268626932190074823515724851176748251043253929405423922982675764526984047399825193886192836721476616179345435711917496031930916692045363760734160993661318928342680320876180211887677275905441632353935988924866080262524323525973240204399897855004698513033487529293224195629110196861149044805103043270727100903908372366707524595215894352939323473871436940740394389549628298077502290377675667960421479747565197203280455111904812633784613477746289863941142388917527987265193122410676206694596135834116823111815015778701645324746305596410799031152854466533753994819841493272152809291112029427664252527877863459810388096241400358712393698344145296060268840835472763618150002948039983117241422040815020937618035361128790681232559211304391023656345827387370340101873813639235352275614187120217334833604439138753923200226990093545117553874502835139879902285063213176196823065097205177380939715843959201111143392820620754771754637466809514498927222049158686416448869593511879149775210622343102143971082496100430963616512423990780215154029545660190696564757220382052826587033417185949288142148681610916625389498050816920646169397182655332964474517862711810458570501976780375158195412157674016272839062145275795399460516816334299694425661212624229563507127004710603559724157668319829473471324795711103335903706130036888441692468115007920927360590847111218162224097529753413562244015637933852836329796682083214313661286704390996469091315223929959990878395700939388696942730232572115118597015467672505110828501868454039175369166624644900593542619022280041838033674262051269092844479802699328730714215498939225231328144748077075726139976029284482597473213779597622231076183139801472535688705182953346128331587643515674827996124621961306849190186393316981544141336697648695105453277248694523093627034001304595926224540663169859130294251271536059989797476890925107436150857371706524571690902328254581045763833606578006654825669308183475122443596539987345759898332743342221923252652346570261279797651014712975993886019884673181205442927923052169153994434139098390872320942745056668440610849587545125002198790267598526880995655322947352044385569025157426458741923483955118393715056304247950624343282040079667373002177350500316842930284053083741514269629864388128248468282203355552950760336035369798126665029539937571559741956612130825912367086741820184178891332999323169524378157992407128117774451977379387190284416664099675591862111106254983841337116208117440596603431502804514293496657840152682986536837755786913353363686516920183262793340828885849569204900071572902617911186981567411669485206735462290923566396436035617966960521873083131607132193673222373485994565055486972615155435064007620813344766050294972077700456258579452125976563981477071183413539468918797817017159123210887268521425265357890747950270046993472664370215580830815676808844266432834603721558708500895114644654431787337855911118787141088837667727534584774301947574490071099751588559389426005869904875860531935246277438547644191880804580558594718506401447902721841882277877091629022884368743321506218781224791153237801689218151254503351847633031824882385285991509002729012652949813778776736870720210361614298061111367458962565112690135896368589426255252346268974730635057820904038468225246752237531516037607482605520090026898885497348806150464652039489536132514885322893957497974943997942770062828217101766061464980405621000543893910401350534841168960532989415672053380613572201453126932360840331986750006253940877917746198524410879802113468480704386262796963406536224088328892362228941892181594678073580707658810867638783481474047805266618697780270540476269128533676125883247858192492854146302486886087475537500423499300065024469790039353754011316955972804811611193620140123465803062262677390016349205470543332800709948319500466422991449969043676022256261666621286061498869794937689987038807787591456600381285201102570470379983322410238400629095130544970549362114898905433721132253759664410762909034310166634304926500252434068385510513312416892307571695274422855041968818563513158626182696418859715564378662646646189013305156090615313333729362148521118571011937579618812169397904507944273707509777876821936054477509069674482920240069410444146281837438020544733762192540164047885081026572804205650699856304865245213668498113469252983152415146311231178039264811755721253933230648318852920741534782628788943046387337900588720901315552713004282755222994483458253594918087106547833468897195067444128799135817409704811876231472783686256756448698481777538353692895237542977974165671556368490894748554633147038319538428176605520113322794318098581729274796384048006056490330580017805082217531833048081885295852672912996694536019484816861667465054381914221786129452966091818234553330057074530851008948691560292490079427151494389823871426479918802223148071959990772507758906509862608567661757240171943779256813235428935511215006244017061655223123113907726668939560227060784599531235950850716392165246235171056266749617890888671521543414948628086300301331788080597538126764831281781104319507923321353290939156197870037158106724325364533591585977273219897652055714265208875131000910371992489294988480886176702642100355515038746091932498957917092114458058666348567470235502944600570252141428485445961341182055468597322900147963808013814821133505836764213991349182834169982779611205960399767009031856749373775601261219076635853355853231306546367548061528011232353411440078278456184582869043316068158526529294513313563881683611206618001733721566165090992071962376570498218419656099617559901067173750101179288598195688287161756134295872098273187371430142099296089652283374777844538987797230265733813723370920857547195943804238749389559408474575392691336725912528594953341883171169126557137047311385654294184850408177102376396563409044612928576398372473106726114182007217450057897894516973338229596792011784289624359227857744158958563716675871506627927657739676635127556160466022325789522766186057068091805233079679129126377333933368593428958744525650612535005628699542340633147674779783894010280874028430555127310202284077924643385441168915709510536030392350620109882141470011279979932683818720447362551156974833696136514206780872620961107255764863877495359686278359140898797868784976151836207085029634500059887122955524832131859876747600101795041812878577421742761169426898454754209714404905538406673161551131660921689026351638719118139421999439272540893997196897084698531012086050690952038239577374068001141759182038000028535028725753761314119825202426300903797905524682322788523102932073368955385520373617222124846893905645398658550025175717451671504280987610563476367192687483928865365606444048142897682186451593144247454290018653493779394292705374734412125804170283372814864834069745156372857075988358114867492427736968513461561313656498868691085148008026396913890313554844333600101267444894868813037791632691998615733315104747073208148049002808283592749160251710117768025009067972923749630259145709866653853553203593367105006306188498081879107620972299984842774407722199996648211851496466467576809388209379844319175440640933640288158291590488785779418298469465778584366381055195246858542264741571767114572751452966438466352362569299666829922558041391338703584068608785957262977157914092875038021776573181523964527208624536882433063103404738040687989887615307510741241258524719931532236395059434398268176569110363092858191626207260639624952714305539348965712466432127493228787758944629215481226606459450389898501701423449955329491934855322104119121699204283003925426696103328054704511874372160105741015109744899200449069690548653832648287327242864408760015159846693274190935567950055189823512453056137612402219259953495900564320227631800216527740991801974010125110178398291125616818561973439875233579589081396796560147021147528701851566525170153439058097755041823283006021008217010238884629671822103768997760304946183606458343615599422619595899682283734762569270637993178571668811474622818772850902621067298551313250324699367837296754508135405534994799532318062619347236580457228997729519657112983406523052036129492592728111462482562227533627671002224326702280103067560959233671584107453000595515810126489019566575223846666959959067706837571719854938507449232996480316054049221450971345800675748875253433628670999386442036362991034739528508391610641754106434604925757358429224638681955714298875629967364217945462756653593142222218881874356347202884329805746796362702978021353842633636532721277241517728050777189223581584561462469817495835492151212888628866178857610360988480502815885183660105001379597934201865954262536509080238678234441478363664628312516418703762049950337639756606821408201669271744654143733490764635368553067215257491848661919535001762917047802185337202799165201086666065180255865284733698186501325856462795850520917516989379120780942198485563599921413558253686304490023138223984549897608895074690869812199555110344728595139974684901819681659050526987800367587536392471885857766864928548165520237885624620026389901198594967547050425442285964981387874925886185250759225358643932554722092409259755738235196039603758851942261593396288627949694159335231103028527481194920538878032740238491825882108049850124176525130186563607719266564373978636243555000594260306052153938996768111909563962983581498066726990738037359162947535397675071972063940855100904001165611865285688630772793937538698212464821217954774655417253838116731574372286357559666325465104437866539948008889142485005461131780488030639141881643517861627515020242192138853172051086645929119763829587014807770255593029248863166659600218419860149951814477770832002815075814980793910359435145847252091574008068852742031356788496524035611650069846274090914707289824883874472999399544717616584458007726230184287577498946115210815723739808176737674941942771567634576273889571216515912823209917745485473759266289365145966925341856762271411084086533587480708815098046471623274789321415109944983252862592569284470037620087060709198342892479504633590514377131182731343228263207295231699278082878933865853541259196563225794281854999553386826990113641008253742400349701028884347017363103182959825736970166701810862633452687925852321141490561568456862443269129742600114512798890493054875495025345203796216480082629034022669773300168391866598209653108779138636443011635832119696225954240762475628278021040701825845632824992099467304702628384073014378936674865270668543397028564844760987681083347585792922487899085734681965796771937626205062374640859095789424084777483865953867306006872582648918021000646291554172613559634306822573812576047994382452764678273664817179241711043073569771035845036725625808221083855371414099547263836119590593815399267934331767840212094439210922794770874375549474631847178206638146953340269514327169252783806022189931098995282131689972621138644534014446872934598855602119726506246740589890712325487486270739884489226441396088653488325050431847365300389430217900005117698477287684777341483585031047792374748857566837630698506184622219768649746083813780686133190128252239141186361489716911656688864418913220147390347391340004343092511185183224947885733150523976694409857714734571021177455753327998473177304906411201504546658971823735156308030516814181846792125563161919166870189386597855872251957125456533770137633907522567670887397619337957704447535430284581009733166793889991406357860698680519721868247968419790946228369076600488301770334343720646461472812754868346849884031873766244608692588665859192105494122745850972264071247357242683094490623992205095898915475268266290795429726040341969302841276170925821951329361663112276548288301349766936011129685957792823510387204127191866852051243232597665883807015416063038278561310437088204473881514270907189556910647711500934224082032748979582305636709325765130035571440444943203731630992730270683628152633111381116837979410028716785521493195742666898186820617799595262135817376081410522920465282050989265839783747732026911220192534260792354086056471390755658455821238279865224226309465493838546533896086026847434472857215080102621358354124112971868588151582511792015365848616878345222003398059156774647396245479063065802168800545151073083803143859462206939125428566315497759062826871427106356372417546207456115185027149448737254419753613202132494345764083706683384586567646484717099470186891370033002032078199257116337212473826484467803844464162091315342568351582767205613191353732480081242912821603250656637944534716565168714316918237205985223940904539023945994897080907894547919935158328735367458208996042626352237014485697475339362202409341023240733509688080526256228300774469901907100835354726680342678512871050054339072664323776236949553235599700205561876362872694994373216784662134712615214616364007348266684737223648639663853462203513602403819498846186078117650528253294276483101513118475675965792550280180010738786337895462086739329217039263500415430507768346192585130959642097346923690784512780598549864459102536450465963031223158014448689006445351515784082248668792087518664682151393845780105349328031647766266904699815000392408154867078959577212327130262640163275791526226105290501560310715591459307744393213414776392219930204976726249212885521963274910831913640684492412291067153865803403472791099102360006072589335110844351467996846535902009341753739592181147033525733815207236839177075344162157344144841566588902532400363323610837082092587271327557415683343614978461935115698405975683253647824265193154480355023581032176477248778404564211869953361068269440872837984432916970389861214634402302871353218176463592664148646388332927829152600903361651274649209042540496497147445409849289385752794647589673773366617700628374950007655719274453730101961605802363500150674296428475550511458896653037197684101698038858061544121415517061440970772521065317927857763522335390116427041477224645338980261684807417844727719177546885817363226317290799616021034521931304660038245626685322180405144128664869802735391283433666047069180805585433145839466762455104872222806502779786837588367914296590557202579428052601598575279805609568737945752575289314457530282484348056338035300698806962239574171116240365465713720294872959636979670304902631572142252194458544099980993614608411746675972202334219875933815514350353184454400716431120369766154473804106061178933315091303764731201273421756328994663495177940919656306752512642658392194128295328883993775251494753879467877430381063708410749667294069874121009503139177692082182318090525356963876307914912612088572623851804671648906802093195256015121694698645620074588491684126307916459403923320521944423364379557823712607456836893821399865316663880405799202604024782035311041709601716471022723494487876629577426411566324307954507614050502572133704588822182392921970145347323863600350070469690715173824129214184841947876810325175318828062893371425952205352874910957484878740614269314145360052849275066973078708442991052486721829129434935669474818807569597168961102635834975853046439903694758265073396225686225686052733353102949484579646327699989193658581781222495503905116805755204151992265571295798687583195877222104983884317847858084276243876409089299728446237049807386422603031935691975123791512644152834898579826628436445330094941345605489243530721428476484760574390795120527533925027599041403542069950656771118924083633347942204158346375538369818661301874817747779268657760236970663384327365041826311410247192931812322243470139932980247838911064779047309393342191254714731020275393366080940244553723127025590284029097881101127235934677385819790852084314003523020586904501342877675208020252005696726187930506672851613076046452797485547130325854282626916603813765840645714034868267885103650669434830487263828711793967401615429392638956855060687367956386575893687685293432156741531257093721957724557723055574889607531538761770575686715233391649392907234545374583404400662225934376063020496239736655868697759482521700184682510128292105032063430754168807951349400634702032880128732307769994168810928856787162053349513227566181630941397142633652153418775064376689367912249903253593001669514778576935610228172052819288762558379510606709874605378015434667836013592853644491580884887615724285182163937260087671126397867912051303198203053988166198296797001932318484391962959876178474027837339039935810017695695593548672096802595257475890857485053249319150829664782512833750676923059892843330408316315035864809551436483221026505157504393048049168882839924374054991437783584417668747813249102109056286108982124869271677252066140325428035223554295772889390790394299825670626280237025416884977889137721594138248046195497541909932633005977757927412584121821813270762374971676176607095443713701951607516135959833090063433720496479701268313849656826546973615648323931422687349271512923206065891876974812562158417536327652306799660712329837016816965156405690351593422807684441338242907016883492209746340354319435702852287435148619028342966334968086007453566308989676569535583474474723368907625335388003691116670335553423802959892261784851543042368334624477388408016550884490967489205010148409004549395953308115148047996471526060943563830803496213693808537195077605355978425582499961663770373110151747471236166831435350080063937106079639957021259629988076138625950407757386681433006937144376421904147529369365816529216441141155709863700074398918230883486772247232829990807174229552603258222386176026642989160711674129589541616568770246560895059103378310157082087085571207894190937947616082267378990134081500059713918741895235817840517765134762093658766368643615176403311799029743247913873481022649874151232426536780363762463669938699842160628928320013441027333960497543988919281921777343443661588827615753905900264681411274584337691412869404858815907728558854799757415306210070504530840871576990813038017248330373625461178300565286274135295072608414876741936856321087327501681050901536858373194469107419277021118153145769955594243376263890168278290890786183547067188760375027903288781175741950109184936443054268198086630141975267599601165692692731033204135355268375490006156273425946107609193841795150582571570877240852431610252572573335119092993439975158052493025275363553073696379901584905630127337907543890821150165941504749774970258317717268475516057493525453080551179593261315378265479483889663524597329001051551646894706457019738420372295897134834139755237428827583473868132826450992920129927794261750480074367262989599259342859662428764227473178939656522791692291936007582335070737022593232928127964013040626274178936103559384912027981615998431260039797176273213717791069136957726917776419955075552689287081853815196105286671319521413679636409174477103797392856545477006394106988207693381916154660882147435217712114786645576776654133896323485088906970254855889090634582033182200804698290937345194440856969956243294439366685523567018629727044791516920173092223090227582376745702824030423688183409868471447851315727484687614794724606453901462933797590769133666198993238812968415816620609360347014007141972123991756112544925818513223029234259255410539682877030198571491047148290614091679921629261334317059158117100255575062247964480878490702672977234580037515734497009359242285731617930745740808169420941802766427269917730075304574948032487165851251965763209717660828949107458773097529238606472889734318439836590227797566103631966082764241081361299076731753026651776513920045805263693708140462594403429157076024630476086180362754709903508231617655763934657750786554896803473638126945790207063186251964301363174950705580195062215798881895693294296775038352633908623817016123328023689182429440527253829189128507995158037564453334381395078516275585674021711471918671199462452941587054686778100518922520167117938646509869771577653895619644594737063295641761409205824520517247837007982310556267060328733699112462325208796726719829350856496273710766785567378065965194742401464063430710978988663265620146649475846765953686151458205716610686654515094251408204806082718028746777802164715417781949173170841695560051723418937978798271632134094323233818249830648598268618197061927025700471163847868867048171759722908027068086741502239089910282179011248775167937668504617576461744666626022841649378451009169304784867178252847676448376442087423268143527046457084006058516905369900622214644602995145523862591949853232987170920950213457600178807817880501121046900934704444612820268543833051733971737820064208395716335983361863086517979823201727348178970058075934441025313680318244586133823290516865156155925393397487707923619648779626556978568413849106511489709431056827198057982482947712433344421687508341006783938729278546551127592723143573572362518722865932865504681127780150595654962699028613946620324319244565627844000022013995553565461047779442941505647425025135747527942228036961526587286053175264557058179456176488035516698024119119000455404873344416935826012017747741923930882823492043418030216822773123129772417846976828285168170300367148603479114500917024170219419389167947433331343658255906615424507788075613868302876281706822915276601708314556967320617644961102520679337769397332979403876471128810150442808401073540763682618551232541285397710192568950139251166575887656777699477396828168343890082236417638612109252539615077174412705713472301090087601851662609903380183001990519024464709885616551491469215567325086313053410598617348094303465685782628995234332359380396980015925550739551568456759504997607647639696109030565031538097888936882579033984985152726823626470204597554581189082713694869408470929346316745133980968040244637741784110779297611388853257176794677546976698867354335651270020962390981674993422135001013007650884061457114215647534991651007644505778450894481944055164778004902403435613284731268337148102451448802336035814592329292783889067525727204659286527776238756180701205467212931600416274596535323464981816849248670376188309164275677270142438795048600108381106481703528490688803571277971551905236790707995663348707587816632949366974361102519510621547397322155688088653150897336369202843484970891895675474453787808541081556695754498445505197129397371623235364032870404615315781356258698050888349143732159651879588634687340208350158535111500008452673602473319671466351467460940472459512875044509985165271224403639798914672594674867914513025227727174752742391569031335868274977274026029757817034618557745491127221845476445773128319669093764079734031095805001359643191301620260798582769748673638157121510099485715906575128677841164883203205189078014021692464091139156880455842880420543264850720092607726937283890058123020633825511479237729350790670706762035316579756991668553911308614126217032514600941726434195868318006707152795308089759730015232997672329280674834131198878056956794680276790982029811840023480645552818610514772788203837532481088809696623125282426133156655328272136554334655543548376514140042918998563895279989576861449870452425028358971898047304755747105705399546889086317100200821484526957445366765912573321256313924383841620861230601368852893836424935933541643799645367280510416852397351493024241854165085533582907065493877289125295643790454726305265451844790945850832751053058836033984050789687275052212862983971544558223161488936756911457264540284792985874761982090666833929859829102341795584194442483985842449859212404152306947748908982162176976853883777824902008283726883650088681429555148356102204967785787466193032923980735344635769272017051534028477111155448835651585579579818749538998937452589289697938047241435305007097547358453730455566951297978289066570078384511015620456148091521091985033712613339613812730388523295673646105853286586519229927045980392803565571571699836108917245609930141384169225799373890499905458614275850925352757033998854699627350872146590900478703856521642853585181017152790114043522899724799237855863754237931245853554522636770884489181813976234501554936909545316829243666177772500763194201308510379328905571108760905594388537433444364776110573088125573216696635369220119324143479130019770696097924863837276356699798770100186139603292711766577313042023468781355810840641871198595237713900351051005068524479477135973682646015153533238864502960760139046904211334102961169872058043927636248888552187188701950683871753920015049711804451044900224887876479306300862007512757989421659566866793477576105073536040502044605847094138252991813213590196501079091927535920797092957781492630518948906971933668507751439802186110084380331954595662561414478055669844463344007967363755464262859707296938277856129272235094208829175969354134030991453102671702667998114895867471680179612103845955614480776824756351570249111088913665463300062422281612709984605351017716879901666197021326514607191018354311772907992455287021323749197986177453082361601466067993039177172825416820310282581019130854403735599147608432411542752374948626547093060620624444273443239535124823143381491827361476055917208019072672297813268458277279660783405726602568088830845933668801067580604923938331208800705865592019632554585165054385439265527519847069271956413795212836853007716789099491322944939684301888078802747503459141080589197708919845791299099598316904397945868030680655108741993000566728982177336496490842140273685022523844037444446248203274369381175879063299521445152000719592588417609409286529713002304219993221156795159739383676934683877568470231574524427469871228608085439571473140475685531203015231568131553046829481887179223875948169691823498112386177110330967595114828362819088450718145481750994487335075107874852127972305185491165683232715624013557846595376290510780700507004875104094763706516013315254265843312252441395749089204662044993571869035413585294887869383183783832359760710111348102787482506489848180852438643703678175631988421694259580821727653895948111352049920896466108153025533212719306642933865586446739367221339415139513610129276695080500686394842310785390532873110945312982173602537727628279258638370660665101973717972633313036860915862929036426021017112197827031646124150390446745126005509525347910919938657116128688292488408416910314699185455517222877623810658248442348616803765389269588568500027301963325967383377584781090510813149330371620425040356784958572321562496123644092894885932952681551562279770520176943897708569622465452987487097657274632837306809098412855412698819586011018291043621231793169597592896018445824277917815084338391135536831532648846376760092513524546490745183307157659288256195912558158004724063432128308690688582405025676724909043073817440006109501513615218855498118111640654040218349376321825488268958272135735910946540591495945973580824179407329381161877858389793536793609498278691220958220260854165705545234754495662775722296109042463019652902693570933019160088335083307847686659281126738850841378976704036590501099286215465042191380168607342318336657376084907033989110754508488535008427841883218761385826430629815766873585984742467128619223046001897140590887167787173066672557018095685741206082431041611227949166266515545432713998586727284095944904349220501754444933175780529659522651292470552453568406364874467289134658089573795804788488295166434147176352366134595196475954308767092468199966537645015398534271187095459448968378530434503755482511467144263251007410123705699575940795305291133328976263523099629757438382387373725725615577858094669486722126758859171906434281394051390285509870963556291215689268188097077538088712903818345725571280621633556737834462951104324407020341239262923400158730785082419453175184606669575554715336188163902928325270083945924852617371824057135950743212332549691897516942496694985158364129263067479300008125092767629569693243913728735691403557998001745805275456179454208048177993768446459293861298471157842401666073477288134534639499247073540037650754167094953004089721497716381798248220669429430916008464943404110962667480981770576343581892241687294182338728261188340860617006827387515066437955393721665337501525220474691000361426181588195584471296773995933822099490172296856091428318963650187364895694845644174885835476785671642099926659365006404804670754267638428600344134072735812958763891998910620193499656903766656945965261968361266865560414576132552680320819337080616793692837105029796938936992262707821929541005603249910984609627430909268312543050039651197237306609260797792892443405976946243904640000146468118806636897500461130363679779985887949472128578886544822881133776800089150187808969275811006402852746332024060792433034216901274467942256063073843746619551147758073551607728326352035624766020041972611425171878656487817263835785941229447915807916199082965438850207863998516111044954178370286628420717447555160694594617308660608453104542640709920592780439195503129856150127693687928362351996779570679566692565656570163742230896520797768689191474400896440893432005051418640733422916376211722655957137430092091474185440782061618660988366681114864541728589030584843441504293783659606589486932247677945971682560720585353467592637794724085115013040125277966272465157604308850442693371289134379957406070690536295772298721523775557244033088684024849027022845540083128263123885658821628533953560471948512302123759531871290849926460137381473759635898531632614261076843031440733202361236768686546642426682928933898197016254584082153407009131287285458497438302045171509232489270711903570711312790003928830255572019253471837862025940211245020933377679154385433202070125707982864877645463561821643846432721480059868671553590039516776770532043013933285658854999998032739247512862364071493111038285917157734577247793319871404369182862615472204628425852411065364346948928116118521722067522883293182614963787410619885952278536313621236177361340897522397846330975477964327550895108299853723731056957015104071362029888406874509953828052021266971407181330762545750514578396906892700933436994992918457010641084743418302784292463786606627902559586199371037381672445972650228370751960019515102787291849654457892802580194188357197875732612434361612711129166356687458670389587608684784841784332501933242236604367188969795128499470654350322400787934293186800337118433218077563384117243255750522242525637483231117959850369530044269706418119777484529989788685116236412398762835322773040526654099846244322669249042267346980248036586187240826813898230261188234465758115795671344717644991112016779404317073301745069771285752676304096655180525449285734150159291374950199985374483362805988447653367204717735133318605512032983063577210482209085367735195634579008110126117902205206349905691417909714675631468362063291597426604071250120804812483658698587571276756353813654553965050447706898193138598662561842121215754202880635641650886883743932911373696800056984726825091109814183804829682368195820830640617563158163890527914251818903050143784589637426382110757155871358480182845254753334004728487693756151547605991833918162329009458304982064808448381645673424281855024628959518634070522415837215722311702167714013142442218724006310905357550701776153228994110105919617478982418462782704684859200868580232380390614943608031893678839847934540957625902536708192216815072950574624085414486604803748520467354346797717000777139402237948820141408712891263569994958758276442886993771746662801851827230843628152164618199713743423195314178437147111400008751452935276747448472562523392348552501513752583896925748158109546193886490217069126832098579884706162636807759313214022378448920616326844438938000423741775753536277525519799110232374112168770161983575714955905571665129128533707182825675681328873013011280581777960021213683619495072539606332374714039074213491300988326874541298831781328386245867433888192219526480865650089885595481182024141253671753997313860907540742313500145661201278482325721853066503498088758498606622558803563948019484348379196029281146275963581908939245034744846947199104896150813448341847119103631122094253649169809471207239112160012438505199852808627921980509257726032997051085271637464878768734259617476978808394787616112756404498929707283861306888550859242823948815355526483987242150088131007172776227427461797805432309448469879863390239852867262909755356377791968583642100069906260315033920175792627473815754424131656128332132627004692516419835133615537843846327120375197515251101516861897309064336924656151689912459498693405744719897118270661067986808842452715761577806794581663705579354892981982314440455419439793181890413303236824742193694842415423589792647738001507526262027399511832573070032011155039446898542695095990138481073361526092389089372062290522283265987104090989417381177967016455958675951275833272361650320559799818286251856258826779241047154857002469997339022662016883634848570058139667525938933462128267691223478925074151023447399837614308247267236674796218116498212914980032794361961770846954484356664743614818401026831480436499915743344253974818928468807091280922443296702792091053187196095414845128390801838708915074980216500374542478409665846163554172054442626821162905626782278897872623559897061531393750852226131455340185369539705183203089771046097525451349165661451141721500371814315044495782499524914452020303218890031059397006898871011097336587520865815624650332954912680138942600725873638719947838010187762377470082550610905991653000425468910958538122317611605952439572458247526377018671691608302853247243357427692182231826390236490935032161276179899060519487154643011760590559420761084567785469442823720851894031977921455106111593166673587026780741656752498000618175471837751641662308002775373288625236006723512161095090037872283265298259843176433094631718967330809875245607486419814919279658612220949933857549590416893499225956051088473769209025630604989102533917738423552088490345729730001108643552920519095562889638010872751214025993864100995638817267842139531762531486053897420934779327461907647739940857864616399924836900823862769921748914200299753997863954977383693380020445115043160954549218460148882555858130715529256114183837258553192790988838892995865019371916634476033372562271613691323600438900977148681973501757046128919129302941934499010284954681718479641862192771467421398850219871109717579380473194190606442630898256646287139618655867791233896115426989385768167445680342447915494983159148278637040172041737599119487402723160016002008241455368651519825834310307101444417856576153131495918303464912119718254657632029398159307260141199198881513344421294163967419929232680808881209616740125925615470485199307919503040062522706285998383257511954166980768602415337747442467646043394446204063561459492505829051077880201872915678801308417796177841722689583031215762908366104456511780857209072746905531361064885523518781156815139766324994513917423091430877879078000824537607979520423261172045635509473520396582263638740563743583155970561482771603408486029719533714282537723601828699866350198727237447293971011521746442134112980263797584029860913046711053004589071204789217039471389891364572105323619051593733347121664326803261905767037552231832983841219825921462247785742892058943990547341044971504978603850157942078119409512085979558398011692147422793713266496432662970129551091619041376659477926994968399730265121717693317754524694100390745398558097089481996851170589778112896349922914861251974229486631122829475072701639885898034100512614797979517148046929911966698130953166875954772157985309626567214069211538833104501902342581291578092956531384396451155965552860488515033999608322219567279030825210788530844895098028974101786226281039650091649308803870797861267109388089440595466623090180075327072659316032897464683820669512152723292710037144998781017812396209117848912618147995486256530206832068819310914707772532414364402791981790292038316566488116696553875498327770454777623141323566965422003767712274291370621628881549798070635968707162412477496222979878267023859288959160278302972839559727958890053821338086819877208018910423306183728696040317260036461300789520645262754350914537814140109481124311518078654917924322332730102930824784459006466059950855368186304598350586344647156463815539807209056858102995466935277220424835273337886212195331674586360030764929854397288353704919441303698433258874741309699310527249275791639940337671295443129199799497089029720058954130678604719945395289887510166331041638342848858800404776050069775647152679906930920797737596763466079989025655158026143133902843704356657055642499865981261629155539822134681014217223855984589525809541495677682965207558409704618167272454298551021974408331743659366496954265922622325686090109350310627598362167561633709643961244086283542306309457747507021943996944847162000752779370474642391901921350438144646499417985186431143286098675238437921295356532155155059654680884100412459458676809714017839212439515574039900824867443281259748906800578831791007642633473964594480740666496585020061735511106153909615249067218579716497430844884410279101545230244130787110735276511136579222708588683352368193262636497155150317048529347948324736095825409528271894056690423708539438189311333739082158177863632210251416006183840651059885830223321861578555639063207240230245091249795743511372644352002045545220975744495245124742847962999742001622404498339757534866729051672438375143802034249214336011404247686311902874374821553580057177053477907708832445986140571998957793547033023092540321641435481258248937861578091116827153859123240487380412686824200923125260203394283589523192193451097595658267597293418179844544407826967373594762526918025433029114675269695827212726827956147717815613056990978095808714494063903704622427480778886983329596109092238087027868962987384998704538035113539988299249778985124676885833868104798324641292933631401379734534684724590164430384459915216847527473223542388623206254707669771280678630219410517435693100482609852276097143929201559616726957501418633998122634488336840896331638806567367273467121100967411230058968822007709573981679560651633433575955919040006628131128006701641944659670666936772121537418760185131202643847671572032753387187585514576776439241245035712100627646055401157973708308137538181986822444428015831513792411768291638374528247918313627278178714014894701420575645456733435200792797475860064560575258384928481121160174719180560141204348512536181169947579343495289448076169936163353481511346546889622656534185530151834724507782039072421951801185380160851416704991951148721081190114523640171908191255950268268687385032335293824679134655403656532738014455131309964479290425760468343027284591784347716244752695434051001853043222718375957163454234531754062734507483625301229765491652486852071656636687473246854096720896845837279462278712007280274268965150583614348305719794428908900794242370850653062684502999781956979671900868458114944627233673492334746066097809514900397776802074129792196308927259791506093027121376238516778818392717187967264146140508141553454063543675510093023525187720887365469045719048033942960661873546157607959451383704128108183852999263524403242640940927228278426686924113048832832906379628906251635557637065348895259283026064151828433733283635815411653833152985518746093735918012513972508505073589024221399642763268262412907188629835470869645666151387625561112354809726398594897967988652878722216208402059903653151420134536139076148491403907064019189138997372818193663469279209704077873277710422978252651594379765455995456814477435412598684000592300026991628313109146523679661282423921337193796689882768046392558079346535884956333937473790306505158609559385571957544392951123361450411640342930697189174268921894042140344879306733016553775614945001782132002254588619477079600805999108578281837524135095967309550927597906069540712719819463110415868527412274518567805892139306539258952944645096897768749368138692213963997088978126963861748093150777575581160809758565802663337103257716912064696105230174324311114216054644672117253396372467389598323526974716059587333357328590180800463200208341974338952940341647595131732027952088699805031394977091655655980074744230899090308407590904459771565289269171075418191546292644911507938293015883713162015070196857798758875888979568679198083090974831981086090353998576046575887307340155371552894163640319001180005350771014263627976382584307315955734838418715109376393123473875767951232551562768513067176532169377660427445683237451457834693951877448040907323841657285421163071110875177473800226413312632909141848031216678147548972824656657966989508254222530167030872161379174556482316581791441177992979937785286143259130677331482530283958374028860463189070125198020265269569224185735860734253875861478360514180851458928964971148744308148801910420192499436063718080515157212895635256957970263784626221619115764999329827750310433038639964131211372569527852038654625664462351299395205618217361632402608060368015733633787854229811036158144195530927906851030887777230201593491471734674074327118400194011571699751036323485518349589689068159143660996035390553238262853901176978573263021877863970289456641740658668680215586314458895814918320049730307644983050691078177441148559655982273636396711219746642986796044524423520109907334087190390409968177312439487864263298136671191454043808736441730867436783260901413067442738988833273829574449035696821541942134427823533241283941954066352324760793519211409065511375794219591681026043508153546323568084043468896817861139565888412898040203101469860085696419009198277332853919800463303086222992684181781372381524157922700757594260030703419842137008673233165107062118634342349311529325961512777326616703738967047475200528637492702096219787907549856921082006456190556386870998453365604166980049631660883011947390589722348010272682250855671623546590695150806074356466406549934224866096496557945339871342346593528950708293750750868359342478514677801705648412413740992964068224033732710192261902089082829725923594657353140965316408118013165554626509540831692337404916090475738592097027008484279965577778217188061133906361742610425523636373511734507005908113917304195174056994822871784231542575359479301200562084280061219482736420256571448145116248640817180512854575133816195800506593602615241699757928827759161836955107880151774816379476908011552433508292002993573279815302013165459482364877030925747596562069959989406558107253116079087848274452564849094957654563259928458224577167981996397066331296676160981729352597159611416482647388494851699969425622524775888392031815622129112279340172871279330925964509130060075480920881588578787134300880941655056788862862539352774891833228819112402174654061840887554922422293743770489192546175299371134040742560622038996342766410662971490502123844140477748500831949759438363511698401262078922425986728162395014782934171478563646279788364022352140521247106288195120240833383564601377185794213880788732791758509286715809958574865010808172661443941733997053058565643872905235236176840846571139894625597767088979784123151617814554348924642328700208193097542603975254577434867351899289154431445010277369437746879133790611883551925476093857756878191202397654386175524852089012199399866860019778931896755008080785649194534036639535345468524590283826589187518530196036821282149613762596266323274421331191391574200744746216426197810525581786236244434287369813083879226497823135878334164483274095308291633045165727185929077677069295076579160138092586456650326542545806967478298377195322008167014077763613341950226293638941455886653226518737734370205577714740937180498183205926665941863198237278246639966289955158779900628535814303798417594873719700167323217046355354536409324562513794930343015256578878010547571900654879730898378278244250765182924451198048861477308785407230486075170819712404754463443647849857343474556216574575681199028658468333156049647120629363833295380835251252420348419747587833075705580583963058073439357165814950001359811326241094417543261371606022463140518717083913724179161173585867774297400466891337713678497312808315626832382688529280221585228373442922359758896112196666213667033428101017282670685511642814701926308715333156807682345203167386808970910757531192034499048620136805934139720503945607984148131980733439533197427860373181585751085953280450422398349098288311586278732759984922211425610531229707804691339169966361786728007967775782984036779892573997597391081160894516810118441086006799730465016978785007663051080714966736917776870265367418288239425002840716323698197719931871632688550757812781494590204582624071393079720408736316448341846211466471315498648215619691518640495178064536408462536410746294083031914053471308858027497610078582372013877529252503607277559393708433841429411373833743472611302499021785883688220909751408515460820646897400475950127302850375169121817565121008079777963340774373524585781113784663738459532936307137205917348238163474939423354091547266440309332378507587152915120553821037036748879920057601676508592117238958077641050985992742352889681174554379729622697435044319830903774086593066496464752874229508003885390470100511109395473764568846035031268490752085832249327735168105516984555766785611416925229022966493789964998461085821998126169562345352164936180599304262283761845853421546162703779590279338578615731772067829163820312251690410592330018915544687789044363919257693952175802684211033932306736089738418276339559010762024814307519695953002960210438400739881405474315928988256451156367596744063973836494955036361868503265390940145029421603911964702257337960484112947511966110464826647449472469565693901692844452031259308978502091565825186625826636540620778713983698121646981233703347149718758620396139496755320312088802769411952014538507159958678875208149016989432054009199300501566110772863681487972588554090740326696189067708743614622617936235090374971462760578688236376882038382294550685670607422486553130756276029158922248047709235232820156775161016832892285464315476278277663344389602339899521988297040645143878934971064684042564769203269715832966742678391280361140018833502620132922814226484321573690662718757906703483725630001086947206420051559125403727384152772262640607849086347439753813288213043955297126810577532163934796208258865532734169051285432755692428423385645275438942933869918723584729266314914134595091542181261247942988927165988475400054180063217709370317277193658030862182160854583253175519532591448330067307369000659576789256617094051341879355676780655765388132882235581082097856763987183257431025341225149190196401159630406962353380890054462419402432976504010802932171459962516564346536754890583221721756311410146685142515829438282353470501116328415863332092476307929811454195883129369931764246634362131704029221307425375171024517243142615992310095209505587082727149323165197287940538609454670461536304238531196436746688294119844749466931797962397906192716568795432067976329534514355098597369149730852138426416471626867408541272544676376778826749593393917589126467296973293734325857825106328472049308311661780856583074818662443230932392761740295070687372813322465586203195990276577441162954812645292111485175587952979294296929798644995745536123979693140218030117043708867030266741505936415424408198136872315228108709328191182415723267958715934358211060734118084815875012614804306814410002589030917877606077014417979077158342277916988235370759856265232463213722524871350245270197808218349503473285881005706854556144782584127620703029125867778314064381506850842835290156866810710300692961219769877136035006418375139097953070453059591095284936062250118233644919995481609769901390108811328728940794022061160333362689514103313994661222964157579263844745553523741238188121193819774213831894135725710711513055953908572169984782142345333568882260391572919321704897104615228889581694607486536479285904483549490644615039695530468482401768110367307213499931832743003566488231364785234289989446302297542029261572707070110913190526297908351540679095450923310613869663575904522432721751192157585987727207556218401441857297986665009118452194600783334531853606310763276512583928847312949100719736590789717475181164024895759564719208468603406165763263830054822429900859050723931117781155821545317423885312044017278941864460118339533446631996865306678414319326380867367637965694589656760895033383649297452366793551471526503110272632657598313259704800339585507708167757323930841699730506107490237934512014109921932066019284802235708317607308808175134479356473835327144793205507931664072766243863094216961018657225943565042812680850163152044278938059896328471279820783364562674894298974520549898540652862857919717815334977273989593852072363194283771675492094704469932754433578017061653718814268366056068283637867038647515595659992623806060742363715664591699144756030902837490877749032781412087833306918449977586753121831244155444239035491186938516187079634571963665091880767235828955171234368278705056852371620894169700103903729243682571525675194876922082666605564103041523831468325597935626599620371308017366256983583915964999140272553026304653730967901498809298286985076549785799669549994521633861060595410475006985788791253415249298925333184549329718262338885255927959387567890967365185320449653656121304618002313562945713798306426302533121750187654362440342869132410790191743516758353707711369495603260215330889179895449688620490417542981887693701385078112111574029183261749411780276626500058727157671696918135474585736342472038966076114660692908838261690300436709596330545869715290068205451546479871749103201195594132115134337709854138145321998699589314666561723046027227847566991050328969895961268202781608755622188914324247187005915641298251403506692639391446259702494846857980944078954483053741101281991264095665166739205801550639555285214162161597327915860834544858708072261524921534479690475064190844380974856404439836283171708334575834754668935179481411688485304537533106798811652166084596620453714024322521694803607107598253775341169307232768761166219856759627050860442330556899640398319832087028812882373139112167426840485838203715786678256598159770831810202821773631642907025127836722712596763816394772774984239019512983584352193486263226246040338925527054785672774367405974158692915408789099996512670042613546951426438065966308769272886989146814612743120787859847389190445709818689823861994960081328587958643771998466376919967374803356949359310019929550146976043658936547604213826994322765387910487085750116463225271365033342901817176230377910836723928297286186262770473554358916857605549402972879863960862867120651484705030257257965235815283386479721101061331031440313638382824659608986047331916254179310060696505288675693717301393291077521560550079269961657220040579734505871227064561032561517679041455770269077621479712324641452112678948267359794244870863983855027982164671099594769064162786477510915493072423897251291676997346903464670949853479812173647873928569687894959397465140765108328118152534719655438494173478466815446338895061721414926208857125280183961787300640853571204576723691578734137603754896275923592550846355153049804066574916795822396586132432694991554854788380188228804305071013154102540479276849754344432388192810609022606965229566694898027752276010666557796835547552691557610309823038976894399773296411612384391440457342495423708325898692046872682527422333320206692136997371578361125945275219358469034510073361516747462823781330200390165934842983384879785285589653050438703597340578427429229221892418017908343293888511604793827712185302613834864840922208415194869441927994109365500228762534169281089683222277701029169745422591102770497137981233091981805953512089211121826330247269159733580057117995825611565795253175394424384553193150883369286193869269689532752133591021766967765982541685679753685202604030620354387863597941441193648374925509461541607358281662007016669659949353578011203673247465247893518423766562667412702261145620369487473237660685595092889832001968639835498113354120876774931647486083445968360951520784839783402517982617359731415303189781094375475927796817269311758498430847791168647123233443822348099904878751389171820526816478222844729761184198863039892915060180973116944290083544301885111026946015704780656404819797942156312557464116720572832364656333080514331675064221318386540143745488338859319809753104283669835015959212610407386233719928450620598281840801303131331072969245523976226577554306316993743776198962930715851201301089370801013562208036811909056697369757488236303646538360658550708380647433398014504252334150358073905527720437346728735954336771106960870564353721489371018996633365608355429861996376069934336820374354358906334748051870676113575567169445670908491198266829785109953284371493009703625886796295390822279278750478053393847724901989221708335682638479142977744770022380472404158400827341334708817997532354692454892377150518382469161907145017633594920160838144905281035849454196582774613584412422195092388278443515338782375714543124413543974758940435364443860685271566997912582487159108036508736381452849816954779579375045054903439648904506626232787801623395012370898404180411416565247546020376219697733091836925327507408699059054227255079931246299306114750091403114367165059648575480173764564683312656317242378258439862979301712264808361538993135435894120687523654981784050217347017685724749194734325135777179793329419873755837263242875143341480655686878987064699776836262854770013275840098959102305388191296769178943859449961276640888710947296032362406989791583639877862642284405410129536495042511279249106477775172066349590573384358279561996480659976383202813822519845930983758408061289391809345222907749727988357194585388792409250390876674555171444925243689851650695569024059199415377659544194945511829413803778301615857972951630748700463965612871250376189844967388943341480184903509503933887470391426452886027763236517434090977570674841573162106403531984792120991195670177565410878829190601137944817182001072465106357768459168809322071911558447826931272352428673855055711383584492578923155327001861082717135655579675089012090150186212250137595188223982128620316602527930611849376290441266557379284400390529382654624092074325432561053445386427847787857671025064702618931510225653535184215690134542742595944183981290343375481310149604919618050196111118317728081728888895596289710985095118872226903747408359935282256590106808357792311050868615248156452457413192887449701321361366797578060841171712714771175187736490908454805681609414462263527237541805139353947929746065424352816131496215712983509952194307978235461786136438780016127836566517528762651651051791804512522752280474961107502566286960716371614486615468941897568324134241644635787265817737916428551028761159826327917910051117802151319249022706944137460868613496103333342409464533273792583914810715100009870309351438992715929590071564451527363994567096418823980056450670132622829625530555245169130048591721729603781299041928098848172163836660296517217274237622361562090691734071376020933524462622058094243217585255053642961773903119031192355111675743552571250191680005523919124764708817563357767462380416561467937429691373424764769449864387960999753463385695740027227177779915335855887054107670528860000084847691319148361080228957302594832036760583457770063564243486946731623465610859357423872966519993586530200059470922383791181284497837302565046324688947412876205058891117623442199843461566201195357319237945676701636164347046764651940247271511229351275917477129732713970078452332844365350782893848721610797149387839798223411853642935860128741200764468266654475464002694163758773563942922654425533093335631213523331096287005634785163427006826095727384127766752670854890352069114204315887704616739778265640774573116750118817238807384572887183691158272933027656077395173360300038561790028428514975412973358761858187899923267640886570136700534694262067453243067647640558854696027190267693619190946499871944039242866240176622299627965768484023405210713956852594106916317539281169303122366510559842270960155227113450820428394839178601718628677309807752171445626542275196149443133547697408486034073160124687636357038243180174211238105661918466021370998873759128838027302018048148220891547959587093759008988036666885424063083581068491176754589745992503512437393198956793447138977154892299236877220744061483250945030609308003090175450831378292455700881751918896268154364152326910867439104422118610090446096205153127559063949919600256635856451633350797576742258978341424503101818935662921867726723866499561016388027027508138600800705788761086920566228778223216479793815983414517449383203173238611132417669603992288121537549909205454586335481135453948584184071821867598593722714657546326706416635785131539571529617997813802548719747097052386390821404867178050536652691273976137626467439341962920501203970978485822067169291277423804318211956009790691766476609799501568133999322864175152681346044933463343043151198532818151127473855813639309465224412199511853365973058972778287661397491755900163292492940668221476170105794505267449938297412674886847176731186880622523192483545474645773709187858574557054147971701147789087735087752014385929150401731255400145071379976457168996586586163651779007936389934975381973256002449399223336955088543552276969134204168559102981512350806063283619014540727433449805413181684631444453762366433943649612435068070152679643539888562378746805094018022097269906998661349558489788960170349305184903910893988492771823882616295142575257635019080332604599587242571994592358940680284861477036556090670262220255202482920514279289987117386592329136337880636341857488529067483406006563707572365274114989437941662093233179898183194861452727238314323195606219769471651600062264945009769578153257503959812341000142522808698999610429429370314420431172703521136552533965682262911965665495269992181084903596379137917400116604262751450351192505096141686803656946306300327477710606422180862692060645458111346968487225362213709153732011249528554213294046423901426487667449260350829461826957432123484005637840300816934240951997270588042653159114552943935206488528915420265310830178332116872831601909707350892023733884030517666510703543861235108609624274078067035020451508334519394041414512120871556446392961572412626273211423635703558164269821330475460732745851708970337034985431266577445867747013870829937016849730829480970574769859404298004738343378060037103421571945909209676839224319124884018986060061915395363566271427209910559050527565916282488314661902589817170550868566919759868868307317965103476128238894007200218839441839399870366736351265712101850772256330997236869647657809237111801806347965712033449721092281878293335809648800117591390468085078516706321810620544485762548799488777352852427186247784816327115755171979471785120051086381177233444902980394854822674695725900818168416654141129044844492702180336987829983936023496764326372150302603815907173233869618184990152973160727499205675870561702316389901821519616246108626503949725709519631573941479904736741557376455028834545384331826146035276447702820919139761642500720739802441560608597536811099589146344419389068483458974798956896282584572544420638958215328785750802810488457332881897301734958301659312615058450637988030240692549145258361312639131112357563926763255583234962951763000574261919496462530021754931856156041919899017338775825320172946504821797750546132505441356335641310847582181716094200995430556506091310794293206804031888324536773827444887415764723090609934147359279041083931469882007717386652579112393516739949684266165044876750621383798898116143543153077607976492004909338682904526336401693685477098603358751136128035300080114117237790431898138527460055778194386708220745522034595146079024855724146903747702788926754959017432041997340911190764218548547880111392593397560458102576642606470974853552055012460566291122758016337644258479199879959124162981778566909425926170395931116595250717358401149624437085200137418456471013579947966517729067961887125848466676145177497181008263259841343332256075528891272220541778664093988625272499797350896497715307843481871257112262906049299446698161091253043951054290876154616113460360091847064402154516856236639741830113892063662004752629217094152444188560333687003451192902612925796984220659130475223191843408031044505841148826207536215192236285711805949928565993600089448055411285765621375937890532063445203541495978854043054860304724231485121300122308918935597406989230636629885938869516753408183623773713903408999868186267098354224312287894668990041826286301926114915193592040001544170872660592968588376056263032415024754902158357972350802999541473745971928198452891954402399823247306393405849465278701019956002623060750173428970587757769273147544249243066296190503463376742381603435151745032522222058491784323853813465824089302986898230087069676053367019960165499623618297850876941739965029142254891486377539469366958100985572138905044339627236590902264276401360516149866271691793952292108589558300129038288938044351925153991608463304312338117844540135275556132420074994854027314682453172841747392425584861867845793784668819770104304801436494680031616069470138027474690723229892929791936291671583458276143439165357618617647108264652514606102623383842866070252992654466358153166504250658319697342199882659915653980043775826377548011812898080030776162150414433538234889165210853021434416914607487751442375801462315595056913386810917428998474158568009698809432799295411591063616639997570798124455071556712989052523359212977905921777382467848027092137227786512978606013880544397653747592032197755901852105244089294028437271910855984131612452307174833631308616365669547563834389702726521996346473735934100943095088781278104707119670206609068345060905118322062725761379901207186062312330582698746539436227577962552765303467638894809771568168295862403223743516687222821399511031525557977064305302379843029159463255864192084975027646437839266835578083976696977581411092684444269660373146113176112944606101126443397648758611193874506765755889286547110788307655952593545894705059534101316074110811724898199994074584471851561369255333728263086672275362083386790739183837442217802340157127824182219833839307019075441952049166289172703576738342664943668798889541403285417328330544219396044381659817925870239429240026564853012106835103781080725525386422739907167149134632676285903931941526646540457471219266308011486683396660020932571289077942930954414528007407953158998272846304206619091886296801508331731598888361189047682375518736310131176871517653663564528289011661967329257256929365838590824735024828160876740952264173586190611089264023114360926213212082450646601034169018401251449881117967096228043084907326341597287258583479882233496754281678126938047725793322336356049265910563507728813345994127261843926853363559052292374850833198296953284181935470212007290267161843958295532168365112032637328666072295606240196999836540328673863166236943527302765730663593823127766619311068827857855987145781507224746625523286058566050244525434820369877127560106661997246169838148689810760254781517644586087094887274430671845992938286731501740759086362338183029902848709018951428511473921728543078063463814608557894290990969023457963869121690522414887835749543347525618355791253499402989011392538370935004816104426877643874032904535497306445655551948466203327384855593123860615063589658857727561919326162971648127290714417964297983338196539309156577239484507215130811946344201941405632035058299957366660697083406333120477278557356504982038672316488126544836781617133961439090167860045869278891267657538971158193139919278850516170150385983712102269189001111667075084887475592491077872332812541934614473577191796463515501522616530527274603360766401639321119984331963929732925525254248018838876126897447081616982983373431768970663314876894759011380315463535212797882656378122285914841948824139725448233215566340946872961604688964141628083263631511623072902348590307796004270254761385524755934671634030210169933441605519492292933626679269888922072518871304471815410397511129471104517217025575321392537808673031525860407583714410462182859011288033760154208621241680308801988709649057068957485661657010729349701040529243031951952362892094032846993205356298639326394711758871445860495548963082099567618576847900160423643857579876561438331482119840550273225338590657505467877041396590470297737859331976620805777711476552357634013203390309159553203811365296520815292572468289394418839742321308671200456500876850726321494628996863691585451548141701946649781581127122728935316157443384185476337267468465941024563493120420074327483369776536174674585390346007350178790224013144157545005264832510318731079109209783706213710351035487016216828789092014850282586978125000250939220007573700741364977155827319776771031023174312976681107197666408712350049851078887432840479791128904415441757040281265683175981789978986132530345954472484190620524066937373274128903350349964189959154140369719273899197287802039417739920628325865582711672507835912884263472641828027994701666607098766226933111019257608714448241773902392530085814223824615760908294390243092136403766394265248737119415062627473448241527536580415439422871481010093555067844969441951532329717366877700628116750883480776384455529104290931327225593765323506117166929993582853247070362866419368867039163356820189300854551597205241622534100832923770146090248983038808500214910598088007679436539203892139590547373706451916773418749635543429129888184769473142348191901396922845620646343005862818192631481790170925440171657887509543953939796097780979820888701057131451143597044502774526356855981226453468740241249165504842514853035283194284798280413412121474037314561650087111904851389694899216494096289475380287664762564231578924699878591593463909920914459601292501956735547767153533692017561695848217856240213607057054090505231464659179139941349491313568787520880638006759667987342779796205656849310889459074837354663358177724133224214022532179391406050442013457830246586491941914619524876343255257736913387078831493997492971935240213783014796645799688612668961051880797949187340146389451302144217394459181891031061103396014286114769361065684353102161326894162782386980251680956969300189562480223525102136968912751373242600775846461212017974849171397180106054972764766281679987926694043554073810124182327339469393572281539090773563340886584730039869199102482104530690855266224257940080188459735288972655942588464140867290043329980653693439713915492047446935679729110098294803167375866110833763121584228190382470082926670759951718692606768722372793622353275619756071386015232254547402250884399904183223545404951122712048669995663145038995248781031349855943233366121344282762098821713616819021596242802294969268984030379004910744832306727024773163820764217443962828622690110680451545990531836482949386879292533056547568159603811889674959061401858843652622665741999867073458331033698648355572698543282482578825644514032230861181078466059772015264953212669665096174973635789839990027241803821309536238054601521469383119190855640523824609834853484991059664572903600640552074324348383194971756366646534013575569080316214662471953280840935147910363471931366551220527614058490708750453703831876202570542437583930009171425050727515946866587409547865484787213828049431272979336609514946757915779340607240898107227457258821081730034436107421485182157975931731825936300607513724302828738581027524612206654178361777700247845227204779556592742709242357236784835890079115104985427474728201176466352032125038446183216002294952899550327717422485737169599736953732840661644872370267940233836330151780342585566773416687884860589900454265173004904887447259869866071022386558792461753485368564239045247978929089927575736879096142510864194859151985935945838881374004665457264739753346083274404665359323289303970707129844379023306455778461689559047667388014470775152720150117275694654109140044761770965617043678699088508271813584938327536795337947464481400192780661275639656840868409390076984865892109167300549379703299374148996041734711752248692096168975055866420588484268846375958439668952009993184657836394913584285570414281144476935093645342646811686925363830203763367681159278877814672301897332301720660957593114290223522882761479171276408337009659038563254587437675418737768667178614001439699983446963519653383381065551389525024988545733831705842370064758631284761327706586705620248691754137567911984140839445355310547701167601833480032330022415428222759613274650058970130016282898790662375869871918955088264013536258857490356633454246923049541842385888481366738831487195982160293085357791892077244733723351354191972604439311985426066330333218796256142049754795299050256254942623150842934539157634690444511795417116496230961021537629288844840072616689013230296992578430008645135276581084450020291538530326562483960417691551279998290127459046133490882158442530352563614469342473071775187277493250753983387421467382866665270563040842187878232167160860157288842818880387762816367294687432562702041101897262222795357959329943567375344563309955005819986801755234990061814123189047882657504879278597849677824185289656339469675979873372117546246955288448818937607628662456372054342517916053464934502573291325294151871486192127529559280505826213392743434495201239641847317077786390160798142803539192153800530537464941866702785650454324334839719618170560669834962832551579281345638302264206827938075639371599169527001385870202818917020794873671274372990107087980086455188391076580408766388056578543063989842831855955037150336694147141248627102947563047229832651644839941358783817892557971182900486316034064203354179462605257285035886122532706397993050004565093511835044116111152874711043101264265099534393138220802333066506651737740373647323205719065554485429513082752383647911064762872220285013885759105584455104789921018371063351579712058103967636963938572484717903935049020128494741124307539258701488551400380137594096335654613835010622401462649892921301417965431570807118092462886127678871248130195620329747738362066404014177082661876590918967608011311306698576126713398160368600458191264636870423220297973339316365681335355513111420543017538052410503272741797461275737502910058403042059540391759654653986495316664027241069309000639094427125671474768266234351002278393867646019201196762214008725111915757055425177183055275267383065987916986126583244933195971227624841604111537191537808409092183897632111784808646389305490227228962643787067404217844817456665367747536677992016370867226604598329851753026436039465302459004131091380221539698533002470063685360846502212335068287333863514344955280352372810972265298520810853926301832676389658487298539720370803148727639145928448103725431773452743770198146028074029893815373602017947954338374804235254005312014027803849902845341764612661137332900298221773188415600809055151377560762710879085423495602585717180997788750910891980620542092415790223183706643746519026637561017258871968542324576393867069361629284964853066910558650093324010154882399398530675913745955798144772851105945082893512058368756554833980569558842110260510482516063391699195731784665539269954311874369378488407558445947586356306821007668005895452100378366139587479203899744965801725672546935006520118133210859536831994187135107703949816116447204567591360968123046089240320875880756413497971242669863945691376243480709775323160045933735323186468693877394299670958581173597948290128543164227154439997352158675700478813687210574532711508221658822720498954270234208501181643312524736349240993371488189990102046608350884601374322318610642128041779272209851310978431453343981213385136261795737571733565705716155489017420947094133851952456848968797289779463633758797032150504490503622585087426796652136134993171552346289540954558278130556656711844691356518775329235839852850293478830679505261262599140376394895614890068138807031615655973999619061306021103004268178612424317765973279020287026269398663744212086649945149153052521503869479911574962443921946532492939978643833203607986756559869834806871059493021348332906744239605394162759377276843187576982033706375062594908191927045935964325834732588004428195751345520100742503643601470486298764863495283830234734300805599638099951319827380311167990198037754598424296701296018634941008938060378991224016443668859619283864008744294725828106161002769823884940924543713795624592295078084224932671298374261856133986660094709493262176528529715771089179493317822954852507091857037870214596629341235065915756620288251710292120863999789196718878541534775587469948599624784428768474873800475707932301064223929082408584355406843433445598435953322548000865859297760432907906167254733794689297990519620917675491693868821713111003020892261302739843122007749331198225098106198464325038496764773466482664110452804966928055364293967116892151528209612674075564251164528362460012713810077304341414162339699145661378529095171103887802531274428524282662975838309915911723646253581951421371797149281073872095156523877156010917652944422663038192808973079591687516910230530011214139121139232084528297689954182132379585263946664694317997963009689592491895293259651255540092653825196804211496398513745742668096286060132636226605605651392080436336737301022181015391521245943401271529559777703303885439531985864509191521343614735834087670394565096299265886888477583336975542303674510430950622476410118672104705076884840633636418031084633755222967812972225251554607390349539747287387647495141674963292042683089321397801212492365861024715073558546819077532111106213620280078003355963468452041906202935435440969719486847100351051650627049981225711091086839755029226858771501584962472230633295177940605401434565628407530020497583544257393946556445311207024032358127902849372805982958197468962634100628270195614848629431561831064850451745777574806939610924527169424605035104641762173714928507541476352611161803370751921223099255447553150087098379672804672216479311708836580103767951107918909179850420388005406402980713564265833808241264112203897707374232580667808537585595210225048500656313051132080659374170329080271881584808996007413281393621835321467999287977044629486427061898241598828699085029212807785612442843190100530939904862872197728553844594523004909243178258251621440050093570268476963252104151901798430025211164728640386414822531766482993008872860903286830201185418125631014496234297853477773403387525446912318806197814236102263276969862845154455153207704379660381160236213101391391823275418217549596976268895073964546382046764602489930367737406539128386069932999419442092614529835934592604523151098857785753408387683271851659673158129798724414523477085878593938889063319442810373098579810318943821653000631176883155361618865306627430692198198279079070226272927975103324989370206720234170353403975690108191208830937649985534063240288810313833037129260643634288244757946350486005759260515824634692381355799667671862090210248514352110004720684409237117490066839528945499127055927119239279504511184831565735808598012659095632928402866635761046084507467636737245565372957176208053637036213036075443845680572318220712705890586314848637429901858171539812289246220710841047743549006753066429984879793246035655852987411841002282333731631717293088899067042118697739360091101609727400699031984766937670478972421457011338115169314152158119462528803728528990373370488393147501503996661153154227944995601102355197752705793580486998126816592092042556164756818117249771829946866899133211741070578690386756798740617167104533574453999039592282980907952366042109489495267642687415143999220431074954374394896146494767860562560253392294485944085334250463519760186719718625807399033919493157630470829503497641147479228928725290134064104694072150724096669211368945286104092614353802958371836562421634568838718858268127825117669653881710493312668900612819893827704968270797264958799834578313125970233540441758826761604891743804355177671341380367768735089728557475988144004628925118970426505682571389184570261614897771922520664519449457328106894820949005840462168416655601412576958800216353069681581930172055768280936730608800914760468911599803757749378821175105050545509637792254151864249269999523964177463605644637022677618497438484666580205878439531167311010450777083273453110057730586859855579803663710127855413079123883022846676414291681564231304956185423513710137197428959775801463981756615032749820298668545441303944869945276981619555072044080597346961173803877246546984833585712939125398419629491009202910802327740547940251691231281790697669063853006152775124890701066810761710915409466577397054753448688617043601667739258371308637497487265473043312352919679118018203949239464422050012793079198156154592801612853984094272424283553696369688224656819972710884802710793690250499084128152920240803359679455169365744838232054135419696288757470897774658215636501692847715849227343159242331272979081977404488090600597794542367761839351540311692938795119452397357321639716588780093082075090355924618121337874195466170836169974668904952217944618571125550507559361869238518592510897391218636171905195642293879742567193457646194379430487867983044339498971462997100136152902501349305081321226771234347897823723192948759156456768584179652089204127906760254187092146317879120114141121801340036913128190608459379283870127220307679458220278863018199903496426202569441226537792254151823196819573372530755141005191945479899648334127157284622971223053782506201772965454124880585493923685637256174209806534055421518487062576516702631841974007601954024681465914200898727403053963216496157168706607616693340594461782943696516492766774701381977382249411126384430355441498052746617975146808050950507112518511053618011037576286445734066060548281288222860919098561706525308459667980777146702726796037402903558092203969241174732674707986995922579427639596614677961871640473891592993676063137697153591361950830337349462160921894636222840676307302627538657511463813493499138839150667813575025322762901823376973214310607944200141415035088428150764559610425369605039472297289771159283773333286162458722003565290773927712629004582842126178218029797745405976135075627416847471802505321584278334709415133634078666691758965478035137599795474325411597897320335352695757859286869101555661626649641128899201092059055107808359151337669769476993223804729461340249998920631332124527298510860789367152155514456297091206462230081709788923264243798867500006723164795811175005385402831406821385593190499485001860816033808783189408943706497944468735777019328068260868082050577264583314857252980070925556211843077647243174530083346307403671749796626259762605808344542412522024885308554223399811539337782408298666472309424774146438976800211330415613995788841834647043868717201273159938785275597932305046922569999985840691030164603330983788189180537828530446481101247071241173420198286236886968513044372743823543586451568143404939433551466319740158524664890708627219969207705315304102808920851222798500385096875197686978120092511089376312199202500031852162621402878347037887611131472619529626673221186758753565973270245670699374741975486849969338717955659966719368411225069868586220390271346584071858006498552932804255230057689730792662816340670050481748866675881061469219080157667725656132023350329312093855105347642280196378592996196198681088584092213769937570882428357561123318912867180648886593655470455670173533104492955785252913928147975803641678968424072424181647539961738517471181139076450852297939345551221847238404828321311129784700937995370611410665531767731846924206525156033818806457529940301815783181151398086195711430273972000426455077402926569348197209681889746215450749757806890139525077929807723341304486130604077813683213236185508827903943433220723035790504853412740470092944329903384768611249092199650922400687952456802451519082148912624958344991068119439499589318053744032905814206433173492764802829088591230988837089165120148726561294433361726368292506218574733226572810632245501563709005871080917522247644951685093609661380430061898214792749085590873473552632633181391057707820397877421038434579612369687903792165398966127058906932545382630780264577343382408278601847557002706322687793195496410938931902705737377535498593482237742493737934046482171749425607175388007871396143372934635624768193747257423840326808573671109993793593851068713050170920452460401702370758885777006933985376095513456737646291662302976072018743771979116525280529086023011782825893240337589390835384720492190571267381665409495318509126216228137421711887072532582376572021522816330465472650596549347591808520546440796149544766681399721156494775585745113942851196445162635215219180426094593199665484651119418128613431097447697048826739450279711558846766959878312241077495619907218493422465975508121815769307674881133364359926874098503038472793520988800212971889165456280523838050466667462102177339823340051405747363967539787566072582564992087806856893475327808839316870336862449046748640964593775232069520227531392386407990426545601937792950515050230583793338717320249114186192657280484175239428086375363659840347182997316737330358049094237405463836506219310745407680130310076063212407825638858371049092993900272761035657266274177015335580862129908827358206261557122201988699822626848217896161704683585680363773259249824200594665312401657767333488117706839979635335323125490332238822534852963471353403450276945472212291571303229410335417511682724802595138294548923117005117390497108482919289949226631011754948381103338188837815031746899190122141318392945547953559707830947336156875011773905760410971337373713677241718551921543531702055671766448588761069195043396713222420695350862533976303098004128418284974817709947449180232259391366943113150605461986276244486479941861845693001020225606008611987114462554516218397414792916401777209766564606132896949279355472247908225443541868730060645142411400490008036769085239121207565138870761900435559839718375465716568216229265941608596911847907197760284333808962476509425593257412778171537281556956229435902010566238687694174157569993254903298089702022682389189382190851499014418117632397858196869562576661255232713666084395577446519786637865831546893695038547769660274615896713933637005208196459409254831220664274905520097647740883976617199357486234104270485241905049175992826073497571479666271474127376142512207883309430313375536098547123793064633498407530193503615479783388914637654101893025950618354032897126259198571341517390792934163760145464919048029438635449375266406850862971568530971230522051558453876299755710637580102194190274023075487349705481422931509071310584950057712739430604182295001876565305786730074574161094422469114153033998580663953496823732258115696495105849531965963129109335936673925649402044916091851197348563528335611147073089548450139419661090590861277843248256800064313562247049682477330004675764576818265879416117365849450734410375880669274625560618547733826629743709529806368062730545889103572773890919220513411406148685804970342244307693392944800151938206373632878771726689422249605590813601663045461812569394484514486772272083173814458180649960679539095588374492471720285107496028092666765861171020482591897152582456044576969875464131990133255094704030810934216063760704882081599613697936230401730901348523682686997426679464812946179604981484378300922813507092555271752550995530129802194040012796042728316134245632023628324388545474723366247844742685992628139632959780689877508501964456059316530694621675554779719265352148535782237732262223843354592979744396207212507909012437344960911228354908986069858726131927045473436142263727951008201507126677919530138166509592035989318499060316755434423628526765418077077956959316948559030285737107515086033556369299512172391504412003354067964497822642235106076104416704277041161504534766155416790633761224525278469520305574469574988898744281023685119913719577534895385091001946799511254537491713114101781396113570052544510554225225222176503116076543021206702916241910921785464267189664329060882498047453499874537131882563766808289778121556678851501020526024585085162211200409563016382975022820098545258614356988192857915332899284649431037407573511050463712803923934414955044429400608528027231328404800261972693809798058885712537929109817887897136688348414930828103454202870357557218346680013177730443148364139278316608057950752308261415084091417021162384946744415347427674996704693092580879385903799926933612579852535606206933790254679452753640424161574832843244799431587128827940474063363582543858597894062725218753715074023131510067847759150638980515675329172007228303586783222034126964092017217850325145774556148675081264664965154447298227096005583366811073996182250323599209959621373066450600384172101335059009279366524069834494103855380179287250941491100867529128274760612473072089386173560949106716238810159825117240956445831783524948691578039512947417894815880520079995343498900082166689250467191992910339223468054323543766948734056844548324911917214699838199316089522109682855855294268015228283551350031820392355294240291488934391275305624609831473348657967450176487008498583647239143855738499812471129414268167767763632427111698083010866006655889486194042370740440216153842227009157252705440486913016888405493858208459226688437844546728427268239844429922677458465542240380783243132758801756222821473003897634548404720934574248452892680344416207797574169510878648729261543777068714861792982443621832338235770898169108206804712372342431920706900789524669578867161581943555938619856778628839771687477253890902223808343716182411732355234922690803004655317591591369798114678647646316940506632367101012719063159752015257254057068774321191264025910843247191145247451071546680696259513558937684753578715935566696998834873327728039204473874922591170016745712412930998348595574770140468671931275925359290745638052350083948881152159750400826093605069385518934739724693430817311142675764948283810466054699928856281923582596938342170001957477573680615397669024436606229601268764792349728609956614825507098360396951407497226232106554529392038470740186448120968319850760900476872721298368922667763418411468979739780547985401181926278360871057713671780280623229606337324339549919392491787341079771940249934362514266191652464130852623907210120786404691014152843788474966306648106519992963536840600325571527471950134545335256247248900471221042363450811984514229240487888798759225045117235661030942072918975191451918792698855477054506981735497688469102256507728028012029471741747173400289250176308567952239694777215823526865563296060962094923243172670028332929632996349877609743184308242098272729362354142325358456403095443410617571452992060541988370898619339029503922262632076385071631911508900917534786583052866621753422691137347492607128841045705741184075207989876713940270029261862995784643648198282440752786635196477772297747548184866127778100920024041930767988550731666071479751463448118400921268753053295790836181780541331036198632668749102022018443062350665650767647580813207102215678104265554369303231112401316780518197292671861013084755730085842598683681482793213427277192204918197364775714658432884204757826060185953175687396330202402593918126565178819003269243680580690759323221545318448721165578629782381799624955387066571579749735870399943900471370823226665019343152353965889737174538455445198510398709429963094637641751376812832281830333092463654496857743152770815454520928036392576739878569140339712431112121744157678549132630155012998901046719737760196465342065737136472575822415509608541112690043135812339777896775882711214218348405817205842580105825775500061767813113504204762134756544821266637899019962214314539781675524397822195663066693017824521697072649201205264954052364865864240324049678121988189246606631190152544397119514016311672282802360964282569943154649055314744729971741851052191499119516566629421080344291835677448441108369719927495707686487589269977441900735569214561361909137518273567171790179913570958034292798087601737262097643285727352713676372348044346858974428672307475150991304898479752266954687764422437927304369694723679297701496602374211716105236845322924715132217986319584473430235873715941745375706358311666821391907212774297321707323988524376795345966634921742317599402527939611008248878534274016391733972431026218893912436085444949602420169202526864211031517361162575705645357607683946515754451903087616006745389397285000818166577333533869723397363432621485074566386029425574144388878940591983369488672363172976333759876812559412125163390047136722500881186003391858869143648876715022847782733868395351609878069449962332346377299375537387293923570674702579682943989425088989751794306173852765661409064466436997869073126662699512442970761370433681681912231003576133050014728150021201939208227443302140661012747224272610456669514980089621917552503630127198414187312787762896050519210980780021402469268684982197499008821525108422500584231447751485140453025164034353340216351305413991630251184742372801556369205849521920254216524950067466892285330930444342246707434088853113481779078762151293787492604384132430565546706237811570545252793345179785661984436059505917847815748735390906872281858030026898467357434709237809569648851751855871700690750751138545532379731937148587183538839357534190718853023613063317937262796794185293024200287440533046115686463035680764572330148428263595909393024541903854928208649789733338176197590392447251673468260799670338705214139098423684762821092039582037889489747038208877160838487560682968982858959493948203582987177717152570995974351053665176876920683037388344496442519691031330060095357386824665795010401163621925251726283051744886679889864252291264704172412933544795948407395151496507728203711041492066881007436805485610487752791406258210543311067936158233026375918353598726849439300930029068525000027058733658395771211454504730072375446352417351195055016565186240657992685757186724592343980405004185086032115234565603184459582639136987786371133632355854230122864667283242117308067675477977152838411586837300756780358753872762643935500003173949530211127244828759623144396249548170224344172978047805067319310083842016284589567110209866384450558410141772375299746748544106913555016916375241489391817118071553002157715078058034387442623381123106302571551600543917036279714272667787826450567851650091460247068748190602327676273811208488767983832780206411713043036590647642742385838852209297661597908081790586653893344620755545507134382941472013799101897466084310436751854293189732340368402331521412486733887637257603594504573907147647403518316293987880224083772144844917280841548089735337015168804553248315251376564516980141159614424580356410989542785515464675367614810581560971145923122393137800113527935860051994523417919362969260664000914074541893767012374164083758549633848057027700727527948824879480621857386609890021271496169154517868660015388242907697670965297271936438268962865356798796762435772014852924851587243114907860602727328229183311912325298538821248934525475284883441184859551616645778597993042594467621774599386622445449384639294015471678202348280238791941748001553176640941359948611578934708084983023728544179571943017973212486255901961293391467052894265365724982178486958962222665812410561061074501028261778935253683711504745782331877592426493899497413746468225805875477507612994721379332545335361485818416322957532656822517314230559698666398820694042541305907993075213510418871955253032476712468746180367436633227647011701747902549613543826788172716551865001040076855794541729078744133212899788326730696042876952631971927659446822850685318365971973213383594561779530229077505401059776626232953052212055069759939831701009238725923021133604258972435730595159985177433576967873631600702767421731173280851655268472842578403874078627518436235077735963463776805464958838857844282286286311017989787829633601193250850348421960832086215359873567147438412373062817163666550865860259072635434340710026614270496295611787354151404017966527997903279226831487484450253042542968445064211292674672790267021849222789669980376156938092393947071924897310892735389818550866676543607321673405630267121110637585248759199567547493367168828760491661118947994321214184853260893279458234772209831479869552976614128730477075960227276209534277159477101181148007954099113024637581856969956055073379179413848645958966514011638956771307158355410074709983841757983563715942219044915154388758551862250005806666060929478652406441838731034328105698337033706247295635915164205881984026913587473975164734956259823656136825951978023801092084888936359475704250349894728176169579580032574908738211272927999267473609224948959987393042406292089049863216819329220447850810501330071524991525069730974347330561390076489948968679569868443501298527564127051371231176142220972397761936749728517919774011795524101698278259943452367830149761381467932144935697295003441967877102764656804572688113362946852950618285956288879268855574894843910239714071220937750591215290523744221168306785354821420440719564992874852754760203604058301370873888532235594679663083215751266509230882151915733719607903457519821003234558222764744190885623982471422595979191431703853901788252096933019627046437394641624597579149849823764145577352697932714592004533319867385967015563575157879911470984754758920978831271998156651646494229669028754978299554226171133228721525516624465964046437349869909705406242496276266911532784918625927426516589788585770306172445894418461207851532778452584420607737125770712561731819599614762329229412590396425962458984611966958985896673597554274773599475637734665455955586229275873105427573710079623645864488944514126676681710208022486325937935219289253019060020693245250157818513795866935874340664271238558097413535916438322737894252862203466485126312585247225882497577810367897301412065025728028576109274610561620541296725366052265404371474167995685290678390565794565114534412938771245831043943697067915599905112417275440585959131220343231047685287674647018321948487009196729811525240034062925081534523795370136970642349252356125067712702300648838695268058038917796235813987827841193056286924088156387686572379569438946035969194142586323915611530301124078572445392194423853432283088767243356232748575849729263505253104694817712752269134938077618278004094990448901938627836713067069575083754569948968513273549123168870872586291710263474543271633019119608225050375934193791073164035765718458538260018722402201562564166204071729085814980995627045395670984904562785128246961320582762963716920758756169687358817753438560325829399818209115140143408833180832997563187972245640243264709623626536912380825160947613864619634434759603989530115831804150321881930064052368316980503102390172386104245289797811540639528789994051802667099915452721180220169136343203436698183988009758186659826945983607331676296657538517010098595135030001041534056525762493576195053382021568812330419305649232390544434985432865794696785660424223041186865208183833833413330158695792035282514404694483357836229539609412132842482614155796147915748152243256183677590757996898569648448201263561081144446868192616012871294484328728842267302473774928569900918966761390681593573675702148161641305995055994818831222630056821827182784705741977695543535866024858163800471939273441049285057415649330881121605341137129340501787262670705809806066059806163492341040029671215306985652086677255050116393989330724999257334562218335826802371676217677186131225260950497447171629367266825377805355318119673546768613638124585211720053643450926289193655159449270560508820063610238689929077450197097118819217879112111315157607326889296051997793921187933961205761497959608987022966022222628725112310793546018305714181837660170137609517510256928133978733112454859714698819220440969071236923975771350270626871491195224077900699945750667238312106372857844465338515121407469711990561808956795152048342111504027037900049267520248064176001706789020926231735473712844619958939317369241715421853827573479484308742605582292802351487579947355080399055811745914674081939652483962584067006957318907872579187895383475401304128295948626742691239138227657837051003947132153553017932478478426393501811249969591580939378216255953304177620455972239905672012224321615290878225253567219987945814020892486375000780550300412193563445331651731989088742934355071014193816030204217176683472549943731092787869619426706236261850514712073589841435433391358833182895337232309169559985284294730360085086193892736276840985932681999013850412933919719475224110090896378700763708518245285690556679501056234356042496334087146145690340651008674855031610734251799139384979361092893150235162164267598732571393166567366800778142627832288811231973433233147260894726917972717393326976171363225433683799555807662860009224002879323110297210904257568198812607183910729647163256304638009265808734087396514296334484498248389120162003731797182722156216939242019262306703687465616757247476435033972749246324093516911439299562294140427102217203571575558089525165328165048953360175361666905729382923880221523388785016686146748454291545047431782507705088701608209821415140201737245879177954213376494625961859708191257518308494960247103414853735640936459691914175669111528364673991882545581989423967933639968644487107245669327148678961212851030884590887523211577727532786570206273821579197306619710105984824826317481849208644564167264910033139025834673186935683462837489759401813015701836720402928734064707530162369329257805907570343707143840490451159009011520420556478891672878131909780141859493706861210089600738329924662753601625315013068189370869965471802736619376242383294758451627716077451460065011664369946416491503721067560890543118109287357704866738120453639334347186015637773018391657910104219147447218036591650384068908539466879941283695939245631225498088736656730349004310795888171083770715065104487815490481430336095251681767575052540969449738546504549969041641573963983032270046788950937608422451932806786148306422011046712628216060989870802374099531771349467790341294172573819708617763141388909959107132598349681460261849328035784395964704612586145469474192864556604305847099717137214317642923642852204755973927172130500532248370289648302452610965402702040100219345067218494953954338184276541599235318241843167801076725718463111151895697947204582163613980280327486031439471459177055214702464793185292158001527014334206861713457366131671025909177764875873293151521693807913485171933408052290822799302357089457084147390057305549118146351259984801346451107228636535805906182641358662923009196738422134041007359556847049692945288096537802095947361334080768072224588681280821564738114347315588379782504719513384089588828956561154980421974866475398649064505564417793514257947614686396678133044778214314450686008127783865413837459913242889168796207209775341281558621095999000393256199816524528156887887793217222256901587599664445192487888588758774251783529787982474301493500985630117654803886182543590187535806503151676973013849226720538154059725659296885010280185795213711396905101703788097432947571209604082120541378075102268904621871706180424688627289313740237044069973769610104743874938762496476742459308711039617609822843268073501442754881859657307210926346717720056918202209454301904446429571287473214225957767817240189027119902573931322911026499120376370740746651381952019275938426398351355531856776108334957373570139664485190801787054329688899278392255009953832088752289573216589638797368139521727786298204979190378818223903899493756347798500573680809870330285755863731595459803782312124058030792693992911787277250651537005032619416270199129855483902964178813527960492723874830469004567270158495439943079820334586920393202061736180460278213461604261378157063618445030049681449025072674434504309875936580759219220056112098248926631610742087391677260142330667036128648488540353575672638000578744701021304804436461100969309330079639260075916883561819683248510168859890600472716482145885516437243148648484956162645176399538288654529474807971546803145918619703186219212699452010178253268924492738350727666678115277398305804629901581982390549883920398272864862878605333463131520999379228142280836846389490985116403445954546487648533529209750204477553267695210056479747435733180197197862235600577782922631784060065438593097007008454259817975716581536966702139808339085944625311492928032433477725100172806433110470464040294642478119375726414178886353212124775425188211075075641129761694942588708415222402002520530850976638662352225082768020488786803372045815426286077184329701446189451825189922421421882869825891039393186378918671226769192824207718181707694186770073263780510401687321903420277529373834881572840281888971351526928326173014427672973658794231655522613719650315200480305026879880792764130864626495510602809925251327662677746411049004995832338808937236960125469748421616128770099772072838787556233248508154499485230659905740958492864255842156794239741543175017217396459312717490913737454845068989365154643722230971632543086361316745222219705574285901907453412992317715644136273025198219561084880083177530943224594967666713570800756480703517406276510629531586423799605093090414018713753706948203067982640025948634152593786650411689650597103217134786294359936193299464335242562198335207430835338506946580272300102383059862614024283144365328701014108763487459161484872623135200583698102748530145143334461108782443242894370524988568483011528908055512033568155637205602185486853437741231797534924842956335506485625991721201411356805331380528242598514133389886537326691205435516536447722652289457660572993602912500822041792454890495047439514527936472552339689098105720965974935371587135436362033173134370738877129625489609236174451496805050247063467058578519402296332829305432554256748919264124138526503812108341964082087766484407325691702343168681040960867774645269534448139384621238707659232422899705639696393920338739773197445322006199493655183383564536159940881249903126940191104301626880366246637148581881891056174978640896574133173577878727551640842017014326166556634027204727264856069756077856799566949185773022455482957828943710320749272374168409772137311520128835564788864158337941565632412758175131822338441139452589186649245706123221000564713380327833452864209109884137713878969781355973400784590596507957247958649497670169667475173971321100171279065511113792246222081316885338027920846097964571540380844699434870947306053127157333256499945182171532241372979172414917138391944035457574616478089884744916924395442818113953394655690222148833581683865020498209470156812930187286715741592657271114054195491618566357607238421144491746330707692506138421415019479731811977561955445062904960513470648116876053682495959575046739950750829477876317926734638800824755756568902044718960648720835675480334641622815973275258215456614071408839611869850069585695719636109666430148884112073572661024231637415304194083086166523374425639510478473510385877931216212664023644453095893075065068843787711049783526255293777894954878827432371328594102778676543168605036385349961950529493470819307466271618839405501209365921032021355982361900431941665786520359436224603795546752613278644868191330883431183599459836973643767965611319334139443775679464525758220287698493087269692675379886681313661196513459897654452428816087361793597413911214562666770287863812393452167129801701087603947192775257258474324070140177396476566737651987940598219964005169295806682967362749399253502259328811879247693329893041877515993438487852812746509774097207272509964307777919368992341996766679876514956611604105206814197047932185287304799180081277133259283701446733067979831178800121842345277953782263429587358072740900594366675898846519942006289751650940248959023447623387700459196090203346713191477413268332799652013378708800875347560576833889184717667899406719114607665872973516940971466019705822610490292145866711188252206288607372074679360341409966419402090377343722215191633478345065509198469184423620983957809528974705091569810879019077802294011308251567800748376182790615449851794523205345251203174451231103233687875139936604406748249961678504086766007250933421843974779161108237698406120497128598065978283111771461014404252518137522164690670627673011486257477206081286302734762966308858195757716746838659467452514661714460682577646738481315869444984061663898893306058220193515381745131530752726037866778916841010007239572198851817998008069765233494579722417982393139561671739792424917726224829888088892180276572785664717762785397579530171827587418310379212098999902808924026500576935408470951427937552504840038725744297529777359889584787124121545953171481868109185242863688807997149484000806851974493283338190357703159084206182882854596558957287582225838715193139829650498895846896128926072187688707371905122792189188378087335424941923736365680377188745351186302605227806656316687343266117066645521369317872005676753506040775467456620375134538758693879002442244861639090075852905762243831980115394169969164708327399798576704566988887462085023212075386109514949022655070049015572174833979176716183335126722012239462854304843320805669561175499655785408919829449274754180157100624763505067784860390348398845888149144956783358349069818095125558363346668773238530744382962747034605098759851922650708426842733800719412345919014315155472865762854193575528485970860897273988709978019178185560534681129517764468026874053064959978154898472932418161916826132709217221760862885148954707021833961920049628126957030541251092615629146570178820780828772834750952290834015623470110288281140289352086789919378320389196082371230911533928483165374396062679820802290912370453171134442592864660673707856607366713405230442536682632524729231126546832466145012507674751722853916657563038249510126209435566803022380805183418927631596969733001217282433298308600471364666263561203532891939064585151552414598770523995536656702950594964262176307544381465096490918914159456499090421897672762535620366735142722521596364335190021813347883292258673314136456428515920645490106407262783557159271422374736975061466676089638085630459599317979938195560891445632238049857328255204396965702089202672058540546791984513306402002418245558202667254070101047010332115786010919732723048257537485933366794802916798478862213224786708311236763512558901244765931787908984231234631306847398491274799271880948863243495827321958301325878503007227957954285749093120694425059610011214077678951625077425446746006250845703639047725529356500664461824394264367783451845047592168427012213819567388057789194837659050213844764727739509026570502275752088784003754054922712022152095601882948711310304958035907876848234579616075131054189008089304224596164896344429614157252126971757111121497436800741262406763047791075020474932629645230396017784830269457672583778523831939780543327715533780781170164648719126181927706390427823444375918903332317395217778071248136643477903728621508158387914702673585024764627723446938523209333701795182618713827048512913590858181882076189539916205334176590628365586538189082578719966304415838211277201799264170371604079304786367358802487295632681796439687432645202917689861342552358729253874984749847584581068849374005379160981430799685400175103919909492571636096712144419312370689924272370070193192265525610789703812060759136109692492510561302953258694766272973562867161032267679265105465172798252032697877839777278935399062328090955191883593231771768160886871221155995901924733316040689863950219853550523286050566270585210001977132977399825713525989978442576856109738742615274401831388115277582237045691392434381574280830520198515422534904029273325273432854992640654388925781203473068994908943963434900350762370554217693548392697474921337175409286924743135755301444683862396104895796826721774333466474000383227425085769537063638159856907663407902785831533695853248449263681617173540292802220873506966224941596706240196685549852219849140889554867094848084745344134807808847262334866557671003226583015683752610869323880529048170652099708708798440240847701486575722467762431761372511232017727233475567027658126606870059460931007228616247629744555821218353939217841715502565257490062482279565504321026118593708020265546551562273505899040883549417591574698827866761068556977917402938339493442807671378549150347943791881689091039266928399171685197854753227073108043224253854927192437968741254536089871999957055339719504493490181354253437614537493211679018691578061436123104998973585098151625684221654956093639501250334871078288456271560263543121257014161774347094386585144780244129871038831146596629533818336750054845323893733119703406460997001247853858666472847646474494440615173953243437135856282837014055803664350977423234679320177822735948932538761490216059986587068592361801963084942790141894722478230823636711911168818312073858904121424252054086001757508246097431654747456679591509568696528237167092053930275957595848014104242806973683014084225805755624738195613751958765296866574331715350942406872266914869313895186962738114735530926428695760396129426754012945713693251673835615731924631235593820947314113137860711312787140012160961677567053776958838478029763065548987076995727563022278672454424669228855513396971629548324910446194397166136832305570627073037943613372567134199168023494373672222301829560365190299519010335903246339030534423070055812655510683388916734458626734385574511002545931169777965992184672723706665804042027085258662439941700510684055664335396273736793753584836825032796217522802598816532812432342674516158587409665828783563151410656270791147798915354786054533062922992711655830241164710693892838726743730349826754018383250541374486913851521752818969408503519261696056668589758399674337180657857310392451224766559094856530135868218800589504938871355943902338265272580230643470986949891433226532658684715615704095854851254014381411206111250496682148037100767927708657401868686654229892341991619452852115872444000870562775130668481030035942355428362114446242304084897679330291255034802816800136534528066490591076456177122840708479687012148780867129578891443514709950727957230214190663978834316311627013924890561834143975592097612169641098483682482804425702786693660614310856258050440555416783375693588006913484683017930398081880225613986426036679732377888409476978710281600442824139860226248609785108901280612543808475238006394649190421667900059634053789385791490973750708481356854000610027940319501996298174001668618684452658779634238484437946030242679508085059902105356173960417228657305955942974592223618538298830420337194271571258061685756693005226729985975006281579308874039157219400782503402640078986357531815153721890683320218807300367745175147328148308652259395139015688779954861141748886856794530382535861189126569445753550795238473827115630729201925556332876217527529135332472902390144423704809194491755934133597757202635222691863528769204248297095455509880600895145955462854886619153429429487311627397356858846213490557057151554975551512621693279878761079114433380892368958349228048226615668880743862899358200699411115031248253583063502910247426957339255635619442150521850597768930121752980926762050109067041479074297808449595890226093660983258527129953147431802039747474740051136111286861592766104989155854257446539536376702226835803362225280345569410730521130015545555732896408435890548747591641041891452183792835022658457623084957684961271443282887749841762323692323112140529913083226855275180281800624705265730783994324444428362766780202054646934092676627101945344492310223743251195336381244337321073129040759777552540518924583261223067213427261735058234801113956165028231981599219672441588768988483832186465510616462892232629106415262755451375252171486353878478134829834105596912052158942971203045444304304578778079864685934496070069784448188579018514291570152510867243668771869147437264851420996487794137855445274102762778481595957627206597274810371232164962236052950305179402571110898433616373982183087414954722448920205687012379023341612994630420390204104923177770232974613439443707150162170738115565222289989438622471373664012073808734382923404462094172843581372608060386726468083656436107808488457502371462357894267998458150667432226860545229542622334606868802910682451871990011837932504005002348988442021254343419121666860025489242499534298534557440943980461515742320182097153538663721760007273955402921345159418062814113935862663307739135920949979129693159989241984003742967986749906013763126102883881877740766441701695927978361263635667216733183530996653524080246238255147781375396770399513968145287102605294137936756934012373176697083118576783242000146832746177854843853461877457372369577033807681876616244077104711981126832809018395269136514347000192479220022650138421519413533542829257392905245056425433816677159246997840066568110775068727227787456873806857475026858895304588443169168685890817709338263730335264789033920398116522668515350985304448742639566558014790857813738789996648543885155550348646418965074968867095115227833695143170605207957907181161359346356907299204432240858200009886494614971860407995306292456846097653351297113614389888888773255446772304602485951859329095384536385957457967723489870006850367979516210294884318867952789576714882991811567676800855028948488376605663587702366634748855216535048562884003088048949710683197550757273326488508947359621815393500549509896798196150943665208389456887848948278948627854494089384320632372660202488433218140161632757234967923529510276365421578698335773233679328294789267827846785414329898337732205475714428884732963258124734640349520824633301455549047341282452603511385998802862933221946820495593913106385992676572643423328744534772094661727465523426964803425086182233588001518095396345782560823352022214216609312562617655303871619912172880282018836865569843410186912893217588903304434724748843288877755609578385745660819880248339445828287716943784985908304450330996002508688947487745882850266752940839935599645137489618582503848175991221333316911609694394220188950811014931104067878538263273371502052087837689077331742312517717231021439200014078595541811379519828057228392382653143508616576666243198093254692969823521366484655952681011420478098239350865773491961382270617174827410455168141952434500704592295134841081760252813748687284231678085952409037917939271117701307086734078385572534138765393876575531536157791799427321566442632778200961153162482091088090586909321036803568251216190184539255176675697502260568832453858084264275969051604123977755075424183792182758695067434180207596092260596003929305300448567152743368693636667594477530696834800304823837201702840653044911563267409175085733427120624650051445137321193692707863704140976095953290600799336001149396865840373651314381208441084908711285867412548100262716291452685761226367722053307870999312889024744884716572550532112751916673200402859512175862258700966416449722767941864474696933858324677647842792013333675064531377752291630646424394435073729241314850380877096202405402318615096846585109697459499084565856587488142051021917226375781727511141266217491615383789281418650273640447908033965885292539140333724499228848480605771941163111000802719767272802722907002701378246773631585225042997148325747584208192085498689433107422954091899023147188215672798721162026571771302441639856138150275834191561674162748457403073414675573132390098884837818896022050097298471526001089350474653764639300734409871654292598052827638149527984728598634743268416356075557028096300403291911074656737475876932432033659056715580901657384492822848218250280755118601052454369191483369053440039789307465167250678053630650633567180491786874029916121085848154013356597935442356776493160559654877740419275708544361829850603728971504880449952167117283533302971139284889297739610854888332264443116546575236599400722676474907146342683097685681946492602104742632070365242083689499889501539253837374083273665030879603926380411107811379352451036136209717911088771500403866415210608186965190269883893146943015875815870490868541750065504420476803624014653244410179166049497012130813570537626594305345385438935734610930273668224027060814479711424688518220587713421932506303244011760607825600946100571943366198686638756768084956295424971026327822182243524737557079902070293444831977836678271350659923072750885393246904832910437796631843886188623001488543654517013524617309054031443457776331021414701977648691540448620598694209157268187354624124680629404456196152846354489986832063756799971631148098610647791960717363156092755504360880646193568616728867540147836886508975808840051323307512141189965379322443154311024721644596568516947555875281099578189947179002762085983778068958020449199220417149651577222703155372875904058052315611236530249454172793023808052003573452180918953182237439823319504553825090406487215050491801351513318347351077890982644028880581760378937814439652726380864202359259099424762735279252767095528994720226153508759475821516985619234407782318394027841211014392403829680414684803500179630474400925120144743658046921401388024763094497444847083254257490019306833205497175343520618265513566887021772244489452754028707967400824763891511681902643920648634462388230732916807546220383304970449201063925355395763454126863156614335649162756091155952533379143116038071240868373098740491275641973097722032022607271369355576340174675290051075186807646479499780079758868674179438668441655458769220341341401045352144636895737406536846567626071406100665809785095838818033621979448650824109652815135085425054633482639475499414357872211643203135034911256937959403763815271820329788650091177327785121588240876638783535186417313182887458266750146130822659625095398655002604781462311018022503544110991460997435342005075216484749131663620213091848839274300018612669036878947793539692414232388498819553274347989144321265585198990095535199219487273887371541970490904962109334185057203888063652948153728317409726247621192240323493929763901205766498516677708157198159745355903403889855423913407515851216233478736245680936912920003433709518329855394191000630402078803690783506313778110703410518541528679465756217494074686671772862610981293856976817723700000560417711284614493822512756722108693864847671076955666959987877800526853294797989717638474165544409043364161189992946065767880204485523241486601082626535465754952386677785730771102516124069976518958263824175727131866050701231785732214927563882031974669810446412355276575114238982268333002524104022693133838598748421276269994768156167815289950464269839015079831945965898790474538825308233440509275090582543754493393809337746674550531478632651152420098832030159899500060959482454959322739473751619859454684728260093006188516880998626517802689100281629673098038275475658922900614686055598758714085800645323056328439245478526699830461841691113323885363316300425872300463221823550686315268620731403590721604905373972605018452203426813796094085472793518509863020192956348716749727510826757158520298383728014999658817344916944640385658111020887759129741519971025968574561290426108158787512630100802632886719566206002468023731314400324035676623094292145867120220623721151801629342979734019288784918473662233569613767764620413908191300638797096293202512850081946254152729696272431549774471587841226074924880598292951495685096241998148973826759716064453084486261107700558027645316759054750829756173774210133104265967785546704077299503918087799269138769832044729444723880581340044662860445548632369005711172067867754169135401356138199268302635399549454593201000174710932649643083150135021746795868379105530157925898907966962391481735150843448826545317693897666207799062020445386756383581222883145867715690472556709282382978334541415575868265807498284191776826040236827061476075541997404824912149595607465991591908399008532604464429950401334102225436162252301737361282994138551059619814963326539638866408598778142725288056047994553301739340020718273551933608571651259060728813626334902406545725947470186944634949562625019581742925375659962642723760529313479026625596650258944023155406093842431858143784853774995837018161346917575197255101065380902835913192324228115038933259866403250087367766842053841791733080551575854998150805413049364639387448814659023985056952624834522128258830392388613087198844960347258598665941559820171129773697248314287839703502318439487246255198665518862894301204810312806764177096982682467193818675626473318885834969389529760340028207324821124903572700785646909916337960602625729000036359917913428514322176320745137106092342683269036974653276401525354209363157163460528580750369368624532798611928892777285762990430506400762704940555941694374405373461195482284755261605989151515277920304514568535049868617255728737493774493055422444938214471906953994674265599221185708970797856892046755993038409475860069552606054605526966587958910096229270601714319335817214030143924183353747683681675553643376772210865294322627697060976347199570211956491925939601595140710575716210793401333520878166947569227217574729725214776934177574621936584371607221312337248512231423885944469217707220980467330858548892042573042006788600807514966024323841010388089139954263762316461470576907055751444538868196308342207543337570644031717322541486284981536027160656991097847679938674093896213098202091322257807978341780615353705545307888389047631033842945445290407520183189456335426835968341497478289734134788151608347381371091143826656034421447597714081936678642140094507381658428250597344184510768555425992958082600635598251510835313194990702098551345598286059705532211306870173528858435711377421329329059257448515950734117439409432636727588069041503479528037548839811095702208675066082777089518731902170455338850681948750943479197607826971054840890615408485532534706842196948098649981419197452559451279436539653844022566879269420652571488511755434534431475860871802482657282204092310642950239553310579216800364629148584310442589635424341346022982574532318371553632529951209670240110548488425228170571091308131196530530146258098923657557597433527566941415026001938496667524066007808572613012332632500009371666209953296161654037368702841132062621487169799636647400789174232744848959352586409903027065743600639110976107670780384101752866822402177137872493813336786671234493708445582492425222980501437980383085163219029439049388411293731439176348829097434895159731002135688634290132195505293386246871104371236550283103375602851783980154899980389351866348410781028731636935020604746850932501242405787758650708432972053173711237541080412822759732690148505413694309468669629869919420272575183170445166261104172924377554228327976582053559286040892885436966764456618067394032014010150941694215816151191326720578581972295821379532877174338242646208052917261850619322401967619962709715175687429393028008415911868034903522080802846436150933812869659707964910391476436569820490220045236667199786189770013534997082015440471612889367836110520138115962043494248908016828929361274842711196821011964406863007115917761645201976833820604862349106255712556023720073453020011717594306396514272780316011390570292467308504344053731852202459250691686533467203025129885134907499616371537960933713694801138345787032674555949046077386996887107186641239580741405986425066549395071337342498178988062941767519243827425036610443950529739366802504051001686579612522009040217533992785394103426724594339190768666603324437456745822556485515437644534463030399617036056514329151948314188747367575951126359319724221500402135696047850028847238460780913335622137526531714684437807135686255738511286078121755336207511267339625848896408183672838930400335900629231978730508527025791549102425894262723883350313888857325764941113797599853365980562437449626728039885448530549049411382687142248477975267742868636717217823072841461655716936716850672424878643519162470412909731393117776372758802924423895235098917913578099775894136616682996494330848478586893472838039684992788719989056484235936630315544172442023461718993487583723230678377839355734416504262791129799211761964015942054145675115945107241170712541386408980950728592711559570986529979548407999170155160079305336659077973252962481192964565644403262161794498766737240460174623220575094672251460748374942707529914582726646103211143444163927420996342819444085661830174756299063825403056216655736414688989457358592390559792492793119283039972081801590763141370158828468700384536600308437537229346006415299589689769989401940567572459393760405979428632526082763857576218510192077913285662567839419582464928288369344787920677881012154728865447029864900301722155929010618767138565458123751036985016563210078151721711726900624631274189694671669738753714205047171814244966713694625258554110601844250409697002981571711041550605682231920887759432313439030855059627266721101327445898960114559886086003739444955797930767550669843345253271749072641242631372214695008854600985940283238806563092898956462134994540651531030646662765189872707455438232115755023154419620585142745338220959472471201680662033420403372933791703055855856142388431403613609958933015465342827990426424232426366414698387209939267810229038484134866496506890538288629705639817237662013426569113988436942736565097357204903260861582908548912218707799052610792316705214987202468282046327034635616827391890386935664755084615613333891401975921992728049812835345919688502473560460976010857392851744041191659965178818102548970532866488224509625911104601274296638788935773125546178694807824164867719320748989043513769354332503992906145425567117445402960940502515208198502304370917061600397937808309813311438791947600102354621974398738681453290857374399111079592405191137623488816185881514407951968002232959730521777161859085819547634852038143619651262167977345505381822949031333069987993547342023886690961746707103029925457016499879637738206365128444317974408046047617920783594932716279827628001264374433078718399511644662374296088024592880233620142267377832700530606008369129691932719145068824122602698788012432849153876571527159957763746587510350644583366158591042396546547905139306524276491543499862258792484586755487394099282644861070652302991325617390746769549815249862564808801481833975818964557575467449397624724278929362876187214303598351819101267841167300837778196145267823132962028494218523298765503835269826246069291707851523432992131356102032848278979707476817121868662507406908050894931080430623123434449123053367566749840526238563778496415330042839024752140338609597594227877459585124275833346310931072813814024643169338593876177468260229070920256246579679282268795455374753900798172752928359049031023782341711747483343563112036367646111662206125212182792758692595967748428189730874260499514123684654764307277099633205595336435157711773250582302504687131279975228890638998593884955666679598019917117700724039388002867632793140103570708619283907578045450730949243985285855207557200443659891976666909750430966559622037046339977870150240764464012995584248517706251267961272478906207014152696853958494976398477651173505215962550820267219190624432381432995674759693504073574220886427833469866407830016264443645091806298869907995745672338481114520960915350188117375224074210490943289858145340854248614809027554296627711833767013202436828203721143665860861356581923626897904802628005031804341856493874934956500141947813310661926907031999376188740115429609477615150151561740865229226535774847891788173532674391106466864876659584092340299436977947320986443969024738916521413604510585831475447258775631282020208158051289106402808502363782721767379839561605982415738730336196845417983971960215106327243511980453948611631086404596919950048572767053753751496959763725681041992575273683052837365448245156532456389684001374448767294478943817143095244671988644180289518992721989259818112736533430573264170309218432967000634456631297116236251390384570459323403007667857691018177293424462001634119799679377837898679531033098747796684462958917264337528370646335846312879134681749283353570103974292552705791840560852804512135861307765389153446262177720771392790915251253590938413272010461647988994901366344374618330130697885760712396856697945268908239002400629048414118519928334237021605422101534038936906452293101778498771331786249683848143005857759374288480903094485607198613359457854898446493100814922194852564726020859700400327478732428128905942823420958045383225993266754394061330660104280561081995524844172096038976505476028521888410453802736295941974582597598066863138123407989324832667477831538940097915551115457288972432382381582889202316293534019407602862682668325432118701848729255089006057047419576303620264514871300653200625299971307403230744032275676542825405904064966414308901316686051358231750896261509719311979348321497797117782674542138330050339279844839683506155661401253754817675098014899472627202016511828763381469058331895028113118733431671561018288908454836136223059607547790527128890629330396688981804800281362733584355751864522206805326138559086414383896672274085043401991705743066635867304502603942714458540150346048697505369646942442847782807373844689220606363673797271016294461167715112953286248316130611819174379818381776900411088884752381126738572234535102631588135517865250484682001486874797044826739407138665257894753147161414965065535916755031205920420604784432292320999202690011332031761507091110466963989248331837934879759935520818451475474028199488873499777210760196706050397225861773301445916729520418746620993173628045944681765215750934006215057976543802212360411304119226164337979692121233271712838658930199304731650545136008423408409890526207444086904990570622619986625512342350955165721290427701749978095794965552477258399926728389721919310896803962897971417259135077366121359513079394654466247258786040219799443519686927472718857617629662248357148204508297466487594961370834291819523021137798552856008961952362614864397698517375913735004575957507904029185393165864352226487489866060716790400873604238960048932140780883846793033638880448288205284690712418236436235136431859095758971645426720379915576172301225808070740292318455760187846360023549882034123137090977732822339616484454226807936143373463295544479459791334578209264040480326845050293493908056919497847990067840226380463281988231910180073246190119093267559916972108970879373811265188953438554796334456736291330467107613178949529777596847884666294872979167364869015769291022656235056511407503511555290008459955289915278210686392640386634776875082030300024273436193255950543302089615421516467807071756953727390342919291679247646544850290086599091177131865227055062502308383731551325860164002664543722658264454474194798251086843246102286082112557835685324054033657836678559243223667469713257341725210722101920228729136759751279988770235653423185448200526092952001062033023703390350146534897732653402698147956149147101286491131804362879624241725789679384440150877053479806384262044917355380370274511496018485524085985925318639403263636535897371987679760014252581408669872826809427152035013498833140220192431075603071211190948395775522204439217760661210890495008640658190691014174642611879583377319249550009173130710331182902323657820514519597967931688962823540171206579979411100777597616306419668949887307367149660339374122896609994420739764578794107487134076227558478456509909584544011272175398327388033398001110756728171465368388500909595531855251986222314791996327746886712216159603382416347304069578861308671433258373671433774759024338182580110525499271342893285605599277970261778313797078239665102088850570840242369115763241392145701820976284607274230258528913635232385186566695676641366049937133389989828344383121431348399737607652122282970042121376016544122026180265933364812687495549717504358040432147125903734028278956693882947366513024558396501818067557032910999092078280169106607454607754655355697937877250501301174084942661802353180391539466099156187082149911222506747089867983607342867211460016486948710153690724540447234188720867040645861988191296212475719997762709106005582144439888519010070439338181676613575286108428026227279421378304941462197690909077520461988246978981194079504838949441629262816462322629923217336212457287134874650166545061656918952000180232835986543595913793130744887375755784679162757484700264692704114350034269538050069902517342934941302349997434886566133242189760764350150164684829732571767803853187509089529711626146618083797497781807055449126979864379512367884429210011033120273935442308346733308863422225645433520051666204700483144125892691033219618962159492064041601266354359022093082853840949587184134431996088271224675308495609745681813347923805103632446515090107524996240165788086172636950304576969894114901826612524622503430476645359057682143269964304343276522150807678260423691947470192059425611636303365086901783042009314484912455825540237577097998284040683304069531988672137233611898856855718080318853948583119795823176935471828289002805237013676702466640548946635403229317825118881580246414319686106543097753619808408604553919443413016466978555000528521855694271159224694741238520756249773473914332083538941330296068343503700669779724981525411746001951681544475487489175705679754797479135335341487115515603010072706093436376383140333535614655598713553008555179040841033615108874322941465897571063807447556831500485812674082964079049724214844045943261540039219578563579484383722354869366169766035890850732988647264613625037264040953826430505336749386338050316391591443562461113967207486115924677678098305885345500053378926878457887723645947472828234593394126819090609874473211081976517720577192463586051219324301385991368853081847813421608032085436675634711572024690905931337148090016704187897532598287904046036307599072432213390385828476725167964727226209406096369358934816716193004343680888000673046351818176258253212499429839395737396626170875942826511016943527081987965112549605863326042337245462709650503511051681185648379707802365163033367330458648546287592096575131641502077616370186001841921405913881717292178828419717571465663038898162614189865351129547397404726287857095322103314164025323565944927940332080658388014121741074895265318608337295255932912052254161128397751931825172008651005724348639165751796422757018507991217626972965413040886201229411981212569138634702768315308956818670066238597395047699343251214085186002229286131625997300182892268256026308602333061206196245246552295872661978599499300661928282180478495517246250578725042460292312332465661004570737463030598114525970705211508230962631431738548046799656309510408006592475158512595091370052228071501773492356937856872028283017014764137542814965573647911850736939505626573543697370033073090808792239857449218387273668076092997780211210107503140440137677427386015923032047862244867361303387103940391182815555207117537979746984852888229226313818109081445931399590943305781230696044290351264111469256632661112292128924614228692767862555787166048568041586515153635053719335594707653320322366003384589955219509499708254528360330170522029696202952819019874363273463826642317517597078300315823125803527322335922936346036988518501519033085901538688528200133339189954415129014082592853818958182967506843089109221893118967155005598542915241652876552703055857998792482562694760419767997289307043383248057789699817755537863973908412373408314450411689670571130167696696681797175462515967929634467056106204919108001359066773555583246022700074566523683007233241673043118822200397928345617826350720714693184378598594066047497367141223589160727150484653921856358479153139383403099275888095146100703432960791877825621828488248385558726901310659491645184960029616267219565244946948000082283706797406907714082671333352837226886071852180385620129969552195049417577314603330983604022975425204136093387253859591004031260849024575848585039011941863820404008832233015994548823528836846446171354077473137563023792462183792998718456367078237993266547656562499214011124795609597546511375347438375063006086395639917472565027516290536011626592456150890758910821220149234614460165849538228568976647208974840809022289343887266790786317228786622993754010680494948546184154998117388555370581389786330753175377317702904554638772764593447997530937506726545758646757485286687967994665219278069102639767942302775008623728773738930306823749351275793373723296730471574618471364974323642713764970331307928093074345264427842575471298782332186616225387281016496356193201157541523381513598691741750411576149644007124617225646262710687843189855524109897360597626236099607234131961209801152767058624269304104456944894417672464777682148529645960561203229856742220387458078863614934592524157843397037901413442929393623383136637863997422996773607091183528636484042845381664432703335808638119596909255321878777049067313307628544015423721979127796755735870363268866793450192255965086725465143863467803702384914956540162469977955111563812194515054529434761516898270807266466958787880250803462725594831433169652147376074795849406968401693285948790079157104626868462906188786697759800835485969090471055312835298701482055253491591649478518273579465272154286043345397415675938587138853797655204993300594434396177014582371838458396006571006874919594248139734295943438346207096722405357950261193452076264732766778707702955527783654206017445411898504954614307614132428683932200110028118364597531217151399776384990473092885858499761985309667870742664882660741209811796130887372408719441903019115143139847347802185645657836499986903033185847219357579908204579475232609156888954719486678867572501746878466045076409463843383161753214312262418912487170730218460870680485670029133156745970266659785583213509990980077735608717789911452460316042606413194509603269608114731254769414942556756291361690133889910007044746978391183531395282218279222567439713692875085914581537481878606474989772031422862568923436114604692104406267567528515704245882056598283207000204086457059692720016332305920744756745926527683868308459527497353475740636346148047934161437945736310824948612964901458885967423659038237940806929567467405564516919795577832527343887192995872893666010495888719380371630122925759936311766378901296477427283562703016850420405627088427902109519922720386961070907846837623926246680340571918588256164000725483128570404532980185024980530382583949111733795371305252551398020215730250931372556709213533919950765868407025215838660341237263203605188955351245746673726504178861142069391546844583509129993513076413281829959783508451456455398242145147635147089771865995863269220067033272714147448158880237211428054254383230404783631511086341906045864981531441658351468045951560796787629094973553420073687045442246520288151687598943222150485044395827674182655964073446187883278773866893632987406980815092256431566636691183765212075056281435863892826779523206448941907000754537167665048227322614510056693282402829115333765366095348100555855617696329262600546261578096124434482473045651402672559576231620485894687878722769771671624094330346420308358084772098532776474989141929890493506445629392610223229638956677807199858052268526862862649904828542479751185947081427308361421397777298498446237007596968631204576012064253059631369202090983821408978691109043807447419813095583869380711128977013702829335685039431176825320438139854245953798690429429691621110163288711393500343944224088466059820538519203636404933534683294183134186537302158151208429536802965949983000148251090874275587690933613107828869512219428967669114988601156730858385879840944293102896116662747027383662408611817989128415682437325382324081783942894317148551448963304597163680210613940239723197126724488015670593514845662518153511358328584943890384287827566196675584495336304961396811571792571488203045764395070744739522499997392081771317517605289589605509804741762096939123431504927107693519821422624503024770769593548928674986866450252076638327118212395137809049257684311301731481489328146714307019364057969725643100705774229045876138843960874737482358628577705456889200257575781553986007494631616679951461211963300519213136702015650532235836878014474325051937785052978252856287093877892622441465881840618070119656445051319534658044752438614462648968405850699778288717385561403807549140403024696781703616073419067809933900617211091329487844051916386740811481241982727201285589027496979719043945387440313233527409226907137297112439136332682352754144393851545415150787830863527292205604873215555873690571005465873681360231502554746260456299753927303441215479391805088674736339836863140495565097823282292314693338052360751069256037683252418716879773325947890547641983646192654496042916416484424048666829368503150381401398257563074115140948889161747457136493698903056084605785481050003974818328132337954851315233116957671622121742641623347884281905850246661111536309311115086668738035537440428919717384942451512883921122787570004772759836027991344627081780081431275536174503401041998546302393520011819175521499300832957647518352913569885986914659337167909534573993406261550899927601461963425445413185476669142860315068612754572942169715182397663776213138084464345972509783037636665988315782137758975802128974126987005671845101594216280868487083460198454986995453207996396016587234211834764018736265781993413774059805320586071207060032757124739969121941189768663835391014070063856426871561717119480250674210564665095627687418143727026273133254394552803651552407897867134970756789935872276953306793090744383457941853263885465259828357943020646009354658479294715583757775245684486910002569958766129354222299902298244952304518853804585053934171635346122075084663492758955348155865015194526577340313362805724948021863347187246731907634672264552455390652676249022527863440705922603221391576436779408524739012112292570817034264688653587563974643377017696823898806343355529404254297508640434965074205586467780170615639400481322588033378554749415849522366795556462413843115672181114067914480816710531432062912898399014349393805171827587223107430046060094293191162403351673688415394716316682466415782841335301150564144618419591169083517672058242395049598895687776410029987072545136569910200802415022916398621837789876263952987351012042975759549385483023350885687671429963473189910789601303659785036585273605620008560238457719680144229740850948977342883954781619092952573429101492448260039756492168030617539575786923898418233375588023945000578646974988048482349781379219095273244656942430044431097979123981863544953397017573947763508625384823600782406388132901139275040513369615370997299206578935200480490974279510602884126202678807960263623234524704843620786775267560626004808026769533873293402539839091368643914742458128757165332214555024893436171388444440514364683779120271527605331041329718442391739830459964951852659034631345114380542807347028060329976175990917752486030513970618762656033149097046052915227453948420916501599073192279858467530398899524874241844488369475620044052170444188143827550556719196529784908370350677878592731492754383030915482771997925909363564609113242586585912703350417620909997152690153837635156823403955824652881344318794009748262322992772675688375655284632012167090183854531291401481987125832369766388694445314168363888375410190622598416105056694119459008352424577171592517248021167355314532174704589760779337531584676484690021878228860398237597008203251662303562806784113353156419906183154446156303506979014523456974751888036552906663467650979359128215393271881873638801499761762533456008573086346013469882792936531605788090449167791342043572829784038132735578301603567788028396020009968366146233796844767627583265361110380899717862762391430685503004800586929007710959479187172319056067701931177478064761295734699152632250205497450529279409356027548984972670613597468916754707215932553770404969204439415942151474372580651636043465058302033891752118232683308542658695643469027281172528366513944040289718092681486131003243680773541278067069897324991216636879277335397992580598590415127888303632884414920007944031381486775647361539563612308386492280803277424753026985229041562737990427077933015134897249040454242686014909034316453865728425329558954338555980472658556835493430870629461824064070772534533271876805439718328591977727793422914031173479974357967588296653316050095573004976539000314896609464797442098692404880673656428329106286768675128389731793142847624558059257430062864827378107277327246634853471470031790758879820522877046625806018246869023494762975441993215201577339307946402286899745970432828713908457630749945158669419282051394457308829619913414511403548962444215510442067342197740159434655876250725579961843295098947333191780609686469994590209566420198875192606602937849639613979446442047563354665378808106173928371677540011384185048073867783701255560948528696735570962244504552314695302939553975111095089095074022341490737191519745001355168665334475489227491869951552001344773668952431066342614402425660575959697287098488000708811051371350517398575841002581683556525272091386744520098136692891027135210043184909769999379822320791271507694927911093281633565644961397076558300772938227267232966423627255614905220025718919986893132792586293875581523206592075048140107096562908089203316675571431510589268070166954012865567210865255532509838797010268789835202003135452954461547990800398421007276510650186896958505181175175200615546313250308731936685728046524669961459798359162328764286766198380840254018547270251085708929794528929316178656190402491753750231161354786386881695897192260681774734483997068454433494301308538461937795672200440252802575300287379092409571159838327547772440848200242522075656423405842476279533687705271438035363355464077404996250863890549988668467822068970428023232236483074687912419702403883456958928879001905484869108453865222450526250041701540004183206962415278777869787374111230697963463644973309017850129340393515900967075086183969238721288604291582879027666895073303530495891208278150392639853976985667434723171255952100887546000478395868623870652171552635455709167183219365324856127303472358074186544187180683470367966613647106012184423010018974678909097728058145286816469359599564131451525426996943575911535705103319330173570510932493864942151771401391117177476670510954179210474151857972845510577941525250683260767113391150834194095938553124326933626220621394830377763836590795382450635392086378100642554066141539125948341853872456984214180549673458705888764588075616481736489254479172904846071830387993827248925028438827476801794493967851074891634925716545957096601862173983033837632958386399578619675881962927282315189852472037228541631436430150216461604534690779725420769938156555090975875987778530903710045727813942846888965491913207960529921167886960725597492737384608683996457651218309060192195843460401328644683324555446915734234175541211400208332385871743438199103037304795899178083509096900591338811407988666291508266099504800057337961890225949934775855205103175457109176722797035583034435075743548042320382350597854803833213564304510751549027197034061612254790081252266895173289991199744510331501020578682220096545835691922983946786481944069265667110918358206974368191411116242972365958203004981141843618747244461700322042995651981541795121507644164685093523571509537678892230135370376611895504478485469968305240637797917643871379620583707276294072246231816587051510145347145436113620672044328024714218030101138578876181668997714325688103114114617536295319048917335370869462577280766575758039469881501994089100810674600090283392715281494256603673089359822083120610015950915279769588322956428175850182601891528961294630417935182016349715778908411250586729304518974375585886270139239890641809205471140740308078252528639893573310585936832570116895346156601588413580089400369089212773443376331123918457869878072684168866833862999814913311512577225514920414492640955625033850490967406429348768653745392385759696570917648314056825018493601113162649737258009500962761133944776480113314280297977548852121698943032373261257781297299797058905783335529927956789608500447412578434478972631087973844536449389841566895005811499747668379324560364921033076252954209569539803628117275865161381381918249423826812762549267216374356169417314064448335249669071924033413106958398048174353950112878493271606761122218613960653022689435336337029505427763141608512614607782700338648862986778697875705208842276421372230700630797935786306091042730146426346494850906228861548090344876520122465075565795766505252007711173282700548153068741022834706114694769210466401184793808784685068739346403836551088116338456616127643076297722765136502216117823898098665708912319624174003983258755390721404782312442904981516562143844330516678745041782563747000700321829619061198565671210168443984864275095173230269914400694506757362713347708738586006202806417493440864119217757588814619012496305004586373223384083394055524573645666573759457461194623167631162723317753679802557557236558994026834681605814778610523160915342772209046095232257198984206226553163347540279173657325103542133486628549758863967483947582419600318451516191810547522244396483289414524616475953664310553181997181973577339952112334022110618521295205917398602733435588575974644872423294309069666277829523348467438441986228106626027410901477072887433763021370047626662720800959428307055125254905351914252614819909615804604849409162123787326719899025858583820316992476428632138077783396434636306056229570343896941748412202172099921267639813620720706880910890362494101970357154570421899400202956024732773107450447235759147020056546553651999196773644148170140197666068214685725068217252053347589729345810080472727266281402799372874489011735261535508514685126441826922813215160195950900670778049665586490074574941794944277845760029472881866203714406336009189604861969589893470124318921487163559618740247444292791819372806128652852128099126400996602102826432013199340514116599585067210579759857228963164296256861318245714011631869406594374216326972451798547279353330104683958222678099094736995034344979895276087977923114274487125454618575648464275867947170730541356244706653708835152727506712220692704674547119311296443616845088337638412051251206630853921522498419836163657218023657730991280106434813475886436332813102489770028709607102869454296013996017686656742362345729478391014607869043195956258649238319050444886642777192733709454878592066184348488605502847676278841518958331401224198817773381751030797104697695568885246418968723166483866890404993232712233086738285832086752954713228939874340782325564052139028311565322621669657283864281474721508953717673536778090504261882337539918750816094270603092002932206839462545090275409392176633249223012275608007348894530337338213478110956036304062211721385320675397343448247395293264782286847259521427442016557369398993159945827892247137515402099068301275511589437468794336646067743300604369130419486485632731000731373557987002884610285385460490542982390302543920721149341685664984156086797901769800841389462763160707156904642131009053222501652301876683607706684415385186616193129138287132172467188442707977759977343870242994623643746474167227755758818258861922175219535010597717406548311576497586973959521132530647619593710250467773883275640691672614801204785467272169362989956969387223327783663543623032674063986685210224647945755560091144922196073626253726403779610736334564170326417290252283565282572588380111261627694445640758288705510363714327341514427293110761129202873301932098910034674694511196682477944829779792188021538867142554913468424407337295943969787436564699720101420065684191062239883832387428883014685668561716850180436932645788456510360099575724894970407471036075711627137701880243846773022642880000615790906547803570643282678896475809935546008173063034356166456404827331078269573919338831087572679894302634586148125862756554637929597383113088756414008756032240346050335065440867919478726922684879832532675795391291620519236179601184034833679833486911233215360362238571071114519014047008579626684296423477376077893231236732533459644590767868322803215737929835035742544505544845591959840954499065141139526379138654667890950643563614171962515941514966838696521513152939397289318928227790799670541029014027044002265377153830982139850781370133775179278843623367387374456039819775237018704393037208718607258092914495150013659700796280365617610231212624613470045335403100349969095819834938699526235805467797734239403718575884440764384183630159339821820600502489693424749755380040873425084970331957114732891613315291251397464865378733299462991757894515675234530347769023715520340611665929948618149708375908535365439734037289794797806958886227608533147696699601505172257771620997550588662340038570775317177379048193174236588599425514388749270628175826673359790888772233279842693514631873071400454704877778755577197955459394808502218118765564822494938929539183341745048699022259516698593332365666158703389563520110569240308442496810484037496980284205489005076945735642527851346073245648869164821211232057971622590437801641686984306190270950939707215434070074127727885431364379505343917287224697749702636567953585197302525391177363558952127620009027575342929726034672434380864490465892654656895883796097339449974048550361788189059798584435111458774583402149229013815667136183641118125724342317593467237252655031393557638185862640340129755021876892478501588428347065628291653173262546584094301379078638750984752537160542185007962736354420419145817984588125358262019598484860414448814422597726674982338414833525827823798916279623106203058673741648983354317048498379579766955422474517963196873684714318299171236729264653468810696643195154825487239396494306991439650951775730005303838722925715903895558172946981896117885668298517300630090268630856815267777934530718610792867508809053100962913768065155990773786220310233210439599351548430521932846064346388472610870339773554995008978124093145454265314937227645830720655243369675291353404820729152872028581727389935700236522939572085861882682402750544136889497845805008148520774538064074699660276188804793203079866825107528408334589674130513586446737833024207804925302633441364132226772469064202780222298696606087450031795948910887715123997110049836968186246264748048757330669765638711389732047548818430838432626212748808235379811086387802624484226730012477846233496063755019113618822631429975592839974922902182161143750403257222458432698618400309114482152156541357229855131175792197256428028165022093006205431423724943054525528474405577125836160826739987242290024463882431301421045725431488851033793928276388100677870451656344524219235971846070605578521410196847620160477426095130281251055191064354893579850048482199132768581887759572699854339829208532157414222198854604225969136970194042408022304874214617664998064261547380890147104325383048124990212973666486288966372112613882035832447837996717765649291801482737932830866110765296340886588858760207463137721865254785894991058884048596708114400527104620155618553635774496139893225342351328284125122055022325432997007205867329740642305559096263036907128843462931811996443077496350307506411602786615350798354079009954658691818366086875442853544350932710165869785299729200287639993299722599323745806972381882764886242142731829020680985090267722297560553147823734687759412485714177397846401173221833756441141559612572069788910092953794748385918826410699848625959386789807838074170928865715062457748942092688429902493282677063851550242689499597305647764073419385621204355401595736125455045114896394268265735525801196819812691393816505708377727413149967560996925585836080359836129139433226181637044184857412975162252988214102649735898731993286394406165629634089464550298883179437917867567882911540395316469666974104972746295222954498954827292820306658188365907179923152572243640763331176117859994837892092990975901438184076275913947461657214040346087728911155619118194269153470368537100794432698942516319386276745909646621311802123541418487025844904932970440713331523240987180391749205900709159391234153129199652617036780752661027631899873128685658085341733886347889262784912326613788498686257702517857282363446207997462670490781112868897276214520942376825832515790031091718349217252443101500337896594663581439003582646573063501193110242980778954566183280361426823438213710720459744336983218516275687047463264079830451739279049618647187370378787331910601413445737812972177291395092244996979817631168157321307166114835692405202209008747279912889165848804300317164948394748784935242633550008686673756195938284862942202709586267861381119184445043000680391811078836262881073024743219831302209972459305086782061819674601602437774188301348242855355570573633467319919909931515166233364829563662295089898760533875972506229907829782343630927390324116965338020658640153573765403948253635577766240339516845276270057212176299380900761088348468404739892151270191082004014901041630314783745918175923455460433806761919750934449405687356429208991597985188994755950026003604866811304422343988049599082514873724544769079972397530287296406238074799610492218363106406815643245770561515176789267832261114847017196342603581949276668582455750717997292929103909939878902404842692986403611633163781473116300733118117829164667163937863823640267524304719818991418100067925858971151285607226534645641915231446578718906962413409148638032268584260867139647475340337485578999999812823472205943978857246858815213013049305081618260303643312372107797164422086682518607963206506149506267635293221598646339008913367405426304504422547271335689289775425094529418637277337659921474178559961322330298021649569775656263828031649249462087918485847120705821021999608269050338663140127572188695323432281938710247770198092868655600402921950409838176462169253096482025522585787515618545985526291638462030283163511990964273137863418170948310070088698913202956266814993240464446224490773014346656673578915144649142131573230233377266194391469938961062355393734575449127131169567926836288538441893959948329745344543432917353816862371583693358421342204949843234125278959219825129745303839696712502123213283476906443991780737767934986407886109127012810215158758341951223299410433678653999336995029750650653401589223685867519350780154104435747754212375113239277342129397272860674640299986466344825300339726398937929559952954987846831973788346945188454315707166573206277314962496159636951358766179181267197355003921562152302843624639583057486805707400294202720308726119104220488874881589099473509739899240618919675797808803256292552609909519457924131280765415347384014085642296778040118842699839611740685165250597732515207147569125070449146108513530989504779270127760681956699279888651922083629155547032483272998239685489248647245232746888076880552148370732149423855594763589034351248151690659587092873044985019018331221541022280293648856817818391228542801852497304042925964056542387869064788578577846905472981246768179603793809025478138637424031901635470158058571968388830906571088933607427107003063266536079172936570070824442366005605357679853318053414380996896088638656005368622120691682000165651661503339164972414319932273072925414619469175337321668340383712989895550039401810720581386086232595724812373006670054477533471282801744844420853088299471612014853981769471529429273429943581097576461296204309587120994104367625622779277349660686441259233728314824426262075789804665291699235419217941419394214787525083115838218720421464717623920191761559530629285155142386707979925522707325770418026760464202193312451680464889688113095840158277456842581310226555932659145364689663130893599708432092297152829678528232117110777148162092420936367325779708162230620436533583672796391926058274936408088521907114271641358206996960370644380520893324573608902081836556220808314995163422536618829927141067646818878910683723623849436045814596470879937806540874718034209746026353921081707165903887230504461809895729641738185364299945975504187509712208519051049740966949820921267543254103062754051438913609011528994214874012862675506542830703164319942695203984673558885002874856870228018171691740217828964456175219033356962201248055865288841133900653116830389621038421170867095090236990157976441102647627641262460293564814187245074584644631873066833555201031595085553885241824756288847601761720224487455684136506398790733537732755969486718103147585855505355879246127514841808806311708751760519970768069740352016218212619301164544353665694702283667022952790699403171745303238820101725864431263579924742417904800068974311146868802389873722263301803328833894887188739966149291739936985964489224997677618000972451345799608671742168887775364391299829416385130854827676707410815266186249872062652530289033268335141076090493024259012485755347749145168303554239530961353924046366061320433563533317560096124827202413865304788938433244742074597428705483202851261115035790316575313800990065098308227912880034001254298784874040915802307164414619484071981239403425388529951796165987243991397581018884710495799782852997517066974010649371244356883050717969692770524915894685468253081208633750042414342176833654718774188740073206479865381475453788952407332601277888452279973250063127535635849254765108017586362063099824006495691442658497056480897976358428944043616888493796841681987373709658108859566780942025414152348867001675592134152576646563927898892660796249189068502588687118013833941219940320435618256776032393905363594091757050419600456216819207387518377072562809860534591297103618793314263343351353898536461672122472139013715404136645065603358192788409405548114223122311963295387319498876184481798138920466053248862130276279787518698289926981904649991767710274515973410581272595757836759483113534411931380728532376255950290684703608232839099401395861750327262085574703170592855104590785290411147658297757776519095308054909132738957315683851149660075864466350791377583999777522995149513040385947900438309925329840504502526492089632522361519511440252480864425394274555947813024960620222172554702194213789658117351459505166619087166769262961658731925286323250594918248627519131333548645091050539301516632677045758682854845731325480732127149011042520722171363165960412747864691443631315291891137810717689032426399097580334039522079879904578236506809985691573238794784568171157249723338663587404242350821188383584679800441385286886499774529425978705042277829570631962833260095025571713210859285245812665966439924050715161050480157710776928494082436703419859530550055750956227566697676552197786836354239353410701056997281076330302666773379262197250240974290515735568584452958846137938664941735908649116478400623622038866356478922565640524576501789038162532994017022252945649659298898986759513506785151067111103621566392345966086825211973900875954239959947943381955765086147725495146916570375477304198940286023211971385602238866143786349525275498463455621810717860418685834164006619432093861940966700714454433395898337300523024063637646734424302531512039406342817202156992892419255899269509903485629204620885029831189307530165759709392948735802866863988330574234774303226397326139228810755045276815403376005635678512655880610998225306337565884133531395078930592327392823932331159767651738580063288834489392083010506410982630703454777894890976939136990346541012621574918925280406854125887984158302777268450824691101338672343200843120701413583753600580516497959744744059877087300374027994931251557181283778604271301461335876493611025153855605533502681288507352030956613066821984276360456495010740478127361038934108104660914180613926999747362844086793048236336405516731369725157814836365625950815763917894433534625887575892635218417293551293120593719411429591979223661102418307545558752703380096297518539414777523886216608863768159531498365734096617598344344370547396055656202402250028328976767794731606266083475774488748877673139676601155287648990895588381293124001854124965435536435588333475995378675682132136907582553032058056370789937974546551612271261277948851652012305511770692408131386988135234024046955340952483293748538236699055662138636714195667229111649455530228966332343120273720413569385194756043996005391329826046949850180170875646939883714246557854511307275393276446303772916741473390221319109379142673374792491261471871498002126547166262868507881248039264109881138719432974915394961893514464274100186553183036255731566048285995167938202037504916757553612526901685100869009245233517707322877102145360480925813206875326251013165458430217415851959810565797948578568047288172345074502994634796665874432361101033409114885440202798784437191323031669157938208946167749615622454484206886663778443660689951890120307605902996380186418185907543923856957387873529814036750167793907110412148492802476310150694288054732703839278835021120545758778146174957711146376788672829628866014605795914538920906212212812965850998178696301608192053538895270563319445373511892877512085328277889596986925446583453709011033580258277044550194927722345423310922121658422040288368987129296342775399256475018537694871336457910435662573269285775312323979726190122691018683487704508285526764432643963551718913084767983057469333264235616885023582046583468802558154942869878091448099494654389730639075047034323461881958326347538646150273273865623715737641586524247540607274008336424971460409490037681129759204916163506882620027383220947305396162190127906355385739341314992583582272764834066056936376403120383479982991913399502261041940904270410121991420543164691430428881602788026416704127068864778415148035478650711987376666805709093319679325339263978114923779446159448316731238214648328860364890819384483610178316730073624457109380515535877411366621876789403522490970702170510174033750358970468066140966601132114461749988025721278392816578746493348969240211584857790374609119128943646730577251230850050344452045401261229560419465805034511260304326948272538380777219159344834652664236750496210698817123238574696562935173382906387657408051039332380531725666221795837908824600271180367746555445893677119798705996112489620551637043574144855241841600160876574972271684426204989385685548837796392230263792132124129931639509915164033686157093739251143318594288290873629602473593868622573048745074197210852232611847955131685957079333077281850532040391539654071721187675870115786290756290370848961818365744970118195214231202506794449253716798439725760405592127737425991278503247478996495278191252417330324585179043105411145624385153701142211903113263999173725132864903997852835225591381904330229803004851689217391226043660227851538559380054312556883984812145771990737274745643168259926189511943573892224689850297034864867937729643402102691208562391571627494783446486121195936481002853115706934806812885789973409745914658274744263771543812432702935753250501925462108088786987850013041982884600238266232117223608861958962720408772696362808308631261205525921868020385757537494947507327352414954740870095184803510265769355765735781542313300691788675672575481283269810179747790295050731134665946144980158324525755255721693088702989051467331825367639585102890661005171400187882776354111673246114452174072616864821209476412584068938316023993278112858553702868755711247767341850282109976909409358429777610140964797728677605427046340501724020567946138999612700981798326617522890721556040320994607108506468932767110304410520327875202501602613695653579270802485130630905255945086804967472431336870074119838306942215010590280901170339422087742321985852728726667581650430506152234765238076061171334835491248642225999944806098059493850975104361885472253123917821366620700114422959360289711192914076426877853785054652767142350912129575865415491036607909525188537504845104935685637032539465377209338144973460390386339197354451927286791998165035008289166155545020768037211937356162585765472331862128740163654915894273569245213028290812028318634157082080443853646094572660974508949621748550054638494236425054216132193509730548551312546192063352227089277123707213186389753777801347776192151818187042817326498241977714022736698046107680550985122686950501528337473199167214163622917289520705456497693092239215159040161419912244890729449202851775855892569547869292785464985116105416225942845362659738072404628800976691123908980907503755888731767518490640466880721547700169521526391835392069539270784007154276278173585288268889247841096008308239211383614210554219228988324896498039929704333922771922655164314023466107043491989461165358679425473708537853303516883007654457801007895234321757610246709952224829433287799203480330266481936551130906578576604981431050586006454108166687737812435069332243991573796800044794707819008252255678354227038398724955920386271447568827376540107088639644473561866732357329901094297573641074531791454974484063329443627891341238026032717276970466036246445681250794375824832724583343841824184926100719336298707676195589962169337463834062332296909032104478360687808567037511740177350310036409414216636351083771634715032557232282855867155697165775460248168265843481704633545811969519513031903917537083483312554937880570406104942324252755684993393000223565207398005213684767209348341090557074448358607109879439903144104180726404067247518026613008542886971576710353788234137291261967208483604173997517371048208449444977931076342000180562819832403942159951398563787061448428955239941051857195946080345319618629103208171828843707923733481561828234348442700521295251814574995202049403975431037624207530660663612994029993288700209935405716396533165913563524906212033051673286231173366053416625731343892516520239779293203453326737851102734992020351536593418968552022189676165967378564388577793908571442292761369318600186145362790444264586348406788618456938305982541906353351159544379595204115169232296662445073068840411658715031747903249847587604467947274002493172532530246906584651706844534256220837944212765390802408924584892377130099223986646159422846827294212718558858711940237096044507768358746390779290157687725825681507710304689310149161505648133391472532208997554242145364181885781902927698051614897726810373566110082801932119815729971296535629095280820756383262221543361114313801281993098437098589599221713192019314835167471142063406848312146941661450253361296662219186105023762442027645369181342147777056401510692741458788207175838777757661099882907007715252829687209730551942630601030609491630364823376371251887784033882087271268889402825599874206674643974151940289784267211882683070667924106513036441486224476170082851616661278522675164076947429441849504321117028269012460141511168952356973482441182083594264570516792370990536421096373251922383192357048459074417316333932314166741344417765969061171872646167083522408305822655236298767763537630210499493546095050653799845290854808963852343302019232985137012263081616169263293458478423134150940001941694206489299652883145655063609591962748237135973817869550093863154927688662167413938805181812269010234442694367401974931701763148888346405739807403627650122184570052258646603951043832980922573457292173519963269615110757394533809208510662064984772397664729979788633883410181345296864259938123418634161965734804782014052640403923973353974998098029586474676396148297243372651307932367398252202656152263646152680888009295153247068417406549004481620394658603022427405678860743654806454798969966188772411822364948687492026118220397597059555627804760354911355632570478005801491302425207019437574520705693038339564705074171029349705555809188090400320760527522488747100781681378813297663930211292346696355614485780089305765444390861091167020189513886643519521008639870934386946356854949388491384656504064879758099807746257195482166618253751648910034210886925856795828922646066223460988570156433379984022688091572494846586046745255160069129375494120525187653984685776898396101238457376245584371546173872135086546535836294929281677542382671682559772474261241693218510948527355540739712972282847058892508933361157053102671536272083713643114775627101091810934972840587501837031059954157830659730102861136004608353141693935842363238310704537841205621080823035803532627507612786286167031423841338129821843944041968620749476690540011870480322001352705963868546682911843269194676948506100548994010619007281060549716059705225594896382642761754043310668141951434535561181488585216638055871999652296318124820557795378239350093948629248794065220818835658483851956211130012814501646348020552937787878557942568163642011229355374524358185074043348286656061262777379310962373995922063562981745152719047733827807492256532119319565891820435957739276068241924218368707370724299501233072950270236684697536295141646207318887740866395287305498528468797698596405360450261813049628636980739822926051357394183074794054898625791410880828474604118927121289590087405586234280639938172497478040104360029373638947348609957697998397668528162136020456251128106998054497551345715609313040070150484408701076972836051770081414714508778188224233603032120900965180682559642654231957512990970444966466373790051594010653621641563846239477182180188219263614191874089068184414790799880246450437903009852715778248320247372674571730457567683684640017128187273899725303972393956304245075525045784678011375059596813790339058627561336226418455652659144667399714927386346456028857402878262780822332813319759503399454766319859898765603698888210340245625843138877139845394701177331212712553710347116856701841054035377210651193872404666579410374098082786878385451552394030032952959264224055986907540793906202369486874220858834048109863718345130077735157609426343089351184486823963163308998013248932728527309475016273822883727513320699556999581882540395089296655258584662652389648607891097309677152845052066860163036339124506465890389387915383405396313406102884038293206600850390694127282113068724944533613088511416232838033696732602632269806850612520061269874118257656323105145951303433795549552220285712114378456145795701640810820751631338919127669012349917467451498227055145538551177796212955404557174533435437789324780135436781055821563110351302518220121842308681716593469586724109269230496225780514031593705547855843363351371032190311057533821857038130230297551161140053033973840809451438505705718926393017644222684728152266615272229644502475702455582423767747680318605492368179783664266576860152560614978309910808197479849909739434028302278435475168205285950551055148714135657759362563637220823640724191062428740804840558509920479897076453850875032937350842739220926131746128451918118269509913018750604683125655061201619840630427116935413521395730897681654259430693007619263770851714687198942811755264692343947791280364478977543333384661862753236200797735396740551616824672357659611631147278201424472954888310140402273818602403409546857296802753116775256975742420773293041515307972091416304353317875457544813595955709142649334304630004164038949477389693725722616335353063067347896852984593348002008713841912989492747350796627169101673981123429420490574545499494001603124434811983684434106204361179483329772351178491183140089566434206305127806623984700658659926352743586574608915416586242031491492093071753702239742154649700256103538499865597194555868863966523987765085457556658508207474735516744964780557252411738376738752429747309491857099604341483176317899100474435878792302167737535162482778283974042444381273067486345887655708308081398297021859274588291770322063321311517463894376286731654441691749708340059083856883910521088247777732780352315440227537089448736201284842208233899016839105340604539627247052980378721965955568221943575274825709092114642594652866553579149281890741384221896520304295554393133505562190518915157402805612466190691734079510605928282537026430198830344151337285910735024772302023897043433330300541746783726242110166876545090096119100094314979096718421939950855625856526041748171977249780015557413405798067088744132870066217073300535546095830477919399587101474063632568752104020274289831387346974992545787665873424086075177629093105080669344930241675599813221178918588835728261484280314697200140489279485574713595181543781077793594574935879791732996524938250842041370551124765248632957196363270091642151755566541765342310225910714285254180020159201491413734902012577662272354978878452630984208417870293147543815967373832088117841434824829670515313912915431871633347809695214735236824611595982232285442724713215158440754917484264078941362857769326598835977510369745465405153488517033162097155893294446433036265737734949948509338123017603060061042814328654073200573399610099782714040660531456753456277824883750390283062111854076883037002119151143366189411548145972063892605054927191879153181114961390165425953075411765225675798405557414453389296956900029775465801607585753008641231732623275336357962203757258221004850666093332880644311312983815822919326520921630515448094560727334145195056762411491322735901166457294435891288857991658612001420409846201051294859157144584892976487763281248858212987059354562394392017711415376573901739910198877915229235072474109959177301416459758932553035349904669493731526982481769937628228967153289798058581689108193806506519086556000702948311778085054382554503996624161661153678669541476467214825596460188994004859736266879423494153027493658886199302863569728156214692265886752107099991800419173619410829917635270866120853213178197654960470343209640617452545611719385501672742092587848940526913089150537390441501694546400422011723302673316021407697738869020318503140979590878217079195313390716505304753965467800721893525945452342810339676226197347101534958313373770485190678727386620714972848496376063389899047695025756134137285558324666824804350291628327116710124135036552072853561474714301994577644042918939484184945672207722765505098747740243070168698876095078467234160871581604238399883979191812777436331833449616971031320659249212812013358998435501371411795600808095447296123688401826758791287847662764120432364971715376370449484960746678421940688565486589397368455734249356310691263448043782062878105944178101196773365385020205180238765805300341328583616774657920486062634245612457473224929831923179580661886077359970216886984451195942348330401031599951691324284492057082864004746830372894460085901586991978901091930003054410305200659855147736155669387042173581247512561081335041339634855656759987862427441268227442482579047475145755658892727844967949833195160051921513866320713481786375413549132760852577270442907478544428030838621718970391438526694198237556162178445612771254639791598412074279839826621000243610749339819631216644528939390745046108967816968031921270430704259518731764006381701896955944217197077163317728004498648032990578122088323159490586760262872436597487768623838888776939101445317108291110292829785140531701997501259138926740657015230186003299476424821053438944134799340061735576432226753684978339785064376887096033568124876520938143152926679754480904892730789818264605667016625488779251520906924916184897170348430623545075508004839612943112917229111759562066192488872595967429878590073155092040041206368921674809116272851580773052712719901488435254134852627597987177249732944041960214572121462998742684337194889941311719755060045362546418313002466654592927125945236923689613817798769006329747314985873254805522291408599944145112289626584469401037544973915609057369379871915466067960698217312952077530109089316246410074707518291586923419982121045614254228369944346128367535340631246675143671959082632861153882326480601509536162725997377651013659208091151908377186991849436744620041587362760171359352735419216526098156716512449400217730741154816840760181896923997778254415123307628083571534953757772840563409155565250436321547309774992013938461976568568654669369845507513792161433809237293955024643122055810060266962358661074181361796563180458202862047376411363229482315457383895137724420202957904372296023011546833190462523040508647013188871322926024955497944961097788012162671075701405769194330531903473471771721147098631108643427534141444672618890656677674779451987481891114738935815242268488055834423292426872932274093632803728490623023217606460509572786444063747360061197454543035760721978435329246123159930919154206912797640104892784814776164041350470237746788744104243551248080685108073335704596309034457156854800137109437367579243193278841693951153252198439026068504447725568644112592365643068077387006303842103429013480749015511365274172104619126035073334036406026671144161555126373814872535934244157473167131516588332897335393637136385448248664887965964250739767117576592268339887566435631752392506071875928797655271661635977467715328821404353616977839118160237253070458262502163993256076325815900658687299676670789694693737495310710748475132516928087197931035154536365161212083181766983936438020819050907285757479781202513216218634213125767841149587822436977393332818938302160524456497210260848793266274168180575367224402268159434976827277670074307139660618922737396994345977109550317232370994012078660070713896742890030858909973964184016886199563445583122482304483421897680530073633435498569315299845035011832584009375546602659444494465027528210345146325860682093082844365387073445137980956870580065779222334450678148534596184791759786230203329564632126626489033912804554842480435569348710508161234376412087000296739715551331805817499807504359155993062838804952439767112561750782980681865101961598315484110447937896721884555617060423830119146960803033524895570151048596059411763348822630053043801135945617179526301561838420366923326603192933888693790201706828745998380271956745100883019939220323349347630716127381324818345124958428195947854470885292659012478544443638180196808558760937087000221989184647675115280069456351898419413673477569936467621567088466745171351028337148389938161149888962212058930496899239211936474462136213735262731675253340941511056268854348712909263078098038153578450956873964348742004237827297191350097293260092975162919245684425685400219817265839662758642670141369709459930091279488225023901052001402037209967150141878911761858906660282967257337740010609224998298165435288993574899113742206611702257562047588803909220786857533449605595265956735181279724925960029837299897240022595237453741787751875586157162807025432052260867975909086803290367347802896943246835428676662771196383461588838192555707617134349216775927926386034523296698193994861040221968691267759074353577321395916887890742270022147696706849141390897849399851839240211526146133475261212589190580192453289466834826282726132318454117972194046138137535075593196914642656785823768535854742735549340359843750073843751094150373634471113860646947881208085128088506533127886453705148907177875340253758019565676590609823617374298978274002482416617704043349698458876012359383743385333584324893511947287621363423978566530655071873633741677277130662969560595666374413967312282039993282690744093808938023438782252469094268833592000613224282475592541038869254375594135097241747654974184142118542855366663596457116707168639790666920821324326940170817230805831389173735894340860913063670133742759489105112324762494576497173025402945889712627857674980401155055975943260869767614201117750237366360354402314577775856034370075741947065474889073083390789641532409518002783964600877746488000428282706730181353899557487823132253867961182773252114623263935713983189844287404525526776752272543105912914484718336061766060617798784325652342996835268168962036719789965617456312912950077905520534022261847928730921382953964878766133017078410915667306817408919808947181949372076580603662818758525481348714989704046766045748692339803889779060001023660058251765406903921868901269712354374036601395089726782093100404021050185991922485510309582863835616044007759538430258089945213658058342322465171893718640893436742273787812378235198897767403989375888333371209811973439645837990250848783240343701691801628552954155780058215019446666977044972343498784979697685853067678078186197073181523262651734095829451924907192593824988268254960108911384186865069687652598601542664257501202919267935177844265377202092127094202889930264892056755748543005321959480797200430749940182577856823312220134936182274150689546786263237579521755662867901859094620004101939404767345549096271630660804653733442133008378296838317190537324655122727226330575513633314147240110343067150119719181679913981940801784027251611351009470335932989791333005376571602692710770482681009648613826067771003157599982728169411396106212586318819649361371982793921279765724919163438568553020808642536908462296833615416661577827408649432068796134941930696929609353928853695094836647803680761009455767648995076392722051006002915592906619060317106165401357559037602887263170996829241092552400775165268023785993107986007716398958677706964909216308764671492475597264807918827170963129324067377445840199410067935432215011598736527982586372416450622386047602084746993530316591276740238100561124659959452061491098578848790924243760118124878769016424124675340603281981955013873746179698727601361950614749661130786238462894359955203328781844691040303931606286789555365746413052350238129949782478291817328936588799566871803407069471873556211372327682147978181311150318588388039331030431618760115763492855636406872519644632423287264767464925511304936254507011697647552495202478584824131021847338018924606190645901459858342687914240989578808448145512091290442155911896653383994379400726709149070846081081129923487727846515557696990416773950595753846255197872046587230355163639449837113440386618796357545108332712508379763463743908758267155716490110617032506618559744731307757932247270767847926597524696900560175179275905438738296852643263203947563794379804766733465298739706214718737131092400368490908729533028298781433920186483731878761651533547424952857928236523191236385818949733089555231716673446432691096265340967195798536540791028498271212424488805993195944127262253516866993549037504727488052036639899652452084550900408754888220550524392633425918050284604551531368376237187928063037622436791335000155276197547150553186266480782980093513106552864738936640563307947361058564492994746271920868991717926511983546136385644507267325212627188560762809331256425586989349001677599972396480257901939922123047013057610459242607988700515412197047444008896601388138648674931972075833130844637568854360981263669687168919775337970706916217835830048362055813536065843709991392020409986570269950865156506037568707231532352015275123144833922779996526368552599544326576507046543559069223383561084276904033315347844153888378229798717263621285077783143222898513468039156556601503764010515829746874417322557005657023137127523548363380828755898602014329427069742963568777432876637464161192025727266508523101918036170791346506744777234177411727813865502003092539618907060622096534014665802219988893970445502183322771393263247366375354316164720886667833260396338773032271507858197087068890121330589236928465841056171136153543707425210818183038793781641992342258642998643904889070200646064686697405584202448124711533920685098519305898803076245603823290005023802531907264995831276731021365058996726260224524522192224806288093487342461984267779011940426355028378924774941672221937479209828608225077913514494025470036362165788559854820505961028588037250630517202633982416277452757376838933559447778806397031885117952592478528359438586849108479788431792013327800758775809740547666430165049684028548775978483033539736288275971570007660880964694994765419941599807409096937865990927512172744362175660545633232553218124942305200806344188355551809066360547262227511734926042514080951820392876661608406044778447707453376766163098575620581234099606647715769852713375919864603717945462504241727833888423754610098164994662418457236735477198743933688509617582575811329470531237916529460375173621118755552090291027129469229353466223993266862412762720140416310147104833538259897679918685707898074412451694733328759285232617117741663159636825751344419539368580664996848210718413880562515855748553097223942464006383356983071467019899657507067057703046741548145945544427242690432307006415724876133408335293937611509420938155565238941441234585886739066385379045585684222797999075355706486327306719772748922996406734229477451933567297315728675061246888499825058172695542672749638247023177895368291648038010966607314555664692383992891472553124745462125025180038548777732950281291279669662368380144908398723580622732896370305544088131174351971650785599844920390887246407614125101085837903338567249751648920989133670183458146520943212790221190307598267624048485885972107496013901933994008836598301376470730201047825924305371996498925922523431305423007705269591855334054796807429699941355196209814044373857046452818836935432477850724808762923149496687296859449232142774191289243230381048567619820654433104961109800117381729618364994154461133168796110681729897578691192241776523720229991593061385868699502941475208010019904304209826097750179596922000749292053557870041090496439402042658168108892485561380344957780654859859223052118833870475290047137035507890251483436445078606148788176826050342028512155384612841970548737085138099142411943667885939201825726735430246622321423458237145356819641869575677055256218906000687123868809499835837892712493106181571543623599110378950721880747460301628932640540819357879419315589850621060664727344310411769900903435819362589301847759098832128715473823436295178866547150461604229847020512818959866514299028304297134150808044275793468145590680252451555502200898101970626781272755551221005688980919412639560756736315861172812690670928622922315076079044836115262867677018161614078423275867383951517220224126272332784416813875944208300696615788698364038546059538575623778906388345256159756595870685688539908287414845909530404372807904615909890973388518965352648135986989047532395544595487173137892344623400401197197609855801978567884869058044153901055913707157480434919905210519950153099746896644196501416767030815247145635159840397709121844900096692490154079276764972178302609465100478384164208606100142141186547656777651118194430104302524888429850156582592174593846052757763576605913134973135345431102750962187787355839057241728028193809269723068080737339999663235918741522135709113770782385281224673802697487128230241893469696528340832430907266467057939217280360950413934737333744498971150279852483567455049374011889222526320165649416098134901228504560527161647851374492358980498677244839964515512580795772148225061988881687547187786855482811844168925667943158528374832598619574146543970538198672010892409301585919140668024402245035444823049557067345704409531105043486647207877661162169972865337187843572260215771304469093783902695989467770664858023461744165186129596027394023847923707343967180828687653165891633711048843082021830710919071300373849936360814032649587710707046226309070547868921808657995931616459548905804275832283804668848641324611819694280380311354296787703574228315348374976410062440829724348783218097470373632038884561064703378765293086030896388957446054372530196016617577594283359877677529670343711672214155548684162735752076348382506114446076773842106698621318786705413968284412577544654760289639350531522607285873786104454709168032689020795300483860580662095275624449008150390869799045688931584966490046723837738864594308360433009138264078089874786430336917760200414766643721408213773625534411675582458761573808114964831676312312363254034624598169833568447440311411834549368699241113619929178164416913313659482250113861524626570509922160319135458644203128950682286299966189016141335759741915399367975478416694281579568092020441492152650003845159382394749967110124497365796145904733399774262326263351280103184423306421816462799607828900421852487388181811265641575996253168653108503661725023497213141784717532676360030826591111971348279024252329644839161266404640676907644447604461798921056188848952726376258857767957102417092860770860207522774945098802740859093470101978139060870650283283254923849802585190288186557730814261538690017235515976863605567166945094848662758806739769089705078623915224523316230889704551016580050818434484519421581166509948843680429944238735205050893260028534503953036643519190807486564004473877027145773654093133415736367686581838343590408394192998953635469604207126087974125648950812236889517994722216621512366623816113256828992619880607257442768980594968320706215189685957239327724558834704187397428069374140642708046236209264901016284043227824355505224662297124236870755243044609841452908856980113330316047041542869103674360669019472292722335364213415561648456831874300335910756430847209230141373981635529832145068257148889610468427811068386515717022442342329015294927531725709630668753970790853491128868489163495180150295826726671498936855698154518080579508685795313361276958765725760748231446522378154029706087473262259256691459178642356631950856068536483988466613215182797584933681615857833650472640740617159516512371332170960063420288816443582300928966656130837734695693243540378426833218181048792080586853578903870016984263914850458010681332118002408754735073861076955516123497004033743854704545406049869768750531509481534792302210407332362531623147404518658659020759184400726906005767999253092220261394796916445722769612173233328330328289136865445211451462320919924337310615457945615195335840625782255747355690207566149196493641074641324250571023743126383282414151803519193160941978638553610395875750473967283153854006782757855026671224936344681497449104536010487628586353042273280073106266146308120588753182934019210919815185794903847577594370127796869974601601325261495364556300191727630314497991609369743732874187209861249979272522269071221460428017449159658723167963863689354969849801029633098189148897521577225059729651660803344910287968001779855272953904269612060875161766976360726469196471487075382258501325914395693955832857374265026350527155702129307498065505488502048370847401400982743195770041053067339214829410672544815756699280189288680915879320106262936670736094287686591486215627488851964349310660359104751039396457222253275501417113553993015867557592561506056822931735235936244397887665941597833122863938277655787789654272491659622636720361390952901768202521341997179541039708505603861438366749594032624503933120554262723242813914731472229712479512568106187207356216318372974340530114738353720542519088426454311267436298258903870665849147632050562889705888569046211910948715238605158107776384525001695254379036974733100694440788373880876306273489340213125248675749537793711186780910755535940729763717902638006105034065975890299630554967114108882257268772550636409356884128712794831305531779174640960640250504884121003099396715416571406357810016491423850602402115472961393938409504138030829310606333498601102407079448700090257684490164224861444713031815582504530610123655424551225699123269506417687397015630134668085983647734158498739500198426208007763717116751142737580114382547240720656875990864259876922461333595401027547583141232944011711405656531140772881553823313768329902632289135262104153733201492367904385266019647912693045190690502409463860464278085624867507165479801023240356588665092532085975741984709892880583613980912752163100941206062101423652307035479274219157536668141703633706340217862525181115024960840135342359613943618758445197672640686673591524649907860295582460299423762117468172099050627620043752546542906736361670548153955473190839312638367594451043022957790362768273895847878793811467101300758711156871669167253983019666343361233090574872036715639517361633322444546059507436952082931591043722174273838059584000726174899641818058425546231285076047627424723674199250063890361309991583080419844978592074908900426276858979240559013946615645389546096334923546719404021446298071004924881859306519705176732989733082479840504968692905232368622952678162404257572038954223456873535254563092562665669413807411416571734345507066523621434934277006951527829835211326994217518128125000624336059646924131774325560821760115473816525636380145890749717487690225015009243131146749749454380500420667198606470733947807480119756105167018348989083944992785309069334734668655586384979624931778656768046916623778103011878064804146770959546060621205729409582783124800792264203476155141254402419231214693594866684828826142207097296371215569476943249854313915738155743676332320780363667749490336115190442509743032944725215780911185206047972285136645160775989268353818055173254040394119244619881745409412584225914896895629142526991231559076598598064270548017095103750140344332805019606526556059624407175718804422461233229275117540841850712205100944670856563498055514335908522473208007899237278608799464148088116664914336708089467073810922297927840160061573797267439560613475188942378765507605794184115373364179624486814125148956594327974233865449719163702502457106954156137064849178562305041945722165358945297256450577851165908241964481399250292048647065945205121741766103490972955299408989398993599131373509476379124991269717161827765193144729738177622609820623691063215185995057904449616857569037449386444381701124983421713432553443586981696574239015713191771150206021584889823448729933052180569313069768370976676246626723257938742761605698712676942319892622189923310692602604823427299136964773104585350373002694231086624655812599458168536113614280114946717870506675613764519162848199716992744533197980969571887131214337507410281121834819839513330786553608215333490083422159998070237614221566668468877424260621222187873713033703880138755007717741574780181246513960154768778022377196518198087434562823385891524709671815342605612039596121120233286767124402878567399634286204973373185156433440891312501174899131657443393919260072016101466168564769002709512235939603749123637857316479785741596695549287584500490409522539172040345394895094063856246980655663082950040429089989547844168232973867335435806090000276350842947826034794619297973174310201410274468317348202784816273019190904819475244285687524730120667923358555664130858038758220616782021833686768751351827131661752407151426144527216039052996845861794262685636002911280937963321260880215665470827679645209751367381468942267920581468206516788632044392396743595004423495373371978380291811902139486383050064916129620688985341620908585178328684554607409983806373685020186819166273311083709316513121399208512494282669165389987410905965885286973529519644537859279107330274789252973334873672488725976175798555918346038135303588309361702620602634900628278131268855793879235537613375150921207750027359256213058374850616341033987825509045996681481582517679031084699710535592293795190836709785722057587901721340413909666084833762721924973124476376863558413366258261627960854409099998920001537324443871447129316373278867285425502146479476301832508237522624389773804158633608222398949449473214541747422685926006608610262155869399793000741461166151640794152190079544624063429624937822589641846925611153964522326479032929463989635153264494750404241225925330922053290220106535619238533277716125071954576238232686440901701622576556810613401339949491811149264543564465227858891219297561193561761433618769242554493085380517934142331247511993587278041993039842663757527453613363248627353867071751089688374175586982282810083239159299016842052662748716288467792952120293604213884013688383035064956898148771898861730687999606654915835709892374438495339909063500233693483436943258796426908936275689480854756698891814709326358297125887626806814980458138757417464240420839772706978223537878809347026776905532351124388384847231586725284186503648226230730411380090499255168737366429107422793150841813653115946561621652809724036022298606085393080860379534296074991080820050311806715850546814161662033614756222530390062346926737696476897360987338218257059209748531653036670276316223279331554092877277950781987588262201397827456687941055441978516181927517492688156643240651839974826905243582004309564164124297401222187622300224966192614891610296044278844461239500800085824873049978176996403840596238188626274381977895614090008975048121369475961673219435429550884038599235692235910494322304028277293462634237822106771780548614610347810386767462504552078287361918212602675888786568631790191463843365411553135699039418543248938456899629397961183563624427788065013886896680550775683264128568222582664392572643015757672074622097581929822801399745240650265996531937960077901291775181711064871154784344224788904814938291219540808850200130660319843535710331698830234196396132490464931651907186591866305958392536971857453493206144085896406350173639488596444061760819546592910615255966110200914742617233386178330713161418646992398270884971934756819189708441181261915069031301902709316045797745919651736209580478453430253232481176348485578190875307575977637924870819241940359810883946102264019986251747144640867771912117297237753539155388933810132267200575225364918366405362714600258791785217370826996171397702055710579272182578057793654741979149372829000032184837048877707702463412211204752947372260886300486106365788628037668715763293755760142866236872267839654809610305047501130249015203057118287601141597320545867164548155932589033782314349085195550935920651747697181348254590934359909352387765328052841070854280336535275525755031022841635940533514492906325914384572918278732478973491162009874558636567670954313432784946208971824574870187560287195467204109169913649675355299555283212405757074233935115615870083966363205844244927598005850500224249638717171255784594838948292630072329210736188403958234399255276883247171425593736773016554376468977248759329084260316410660190150697739607766788802491316832589364426917245592247526019171124734707113861438528658467175597018604417090372994359629421450156958713892897134283556049941305073086751848283093726603200677435074533782363632155663768587397828651887741037533010202843301794993200837336060636271009927192630829692980227951251298162374509990659392591924189040954830911621931267759541587482435883296736998816292419727995701428094636766788789138082921121343053908583506941627410583709236050316183504488552024503063012426162155916790773181246004811728047709492034579940430275160681262352462648455540336143361254485555001097130461165126689833063628650245038776551541736378619998456723426649120305270534293708596544699230172263804693712044519801958570337801554153692754945685753835010656764923220207944610328259396209146180598656048985031848590581785733465249895412251649086455802991405160395799408562506889581809220815490928849018119708249895572834885231420934178800008020527492686767041081705165093748163327368588614568471626369421371506858265077327096166865436920211041175420181127584314184170790006901146614689255641806981304516425671317186761949494290179657856798837435491044068431639531811570641508289431545135908539985799634635089725359899879849521293485249136201711033955497445377469019124533474108019523576763414899202476769387439475850275332746941860515135030490941106447426787791707503655774722439838247544544365603145690068226009783016066717171779729015586192807038832484710757334875351350941089941059889806960124256960068453424394622372336019993461284673113261774403985838957145855745132580214744917417992568437999093164763061328063528580824860412488403169728906501972878362588210792361162638376970200413416213796978244372023030548538546719404043662330937384472858950973812237853483322926469777108264277780755004990774332970980451849895325820782840142631611665205887974911369144683565930395711121549339904556509649381380636959982852962683406526072875333347177098354150306453832410428409278637255487505018651651504085597471095773263354469365615947366404931108185414890418006352250091586090231518527468272031381054760526628956253921653545285740108309718205222669797302853344321849639372332413945065488114544605051492831196462720981885018016463012460672576317614863415330156726562110245926281817776003533721839417882409270716262084807143794699756208345871425299814106218498851656277335607917210904176842001315334714369506557872287203977788149794035300078058521392143581774967511295120795787625489468739669147097579736102935952147224455572671923934232844217364713761352365713714427720218100429270258551376555703055865246218640223733635465192237427764900901198333757543385012016438594971188027768541101346262524935102079513814289842495726763099690103703476307162899080816902467714167191126110021254701469228238595198493308584179608771184473163556200004762333198166824787690582706016779697089070012291513050767967071413689751407538639998537635472366329146016409311610381862204027415996493467033769765331550190199492053972068548712879872000854271454617163424726592660909265350280273285422239464620852239516045298794989584693906933829006839045771436677271864410580426961612174780375210778040886458829162702140355676876031403144066061683444814917143762324540304649751805330581943018710274400586597146961125941420671581514054924840161111325216753656367305898138624247925810555891761281251886995859494094632233009346705099754237514238610468671167590018595847078134448853882298012170834145269797909276459748273708329055740370945495726329494440869177108976729643044935522746069522725966322781864989176158325070801204253171728902355431818921932806101265313398559470827527860082313838979571674630652306498071809687764949477548695663697543782312185407231475502028755524281695220772929293690119079034842354639076093909293734266541871121838550445845569130570495650349053811062283695833769003983080152835060421198855749646267004016479123369288343324429885168374513582464378574077019264977249677716422840103585000168395653642088752796917086336071210202619740261747649004907457166272027961154481091484758951879464896100894068845719430367995215516371212832279040950791084157339568282399203390560669851212553833786963379127987358777841692648891289698498143317842635312716358284318390017773820530766652899094752161751765563772181917079430918181963521180183654926848062424191946030497189543270875459535779262112297845604007231234522593024487781944627171940286217706888421333248722022290068193483131852950595724217112945244596547335097070915665233832193295672961618171740772579209866102670706802652930982741643158437330495958662767201457139776471161701902160721284400382162017192926358987718973235502734531772970551972615828563008967432625187180121237974199351609071362393505586753707902752798982674122427102308639178164643887584007118801642617930057896200051978911989638435700595225899923879054527857707990333942120286169081563943859642636701735002406734430237753185033075850097613291476356898526761605088983352720663522626428933835310540557365555423253948239732861555852461984768538365518596718806843120006297690822776335868284422353423368305223584501897841364228671874189543255381086962900147765101207655389897566688683976493554500239315230521038589914283135098158426832200164062321758908753372903610889334364447886975858202666452002081465585889450001729433389129649385727649675597478285158977264682951429381227479336302109364931873672112314687320713753104041732065296837788098566164716841641954959723341434737613456697990490971149743858776365825367566851526736595625967334167108233079596946159114377721091178452832875957504477033596435172305283226650647249025163887514094627751876589547223101246896348978361932883138844802702905527925442941141138465698469623134905665972255956966964528092212583135925566952603686471981121605948771354828973812193977743088452301175568297908475004674336024597272616771547800710972957029395842969122343025195458689251297553796672730624105416995236373476556636429356727248256722259230306277202630149001056344566109714438597899098250149026249210055701898152560284811688582481979141384629986321775987648705372521460419139981011839654608106515139790502409368674986462024485409448951416554116828336083248635540393716002344478560058518119867154395242330295887808365259070829813697761986839601157678538716978003227316886649382813419894789076809563902126562632039444065207924621178508984488782313766324117453071450065354054360335452097277074598590560920724425172179535215184555415943602897209299193556386852795311434425616354114640889552078325191934130171267695265777733620790798119238987134010785650824468289879478895343898837785834647049816671851672455023528526850526398275723880692072648851466306804413282445603375881943230504075904252852295304080032082944889346701888978654629016541534587706619973644207671875054850985467302407248631000620458182112282264792280123928833513176544719647850013318681305227544666848352883079363085977439475288238504675732216103029547817025393685065201657987708192877286573291335438151364483736539118018240419779254724150426638573487385136983186973276171403751282128371981894247105489376505077509061169979698336304033870826857108549455095585310298158701417461320886960937086446054127417134899205291662603651210448716651032223378908651004134347237875659371859652738367144943819638115238981310948766581615526700634290874422600513300104220782706211487719568088446591085139654141902004820078234374420268501562040871033942561745625435342395229553013957547118425102401136026888207899624159996263455623353351832088792505477383942374511951156291830532384642646725059501468140806673375257612717067607287228967074039693983952833618391460873114628921116494194398456939905364186590583697406338842815608693557144128323934006355308682896483350610599641025926577371814731238229551273758087750022525650718373587651454808571778784583531065383380151898302337245624468435445280522719551314801194471091836563503942555703821866742541892493888699000741043068060373097342379594599386994117327129100166559472128082195318476454236092110006960565275396875878999147262519828071233928968070061239582940184709198038653051189919190709834087155444894265871624424279840088356958348378412084349483755871360835765968636033347300584293896462090295438312205215115126086311765463773780058617338949393523181324558184430996887760050085640718710638377178982966580974502959961128799226070227069459389085306176793291846041300730742082406133093347183078097437587467138175354100348380766585046459633462245638831694712489951975573884041236170197413840520757307234528659214483387590583170717652153185841277908309044470089533225756563609726107429426687706786389127987669283993348691899259783541376156391548322176862999664390357344751634594709689755350249148259721157594924303857132350727838219119047846879176847340297147504069620259723932324434031774672701917525765531099035307907242740380471841371350861941336938862113365706436445420545716808742286843449568205874708500120551708150440409278855620288110991647621593791820253381981896953645645910942917229502405289161333197385915361552981379923081130213501642073496425681484138904086142008409010719860200918096227532173637605996614963905122035402202148341219657086234463018227457386678772792320111276741967561289383991864716010604360985665904823760655835701293607514919962403688532913075284406874262825495187068186507379681492928894370677211088512857607649784732657920758319581460280643328846997606417875583633973975034919252307680970418075871028371307218143731320198801020465415618677233462293629054768848223680771126461624832205572029594741497335371553302527349863862888945710335393915797787824821435224284204744941652041551145620794745876084418450529579117391188138207890986200457268869873110267951796500013092735602264877379370990530249385453831021988244033346646098120434436363578077140565461102437085760802513542951777145256879197427079872343238255107876793877770548487506821695745079284250319455965166450259394065159984322080055888712451645486278982279077298556930361057345118703670679566005309464713531907820602844337866548342317572915696803968718064315004735073707935318648019912164639655998899233558096887890870456624799866781598627697013753207313606832121931368844847992360939601678546638338990850654179536494021397387177775017158402477927799411268611280987309389920250723679473852975389661837068258342292063280443843488722633298895449704532138879440843492605191654760124399617967022225983455423384699828083468361696276737894302610865347992445910213101891566288380970011454820096791514018601623381036341109575536458071976474880295288184948925388254852796034836455127597966685177790054768501206636076466637685315412181787471514394222954203403468508730822772766070106134960148502665641881691290299620737097457511169302539293771911727287090190171674953038242395782345385052438872202388700204991457756222274813520071970977218535247531004470526631551176331120494501290571478893822248755710275720651581053047170267286758384978845538668031779006836665634488056015748359318525620477469512436932832178773195287598386160518422642402561530973992809932319534707198876797009496545997131904173423290324249920171594185043309541505916884779390617967482697415367647192238230661076916751370407849054393664827798515693272451215931439348119329602728549686516953205603425986038553436922884172277759492257147536210119868811738196752199640889752889439538363944598673908752513850395971168774324015027853787073499659280630883214321297938416391840066929262589881266692817335403056017470074439970125071094348208959634813545155275520034591300758149008285062906413780184110543660425637239886904163144025335257398811956301139312609987709038043136302986857455492243110277095102744301193867953426843095665157541527779856902939955730817173437624863383928817545421672224958980154351053851421575288889435062290746663141251493484692924461873194272519387024333533938971900642173280462403562260574856761805150892203660254081415245931551842858562610666808240144453917798642197466243259562649918459325069422654582336069333931549544136318839206133005955131104072092799472174135829415131959732286276132115936012211859279429552755075110256285859479978941004130015193087156231895246028183907331804588899056278495971800805897834318069143308080775744253532580426353126162112291294710063580010087080839927823316853655016382419148586079400226824654136116486871674488132108310963169358272172288503261700743221487085191581969094976952420034650699490495639103346054196015837986121368928660282407283620401189935662422506648270621589018347508119372016209811681122321367946622399266842771304802013480059571789730938890897187283723066772289303684769527406722439210436419233254887193401702965027934260107029857272215906908155873911278013487961413207844943959726687686509553813187126606471820051733737454755629802568363108647181363822526064149106893099248231118101140484192029698759577035945571205674014226214023691508684406845694155933786179360723487768063627825932993003590517804125309621462607934274146289202183622309571533198422355285418026781928957512833816370436958215462860976086850796687695703914393416308506147663097015623759506211875561350854460479939639424925512500853637496484835467269794556176230493210107556150276751958854838726978000122104614661493648470463986078831693380519794375783819857697349878524429976574453886648501046476538469704943631409267289122191843822235188561659339746379830855924413996339102615821853841669780359497173760070199819553409779434952805122697651974143865692548592537223527866107831685165434393043580462259698763745768235298126554519668969599551111725849196548186143874926832641708817684761993018674988510758865401514965264949119819106703609739279818376730255572217516467981092820129784161369219882758675932303663680605334286457878380675344177138731624572504229039232982599353813727841945168340450555211201209921821442884597148337440019790375530996728611955651572695303963777235989407789024753476279627832173733330302086690069253087724917616454086780107707395123202846580757636628611340792176625086580623664594805301686285367817907546952244131013458373282380805639067437339525259269145034127615491056328655416350003339585023287908401284382501260696949444018955867893931429881099518058899278777300166024126904381910003795138476173450283363018657081652297395065394306112847745169004655263916406498048237917456327858710751357884745456054052390718736497191846229114768661006987088359840330981082503453717554540370807962475060114006454822958030194692181369449056933829859183016406662520018448500373187462325057220307122289158343708374693554827194466536857021909498273357278349341675421321619477663257393221008854978924792196997348734808081817467991978345158320888451827804333863547589296480769283206292284446931022100303285383384886898419148389783417111522723767585946929079076947931008189252763908372987717113030877984921236086062832325096810021563345649386739785011863804557431246901603617609036375082347849401707215018262511406676060024398784611287836937771323659424358558682461596646722148036014077927613981225669495280122058666016211186575939066315212985321656488213275029552800399617708015122033723851199041863999936193661054309851955442707933238515817441730965990146952299397605362754162395787156190840448222217982414710470511502498941473748007233833931596542402050697816697498092831837594817997611111665325836248739154430301653746558451735653554005109106015733924083076450164065136344582419792208837126381713253721280342987012491341449431529775779817392493225509059827583966091709583190540124171078788322945983166444758916889904052709949738712192916763357953643402717411392919971542167899842525530127759862199164777421371604407753490393006453992096961627997936165590046462294435537529516302811990848295294158980135363826271118657226050148263842317037671922746524022789533632557402307940277668575899346629041776147033273418017745644423108444204770657583585347384134970919122354628044874778607240503915506752886920416305602055655641167317656987179673441352708115323604648158540794179988978105670216243467203198531047928827321368753224949938812069580358890988586512896169842266747069460335562733234757863397118326529253622719838449258714768255475063584397577361582353478524851041175739375465968564004888039157784178763586329595906808734278700567324824652033932515030189831978616943179229886188195155732728282231009629239951290137866074829053391911359213295641967446185140599571265849876928382279881225365330459179515566397538022356663282869310647422838226529116845183701505149498919242234342945480209721862031773722888269043949490066891668162994405095372543085753132225048017046280995482949473757775347417155520208352191848893768914289280842023476539882455709633331228170393588246813105226419424927171164293329191524305262604083247763422297123714377881907258397973849840875706968163645416074021803825701052932541300698497959287406383618974830297469495469444626209793828925165028500617312403771246033621061372850431343070098789944946174570846129994066208581936801342102222974275908479507909202917443101528395121765720100754469827368017557755699601209647118969063454019144717041647268402063557608211075443552013779749037745674209458391867588503840114012824388048569939232956723844185535871966324608230299479758560487475923067622835760195939758481686066936844918330446453011420304276232681315191088854161898748364022780966757452285446581172004430354130754479525347925119199689380724961819842216881562006776473229012140577048627246553645224485926160340793038864182663281840734460352214178062233787213725843704175016288669075001019476218755735931048360412954322590746649808179266867096084729264338830864287215581856009940287776785626034779768715897717127232729725479181455145272432118697430876995822212238001375311546930168542291794861251877563212356473223372024456324555276929476040134304239462868078132669405513688074011895371508641768282886028289957295349688620329495449699240606399255326582731910568142796914017135544306782283527556295153382918358802411866763738714349355696557885524718718071610828757460732379505289779150296177152580189648093166526870490488494941170709171621145292583293313425213177401572308084490019244337589158804405543521330004642395485884805953345334577571439946105315194146099804383560962607375134324209061595831382619959335340128309240657772448434804679344432758883144469282510740847602060651724429323221284436516814498132456348016430999523643832882825918124659256201453385697322348969661484741175654920950258036518466336243789364209744493619488970842311518547744170155752109696591740706580584438382089827983967220005269982186366564005108061132983598483069990032056475640415201828724765168558340798040530980774208651146548678774737830568588898940496003680933430270798655705665530254633750473472754918728274527173423098873785027568305317040572477310449459131718035771579235840257430586324246738008415055211384763468242676824314569551317218208366309134084629881096459643182418507883419335099695125252303881269934998043302487477389718105244857862604411875240299316161883392952917790159206011552424068320818149370401048998406279489576243537460323615926914519104461119367870801321270338411952469902070143137341192255147465952341948361713650184446382693723502669639156850264057130136094011215104727602750343484586167559226219784103515246929889712366617026317064565483110024180211159806829062189505414122734708044524464667819095697885203540346133474966440210334871336723200369920207004186503921815135295208825651332325792689148326844784091026644226760881751351826113901946482738348208532754823579073578462213350755476317841429022908886050011481145829390199362364238953225202902149064024368715805093003751422576744307432899697606089939465264464000829572601081318534013395840720662735456576252183274581609096853615443286644853395912380723137517409125049938776536808033562214398046238300472493831197914404706814747255301574113774222164783037038642514035091244481885032130494867969725519773606025320213254771048714185848677393988518149734448184688674146352288189618767459671214533479124407703979880532985795315250644751951819860556613422748590742441249488188870365842599959328957910198497590648715444469811446860696311186695156705680895831221238139202789963821264136180852445464718167768924840739081608840198385624567541694645864178424458999930265622430114495689492209937713741270925495291991024467475785532431436448197309564453684110117963100383866648242594659933334740960522045193096110255180102740410425477906784211798165289775995701973506192673573736281231681678225606300910357392548136837635666176112214927610077133968584543420320554342666716413486879565498006350973557425990675271234522590243890770568376581336409806498766921324008736591052510618608105947532627819234769327002725889059772066527070995574403972678792788171808272589501186484677235093413450566499209131999622366847929672298990569691400374989490544754556646351124946664398962817361891309436581226227478310602536117799769793168599256718704493408348576204490742904443572030312552477552936823773733457973572641475890834989841920530609545657042828835738430703091894227352961372090853147549009589836337466863854383312965269197263844493237151444242278449182527496964496785243462956196182491895053706038503787283474690422423597081954857615564857005199727085147786349126042305033308213255444622995899948434428006847886085514756120406014070144488439092214513443623179000234913401427927007073172671038299192817975633643605513689915197381609232413689640859892173683033385988280342705193567337850235677811670847197377886480197470572330611866743500270771572477156015927927545218760170766667651129923816610920950517930080925865453208505229121895714424207944460160008498735265083029160979147365746037225369023298651272992231780177176137202918972497275081665719584363049375357647247835167196224938836438426070542592035018505027407391007882975967698609543818502308162342717441280456247667078093555067567540678541497824986837351541343406113306432694656138835238009187774601971516609728569658047856266297334045749829923770563903690506801201907602395803606478067696038698103468961879161325359106614197092266099359923720241996367217015492717510817513246913186153034154870583158271623997849377292065731814639386720129485987772757034669104004749017624749787837399607762139516544420827061763330732710513839902629730918337982432826572355826010051664525143219325585701219908567765751636316446702160795390367281808196375624865425516137032864273744725659574537815552023530109280020374357209598365005314465368553437862402207293030164331982384856784319195026409267292379203215355305381269301100958268636132051006355117756975585466353692258854639101573561739673393643562384140205799670660355785706792572380580724061639850367443506937222318613841332721208621121907928360181898104188571508576192406084398292819965499073981935416253010457530961401138284869353959601021696781223384562793201568459608859796774492769351511307988593573889701366359404315161815114747904474052682430701448678236571797574597719024255458206729082774434985319665300729006090894478073071208773456224723648548007127789252339598857613081035738332922862159042277142247848681672293537977666589796778017654502428584000808607068545681111615739233661857494404207888881556832478251279401292781627630149081693994670171802343592216612871568564372147325766731969642614168343982138365224153850080828297342147131567205004796044277482581750634389579540444481613613798833787585604961085845000530558333728826647483333620383339139314158590645931338696949525956074797615977797465595062523570541314182494748328915394485613204036451783868523959832222816888755188673720527480882861928538172003783710894196876713992369326837864808980325964030402325737114584310934725597232980992375999722835284206253227308870700590063954302340012190383290332036402227233951725090275499352697613663079636778662534280667226679516322168102800193555386728802592981517890850893917189724232526862670405962789096105132066232738715518548869613799484900809336136767189881503583733115308165198105221543588835082565780510255719938056338668823619841002486811510592190553145123253009917443705900092550697410629666289494917975130117925353299975628658404462343200841065912111642850843255080817816198656738888013749626817816358945238348810697445349586194670986837209222793416207244903231814567948862491499962927463350572530370508336142450844957484340212815679140602557177899506353706917529871585904994266562260042259007648844020082268709138631627053064469173315128146827213014475651111639793560867731629256488170351279338504686418136140682469986639582868030023967956720818517905480637342994399002139273364933714566102308736118485187385388904197250368589070470370285766489587421213004669384280017026275817516935302311232051959837047660804253165026066245136355335500333255240799679209287270021477289144595600149399184474280564516892994083653636341142361053797655451193022581901246031622616413113304946697515704377375063634898273413801340433077367732936962127192766665995258064603553387902623548460281672819325664599819444474731588737100351727971598848784237856227304183147386316905460308678713634949080494859524950157718433939760644291035869542885456523996738011342485844661868479592286938471594091515225531039536725318932134009913670146775058119407654208304110946879774960041372365516539407580869553706651726705909860590036572285116485306621009318828560989355249598213297550533964162432689282302101132228026503465618438849334998116988065606636687789744750260953705711909897863658470609120206337755183610791231377721336031964107191141065126005375242304116481177784369459817884831345706068873786813988416852993800649325716357744325913210219301880707429953426257444943653918243523835027926718501684617364421140816301648591657928235919335564101765974978601744384034359262104091091867711938027206943303310209688785894063626242137934752820735090052265876982882663637140143853035496480318084236609024304729250184702441970401553391500738516215125163829690297353114370775875646354666905530672159908005248054122540694592165643655808533267265154825564073045540181756703180998220701805380425926576454723767630012617728322212214545375994538568032390047650016172797469793815382284850119990497835196339826137816720339529314756471273638187096078785596963655185022766096971898603684360256437461947196231413399686129404037072131927041125940671154800628534452617977102423012967133800980037545385396000948751290751426518882812260390143016678882111881520408557601249880500407628463957375329413465578280330047118963433676312101955612456149383389288398178039461201172556403190889123855022363253365780173256783879684865992760355693760739061518985763892933167441363435653595938667763055098513555306456254329912120929364553073428869271827387070108492444092765174114756598210118859742747537904451720828353968415591642961081325192409326085584190671244807835794138305900557673853443623560732119134645603066142965063952384142738074900272665311334598720406789528761365795370606649457599287562625831631751806627071064326472783537468716529549815693131400064072696345277040457064281743796317625680113114907727165973378861629420706539853447368150784160340490974223806902137101850233476178373341853982108249434412802973895156131254710687202622478372196586864932786272758340909786178972433536803009355715196229041701913989995120534787544142272115739082632366283206806464679604148674837839350300053242647897884576996422909548773791648203414461287883291610575336612556936441061067919842212449589610261217717715284277351223311341981646768029336097166061138019012425620807218629946002012728458011493590634795186138517609532060108892365847410905593124083624243409791185174681313151797866410908239188681886021808399255816727408603897384483593850196756566840284484628872425401373406990525190867328463391965858385442411201419812144805194173014241006145115477685040255383509063384848190995356604560482468534322705139706119071718189760785927521550234683533080841614591202725891095993705959368474541417746469523676248050075018863069285909420674177220949396355969677639610654362414252009001023087601150457393404349215403429099423062318391488944501662886620541893338692504321640273729497847947433982524786845066091703151523128788111207791104780839726051601785600068509333037427824462005140076153364619588786064624563751212864631095363427132329732370165335044114431645233299489680546169485307076340089107802696190349551083967336623423900413913029098020924307507000150505841650163001350036250899025505276175457176107737157751380048469445880059265082167200224406367033076744713109754352027627255802277792320714018633141910880887019894139924141311640970952398427921484631333889810628963669609580361240401497159830532507840547655403031957912451383701306666184520668157655709790733582648424670299183411850241843636495835399857948532138060342579730362579744655876150411294611159460489352289637513965965067220500574422199612704708274733154586207569587949000001558831563800560220560008731260780962326742184592403388263955414654915753319817481517452703714931018618305677925600991813962337711546889488408261828735828897587943486876071387657845242099526711703192595691484405561417002496356306445671052798740888424902427101085043462609538534592455745088269173605330567275658574465822731185223245442584908755791068523290417303814417687352810573190477371251003650869090618635284975897587811289303015595106369623302651170016868098743260921048490912310826479156748555211196371349258046279286660349776198791266821895044947003262316245131062970983188381354088091660040621058247435515880853414882879521903414370251447202004372837482744803465841472518056431463255352169085917800414408666817573006841123581276029528995961068021925655282551838302694640629545502450842684648239658549375981214986168156736581712206250916364465419052327611773433808017980805320155053324188840331017305683182532796647151044613040330105552366448428608328160425342624453041230638355238820039661325767013140177431606646316267370104521516362440249447504241433205072704939996020785980387449505400090077076998633972311646672388193245373132443981283589432270691810757539545924411187883952583051832611960113496375764584368560612063905190979156079696298061587606289618202613100855689087783455024026872846604713930659734842653253076667200253565287002367292191878036368288630729861638695963533307453697126934101025654035870261136129143920881602579385172874238659339305841747701766886135045140727762919526413073082216219829498623706717381915337225629000567967163268229587463175830634617735296511154078960266808510972083312379974006567560709154689967376840597013763122631242004994308801120743101233209346749578793678321802729505706174750655104014577576083412903132743454247689227185375018574063619717504041630363346695909082192154016293618708111915917554859266358335551140127585620566059057551842386022211585556324301995626279756789231796725475575803021518397821377426720692775689912629148429909606438960914402028611737075418504707571475733837194651955717716326812435559427006527201092608563104199701929435452012229538091336187387510849989562287096847423324576615331083878275165690043580004185944417597590270181122826531193017956883639488067091848626400100119332080675131310059626072617026578619405447455663106956329740159948775090694626668991689570019518965461384658511778738192358701950346145222385052349723690792630309505786898727126580309932007480472070895859356966836966494313985779931364109015167638146722515041980242338248501881244824498534082505952088432588760517367516734049204723602363490723019916531035653941824533939356967012081767175972996386038864324034470887260336931636118020412648542447192564315738593434684060076426866894482319931596347750050883225068936631082992635135453151581254238461440930694392152115278861180411259913159943891969637368371120884267304853415059619368013012086756909598960185262244859914944253647374149591967192370472937994136854392501165266168537574589679628056680710616627722820567616988764073172970429660843610323862810973109594859998872531726265406568037065640383374069098594411905894730245887705263088821359912856062841364141232718352336123247639550077311368128321525836568710223322738287095090693300135107635460862981159986828490574840929087585087848661755035771494533764815912540306085788173477831414043770787092934505190304524498287632127380170066415889347219755153896407268030687289347971577717793503246592656653156466825321638670695471424651671401635672130131258184786509000153545974833359773773730081231413879166011497145983185513317462075435589632841565375745841138582789653049842968033853855413500680341546009361093739510343624187193012796259045353145247955385743203254180210488726115955548298715186546288574296173433377391991480728348823259562437234987645896473808542935698263781142459916797827243057253328638641365154044599745837066081981098480679880648523291546041750737169109344578715185779740908221308551218324466004795748035397038689414725714563706265128637375868672077574342891758298982858196098759977663930441600124101013485567997140959466201685420472960830244656728610665788205786841419850288742615428729321222574164812144357717010019454932769591139471372485182647132452237610198613473847540177618565214575648314207569299626345888595623449440548978804666266063977027425673792177251111897973200460388887463517684127484073907841832851689676861260482994236359996947513486167577850354355264053252975667499120309086077971984527457212785119623513975162304269245220347176208531127666608662179979952366757705204256897051119510168976933431918057916888458105696758535020245695016005636509543660464272137070758563271316793776640095837421764811863756852168472071946240999544163246242082307270387029498970362835399785359746791737859969816981293328581904054197740637115978385078855982007235824991485475591787865060421897578900858284834551954455816657793875823834843132449329075589904228036186443446614681563575035708686483464849418965026585326278847092480877573524350860871922650922727071572875317352559658115586070625862328169206311326107077767038056092183953329804647286154650973535778291797955216614929221641501089970961204051466529290426460584928088131926617622043145328085263912207976076627819716174162635757936410655145210395519406495893482657733602205472272936192481118588063086966430255441305283381062285566949719765742829674229195911612558669902083606050327913150569091782822921058466122766109451603482941547373050502183487845416880636922718880276277884400290945393777704438734173460471380537203185011120999754414471178595791783048741915517399627672714533112303268452760198629911765084831962297829597143038497608260454625186237629797873615061628640375599345729178935392651952723359763785384604158782968230739263093218527568940396370058565936648388335338650825055455127669153400808271571679495391996722242603354394363474386287803638053078481827454935357583379948094630763729878997356230547158231070094629636205791720601344602767747831863360299775186363491990620771934035596885802281517150452207075815571999120622946848256887519066732435756845862072411609902423301182412594627851679570548469266415778904384484332559458266941936140973331882369428306789273260483055924774432133913957256810988847895673400807432791665715995612410520410769600457569762590043996757657013445798741877980889136976324357613100163082491287916248325210933231181914274669724857338645076735668681053372910358798908302842145208358244961193112326852826046337024271178785964160301901130768667249948512193968020363114382174785514520040210846565086961463710705083107476742947853495598020509304208832442432460279097158856987636775114700567384803678614511692670736163561342490167683206474920214464478804331510835251617333413373763475053378263746668643715689111587924348837552007951472384647784623129136506372325899778709056626501887682768478293150661178466768981277585173090551554823943337520604048724098254288289244045140607517183823007445786883329715979232208126156557845911473831066819541323625734051298685181421131106400904320270530257173801729559212389514422950969374005854060920234726655218259965267539050196771109305946873625953367466825755335926887960062755773216136607411267683147951089967498611471556179752314529471188843032542722695180003685257969053133586345731689156227635864063271818400488246787343642319153224291820533227948737342613063802037286894051829807397084118089965568066355115838880123907243037856590719948690785087685726250446219646778771158253580837962029754318215628197896008323324560251123291276671327352408962173898589628925768190946425208726163963420432446197995836255086491399627732690974296801295748001075198321245656000863030172171297752408577825876078950689856662256477871038999315127813500999550766369906985526138131728510082822748439406675265317213837069722417183054623408394560772818098023087984096054265857962656216963573201011592258392491049327593269788510774964350264221035655009937053138268814531228159285126693644763817234910496482008515399400498637400182359099574274635199182026133104480963186120489507807077643074236993927143914133142165250038678940178295350738241167507108716977819151380497674387284812816056206225306766002177968645104271414756708100989507462375395191395246994800969998513066056609207271500394057763534448130891166741636304817691160698989885372148759306165558431102050539627093488419337880780871730273731941545558009948159389377998618740841030651802185378560839562115084933602807773332102210592276025124715399794928300766423299543818224673014401361203328127293704317814379166033411313618157116386648481810371999956318011293682074476277892185852569777289463469195624428539786196255378987588198781908016483384789834435442547761812537477427338921662213290362342860639578440286486040543493942313701821214468121232947787178299914132955910827098021392166349756685147170649044546450421774176008965571344020298409963690066947323958519848425592057607410947516111033008080464848272540685091794722949977695908964701325068552305337813482278056453627894136980882625430816954402607627774233867840627722660760755572018395518629675356432878626878398856664289771476667558529461866482102443455096639778439014114526101945317447614546060591568055592835059729121140085857134971487448623721001830510344695686622595511821439946602391065037037371272317348484298795095424892938957049802994646545328060318216476668321361096948495429921732518202052274346372030391635777791514112124305534325270640180223795104681785924124962233991795408097011222302382225505480269462163910455581039239684859279691786904415443412283048657140668010174709072674956856880472194216206882457315712221792512569774618226691959668309238094316580594599427335576858541690884369995039452662124427810870647411759129828782234001879775053057605516105307671980300899000880269713596925499767247312425349704614879463725025596526832496493854818879377195001803527935505459123507241717854984283260536434561566165797526036805914169701301075564826889069327601364538305651587626459786212596655160257519087875065031222721212002865513046459161331901188875779195106744817375782589546340496301153898211971576147483009539537466967418419030340231991166825922092573713312702557769112405489729787520536085095749150893533274223510057919665962698136999235264021913715687910156315928139295356179082325401890337614768846015746358719451600849837009758648813105035959540507351226709399634061914664219159675742210891513315746064594817406926343081359704223112374135291877917049295311079107332636763899169336580862775728871470916733526545583178255177482546541036506967601877796529078512687178883648505713053809659182355120443755341761118704863636417524439788935414513701281860855577404299209944066301315861579659475953116653412379237334703875468704360487635033163651956504763199722435527922244224239161211678909166710396444768004982518682146621570891771042134402789953206520948593173246923108099696315269147482952829813380944135095595977896771823184676032496335618048983925589990771837348953817426257699747471334469133413537848635477026837009848581525765473348940771434107104618228112617487084850806711781189547164865403186936592977897170646946966293874579337055759521062317026754382094862216359832236003030181014093628115994926353256389722922269992374608983104840511458990996799105249556616023951542870169206986143578228377447783331541719286007392079773300982921228898701745521825293280543035526454438330645114259923795498641173789722239680627205159243627797849189080337216815300649400838752216893891560959078255384998846309287265295564199002098475897666550074840573001269384090626439321211488888865552744527217289498015672878502881550518074757151196401214121553978639263033908097903928127034690671155653455096319064803927949420772208820582695162210154608761384587707014642316282040602849272417622773238277395999286245915694994568656679155059451171022294161004668515008017987334965831484050614183503991120782603232580763260160761094353820706039217600130924495428069689427502276594451145884273820823087476543612295085737560589555099495527258494168274554508942621655060219231574865188220507144346604258874673195283948675092294636224347615280927744351659695625857396870896552103862856602991767655825391240673268969543575442911860912184471082432685004198447964976303990753889670243596154707257314691361018660469469323909528317732148777817168909103630958351955920615689090703518702168329899287340151595742272469712763765262572668651932372765288113706406660160873822053125417139781093470962455321031675625933591671280628909356708126154965285087584257387537866900575858536330514179605133278829258031368874921444273908474370960107568193934692537823482289002291729735619146434352863204923519669944911057307772457207511344392459073607985738852971659999987683616335031127888225178345774608420018565599944380751961990809855753734641703461751880286077654545149434145583995723458185216376793580217137536746254758905679345649200418579272746156029828566093227275147097114300098433428614441936150636445021546911323834286811655334091980224225136846537242171118147256769928648465511873746355621350892417934825587101005946782768186443309799818400084058042778802081821124572214497581653290431699465779870205012866416083283838228937246273812636751573154525960841434533851286374193575245920216129782784202623253980941082315912929023601107848219760093919277243308294174704117039907129759211763057768051940287525988446984941113407151976205495473484617676337448628717071189877531829858535727335721910923461313076866369266403214692987727420029070332688748581050130637552834443341077984628888107868771463180015196395201517720239153971901227439791454312211108543946312148709110130714046934755970049988355935762114068380096057293592323635928293997685650500603503074540255440740933272520280001067633026589760635454035755621372362880001410755565999744776759080563824692899170555060347677921522133627932440826663816997827079368347809015002744441176487207324184816163819670928438675367681407695070400616983511638805932313607817590317778950046741638320150123029532833390511319019718718711758090035591479304839181837235083637500341497360689923465032985563201796380657875717989931452465217625836996351383839816164260326008889313655804631495369625310205384614130174143823291548551051835390804996926596077813320812361847862491126740653134944913539077740428018990505208540681108896432353166611478259319643378684124388063798941934231596941956677123905907367914805391513825654140722649699573123136626185157154107071965277324272237460903071923092629623166893695698498342578136835262628607581564974250778330960021994486167685647866314193641976436949007707029364554263515198350854151282064095398784282926294907551731875674924744789780226985889245829879903797278685150868619194476135752308856058517960433471068066463289488144554216016779224019007172400434554655493789113916253455826103775290230846337298218622467015326052985199534024188589506692898226170445637786458448253179664251769629626411460079310767981681218872146026007028547911116148982017607624440500929169178305196116258551150872795992794555983476837376386094182751713298667483251951661127249319460606054274024100615415485677829636835752161246834751134223072769219502085494401104307270456005634274124665278060150967029363034845076871117527022106674680286608609068287394464073656410696839468829334887784703644146143056232517067224049265426435732137193801343231998448335595288312666478633766348053751010760264357825334665949057169936702214569291918565857956369377225301832891624598765087299604276284299641112889247811925229538440248293550412145493000168649158802017606947284464816761173013118127268682096493656446982662565374737023377833797501320534113642732245737188723620894394741805607157400271601325684643905206195601461160675321048834644106806133725040700852916463389912927862399279420986418217243446482267367160368511216099198020401540480521660284926326429416129100240848841961048402792021556549689175489869791163517258118558032904705771701295577184911082963931817261526916400780537539333569340856735953159838631184097818469111891374302463044965216556544872329129275194302951968728218668601957504509637153575864605253650303374035120287446593029143028267223498666007222705334001280580509090307683195820633392396188512861538444559766915695811698054064577762870284611818453661612814823030441964526430903928941823610524817543362780387579078769731159703902554645201200551609898265778667861358645989155768509794660842005543223526084933208717584201432322639857008091128497780820825529264188818537174660898386800686743689356590867245233495648450388726037920752037011365839014341007882497205915969480694265640491706594042740338375616813312052613632183552806044757940044198016625156110443931303610281364229497924722223129262587750821340947958736111399133930020696160896488381858341438569727045852803868184142272445663387290028275608842883849153230419032318481664220274113987211398854843534623217486167942695427261373170899746881497024058659293199285921384301275600584558375988497002407221394486931949058787125669629045717422919835846917053373151417077050248491965823482846022084422105076717415616287746674540526376415965427363066727162508441944303302875564098744172848975024194835549587036414820498407145271007103114663419775974623583409665394411543706574307650882953451626727147842149308190241676348904791964763881478027674804630867719517618660888036478500090474215952381133138102790173750102995367707431886845936764706214712987865748588185183268511318919350664983119727320019077858221639125100800013653574231531591724887159319135276269502244253205687797382877502088008413659113800042673572621355579540263275420257971841867306386883366260241683591947894042544253045721256357527064694535851986164922328994849607904725108814559973977746699362177319177215297868262354551251794789672391509928255756170626687501591092534689078283784750937310974375419732044265000790681833623530515522971439727389736168865048385154648826734894620428480273549793572757563001924538709155945245896097852638069285217602300228111852906816020594855883313201464754455956906750766529824235683377263010621158838597564900795176307920679864022024833578950950595961051755423331617913320950213930412530990911079211750949115328706897334216085655248981454156359348001478990587303447158295530500701190746289643265366542191880338596905649499719960365679011805078749996604747407016517117960084712792793909599884917877242760091942348567362641361178055614788105449581233060730751194242371060416325078111386600446800310831317013762770446810459100712434952045052003154457567926232393002924276672697288077177580257542377024929931711945659791119828117186298136702996280945148647831705094867320038213713859674689416675419355158630984913129692313722770332125027827644230658118610122314659278483451458951141696659773311046644979460780658183413028759689551250546488731236210035619960795536101708359516642694981060326327837717830190916139178385082858578435066705876348065745579311966864304421166426911146299199175138959768081928633225744055127194549347334977506481720314712960416576978994411379590140126748224990542790424782053972218023392312988010570203376864176585186729832307450661839825663750190866298756303803316621509351415546274285973569906602396119267296070651755414790237486905978342573526697202629138481035535858693484864090384996320676671198388214263398806392659537333586432615677775516319545984320352878782864098239995325256506713693199282338740488678286904149999965496900482000140101908561019927433023292601122696975677410449197627960191016988429115213061598127699889539728967077660881732611837363562623959616255224550248354740228984655977165548003200092683146291648309608988649554341495082907486127718479995554318427740371218978723547486166508121070251356609326418038812335801300582063381667620473841322593982301208713305486826733370173791028802616805776872733609216251547014789068802133746970080111080020211394296659988771463333399152749098962289248237102976372430773081158325048499171426449499150269708017490649195005629316220515639497337288853232272834101443492391848458966627562327387327023113496601877372781066684901132752378959881878138702589230398139530562734773274844018835333194798483593350725677657197196078297958894419057920659412074544023770884903460971471711926331704452285564867914310727111039760576856068186841165090387529304271290104443356081949972243346460413292169358308020241843545995125183215319002430078032799202594920185716007928813628180479138880897005489732472618667828816984245635790226446951957110481514288940442783414042032981706459872429290146603728639431641652347507648435949611952674365634528854305824275841279892698856277804223914950261530006892913341812854018348270410452393526907247760788069430546428905737656530752080829545158271538122231913841093340007931729453906976554887849358073861226891296179100186857441261431976591856370431433127782602535222377949978174301694951618793664181631959012923586525596513378713217884212104426009143418513057604126064435122229322066749056612404138091476401168367307905210015095469152244944773256250607076223773233577922527316582182372846652916095546776056834176474036965996594703204118382517496940585658830518366099514342431130370023402853303063636601056592262657892321265499062306836315649101039835891772072278453752534846959874991163450639620170980754031238359963396821566186281659938064458036301954608749149035671109208442077982847475773837170122387713805750208832762183273519072408277457481963859122190772172096761307148027682512588819088862268036734496775440516561693937005321671616765836251845028420350009510022374429841296878841636529508061356379333023871513561843526391711974003258248946877008493901665627395858143435229500893754617273984860175940588261272645913667611555499548797725778264041897140893624981204328030154211186555481990012166952866776637071917445689135319369735517724819920140694575248353195990747607759904188335348757222091537254208193675995442600783699693233601390839489925316242260747111834644668966679510228044276394151766791497593222908080789539296566330698380171761696858494198438026294229217467355465799255580752993096271049123526204779415054947723910867992468485207097608013832267768723477976114626179790746694963870438121907448925266472581919938855279461584483057572489496561793198888455643519742161574628411770805734177176947222903954464194685161785042859543596594855974968186738933245158436656711899864986984254764905243185092865292261723366620890863975452482901058501909676808014300771799417874721813634545387466607096152064522019820939405379457454425742704419475851960982164178805029134558235240700852510542458753903884009776716425971224040701477364352594800553960725307222278109310328329106739917970347802646509514015336406061318200181331328788835461914955772372739342653704445434098405825603426632487795727018660973950160601713720658722165098328529962359848985074595297667872714225218022300643597305789243517963650906715428518368550338018238304189826577439141505554012986486490535095844890659883069951882736971174900770858319675395987509442759230883629120938037895709570562706203680450676241659145973135870976889087885596955436138942914712986400055455647592248435812313230419717174330008189404250520956858175775810500809115585182491247982791448855811420208944234849066637851059743324349029025226509133647869592258867492744731979856057227279100739182390804016699655673734603735922258920022012888527670196383019683231898048596251415741829957933520818389743577171490926196411671633471407638907133233281229796810377752722802513948968719581627081787542781621132164155520597736697176030327901315810821630140336375840385061027489911766071270509130829573182909476025952945427923150050180447039779134462700615977813003403543202010959977740819225267832251452428146124052508547159513877941755636621422380103886395198830051270120823357559298592791320223735216362118514261241888365526340469077969354278335181145286721132351698976068585444837606594325246068812101282396874184054491111677326440544406657053211049493913295779374013659891394541160062046075441324748831293084677584144735308757526294710494928481463069356642941637082619614347358032459487188208583024913713229349879349930577449372873478170882565117082211766336252672010348935864907366971759152588390072662733742693313230803915434239301038768895322060515680471971500154454972426540160229498135680910301823827150036646072129534960344100857347393136643610266160734547010422021504556647889143945716004846698915030094786750837484419507356611894599104402213984906124269515366037418970584326706638294736634533898933648015557587842358686227446536210605367065013198640998738349338132204793189685539273709540448238198924907075882095609842990838875774430588570924438390956452936298540156512090679177215136443613850937209141211774886322026725625852336303489078746545239655842244620098984687304910829248944211253222298623855755380250336191882576042679069028272085161531821162493854067373638995619686103158948905510309465405886220199093949735375390091676255069489886391373486409906898230481153596885700210361202717848606659484411194663524738834671034227174150622275760983737160006789871375719604696656581235442971058241483971010410148754344700758525304141578183332981639691923588727139539888237335603785833241372067172034273380892075506194568557979068057860771858653234986941164479726228999564474722186608319168034080942120561627070864962011622767722838400611510095211016006237865278973317613261437220361007320434938545824196567826542995939142048311825451488725765160376262137674397181941724915873516591597633807169887392069575829501271523697592623493074417587616579326355150172233560530242303533345939846048601770483823427930837302137888100466639961919986003203043144782618605203723293381979265104124431523785245150699827373306048799254734908377744366720581867271351178577607397672184146184050413111225644138660187594406731369122528759049003079087242239652339215654157724459508910171439691473696715426541474123359234533147868965152416545553091194768238928579643597239639738980867284827876099275242065994909499275915357549931584659424158724836000400958159269639015440297109972141945231219072936077999938163699555938630101816043844270262129728381950294461283547622424236150306837393862754202141384533983495866285634707139468592186100704732880493409820401029924384626100948508308472695914959262085062492046167852700886395165982952974101885456851908583611212049505462735548872637775094107598952678442656944528717951701484221397432097526493187369746293607958970557025213682067373427424574628346525865427715952969037300444950995079185296629540522699159359536625497190620686140139270721492401936366177273191902108043445729668685399731244110303616728752259092183962497593544984456555702001684002337432140461238323357427249757089691662628035990485630647364235728581943200772628422610019699541823147609629125037138957244687734857807724318238150539795915536043262647845409059499245242247043932177473715337221270034353447919107525172220589420364921401647370319436001330090116309295138286857566766465329842750264281788337678337525254577317909111785299792967474238619599456294340457257569480638345078649523550374428891814126155665911130160275671817249338752481865884668031233726130993441393560067018698201386702624341239864741752565718546527226761145715405134574285273619363286277224170650198484969467408236970640627851651656244920562504887653181637888056044674943989057115204932517226715125602461028445988450430550539985443952268817524014429973935227358630185522182958022434167069547458298002718823540703438706822855704710369065147831994793573211866476458525517934832218154980566444349720717288856584705689993302908981286462173648509354285841599417887900984184462922867428516118384907192380707710002137651215355009322129091075739718173645574890267809694629500717431737497993425935642143622749263173349860039478701777617187246230835707675509330322431236322830078023100634427207210431819119707655219303189606776796316021148852301373454345126319295153688057402296145478047595868732222378920044697414280282846668987994181001554593662732255482471628037282152853711615010466665248546423667497283422305261338564004575397097768561755665972361377707685384337685028038716790213064267723124573243108035821104868690368704745420500547820265977656098221612757894145631361703721210953637728932802993048090507674643188132609057590617604807235125310433765503394228163535478827321826032498665510465310869983759658657515354189137859224531573790512217756808171880013442631655603060485247176396259955103097407160837427895293207577691038585777653131430543521149459695653590619508273901467507846994630077993624212586784483316262006545913724163275102244913693622864661536705784315261743935849761021180425584919947779380148690167215253219412916596176862846238019665335368797866475715235922018901240095555263240781401486915022543807309178041551730658011916200203279882570309912969412860105452157058982906925497254962370224187680310027761286913334693393801776680407817233899393406209368876797933551059214316097201176770287824968825321204874821761173516495020175726257067244099869182108238203641591429674314171376590622394358413533983079018172794441915010205789187683426696565907306399579461598409574531728750305587174503222979847101781056657365063376405887244838077768060253023915254740038790761304107067659092146659174674311423899616455018718127811722218631767282864062777271112511028188508435495983489339437660950162837955763136255846266667422615424456800445442243023126401708681115019323380348006922842481684165525289817669543593714851467837863867638399221119168475479924675656832673192005169077947138691978136569620988894190579684149054713490257940145761383512443882783687524872505060859011841262923985031366893509943754153701172969438717140056994454097380601648322623627718473110832773788808341974175652743814088404995098711927908373068486109717883321541426841602305870350521964364588040031897686442502675360786053401882734743492504909062102358659512128298386830883151556367855552146614913681193708650428819325467347059813950557826650871362558677671610671675933079831658982961604130281366118686243027979156880346994974471771503557224185057589792272181133298695773117930376434744411684844385913547409902307132236439862682420624387682071986708969587287534583542904745468721322150275050251557238890479945544683213310628752836460562488394976148394806564729998316132865748496559121106102043453271367449081843717655894810389164812443938956655454485115274039830445124909563208499133276029923658271979803704196198330079046106131517145826669206951568213906569574400439765824825001897438487140968762883557904209595028256511908864934312608656644030435777741558153210114681757267164073129329090124011630501329076560749870136633808338499806477814255206053104271893642231025612722926073965240334708772646087889944719383326828425477040342294810046387385876449706463461387912631884372892706543751627016459978300011397607781380274826050248507330922980949210826182635966878070183455978914151986186168116762038541279047393946393124867149306916766666447861025710411741473972537555452787685254783046103668026999600927839822648195729035909487537271017426225834147801804413942216105828292409422849022867012007417717196261857895116102211070381947024723173884510823125687393060368953555715673412199938218236859141063799958720507734087044874040145227699571307473196615346709208327240294340950984392792250132324007482503820469029354922302893786386325126565009985163718295752371554762257384070689495130284898429655788739812825391734278703083163602410999125980664899560268597339319394006104501184919955783404930935101342915792079309423051292103198346563839225439132741207742442166053256685402713253768502050025555655592826639738173298950575035056943886154870702925331436632477622353416727853751777734657334586578635622943741125799107623796142196283795332542546650939153928495514906675918897604653400026148951820343922155642890193641773077563631684906556092161104435653631985615883327489867075841024334093078586186211960529039681326236570249030294169223912190810933205284091669340004553155234730205480941145411692273468889725901881715209155671961726519100511875191551453467352650309377850243642556628876438536699607524343934476534554459070352299324012055608407902845948644472705324640541327153218052355209598291968488403102775342088809645331503469307578117529679230936381523652492218503006050903310752798138126456849803684440550363128170482350088327059760568217465358077409143118927001728925977562684358399485306065328714965670963777486991899384264619159914821140682280741615012281252153860460227194383147059962243504452219418949497461064027978252661361928417492012573516716248950562233901373466884710952722887790376076047836713416348529570744166704876367791597517809299224525303460189130050458026087914780862300403675699216907302556902361507355016773228863107903815741894107314260663979179769328381766346076837022546588046287245965242316082355790109424199752518110396879173019888732440959864949809397494585747958743249259558186887813813405522145504580858028873754452999285584399639133873410393844000959280558849535334326192545389014569412489522137855547947619893561800937270388470982768344378865476668950203797832380307425114971862419592100048697762632003678793636198897951201664879298987086506850919032854758888219536638954567909333085336727943108563604048180991057253595056022140312987751326714200789853190722478055580100408718905384531138514857830884412096618162404208856650097881885473550169033937521090067931555071331158436523768448369977921183919502508922937178725768663915701212630480652035874136007981784751605442268507804101266682617359734590206891612960730049932039383213316389299763033075849129187961806889053843756159192093598946959447608482045404597779043800483865668593881547669658295895599260073057336798109608196044862807355546651678841257102323121801869948316102091966640959906943454786454297460857517798897858416747167607356939970322748491274406149963970289858602859170744666074415719278868444312658036267636909501678551687774091740645694059397246535812025652682877374835383430831253681627224215407912232382067574989084393534428831043807270223544889283841893403386614950801074225904833364936276104194677038594371573524444373357392773293449134338317874479310891491230579515468222678314573821552879882049807764346990518439674503485725936874379542371496794760126753823543941046654861189870431823083060300157151657127317042101274288819509805454753799213193599169097365959018489800855649093634354575755783803424953587790792852467511127221545024369625947604178672869762176837368182806100864284588484229242297775710020315952216783552388619384600709021618639276236405010503079014886670245800613348030292938744485774530970586998405017365153249798907915815058330838091862798336677335462503203382549095257856869958683579254973232185380203356879997325122268905056227682711886214583548790277006533772611838396844105530961812216788512439375753703512350312013586371448075254108748434966962417422393162616501366549859648227414854644567849500208161899618291905746993668188485744261744279583694120340514721460062592818208248619254070559374061021484953600229738569519962767360422599938469883154658659124715617945918387447241370976375580695517476912860336739926435598646538711087631295792510027131310578975504432955411431497893433786406261453719891335872029456427996142362502702659881793773334832343968037753617448334374350640069550954925996294130682893595393379228984411313766607930774091863117242811783531175907155816102222905802202507093859139763081333677670962489053125527685064829294403515492131207803230552044474173282265682354537938368782391182122623975673993690185623340673833156118029393808137381408463825455986839793313676441140870139275797213117065753125621257715456530842011496998364102114696903621225094123938210654511600680780732962034280085554500010838701825240082997861416204676050504030230144427665286184782020992340063419884242903336339360236376210809198445128530064611425378549279798997366467721451089271664233496912210513679362579409489169216187456564652755238236708686768165865721540312061005350966549925651008538519337522799821258526920012644194200369017922493378870490297687297180575556621607414878862910798190652821449104475625333528038199183227762089145607064069787070344166522792034974675368841150663397457794438136379349325072709379786890062269329436629224018641733930654456301263002840974579741172681036457161823575598561692348571808108228836128242762247948799010441147456702504601137426317894860934408007827299894042706904863263536039248777778632246548193367138384493421488037434923542454237051509476361784880127843486073485978731019744085817218803680238770757598964667842771116431857006145004156229247217973069117179736274858226451388628680323452141191268118697939368263473490410055541963891754227589633610909673170190147556596556253894245821344275398519807607716422983642211821480554962442546744607929677023459435965331313918094835485896714377611472012387654473131458010248684896686743133066874373400852423161415930630286561262529833136202930416477853436041398468030056228419030076878010221852890735181425206305055039794879874305279223820465202558829775353649995902475870833251310352140513973581006136599815965845923607229318220331655355732038963495636822220411542950949023866252453326028582468578329502303695810348568635167241117666068055559438777355643093521123101715908318901877851570904352663429177852255066828858348509729611802950507951421687417082918973508526599399542117325036198213104499802319668668389803555561418146640354637146052938292376464815865512963482974697761241549115676116117690595987368859221917135519167589767279646480894807771991431669673774395116567660352725773121677525613435909666690051106003720502555451856187237675531304856931187467049364435325648195412773144345876689704653842860309545003984583247001973003980477764327131544710454789502119086285100794003921324341072540053936630308989870908574889767792835482474193677094245256928227028343135528026990818145413171647933866481306044261909633976123794475966211057931528546517663835027164799856500375504704905248124292607363774148868975807453192367504842292226894556876195113094340121847938414930357881852119472414457733453075903919621502583885571715195742683013428341052207724476886320589191733264624007213908181654417038598951328668322435905097626369565288985011712690555659085099001775662934334219441812222265542700059103646792363178459999868162782668938482464809922764879350526413324233164225774683728472086346789911257661626224608369578218792396047156296787746339671949045654064689819549995185038454152395806849594677506999938835233114007708884024390129218856127486403418758895530407429929473074886595750179448618537419423119913340056284790479354627508670433940207987018100246026423026845957094781461521470039117596854434642806857822155877029288407100652541681210261922276522993311118686202266213430207694806714994214696978907308210037066207483468918452159276366029105217712652957572626338246605924683292375339552278994941366447949562722809489776031783423784805089245770152146818851945532005367426001886732249526267431905488962318932255155976427982392142828951184586500037004028208328458738633212047604588461895309511632974527506974849705373571141636517660607165457893724960819208919848350965317041786906688851372862735914936603675031407834685592524010088125059281318384239090004477984150663981909139365894379793980750947518001417484740423143043591874592501710393937873433134062097898238817351369929026119411845540935626372863326617363630529418467266847921041993740013533882826309299673887857068050785738614710905312092698854660033981890494389395677479407536820025307074563843286419906775234341625961416589987729364709720599132829985621665949314143077258853568140407805812823284878061391208673253940154918686472359621236281774944196729640263775691888902197307819596089701222942227617086606716473684090824669461225746388040195315421327669514155329705367017799773944228170065431108103350362532035702527626790871786209160387881358053828814186106966108512380946749042344906339714839115156070839985201247138128098262213419515718423020895968498389180231508407614499725461046955284077499258109867602116734763491570697153952349471576438679531493624383919407569144187343597585579275853769265043022165604224974168528216418418622924804744999105367105491976534521706482428569079764664998599456990585376077335014998488627752701959847849065208898823103767815080933830399079604535877831822008405337265624261361375512946837371468445503470651184259989476653621972181751635755459915343025797968347785600274445349291864774498883255202760674571395533718762799354615512758681766805015952737401534393628438022407838507383127479080628156829320093580449134268576812934275957179693549485644384303720609462656856154197104286622722269781503829840559452568605219410252372170793762053183947181247729509654653345809401343292550636520031539539576961658661055572860066615939689701753547468231699836947279877658888909843273610099009486799077537866932189560034589627746173352399454142086312833348298887027121154293462599293129756364156907242413400424171205201911605676259229316510908035681659609082653974679903625104420113233731728290667870438322482750711078124220908664674846905604249725206941096205409801144455604161916013001126178656515888373594809523286504500341391539721112699171112639242562792312020756633999952933056754920789718530541105224275532027701358723655349972986680133588882695944998985960093530106448462430654079409997336665005027048692740358428365856908727377060034508317263134668366165367358321836538644045371505919373851665420624793799369849455434324483204788758591481704882889244566634925189230176976482196883282661253416104101131221840389075413595709043691986985658029068015224708212131349234060775818299491774277637674643382868478133055998319258932096234041553026976831464336037434358173402631651680856925174936912085145957213358381135121948053045537599338357052779150642537260500923449382314702672486359840603179141928372958528176204282609014778112882337572799328865404267384715991410065192453250937845239998974483274389917094122187422447314184873067136547612347338204571883762016904714680278291850166399220772282044961497953263814385566453586632199052739548109531591737996147465629893903717775357181003891235447273328126490590202429479405185337830268270421793600447096286291589233878208819838357624046358363089625686165831931537980019061282315564170345294408063269205880148244062605154501103726361352194452254522466586270552023715504098522067149175647256049994695623377348006412645207906093094750702125328312293021716016584266429703135875219878500006976000907675001402793773553326132183745246985807682377314113286913867210913000432707604217316689077747376958658876249301197040011906643364003359366913027352477856200491959484889975550916903624885034072794974807921894391407458744945619090850053309944031653451679412565620878544359087982260498360105817213048950071995570912479348326644549570423198074551682847817830948569922090103806032286102060160582949500174873474888257532959878373943107135005622027789382772824350050936587674337588501456463071265332640392170011128427092643237697664919066779794189084763639384506001556477534461240841192111522535945251572058534747028938182383643574473142835509729261455963043637357364811294599261262473079238264698722266459343950654868958507599184716128837705339106601015015876581166023235453800677072900854766850157751644839502225068817735540213212731003271578499209003242049919323383013730043869778244652989061165171581973193513878030377336826841611329733978688010102704470002543438704597712770190025960353065817576552187310801726808894923254251099173331958148223539693365478793221836825425415087150540641518031306522777848282623907307455524456123607195298472958466458759560972651764741439976591347402606813319236405504963169588022352407539341664298356436847424481718884861150332139802267715636732211245348817939230740889357494085773059083630828041569862685186368153109630222689773162648130202029915360702408694934139725017477464485549427746706746387608111728822549001659008554648284342503530499767441865475704614047941263500393840221861225811496788998925800017934984183207995540094388783287765037806212187411288439576780131557406934476997912549604790573832649237259596944085392179481622604195197056806350502477260257441497886202104261285275669629772023401492764351306108421981884622521095151978952285599992267315010761487917276654622132429004459570463559366658592711122178632530011146080468957166664037465662767193128153426483842695248150922947639989387823200135772994519776743433580561830612500875374369659852128343290314867265217252078351858880666448011059668166729486211629685797477926986117142617102181802845534284780750734487046694824718965278338536028745556780000273414988724067199283992596583506728586054158666992281231346008983436044577502830512389332355259517732646859531866985841307337629461834787267460811715203964417541544473578667541768395113611312092276548370746919456291181394828599184626209564859017890649472332435086767754770684778295229753177073968582524425150379232125033490056737900502584589081270215008632673859486452976769333709927814230510807579577462597169244127688371819673938728437652098388728890651738861594801323617260998927287894383382962227431143177720187727740395309394454360141987684476785149808410882565395260182636741927014419895152238347232766580512801900842546914426138511643459669220777436525709159140475834996905031630228930523213515143246052073800067213502356105516305720978382660843571903404432149921173174620560948093792742360974920338780099962192130726773842049706233845107980631695215138991471277790488248240385300005924016634624511312439356229541680378134988842339746632038798669119769050790649613968245241718586559859211079401906080176462788043796770056134263924407838063864688375359601695134532117215909615082366830833757332586445384926211849105992601302055609556838307134789291787131709733540839807510562105249942801852679871883090260158204651260322983658038489107264235469137266633800404012748383442425544547789863249813980952073960963932274576527914905535684071279142671324106025484123552382670238245742354593548306942511830426813541352375366907373412649810962552544008093848036777453529356375994401223465473040164947724297684595941012468627146263784904912857657113731559505424968994765129594637484651929959016095065059347445303404850746866573920408014614807882908013462386802932496826958160935776509656377221981505531559486350787608369981166561680834646892649545831310220960107181798322252862158870981969966084580443050018235307825571602306485054017105564821341438764475722909690537791943637246139079661676093414843174852775329430737773005064531998079868460830342954544567992524943448218296970008693648733257523896128370173300879125265132892159981302188283395104092635970041704392175394826343234496955437603681793675566514803397781930375573094721639941391049068491204464432710009315388088799852819152723841674526636577926959818933544140726663192495576811150391893558294431826342329606631418346516667876937496570084628165311900568425814891398316743475824858800385157560922048453257588518341078511124973367334569612557858302881725554998019895291006485245550372788379962196523119268470490222620501806690714320549198933745459652222526515575157046651037198083394615691997003790061949429276118080659214450239945235316018026272838256214627107082848223288538762842308783719797101163838850644929128564890152516009031409484762517577219044183916309400283207416197898363483993762012827511359511045979541736658964241449629466470580188824341960596518411118575864826473147231998787304778487347245619235782500223429006242015513840629689863676321414272810535464332544334407278375675156233196716903539644535054149276105234417326906757302185183624550150967501813980878356528127665698276175097301630824165414339167079755892966960560306611331704645751687798108754354387944423625863070507782873037647052118837701282763768077083130273421164112056174898483785566214576629449612154662375307105478253269343184825690430336888828180911613111128041488630945042005781597308141290546859536321086351180902161681628989791256415754545897525430149753820028409266208469599283634457181586608509572149291666407937881967280951646555398134510099325192809735027166089012736489512113667133304565278337112458026440492466844570378159067105506155449128285250688371284036710407531994248361188603425376387309723157955886874613248617215366812022181875862062223702792803274475974194814700779039328153061903953131139774877752601320456410431841985250844597542342168830928762039178429029278508740113869338518546134723115643518943176438527060158105199736109895203231420755396787686369093843516355851690167405399101208369989228214030050146251477716590811991351664360826658671430753390693229687363507772784967828167447179375544497093159726363592335658645822183685333818778132963536253911388755149304273408140570092939077060268921208169121860582967328209919649798859657230915136659050012050336244601793073810767023868934473606014969410584148113336195455263016272576212899435538473837708973372204475742723857887744305547786511973568645078587870535409295953765309172577182614964489093411033391738863294409567260774598995446534465160001459369586017941367499299362540559262627559051092094574597149734166313043050731743481676876864600891901426944428520234324505429320477558590539949282147881756993965873869418893508310248070910212806656669424220955182050053091453952605417274034091770521066739031751595049994748748165767505254987323224360535117391443924759418612093372854630751726993913250562612502826935959818466636285892407275400138629527609696201241773539058442250371912104980716607716228426545510662103222932605634513212626743395437529572250869642136976543730880424448476280842425316069211997333869066918691435550345305467598634882603825051415126193928003782283630871061183102967774076370473002846784139749355766264933528131268142558459798864230569346176062380141654891633943044285032277128731375086290449717539646063100074343547128299152036866444077589266173456717763752679641816700007034480114626148620082365484170925817100375046308243526693506755455104211361488952549771200648169019431669421115108045213301258647037391069630687545667440600260194420500912296846742952977339954954647077305464700672552945892127920487348898842017642013233681632293671456886063636905815267059483572032508377939538952510142357765434844477416737477084765608069774708134687435878853381306098491932849327862063017788828248055657937723242049955192282202183988769189166727679888880067291284768343051561959353772366278436302536489384010769308778101958218963468380962149317386716923519922892659320763863718633738518873430023950031061933840869376090899764453907960660193899943967863115919760531145233293490036339390726875247940933848167125792709897646441328390319496700404800958820796038030869406047676407358384617731859067646623928194550248863413319405667860860592045339463291046176358487461510219757663936810232903545114556724863388496936355749539961572297106901880966933305006312939307232815088276443675529225371022800261292443009589609638186043398904603649789136697927356512223140448856046347070829804363149115015910191291312603910364581537686999699420812064172024840099983446088204020520011968500459526239179252746285537361956067158867285056615750855351324420841465917592323334059785074010621992338047513383301563195872054127819908193916956023365009798674070497553572731377111640071830861744362351086443535131564871674680040856633501642960350258313647321034571030033659357240442201672125372758565949058851636968745163365128687089292165017763717114011858782901682674420741978373655117723475622567617674600376473532420774404146118784485963750038028962851852314175313164455172019639667090824153953470278922608213890812751396987992098529743242444455460416142554818769688824942175974022096357610306769783386974317616657045824988989834971848716950267800323563525498763106668683127697451056215502954739315881827804004555150371613814201268508936248560022454358758127615944195825626910887181030965738889899919840152050420762293917643338708882205652721719343473290078167217795000729424461086014530091619708038289230195160225751767537890140275031219968921163182854797454417603396632089787828788383141550941214617721556668813098874948590820123777813985635482222904366448057013284424828018552691660495822919050981405750611664166762182610003556287790521141099007469865904555945316167477795839609334067433636407287699365424925626029814037363386769144312147615414139181417596940434836938431593616168661048504537339690209894191915020988402139740517486109306271364639676763884663220154903019432588873987779020786805995763197802368458826342698928977288787043677458656337431451918906728712737952715540069268536551583975946999886758390956081783719925782935782906474468502674510343366007274901214806012827106898778410165824667059174789059546113657438006772064679046801527518090324661053715240623092213067476604831207656593941116650650078751236718971057233703204398154986574128674298324949152783348917580471726953039543536329293781905092165322968356448593822744817029901736685281082063404587870711253002432155870110129256378346627035882932601587134772050666362958424262819288271645792107872276439406152056283005119493467899026138339080610620403809177679452809961980415141220736035598648715189020892406962489077174918642808390752222893807740807669955140269059265426182237908978758944331359452650264949152144587243461881707353339084837297341655755958275113048725349712720948052377409289669836523800558055402194082215851965726407240191029143774064064450098538317397539991877684914518314436925672387379558863295662385354229657758538411150798461517993169251849920920880285648260128423238526723924923868060959435953164578245072159626505977553290387634287995335518061770978080655121136651216971029458640829810498613538711268489821009203307097010479461418864088208189317591650396175952442110364976753166586609766214069864609906670227205289261195818150489355419127699327441191846621110879728277631388429889433071088879454273335911239648680644473264792030701448385958817353552719030005149395064253042133276847278140600321003473072872572248357552386443451416837846205325485313715852733997567702914390009657608863733788040327591327082168351767519872522791089820961801579223670680153246904744297877383267061533725054806644592666794449705755591871407374705166474635061242474636293724082686190856304383582424511366066359176658558165601797923612650053225386419564716334393914914612876580208523966283875897324652533306583207462338643873376851122848127696031610357696834776880335945529503800126129416984528167478841643824414260535215344791041759834681477372725416923904629457081398343980576143478692503038862111730002539276839694624358854546220439657302934045296303470668815031164609071808906388964022704263432266530122432458239165378181113266270101029957721556702677180333209223423334776451793577949211526768338168801535938232384518875410655697962507996820980824619019681315407979088118472908590986922975809577738022085748477246858185623004135169034971487875939052470528858080295103048983024292288363789723281713460140010112176054989037921046190079590118439638434901019429472354674387786365993156685901634097302306058432140316511415587756797072107375738158097290528236512943401940116781457446311277637349971286533350948870497576649349931131217203893858496095156613623559356771747763088573468588173808118223537899737726581732421464734186398966039573797476082577170100374223372982327876280091320574949963638025303922546102060800686785685040858433507026713366772192973888513488595833827808077229710941002903980002844178442538909083462967421152555426877684393495268702064413939163993639405854488471783222188926985724165044007333451988273669804604469899650275557748730375862781661277797604286916063517428250894391870901254582321659838338348548979652609915001796725564151645161892727765655409633637774832201619817147188504851590056687618221456363162582028915158631121334779149096268953882717253648311528196299444547264282289333805497498875493140318963930562974092942802891847689405576271828080544484629614680363801428643955394707915508334981020913009697485880332150062120191824380849327921405992663272914218116758013111310784327024493825368098739311560606488066107444501715797478962813830568573490661379990817880638496135638885836181951943842856600176858197446847322585965839087608443368952350180728817827399630742908235160097470191138482456445764634359235292244744056282509699137510429347653931502401279192348428008771884987577622146294726920918901141023250386929598348253167905407766946025748046779184238987835320581294263757969703736212092172956504902505433312758286013706222541982923950630917497798966299873868829536316525822311763832652781678612207444716262811183564753248810413739864284978453203769663434839887928030568463675799473470512165983701433461801681878965248095799335138713075051364964840633098693631987094757071175307225541021025507070036613518607182728142718063579099878744057384971883818271547562183596145916792971935670510993579357030456608503035442362608557673574243794587006849165759765035415847645471676846616121690765733403061742197599776031464299817814306160068796692718189452074237419605160507537231770577363564848204788174624296242956157374580050679063505683513178166921506590755922659525183565341343680225332225320604366331541490034328179486368948823826808656793103178834230829403653848285187318959064122019060862723383674423870922868499369673999830227165183902839160588209602275102029673410753115168164838806614329392259142188667708011208546494011017024024312570802390727058318644236785811334062861986563244263936692505438942662445907519428137129667758113749122966035785976782198566921160878377581904025996667076977297676140483552972109215102051349184722064759856064015828430507392062941200372715031764583981191012923288278632901276281414353047931340858125558025706727059773386425274862067976576531288184293002593899020556122540449615300581497862908567238544409967013212819100295412492774169355373770375368836869181335449210939591927085031912115628451502043557391622774702169178534615532143850836948027372080662653829348116676917549307035718987417104589970474182840635705203075236646310610546871836537730012029397419544856919683845614142549194339034085242409794831576586945031938447401919014202682666792039108655553146399654145969429287776273999539471919369454927179036622656446704244347601346522116455038908992708817851387853371749320163936973246414623349430599268628033996980854798163556568841536450839599998856828077596874634154226398901581368168994685773159135857583268960834168080475485530106664669148279553202069908638327511127680706231327846269526961890593442306859985603564514033442330929311382382844360725790983078361203048727702177478507786619961244830559569782359526388157207544446640693988187598069722120517523901972693180707342739508134147056919617788146979982839654604012711705562143484133943514166671512578049156069011809401785203906049377439308529178663755217127544788214693694733546188709549512977451213903507454876250315493116592838786907701508521828886917745595093328281623683681447441184956756891684159693054625829592463279617742574158633523843669736179406439309524858291246010982610869962031766699995563219379008605902716856501813395693274948229715352276949046415142677751808244650270234372171348984700030968990073910724080849203444414859088510491049018458398095232817693873250916330757739633763168583744717521497751516621460977892306070355020243924044455455431748143939831592011970003121778675278958007874073128266923432252590382632811666882674796478094381872203735947669824383086690639445109394797356843137256325701873468639977191278424622182263232372959605629507052756074015815407416081537134017280553387040627756199407670515360455903905393282473754394136119818597347638921665280965665839406936472987938469010848573441874975303177674591387237185151820446240833764044970572352594834670367702437006557939737651827126323286547197720214471078463704890241565713071499358220676369863922158550873894303104973913248524229257356779858309196292548894992798319014065718619255579058397301989376012181804130644746262576403955203640843512051596651276493810129230908864114703951071932624096165883966584221493674614592453406697269086552273525462439204804325572907537790221953807329660082144625953332301488494884804606257046531245711751393512574730770810895905873756851638185176422644615643969832816967474616378419072277922135691204596199122167178750708869698985566877261389121153056185592867743829249818097553561123584114469903223920463503926530731884148790669899902728694746809886546268111476952508321010715642685515478798135570428601959063407537760759230434450748492526326087070235141059662405145689538185292211158716017915345504301948365507331499838129280518174121684556735465136486922498015931801302601183158035359104213113213113843153177432385205484688923889717822906556111955445352471477520368702242026243209741880985971922981371062632928584781138441485091816117652159620854708783939082185417637679089721699315671185911815751983791685079388702497510332501781483674869948062433377892663100378949261806050284624524037975964446282239082129499842546981064335995795267766225604284456778764846992018750327620331042525655005578453072772077922833621428618351368083794735779239210098591896834117766062709738601523752228328833776483336449640607656597853997784376277995045959442948199389548766613664393181467202877027337683354968760092070965249109704340668409023037286075508414207866480810596673694169337145236676018373726428867888984359945553829601485587928482800265015061359683978815368703123265137161651513943226985645782653420453808335115475790468564762777239152518328546440974048864291834801369947028531673922559274283817339930436916884975830118564838195114159087517132051104203914673911289629148197209148805379521264571673588115448294624928386965633446136826126276214323645622649743672984175023951111525858707079136466002982607548512259652731436210503135549199930044142698852627736476086577247905153509762747077895976704396175172625253939316873324010173099113419254797918004528504121237543107424089459541624914819980291506800972650053078488368788112128994635502240124020982782846107432622241763403345021345239607512096646710647931086445961165841307224495952888483446574475227163269560784121348940484752240964440027856681461223200307820658710060647695157343889537938559049568313936796106538063518772223024260886211149894978260583780668604154899736199481559727879107229375500262310130724370445122343712405479748036572260038624656427197222987015867313629472768278859239815146502956808131799654689498909434354791745429197464519773319102831111240420952293243405339558426978860830825754357560431329974096176005646651079765887829149987265321318777100455974734062982054315507054374189815422596397271953755138413899808262206516119973041958556332346698105848862006658913503376470465305320248109582837652480139844936473885939997573693435335169215832859291314036798891198127443063992521509383581070444177707166534257124481722397103248601530758391532201182199561785805343118200631640151479948610855747351560322152212202947358631029733024742009979735334104441012506810072312652207608155517196911537470147685194189732426709845001827003999756741849681355203622211964216836011922581686724770584384493701420609907511784482227341969278971030809075163346885780665910318672640511211877130675459131632105688682307611745396536374919509386347353288921237154985155519954477314279467596558824961315986609738431727219660709677896605683748177354261712442219023429144669567110267106590147473865296276007133152837285202938757536193669995409998358438663527345111330186382969999304497033178911835513341812600930109471426749865290405782260472212684583604584237627738939649146133186225925485250442731005863220851820357728156294844833409338220653832777695499010886665400797975611221594701537870310765031698631537063075316737579391733804564383163876536767130413588084510274196481987023091642714012340849784692615907991142621328442007278321431303564779871783310089884799369893447713765174528547056165069073726470959179282288908157116110717962053698830126918282381857509152269062132843684428034700508965343453797171003868898541042236412446831774042422202028614885025885376956385057189961112855307881277203146510296630373257601138603732101671541077327595669110912136148748775426823993254828736655938258304048282715393711019134881943905061628902272381106355966805242622474082485377375493330977370315017447569335558594655062173229664820542734442242712908188473329590112669904525134826057439761222738059419320980125663358053529364236259302883802984129895878540720389782320230485652033837073600951225173886470967659865376638480245804804817606201883935234722372733826789400243057676031424285027902374942207033493540147979263786743039157344869859036219719216288547831053483813268199860123134665710785279031016807971656085613352159769291503953344386999457989244476063858439654352098808948466201905436554052285458218350599313102765205922598676793895788675695674480999794710244619339848442786477325064972385163212815127659539324458921350338426310799261814171296130365706201139549570002698648785018582330982131905397851133898491463337026936380590521987320867369642781626803609444298396841068943451945539872598023529512205720382925481762101408356509585332498195415907079305076442275903939345943691344293024896442073800055818473145060896081953824663681056318549979838478698370884901297776893475373410676125921323059644776801665855990424755285479911895631207726931184220040716384336958328201053258433378133664681196745377516442445061947594498688551263557324256177580496805233868131971723614654916597302988036394372667183383841860361208516882235340397921451634264496376369039166064871442549458603583017600863316461112248908641512219782486884928912152591862261005346926537506764841385749413634716173855463845017086488829385171615716350731970498849827151236352287831390125420047276042827223537565767627368428010175340766054110706758933648686095709633687312594313001452340163126444378195325641658880042818868032375316109878297010949525377434853017841781767191433517725425585271809813504055663388504961378440976664212496464290978731441468431059447796468815199942080808558900264135222968901779867435895439178563452792810858755522561100967916036820265688253618562925818120348305115688110495265033394274865656817016878083474480862650358127009255376267661414960202051669360065987967651978325562418576170381101048834693436403864113935940218083801432461653435543893805565312813473882472865875030112989932827377847064996016839035668109069888019247668117482168531454413888263894327507264293206110472311125911854376679663311690144317606012687346157842847038562513396367796662853256865442350090730694868019526537371555341926698934706259000187406077048287981732561448524140577482374749669638962070411396058787055862003335796614834654128922888647203064173794860423065395889049484377845128695231779010253999513738850226577909028811445507463754701686085311747481473724825968892942712293523090856806950162580622038535388820251541157143710250158211788318555169885305264305623567834693177256724239294562433638843283900175719001679497642199259625173579043300577678774852429967813740635376052028760840750190471213212906652129533387518503398211181298561446781585536079312904506806989528990742753665764763082075813508187355666095444643167022441277496619267987155890440831895115612325673143174685444975855392218723382005472114068267357383566591211444854931616193691908716440504114794030308144332450373415025019265337808336483380323649401289899153930745329245198992316499901871283240504639130882241237584011013926238476047614067700213132868027801691356631213782580280799440830748740705114232554071394566810813638961304217308147977694126568328258166971133402752523324417470150808761543471610699508329005422111481223849800599182263485641581261176454512644136110644590603497367576951063531627648523818311841475550222929755971252531912946548502177562105350848600183722947821506961677311763464608507881711995053427292116844767582877202106905507958087197450322067981262841604530304579799750466789007809479968282812151467244778932482946148786688688674735301280515196383856946797716063989423037600851970645296925081249700253300166317648997903604929092155594595359347508322848615826081727600601446940216821023592354249024659693432109149752179307413685711132162513609602944664483494783094906728008654890236911371987732768230292175618185464733130446775160400727512849668169124929990473631542181969637327881176270133554323935298531925750178666949210843600118591364642235275847022460977376536877055531897336358569351151943419380671340977311080882260725133861955304795622821558621898067034412865863418854531028223327911021123059405582796045020680734782535923116685248734196130311056985250649692319062395947405771795958027570455459516241632248480651229105986429577055128617856701386314424513852993221163897138868845906782181396035820108685956609430661636586239990839194880100238770413226120791342721659544167902758086026880187494549254943669492392685019377795864873740552566444546128582177512407653078693309671462043833895942297075065666333386484657392494368387032612376603333333204827332023461690349062081793259416753765748043203629420102201209883332879645454322348085147247455564572284149799451001193543660450633692893176601281380409201510618429046628979132748072107765631713736205154041836260748929772221223465194572614095839588258190219738360195655881588890775164456958123636539832631770369829653855900645597900836050487342188528980237035766108290829121405183896456014119283002838001788671084515819855779148953410467745502457562084442230882995756853951566939510992934387569932127411810988021401727362667018321498063954588389736126805748977130793637087230784585746908367624301620583009572635071334340043625525449706929017741158423073220044549813094057843230473271559369447026036764921307345696823318414677284403025223606510951520674638240634370581095862995904300808482739760562442285510122035463797256678751748671560543549181169636830464415387816842100119525807403463726588472374938673075708194632755143923212089658392391816538390969129340787284412240898583212036697300143608582947280181627242335863027746951086416364447710713007176857524535485492024887849208543195238629477910244340464113420842134986221597395224332291808350900500163401341969468331789532906616330770919377178526278017424039245965528181892358714157525757807025697237628945672538636429676943839747840480539195774028103677447939801056900880643785241342578262595535097956187302324390959670209151320604316268207530845972254477675629455801995687756647212548887394902131263117756104592918481505544433635285867100325705262013671471778396984570657252876433038136183132509109230082681633548364016358516302766920138794199273114765216840880848030582052667694367857044578021300305975937770442908833349953569371989918146937588501059178815620730643890896368933433449750043486406702223153938231002741662784554040257784217314662340990890747212766241359037231665355807450399701007630305652379353928962173898618745233353608648002108867227832443833653559401977193921850465964791288825131732083470190667784599785427384450954469854151068260497384212820922443957840788268133605499735079861073638118888804749655970066602201630174806550675340833407070247177897443526671175872378280201217698696396592373401279816251155063970494425221799644707238186809801734089031779578003945941927556211312098157430241404051927847056648121398429049310531942015112682540984943441881897573563180385507994741102806166952087681503563392030657765835793555186665419526762410841850854835556763479442450418642912566376667592121805532596659147008673050691901846352657239138979734435995749036346901940989175874141665472948335173193327575040065358124436841622810006480040834872184899459480043264176524994321955467517397476400141480284660071681207571337612050283242660895307766601642396324520258612737336145230123863362339827076835501234106978190809611885004451064366082557829646041021989656553125850455597577647741691782262742937921028791891722726281118396465602968111206136070498874517649784519370437603772302683988380207374028016716197679295436958994615909561202783485149880578431583678015124288312629674073809662281645745180075254533296077519403008989599921327318997201718925626830025227691817583097463660979688838209540249932283788200366800331390947963305327025953790218029044274938665265188102185561833900135675890504521334177619218226167144117189358957653345435739581807383989786465759212594627009760095477037810395322178489367963720588260413398019993030338714582270570529927133683283372841697313288518028305598819972354314704243325912222034924960815678808026103159907843078839505080472546991859658137944546426281898984126791474720525881391077424929542726532236666009559492306573275403977599034950777806080169518992404788710506691029909120091207072053597592204776975270373849409454601902442046207393069061281504159556741003762284883977683431404031741703414466179946247963702471994855161206222288722781832498542398032858327294925490280911435820878898947276433338417676898921810139745670446114419212401529832111756638393236268803611877062583356015873691897094963452153439145681317762332907476364159435659710908744607781213984193487283296303932251671336546029986339006883943297222711259100372077498031224123935258879308914063298658932538718693576765010933244196240683763520334853346632822724074461185408925772871654309320952194162599201042636216769716960060946906076255168883443785655417750825417367437993308348526731075191290329489352493786450713395978423694582463900451780405927766894973836774455743532788411471521235658353617725796746246403042662208601864792503148605667016558040379901838244784121982274028682747745627165213993953227676211566696773019197398362598135894928058899493538107140198188150182767229470805858697140543318017877087989370278717909873047833275955330498137754007940085564752437670130575881255338486799132814690712021998031600719486574135688053321423333353339587369078835897646526725423030329341682226299938343082805687874748648356288651327685811456899137209120339487425324651754754624181164259488494433146086126977616889267941217946570447594427311512325565981883886799762264986932630299843790824773200734324913307622125605915717110780205428956434472479494437074359155500854194583723843195197520627139040934769059328382700834562531153506809048388919368880965179399748972770183732545031981881429611137426692737689288748033135017074048157278625542316852157224756999589833621841496387922619688509317857584065824166799019329253791373083001861182503459661226320917693189933545032327046741551514890620888100740163470168481897714979398533557646343415676834299198824283439430936864987363000755390034605704766729733279313303875468970821161137591202299877127691048828053669628744702513518673023257430810917419775197221810381100965651576302947298881798223164550699919226208786301838813818447083937738426182396615087027702167868496148602064362383225326184137307523350778982763640486068560127306816915124926116917724397673724144719043434304505463386621045522270893628131157498804904747580678033882857596112599333992505877593167149635491022367965128431429999012939084458891634037529371542630116905854331787425164156558062024280934255009698925810968204946083650831841815041195692684537425405509550449038482028551651566914757468773513766495557156410644899563458347238529218766162324164562093323993046597511409364658008322799521407089794863461000924335816921485977984284240334004143223886531626894175815073754249401968203531067794785483492137665717262083444710739526796320568209969447313830435113130640865745997498930992846398364406087744432220555557711502496017351665011683170595330472749107015997482347141041319117894119401631750685124697340602744046506216948211479724149120924460942773186013405584096172230049780916843611766754406315541975107176529763118071644206907105359071241063967450645499663219971789046856818383935047512563412834920600751171118582549958270389188135791614956632927568417285993162972621831495499613748846809795763560869299536422046768909311241093086739839489623860216390093527510497173972224877045484605896572191339313189368492429172764728163470770512628759181134964158596185435737255498456141997446142242947195938497840420256783192787277444233709825107826906130011516781039986328794445602622000616406818105466492319349589298911970380418689180654836319373719564012196153679199879175515771492909258948111528195030659224108851169694614192594247844688739004602825388487079294533096421817161286594016600753675848664388567607057180374658223570058016857207770371466589765023761971870302002953387468687748451053264754696907535386530480413772797319873278527891768738225451155129615973129211804582051562134871858107189558447074929246545817805746752835590399030455952960624065240139448602065446662682747929841808316436718238314872456739728111444922538276648871069543570617422454739291730080995926196803210293815620932253456274702189965683361862216548600569095369380455107520713354797398939959122386529059071388849112219563598694197605850154758897046629675913132065323254892093929460048704074349086527859811331126177047762467421056634566780905960089091674938251009605026141778784187949099092805750789713668406666215537349517179141685682066869485104534092785556740055560776617216796998512091736470037750978978574375290696634091016124890826708938083278626650839992992641982108604636409331197081424487482119781508009396409552681356650071099296787344271429179873575587539850113636297777619634159558341056686764775520228467583010461113575445711918120583717804936719062022958784906978574512084153213850625666914073829337081356116788896639023127315394611603445772784069051161347987043782371510759645668018135475096607060808758972698446107531812813216795485084250354149131948222066283808153582419874493038859480081319117812753336310003497594005779520884529487902029526018165333681869789474428635054904750570404336176925653901335405616414673699751037584046454233004552325879800089988033179538738199233606477182143154518007074184556988213934855517964619005098600773945867778610308975683375433571740397025207618513803352862424712091140207377968463705354437916732090230619522291557026979814173709209028017687744318705515884448279158700623101756480681136307450598538939433493384509551270617465339840681902912039685786468612248390079979271710477765677902358422322159807831784420278692513045120186126212391696358875793295752865393907112333151537966974364150149462401910654048382441725703847075915960702882378259293747670760275952612592960069719051784996675822869771575422788610846925206933705463528133104552197729960147564141348634811886723859158699603516831621750773508815412855303058367581235885645077991565377013398257634646240970941757011046640917787380268665445564368034799382060982228237022846067957846293476660933996130486126696423039654085631033608135452526931472346627202906215647616389293321944737466314361626685487230423231771211413692996903959927499667839417887868286872262851845022374841243924726426889275803977077688775502420501200913574429521964324045499170092544608389581776698569996666036336973179979713895949094485794527956112495632989599701680133647516652757679767424768248479004258896622136465834923910594798453121203424626699709888437703214776591922005289827555484571115146679255925970050838560497285763790521426465110099551590734815202959645183873544030084501464241355037160162951586014210332491756275398060820298535939828273398756210014756429246784557581943210373448329110001485818671578859791806154256063712959951507423226604869057670812013850799558980619299340065855540228885071286003721166660098134603964676899484027030375308021166974256000639166897929249436291744231416811451559629771747247805651839797574971628939542149468963549484742203179146001050037918786768162697818956634973211624052385808283289295066546732424031984887826517773992597622560687140218164227289450620865487824579346117230650791882931382992153099115429572266748197475432816220379755615825554845217979595260831159043884690275276746207509287784681924050132705949245872325273228009894958730016815625497397249470124497434316854403422884333718371161117486386166420650271823773251826965190915315828364266716074050928071086862841260222780690257401268749378533765409446198899849785567354977084935575920452733041270931602317781158685327314999096350940472001692869322340356342657323182047345042067721134585780412788406003831150709742042339040571594053283955838870520023107421210739497199362090434207692138506896873270533805439717730687847931391347637147315522124021383036702272302392854177260410235432704790849389746498542042472491665506580976138746413471916185155864561069641477149245054406182645274649870482874558057777704892165714849041963625830494642921817259093471845568946991253588887870255548645652322320915236594423560684992313134657709187733222522683568152142766586297606891522821008266779323271125424411507128242542383334653001624273793063597607828307142638897472271993944745240760236056606469633347784046436712880703325478134080754319842889351223582250013661400127018814210883645707984572540683651985614219631380785246718613208268203975941364441246736363918854787198155223910378759277331439960088535253077469675340385086684505271867811410874057645822146493350915632747107127669215088696641863859864697218507766448064020056960585080313076607690298222448759911771800839216836745406296306220825263063382729539312552484467810616081692309965371553434273187613858930081063462919588195611149051096264093035490725177994018779472853174937604825386093293766938685713098314386634841322536835446725043957446612621275890512221481268534385230846446560996487897466996341775704421416648038856140181808907312518353977959699349296211781485637958498343148991411402990534718682581221099019830590704852360835642507858616769574003830508478588046635777495181239055072071612966018525430298413615015544525888712169192655385989724966287842028156560971096107103584346539215736307194757569055300031562415131235136210849378319898117363429107072021298369747257938351091380792204532240355450277560383296012959251996915488912434740412453343896078158383308298637879971246319995624059909357604633272033327519261322154216324994387003263677832477204919169825463128907806270027774072073957511751415991003644437169756253829392677414469023781077000003814262006946550608191655117627448068661189023792674100591213958472882894285084635731787144909961101131363964936957211274135866923036100225255581257869913729429955167276396448653649860419468367955243415095511968813505193729697738064228450705772332284286972203354154617888556619548372400361191299706333269954186526328709622175481757164988871019814748486679945796377788817263005687863344603562586683047990209810932068483348145447361439352517404388891684051454840498413311600056700328193905601239263974770145366479881584829651633965547070902476161960241088548802420101557813466263197757860682490947334600151230938408874703889494727346510046325063794897197695544370079688674564177027527166622265030180035873153277321581294352824887673702185530105723500381597974703698747142662989007632405777462170469029051179447826296056570867740566535895009618941085469371158706705308667494940076389305134133767789654657076629551686918290879008291094048002953478611111104236808416763872778574027412890859023194227538784580295208871117874980010158149895599977426683079808741614381152886270436209592532884772505596906199857215995962244843743736878773118735745475270168640048372333488157845128024610781864078841819364396131525771629969978824682355862643152368542149263723734333467732976313634159816923019604216067349520662039589998043183134679041098216395274896721294832087479443488352432452172966579444479108089482581350984312568821423136296776076799723340185007958305669973073614880641024511794790443529541417025933333972521647612575021222509159716658885098080653848135508017516467204104077823290589176043480527260574619525557862328308526600851892277255524663569555420576889156457224386110837917062783143282941359364126589198347567803266374220557293098957195552190507553335104711926578499700765628410446695218262340632884778770874401033595017935909056807445366955170854318000269318916436815746819484874974414480330747093671606051439014048244637899052731606083812198051685146186933158175506993030001502078592999654308111782894509471401872302963942501186189408503398257015479691495557989432293723048762452470482856906364463400757853085034694107585585303388153106978053846115895162831966448738495124907130148103522861101089113583288166096449801800819119358005949364246748364322903247010223216729381322207061368702132791957449011030390410174712052041429171068583044872314161742448434080411864960260610935641555250881458875441248330225005337425562686528583756867432085712282559784962084303105449979016040825737458609296615462273685502496675478419752629771999969415317919367567590293190288688655300249417375295852615518201832359896489806903820511739896446963142665180337526142717102440591776801958543106549063949991100590667650668662292963296755484745390281722928678704616767891746430208809039668949397916156353998944502425709718649689508016497302943336575126176089819535750281485464870621527777281022799691507422850710168692313313647519038259793043707506472200845039297260244459464176359203202421051307632216182066375454263446617189739891870841753678594568111994838241212317041413196284787885262938631701928937082810717941041166664324447842383335840323713578333006781477992194119027353437104404851814358819799248754060546798306381949051749649851096366918205987129527169613302937320544255330051679622286622332759656417228146655916688068284360774449253729812325516743121733083643925033664767970118768545081371985907947706343372467244545873841343234443342357373574932505406627055387988848939988377904801853272642843073737719565317349140349518607557232861558488751507419054916923479665868035135946851046126149263134847512652944073191667974584177416847001721461234155859100259238811916560929465273894164640836711993343878201378634293276168929562571138285677541538753504860300470872722559510320218587653386073683459724615038836728491945965394880444687517899238446780739417273782775233915934943641882382638857406599650476482540378838477657889294425883720917116714964496144227561654338943774681941556863046622898465488820450251588251622200877665831341971293790026056037979555789516634084800499352158653683034365529457437079048580306596217172513725856902584136094548881156291908816372796064419226170744434185991469673595140001395507922368908244920085154544140707333956651165106306264447371128388533280868372295648267017532779729803947025319761868527136395241818192957347105240095602693507917103355030370795591435723724824301252753286638882270363577474333247881109889027099125329107800556763055585866254286621592896036360354602226547700461671899099605169362897592974888416659879483518074349542427780827771253227860665003119528253650603391879240303086472058178642436040647977097438999332396608835017073213970345743744779496557672021934952873123854537034424169069655311677265610622060490875498835677373684875883440756216038752436047501847850189934535340072929602615082559229294001884285964920620209991549622314631885760813569400304274551524656776774611268454262578450420562187648701366006005200107127130631180480354116307814440393503320017608629472226615412644668406387764897060415749561117265370403661271545021280450973743882750899038348146588001567839203881458081398267129056017173248083498720421560850060020112283937245511555154984086694379913446040290762400708380395645684568834074776637035482362764341895369557425495965059648844690061498481923218032098174902089898310200630564789932956262992053757173199070232349208341263299199380719413059710398484524198876250344532439575366839170480927764708236293088628952447567620159342546769226685023922273437237809847307388803662214527673901292521490441925304251145937578732561316171932387880424235926395396327808690492280951938700787361810535703780885622567539075013787394279478221264960342000024096053992644065006913972704349449670469498267877171743251084690905381792517261083887121296727856947762404841125890497828480894257475625560428680970966933799012988438955618108222926725574594379742383989636789096460184235885051915246938945506733605630782049091620894566880918947664430803157368172968531021418084960914961410363657137963455405050355868122118395537175077581888562771792330873148366818065726778500467267747320460851405091291883902691383267907869843967161099412972677042952956996515899750319351745070604249857103288508180671612001371179731580552607095111912791163741788536612819500186193449407772551719993463551272489013740119392106812456771759686408920534032327555206634452899147640531999261190753690018722298147162566371284070058023961080981192510936697295031506727981570295765793730316673058689981673667055314325256483588440120972616958535565647455175664554828519194440758142330325276596648534431252965001061660263452166446636269360787819420376088176859272831137917499417731079657992030074888501784345465297813906166728245605521272987621914011632936124450763219104266827520797790520118304176571882852192529013240237108317221430198855942593464788009221263459376703339975017431615991134040318120362100764376914667809009416859562026587575163771126720459094193917041120856149527387314660026082643854482587657014874768205756259223676330543061908953334856232024974825521859940935469754002155585707482493985576429387499512734540449236411687226622543207252605632337645720200435030545708252222827292191525827220380582015999321665236939828442079431070851352533419826317479578349451919143910927114674693634543259012594639598868395862612628294462801116542311586983919543367236537421154666394517929738529772365638285668577700667619430718259526764412392141883095996748029457161552262161617211617785128409178535667600309757545691729374225997109658762808904797330635149269494822515316379160912308290874303621031595508191217330112582956755819602502203303100507598801901104697423115331505142685005620155352954925821470342005101820124402857897426411467909779462645680492742150255799331347922126115836174808220425704200206778361633665666354811773726987103120295654154664425036306952062751454391510013116156642114215410096374740519938450125507765257055712856933568744274701703799079794630995077421406563550427801296121315650634556044313722412265761369563519914101073350484393015641529642755394717868429245873134550347414176413450661345987036900733926655949517346254322231958607744673448998898551635938446556795796210206943216091339928931763064869280479261641080205404783367435688531607640291588195064143407843617140832806864464069901054044409468199087015774392484577521582039827889011495965098836994853943179500361898927077859004754193463467732024187702095101600378877043993020535520689311090030155081571529814395800316018791464067634854598971586329941186745422061356189092660198083241146997595169140734803553250657436679116370697356578427999205291691112509672044377063195155592369267073554201678958404828806088338896289200865044740962071074838765101117049375556327016442963721397835376461347427867505867494297767779166761416236921244454229840339493188222242976989935861796706338927944423432087474412574664277729682486306557867354479035019592884355653270616021875858598226353030431411004078484578548439135215870545286433363315147799187527706972647956499805032316390985360183237349427373271237236324810493537894851266304699531171654840378717276629003707437052075206023526459693586631169820581590849914034980861501076532676151830495903259032610232619357908895758301049311483771310111849586455424498652120192355088182652777827715334844884012495203483614445059414908814182654606399222954377913755469678641319523095736663974454604376782816692239978249557626040793742287143789289387208651797655766244680968571699477693242818629592258492450110177382649014814068658877526419129990259329426649654033986801263131951556566565960912220909302641733829389352543540667823670049168819287024262904699145714121990106377410240988167911784070794673681664875505284828624815141225166235685090027088316132721805153310209912526452739587063773403305410776442088110789050484380034847481666055762176730698947176306810881275562142077720145251444397735946318674449090660060993789647160865662046096124533790138272482158829784599524230962602940700193157099665206997015478278893804482089733496226632898356145343279334787011460848410135902261824887548449027731108718198602445498357467420238886779314194100114780567536083943876944254863967769277440049728225429306713527322282894671878078964751940480441748154022360500476695929625662095827038467688916462779626421237997726324257110447621862625546951423408883642398303562777434689588182437643414109932358318905995280748904961877222948897386494371002045122696138101994603884301012336754810231805469535432001029105314638117876780365107696405962234844079415616889105910211905299030352996060656873419493974625504026010048677910595161571425334946099240004847751820368789156326511535148711709458373644026295308191788439225119511315305277179583431637958841892105111115321906381989516125831171820229366547888442516656682038277717988062498741857098214546889726581649202598907931670353409905264006518960607484477419502003566984595863374858437833198397712166079065533995869908791515032813106115029102402400534144340129548714258128704266481120398693176363511899186181514950718758369324424954627860110728513816172032308617731783575009390826699135195522035734325271105340255825728146774517063890393928201047750434552282150749995082930652956941288456980852800249465071881679892872936783906906110967159289848643382186415691958807068684007073873337056081065761549799650508535783008263855236774580913205894684570714160144864290223078854396715827761787401121945062901393929240804170340675402110482088951522096379936640318304648319414249233419680632848308290989027217806492893021408303448816909828179851055589581103714018374593216507176474171081939680195689523992418153933027060129239412191957033849786289462301739839318189223461084268989238771566904062397863828810743207844495188263351780138600848282837974280863007931255120119557545362805588368007731572877944245571854995548345288210062991912043345050997224497769670289173755795751688724364094315946181830264628618873369351265028288451416070378944523968529897535586189310515371760625771905011549471252898707775563195763129842987123213304095769708916170905704901031095445243377317681255692970430680587506303753486690009898410110479285734429068606153397257087405304899818387233665228642298860980783807704586927667001210217514803769492715773722228606962642261407557217464700826721248602241919341319326399596384345593061087508094439439243317045767073753637369542079027875408330695277837444392496053777333212229605431119341766308971074215913753064813525102138695249361040065356321739123852266575840669219059963294087691946437941094453007998375782828778342721222315199631735613211703286840242227842777705614522688183748592592915994729174589811908953455047625434133443809515702563276986967158625925988054077829914141153034059460817130511055089879677237746711427130045911544267285228170416092335798869147863058293684852062054373236616672052343631769609411243246011804119807957131633085315500869212640015578657598769093488138453018762257971820709457687572328986465846379085084262162123944673625383681309011988392224219751558941665646154958696525117731630955583832605894722423505297244951153484087014874120351731929972477883637927832851093678851440136564178891672184827283863109413497601348215010077740604693147850293010747150360730284009738433101921360458783935299980491668186955975122436438261481617860202798670132228198185219437762056055541958420683288117179141323864249147111444993623056174327429779963285319058063809456221913429147583571788065609620329737649707005396755640855070215092103372456023684795167125991659251339500551487900060517873510491295934591093311711615766866281133509793406339036865637820205723702407710659244761272692018009376086203505385914202610887052162465796706951325530535617640405492581527935830860273609485519831391937086048663629404570183890328796856187246267791837233515786879512142828987510920452290269098200384148242855701620944724238216383784578905880596300246954360290641290983042945287096811741062348352711609978843412952155257162353584405921069898847389061617066570410494616666340309127795013072593589708642568202308987499055457884567970193102678166411203257008340934265527727507846875584263340386160685104872530963488569741925112862917805080531683114839141006565210946263051241971263840561560468868302226048953767172854093436270102386267357459391420770799044899149051947365993522269395094361562224183199445329725133025579518556491472025632734467297957342240723592210102644169479106257404134158947495265188602209587984913236541001879378889784084805460589840583519225856068565697543457111056151876782952274883284569864781248027703073876539282201244811223681275709587899314639259836237697695470294855614698772453168995845979260747029281960569820336702948619195389027297367718959191229354161574518737052295590120925084343426689118268603158819048917959646487799529994379930438424706980142757327804235983065867020642500753365516298275107618336971028849515427142408154916561234648574451056262779746348491646809390700263305971177146074224678454503581284879828897754246653007559324477000272141553871828442596492291055903484522082786878944827830678212817473873044191753831588252054354060621509460621605645685655809738613075983366070474830249526301839298244498286902918932293030045809164815693002865314276190188502813398894409687684842141769902597052556152246908771553053856401386121562492692406901412732986428648586350488645796319652952774302335964563130921134518781036999599486322481831964295493583152540779568484153619510278537893845537726678033890456349728366407026693307103821494576231269646174672218799866628827930573535606130451422698866987731327155508100967766959875789006390684849015210431162800759698454510710057585302129051551473844494193092288495057744794554413163954174247452052576708428887479479795633749026510737714152240882852337020666574344840243722874910513134394571571446627251877481201518160683883725567871748486866205172001152748429922381231144559036350230864658934858544932261541415865547227379456249434005608389181463441521585028197435777353920709036764695443827252612338135455812642022763551081741026743069867149751592436101674476206595422824057562286493511564593529181740367174160194247056247583579862738710280937381899012602102794795392340190235886026420827789173434189974340762956567237055493169468885656954840943995553235496033448528289900763324588533129461855934840411848915051309796603197847175903341478418189843924235225639941236884122564201612390361213345168803934419963750311472872215396436307323857415680307231603830234278411129693325233468732016161356728065212558947393658499016060039056123882617043357955523221396209424586485460627836377892143574983012166839632776244871285609516734746836027079827503760240988465860465139339403461170995158736406190060321311288135887493166667923621322858274788530801250200859590909698392852091469312118235959217719749997913215686863088860694625204962863355436328205591364461683793783550884080978956477318580420127411619009968172050292146599791029905595851723255594442446469871525744857076020283552442812023973598024387179001452967002316168784423145325903019240510435640449019230044542331603658490689770817544703854229242521862370591754815796231684006132055910888413742458226144204089887299245516482824170075820149976885686449665690565311731431890942547264445690825128089263986295737183690328267498128908270582351819498532755871747253168135606739326664171503324439526096796315141113664465163887958872468758639109228157450802319294425643102074674057973870260554003904016147452615835623610284935854512517517198023629513653284791321599493574179746239230175582759052085915402380965826975057791582157520236881592946903830892689609034380195935396729165873669743470839064367644597837037148971165444255633150172424369598499642521058016258230664665188506678614035150523093135584020382718224707461767269952150409520203683699786575978115276446403883557801527498764256642024278834988830396791951430714308812469452376977878223864252338093871527804492554846605971577742742300936844370705568968662406064628055139084368693261699373735419420652294838597099798706950755093726105349461958998553335774209414666717506569526120976985282838228216501311739552489565183298616786689983579122644982028866423423422383926254870164293850463975129991814598768972932401247226289310547714516852338592684138726629999718399492182636936231985969088832070545059868002596032548204882077627333592467489535362139503293137487858043400019214657124300438409611197201939935016023184922487872335219361871283765668653481665116441420761284630219538707598900703070363689260313748616196067448450627920375905783534384051480908181030243711849524652675721630200004104246104999340100121096299098100326940489749892765552001376969455526736825346812558491713346161669494414307179337432955267253342227843599629510681101523399278572535350242655684083084957414250891788197323598886815469421703976832947570563085043443574884704683364951873996242413707077223831669126458556565827286258203321926575635885602270050954631101981539335527313122868884983224862261186910463461028878888008752592051973489014233189428463388981021192786764186098821819733631698188833863917871774855990821501926912304533885110953252535069092466960233710348115194950246761730639499104279583210260917760417092365442079010293098404425852834542299381136124995766604691817560970983222942386109353617483479024980040900026802066637616686681046072582313157409779970379753923212788212260873110257115312906345133360847807569454030200865120034037769764725400568941219219120104252347553707775967772734326017657690788831858508080943524079706970555678482698181451373261998536185022410914660990571376411783170757168865840800311369812866221562344250692696825879451796621867418481221573338292521242196737031905435073748439634359920566781600199006908590354957379039160670199475337362794865997134036694686802184407682861159296859040477993879926367465377204920252641403789741759140453334446651142350009214463758474835790493347961622472503572043134317403990244585239871767102762494235445027236493739347309090980322086482841876437655813141427744658354035274801242574451200065116880224578810707634642915681002904869812384661443525723015160142980946827898656730980415948739834889321853810442651146541156753053487646270680233614012615513424742972985914076509247426849886371036303409905207017951473392504991661755798529046081943967127749450008221276274467332202650544076176456197487123600182243618482016905642756641059838767486711660913043317803272053174069569209363252422092744199270194626544373586380704218711043995566333688164710535022213450759121213303336005675891385325912069291517776002587366588109558981291797543446469963429430637058244413771611154302611501704672145904286748716836958380430335910098363226962800380218941051602085935616324686149183067630736664047012088639425343438833431024304387224079555652529552957872369479611942489336184500858405967186207107621534009072954554784048855759906244864149536417420617045637185097530420693306577624275030225047705481409128361103777632608361213146662635965456584595087632206745383190700423093585700888303448632376566960883773164271963632794488103924093625054449488492072693833288391374787351100832724207781327960049147682444390291939688386749404296693727540138378523308069734166202889992687914631432042015295925838626542456368401025608192029434277379862902303620553297753600834694341850117243004870752301737794062143655745130105233873484347053511750736369767287182388757896884387210218652458197373120740818847783706350168541559951584693861969164205808852072376161193228993503072399240670763871710707871362323579185087939562544008193882951674490701679529022763828782682196935790431661228965917730745205019679637655837974040221618957841655269947595853118531491352706019597586573969582913055604765064856060829333228685024759889933417383601554294234773421968844268475490535944997215894058689002747411601719418425983066148146993913246204581521570897856159502619886996556122936050667220056729391598185681950136397512348909892729245447706091475071791174228809735698859362324327106873618404000887895471764293244383556124276115537473860929838310345393118576285303797980051365910205660872696457147978249021038896537556390375754156078952103829135661514324318428801741402773943076192076343578752240699799991219048281911288537183943737462062996431407092080955349482427924067279109770306720547017660942948773120812218249490372439628539755663568214468732634168293401818660628506537550604257890841844277565982391806076928324490140066332763953418343131369056587870623487458820086306541438190249248908633989406149687457881428448766728212656984515254065754261002735126836664986798620145946833576288594838471337266172221142824041600403403015490731490187987932950221699049451348584638332857901068518991592693664041781043656404184129832743131514930032538746671834451761549781215609666977852637493135505582354077511905560206058482155990113309771491506083947939067036334820839448871857810260805103099313701622930494675475400208256053146692252040163337744336224086182143720414709493987116903689285841442393107755875812861951188326526691834448823594464724486500231998594925857279809220163578528424615667282357278038722537208508228664695480731574262263287279882893401750922611559960963443588571325867861123790816791480726623630075773435432573551158144114765540744524617229669938022972771906370891804741568717878445103312562137914809956522206331479645840258096680157369288256345734736473082228855604540558937698743071406085504234240773650129728728158443773481359067180727390239341503872418010839988834861158041488926605405920464927140063484767522232116280886414701504727809685125176630591303200079346659059482825379096413011695574766961419941083543347334084490937268672869476147965633107545735818238548101050276498351165332945794319374591108392679268044560458181868944895143126539063320872636024715113631649218515026776138637010605761586781565666459590329596670401661400726151853432506317646679582462525342142604454064161800592015694403533488527224998121320149136988101183990760928426003044150132116693009146463162185206219131903268459854126487850675576640891109524360513276544533345369766091047269588975809030490218334108388811347455798467838822602605527539953067005147503616124059947785598700886774339329832913287212366047935573249023962813244321402785871906610943018584728979536145839367338559264190358804833617924362604580830457506658585980281117403513803994659328658711137820344242213121376575531775899099498853074040984787316604087842835770001446914607939447707061533727358853605501245926325085908200876142208742686697746743551252967769984849467591867518301102466279906402529588326119874737315448796461372779013518537936100718662881373196548407535312875326919249570199889631473952143780732025472157154615494978268001431076543519650407957984765033383483456326079813152738674163127560566296620879078645373921383443325585435723570202350278369095183766321725494261530792440361847000443052602836451843261031240741951452450678615728943669842836699529143434829392304490521075140140356273738914819740797115219213502400108934635018070424118116838819228385039043519990858571173558143627556288783431026722836984951883841875099463271875178956756747590103031273048810777258986165912839875064448736543733526412074873910312898330086628555341128543999489433357957588322745226995474054395609238877265352567201228835232983719927465465231643000973133304300102562809494359724585354919422869925626394300812007199582401375442048763757315605436141998069522618683678960941151725843740161183554043198887158731871512228119843509164357085462938722162954499900826393107109360110340820462364271716624637514149465842892233536114464461072342669263875555324498135241922487985963545761406048645701482367757388799466328509984797931036632776948324512943658519987080929775918333624667420786414626200823163219244306039608424276853154680596770631499312710223075191158685341303826329109084349819032700688183552438441431368812160564992450435281044460288880359857306220252282078782931209539301486399368841496141986035083274800896914421787336007712818317008959588905910635289478165208714361624000806277051338745781871121641308128357419749510983422813763127855983144664110536547513618337091609524606804133590371290475058329125788149706963197777685396528633396554852383696231449541091593861717258470533433157807484898925608367149678173249308720394631817421287100837745491847155903762909201015281850530423057332752866447474973963214668908478525617083705565147346929464632698484647308667055990467193829492324275256946615649693314098108050614439082035461009488470443878396130340705232596904718370953526108746710834385425845907194079975580870981500552589915944611792218314288461491482169762196669024797842369728938113682917623702963360833580844572391268680608625990292540849731572549972120563894511963736234437977472690119757150668314075125548532206910886061471779710022041649465190271720811671629849966624772448313909274504559692801131760729966136162066155577510266729111774281523923170283455806652392253397848550995962635749540703272044429616581511039277646181170754669414302496914455678498573710624588482077046586628261770830145858017116537943920130565422617405121722366969207079989925069493649337644908009323182202656397230984199088722373079092647155458817739034784147126476506384240265906095358802628805524300471353678081961430438201619305334565712530498584015247011730705788563244389008735574015323613726550547403362136562213909169505485279637256047113100121954710884812323626047605699198317952373996926350906637118469822461953094597601370943994282057099292565413980100456439716848892055841808756947856306488376741245182791946104832746942852444033222571448315410577046654887774528542673753464480404514238058350249585712967565722966682605234345786533041758964914315342338154398721238694684248003468775033665169496188392066868211046114205709798386573728488391516058694084398584848119171358574244402063252123434269796638554921733585158360698694276446721591998145633497928222094426199818056875637738494143496129442425743333579092605729429625904159027595141693303970123173179299356811463552643699699307614830663218876790016616679480956488839873444470649043019405690949350135743197574832103183893193272850960849102867728855825417336452817260076955279871310970796172053860796468738948926171672897722083263344814710939920556391464679535468680663866563454988818107215917774719110347620393907090673760491152008621986448490379221106574942480933472159644532923468125308792872726033760114322683754082379520526912942640108115294431904068710954927043238575317243834195485830835515176401638183878483048054562503839504113020536021673539996456186313826657035973744331591057232959653167322285917683505242904357831161661554495221646573001099398257772590872952256323549329145041359122271283471156727673675053217902166936648482756310335874613372873308838689807494536202294360033966936481125630085881685439519211917346487781516349789353899044315402672097064722298430368306293488387201559829467416628416304286294308004752040873671061972485556185035056406374357661732780938154477196876747854170284654019486445923149770256649853599082656600520428940158157352855668476575343663101968823591619117780797635252982359146900206067544459891161538347361735226509760583958383664710919570235661988756393946735630931333159692498890229469787095371451584460129203565589416992970593090531400887883557925979821406966596683729284970104478458009073051231423805932837219611527074416599692678336889437405097050171835802205964740686568724597521942000826046844931991456946986194828633722488999906552622545774019794659593807685001979988871922802258925195646480270040885736132958362641979907656308867752543686232125878587304226712865952417753423308399208497228938436593273895560450357891888566865488827126340339575503018805634459726341798775231862092072164362698242061188273000342682400369150825825136926351424316664733173758851492863185242551234299920291207693306887891531520350990776427695245842119221689214176120862428035607473372391001105445787562328614274255910800939644336895867033645305458448090417788223769157485116521160595067839208882469562511683457442781223073028295826853875485013559955440878554875391746592253484864675596272488415464201794012055897354956591959001087799670194325690438651483782984398482295615231688286164114581998363636041113867017697048764758508293162269781142693395484657475209962860425536004768400646915870087944126585354483837277250717256084435020198312907044201915948073209466250910978821729393994212768768237668246159116388955735495164897190834699412121167481093867643793109070400401758817438627961094934121756485658783880387060096631057250460067954133287486532047446705696606323836681176114436853558532886640157656136803382759844982734925564572483642660242109211573785364463135374632177203961514593974167397104991530449598257782853215541101468121611709423475797338740317376733635382866858196971189559532174997556351298837762293699682941056851996814223072772436709586571966565318569694344118857601977413430335267909805725641028696855456967975035806511060278029911083071709174284602978740399395468523331278217887230686170818238902916255569962091895628707411705700991760627675114436500322511106872890464347773967190776075738862717170026942202507421497365580575073355895753421876317730545732250165781966346608074506936311519257745775126851546917355585379346478157343477838100650868127156337929390090492066156565394401144515732473884720561046722291055780948717325502411218738595818006315255552056421722096450421005195227683711927341958015285837804104799718402833209670946481771536796240470072404977371379899181516910092884731925188932234258245101390270603799373940753713111391232092783507847091695922549047884488982143465665483318081254269855446329881669672134702018290188379162806371723184474577191052157185034401048755582038226575370894577344505300450282446401418106685994626799727222168149595232378751952963095504568859565502257278385411987492798357854699943560448182825976752992620560922969755880653157930636613961186237121774343129350774295614818616512788019203532613734325772987148013148059931482896812301658287116427180414180414865606939863649576416338387342821841491683559405851483525379064506144090964206978158617638976305468255568702644528286951458164110303962789339486112251578429133077593480184483679149666013760124948494722063487131242248517382453936918076821152493500682763664033555753760892363731658801065269806953184911002400200909507733882758026125211975416456750131976406449488139251716508538299832186369879745658681257802269934688651399996266928932855551030420944771753047199882466121735056353250543568990486567459089540383194948926979702159638043492174714099785802409315758865769031945379361855037351398475710545858729277789716966724420409021337761373861533175294179104872961533709320581146842549592493493825897772211331864751671331304529488594465789106153568317016854857876019837578477553307051044480947666899688105509725994228746713778403687090457512952204443683028940665593947789009889226668275352685214732377926158124889380063299488911754478216901089489802782575854498015008477891433698498540985248218211903749820413012970144771496571294555263435447703072138532786702514457483987894995724228084906539356980216510113824540685908136150764066111788057469583461464466979610190384293530794691128549032121347514063001121080552724999572874825243960965122202964313428324773213736288084568509551632582637543901589669070875187163171063596219213143027312534098657242187424514379838817632485872871037732268624110319965521363838064771871415286983939505697581791462465185708708932231387473748641820223371174220700309972372206621791436412480467907039020927161280199282197742280232044439095529385599058303605766572044556869841720421925261748181274256212976652317270644561963679551576726314328279887763552203236002449456645977887132293094634976835250662773804087676383398188163731186221192461296500489039421131581662550373365471007253108561949776957913746221732654303746161719971622137960870202133774045649988854042474240848227979588728716315808420184154263752784810317874290309931324678906949710133340389559098222060260455186576020462224117679501519182050635228140940279802185394735648083435438926327591847859478294389003160035264561442728330313429566748064274779219376890282328183162598280758915509045055689832565573522391263074164893331015290371783927173833314762630596818372608249621810355200560538620633850307296076363816554361447833404521224871110487060519197294929006403962062148806726657962149474356368978160251019215327543043838258972929596834729565686886828452091011229471800454753259693179459825346046854380898817873740779702966671194509252343547077610347140710146607995473022649621042838855185499175568244456133519985680471568464933301544509186450579063199419905272175769080156712955133541013493798592354075173105645353717934631734420414573258840344486919201785174510090788583768443666759150351452053289642113616082553595005443579685302194347033440699829736950837199231113466433123611809125067332700812481267985327833592465370947352033457038560932008515441079165865805572728813677424529232734137778631707465678770867073849919603938768965613191074180290046147956285251875818032548448558299813073033438409258940662719521679472768790917668850694312516504667183187224108169184957408317880072741012060778680533115120604922780641682162427024911737650979635470548230434800932122811958192320354734637472219993354432715535691474078216422108638873012494469322294481346067264501701334973667991927187196489530909274681047861118474785783690589883178902211027167902329565984979037607068971542723706415168639298712222870390973118339307429241925120457937549785864235642911778700226529790679481699873122741312871013422599844223787304518254350256375705085535785627249573968559187156444618811615891607980340508601924452863778540999752319742792412813241079187617310479804908428222067109354664590012593435770269488761419238524711003112279362649046431749858284705736630271660366144398615156876304035810750667564994674071005992566928514966413234698549759510916458763311452802750213139891535071231286884255264566095871607935989860516412168163975833831290728182968231992878857599756826879716160564869538481194270375083255976363296448091654520406186496439997455833158141912060898382180086262115249920766239657845187539223128006908902012485414895994964271583170544196299498181799625080149279948940303518700803389869842538282729085567256341238738541315909030409986435163727371811641451433374700660677247660215762548707638850327492814736817533446817507912839632050236445817686325307800184666013187602564325090697822243319143068987418767323769413866380101405577946175641138824331600208849348523452441341309892446562088763130548085549023358903505586008747702163463977604711784713482793026274713675372583382622859896511987252713091048612679343023223124796944056450139129949027060261233807727867612903383463096082710578241518334811287866560376328112205211376889368912511311721286037700274174869568875538484283163807319696626305483127614027660625133921248674862428522563222991338525152492281621113927462838385762677362901451557001682628468888693472999415129785805686887733925874596059198266484534278955580759380790258256668927095770844141838243254506286999045580213970441974933735068780095700627021721969418101758303400661830104703054879006177630388533946441864125350610013442313811332683671249728197004345627503226638942727619255879700871772607503909825196014716673713750451966116514517871215848979823191041573077499924596233802120657441332535730257367661777876560891902980161610885988261079634830181375542054350792687826255306823650498018173507479682175051958363688467929415179996117476057317751081366263565076704600963241356625799124975274927800044652004827569891345965333811949482006767689091434631657197368241187511318547632902802084254295443881312727534027926386212130863510929713791008899500142817844687407185486383282000036628223259338391856457874282592331361901184194648174835476957187768055636202671885751545819629538859609136814413741258134669199490842000583819236707615023553357167402671262258090168331013265715131335810457314860612752306582567147384497890057374831728140549874984613135748770445322792071042375197481613532275965411733939997987343234262687803113016397352462868507939411989232279341874177093831977751582322272574293785241840259122760644994610146198102118811537041994490692485830782966269709103946048419287247200429807876810927452274069353032970727606083264069251542177312553645118959734336585892737164551062880006285455066391404198857442105901691742985509970176383020724670972331359550039467212129198973576341898507992730632791469963715658512698959500857141325391058366246572800159999281719458395050285882347235853316251836166243547913187479539090579285581938007255691787581287865753684134546073119910919117334855620335995417850613805261355402902036779416362034309011099834042321469050069191503972034791079514984518770192147119278036898751283242347102266180003433230615847345218439175739322546643468289644359350261808704438497912161036381039567241470616074662405502844574765350103518143658909504293444380012618199361604044858540995883891513275650003718790124693773207179225298407041473987309195687340929237697293928663033281508203774525132372279219277042643741000437762671064623669597423157035630772326464274068117424863649697734098507893500977694643262453041524289472077300760514022909740870344985116601248375094939975420967556800031455984795964123866339432284449819497634374401058551693027057719788670505523450789641595449228196674789253819116857795121184410118872717065760513708108023232235874905827584263168266863632052682748939335852123572868562927758274925542763399375819417080485528505165230272798223988623755020782329199499446652185381016599965271340132493964241631267786821777558298729452936024048011543496590558948867834617476418905811548661484540906392280891689140879464399466561466371741709705079023461242803744950418462912499832843820036752343582798917820943852137633652959676369885708955251322129007844907002601346783179702919017018881170161410318777224308538252904629715463280005504241019413735268791305332114767959191157662548164074747536705294960769248431407055724796170666896834926133553189566831380620267439179353040237258715806749879774603840720771398925823218445369712223124809325644476121614335065330335373271892813881035964589642991614362722208871815636408531736213562012499512299815794054116753791607830180878743122894444134317969247422342343367308163998773210534867280025560626912816302296818428028297579882552880538478515211042748544525140459169928280767453469357757373563367967104328741737783013533029799217070787249755981565971931456789623613579939076032773320590276792205218374077591524461635059248816608325507296162382787962606738790296818010817779951280732875498342686212411546460863862091716315712175543891274530872958604798488977721433157933372074139767337749101857378085333531374225879642206529618781599702347090594757488534074415816575689901753648225543537115846749199224955202032919364443510275887118201175315429386072928500811241683648697418707449027717974940132021485377593916312399527267937300568097869838223628574627523543322660771340681435042941300447977458909943158145726948762094459695258309925986313447210316960361514306589818930461897389972985353076109104687343383252604018024725270699427203609224775457584924973684485790424839632019224588311623084604703054571160600688559911700198130993297509545732925555136903579263529117321056747972705783005006401616555187263472790496842740454963044319977709917498738942603678064757822259394412583579627975507124117303322518445378160338361735314735747407710058564950140011952608981014341124926972573958842046559104260549999760741004346820777558523910611153458857756483569136642741016493328611561368042375322894479807260750435009897664060485879067595761866890788947272158730166947124767107722837486809264861092989284809799444421480853779816463233585496970283272884082064296288094609546467248646819650534682578304023056582529646659165166383246737012705665614155122975224228924034921776836974087875573748707441417856382878357915273094228627609408562212657808508720998822769486476134622538263218062389164936818656852864873042799348709868371370513891736296323652397254299012099580947329814226342141043955658751461503764552950592629718384498092199289709787321579163815276392057806028754944565239701915960245171909378226294267020209051871127457804072209908977375900380346677751971449269853911653608851874401752512171899232420519413055408158970081959577752397367419023966801418763752042059922401206871817581545665152474322727109179620947683213326595254764161429247575547254382019257726021995879700366036163865857439778635247909349136031041972849428408686189370697487571722117535286370025582727720063909435942294761089066170264111168871483582070983921621948189901597286652479022700813167707522575099235254534568858874909159402466053694178281430569894431813763035741156233769187549114775588248128728719718712799817636811545077222788014418415369494256202004916664562524168467157549398693995369724955620083767759339101665869602417422472053864016740952592959507904103675838744803363162327094810149281544437663519824444234444694477386118983984680827228368280504554315603261905966684954600731352078247270297864745004293900457513668948460647086304674711880254775576115339863158563086278344758164727968861124983641382707604229371720126766376784259361330786344762424061408455672265667776832473504807348394389440143867959542632945884605389922608641812010266226216260972320516195948677703279174716049562953459471457090551131125261929465073054916016337814186889767364256319687484347072939233290876163377460446866246954033511247186617602169338198159894468774222051258781965624854167295840121179051496369107730944463313343984623959005779643541447379383349111099448237238344709550490888950018002757192550827333054632671919019735460048090428399464460952023693242616121398061008682538772795395622351091577334079976949138327324485239629309019573855488961272779706677170167184317621185412369792365158976633754772257853543516941121647916393217418843885748438384023274374075949532808874372865610737840441523844344175880115951338624893207248451427762511982572185859922915895524922659023581809888520365639962645250686485654971944904879436987286023899993865810643088696941175219977042005519713782887820939056547933531164707014498203382791810813178019077762092672489185512092017352536136312030246148093252712665563391049641398124018116649619570832203632272128301512717213989890679429329833514436485791144144991447138892034904779709152801928655109473583588161140120115216684858667213603000858384132764850325548039580218408394490453031968551771246908991506562555149029624519149571136806173188179347797364139847892817049737918856280398195967980169329674203544732604131371399571125358752367756944256847320334216235933506896696680210870076516718138942373760684375365625118943318018254573309821903593902260323522292774988266057374933580486944861687438985606009799056787298644752380956049610804941489819765323454604929372026827501947652151637701429571012636770366998163454610917016958538259600540215286882916977282611895542094255232982976406492616822836177696336046463403671839025254318774625246825083434747237825396846188354888548615518582249419593112098276280213920656107210374269391230760420773400638746280786314417113913605361234154657411240916141595819259879315027494233675849974922455515985536209462941288629666024690155984240755065649472737520707493776323585033934784617955318694460101213611596448075950904939938892856925877544872766398395939362321110354600844111433743305556794829101624548076678796365058595514281876182424437290096095827197044738451724600514344928390148737386087358558736213323063219354696952803967580598870077252152821737625506775467811717706994833566193758740312281511033983096931645190484206256455064116352703373106248174982864143275358114680054831334753819490191303211629202420819535148909823810566482058723062231261092062935134166352681790074986009685654593160686965413020270540774215439082246339300012576532949024241187280249550190342960809871110867329659171813450865165272439709675230799989153601932514953013555009964531593866989725070634861445205831824676728202392346109417879897790554156723258213222216412761631631872610744184781984552456940273600415239089571124349095144458665414596976744480957478541648624521365085235727289211949557527441788772641224184159360836482175179720911019057764804962304227374724837555074285839803697512547487717227028826935823142122062282027090976292918676236246634387953239085297418529282217086400164992785019309011821048796254653780788655957827729486722635778063970055849905078053922149758468276866058020540159695103363744848713652443288947292185639202496539326863006286391020868448525982324055265482513733292928797797799580759627213056816339722844259952926500026510171784505216052909778216574519850022847993544396973982679898692311356942920005270655535440164245695036119883495226841905889363092158284677139126022825266512491576056052463567944091474733633670121274457225834134284619471470002399070506775245676914059881045073332003659395493599292622998574476700294612029157060099397490733924806584503616739260583162824732959435973776546817950202909944341287352556792458056119178129519256167384624618332073984344942630051250402903930245457940268111274946820553009118058726876189425924685839315918816411533811868812912150581146205850134160184699690848623837062954178055164447020332998567777053608799940038384803400185304214632371229529985679278597934457667826663866726955859323593711429910956004903552037808547978553431683526000863106571064863335046273660261193313741369462525166089696107879710352495142062022126004563951301742310820003149283618223781524190954260116848574871826815299592658787745874390716544843066974333531701297255002539148442377956834805815538562066589478628462248857355143208306312551375838699271028864394519147483729256505550629432086622365545685693231450930845448132361418913506058357237078548519069169415425119377023460816024122778346579500753132462082491197786116906968897869982128613053004735298835503017754679287469472914335053124478822512220362786350844683328700275110089788604664859960227887770337681437979827165045152477192165563098126871221426047055125166418896128582462846773778789677748762451878789017560670020713274533380243249321756726256967849477976443742048137723729237453867743496745176225215653321511145725617023988212350923696061108564823832837644276509446793437797757088443241367485567365904700642374413758310941195361451310420064303170003399983189492930574649251064061102868464127916913305745751367330740674735083155591087078472770847963618646655658044251437277524769404061120387933190518087020355553076390292670483233291443859198463929908280200912578891931541243377370538090762441366012809271720882002668191686468641591368355830863057230970568526664940762580321160266572514995639525246005396829584146403610025592620783621103374324935498537431102610585693754995308149709500704458853139980240476940555086644725313327542478296942715474010033917515295957829351135094408326059996477024974835438981776616251238193842707681668049210318211110677061862244077594050766389050295730618501052565161253321518877179344694510115683796905139272226906217796997101099927857159389344815929029287020192892709681302624830627650616128883341459486324446024444084095599989903831919826753538565333780788346082537475838210634953477525769808458353244389624946706513600383946503700036122279595764332421532938298298505299390859629645279952942159329455708498164956402742841154117798777533169105636190445042222927477147171848278412904643351098268183640026907718268653354602410932247379659288294595245548159514149927308338850849859397158238084961165134906105557843892312084161306356981827615865620782012047662208827873007434789571105062704686750941132302637982384905208967467469490759620097855553177227622739969631573743550468568703871341209496804156368950278825327329990720108435889782358458013752182727203471222396297891397328369364119397541960817015953002034128761765832697458884020059789721069748316431518588369887001987473395874627435306101620811349924416784906675730486374623311469594314663121907284097182233192775648902585866174908710046520225935849789113709808230439854491752220262549806659488162616524445361238734634894998807907835385206683953273273961731850891490926664369658981461558920517850277828327144421451810882274133698308297472396496973918348025464160521912660420121712930194483078028855191114079362433884635044397198744551654878161056096131711804024030234225891240521741945288353935997466101659027155915103141997450833213023326720643670026942273291269817216174218573190114048147917340523184341395730078726419826459483981323289020387485172546692712273743936952650789205138959188727496292857548274467074698144327915980557405886603731708003655378433484965536671573078974870294229865096733359877224623897965721960294703775851166517916384909353080715670108334811986320849074745258497758939030832977763297294491337113801441325761430818552394535269930043795800096488546646620295949281725727042631324137725735256036923000123565397433338407697565372950915372309748853679381961003543025460908124630688632020080403150050586521868302410503142706840506025547479027187448718957337566856875481362334855845987658958503775258672865383098347248345617309054126395017536146016959048766973921755501861233088747623593314238361607318114829732918768135682203539559548809908651056133513239106059736461951926542574710001380701078875752424134762630477197352942736249918906816126494692884537691394998695707858333826603257401038574624036083227923810107771404551003082521460269742891970428087152002225361006054391767717997209089479977432248416353916199652174798805155131877472306056115605861872293446788875017946101534681087101353285239485258687038104214171282420848032456144463785387857969107886551562437223700064926437225375140954684174794156561339860370535556269335204254766152370005706140061661864583329374451668048843530375697665229570356339709382353030107450215109292650506309336411534222643287731933507063798207874856754748219948973524617094668039766470611590400367614903237987741113923165762436005334780677605058299606308306022261054725133823929143841262090665265993524542675449953494900748281155831499962762851705167740318145962735741905256852654173009966966139492493261095024649285863769410054614639980643600769455761985418053017754873279930449030875571280843169249224522565427122829035458049441247870650119026752383557917537665299935385774002016909146177568180673069691901358392704202583455768953674222746973641563452042038618637777799056822774000833554559664306972423751559099233158292932382578600847713075523141983675114646368738303611297707129486065876104947951436591358153379381955733842595896183653037977238438261935497346901033936084957273444306150426717548476938814152238647659802907052197001531307562994146367049292626988820209104109481306872696794913699321057128093915788098261776445407648091215028395220486255717954370673472964306678336612913787635808327144274021735896653100944022612896217992819978229350204413348684098477110802019456973440037285575014520103131218411382820078312454271101899962362011714484189497485957096084548262169330135539081747967296020046792530508403135105648086904741457250823281513172670817320149342140859745412843268983798805467873556884510936999737567390300296713590063338204870799445766116160801268365968572232446256813029964806313806163436067010365920526342616182618589289358391003804059943012013542423846629206819279196234330888423693356426703353877862731472943997564752968944913304311361052750469046173450313208149747557706112794318465765152095328307072529000836079028453114289189498147924557840541073011261713168422296970641516767990349616254860008815296403739778652485625104936240090876000883376438170028849866235469859069878028914131125407434663653252406126632938425402304740131944035530776674851693722193844535961808312772639591620868135930434756958981958061670431366886723391068933076411691526538442568629992988795942556086332293552792506633213064915003940186309431573092883576939533519107360369228429033031537830930685556072685459753905723355894369347640274502137893275944418488242944730507075042732529764739515265706040595717888097200506743784687038645970916672279367245106908337254133851992078303839570839717562368830724356869013411572255918017538434569033933698589678268629510706298702915242936275376736645103330830076263226750818016085280931275742917468343863165694146527014458294442385321577448911535628247616135504494055114260497803826575178532244167310136254916136582619156250204190196763426091859596571800449136181835950790251776633541567981304101518991383253374625644820866711547650083074188580496333404794328839097696505751254325556675216006859140939074518253199915812619507735605490630007663606143938723299565639594874447424886099884051267859106779837206457532948760535837561110502819872193018127482214967634542907437234284563889029874715060040313980398652239077116641476601423067252321637894489319832185092611397865206650309351088439136548280964750354783993081184169763708467592923743228576759897443334054546657297028704539174359354881847299479531324029901960415299984075213154248138906540998128855973647329187661728315916011284391716076875703837745424948577963975947167742697060696846145037910562592501902863176043922464380278123867077980766895266260612773103218057462345369323450231927982940339164066173266601804533616601173552895624943737154824616871060800424471916498322597821600841869792066784029908946973032949977824995916413926504831550926096414588435947183414279580552532363594402334817322519269387350768295575044066847772814760644574228699641573208125448861849632772327111333184541104578362287404892478722832042854394864795843719536234584340102225419884383302500687424740119504236720965865970623177191074623553608573650197337250809741401175256240880455689163015724842526479562527400997456937884515463232279596812685679055431374124388108689999418626384640924736341247709429759730141158601874235409385726363513607116559959999124006888692579562819936305073863054188922465723033642763779538041256435762948845612523084676149562598853518899114352852660089482179933792969880263080963929482237619981736681331817459797235776090245726835631050668252520771585874360756320983964434894452729270794793563350851237534423741859742973114172604470300841644317418825285399267770669283591802576359245303549251141464105215853343038278270948662823917457485242235181115388094144462448612223402524790510837522328365936779682521514424753134355697421241191462634711345482532168491621365123017563277367206779314949529678265892924090806004358191050787402116160046634812961847493194351431923346643392512361464292711530635917055539839597690592859996167065727850805315588058511782081273503404609537543844672454489650865297221252358077500699988375067359214868569739854849816921847082911965177654962644454525002635952658002540317995514791887986027998713735117327899052083017542173110198121502775136551421250421830800012924513871846892614710364620360822125615119448930457510936351936997378846846672933094736949986117877234380123455651740629874951103071618432561343751540622822994413056733758390340657286975951707149547062546204848868232621096792602698142097834058674608497669597357149277194487381005304449670746631475654854962650864224057549522346759369474043787607390942806103153563289525367813606409278505160725498917807946407627730881715657943963707571485928564050905125945773708209171875978203056448398557228744890552349554478448673736587278589218920984249091767109454437866622866855243294704482428478402735069120802410756679903277047245905268793077611405764779869381475752704191393427770931202739620520924683739527643527554735164925730976736397061026388667827439555174014529276694186815538155283137563555207754715555411228975297987596951830079618051705567610040981684670285985870825769824297210994708285009557716767162881542125949886757252010777184937893861744462365729632076139965313207653009778309750321599435566903567052440169735156116927005668259009449685473217633175237101899005749528608348303069806749970571341454827017574197500236424463105486886688557836271524516093240737666068829393651183971435302139078448334713367428829327502542144947740553643662798848656407051227336429811715097427089392561240256656552019846103226217605987190369980717984221110672286583022394864861089858541731675448197637777885839934787182781622632792768299298714451825842884519044674995658070453267613170372879678413700446615340561543790160530001878320849822123414167127023059850299981082505056314981899224178149027250937276100803071382290024970925674954406866037476804333742258724595420668539395230193814434254574108867477675440178584144780263930451371032317115766868898892083488386949205063317193857846549407805342181619890559709958673372365978756824746036920313424862239202758475916567465670304397241398656677051957396303810082539020716482450306044560449102506579857026981506807602038396622462981471324585951376796772869388775591058773889120433736448611046003362062035898949015654889591017120776299878657201558053104707761097541242802000333952412202627962347706535325382820179709701388325396956670377308370102383708712545539469148714584265009767792762323031995368146443823292069947074134266749532532842030914787450213990640755458173531491262930310556393555922314655700470300583138262615533266511920480224407262675261019927006859917524958905642195155354971985399583054392462757412676149633963322466232025478180040866476597569164119659826347000499827762698565672973166102858791587009574128209294476248205302529663217165558665972202147706982904917926184839352756328901691870943143495405132212262469239606638196822312345088271165821597947489816978537607749548005050232297279193868482642627013782737031610282955291760305334356857656679952734775096508533630607256170810131068532238813441345334882918693492141480629315571835560015392312324585438762048981208842336777840380753697429548261046720026117302302536075544942485032548568684508022451901478787711346791529950303837392940852606622764454239652944852679962030686365110588016148731158851996793255391656478961022901094482899309895458080593117810947441887364395546157229759134491004685055338244420371317554909945231844955570598969607179435017104604834528266221342190924442132848795749948861326033507623395800296548977057137842912581081105011626047813468609433890751306225754309981000386813659825095707850145975723003197893198828926267530722763074113900737096408216854129122247434935706602232332019755466370475213804314191952503504040580884156447492963047602075277907368949474592836101292136292284568229914752595144519939485425395870367676118491137847962417881920573780790859788656046148573211928098301844687842888968202578729363389345548844909879664726118578841070151535104441879557436655793067238805583026903330977173966794398758632538394579551561186816845546611528167106600154125275368988657073538995116027370090943089229127754233063811682298450949264926340571761639285844043754987412343551214212665587988901872858564292083519816741769480761512836071661192599530114867429794368461193754008409061259740577693799267146467437052899508719515704317472768657126759019174601918373630790485864586765487231970494016106552217020170841447230574212275364882291002920849883512923398470037276606438938299640830622624936732583405323926110972724532373311312562536691137820943155180249630734552577149141604843692926031452027329101657113111035993875207591752584210400450827481112150170733353216841553332371921403003290252378609797165326033145319890397479242858857232213992277949606636449683168449420021658406889911384467818697882758094897797624278906961600914439855663284881867557223268888952099728898204915088673546653061454219998014001377138023584494828585256687253192261914886153095783020259397153446421841804273319274117133161078149076099045323232452956895238325526883388394329126520687313816514079520933574170730527566482139725727290979230206825111793521050452698509619848163259953490804967232728298447206381496509530416047265831540125038606288928618607866601128669373798738410999240411738513114188753535714509556659768920706142376599428025339748139529935596031388541981297463176852034577565274192109057157262802909035225853094547444444372577742678320721779223929431694632101154169343306586714437507564976895063157354628890854588792240324609553939301343729673483552786504379631918285779316994093952746672151321392799682628891626034735909319906463978796339986074725804745334197814542723739058119202586577691241275850086602848673943915327134177632422753156562989705312746062294898801877593514203226422993079067611280815139047279529473661900986593781214006326986490278716901368190505348725349767647649152598292773126282416085966662805337303454316208792020219525683055142779794635078113794220445256377627400362031889008616598186884468751729136555622422324317405921757773839039837946008390803846280733807732105271450717612204179923250248136795184979902944885272714874042811458752111413500646608038374365941850773110183249529140102299277716831189716174437431236290196828225725227055986021594182413070526252451239301584601757695152388754604759328573131384111095716308286995201817301394575773500516399644434617260129231544587555758536787735521060555413786502445480925621755854914959449208159374856160703986644286385488514788261403844419285540981934399391232867728008947594664110565966033769638481637583140050782412586831321796999462303951664531787236741396260596861330928386480830849162792706193567869329192164697456471894668468774578563542748401620100848053604436435894452063917688894986603200932560193853097288971998344128578670895276403768540686307378035895493822289841414648298068513505366874531797010829166105082279941554639026256933618336930647346819351469463358431846733211908874622795106799229065939220117919589948154285556413894964793613812940343916863749478048533649838626438056162470011258781607034161449515445437729128251266408719537306417312688062646539948975761545096850375433699668495547383668181608778530988208789941725383697906624945521480444707229979743511857573542673455590308685970646127542418866439913797112249183720199952298730294626167704080056822702165483982837428934235403264218449060901530953813954454734477761937332273637716991175418179864615954997409780310499287735666337680015830774162375974823125125157897971476655431107337942743237709613882678550236588167420343568974052862966562181804541656476852211834091234276651442952126704466080955350663375990274427971916034692927740939368473012940451443160625210348918671684749574201125210020865598786411741653782963316995106755591666625164665818710238897308476021745027091909595825236051676760524239705177008549771292172057010951765222725254918394383744089968483699492233614702486915387421875221869282525032900149918360660236863680273756927845102192871771936425147210762733427394521493002904646870032025150879161447368162837447908303109256396929332215318339427520343880594933171417114848469715655056755480232378787964798250309071816613987198756199345990848821993361567300696816562788506056164753255100662665965398105411633588019840934330047473225506468444839790244720979981441154990223564052597682381035214444162361684922031467628040178102414406606656503053014838688586248668825200055035791844956646312998338797168254890758866187344829029981827356887367551238171682020543126635711213635277567159122058230964018574471687177007096484397498366180497284649385181379832988730103667223257670893378266968813495404111329988829854517538694302022112849757822109666917373699268059808349667543437778725097378303672521180866463019384163826108875215126945873876673544420424650475541039910761344775484050746037953743688590167328516437760581956663515594509958207709153182293753310030245943363489226177176912988591294042480313095829251117831851737431826767340947925181995426306615543907531565707240955448839990772530350090372514851999629330392071761307972508933274172350279030172769991383228514188915200454468078097046361934616633571601780444954192274344528475763478833545364324957494208905072080775969805313366261023864292419902925616380534413016937025589458607035874993849190047019142464151589081890379309839402451431782366152192499823561254216766515504377718441365061548849239365964256439208759927879698502364374105359243531375912490245567888622091350863638805102625567049427083939865758312041221586983788872668440880795517971897073745974562999832122856213512828770676489543833757204295113876342810283468238747768370773451098853726006456898056879382071827210935730839190597304045547783059385369684775687789077511064426483953341286758327752480288160076398278055875134558639400689547231590572421362960419176083707450840994882419902684266063422193511687763529915770262911679622550558269859332573716381479230065727773527427155479319997253094187487048618531667340926297729755095078838524462065115260756125356944154911270033653034249586558650474558781746974265956633756891581985153932099724241827299188993648016855602244149410111200003066372214782433252376815640855890006149376498932967796969569193345414928397415922304193178207186291987914563612532131392368341500853497899654770215838077795821663384485583413082086649760854966962165622394518075863752202670856060904061699200740920252904057680386804102193694282537808301939437772589664908869524944500637892271332684710345418053741043724881067042669436372787685170083306470490676364024985865742721138148616843630093195383502246944671624817791389400755079783571981737319268258491989600524947225697276732376193024106071958759492283204545114868122901611721524060598474620745990652463932938958418099086679432273454278422926991207939973942190814400442121825255614174374208623201120352586795522425352509709520928380925607334129467167545970866592878441282157253354996074772299596183560083555605119050682984297258366209053472093091541812823977716516568515762615109188626295095825206154071836951202645598181704445039031958950898754827085551546499270677817950524074084428218526056201524623307461917477037333845221290090419838899238257579782850141439457136206818711725354123588945675159550442531230078990321938232741495904519337472949631414999843425684904172333432331935290324110372528339412684079576874276171635915864604323633359221136114060441899326958342640540118544275836839476271807965965486587083940165049054475860380417261609291463864174417055057789604677969536373411675085450201643093293365851755063756608900330003742271226136584784704053984690325870370524145980346281592543903029552517907350699255097882979527472390206799963261971314135796849042110135533057541272770837139759024919328242838751998642180122164518675042761157053680004208378508347542372248456179329135594129325325761629785999317098704302000095645801848000036757822462852533226726462568604167002321397163379813989079356915801234997383916880575240755359588154424924736785214933531269205568406088378204177338643721130979446497839195498285367525792072373227334130863215838024424611514725223727452951616660486628978864170590258786565682661242353657144260130085089514695915991439524404903693645813243145376946570336817219151885203596680192736118318191428478312455901741347036076678119166118556421718573163758406813040517495236228843671437566033327447771373431307567558610579648596137191082794814386666507471964580412034253116790185424313209624284468567967064353365767604711826362385593634412279653576034101341245851952313614130086659756574280395029465986515911775548463761333249768396580491627565919165061300963330397295179195567751025453904688184045494628680282831776362797106679184226427054056166998727472245439774470117832096362254342868729819098287959808341289669077303065047482216203098700598375413154639665079626827427097378070801245273159661676441060284917334183815626116981151860479230982013445229915379900313715184543552954494723757817386692682102219111932887688472431910102743008697289914589563298841647475191705247426679769380717358841015497878107080429625485371658135447023281736884333036223071478448576256510137034581952122852619746034886296889854918563502226700064717659333096850817558337762866650074847215102645630465463046400793136652431538567375867107720537195286290254885181561604609189249468594753515756558737699492682481470800005651486705556285467257793850180841604568809258677516115062468672451660542989010573027216868940181085727897716336242377790032426712771021628612170712683927658462294191896038477491450250025539098897001078975580042265658823624560599259173572366847169311965387557119800043259781921746473883071712673574282963793400391879516103453570471518586852459557684446863748074701711416680860822905862870954321219007431855754378139253673865427420736075613529524115407942570894059520284286022661445983672034750236760199301584455073794182982502703840314750725589847857119443354709066893309032958875002691139041683372140592087474529479267470440503961671976701887331820033493466729391221132611561373760814888635462612650824455290077067563873946242338379170039227290050031756330509078025154770124826434419984299992101606740384506894217866929301149883113229082899966484908291185433022224479642798541087908345694730441413980280512861662661602706771470213841035652955220987078458460936062285380289141130340018641762526308882407263570799149148439204114096197003939794566054686008669281051427036318028755038689626611724136775783643090680350648056470208176209178857714889005645491474210415937720929964380890836821627757310818797461601591405412651570940698807202620020244893843019253451678222371407100611384460617733265756865795201477341407336514939337203596488051476060007824592582308680699504178436622318110242080607363155366490891378183119092230028797873756538625395202797546190782458497115137452743044145395344576282637542533463301130486084364256563050421806673755874411639244241497951091507164688125836515839900839178554993506629418364040383382720380855251091944371565624293101594909495610100783020658877583466836174846055675411283487576456328710597329249111108272286485765553945235828494255069938443679442088234876021546344920517127216542412899352811992200527960351227881391463878659704208108524241704996067816872538664314220662439924950877694460815637500846271867060091887931836444499161826811417611763792056526527486466263583779342699046064114089811930668405546646212030165968405345403434662783617308714481960791201303446926835042838651046027127980557832460232373405026838607452082828867461597418598032395765584525774172614243002275415443308558739276825101686628886471452956353505353955370384715925751484809458073554349388382729098654924349715649021503262751336714296033465336085864510139075380866310292157083943724435693779722035869814335149492996625396064877204382528555135264102216686823566182891942687475791845705530726978088606769586923715172931236841331851161034685019920355812129627314024620288739972505089471439110462836754063565506743483541451951778513224553098421133648303825362599104682269674201898351407252527548095113719404090295035039447123977322922229806634086923335799575732446102514221272493323322049198715014060788350166353256707063165935475992913774402319719806700572422968879242335108596595394565663334498955051432655213794191400550031429833364887178954256234573732667046440492929974967203752516430334243003036443531644405542313916363875129451353646530554924884139398928350359167502417027311326924054284986326561849449640827042956944399542132924400545022984740723907915232654826917710358661971247841892895795969453074157551313965500321166950317105147569305756758001127964499883657608231349134934949157169127120450984524493843047697787558668352229212908846308299595270019845736750792905497271030185095005304586064598479813109959806458420908227859565141582338193932621405444228352702211593426627886746943072955103985946488509750746757253105414123127007294468250703008382111965385275001388401407443710740122794104909676898917112015893869760066714509896035015741713854599157081747058009045385525901315421553075557190939237985199181484245471321999282764567685806202926437001080475765788150264646607998134834529212399011245820308072651060959296255735689421068671218895625527606533690166523353003349117212187124003578772812886867023009110424707911003297029860727101383496327165761578586683645020007655924213144179633766576310227280099127760978032820661172423197671729355489698977473555900158063553688553419207870826140629137182314438635710970858402254360792731240438653068579798672923764054490472068488268519172851720699405427729346704494105335681092091053290250295026410085377193156406929103023579222626951826454998134119182364421190273442904090969488922096777875580720130024372659356741401894642592628231708613523183911907254384097553970955388465162885090868941571256249643382765035874775596597026290448105805254462206167177519365737973336053561181771672775747235649911732018135115337407245210053529377943265919345577255867133562161370308296434514698793483782541562075496685264230468458384799933880189305483465740318827367766188504002389416816543767505434609822991241812477480087309572634592991753084067433153632070551755373618912442116381391944559585744984774758736647541483490054704740856823229270017732305163665303931287306139440698996528680684234917372354793749148336500991058853965251825279248595415775295452730257117900938294347658897085458768503181427757242043882988957380457657360464201078933740938927471828033857557775032234697724906537641404329391759296008414513288844837094032484903743855530414914690411285945581364097593566378090741751192411339359149316005431324637430969786931105920223194967209216899415692738255977103593427084150773131868236065056616760131800000705605370601978203695549975511109478595883045099382657687522451253803517644598898855576559930709206896133319034439167182389936828251897887000998403315121356395327137045398661660699112226108740515892260675896346350633585523438279560580197236531696923503955859830277732778084693557461047237661860213524396899798709198376745269021931322212666938290229306385782947982711879228843595545818219857148168678978178302561995482736641477402920948007472179899762050685981276316442841951273427278127787482986273337077010658651496673751188078704889835119885513918509952098564846195497157222548549050982122980268469557371981689825360245057421826793222935757989722795241210167475899821671359586702433712313081738207670878266454273936392651061161873122889449231519614166339511310413554686580846051873529115949248232003593710131461301647424966086390688792830354061728091804094723575130893945739436684177794534057614483413971545398991418822314397030456547147266361736171783067320724965961307399049803629781047703574839359992424790282568408554607383103522294898135175886220640732065737079373933678833052273330271668398695679913631577000187202534617289689583823954768894737862637125723742717680968022128580346846889203054764964490377866372349408743975648630024847311901868977460705633743972863884381888407961012793968850112384209637481192178668513330499277660284443265677040789415676616530022580513670380599914054059942355927420094842452719759953099069775254620878297118933339726874321951010520060427288269717110294306731085347781813546325017942468594917462958923348049337472241100151203570755806728112059548989877424100428974425073282142955208264700329413754414247951634827132102937373455238514895298399198670323703042884152745970910368350836530291905450777052410812302856971371824297048867040687448912088281839224418736112905734241118185442100856211130203724970835301126678204184364521863947964774954100974372807746956636369066628245233940333166731365495577926889559615881149287991918354844767176636772743245698132274617749328872690900782921313541139913973835973946211912521497324615514328122672727698775515747365546995993357491544849146085041196585187752064307216818964482633827561294797698957412438864298677175185703571355040790337824799557224778171343372431517534259251507555443705181170708627277949022912427843259216728090011750310849307189252693015345836053505826014768891857597921743554586788133075671460460581076029581028904584410141349701675483249001688935500207703774302227079034146600782683019098336416793212328666912131826939831726991717097710710287460274456186140018123196231275384591643788501699763589259260035547029370152083213083911064028607514177555296990215510569216940383962326287921939034141360108362707985059781696197141273845623519858742115791510387724204447448081331930548754143653701978784584640419511608976009569726618915698009668910856041615520093319456015441912396279584964675631752242861935924745153294194872961478825189898771968083979620386406353939104310361660164173025943965307262353786732538468152771541983850206123370631364708366627741097726187037762434555711255918024583404426297443834285299907274526075382401314482015568425223348182823651758637015386897228526254034238118304023094407379548452966231197198673997060942991946544063177377826419388221588460819437254371842375102757030897869785443800010572833896178702256796445255738598818771919237683590871539043679101534670941288847752816045073218060783854072993302985632682108246525059274846404112701901776404917887018218789238220523436056977146136051226695530297862361636239222629948765856623795200884433560281508545186281686800337721561571359977736171616575449463104246516053083298203412109045400791157948779119565779070671826086184327816253831649385288997962770615243237208025970883024811431527098003973210424198589803090238735826086080545822843259469250852988727851838434478686277508705039579037789794498211424899147368602641045393139230755632892287290398843256486788729014984099698262249973528365884486538723534176896149545076777492893341804925579136967662927839387488475270634591239588406643858691401855512010423429699085095860588030801819564817221700141254986487124730898298971609264186048495640887382904931118873119258884093419914473749579292081863692962721727409616322108899073859718126381729675238580519076829691457917561064475760970627010850758880523163631471513154211469294473758268727269603502354615513837961515458542692248210282040759411059392321171340511465581035118511727272495663423268729543301074947933406947140332697965011074708138897902207035816726733796369761973949862145581823616094873070399336187210278862980379173854048881257305361588086672700056695380859158540422436251677832034047698720080961724391680012923066410395324211092509302071738665885034741915971628928176419442416432995420953723598243442714232177764185828915102636545485451769152364157702847464848006150939481320438814262872088772274546138603340338200908441561507564092981854394037612646498367832786318770923296205233386693144108477432976200329317759844791664642785260660537935217368659562705433381300097023079776753893508659861271925196912095723372618073957344158728817568141355347899595825156271574436757210338597981709241722074500740445414663803278940389490101453421338641381309309745853869627640428882447137391805526247219636680368792882414991353192937016027013673126964688213149862884077178457752018811264610137787066746936790282753810857602138401967505409832596521635306573991877849396209590688556462935200616533756727693045221001275571480340950458137412179225769590796204418998629255710884326374109396403254173745887157155932311862858072420557828282794500271921704072459685960410914962431056245554524390828795227484901392027239906136660940294443403277607158013209312047478215848804279858489689768945549713437354558173037173489109562129505319473137767569780696904445721738866279086350604979260372051123329159729917876117007504953537676265635394655473808490524786939849591346164296870123135833755190656662196380583194276382588366430845396250421432773412821114870613478285412337314212087443903407893820795854269198290352934075565546905695105973473539055991257049694409406904299192097026970082398024022417666058299865610028670724962884547442262064839854878046551774526768647130596448132659944325424850310632049813272082994766360586431705052390437859588548504175332615165288316637619685071445388441986412015992651181816282989547645770361843788200329922077120830258191502467371099003062337724104641949202292531958251601201653223421670339871760314229570242093132382812920267687807440342216774627076346190631114551666558145042233745143910456889616399007403527996539384193151826133261804503381505415410330021524608084636016500410711494689473201499657532935508482036174322994479222468825592845561538773766724027601328204614332036524661039711301408868833213432540171779970039245501831324141653887699363154754876601555576444784884810372757793028752536019378291420900816917154010379483959364477305522482980799772645870171766114320842748070112966153836446177562848125773340635691709028549227350157232397234748921104791816522948176167807116462778289673139686552787223540133186133799522245739960598633137114507288899666431026536997200447516083401678886670165308664002650164673797004908814156659948707121445471079484430972660446833686635732865380228853381852047723218506774576123888641219282665922759011268193020814136767441199570729162451568368849776556240377675013527964657529126999940642645907233609681171795904812756753049348921350350052484597615159977693506175006898767846409155643355694563109184302817244849926631796758714505633302405280332513495342573277144749820026190625537117682373837187783904452964563061078617698990794734147496853697817270294368334483544106358290460020570313424767371445656746199274875007031519972872471126948640688153176546390557536103413419339202019154526468520514767788637570839638438224649067520683070608090423311224290562047629704198548929494774095339515560938820933989904280285818025109560819401710090494038005813549744288715171182220416008706888855878263494612116858334042581508455711049635962711786735013445976628914034329871781231819223625361016524709194211357758459536237806152233982518980469687031287724932368051620467661610836498802209412288007975564948481922459373838253615947935486957640013905634430546290461414038905039317059549307809640473929502598679457203888590097241166445037589102696009758383119702870458860203707592531521043870302250793419156430894440734349773433366059233689843318464578465367630890330858089276926459398288849969329438860554575266765899754832661818004265957967194669697836675286293124946368872885411169417144756977937399875162830276633644829585790945604549469403828974591118935898608360129203786837245639803040876768710229463226043983603615771138578971321171008425028605807743761475232446196495631701331784018276200346480828542835577345782658365298605393687842910777086023204461114373883530820978315907850027928795286477238689802709656029159466475634265989636711356448576742633357848263028215153596032127617927393306973722284468857450174300170702344567065642517574406255595832248696923894927953855306332605480451085434955989199124231370838143865344174481364808871804222086954343409153498032399376608745845675633572925733387909410588815145481966039634465691291999407087136367126348778447964048903976170000051570404364447787700586140338689811131016550370879484470049449709609074978012427147281646811054465156999734401588379529834865152645203555695569983807099756604107004396280689581647691989945877051003736992438332931998422830627994375593273167568384946208924336670600557241948886879701520138345041402777189233125637303734571347879047069387455179462616916635575648226777136228640733488082297606953365848835368343521805718595640804841656755407714854359159324752091373140591051764148344876743634312737708684014299575420162646565690749254536965210190717576584264072462465730218098697945448210256653034996011952444901496408999690467081516610771750501609375056955092341956862381870008794970438235302045935609470721282515968272493597695343967086830694141535565129842295985496170802699326107718163932035451107848711005387248184335782514018615517327098375829985643093540523278426953813757573533042427503883775957671947992654598591441331619282191671323708120795364440207367788166232026117387002969036613678860248119721354577188379685424858325321332001164122316954446931801242724443306392801107495943651829414898721648335299394251860481386339113518690258791165525607115115554309413980406626983016882662329938666771912137366743192781647913417970156820047951559252373849494752216214516501879737272895865546375759070965311439146400198751363291836257934506028245366021505023101246777695210315438029200608243841085615149183485214704863182377655975489901076939717958904394842176277796863848931685883251120533665624405686286579790158925198700205374644967666660763256755019640029773561460109986117912262041816214412010683943659732200809369973367834337401581901614473670179386863688811227038429099902928261435938341252014367987886427291046755962147801899647375217566450501316431402635976543482433570460928581698781979029712161396241746953804158336832799560817756601948766235595183478177800382250881237772279298583015140864881230988943931858360347743814780050549516617786710905926946325800540382344719321440598111275699185921890031807924052558369718769348530358657046895105574565358200147252678643300678657254687704023659313174800935849294222955552580295908268852991992789783612158980033563397877827530365722013548251542933410108756307034303373747069357113013104700618410384825313800821421877663369250089061724727423783722943861781981274993644273225288343298004029557096597840659501750880803474063154834055317634253781620861711968599791239513013720727209875670295059016288057660240033720301264820982871097361168720559784999130000639309956707779195004661635177351006219860536123988845847518303107235363636733659320019750971854135981166981822043756082725631441665169783714861206611740598842167425299677380864255143610755763894172067803767181656777514707532095413866578103224194780437285095318982684102037185684639558580904959900865327697344612454895337723453982861019168358225038807637329983967491875992586637342250041176694036584722475594798053992301901357561310978878146464466844234446094014195880581998294102550671354140051579357963772164682420102652624414407321213695485522980666908176244051263545257060554257087074680111979717808099423658404375977306818911826997440162524725948056323174246795359109210396603164401789468497880261376669108368073997756864188592038757264174201120540255432175956240038276405631155270494006835122307839617115456553777736012754296383573797867144056230797059069216288019403874887317841302501814462223620671728787521165316933964326041913856866576410194105676045209950159715108082757954423712911610384651812838254301371415033641276831478068971716527536330382043861244209942705858403468207463147706541635063272180943512652109309009663701995101080901007525853769196334337823715473933052525137341723938372435525936163592086689854350106517078408533696048268214175260405549073753041961587764604938309096888446457358214333211146303478083047515026131560579728329903454509776367481674548838569443974939992788838783432408963350543620223727482672866907661459408748465830598750800086429094761479338323353934657103258391667009744796773235598214552752123658992087759825022903525634908812660110801024872345311450867660093559018065430217230662372110151532438170160225372069074559872099354740786433032437796597513493810960970057801144174602620630680122374260182250789298132997459358995854223656271044235389634666443642262804046824369281618153328708822575545063108280309894237811840052452205956805971129495737993610511982754959883789533475314032014141130825506983002085463789926805952169194767894197519563374776579916427635949431673211300428840268579856221891329671607155533148033097298313597570269843143025939044084654445792223311588676884827603330533576205729626056115326906250492756967081909876219507693375734704344009747110681071485017799359310922538450933666746794335265384385722380778608791296740839310648947651412933122952428104424478336827299216269268091886082339368810992151304418079038041063185554564803778726364662817983463919497614749123009098568872386735099968296514544677835906711533834040228308921264637655112557512151531715674419898896774097110882235845019661468489637708401872349958622652055922169281109446546980868347886592861314312262397322536616584368022675219805144265417478418209197860720774398615944294953612359912048687007044322102487065325298237073032152485742350743189967007067275944535793378131514430715605397967824147880966803430404656488913068130193107452358213226238761344965536570807274185391041818612286292339157583892425704493207314215453982945219780198380129480916725661613084369189782391148759905933639826390891143012809347676979527460437860116977790544252699932531979538222459256218077993834005306508927441078221222865052827908424505406266411911648531014179309155143205422945250748211785154517217313380906218203941307160521282720868566835336816040409689953977632239206302839245789083984495167288670950988540750856113014309290336620728030811396605500611002706374466543173601714662326369494728880902124111253725425314943417096484513960164284817599499761141760635638657215798014798493113194988296823493476102351761437903211790504900388870956713180549871879145877174613949234019275928218447884470351332134339900452788655830437854940106333104522135141424821072449511084378851514481551170888737514069648615597721936947296036304273909855666995667093086165738816295852750185434244407316999659758003811107477179501013493423427979838691404869947392187689106878829259669049924111558012806232501231323113501219239374838348016829795616028797852209753390978589128972885314986757302468146035406928409807011715958287477271543652990131626454862739373300083093149662340479093579581755573249827470362032865572791145165737170306821287582213881614668728126388112850675016255794163041220518812122424561818165171698812655133687237767780064088479057324551086812426578287550341057955898054630610794981266924744119372964295137289312538731071661160049692759212302655771331858389348657097500666333013851964563319151670220599067907357902229875002855324849500360902298921295479618872784126913703410314720793611374300794441915628978083326701402927767095991668005327404990223235645405658714236812013593165738210540743833184550685966935316819786790196070061844985299512234040950955878573180426474585181523840217824743359853268528164766422700871148863947800722929925502068566805530021221324770647299438799626199861782192986664475437683625368054454958331220393181571441654903926865416977764794467350159066094425641128898609703192973309498758060549476744041940548900453855232943616424081176555579153579961853626658283044230402254500511270416219428845043306608164970517876355217177783769632547793185477516939154481228194502907742349606336637146778890781877187367831946531032952368419928635513244552494574647979997709899544825660068680078043105525102872332629752916126298587628145573133628064847218590041691992590194135750055699260550412164291162262678830743090611614692167482205895344892659076639102035314495953990893417280622103646140809943072546982264826868754806752363626754653881777845445764605441823716451725778191263366910478206176969882250253803005679076014656277911993013019715431208685227296845302411474434503917943588542095790852324637355911645312050395715441680066473820698788291324035334934988343468988162988895459230207379727259052853154120923700608921108959522805083418783711024038798731993256509051072985330920557405713440000678590794452395438544051946951265966001968222945794224180949547239748075727477472693593741660198514785376977593128354275140826308722894842147936729500213823883902912768056233259806401172442576582876113120334975578911855155542943809534937936390049337954842621487155742576408605527085280608276670942079776552418002531748619455175137038084236352102602776531952519303057949044411817444444619535346730608599098308552425127509611480476136216994546382018792140443965196433347383484258176992478018658561921688646965371109583847115382645619322637081434061670804156338859760156874301992567711687542980589696690098331901861553980440161029539194098232241319244689433393369122700467271570358183110817474254899995138367961466942834144367506498363201972527107341216904248884230963270282815698227369279812468987973617110436802865579186065414718753910538479232293115162789403809881147043552575562183597270252947602862796376722814519687634509855754239622849063992402624781516824173254596076589152435857828482687984035524249635400379812939907687737003741545050802456406534801000755257692268271217550291529473964948422917986089088824712317030218253048553869887701511201013506164837201191124479101018084062643044640902645771323458873965191995641841536658459028311818804953073833433333574024881984390413077743952146401492995179933313428190200806613834786451727670519443783039091218838896647198191017537925242608097919952549569904270137572511487202747684135130373020090462258046801807250815182106424126366121062377164554631897693675056454139947101777430266704224461402309920205493143310139683365152779000442911739341987808715545015195249462050579128746669041830989045087727749278652548923332256610957771193881760311038411823362494433053805818835078265775119075400252280209641403507551291538293077239799097395740367319811901683211127480492278726970665104116068094995780556002680886693508717455963230772390583250334061686351902546901664810455595313273767114527395798728361111586129624812001980330963591314385318389455007502819418519828398525919390482268311709101336638617862278646129545502446997708561500679854768323245180587459094628176965620268392717502079356543548447271806233219074678077595525610551601460615322046476203723473907954795252517109778221343434282718521584610378606909107639138566009884159396789471627215910888621529210005328327021866826023898607636353011399744175036434763048072182191987269008479290591398987507162209993644758503428093411768097887400401462537489607477344021390254351801915611377191174813150639010243193032278634883632495237740249198334748301122380148830733810459596543514180340313875312076580102707531177267046743936253135361961510826807106084052135344097998409950996334977505109832628540688042922095237467669334616922764318617924545313035409384922841948145086668085561593823256390677622756577334423914539404954801783335300065777366483556181092254217327920841702227225277414080264804907966036314179727285688205077059561194684158524474221003184024402506287039357228983026600489544720601285727926427071179488795485124723551349371134441284548266373024841359095405646034913856719829668920563338337472775487786665191357292917821581869470885079408152066684294723969849999018189220894864140124963558266451033236636918290944690331973546916118877901291363638013199908382058145509073222204251065419354506378992846595945663538208757714325034441537880032718659258871777474187324509904755091738877721093889351360998279643811981287942752391740269147421025868708894049594604656219704046155607359409589229952026737410324380177168040685901166914760402361441516234317750214214381424355229038303522448817333771705342432996490159413242332109255900576163625947170354248631527565965189502664954538210765146948852954009595569209173542684880555642829588564008416438401935348513914589810233023813233137369701528115654021808269015410713962705041603129686711955247634414923532166039792048549212441716257387073180813941435434899522348669506338712882529121037916228969907065163678097052923459614893856643631075447518276463066195036452463299730896093443894424086530067450183034895143305084977835721926349992320947147295788775027870875426811011945820480548591436890899955423830289907934219635477658445864704252931591798113202114718830623794516269279871286438197779671165968838226791018355502393427023647531978330124089004575725522803005716064017994308400560154595903306459201845672871920798680118537785124199443853837648734444699168890294726892622320863509874210811035489574258900739932589218386510455600843687524663652841526753466860984065953214455191342861951744302877592283877302901986902137692799807270723586540435496059266617782494023286741330801669608212378585377076172952346343943364979274106848420162877196197154009182872935206796820851531246719664301142368840301552176769458578668762457815436994897158685756935516865656890146802724407803994623803957548451430021461246623659852932430147757725930711401183158295279346244526158549935372993489516933879723071877239278983456371525090192702105848911262510749006297542086025520579297847397888264738189588475551447899514561434796192316640293413976283384775386879636903437058256674923512913593864759441305601201282266781581286394432280579845936282891711638169863770718837436359476148585552974640225701350416319541457804824904742745482158847314594457606782262385710102424944687285263390320811582692901689134218941552946384531324052600052707236452194181027429928854798055280498169486685398463195099215553490588956196943488385799958412275993921165941210849515016282259288280592445550409777147813098064967174249986869217204209340038487558924984073679226760071330252463227000173006971206058442632718154231891010920213136832571289391508104136732932249571672044268347734532476522071566650444667224602047430650749402124296407971528254219109337733044253744501771883712090865045834313895988532471222030629344019543993489899092789323802687818299567395726110855154435091076374699582020821016019331483619118403265028971411111091182073410118308171236605595125638170451381383115187424659983666481877464213941583161362778455947348071148242177898980132175457046239145318339275019228893832384482984320344210921998558819916881238496214297821164866534408866279666975736209170105867749409914346955766705679257156265510427900803037690598791003624198511951648718157619079709238509829505767446186432049007935111272934105137022424466762579233146997003883481831915069545679773456472436564627507812174484786751988733047617244620856101081558415235611372933120695903497188897339374579993989350773036739592765776114241238777029325759258320502031058546995767729369629171827644058243131377924782493673359993294342765639516117128570582844356707361486670970315557189095215751210631986290937908169202275589343801662122807735025024206489962276900539414316622898143991085278016859584745464089489781157931010580038037772743077149952621128404864835132811964280623648839391586461485487674095223581553892003190969617315119542653349428600785361810057168378846398469827105690456164546085730760198753099157190485919824223838127570666898536153491705843678407040778456284700546064000549337361473743340301086960026204477831598752773840774575209674867177912454604540224407127184473565638680027510958707182170624620739594575256961983742447208796659095138830475531023115339640043982857891296955184886638800557292198635778371772433453400847894074426016541960629025173349309624831254584695012184931289534205526695529438404554350965640871086707754954225184777923799029346930383251109670939128135140501066379837697432835240890994213953293772601462990378393489546833741033216878709791013652767944206205589599989098636083259610494399440112047214581996583812143903458126817481013834225588933139306108809768125101751235238082768601877967353218991567532716268938940430126483363136030106165044919241560835206837843334762373747585853569310203794895089611578551049366949163236980932170518427750912753888549822490148266826562970990037988980085216214075437475766788655798776857668452616574993559413185224133479161528794058817132114776316931522604574284216485592400607875239338442161696790665331376608665927198566831062460741232920404446883257858472612438384765665580348904063170977919373768411342273521495465803289871159352716520295733211402365245147848656332758268182867671627137930994645083587429354328370176367734036276883288715706571703616012833199458386725004379035566710781029069800587688102023414479181810553362090222526627173898396154634954735106982130597854455153211872984225062413472185893481737197954985418022279927908071240198838283296136029374815679950397779194295518972111782762565914965607495477492153153607317220460110280255565219722437772193860353748465358418118523681402890695451443661915092446309452683489165861692200809837656585458192016865878751900659771631378306977002188545072663483674798748383097106380023464895170380185635977745237699801563629490883439568520631011533325087991442075141799615365997335285735061310185100972736888777276133928993628999070780154746635583985590580794159137608089537380041564838246727157124726337138944872100075087811743849659419784153619183385440738591849403196042684760371081065962426450773540304982871283431645995056469870564677596072423342393885716064446399729019114965924798793646955165163773535616767652611732046680689032323623260686642535638403349290918674303678747233559778732655695191121272352693414272492900976326812077615595331410060739594999638371727496191201763117226659433672790708681634951275305175186379402294705208022433228590989365668368417305045478958065469074748957114961866762662799450843483956775018172164311842989268861934170226749275086599675240729298425599890062230894344122136116045248521010699212661955114039879916459135857138818164983331304518552699267096454166484055967894604787797586053144435700646888638052857945705996090048266423984830680902876258025636731145529567218608772276445420188129687882287809033226412143724128936735530616490883511818438926301187934807645804266680829850067704175693801542827411494414678388163912713812637972681956576742946059106279441089180729052191506593511489520512091967085876169683493609853935283216557646079259061006073457068699001378897103357338125146724001049399604874062442382325215762231899044038525441998598417334035481641889599008089363256821788248707748543295496226549114889365375720993849313846824223953786620004574179282939421709138766592318175228559488468928518975024585285049731789095765158981133547777839640766373821825774381722347225332603976966069634634980592121343057189541535238620421935427876652811597586038080062673109355055219050029233605186333642128576633369267719575798938751499603385965777551468267112396614297560483145678846482617063131431459697857251234092089049098659957565149113797773236374139683170639432738662620072390210244651223189568972955784533517769366800883450291151276748404957928910729813912428269966402518105352068237621160243100998092490600420449033505790663380363394277109297643223780298557574463561768568897742509297337313105877758952113402539115623163434123822294315472647058872683324500897505437213940406204679627269747106457905674357600678714090550178892680006304735390177072556072057686634433061457318887817264341411653684248237426077178599997122573836028146596984775735034689736986581523409102118605151897184893451672851234894206487386662657539633366202335178162122760290952229585946662417343902600519306525428042263281199751180003775640761536440447138097572952401362919264937795574214954631481510819863898945441796736465108838712755849478711478280075752686637069538863890123294071952514320253660003010052173780161844809973909743741369778161155285749504753000527771243587249536941286697079452630648227856718108584398279395120506941166712781762031184755185933879658797117487657068788336199442838375847644820526866824160778013266053829751631930337792044388868028286328591349121157184238753386032608373019140113618302416512966516102736555000565829578664234406660280886700422507234310170350295769610634962508664881473250956800832664706767224039031810643824608829755445679116281612702116074371974355063570428383646104334496358480123778597744723233218648886872307611987247748419288058287186410316120027609311145953517933417576801245009900862427632075477262298582658584543858538210559928054322808425109807991421457781452227893664330798062170640454634984212415679764383391643955535306922587226102234538564336989959598400161495939827558004401890841470973645826413117085344198438014251874142975044210537946612778901172326394164558019541699123278664342475320977151099591692330293165539103856966541523501291044820839734260831544161147532626542862978812940178258896779472791974786113704489677546186253412102126468892536150317745334719750945224958792859561486544568898528285389460315504430347343343478015464475460239933260720395941351528820189395144727877888039750700684946381311063845353019573395357992722675217897615124263082894617381263683556907299132974251653991606479889154226932887757467621396928905667259182836843776437576269062683164407542538709382475704581555570712316430061728559085168844280834193995466496902815151683704828678137568772383307757599931981152961306734997950692149786274808300297427013592446873501054774153511934238339624139389974503434597411633716168590230085219093737194785620317652934445867627875248174142508565782223901963507505534392627821588420730489100979088746481703494478962560724692855627448295571489174663630488360621639595851553347036771519728094777152964402792717060510103950104499973960439774258722505916969545367528025948393846009809624219032829581825828847576212261487318598965095288089596186306305182180312152794483266486242740538936334583994498908591775401154521066460702971536639683156940598542121452697469066504890088474526275940909691449072672956757466859481492183499903722241324149176104870545604666496255623893995362178686241196183492183897978627819465518530746307851235506858616446755174449128837338617784364691548859168145436797233236873156628081781198240639516231388958211373594618825721336330026491731213586520053373069959997006987473682724178397144998198131798138371992842267637218240916025540019057986512806186536738665611982970190873375196237258887632466880896705918616834238420381069202723999874000242477976063841076088405535221847075269492040139760145767706066059999315833244550238255206201727971662211610201564718346976327719567606702787242842539617800388966547502284305169251955772379434157918427900899834938538355257569811389925934136791144917873564163854961567015997770020280706308868144714885252238490282983939128192084266272464821436989829224355517491636588333188539515941052191146087070551159180788479922926921325053134523617640351401209682855607552292264300715014763338002301433387710471911679247273592697549188056991689228296118293299724057892921439074571774351174351221477494908842964958780439234176907179379133053889143505896769649179472720831021224574914782949405665613847324553730495526247802213129473140359011336895974027363784936950462433978626482558234306769919292235296855765219436665469352747640593750498712716842221549140550106491445884195384733607526589349240961905156203268555796061463263813404924922735815587779478301523462858866776067305960685782409468560249255484009613938580850710682556549054316888611123073652954621806411073538935213180163494377022411581598854944781171654595534465986202418476244378755556284116632850210709154341102323929802878907246973615758341160075627374017261661441897386186756003115569035577206824314895796276265979160548138448023940767956543499959631142186007130000897738616338948393762795810035863845511616027165551734267571928968342562494157698951894387714227754450650499030466582469605507328717797423821129780989349375548680974148306494462298844395799895097453732889899004426050523667555382681596989209376132266650312257448348296236735786498081155615133423625645030831974527344340467821296406930576798788715921757207203008751997598170044453022691854110117262831394572415368842451388907083635408425011645929932492530498294132776665818470626064084109513143604737670084953026325672430800243884421652551690431682928831727553596209020636672384197244669741072362142638434729449255681455603209270630242151881090608161217014366417935650962696347011741392268014462768323697935828072291459884307440040132786965918908084464205141485953309761298746421372149386473148502046240889123644989272016038042811697047647847510652620895961077329964834286045460385578576544834998855749298095859627465933012493600617399285559338483790434275504470519160862011020819818473917342413924364818381158919872614091997010054710322998459439678636756402940613257692507530684562602929698987444676354009359226043673098287008617821484911727071121134429944715823438138847296441484439743061191571974839934391963774869124446296804556046541683147253782146030939885732496677157473227977301259845752732130854730921193549791949835761685717001225284858512725611343215003451399912803602348021890659560983413607171016646526933289310610992718839805410519338284253597878050755998238771808025475902326531464200229096979111809931686110796033810703253036036758780184415954329084255528462851305417488293025408650978276253974145888786926298972270136873923600207262419877171040245155747985897930582583406629969546264131026072293146918129291274148028988868765948529241034846925003476851612264762661100147096631981580357104633923541850061432871673259941315380387347716762783865754517724462787674296069433212044283672641717471232973077592488458482139339501716369835183654080292717634320201814682405272319662724680294292402354956285712543465258211086959957849460904808945529203274921055974417257702967099719909515835235070776663208183148168508041086929663621650447578065923894816826413071419188074980157033181513574686358920105239946906000269923653747175344107762870962696999484528287825078550840063767321368618317013267605914786340809111493026271017011895660784981070860311652891918753226422911858537858959274166494093946035294214688534872075385927996665089607727899227534363318979812407631588568300333394173131394413947817101626009063053242233974979363734307542485917985058732678859893137041528255392555757314827104905708777650000830188155030317172428431095282958694549156833691809565926098519875901062682615433608234846849119245651891634619455709152120616345131617689611019753248056407342703518788644723662250075513443663839188786254114445842533718542253184301519950414449704063273482136279911642089293104305729011553468716813397764180906359129879805893025946336151754125858855772779587263233830838469994760146665568560272810893179330738576669994938920615735569271452539757747166159844100938531100705836061814001795671306577708713134952966420381522610302881460816758868590343474039763443719414675171065139529090770110822615342427335025507587641122273687854898037571294479626714132900537283639343363739597654246699151805107943761261594657328252424887210233455331934906309735918026878225445238977635842241745912207651346534664096306000669795914595746008772639298088082966709226959985141759010139555362386483311897576710324237040341759080556714151800721169350616059475775450999866477094681930471708017946171212430359437030884618357766828293951824411546654277334452782144992335844173387725828358160201942872680643249431511803520972110926309508614453306991446340631448125253189538141343426276566803833911582903338068248926944971366896351073502633668145852290168671255837024267549700657032398209687199214228729859659867821011670610648445713348660305845303377677646742931638285604557370732969382256822216590745931051357108647939517664079152524142015486742321997883415045279397734349774828050485696794444698988153116095486716194880969160917468558058534984148342950972119286932697206748169339531239494487870456902117689377514517963112373388585339021295366294503523298360202519013837198229316052100721775234432862353833855392136413206922197273441254444322383263519774426929635966895757599095424892625470629536131483179619698851231997251953501395847361080971280751608602006509887460596021561222138007450098673155810421038193944543207005856879801630745365294623085134081774979246092536858835388931443653056030699507345231415820504451733747379839961405163385912419331411539290091019082262723235825007758670188589371910998220429687088218279080699857554356012171512749631620530427519258665350928750193391145615996017052908411985003076611863577431263252977883917735489866685153270603423122505207082311167915180657478628245513176433448906112871828245419458996063253421220989861961594051643025486134582789637327886653135162717919943077359038494455647439681898592126369666955502161645782383862314608215608405699108890911250716571016952211187110740902830482886513119908105569733189826367225791424214924832704709749444173070348198240322083011119549947269124311210744274842557116886587311291814196758869027928107570718835364808380567188344566575581636539561666597569049717010167240771144241972296638594059719487667580528602189088365063037535956967624918806419162081280334520465984700965699469856432228277181190969167140078120015659942634958163100749402488721274948506743703546578801252693323949367896247790441411320826328331888308011582786181511573246688021964775183760403490313182831096739416237671052285068160394171708632546445947917489264662040886747919101048515895145941053904545874031201582693112615891493374491796949866573745018906850667586070693295035836726932941381443474036571572528592016855556159456568144888269074804442000949223357274189417458775343212929777076702976172168854511732414991167231703622733778621352770719451723330283924118628918226480450971155958538473047276419394483455752601030517480673967754183972879631599348914266726090024607354774753164483804998277456115910323857131815453037184831498305303993025518680408567745030783538755337946774744623961610200192976295983094287077290536058787038783356653383586437487347511450409718415019328917104631029653718515485092300675630633496228147800506713350763567351934168019026587276403242238463409772184642376689794197363194317307515672077779961126821551155986642438534510079118232205393885791230255499501796348444655331213361986744809636959447439331008725715145311227915461886281405642206991298346937321436953774842812734417585326923171515323422464107963149938274147470111754691569854633701373600504056307233443185471145055279989125672905680267961149021105434495467014918276609651719195159009120257568077869348867387855600870000572459615259915067543627441286739234147119608081665781577517598176954942916267951992978824429710680707407094389127682906891744367169649327406592251607189020527159006927224260869094146355963819764020784450742030749337782898403751213910677245439067985323286490450607253086899218720166021992864592619111429492479411133450563170860161369404195267638657506221341577834291770128570304308368977294244302141606556072246237046887329398354547776715745401434915470925213805297416811944280779605341985713152165492652358571431834241651305518149066894724260323985160083639313657049796663939318502989437605589528004646433865096177100777303365469681294689829825684477528677086316745196404437433713833685818530141928404332234553870305496045802988836617842468136426283236031654115452028103829231063739896292600605915144199892481285352193425587523000794629326305823278473059801257360425724351898615053454934140017961389126856354190036762875490442229982087929075214637691476423904980620517734518398688408246668571106658331047187666320398616986426591111078118602098472433658909058840661617403569703793874056667319762977762601176537161035399445094991696496757661197426526483086162351033201440765017539969892731255455181793023334006344447475413695366543028310024908981557726744876250127823372905353497385268960031620133231550620044682078828762310293845822121831463036798743595901138880965720612829135293861288944404126137862495234449475055965223320252944511782199592134506850053768288541822689257550383792270215972383394388023562996452286118651597083373548477583004793677951672966650154600733748579420906287145361979895216445152781238960085493044749997235273261664595563942378273684671635497827119237641468735586792323838660119685027564853219071261195945508071557778803166738728092930117827177321841433164641896154559059490203104104898104021810358439535327833460030894658909848422418876918592662060874831912596016644814334879105449741883361784885467450411616072537919792421636736790296214449868965999365074102962018401503820541169676999481820422353969861338058271768217794035269642210115456849316939387953367541286902615117516623871372985807326761939722225274547538669707526734502894857327685257620541723298906760788961309279732516094673155319616939867541360049856246188183758411927794306196197395276087213687640278673932090195477325319506277531414974493285134106365547232178091624342130452658957681517037675597326172947202680198652288377339093988905485861943197699445903767656502208244586816680094603842665110878674411897756270844795306690496155766957242951137677052227308356517047387685297259433696303538797316437614919660684271161548747956544006487628851609191701839684252521059447898051526928297199924335805776353281471407660307451478906225695906731837914837557541011639327762248394237069650084961429921770192494528804768968757239566456613359282413281319665070121701284910933186616148430813466277058812394262776757283452889095375675923547841533569871303586054324205999134204407912543952811652391180465559477712997591670994402696595896176847811645560849678778050194319300427444991291247364644811679521154153957160407490450359182581058269769123023297908485290075320603295979701411887334942985591805077875399492643376237007452636134183454997859105962082183742625969707327803025795499365438836328586220645581834051871158875324250328004796666584498877364292858616162312268816487953796007585465403464970153259048864710146302194497547950147595991127257574923295488134360308127586836362775339819071091640892139902821493747874037679662389615524399522870064863066316708637324811044789838639386429451967295735469813285225536895800593908897116304428016898511849634012319258415572990396943240396955422756885323986838759790932597134727827065667795679939856315079368147583528338040138095797300617820733231659888111711769983427499324888727469250536904486229638557026079000087622852013459989393865483584050072153405922345550426575233369122623344372978189838477969061454801809140588308409135101960281588882081774592612860287126756373664997432185980189337736702440112801058234740159763574321719210353039154423664381688454230169661641165374156129265507950671880340208030013178114545381692433772013270750306204421256878239161751031013914612212036163027957532261708756121872034756416440187536300849545799093589770075111026401300274034180394778527279715069487581084401841014695662228929631228397007321251820520722108889826157485456897637590669360097370972284748630610187938677090077482494333834468912984674289010300227296975249081981324095865813153633110003131639114483063057419373463745301749739446685542405708467691500078871222520437021248796446639534455997863719190520319409351518506736285039291892347168370402215395906666949503436067339866207257158822938369945797616295752544943474631054766454394003175057413795650575696966384791542693975775754257283208930417337479905737248446641771224206327243099292298662412321029979186254149341845269855853713111542736275497701294271081574250490525421464054130738085298135045405378786726538246725002970602871548643612984232588106137284662629870638431315903306433701727012049988679983404652052503172275281573245466487397046621961976163166753830777875276608059562631599013427667833360402554466619665074115129413709929151553456313086807405287983324123347070077029784191794149895155041690292350933815687982127507603694717745788543866170896252174143722458442783288356295439724635902858437785225880350790786961034977064534822936107306248495618243001958417068061257824839727632195149113740392268309139524267831948684328365557465554902549555456801354041147896739652611999000342958507613553766341027233576501780006227993239727844578772861559413981220822708967770053972887030900335759299657497555998133190384284902706854871454399780424708290186514519551744273217620339432437766983042218412131965391897205801082288845069287794043091404015491593776631491777440429729188361750209766226825505570598594609714157359229608955181708116953006294723444107248234364326492196157980012306369063184377534036356648116908709885159383007134423489523500217643658089894282961866884287604602542942396033123678876114302086369867339005707172119060739946704483455674780804898975254878084907426061079035120133065941865848066590175207866335242118269698898488156080905355617606509178955389140990882212786083516056284004697566370424048613189781935200612699237696852080495526824133869537268415332762701303333284537686578921634935302099250176482387416255646979226555024918860128448217874349834793683859619496705243562385805574203163234730620240009667481679785637991924086526279701037186272944954083523767886405461469317250175390704288996350298620796220622966218257656402293932160893689699280289848782357824764157779183848662568534203410862154043762152302620324983158719169391442331974204826666973469966956553679321794532353334352865447983939623514602468506659884909647413345457337816310943598413766442613535989971784352647220566029208938804865142665576390982041676344857063256136712572905206107002992638846075816405867301079812818992505265071826211927309193755033445285705832716624051600929264709957097203361805626145392167085335199500381518903069491609517023620096681774235977508502998632801738267606456415114736759279364587464643501703422345742781868243015828833128245754509960888416512058976964378102886417606514676429096056117670167943208302816835267705185894357439961181980662976325048504742118883284660886549001718436725115245593163518943796894589349031880903636797691564031886766261616232911823471387900779663135509201377594404064192571891507723719806162559135266324930319601597447830842134569069216219259249987449671029773450168379270078831612092695317148225816166647148687334024812448015143296890931927472511444157106155280602425167182651188511033086756665549976570044015778121562087515119636720886501013750993204827888453780467111768210729704614856225054229330275514950677027323281457756886013302065234964255477708940257989988136359599081480954309223711433328434017667614113607887501004850159433736850149785754695303125357238976198138974942353259244026125136727386127246120498360362556867759438179657675289576010431363968814485297433939208615032536633932831109402429954907290071802460929868950285134166724764277765307274559568982501581326782575039896830238510544593854912366243467656477531119327103021407895341551926459120109866750637014590148085152137846245106566344748939306100795388991158387289193763867725667831112062374573738943988933625917477150094679612030082219860752624210171062728031080447732773381652408031183877535402122203083291276466757655976027850565348116814819640539618611912919499804185618042367836945751454111883954330249425648477987983496313281826971858323168601191880719538997878734544793059085131010503967593520834383620341478190141187138684763725785353884516832490988316743855607646867087735375685179056676145368665152293522147947563859327392301901219532605158395448474235593282934318049216714467015483867485729970677806655516618703502038994394342827645787859386103750552045434465609339793779685059187616937035945445061279386515105865937040294953874675245808449496722545004879784605597844583621821275174551147114739902724722589972837682843504313434845380851792391259019126037532697545899731194614953423042942022498494117260017029252652728119465967595097643995932363190190607300957989963339579598477794296243869642813110524059091489427888659406562936885595843627062682376029498701811973046529444930237816308559881914259010851922958531008440093360098035628393818375181383934446387651990241675436371793437611982273223030549082689440315296469121833786245886100138087052110647757644611708041005812003075992088607423519431561879810508985746849417021378957950972717769947622796165597639436346516477210984752776707696624170796072489496391460646248681551994594106346247376716902552465709574316435224945779752361089763554248458636881834929935311261127520456062594378847113029709407574656878922298038540077155913369090985112923397774120632747661969177512132006008059685869479608487953681863561455245671020507146632641187124995328895420178610510614694082434094260880945894794832508953336766869417236432290782351351872475986739443600648419993845831355985862398999546550736804654819028427589469706817177407416504924497475708921732063171449655961787850690081436075354261538120532241728522746783957384414753655202377107514299909765411347388202171395001817662961014995124489986656701952693562638154086377336440095851016919356955780401909860440678730103583415083768384050246140489236720794064354697380462750312596129520463276893667147646618100741979012018181412631535833835904206853990564566318360349436760194998257090278235029993006645711094106898881875703709192747907865726032095071743066256038465952070345899433378624343336160559005543119776540592298373685593868167649240048371972762124611004358203351366002024432826433637261590753097810456504341856034992839390744174807513473312789793879059477964482639393691842832507719764240522346847121125027802539612882245736072305430130582060811486140406340152320093828243926495877055042932560206914489896542338623115778467940956489526198517251734910711951813849944122631122912802974069790032040550691100592090042089014109640615481537194991512733766977717511113721767484532934206035183347826966298051452613396651561710624870372102597447034869626358758936575412349696331150644059856955201386783480083987829342372471777712299237823333687876587122999770596246457197644395519323615007356947355296435517860025233073545007991149691985522934219058078159465851536116336649430078833201981972131820236013153642881655869932624011631946352836583440961973138268516882617426642856643659712559933618121983871704979628746515040199118810098112927262436274634557679968194421927937024057418912835450168389134113675486842025314991623649372339546214900892168985401589048581509975886647304235686891069531504854137075653022932945575739436700694102691399795507147704648509094990463537058046379990846438494735487722600278522042658905448693281255496614486613590091732999297190169572189345726402699115526900513244283534236240504117541410381231745813661077757206701706507716150370983818755427392904232850968854434575831638267944922039282298937835144763538339646891450920579855912988500724100700207354195424598018479535372177432084230748601035853697891719418335821715017444520297667070258328324871006635288142935637744302492480298063368141761501439251225954942218569672154328243785010976444654432896431423667069827426643691255225924551063474241669667572174722192875510036551061604358868974648486452691466514714176625216368715548414641349950410534375960213076739757533117697300145071285367466548949120684090251585558759931622867410134840976467025493614792154392017972563002255002440651424443815670027873683827845852658777777736314225598937731392327240908780276022956289376060625743534875676482374171326889371196984434351806374897687904412046293096060502540832030637353948878632487840357007074162747763166138306337034363834883001191704911947660630161166691731675214945302431182616596801954682375425359200309102243848262541265173242273978545485865088084904422172881417419752106526686569724879009523087374632605621332980275108458113344644614561397266810689245966073004332516405010595249607897981087796116294237156800153250042007941151638406760964890243661806227695664565023021524094255413124508492871883746671284292381419431706593668150044597314317351673893444166334156571746501190524306630995927140962246642626054441062297269008382952829410558330665066593398086438337763329715271891223603975658739031780449387150691690145869335822086967727987591409802426419640608789190906768621459675783821814468788941209235240716675641501267888147499691875217162398025482413411516629103872037889330747720762875792420153415486712159339377099440948382979282542552262685502985828068045362598978994472210549631973624380584138019483474852143454477834903784957177854971706288260399528811168009187045383710057849114237569147369007964523522034050670756423698239384259411765121579372882826526924660429641189633374676813664290061670904665982261480377150278743317570509119181136760570419812900549615202221785208028936810419176162360553564852843391499334394331283838436704492498035761652965608897102936112299130619634260678280909911838101580267927499130923779845716000879296656764653033616240742197183632321875661096414424880856405989890007080720235993512325499638622236517049763263781667324710257207543320401512556730485578709486375966894370460504043604006257070201733974734950370172996495282031055988508926400944302083166965862200677516995695411426913941388220760683232908138300141863856004036083148024200858375516586827714951698932051635084864495411938165472292306505385976371676800334424338065636470893396646295987974861294241837493942830264670712459164005754165216465259563889663998879741440439362898154986725390003507497102439883687682722120378110422499416971134594843140583881883010632290681090049931932638756369379191811961200923663940924848609097504002039213922029140678223537927899381040570214607645786475855395445154713997609048031179546859147068284229712221612596376945594570062850603973389342529746153707349338615756293836356476178474942287905126983871307530178422911516990468993634733817943219166500253229903921167396645546801438755412452478072613548725726436394128153191429756024108316489612965921659294340528162019443048971289626744512371783691058765590330564668290639057376285801570754315211863807139456747865071440726278233349185156872158466408475508666771430008922620142584146082572145159477974793834072962006403553034281243862151168742222207364839749800573201879913584490928548600629909542176903630459630220241186329018682427267450253117341339164946626328361657426099611376746532364980399764021070327324069447564841467905146958269669141344217453147578318306568289229039709895177686732073570761058505863548269446070171045989650468685741259231921182824021863103281450302675289341814137071020396951002553743025147278299041105855513095144966608436591615672416070940223252066972567443312314862525004889893702008670995874437266330425284840891675135394322721986430174785759438666117812863026703973904841918830539489435758503467703818650879955768215080909999385898391869697264009587824078212007530342640517435208183166334125860139228043932002153732983511185759216691863975331703175284264072966125240609517963415187775938026191570702042188451269083070639979556206349835449274361762309227680677843195637429823507716073493703168666718412697711958309637525779355452504398079936491026656510152724901636441429195761032043894021858440967842839637442045022058268910598430935773273076444643895048661541645417869759744283528317192033516359805103839356281053990632098780059426441096412137176348159329462114478063814705062941254903297221503521536175799512560113128482556352284408845670066472615977228095400802911978712469736047520190312009105573105023169087088228265128918015576858355277686308274783431901633246240707388415158745622057603068416051698472631594528762574407010065102982983187492427151166130870010392119536775340263306778038242850612663151357669107987963175285422685908102262336793174561078101866718840993711865599986775036745869571352620351622979921438171545691223969737281068837067673324751350883625399004517859572209461946980517157357169262639178322169224356675760852768832049533292683476330463599052854159026038844411561380378240277174991542327391524473527521043285804737972603941028342787186318951706089879893628144925169172872779139110947543961100591313295646922483906865788413369353985542633097909819697859187174708342944703799312237487018089666371757522716493657103382102916615948013448722151655656632665167303437511712783436229428756352044759788846316236540159209712707273193669004609991781175461275321401891460806793628461663685326522342391684931790120365236287688010906183362844542515329658329490439819849250633388902083693646293919732275857608272662216173042835371335017303278920531503047408796040740119482433672562784181316934134416391330113997006427624669719671222403659462707174584873334211446100170511452538123166715095344669822118388474409829139916901947609222908071149536749586557980375103862055557177889395622024372955509020700220068726211791748115011587402874111277958201943673752737373465539141395220189754960470629321748067827434639241646318610883793494500026812910631032130576583242556214015526927605564597614692536875520615990241930769625838879431278870823342431274531693283756975583238846756915594435547654928469206163292152833690272409100067563527584549955598213922643120808080369088861595804799422751538570487939767081006587051850519220465582572306460535366947410098402269196163269626270710995257368502729940931168491434558421793590368805034074065925560460837209325509614188668515904084833680490946381224197172905911677835506063912393112860712197314135608689195578772110044025402900349600080456429726401598319151015516208491681582083733998709988016116980463426714993406181949167489484345447122470004300218254956059314490557973897314900527343321090701805976478726325893882707198831804581394155145890038259915896171852386168192576624637925576634914937330659278330928796506958289537976089198874646994311993135072482506544718764733862489154230712151614505502908572049488596095662322321183555147334065572702806196995134491331789347052981390544589611126421846674635939283008157733961805138321629979727251915586600703617359167716049538710247278602008130787361197535873980456714886235579157062482793361787503930711784295744816945522178066012029059738294275859909239919554261457664677359833692554470412611789774050819840531621481271523488186083976897550961096588880479167274728497908498076722793512302556347910841363550573254957745315078121925958983016140557307787997572152969853327482635219444144411322403038413652747573485563651859929714646005294481630725328023817103945024052790333505993556588206879560299099548047306728077697767783573645896592871964116381883821330930534948634022037800043501757623560668347735757887751782773330511711806929153695228762351180848427760921032852160131852357117619912204423433072460909163329367770815872811106391848172953673631480465976945899041727477894704810119325151479506647062859629969427256060692423619106715891915936488447667202296247901104098816244269509357769945676948329390495805009976554998505814741195235561103585114124849879187901216827777158039658964452357136719675907047891765224366877388065619439276193463593214068363571747252902907145297215828830159314821618835626412266213155081253234077387823640573999041958724274728152701041338335611436754449543578551087743432440299646252019242243057101156661049493289899283566029023153226029032044954026263254630248138489499526256588159834435263160279187867581441351421745125672351260054463025652509742634309533103992036029673635454950208657288373236136740979839434348329621143410398969461502811314087390727093185298206059362100476076479331427925439095470437459336592003109901070543289419890854803128194453863343101881553348350525108672970989474271685585867598967816227616935117352315188978970133740888912013151319870619115127829711758699503105713875629076390201243877197741501899473683143269811322334256141537919127670256944583077172175757202973695035114325586737874476261664266639541981392760693164302825979076702992026359322042839294809220631875329707308464361826465168777882796560375429376602348133378705865363417660104786795381359844105536056256300048692138385418020138526108872009649408239530969584654196920798522804420566289131708493350463253165991198337948211505215573265101584607782716803711387067389382490786086750613665332250537561012969605175889128385283074472173128227845146062987635765774878806413995876852957977482607302334918206982354916821560086656061613289577411688969936246110422273467624997728291519656870726602620928915773643699725803084143071796755266513895733768313015394485385392708853351713261957871804746136233768163806280139010549380796281002186943924488185475384284789039093983828648222991796851521972535444837862577758342506612525758922689216837429412880716923018502275730815992591380144300441991372218806094597180501799946636136448658756146512961786659735172533023050199243208432094333199569939502996040993248744251903977382578351951792176654943445767017014417055353041382693164119661102672975511103957352648875046204370475809553780727809114238682150668881007039874647750300235968293293726819637193479476052527208618703795054108183781971746724707608685641350841743787526158845007202737071423158340753394608944953170134092564154452685283633725613569630797794764145440509528611824706972996576773367499686780460365392908828801644788177247382314037213302510865310865108178008620896326663547919394260915164170340647261912874437303628417046193605672343492222957478935608216203673858952851522700901543643785005724417904046360758840064918992871189858386480378627703051267187351964359422382509632532009313648475107753463673437785049753422097201107519019760361972630640610454767231514361779202253954115538091235593012637510786666115279863582018927351190384935608610677150199141739290457807031997336643024868088362672494403973084139167159441852463142410733112095056946570680452521062143166038842270231426640510106482682154456915731849635726063937709572124806048119348265381017102934166998590051525813351149861712340415432769065516929548463673100998713035224148256243659809457007195689571244515258098149989704701849233153929350247102669510358961734996188836268924498295280066221012048375918913664166827951822695806854271260068029955225679834690709826488183263713208273100126858568400791422482714843231700190225613802291825499935271192782257742024449478486832753618899412845485059395193814027621237462116799430317273016101646578678643123412676968868175454157727949717595125469825523720045146812030420671016683960957112223099059432530337806905682284391565228263007933336499017881527884284750469607809544975876873923624378140881448722841153330558332426859488976284088286009928805778118809935326405677341526464012606963038310792279673445706365564747402755310490841018785048539901225869539586291510780316191532853385840547207472660909046229093017519884463891578159431655958170370953938949555264205487194287778809445576024552232852141010843373669281023385137984999064437772490800353924192101800789801774730368055408534913316790466023098957109320862486325662215335071504696179331622438062775331744266211351972408845252258080649982138558319892016151308811705200916127466181295472936125393028207226952415825636974731869179955927938883120881174397850549232325496589703919277447289400715455273811650079033587691082923068453418459144753747483546599716249775693328059563239843084108929532133883948885692397062126378586139343768910106752360281271306280469420478006259421222854789428573913574137058635891352545254761518548065113860083351142968759136336331257991450952939163889253617117814817497127311801622834607270678416347223743808153808478868555144702877899923841334102739718061321331963138836626877534820632318061908720342183116386999472610142645591018770471531402150238052470495659476895845520444427202261282837020288671018076429002248662709357243761909393403490737823766970321969132080360877637942186922676872286559909156669910085487930345874471405444953021622671627017919335415619948050185353600208263389931112470395864062639955732055635422078505531896851868344474607926701567878412306435644516242754274409157946331300353760282859370778930716524941088948248910996758150059248292840905194842360036637608252385782784429537206187198476293618692943258292889230801629875819778546998651038138329910125800102341382049994050049626219016597058089566664868527466835599800799952033221837139494969225298147595487878607351506567394916971598817248820457497386049090110825086932490745740930791589261119706148288038753646595170034923669152425318192543461960627652832868879609663371322935430223703143550487473492792398922432064010158787699502718354648436638747277084029555159898719539787671453732325279123209284920342723022926938961523905237533745355920515110094196356153789355442529268152394245397104285092895891278226215442296626682438099427049486533086957617910475177757572794741238994193892232769538670842737307003419534224595266070596390994015174183803015304926951644079656558402000973741468975897743827935220946275834390894618337121158509456795172819190135467606368438212883036646311585921313584622474469456854088975274795162705538962776182373754915845399399414857342257739833674539251935715047347390067332840834474886059559029794136375138849567719213058085968530948332088431861505128838397144369454674761645020451154737118817542964688440414266486002044826303000471754715019323796934578074742429820658390871847323027059873435498117321004324081379642185877931324966328357283833482044248184212121864834355478094168379416809272139773448913940663329919235041182471858754804823482902691313651022408549944284560152237090721132784911045032126656326704713653982946949935532811288878104443405214905745852951456246861878023383152601984711845027881046202370447804975815415101140583617562354446881454134753619759208332727331973264601973922979834256644076971952246293146296256664521934866866290536677268043079860036093257391344666697511652716190394439670196198250320653220487827076979625429522097582724141952933900461784922395148062873435049378690191786677792487877712442165379205159692620266086487157670207048848943867313800378267761313457492358833442957317347039933306272377505549910588101490020562003295385783939826432570118041026336059974821228993440117345911566201116106942895387728053292389348139755862138162830946745434094109848118004995379097251374928896840636620749342896505352092386190524565482919537103626899857434408493102779306284315073684723060924624450208630442418973536730209545877243689622395345363613000275429881376249977729408707005810701797171501228891491590614739708693774258791198600801251298280117531431344603365333821356303429460794392210962087429409785792122266054274031089393864826093693522599750286126184645892001793732118511801070506959728599922959408094591202378369531765349538414210369722965943508853502158834346484122922595765286914623126081214120335209592918609816654273282428862076832061122071127623140692412362085016542180917923775373894445955695595379736982681330555857503672666319557207654567547540204886506180890021708290771749061168251265152683551609499291077472754907567260878625067788724239038226206953958742113935049072169220706400597639501686154294059251200881419319115091554167333946312507657793316574793340368272711832734340981686606255590132864823391498098377251231599568489314283524957759688480831286196858168333045747482807184358149014633848328896965780073074033330391108880069550039290343798993674784558454826926561493847704867124076271512760415446763405769927996921045643458702569034473785814337656051959928592511816981867089052442219009610498175411654949274364020487074287444471677322633737035860113025051477320629041758798563790073418001880913522307862488328958771814163752644144382855931627225742012744119978019396484264615625872333778522553437566369668622356035043811945512074209218775313673177990365774422572639836327913620919739420211381427607050476314571803498805588063478796167156238209827640825854276484710870186082195224721478757950317526997711341307124463202516858960836792423690123175232201547302674260757506713399150372172136821977556308413702440628193889766214315994227018668090311608386238976760903352484974373056055253446712382287932522020806496878480030886616593250421293828025327551630236192580291893910098340552695307900486600191992231054500573572134282319516801625356028459525975980298878677050628226614489745937470117580777970256436253332696275382986202196577054090661547226327830775871513782439722184597328121238779218839519845913359480553530181419599518563825066447411979306827256899447892357813158536271318362634909231919935688848844743177473080428277730819720609320069623830771760047730152532332362530460480882022834250518035067234424605245601088637236101579841425259216721401119544187076186519848883467718660770593265845076764269533772557469965317863132080325625755378516438250145437502753139345878443301995657647372322651461258995298442742195944064375550450526489349266498581448298499774298395576660299375228143505261784013589507355067165424114299200404389115642168524989250177607151484269756229207356944689189993117285140772179715140488062061316739099353928561262555668914810107372462798775582389252642337529283979799345644212631238873023276165627564550359606093095391503397727878556031424641283357996514048939590188782249162488901547234288572131335448755048546428780354130019724607585431570413640290952815560560623304771146356797934995435682838011716293290885306880528112383327922760423862552028737882564988508962423010324300183676434546617577725665591388965291873922104363042235476000968911817984555633578762656512683611060716505832768332504907557947421406498532748843760387378395157832805184814712412207639145703955585462479597769577272503989043538699722127411786733652384609968489921852785043216060647406696983848075354431225036253565807672920818679663940909562569118657642400829223225244768173541319543469827992371736305954249599371100971129153436509095937410523080607596253870490948574962429294465422156150312150992031749399779687554919658712418663995300756750131981794165117664678986700752016912425541318665510074697423737903249688087793950196343484697035906753966819794002835885655129003752871900928053017521653426075622953787212733296819611072510141178125438002619811606030760716039656565404431188035634653296504881147789067822035227850367394907230521311661509642861586812538057109574548044119542573991185343782430762043820189740281098859966206522738106505050331849615414614306254171976919872303766108342662979019936640266442519687014367886024453063207828078775260386190842858959560731794462237734888439069751335992627195007545846700592387376354774876430178461389098028676879762683511727273451201072236178141452819031567167355555675244556630434672154399783162739997689087983267873116262568826876076481907530211660138969987328834285821633000026398551496907544905888712074070805426766278711854567804479164843487950517041301607140739408833405400726274411001126344567193654959085778678676317921649585983311114460637909518753681671335467433339876151032744811175439417001065082539636293997000204019186969158379426445481246137262128599896662251882488612584082944654660121163736916022202016609525187485296542024056836263750702775128394132058308520134591594359010963479777411739088716389127554595129434885435171687352073230757364662825783847268997223209246114906200366148274060051919795133552772339931596766521275926601224699064000949362611230293307765936338345116591613683869610350592818355591095396548341458862182854623963903712759219334401685271403450325289459835409393565424577820884331971298412614735050735785912370799549304639481801601853509596187467626620312928041633164447523918055492895043404151808556526742815491675971721351316219104473798343792855131923202989431983241075107127425506079881668021561731295958264115796444618771607861405585968233416761316831724365407307932210243948049627889798725932114830493460829546088455699256785669666711096707419538960222337088186542228894002011505297762533237178542867685986718268837174271549193216925949979536607840494437585621875188639380138849902535248591511272448144894361286025541323817968640190356691228918139720336750099211647552636112202745339597489270303019509747885366970692910787299605263619579373396211025567959114122328290023140205205878460994882752195327941496449720603055086732785849859769459967812036345400518984023003000268274733596485822800958450004708500626679032096252847926049356508803013362692646507206599034261536595942336362649056933985376251363885207997399111031319944486023083790473187211680453365525780173368576613012512551569847697020185643394537502196995802865133838099375848807870135697184583042646760526198776962188134725913467932197396715956330909425552592613725220728433421477007215423886013372006595025188786172163974394812460409338630484193149220128818797439616559474117806951538339954910053776159565195821390670516897325877933379429989962961075139949340127596283249662914116542829148780676662953026165202658735606396769269022064569562835817990538784376230488326508542320595147088341410011465466407224162750879608501361114999519773897802018647181185330290346433718869900394139381313976114966494299103565894268234433101278444383047250091129299948539610265669572995044721113736115893231348697827163823601439982898917062081437657923467118944027715069744990049548557564173468217792144728666390572162594040748276198822742116135773103395621041398602532803250484630511757818369781094846631882276918632458684716089185762705321138792288283309675208748130241872417614962191754091433845502532495190632744792684931392878755686173385898189409038933492274422015018199530300477686116701422221855147174549556284558541052027890183252823593859725430251275013836394213437421934145061485424145643807829831635018407662239296437491515356831346263036188964717019881503829758567113150860681596472239667853786531749812057234193124921009588178059587614059155896203146627421207023434854486530190424185380454457487749025298472700030653398762645848861662987920766432993908929595640373152889506027167735336389145268532668701594490249488912670186416176200697886624374967176344256522273629136533917835455631667236029064992867812218178302735293347475125504972142773140505346153372692339271191592499852027746178065007672691319579022247541703935555077001782204600912288994634539999021327411184310244700216245388639769053927152453074372051275496503844174071085286554281951657454145668191886696805117419980398982512112965650346895461556282996380276010279540841359383175379236956194278029137625367212012579779711964817126162959702542858345847076848367425486642289463552253661781977393384870264723580629484826498690060489084757186354117345363900537375216142609219228049034725142333671137147906544597053378231464230892717454266321590656698267450463461221272066534679033529614617696518185902729385043980964686640964435495576769767431695752175896274038050822187960310120345748144673937036057978781476312885476963498118073292826415403872960575096821278976657421282710691905982259399126073513691837581938124635462202139455651884038382777382890729615818331522167128720892842488694371903121909603063912256577148687296514612995484901457680974612209075212311997014629519632070915997466309087711925332454941737198035773232878172950364754263702960662849792404619215828288292995440485420743445190426775690860586748076573344983497584530602523936561641257767430818885467648263876003402808363808551181030741869809365813309164460886094778645265652671465427289189364835164474533052329614554421786858419026777431718905895441470345289154196077691660126018754890977312927617489060920614480032666339540272349067042573134521956156246897261451472645931357082469968575034957061546093410915958380683447629050845270120790710759959470404760443118762498486077695482104063456730360954152826968288327288933532954912173106865874629077014522362807397140064456054576581564882053776856701122890508171386228765352716407947051438722694002837443886691326455856273209574814903588110640847821007456288057663494644873797086968565805780882688761808599482278978867333057790856574817935977618416946589075515060363584190991646353622394774348725074181360250156554598507849738844536954543989107720678799986947491860903003578984527884648828751729318815588789347371547955215600105009020635182629178299558131339297177562327903121781837986432982578135425442281087274387142790908991284239897228477993620058641633559121002833247403566246271045582793516725492436702945364403045853050851487395608485693657035808886770752217541885550230629516562053600063590527075500540498862083891907910485448404800303926682079181868099630835036439635507482872216935801054169370006003912701729990450474416496588673061544038958659181300113655241651193808867289153847875624349241037557516544787783572065185357562083816693434073817034268432497205205297184773665237738790892574421084887187717679665466613516194299316606765784901472087728137010449249911733509365731909843626321858757431928899752993580629859509155983285281313251885971263602545017258512929997114651879505647676898685593447343530879667969270710813892841771060829732569607062557011027834589168077407152435911952784744780123201783786292193656848762445447715734229349700145486778061953078119648970434882422062783291689468169413119498367715843034998970394061216739735116602713950634658887461885228429028217090369435239323462002940701888773981152622325605958309382242773669359435191106810860979603912221346514988048603219168817655064180093838701749257260823690998275339297302992688138669697980596662785458011677924583457116975545333588983592436807539360894565597939415195762983443946036925013861489104631547951350903432384664110333149263797549185165738165039678328580681363344038254330742353340783748685010466900519667740091495129639850033029751111763141053710256059014854490140008166371094869686462938555727343104754008586723859876383998468677628179568940092093425574710409013036720909533448012591266551289328804007085185012209736908178953736657392072710954684143935533541988043545215540295657356346767265145239770255812435761457019482980997305706514933868791511833544315960970028037890201699407422140433266093324258767992016356015448940805243891912324223802970976282237770050065013009983791632682326376451945105013574259040573017699057348517191406670644407911408216026948133238116774789363927143519868026363901742546919938835180563063171327346869951087265235421340645774077558651378799492914326278386088541732743069683518566858286763901202265693208133124852587356841416376543766566534638104406700659255839697635971882364952033464239339048993268915249149864367333268009163390718239922422626868601611524833080336051785034558477146119198496032931638890701685634453212075477209358090582092180081302018179015552420994186617155712980153722561101540973394967358772136240553723313599600886827032428335616291386380532795310552546118894015853091602719497241642436204154467317817999991059403750375004437488848807183661584407770685258534386437533444318026164339376084678432958500905011269350570214323475919923979258129076906370475902520781933791184711398444647841479976755105503497002137646273987318552868964524776115241748444569345763857047715059126557331467261266836635691883825272537177480884799263585890542194456437380518368370494383854069855535563724143866306101831689848011874558455285941462321689689846902744422897535322381511871714380944384589116372175969990423029135612254643167268048207238489822365285331700005333838333476418911039932077446496115007900916109534115807259330730992929465494778305999454421256795400186683257539145884502587609094070696085400549132889769839102949266780288539605471183898504293895746638027876463354811648029734471774225370375653312934985259757216162621577359863417767977890146486104454648823514865957347766094109533289576251248072176743729310707412499370505208016964644561635512657311046678698294006987610806981666384077830233997732316665602616800437996866299636397244683347910904626518444539807456926819448635987187633134753803305159332818383471089750531699457001041652721374153480539755666507991571747976793352467379003190653762092092760514908300190780540821385498735780100031206017433346740432891518480836195720261153811533347272256574466290727001647481946397318928555553129801656077213234026159739781312869674958380681221366495324782903912602071531248307830850475153854008342630644136281870068551647243176338912621385456677418593066791411818594320948935213853213516361585676021421709824607806079967207135054355096799447167238467681269201778490603268024352874120060273625364575014647711065507829566861373151838720178068605249999918228683807226935170347883361956763615966627493998687897104430673870194005325282462702345147805229549881670826147517351064886611232443080283557547924762115210006253423076847208272638270794712324806842626457764795089793703117015584910643470958516106239340194903523977625238712953588999061484632025527784615975021159802670968329640150289244626854949230196272380653805637769054315423482822118937551091635242817310851616002961010630922280880072036871222525419152160629548089188611595334846692735592118343711620787123605251725985725953426424672342843368910581141075765856697576918466972568376790827987559954726838552851315112499659820313795043285148475749209150398695222488896388387477604962371743942153366589923919878723628418037940869626507948836007438637053456495468873939582178779441755573175580563000357469769148178083933623545308074096087641664447827406170899830979131368721170504800572888169170833456179315006315288923087692510853780886024772989628132505244226984153839388454390876217030030454442437244136249435648033400090219459332534362474803669638960989599833801903920839437312216143774602356814667149787407718079005844072362137997956839625867254724911058953815591276541631814265856300702484968187013879628532706960738568735459423830659014180169733881792143755240153034079189228826985793670175667243073121979866708701085934677775500387876599431776316240986863607864247255498742825969293950423974622102388675291612707109411966466658232349589866667166702126900271138638307025362766363375557505714203844943042119963479922259707151645784962476546325657161762835949853554580790070819024873259747707068548964558290254532446123426355789535480321615672129649790432855756616384107224544585638997132094735788620504016495849970154070971300076507249971757676789641236576336550073825509699435651769082476313355436384986681098650084992745012191020729082330363752595481222685051132399099117090237572733378959985325520563438278265778306886803384185013033618798144635791824118967934232256408322027751921671023105300601637112835902892321057232267854192967237517004720519956072819128265295250934798247066697761349227137468593040383915995404330448487481551760226538025165699270818352351739299712468429779210310923132805486246724125371585895675633349626059527970035444689553462276600353280149228996878335808379011681661422776872512803136686445707361482091466654703544219649689930379915675272830148500357385755002895187395204435395262315188704972922093798104027543708056548412159128198980831739198308652379839388320804564493112677386591217814045238921911880059844251586038481044379218263533797500289925290228832575237327852020924114817304745996493190661770637116884676772344825078131138875436637777715467700022600292609970449652120916288533208634730415008019863151209135588005719545804459618984559747449866575052753209831284879444899355359685772127608048644002958669372234520802662566725936922606886404082071864996459142945070266691188974196084387992853813302036433011858064143979299775749254318959012062794816365751854026398167640024750295521144716848471528754753547270848583742433411903489587573096929789561316013728937671035616126568894388531646462786771412793923797950090640320715703562901730249226085811705841882045483677028215274975402113953715117971695467931180009027678697904565607709976857437813739334285935056244971981506915638867480085841820890747543543460099871212556696794269696310491371345090542727825983321231496435827193566308411098052346413377077699582492309233838785378546545869515460184040692101461520928041642656030382676991780797940113268592723495449644619884149151530654144368824542848407771288349332473851869044292646848583727628254158008974757394208611197861771309225669029444866989232517907714102143441274953032378028970647188506668524401106541962773689694554873730814792151667638284717809877247999076989542519617490068114309312437255291335304655108067002839768670351413718665309557256685817218705127966930891844004458878583327661801261647338405771738012085288694978433664624948202000446340278753198028858852855477091379505929348402438729150928762049214094964995885377975065153660721476431722688253640093936593708299830421912055718183406768410340064780262241082971352550733174923700344322882584255775756981649466235350477217961609676778705183070468206987370574299722700436121486348062466277960250677497694897306519087543989778726899555818633061848923449745744348880252414592392544241286923139547429269941880167780096601318166290714088511064859914335611112239789378674223781817731972270102842070059931455043324245539952683582249378222413387242583021739655481872665253234660904432318011862155650024436144776903584067969431906562173123296905109212045623043548984757469399071109305289522723807321091283809098555759351308015972588579472491595069339257159882550930040141164961167086994630017031974301317245024839067624000150364309653573742684573715761130719554646935941336057835964623716227755174314244945715109404095431863628740760727315855789152135202335707722646151340311124758552751828948636033259457223417696598682855307070648938154888338235727703576984925663470058427347864535742430542393255793912193780789383713101904118488768571408786682615857525200902364104442914420387626412131328205620652161275940891484912117149943923479794854200320831448991247575283908368437232902502994522209625211682243519208771526756384424456514803551129797863498495218404246493438877510530507576242797911410715655900590937852499908637155097844338780604823644761908408857300046601205335463133284185168105907131134062829692209681846213915306219840585337924779272028560297194106129432690059797266709371970969385656034403030927312122091231833610306246422534312950104747307842058082106698199005993718106847243768069724724779502436821212129852289682652049649214801624336462537852121425734111873161148161202635568124446918983389487888927640088979975811560425702035038331736557931088410228402374898031933273165081970346183756000782801083093863127118083867294449935434514482004347250499788377572652747414248821800489296632854923783365643779602623484742491165074399923853718221564977838773352705041605732297769321150710006726058204673641484030968197776794629765990460988853857546204882516248785691965064388242836294260144345323450758258943940090461052515561847965266337331107891112513563050009601070095841624940289606928752137499954213293318057511779543123718359557693493070817372196442180076210205136573293739509115483916468970100314479109738014864601720726517409045156496081381283912700985949805218491866183145678151903944683414064376381952142095233348839149155611357397211806715684787940671795458955596168759129937192748928029186547830694795954049313763358004681083200067740275231801427432055726922259300679299102560763185817748920336700892116177048754049938705852617995073344698835421079476188047046378277425627638147699574863028969279540777463470458683133876041927559995766167364273952075380064882057692295790703281441227252567245780976665190696713380506985485630055121640640547931654700970758519571245920319759968873739489828205303994171349608405725083772410078401105672944807536887340571474880720549533001353621975841509605600496097141961648505425881123819429195046026315566374960803448911500436205542314609779649063114509634443788685264451841836650134899893177349172482205605400622540434698764517510368871272372215165330594247835597919959977781464905256400132502097225949982211099976706183246873749044365082435152342234595249023283311710852162220279837365033583136713716803531488327627937735218672897486761531969115534751630825214375842650914612405929120300919688974450026446737819437073555601954477639329457614277849702695044866003003245415409697686393843587122868251444437853913059554599201841985597015939473477613650347720381076493705977111424701216971736587777000548075655491405987587256741401138705366088871720708771551937339972982873774107425038559751948366388190922456721202357753255968833151632935558804406788489045944566115340675774255032600507856156946806047652046297869489818024315373281718612568971756915556991385443937760314058249747268986890051044664520577517310829577896015343485213277886399120049214400455411594139925754500525057125988773408643161304148936162312183089417298714885412238878292864721530384593222471496529398291080867140919064797413639204735218947260664044752620468021488920012318167981775062904582076625991570832007224663839403467308333153666676314997718551679223277958779031744860439217951177360658659140080782647415040567170956160095826461183507547191957320225554171183598249857961355408791667899687089920528337322553740377580047200087998039273549497137359622445096379799872002820920724176698006725036707749277640000804106076261943150695350030038878390479658840974141787127700742018656759628519072784500896044562439728335107191380960638932171975464848661104392766544111104643296529553647045773109827878242497019514982415590934312337249886558060075857380871626699987449209700735723953848208388690359191562389199122285633343857261413704276900087081865547734585870444953283311838323828669064771393381514578479864172003602734427572987299967873104085793949568404141766603236641021519728173550268243202256884227387562719371900637414403426269742156853954660215813676535952788508008363971103324141196616605748951067350690838398994509941061699430359096827690180535076123531383529605136459234510996946024350754874443242818802502860470324348987679406619005544900742881951002625816410784619579148020510955992080044112436432362871907493092557194932346482144633547342682467286482337888942924386808985859299247626947671756303048453348038636168778943137814322926797872985498926206940880706976075999006277273414903741401900383372040096136647079750113835188446541785664662082230137357951027680663651698147494967943883424124885596526438935580487198216284603193548932380400390079442513318786234648585241162253531438473412174809760868911841712062025156775115929982652485732388077908005234006753400008994554421102136312921474279293455144025223362408278515188827824453756193266782970556589037146670243652340624808659233962527898444238712670104126897427219246832656627564803016641840691417810156257902950119314085914814252295785349446208890072472493598762673283050203655408347610222525729863329419857421001851069938044571404692525647851288034489924357581357512470202455186847305962866198581380917640616709544974764711942481890904559312202884664887272452075356403842543086255725314814720161377363166753596046877226042985015329437105965738672922059213889538263658926838581553219288386136699872446409639160517419018312088654384066399247303595992609152815327070422331608741572030340120713487914405737092717913152962607217734351705864997422888469239891274282434558105194097690403738141001470846527472685057603218040525433779705725635631934526380749300371534497541553389066859605621431348954005045695621031754825527870599967500745915237741787404109679502636300160533153277326978028039396298880892387225846316307661074028733449301449062568236577332606262199424722599118056633358141216579207156800815487948062978937447268012000621154496404332051692849059796416522761178208298479674132243487657299545977830484216708290041746000472152682918329608940237834547080484334006681336619999459306908290487962684903797076467402425093195492984540473560495831400606360021102709212157740742152123553860633074461716644859660842949499320801548135150807201483187111720295356840911835669863624206555905171007455724547370128126044692911932775612629568894963805814084631050238334111221375464587722411646728739782227091011990109239276098786922855798280254017542723313629491158584813289780621403696873290727533437692722317696369569931497691632733063659789810404747942595448234847005183411416243446543035054201275144401356561547508104699930803007902188466033581218765233266823185480997796430624089927742573252355190320125838964573914925658012823093259929716264695928266433152520474960797241844842321319440500966094613513379647817211806636645168321193374441515208995740959590127877771785306302261966198380951221505031641128253118388650168293121676651874266470075216149074213150338540888374582839683805955916473896144532203213239917423331864335402462868228127785571685131067505816806921492697267809848236461374183698748648622376249215014330766979175320701748421826608870300204677559631530718094601118490807090514847289292151362447145996455918274501933123738688410918947290099382035855821999870323677684869076351738969849009565068858228653130334622404547296324953030208494570465401076477420041373907918420684299853721398264333996851618550655551470365038294376251799196585412465873279533494071999926225245294089663818860106711489310191219654037080771708449320614928748447204145888643481837773620514198846182606820351578329950865887273018705070138071943038001372841004681095078122852299684860039423003890379649177485411435934385812537186607952893101084795198458447179066379548155842388359397951334397813456540008861448668330063208210295655565133947632167068973720172761453960224987243870478980692621462581652433502134637850277958324759380594218637979996141022198815089413128742125975466841675116471188902517335850736289494657376232094419477098872124280126783868766697270849443801720944461463188194016951786198031127710795837514556007676447020022639032314835361683658971645728684285955744316946038116544673374144506335359102381553519307916281633357905903288019207546339347398118580935227619215389705272698107152267961866292000289507231141005222351280703733441552069813526643131950060266075343512878031668386538346130151471257855461321553344180191028929943123730331213010622721707795944018404379997397187847342378900949787143264619561334686233166086365680648901632194659195194473337536233441936923904048623306365597416684769496509246148699825141339983070169088915863279001538176998412916983866687649656598247750777918207696103104924111330998740887236279533292082923793468641760570539575201025179942465682873602313424771249857139088117046430719307800817148795391818071771505681271728961119924976287252563670982130129154357775448590339413573391811895072768677315858336397474651204630107293305444809536183917369297946452057306765812496801894281097021912729770240018673010364091999999927312085420956207199198664513551985666017255671071503963728746546109120540543386560715200980904332787612002024173297893098396840329634373728379470211183178454642180060171324987590065448302543829890211767422219855556993584326223760980502653762287217675831587805992958904551360141713330244230829175038731788788774671506246547289116421491256297831731316261180679228119910379836534654956338917966718081741395519069851479535088109221860006273830603242612408896613829681944855029055118992234917116086131167008495536724496108529410885258502042013328546561005343607333395622300628279012095778629221030821649731254901062888462076835226097018288676966592659321068211591704551689038579842618854764655374434618778972025495751414963621060618541870308918116159574490934581942542521731425320752139017568213165785006589261947665899224992706344157536498848345100424438235600938388507311744248269176756874916883579645760204381289619898300478924323011476496860932954749532179523583534907636129073916613810596953031774712966133783020894664019584434003485910613600245148427967388932013854203701482855204295120686619852624937182582211083565952211848517339348802039232801152034346045537309248294762147795052589295109870940266353702626540885747686630899695565045130023273017134255833805402612548005494837638128114423036262453194741224570019732791705875643902202344852469071860678539515427500478781215653207452091936874555808292608768567309608838257718417313919411409886258712190612521686632751966608477764165486198735658336819379177489386634112115493681982960843061062125267357309924674684869959457844857407784986397790121001553522173944602357761481129816340446936942263895530071096137054545796355520047912698085129546355768638032644285926693400909785129205426912135048741492325340061015297984573937652831396591285199380584032015718366877109499370140998206321274165328603704799568076529272255949573261326475969398411888952937324915605714786681919481683618120589122491323964620607893410618609963575082380863328134670076083059957947772575864560941870640365014220417679825331077949908621043409274339640906771023025228830761944216436778049871995142965465845551909056462800968731845194130876162680606819448383404576285076346781952882431791782798364506876233422218665396487704668991642890662170500136190858085855554497982414155691548635994305378391352667455606178161614483691351781175543247879954805865089541097121519389228674978116058324672888391684949716902595134920431349851995025051541500681969988882279175869749461891037197916332379824449726345152286899802856223583735441925653581490449598748886848558377114206337023382251541137126226109722648286769078659376464971111913881137587060659351653218433605836208622304647638190673875079552294500580094455890244075496184079322140122323165409169757208589225789011602541227381885142420010823708485669544195182391636999858013464438864931160522918586869680265958547978396599508994220962593910583219399283219766733581623396590997090934632956763522244130645688099325744941221198905399821330481039674592408885603549694500924779394940813647652180964401512859865311268399338710454358988646530992473012425286530839246896117677878881315476045927652039396224623921404835845505953920421427930843415347650991491982068505564017072078391726352235737120064420600063277138375823490538587125977123536129899041996759887669157291936099875116415935900214761614453215678947929141651422353583081744983230958842841780668248980912643023095187764732426990977341690492136368596865660782325189407631223890150200332017418077470923035909298033914819976385213901942476345890669153758513932175630471233207605707862738330442344899010107360766145704829142123431154933064561355519020744018790118400251555522746793639869839252790046193160402094368351353916458009268069730016775197003842295143922925321341690967786730960738867545384695644249553412526835144130248048596201040914342224160262749187979284486819369842255206279677384537169617880466075577673971353279212425321250019294981017032917374610851257643876855848122634398292510781277858132338083008386153659831960896560159209622663548404382309469731481904530414027765721766432006505104632661575142369057018616636261866228649327862869973286243695508199460167097034577361135589129598984649859906736236208197145718758918629804476937297001629959415926079918639486209114850106219796771600847630340607578960208229902878672859916622862171380702990800505746000179637403168643065172542130744436248686877366423240570365275556442753674965516418797622463700906693186202995280109155760384763069555206005792958734371979403748955560976889817538153007586608281531406745915504680397638215067576589300999095335519496818085474209661315358469848497022388250999048064978374835719506037455191827285363447879100093653632010798500732763367909295479108599455479300956225109390303955602097243598164516706295532280637693882748754431734952011268800674195578906945919861479175179777635857482180726355405410970387452562402792584889997866195332897974939722045465708491926198249884487791170017974752935294166714758813584352661716693722805091488793315943557288840565712545550292990944320352063787655902127222193357287823085469319925386792004213661177949296698212440521461684779212790919209405257393245528326723090965717121376993976877462421291123783450409229661674949228850466364611004796905598033905261196089910561772384249828537810354571625908526356231622614892908730982601482439507329343532683860046635974832618995067510707964961461959709960106220116223021663397216212506716288728694457027568527118350677391253236495999296889577228244582648082781546041479690849982202039307904292322328968594711182321890145018596986437768470357260039744729664480721405951417042543312885967607606226268778674758473658008485614666977466859781199277864938728341118608704547271985751187880646164903263945208413477260346518490258670019539043326506503730866547822398849061314299869758422072213806582887917046823247265861627990021670323927935168853123695428808060749101618360199228590912089913568740726741876445716724528576008881777864021295471584911376475484717369488070447287607799374456721753416828685368608599566689732484402936088721273879919633979038983404530112073199077079521908613345230277176113376977008683333894099568430871905954893638154479428387811738600949879542860057880627205162567400544501281607665933177554046003821643207258885048492718509208584579455982533944787110187788722657025433964426323304229063957077951909051841720579035030640899203047011253225055553789972120663198281810229912688349689339794515819834886949845484187258206116255427801911951568137517247372593359934658559398640417476663017159978481872854641243703100916207440894449409580974238873393668480759054608317211660154879854387705079673692415345846589422196338832526807466309447470862713270582148062992720187394859571003507185635393939347035438181880652224112339588540366228616147642226237444143029616493246397745515853467055721768391595701544642573753217194156364863358215346470967320152919303394790724040452408254127167304616803011223849452139620456729159455551446146839892300266429575168404358260418454128593052918700868388444498744657437763902274924890812653649371436047978400278187903430175391816262162897946702703619893222589661545525013229761399168689376413416656753915296922581891221302707972219381567520400407151179486028754879639977069488022917764305914679261622734264229560775666414192367733550078638638599330744711264341976470182055615495795741523132683814291329333031932530244445335435439323292557742465917062697355782483970994016374074358629003246036766368472046160907892488270322882308505162629052299638450796695271355486920312502782912288695654303910123561082221390439552416089063273844871536523142520521787258491523948084519451757204531066863435886602720394511114598715301583195987532937201855577424775969405918980734007912072532277121111982289422533784141861351019686076135039119848851177681931816638367324042298695220815303841783621466960501118966174385100172245688717120109323441493190441790072652877761416788516241107417968536608528824360342621545137849132884255172249771181643062296893249932388691736100641835910607977112477110102044488168777359297468614000757406421160994319816653807653329151381998756541917684685348319182671335129687628355312845019527219705764429812602579299700934388152953515978840792634422704519122884110051156608283182471967218703679726358869881958103012718573761382803356519858775388614045886408033486557517575506690958966415597810821531527126390173605438200897554631422302701482520994409750255146816402194394187212271804442030193528444190352096232436263340360095126681604837208582790722789269949660932211452995035067093180427095920493171388133724796434836751635264365082726337879388676423409485789879909471860362983743245176415809919012711653273446696565043153225870577690418929182813633269454737722272702135559378153054710171581890128180498644573877996792991850435974623887580717867709209094551234924771765867332753965303601748907962324345362448184177464998908260778009068715855707209396124219414255635535796186457594698471217743839727826034447873074550798931981987767408822852352405284093969948232341981361666785432955292116536488365574231733274617956027705077869705062958122796606201729803527335626357915983626270103758456380422278184771985456794227253613859348570411979294374268366238527171726986687639483694425054220983376827216265174523937737695042855129863757401451195423130160787001329370547588884896048224087518244886090082311881115967815095985302067019795556067025714514244801972929914934613270978636999814284927107881732906457411421845266978338352415125555878797635739481728379137437074401152071518328672010465110407351810708805159227444726290492212488721552092376087781800520398214953078154517149593389590565816855001493167803916220442174401146159954562783171385705254143313964576015039830928414909208335627769360442390994118277016885851764168386574450494256722073116446603175508406178720189264518046718720963729500363644729946468804182997463946495789451377044888705348302274739420727376645651581800070537937698531590056324536095748337585289757004510475791029084033627418114281877246739369861589028248661957470140372350136641641569266735045076399947452643042420074480911236693020465946631788639742955692697621626434521524994882843364596286788099252179969818620678736202701556946729128465712536259077702734908116173913865428681909126773544222172880792379904785100672720897468473470118611815272509122130925195036965810823446757856315681085558067095912878681247725625671585297312594868363267504527444698875928961016188667055757150291258899099101923237275194413453891928046961301455740122890336962466714059925447784608427853912046987594783651037635986258828992389826355506046617456074627092462651430097070879026613439418339857773083699098936819815826495623230739699504605876883353697375846121522898544966214073171911987265965005882349211252470533747936743686630674414205613372547683254796192247521785650995554103849946199968252338096805493595139282654231312735575370947410326406467323451213184848483662253730648098059859204371574530631465155436681611887515345490595519468398187172776298963222566986226720113532256120095551774412610496807144803162829146739089926152120857636645680612910303119999360093277366245486045376384246654373945371455209356179084004007848907768203281897312981564846019339543936978804292963778163310780062072120532576552874716785978905257605814751436224019779120306888825975029580550986378461225371603384956457970928924720360568224426795582131600288241991499416142727204648981087041872815262643009978051341659602064752617081291547949978010696537135805058580539730422697628672730217028457308327690733376079243897651695615159696663099325082343879662027527179405567254292098511710953106018172836296380054159287309979081955813412894233635588000488763654558706850536536731461335736443251871450509399624058793249758502092806990044711565694898599551458539332209355022857603673563859016817575482416827072984197308220385102642617495603358861020825406399480880134290396086022028627885402302975431895963577396194074666015958979128176062340323638345448673500113127854931247967145023917227156176700481881047197550103194155263517979987973892926506484441358992181191801975559458227110845306804759389307483139656951003689238300548185132309701470350399736816870138994353465281962463175477084821321506307807037259942746841208613808670411500651225299114931596549700657581773231684420481033831505425686246619705821234830516413467022162677365300927648790985692400770871080198954686870393089992073723684640886754724908149213452740664481336743403386622037775413404325713727048643727051953754971177740643304305139274750816148497782258318418020780054973128467149453089645183726546462205592905973338606654932891669497938842743936422967352792992908244508584370732314507619103113755122600134664481096176654902528942888559725975423245967440312972776525759885640613832259450157087415995385782729146129813798939154709476281391916762490618400254304903151731763163197536531330349998839406764471090244917804663784683659809411918161991334865449882172516239655931706796633748403059854365894130148031885625545342567323633648599210421494221151501779105488584917492732569044116059191974223323675619898458821348440922437371179017644983416844036643410420510958663890086740793669748262147305285284369508330028618657532261825618681241510446976836940095768084890055382606581599617598677548150226082675017260602984295872209293123293499265299270125297270260983707213771386522384404023654414076709252779681290703549248946554415188522333210222217906525894272757241991123190623197609918183806467781667272829406510897447499748331356361609466706688682995577137094532102592047363302953305027266280607078663588165642242438227075641997783443165497096984776295028534150065390380576492240177900155825788167838211153445028182616065323343686618497540404941361209656189234334808410295821184851674876102668548800490097704476032238590767728570827304244048834878837617713810628300049253433573046830080420862034111447967128754853078757851993603699823548166358965647543046251524714398701724843605168472657249718735160412305072426252597674125477232072906649620873611531372525249065962202971901994934756202451784409071987699773434233733576749460465569635958458871968275626387042114224189101449261432973954990156707305855250823096641982178289457727178327379750821840305591515620894296305341800974044079233210543817392961108323666510156985245262870058713793274293426410897446292947880576973627275866811439359472617590331032447574041147235986936759484152913062695872900543341409307856716477216748080941115927955565761533487207168871269627653467255576334525211953252704233479188160801652262375311286547424037432105784839535534920482244359436912697729244134261146542678262179170873610978578878708795604252388172902955558228604445167178018558562323225048274285071697748801294764679605021887073280510588288730147266871595095425689417106871508104292045969389880575323311562578911444354959783573767517189589865582200607152924760734129191277815566741237686504916738385242708231613778038889615055031773544515644170259600874556891754153451081945557846325110558735231597929635770726494239958389889227270841546322220390880627431908434384062583547393189822112981627393280225885288084066781053333709969337046181777826308572068272785888908737606058636591612406763817832529863948609085481508695267425909613547291304933397045608045704582713221951763104212988295411616410408228095979490316909971088593394314646349447711895616842985105397639342562883632026841859160571160766598927596094343534835117969336426686696543855065681915862256386155097502601466746698560202376234318879990879168728981694489389008294084920850188405471363877850910404886210234369709664225071568115649488319417964599048286246773736214440598023260424932603854270957042292422651725321690344051078113920878304030653425708455669174093214826498908344325630622797411409294511312073507418641634529919075380445011711060540662991174525277447208531396554568076787334312518975676641088392933206444715569341481285304758085700406315938089940460285249154994503719562682874049585046120351663616876239848862335822909272593623848759453634492703566889745241413261039843393158134112812404071407417777597693291211657591047507381158037629872606140400103363761941827502949776873159519835151606861251464750530731880801477817662151843457192730676759164427071914908074458234087979850024628334984400263639662351339255641370641874363654959886132146778640591136865148105242853192886749863680488197348722107924139444450135593909725836397836679598358590719592208146243669379547527449787069051745922620731236895475894581855284138592998059469572192545412136601181126761220471992646413654038298055187275093174115244970333975403183401740446397251028237869737177836868594607450209183364289444411064768957009560443847768305498207587481534818061907509504442939677325756988599428646248124687468585061534284657681154775377952396903285633331822099204770412098873041071804651840138317734646037486404658589279197675117642760617620360773128875770255773452494148013215773776837082084547730485743986977016664319742487999471998074077805233219851817615713705214415764211656674572349573889895658981029391739816612698802608194657313149847305834790379150139082810384917336597369888653633361285811919412870740856627708302086248354708280894876385146537464955975042089132255778971769335335501227858291713512634410573044174298791389773110453977713874960429758221277691723551318935579756843455153347492389930840519436736497692714897383325951199096224522000301049892042905466117750640870483290540102419289785424209956139387717035598689013887616804380720343764442478346711344275862177760016578163881158270743894457750081978437705017025188238291668754507163520850005326369412091451411323240864473197262496311931881489849596040577007629055762865599545402575108933073267875135147235827838648672389596059953097422083027643910449299012758455206483093241729664732657036281380033604463874550919700997695854287965603841678916894592596622124193171542980101750881712262743726080815721367648273562938000677137511488418975863722473280346587915334432825771284769689258037915144786113299872325366168519088788590345377008991149335824718106369830519002610780717208727500442690940422087279969855959160734433668072676383937577406304050385284392562710192582097526141700829795944919305099734276304069592878020591752435408721041991667970473364215704195580108772184472336293741603260535624976170800733622660900889604747992230564989230576882661998178711884830483029722826670682035368412337084149842632455798114178624853611003780783592028415585328505078560732669377951851772225931941144405672325490247985889722300107127179477237355365631700180629319446280001154812580613995860956555615405885192754611423693363033755424724148771040738919240202108836666659241233590728119211595729144374803293394827883046615177211143327015907049091557339710878822213324157691944020058136967111712263663506554067035392161511686530940632481858082170035928084001928524642970227064155900952891239178116203377126510333840094604442368733426421757567723097931564411025053507188608247652072329585559678477375514408510137479401467873756395407020113361319878062005898271388300064773167119236586817144889316812579164489685987404583082388376994994047449970935926848482345741436926436931285739797248757510473557788858263365049361547034621124537645562917234400242879539131577606613323178894649699785763599788895507311864951687595919343856765294846402577026111105791957595570902680021913289145965875145384074013779293276302388906672691533778558259501249524952643070965175277043817612966827786893990929189577793365637655651953848919344988254685004793555053150093951154097138695863946851484147699078839768339249080983439353143881975980179385833960488450628846658305596465608897175035149387854032178057339523515436847312315569479004171732422305586214988849038052096878779015981384361900550346196968204290620731688467371676735911047476544707530764686673066302937524088454974129879842862982428701703725881293757281974040063142102177855532713949458318957760265583343898468489400134817086789474539898792893385806858404297502994170562951318738509926976686528650071504924452363537796968658820297739487642444479657905739721411453270931378208341599548200039608669015558184827147360425752339519382446453272700199693827391891619214922333290440972378744876525518472029332191722884361235550427049794390560957468723804185479507305397371812606773853087652886050386238101841975057413261718189272084895303284760334076925350773177472819303071338008054548055865439244792604614537679347514812353033014109734382160830960201690297302004951113568520225507963447607018509003480983262007230442289365193479143161272844025308527001693577447988815591333915202576142849680130415322408435180652629533910400892412819525024254893695701653476554951404215050857385817335127521018872768513439728629454831687407357302565128825148937797580320766038462748446544194208223463041878204101570786982284932781122380170324656210547721837734569867408136855874446400074555761587571157591721865157607903627407574677961837624238965290476304211837492683626354024857802741461656656449023835891746843393395869965161546912038895705263331946398557684600564839380869881269012255024846371250144869441953951778236746666467770175693282414625740620389713820743260750469677563931413845553643924553203097033526148039209228062915304756736308277577220678414755963710591328504053754078143152893912933235601284279580276150525208032971098981696657897285226342097443445123490737306599251309004540997256876606947509416254897933615954332780063279941341941214390315965875315781828353348680609843918118925792376266035918984934872858527685758310332263661820655347648230483750013640773989057971105447236369975983204786903405933408241384535116403550516777756282341717650898427971396296297684019051509835097334786402722983264264657683010114881749399458478402303204590709020461599703461293802477336305845044510623709891326537648428485449970302947319733092027725281268010711541027383733295664732596586648060390471095061826079240303896237080627933774408246126982410813540299697190782996927662905543248858689907750258437959767382790458418707195754038174644259242290229623521146194847098415013738317616864018788234220220569838907418144099925234611241455861765784285976668306315994641345169124713197353636364966975098505964056544650334972985238377903384767919709749092136650478505305061611869051855795626539074070560831730510036802246858653813272719066212200895731662509792370575673832669013050164440758405648089246667796704404583742471841241369881351521919229092747025860059259973502384915248825491941361278821248003391008648107957450850373820569061868256400023174544242595302463075196293022783195663254546556467673696092297528069637414646586243645410857526381871212162621016104659333162508888008911352569983118733856646407186378726637853687653211217839865656457429908195485714247390610381609908164351682983062106125875980329826323641075371595647804892002888575296825756358458466711439725698668895234449114929585677518113856530182608069243879914890933269185620051705881997589146117299291159199601202311198645431985241121048976517199041252741279405114796197835237787017871888776145054657387779750239011421751367030863111373482895164418388215887617619608352322321578373684204358281956632944711979586545943894140892281486872247682570820420151547777560370479476731144953584581057682195490478195891561076497631870244456960138388771247867800238921729301368848483169471652407108134864425098948465208232288559816168121786579299025845791378198822594345816483822254417950471839079717455455191454254129042756433140023039450225756226093560105880695795181714842935512467799888128822096367632440913129300734495850300020993602151938108566010194423415519565396969737749042298213510026979481316791891132726539843877843739147887660824846370616808768484343058556764622863913365937792501072330501742759258209685925503094189515883432389431037548551062746565373620806488202574206306133355587080690661748631983118428226696989419398030367807806762388363082429741369245326815530561295388015331731271870193768404569288395913319867329687154910661638714647052483858537905614522064529457057771358554107430773499556861009599752772112165608081608171592462953468466455708203123878457866605171774998311218451688053378395347113969031191098670094651128663848408094592195694659496958441190364218231303668283464466051804775265089981328357229686356224750317566299803043368369912710110673549192507877175036938826317356500945893706629581721261285038713569302268113170038827692735122945940499786163524716547596694132293377866032042760802689878500847493121660380926129627555668900735957152092312130186299040977998338552816386608731902035486720430405180131131317532860442095681533521822582282907134947131288606779142402152996292861535047848618514158920097874921288868915810998387759193767699969313163290032277097728692429418811754335274982588134301240419415662843557126362922596165431794955687667601709058581768832946770617973945682970058442261894082940782833140078848948612762018541674119705576441360598503611730544756483114998733949537748225828431306446842094779500258511626114735548999139242469883578852671898802126245005676688656797865204091963949055052892878608861029983003690837190292242605835027403125810713274119767792417996337575487128061751568374581465356744919491305282329600682206777997579090130171626961871475551133711608411435749351423410202251428622587918623688555562683843093829967369069973533724034900447698725157325422995382188696779314168025185544123123971560177255903382225180967874264606740670829542908815880091224137910431692049938515939780721240558444076329528509477975234112609405118560540005315569038665521018053593612487495648340924543715907995585088095793503248693990259393752103927046468467428553352668104655553523841101288943826872849533709801695492708678479383010511427074939644174835886885723017645254921610790944101796205097240231634456254167006743373992978989024172745624619082281480389400896392905146281895715876117127453600719168363948107970754369241530412430663962390713382062138227386465774629661991861537426322626018711729534957538128823564034979625765784354410884442247358031126516744094057711520498404410113830032093544389591320392869356873654720768466451891345412867008951230901291507632632479608739740644822213756770486988622818723839319794854438038232118773472388568743995985444080456295487263206554111446109231737932985387368303621238221361847268760864535283263122072641037488621591912106420973301402671438507820956224639677639389081119930967726382990902793882872791709605439150109734994317664551255449717023536208646005793549081858423140090299735742552288873678370209634846775882996374213510380440235961675889199811151719012813195872683620971730403731962761441520062775973425373575658228332667085869999226827806803250506656592335014224508613863547369450019138925617373834958707962485400675636445878949258987361904560910966862098107661212267496973774878080493758849345364714043451914292409599771042080158941576635799663230494120214975936788587429124864015127696709753825944135829309283390496903720140245318553990412623091547397152146284678667226668393497166924221159697545270523734653175300209002600313948621255516037955610117898709161713355250471718109881979739474698033093285246732174460813873383811350177464810098690953465842473241932968899922953734022978915212739867597615112339119170593268207795506150822362691582533522928497377793108317628055356570947850811118692476884399725199440659521572694797674071461179469551433519761473973740271841668917794286467628312820921323072403346798908129595806235421807729071439876376231656997764165337411543350747344991245068365003556481988374386670709493598053256090111812737632725489395409583005836242686932675589164645799634497286835011682083641500233418543793527067814338390445487710833151339659545281028186217308910089565674100975529613480830277958835211135230803366732109533867431370321644557718716296373489261336908831904030728986891642671534128078422539350097020416790341305642355234431217876275904289481636363869110142699038566646334410630322449551551830526951715765413021906401591731786657921943360028548470266320128824735070112088198867197444738081492194079470326199205120613492208496820722174564772374866857812707916132572392610519305200434290081801624399861664665757631603770405371729248075160724697988238915475658707461409335144798955917273849677851486949040759564311321576831024698986366154310970656319706362984084248539654833328137246776100238228232228651559202810931130270428527659238841494372546146564636706183744813911916135568177091543724346777487878312964522774592822838558921903397308196676059675245183825291325697955396167604408694801012153285584755579497952218748184872456998568423958259688069670849872293655920037349644900144087555264306814968839846031987275028270139573696097899969868060071221042019358540803685084707233369160024906348173196037322153444648519577213525157081249956539265983982231606691789354861378177317744460118617527080148220800239203811498688310412713263984475019655339210654249173185220777620723658373533592408952112053961360904159074678616790298160328108880000995309961532323817173778413372589580683560976844784062774361887471964190288217810363669818459606227121402133190704895536280720918392855338139596989807543588832734306672216220133798094865403699466959892404719678562987002034259999414719887325153867324472267295338883375650246233827926365733131786274846006412635012243692648434565208833991115735630078347520092527408692077264904835727673316697229910750137426002738300382269898242569569193987894446419315776341217975579547899861141416083283842933895897244632947711764636022098871685848675561203898140372373569267460643154296904382466519940546755232213580815551207555578423338164676158449511129951404283933880450137728678101323364953353148086386177922447167971613493582650494657950467336425430647278580885890918647199080136261826662596236026426116515403981416580618315183304144596365280791833213265876986255815713238812323543640644297953745204584760160195741963797692334411687800634123680652625835145550076131577550171695895906469330190406500818261519493257658604114968232627615390184914210173025991581145552413991565476627886897189594923906455703914746685950065856065880027342662928933641471199690571926386447929621379879857102394597295890218946694100739516198098958530665623674806224176817917602027426143884633127016346372255688042862943346269029116672056733883649049746711019585440823438546353079720595638947841363711104119044924342464996619932229289675599073960405983067946555840898138552583655611523945251317960075951410825049437314487438914193737907319235738873855001432339317071524428801494342481846672290758894802573517264798000613473015492516358191136643318089050013103184169487591033979258626131881253988673776289233240844822931955285144020061992636072102568352800507258045978097011747730466051226492377813202621918418749806560764054287221458178455655823684589784986998629773941511759552265370877426222620985252866004551567689802931811398802291913020593038666187685302526132212255114965506815921852359331531112917338342571228767518324324777385164960916880822648665354957867237028095652286264186073421268025113223530981205902975456851041993944294106435914452995196434493787005366728281789963734670323446361988089065919424395234110605814516103027847203067712305302373493530013472363846841741474243476227384640730987982319301470517142926674343465263986046739820655184945704747493975284063822493603404510112132530526996403277676260819666129189986166345472629259233390665453796192845370103464030081910692186750979538545690511432808250435364975021987127905189682932751222720548743198480166881188203203270014240400552496267244842275519046501175568658336898506825754614697056856899064159217851670432921444186437642544522745965873478242886282539090142156009555414367162288815788586846491919095062258960511311966452484661116739281316265015996239769327977538803723177046702849965664340054523514646934986290769528053769100971240493927009045557833740608232892220287162344406366751815454781526463024043952879067257150419097557224436643390905409234441034696627764915235761933085880944662426096468324762800263887987003009451277212757600019176339912678666528659089973876133158072315107562671668722315716722282844916683713770835155500289422069231837537210527870806537693933369123124562671154911852637616152173740128506644621770568940780654778774019464210943155114409283243588426820799804653148496262354340465892694902471077893144050824149958505621225747168564681459135068930479165547650886086625243080942344922038976303045587861187638560969832303691124755031401650496249834721307314001916320996880900448569265657951242821518522232684125840550155685377190929002686600946220369232165153383975009916317758450009637409820234889974163980753052430615533076171067191483856827810775646023211426798922900722076988849373268002099240843097163250835880814409070672304915144330300265885296054377013191310665186346463619500035854777835921371450323726277034834324399115780725467576741838754827048955328194145418818111069344455053085837381816891550822244973803398629783504175268919001541164985887257760775273502749219755200014595770805974471473637203404211812108111566736030015551474563348211064426739138986438108683321681138935217233121944928665888999191479809615519852382667222774316015191485517186598613680400223372138893529828484322107237979476518615945064201880376765204803494301929954181838422298095972045748709085303025264343785042468353346816649676357644743165461329415723106347805781447015470223401825278602065228603708282996922006144147448592590547428122839811659292115597960726450502971716291044902006766713225031252586963190367496389099680085166093482819027373903875367900333527924643530864462916411702097960373243232977250953375511937146890185929499450075674606382753846201795659944742476438001477731960509439055538644607725139181322000584445567602538296449871960734372110261415013525417604457417378144157522382839829828366451167062153586420524152514246194778834174488790627807593946287927403855464290809672527013611556001752122384759918624062928986625148848044049216131814975366027374161459651383610982961792060972432482259330251084414326215245100948580286654856637624847181596639329310001128496565910737162951934928087647999472210684510337287759376473245680348944715285617638954537765441284193439065982079700422587476737518957904674914465690043080140297071730500490634977866887803344904910306645550686570314083372706318928966185488705193026351420802712522614319829463833498833685599252657877691409872416426699379062681615149802781621638351946337976107342220802680078561692959634466130754001468210843542399278740221355505867290487008359698358805087096380691520560401325598437101962163324397984858152794020853055484595413677827570026819195120359647584404067253614863254468779958103328007118815032887392003946605627807019930159449406932006579071133577067499834834723065296417928848151366519737225557017446516885930672647454913440371047511738677983750953285060608215970297092256594421127217600423891870000030629871931636856765761899974667339447704473355146610400572602415285695318011354267898026394191767315017852299254592538746238614340828289480969669132701821992510836486126264155281539757949218106676628499959512326750601805442239910337643388008841878280882064672045902172851672312676141004807256101910484253779397670311684450080634977184058160321792815097047131654089412263125928020336699397771012493080624272959679903527383292311067570385386279798869276807161841525006305800561131905148181630437126229353707184522117821511082799323873517961017222706081915027168700703690878400469865702430052282415882048710857346991659606773406099033927504714448418725653011838358350790901514883455751550056391665376485458197848668703158097200074820022269416385161031478228181348292491133334615549253294607304053829687307998802434544169423039529114874956091717068881460492991135750783948572494817012812218729395450647327015109808706601482311130588532212668534490775690668067843976519812222810329178158596218338573991574273057410904915399504842116819677245070902527273083622794991143194522821372694208583579542911502407165357234867868975337098722113751957403344083794970544528758215600097978212443353408973195306579933479933143521010580780311916892304564612340998137526678471460465008655134912817117486201147944294937493931496917112682030867418180628659946289495343795302331686816327663522833601581435820264313543059471656845822879615501909478901631499331631492933576032385636481900887484836201676779265323461857113717429913111641252343795242090120907028850256326437556874853760167592584590531955409097019471137600350848837528654865144808097746167407361703076380797029584336001641756382346781525497626201048690823681816446643306402042559520866302744816872741078087017207434623452878473608377617019134566745006138941406704871113619295606879697116848813280618376371041662591503954970290130719865534949689963223123783304563955663698513619356939314471393994555623276560455270779002217722918513099830652197067691548969794937395538148835779949379715436472331201936283323871415963881081385741820896646245530260841158107560659674672840976665867337825056400656814863532929571460366847725353976717023652309110581561448175241274020307518157946949001572169218505908479570443856158358171172276907558766810903462409246057334699443406263104524195758334034694299963572098153514317780951241673674798581701797847655576670587045861316235709733491783277484197708781001408347272978944585701116134814115344797517205782369916397216657508228125254837737477041966660255018061241491848317308561217470986920183743659391749973651482435022582914722134450569552190488267064199344966613867810959246194109990299743729222296817537712580329582425784324274371834502775337810760767895623029144708987023085551594029205423095087783495952959544950932393353245790041788737041559702180008208330212859108096579903247665019268923495509697878647137517166892859345737596139558667776202365100148225401871835320017253588542936784218190541603546446728971000348511139799174693535278093284345402299752683224062772846609589913340175679636873928532686398316284683521703308638980025434119019887411496972735713708135126970308613386861982775185603283649124202138980051751331974195856995256446976453058729564627848942455792727270807810450159129293740069494151953884133306207732171139900931062187201489893459600857225160393902281246762440676541596086900296767009931757922165320314080172714438337368247720109926123161632621460439361832758042388950537281649826144935241122175032831915702553957509891241606400493122178467968686816768407268663897721230346323032092595450738570750337995001985234495658046670607363098807561639513887587539785110792189904335816184442284338662695044383255006301850145776663418292293517922449062602448871265033054029525166141351659092149443044499448069771307730790995288725389870084660390968424924922720812553139636208667748721236862775875371300440896692560783748112782940366645330440339651022566221954930575031967998157038952628569222488793821969540381812207726430855448264012173865569308324224094875875646578895766887717987932647815578529291471095074538421962836069513217975642725999650882439722202418860488288426447692750252787139914592933162256030897131722560927156062210588054581947534797069105105430264032173831444357209857903813580937228439407461489672686578904900930383681281929519625197431552739382665754620275439718691150393909707238436738530079409086351732252443578988797128041174248066110396773589488316771095244654845487315587232049048408296795316996282162180829042061598028442435035798342926484313429204286627323233387709984118220587854358037150856472581727328201187304303945874738689063205621540385847841368205715015860383335377618995322356933038492800022140559976336330738174837723956278299784576932028920723046353063660524670471469392117092796805598887145984143599618041231801654033232580145732254676476966054428364678282463901198759042453633006515001666195292597079675178605958486779848548984426377838025123103999577536313940680291919317178578925885893679287982187171593449993245948242269970127547539676781422932576811226306530031095395630766540946983568393378242697831612432734634333878772163312115081304486742998887872935678387624247368540721372398362192357199018685367873783248377564899452459203464941821712307175883704789746993783877326024435463234773950160626051585919351991187019641791550436144010455414370584566530247570698898589578550669420644809991998135068256387102441344359642048808797137787350152788019011861870035570277695708930128146023366570066929567836256626033131143309180520958031985141288185040947702008070715820407883846012702718726516017577235715940453282116066326905584175875081795473822047407263209170148417722473650240640829544780724555016080638924858365836967728936145637745746561157796377932302915853358795519369284519422320755962198548754977782647859428548053399119644295973270192740471529227259945197531506127525009455652454368348847036383869057221387100074034196020235818225017849040879709889414904816197026088680725765624996502413319028890732143691564651902174035238743703609036705449154883179347691843529520634786796995511003837106572238975283775677019760819323923730304917711095701235030689019777956099507332944174611578605140572853220905845071411240029450836970019646332913555136317491331592862015745090373771814978511662976745434447045504586617341357018815527262437248770492678064990055483915524881340610989787778916459626548021242955603372801663538344201772815717347324997337174259233889409193496735717403689849930581892300744644614328848383047126928423314029613520052592036426558501181585410750578319948997143076439858712663488561201660078760194747067081755454144554222872551722835725909891421643206033771227700612558138682688379754157255568317843506069274016086502173272208712023680285898049891671302255682368310834728879844072706537485054729153641253742454489060433479181701192308593009501876532984766633269031737723103502301876176825421049863674365269052507408242060927507451057146145254915076282529142347111710007236929959123188650109985005812061567311205166847544904579548485888341829802327277791432012128473344815380837712051326521581879393100959459845560318741998075378264476438980139955088308569513244303433496909474408718977603738702926421018682979642341356065875129260713962810796116507691115215775217478174468240867803935211717084435634474176938497087643171780089754855262443789507497671042327958935211381957771250036936241533568489360342416101102970243022262809440688515722713789214683555663745536867342836057571379697610833793298785027076947295826145120985596147039784627867009752692066460234557946997481244811577699846327022438320568170730884871806316086088649071011353612228355151873211902051821233465692800602059666752798118762293859996178637387114343016097076880214078404663242311340748758180352397846784999010088781910243221204755868518518251724058105877832647466924897134911418442696320326936286904411033315115680275880390171125919701499314174636977977312471790780917776376680050427508349985140810156875986100081717713767422793442880406727131570036644746103995517729808218693889381738102032862509998782151015784277511258608858752131233326963201945809253992858916866243543263414093749869480147108803495468803507818203899928206681408322050506150252447498286230090534569629815322884660110403211942864605117164127042408374325111563454166453592207071451959458669291268396588551671892251778986406166874859381937297676315713704296823158343017483812894162317261123424844324046292678017474729270443284466461614164807324413677977541922384799571757440444062041239375721012641729681012023148410223619427459456436361612424674561697615310610299435165977994218142513668895708646811784291895517989102407358427732469062583923345903673082332412285508959219702887539052447447542860729269883518971378335088256570544537671370283882027022304218507090385367656032162414256072314749626196258138417353395622608658080039462863999687954286721298407125425630940387236412550497011314878272132591311234812862957643419454397200892805346657233497986410464447198155401066173782294331936777248467960287244241139101890160972005732330374068026745614931432821728108310055801810163627249292807873249805470391117950740957366537920506363143489705095523387975228210466937428842895871905005060464137735323461881734007095177697724069051226694916944577133570999596407377338566282934964599145834681601862956112190431490066780452925390376313646202236841743832647420572037774174028643770620704191974915056996631116901039993490244140186758732148613125729388547033601962523184228170012193170822471428724223558394660215614547720940182533414741382043756960718012419836342961097577221247508191499557376088249573804836985086418509108064029713482573161536781520717045383385335337231225061991377552436077515190995168887998565707203484679699306129310744724076345468727832234977794422214234354674071982943642425094665270811711582429901750657789383180909743786444042981761284460809412843102579631093243345835716149549780139202695149753380674420724022753779429268115914725636608414191474396160761151143830001283298867430605431169841795301000734418286126775310708412503460224933536510282373582213854078381270914106923087736545285594203567279655906670274386086097470622991731689580307443461337876091710796463955586384968356262801328272930939595359014207175018350389360721641595731282225905685296152172773722644136073379678130834754631618968129099906928814481949835766630538168496610113879441587355977143746005554385274343382069109090572994460641264774675921121224642045905020708593076722653063820740392921757564826163402816405199788728260036612263915459284596364100677750733211329809840900520756019216293935099716981399533439158657360984977422382598573960580133152877869891264913183339886716454086042355334932368042780294986654138791013879667078164898699677593597212893504780344471749365087560616410268177098991709486267226483099707291707168238659131405518364284122116633253441401996748033795019438048688613965565342198102717032319510314700699855866475424950528620900382885650423446748135748212718833583154264075091279253375267215881724308308378080671787006338238180238584065701841403845867735605095625035977038920943381131247429385984857297384236974569333497812049773826496746326764971192700255690936902982951282912813094799208563589166477529776304829379699447263726331909393954444475292230287770835701941311595687065246219224749015452962470537854990738224325039116005112644491203532622294830784774065696858491805014730683059028841859912348367249623312424894400711997104677554084588259002624100481662194860664740283748993528427296159072286134019791591680439147643520962159204617852155837470700342965615544348540639846429401066754612174100683162122957342864434568998496941977031343676512218919772985477792719660081205786757917226187241311919154958156686497485577867493297460723693600834601143446802238383772469961324281400807583153237536763348247256964712237861339885592255763312555067298114095187650503035354161919345447039706283471201108247203022146012836437023507667260097082187764676468727987227660234518197583190523939894916447768244688827557586179856293513414706269688174182871920779189298468736011593544620478222581635593033739845365780274560511376938556743236678317086996118795717495871982665025874990291740698237012206065613502379614687775814746545152353185361278752420833075237948324977336317152164482963463983680732258791756973269767504604604022935212063326410755513744675343148293501448404708730013597242679488669944585489911398219170399205194163398725192271649229138183198957084008781415232668153937890864469465157011048915014953629666251901365311365677480312623575930345627734660754751183064258300214619424739793786657396699584601948521668853673487057789392605127907712569314257211691939722539777627678532030018662820420794923833234562380798962163786403827810854536306938890287068083433267655239198198861775760047763520391447539527031436929833922917455739381263335966436371539651079990637782493804745840148123010594943494225052573806820202096316229378743943782616282487831620793191312741046125023483645672697862906852141626215425501489127069808389652706035004136173371475919981100786540028964553587593352936335204784631074617162769629699830224362515237347798634985104261021619233840345225013371652088211319101331622236664315426746248653769025350609412398998228750465774993921349735692298416702975616794860108901912348408607682942744015064848891451462378042093754532804548876298453577177900815757713002742190593252071091983246340546580970701869794522740710196265353921245925010518934635021421538535143691138906237618854493857440989139348952072434637604281557867844552040319442818930910969227815486378793101018119605379970445177253452625971550250017798236127639345323159549176429426587961020043748515770166669487511672308629923186749703729873218088442975170357118013224138267056010976095484577348276670159372019121471574453642812165791887802117770307237829318584053777672658026338151711399418349111556151780120023240664813270661296807813764376440695075481434632767763693349646822567876400278290966423038394923954999606184353435610665692386788909640631912319149158066531823348939385045827698799820354521955146977141154100099876512814957831929476855168704159886426851729767836613118106281260728736194420270420192970445400983177822421887792933102373639676628912560376731033816158789855847978102997608443862071012357805055849645779847032129640256721461605405704775467434070697945663295406339394002814704774101846505783957392942615877337150635013294005098403140886270924494881321963034090421449327861234951194731019351540051164580208319420002773883925300929350416804350330698956794428848310233300668408229953249962020380161209979314425231727958088008255964136415584644498123241204557329340147957261844017883091265494234484452930909118265231823248272823638908964639546665562693144087869319021341563921950282283924726807430343704721265269558423443642531950331569580574417921132409424087269225837678215947045207112726985765984280225333189327384701537230448431316485405928890571264838700747456217830288995958127473891803575339736286816064566048103260472447586342620648910873920573981836798994001987207464500820130100582991191925201393566981416341692170187671837139066839422554770438898960572060452055109081684918817392009675293009480572799468033376104999539741162620490080462583636900930751896804944246901249558191203673810772789822414761220245237824332937761361695656237969388618518609480693481104654788667077646555174996179171295922508818910004691617061334332442505998990628466414165885973307140338052357948580862713608740967914011790849906938270124888579245388922969678246631142578820014398350874149327307032813395588062730151912188064785584250895989441930968482170279093930570989641273413576616103867796687525595636226707477016962355052457756901228393320903551034043918787442221691259677733142254358515268075712619885155271293207775175431489690942157277144073317121552388643443973661973880760474950369629952358269508181727161860053593378109806363583624715959688324015190289625886582143362167657963841103764644116799470001141921533332832071422760943191810796343487163372619471673540617212377668014084777955004721587061342664724609105863502787065892402700327667981058461618412632626656296986190178902209830843232174766800378798139308010974140978680888387650512330502562861187015383214199545433855653716955880351514481836842198969927290907787609945732579187499436740563320428819676964416874065448467983131791086848648939187377209624594677659308993443892805840088410557547025028935312559986200224745829343489539721648398424366155694843857546781976601274356790460722893845404929047818449380519036127031423647417462546474059129068100442114387723747538057119247329682442848858784805286391988671708705777424931343411855104123437813489890806538156744557152618221896297665619696948352392847991869360644989451748340714300527573464815059019390451737673573404498619050047701558236931934395366207209923221467169385957658220368191302166553649059198711306636717422448088765015531401040971313597367995603404817708907502059172852085247671921009546534231786287686290651750752916742099527338536556223406035438223449976926963930355594146960782597039856516848096543848530898140349258947577702870151796825800294126064730716055409680956842588920896228485906612609923503566084044157539695576990854085438501883930347155396555997621607721316245052383302129278012336397617428700510412348621484746836920550919196675655244154946574678211675552159923276942526448974704772575019751027787396714683373089763818015313211329857617515746898618031873102955404873366007355284740198491799394854423366133920128155638330349113408419396917756844510427643416734049755444754440415797280339729267143245508420316516979988090490770178085223685656340528876381912747393025537129231241295386908462252132533716197322615098202230975720992717987919830148733859147978435859461448218761363938376709147405868730356567749676686087436998489041447899940307434400288463920304732567569247546988384160519314515267835645721851894099837679544508608019188044168906254075577062205290750465462440354455682228095116301537042840351677201301206622277231197996878477958869162517794367173032030306556966082764763355086102274905133365022996109479019064599330042199899695206809811860903632235883556840044957926585054641509149584129162066923390195820882895791545658311426222370299458899967704966890191087504924734201665886623742099448579143022271071789762120602862844535511593527416713524959497491745478499959794026548863155226676433028684006106692010476088764446004170688040256098879229176717585783844280133291951607751207445383421558502093752900662348997590236271943610608775193777087050311235298691916015481078027722132167238320468450435515819191792133377738826526411784479325666240098025980445059507941700593492549988214077112525778920380115953487729249651839645840151529994220730407686731582998764060533829822974501785423410580576717362262714508406488462260107934535622229700265520725960364737175757956915904161466412001124161843026153949637842402446160091036247824755264832437493528493529287612690797439934334570558128810821095255566197943968022006749174000437587462558953806427600424395133162458502123250770398124706670487391200442699726196995036455814625151389918683414491117135379336527694450139685363306462295998591041462343902238262621880656999272793405712150465115296133980151078664430003648160506910967495004047228907805644185733900497013736093973934548180787665793401906740939025683114331516080385169662903959267042086569948200072008357373664299354310527749215681030938925576140148898859882974022627195424701969239503694225329679920636262943465643902611825298183678436599650574550181709078704684836279647797813771527599317187830852199873864581864460403963885678574352007394706843303672185211771346488936505600871654504194971576814053769915085450249576400693609385705481135044668442930660343906060914289567557258802329975893372959993984378439290357797482140457638124271618985903338741160719878917347016187485503110426940456900238559852896631447658254490137271149274007704325402364726426497662668519365223878350167309671100391341316446736954798486779434873433987244407666722472541297948907888539978171592080196299827943518299280600918581778833102522285497787917102862430439795376746349320429555443721467888184849557843455276268845577912116864745319741049992439315785682065300379055907018377859791429115233911930910484842972016793456505562652261173606858037481790402848690339702859513322842947250727092221007609578602945578426572528458889527732041761105747464339371760101039327081887698579936996263846124175569316614191131365270832712197277053672595307954083368177754234166050463716389492075280173463821955202714926401687237600206289728118283870676060923432461619736398908040237541951555272665624104700402775191869749544917968480104207239994405094969958420080852756638289251250164224365537997294203205948959164839796435755708701624165223263250008576885840994901142779618205962317043718853966622651454651035676201936508464081255610440134428700329435173751358302138221775389026534300084050157267738280177097333537220855920885751816551513388279379738858853187225872378534418091101049558114374424258002093913379705253633672285805940038458354751700487948131434896340397213480149043381564715088824208563888646556163082812886718265165333701880346768037875776340278341581345404349918133822977050637476877806287801669028082732867727122084766865240042528256552120095293401351780015146771893573376155908110540895298668685889756992812034401287328395697587154507759587255993396070223643491599141630063384541895272161090072266637135391777441210871231351439094252324263834519288285556692870131798406902159393396039257347244442854651289467403681312983838082717293422730934715066547525607654889028482112592698549713884705731397191649571788859588238995186841306899737917198449060551870947679061969440215605229984924970615669166614226893620211533975243673876779497750210013658393676984261083474527577118082133249638916366901207839749400965926103825111445242983649397859969693854848994067686813794704725646609567186055169965970489525968749135495794737030966467427115764327526608190412746040443628900696554831269315136330017713045231943747994834022171563208155929642275718548041882125772933255898450989428257032415900112597519783397983312260604492828581945563185624296780664915076842303017174813476635575350421854184331253664625876528634077948426522539538158256357300060076956667849284768316192793187995901394125777525462639187158550120974191246341089768945973104319305440819737989536374536877757033579002404721415855021480126822298695856362579913868768351439326654350815760185974672332998647172787775859803947304512636404505753344260322066052320838916125121125925858058748022601262913249534329075768722852547846654479991134620540054897316074497850712152932906952968342772173417660464856917076606019915675104242438906644540735083950631942497040091107217125733999226842075753128419496698309079735907375435861981413404952307471086488625154102367843378306936640741839118444543470524665647548748973948615697454401390448486281627152888581280423960561892229565188014573322872156988149381139135254263465170096847538716731002945234060749077782446493301715017491053078548138869274193673037948909011793588897865277281209008210403475642211499502369401737248357351685476959673400008655273082106334940395558728184097413002405687657369140386179263934402897757904636148682714220311867206176082276791351424656542412579258622009553352246461694190190298987144157636707512583842261562073245931619390046525006868742612893137937647813837072606872848826286743969026175058673795676490719187618729228977397395413970628739502919327603233428595867904592076017084996771830728152761378688512927832088062315595177595788364928857137538567640210107336664662503080442630525094293441212870721437192470929643229836235335960625822121955381255195228456876891507020813460123639379297875268937168606767088392936205059524548953197894346388896249206633868281392965884221345001224039981289643318208827473888673735256720138421641200035192051579844165707274127644873956492870181197502993859076105194455422458657277493856260138998657044434626924378433395016001094173704879294089290771042805966727146610811870906008537180394021728761099102036654629198065795754105888163892362122116070135068595084182193637715715168414295341770213611447343582691781344359126481476377114091150893182874391496512761680972987697363473599488316395647371406998759857655365033162300272027106824733782058261084635396749178438058478838149092133186908214311576489585098148193932764186657615231020441148087748826846007100012079535426496763433562487284908972294530440705964797168990989018589734068439768165922339442590475450494956878131201009128303348631363456415673833174188440990135701975441660800173908606645200192333635797981622019135236181555190711197591745304952686148944808346557240870393180247912776502384262185409949346247271826074332851821205227024313840444355571468213202274424519225356672809229160710240000335837041854518100605988881424442357311548683932164267915118913350082277895982362605197284619472541653134061137695831748814288167195227911824147062487797488925359600042094596160997433501329902555260483449901420756361225003571650517870163872258718313264661856544112020996631358050911332690146618232412634161205901338279263469652379878998042420256256519534830075523091441172357822043139575775534639877483868908511505224646135569781934900215928535092664283453989255034428231702945720802671095987105862700617506348850033967399647629515657323809341294883324276679983838276662611337194957402810316394741028069364963219156738653479351832782547671392230418572709314385071362423044483611936968000983074655616672302690040364295523342702206884659235590507792655500789374453900268180265634723632637743729747539742424392022669939587670420986094257738920739065899699522596679978805153449144286382291377979209387350987796245447507271928518042155112367671013753784191455269815105652432404586162024009290289004440691851460607131162077011721976731847930236098822580387133224669146703849941387790152300158612939750476404414936911644180659578940758927781275585937052324917119186754418164127683289039145557278933299745459273712957152659623305617823013726756255956536990032261075557771083689969991234484166812901034659336976908681374393913059227635953293604200658697623289892790264549533851511920194172083248944847224511572939382289817981765556301859600367366333383153495850643542909450748642013126200692568139011322061855197122450344923582282679696638426764293493404812214669638015114583650720623449287063931342201836299578778880938832370052589133274013194142909098310947164288046182552362469011977895129086584316483459229120099386570781481800530772533342172358536738320288940181638532835826404923047891576410373783127279797593941074080921958198621857877364149368224577133687780807651775653657817798936373226876960671004825805522809770553841332605379177727872134203840838592234423812745813358281633916521987153384835565046083023387527730690235869975787274634356842327532899399239751356244230256237294310579553414387888159503251855601869989923685567728716353959736408191071587723883569158498082184385072128852262936565416565427097377580719059904975892259249745415188311070380345180071929751183628302602924931201842056062466851637808933695228986656750682782553125564418194926642198605258072441277824389236199495922029645237270072261962063559459064833226816312357972919394676089259939147459623557764765072458884445402268258965478411434136271469975358507041778764618840751776602493961620730012962131431564991429472367155561357343692946740636104508424488483055209599237212265816944170050868867917690102654375598618820523095179749218113812125980268691867865166617987813006636527170364203384617546020611225097649007008645590720645020436014851986577032671847243068448150858722969949098628838837327134395236143288854721393161991759080659096085958971178352435254995245322099501161819807896121414726103342394602603656620401902040771460029727269220690199437075125886065681048969931940891622913787205865526358942673960311494668194723647424975519398217460707802671291422884480330680358863134280835914622940884704959273324503877239381386146556259743376387051665721989090201757290630164407873969636046912448668728843884315008126924346862036498960497184602094083937727517542517207820987817108392228378960663684966102492180517649062559378136688082561171100597869328189634750658366737175561108377969740573022619052204265893772299779608777264356829440844964938888160149742542564481801676285419278214542264578626006257380066376962209554885493366555428738209023166253365986883851547625925403570228220551043049788026850984943976567734280958456312767323146160511246390868993908137965244739276864992746891091692646278067734965177262217505012379419542868343976830606097871707436796647336919374903262038100172426869969804766481377887174944354112330259726739273445146224041165658163498609211336485877191836229594555686254528268293125764530793476534811113912754979148916095601166521526555806967730959551843773658186509886386191559024820021568745112698144065108242242617246554193235647704884349477340890459429143375804305833776143110506604587487245630439005895240167682856305892539614097410364190409421826103983625378950185214965512951185888673497632918936059255564262726335370044213429762691342261742600750995351354509031028283222074486337793299543094709576809483764810246634463363525756059054094941541433443553536404465962299949395463579999191942435788330479867051437433286151294923415660844998222805932929300902670878926870525314250300730433622402028084094161859695566335542158537386583577783445857127295209424263148229974863948417328690645610711045602903569853725592646545541018105710686989891728482867898918721424787028213537467270701337710086609001183009690545411472418827266230320110339950253142941558972113056823993177946800868406287029470659971093482268600234580457703043792904464753047061939891338076811087057758157805773667025576494374240611330083145481284481635244650857699486895217826668194657259806952731700383607929055536007430382548138339704711036201359230999279429151633293315081542231372957434835911348344743820240411734450889037735727918931303923490641495170525851039387561227983978982149217628022169763632078535825319846466606289575469925200107915144132840337866563216890321462703385521248950098616588343110154778220458619255373317467292964083157847638181948242453772407454490072635252962369452961627724163861780432556298289484291542892082767088290652712435982278966861476465076367054345081775761427934022021411535679244505745777560731778571633588251724605994561558452600474623005754455408763891988764606201088647253072494406001267661205653508626022785968052673974471645915705132011646399491932030135387297501206659752369339952311940621681829019358799305078119701827695555025016816226356780144146705155955233546525381544403257567727221685711582046836639199499643015196657297427870570284035944900383483054991119038079248046221508993015040657237523316301410130860612808660208488448064225900914033642066567804010939806281551851327245220353907691761128639967246516846790208034384207756978006957015045600870760118618811483328394701482792806621286689112243986366072651477831823766457536800112160405937683228538774274324431483174174640332183728966064212592469223385033272769659995409360976519167261891102523646211341003102542888509892460057009120008713194622806137128390421581095109111196992240073524328769802407995012152407184018931538419381373815239316557324545457749022215061126484854891288675073887379344255432608637744499103195970048972938012318207535016821431278763490772458793970002307348227162070044424300018038095985758717540162224564265845568042624588255213062381133618360925908479495354519061342103997389485843978683786080362205057975857106401737628720790221786293844092973193191327170630212573459416052876895498266815851738402841551116336533420657015977764644049120576502899817023282389758745592517866193064872985966495646199734051380811307274560574364177021070377393589005650043223699490929045632803993555801236588253230125407773144281079903967316967672818173018086909176354789840779100940331296231423370297823804896655600246844885024809053040247966515498807257212666603668884728492470379761495070119141632012224303289465619465468584555091836954632880412430624137152687379836842959541107723610806140228165485836166879148968965711006865897533025353940021312545069121531617788594223631999621765096638344472428913660985015993031858729074365127664055607448672454568599747752857573695245233619077537490466819967973895568365533914523233647167448362959338753113720913172550642864877612505537024045680494211204754857053779895002349371151419468458246631623931051068961191650735787854334938406810658898202021332050260524361638926022635399239180009512457825237907180804034973418786941664557069275797825032790172706425415383057285395609960573845968422734634839325135550765211214600018259081734686108997939184589872266575098660873320568608120175670171428340139042971014807456343317660905174527646467107917186257758906823593793188228421577079020122491834629337567306740242257008632035701867634134811275898066367731378822337823263025353942100494148134976532733332042856824379098669635924794018409742116261579955282721011055522785633150293705053151144463976467441741132406699502572805535448541975627088879847635807308967716774278223543351384654308374894545382195234238315255327087641673113312854017097927797506387019673297017794696588124305332064889750039384826252820876817121318576904155358138197915802266230013109913028712645050221524372848535567435110187104252839707557690088038252927197331339201651317754524324878735792224440285695640888321043040035941359024864769219716392166788316908458823546954722342503846688292658212740683823822103433588364913978073923544311398526251768172395061949204010219021665657921382908467952358557480426738511054349871550927183897079714412842363124169854379868396873535588655444004777587005707753189509261804330861649038479062607869921802656219050163217047526256823915405313351931809668865072346468698219537824741059241930557858440305597623449457559829417229067168446807706369630346816409347951742220170082633681426786628752774201375008463583116326302269917709963295083870264332981985991393707271464924441492861953029954056093523179873037787854497369210778405916984435131666293358261449742407399010119506848515197109775221475937561278099177804442011329113091648646820811940292618016238689852830853475691506223677398896303292020456722126971048497845055798902447804294572229171083751148791418584712661231103606850314731914880393369262267625399153875008144715696099784752571238569524106910245940614410895421988720805865457784183571584478139944882790772171599328048421143888305026606943707014380870441281965899679479087129492319669119156884651782632728357468052224994551023353384448354161391664955799084920143817348152889468717597201718294865966329552591101596740212433039400417429475163340467867818826158849619927463831698173963292929202953155491728639431056524897380048225684967276499968289127725708325025253956563929486355727531607959364308263138522274767485986625850048134811772078787233477980334552250123188631482220703163947528206827216900042478180378935208746470921804945493734913502124858534026985226152656368621726381306020353767074461252213141715790920511174001977729512175468803743843121281772371861606757758042595972516336206429054056214792440583756141160920388957544839536351530945193991472310477858267914818106475440476006185019768498598724919113345256720180765495234008427117933183861487109772594017851631826972034972605616771978527240575795676988689168639909427243605341453831430095245217370888705354433710273713315471878956263261375613765259366013256095833159743593309711176425128520453162801239078014827547472696486884170564678992537002987731746064512598743839209507793308687240920967632698491248607131497259293072296396020990310103746842545472207126181396859723661002075437045792584054793244062843741917043097087529210780540683983771384165591826381969190616661396012866333525774418811663520847056780701999812398381711935333902436191389288534872991838178107544370599313363392702288414236131388474522591945348035885890652777153590342780922306007010847305698280860540156805399114048685641057031706177910098806890743855837756003833763234696275409111756191229068639969652872486056680170521205456469273077203978158755599380800066775837987534023808385491905917095313116797346023224369320174945959668253236989553164999566850265348620437652382636507171225275527049390190813148407580306000959453658943752414177910974391317824649941083614314519173638088863299595625174366568435091616116439615414224763572718161263826792636181357905415809680113040267838783138167984604577597704793487884507923647153943043808728639139554378272004545260385550549831667074267331693491215090087957998451439519523805714519243723635647121928573313393896311029178836057872706995246823561538743541665923305431110852556344587824857002561994719662590170507753855852493129142967479902923236407788167420335300851698355339353831880118882439147743791945655601941299260897658841959735767893492980146525574860442941599555803807773276797196610748035430423068723732381662579417750689179000122413334667532927642900810291737379657919576607605156514589695661615678751402055101758498265940061762753484831454252428238872158806094205890034490327928148606523975070707873344494034212811771443454700141434458101758546685344605677109295701306301864498562303325348408127747119674505163702893904004393863381997431620295636678035038112791861486853162422546926205995958146447960753322476768036620503363691330265366220859494893281687403739751379304721321561447182303129484692530815896612452126240666551437126148790170414616433694412832826214555648261185574802744625122194832872442755809950954857264211234538842070666388708295323892758571649580810975294094451784525557564494863686272091652828143830783654135824371249462919100898649744317864851390195786710359230266948634489663793099203494555583469259987508912706644855949832789741680920168800485223790713029404938943019170699095078590229693646355896965874656890029928405259748356962499362744956112324375496142800465637041563420061470494215418821803586669738991148025176379757811775728003284593295721582225217017621959591446178499531840676055298526416501637461609094213294830922255289963175137069689568801720257966040824540879965695016270243724076064790551733016618193347211891977793895232682272921865941790937134751938762319338874134093786442363326330246359259881234325435669414013713253226090887519939023122881756542571203828391640000267253673351512838179353607184381528038326137706573636853077770101869885884939560581819546040213414477266096748318996471030960354895685112467268760566434480949592997659508150929572987583224924964462469017191661245230277867732473036148340036330023109871769136355155141919651393387376964526013330643627467416189135799998065457700311906253491687628666956317047786510074800377361068457335093509969110389439257480894885998467547583751010470968352452175181881737892637695449063164127499454420738592656460729102599205130059066236081643257927113065887292462694323290711960053248724822036209933636852056481769596748687238497398367857299709678391247751119076433019830160817231057547020614733318599028244584858992067396897337403648773301056817707955208556036050373641312215365547796980247024882952045529984760744058848456364460406503892244608181560281652333564234084947713969347460073139367327324177762889062710927720074858397274200325030035992419410440704276609420763893997515512354899933974098862821400956445378838740537757154625830902717887681737389488013205536812680572768773907630148697743067964296375420931538446149292301170387987274992577762851024904463101201325725442068613280891473978104623326744001258622073845265723139514716377089725237552966673313751301521912425677299343042388180105557310839259628414153464526335985459565591641404817687638813934690504356149819650098830775403044418854337940521683704534227281673547383339057810306091168786719767031058466462827125505073126826117292693739888523979765008084131205229161269215018510448088395524228472305722419517365233553604936377402849086155095251108529954268622145319968330980210374504183709048522639026460775221205918374870281486110285392272489287123250788471254967026804958713658920073996168752781341830666312502808591394677429044505923147337679343046609421452373287075092780937783167030958897254013355806029826662065391110388964813879711661216455510518721759969388074355838857105613922806731477555331428555224412772874148509326586580784877501538060381118222574340581392957344169555318397462042727189572341199515173826928121517893588867968673242345684744606853553213022913786139461455666842629541927578185905931126468213471976871176023762960547047968470462250622916482741706178563225883065623906050588872486021717801721342799735978212635828743915499375490809103640976694279100547684664340932057393605556541278673432845942111447382986412489198055348094345662366187150807261553097944769118086449758902365575649944507018500012336331255731932006170431081946819971903918271827736347018246515298320716100206294477126343935631252994523058814066346898161272583148044123313944897806962641099651167272993694276039260372410636922965342113905457341548437094249328623497610913980571651691296402616505090083728757229972705594158407991454291205698851450869633260920688677349087687305144064583190226562125431571556019471639006955633776763233072339191623556857794571362507308696332983803023570621498887660644448976597948287283780753518123706679921442877364583933553688048652266209261900584832919698524250177677544556668658275025820911958113931743929482076255462309884947207126373275924119434312856943604825206760001412287866348918757036738058867102887057640731547339769672673698432882540880178352784818123083533259237746450007787988944366367213327113613552319775262308900595520736643811509487825277102806323987618797477338173302934049996971508008354960402651321179969117280648647202377712526337139837682392558497018607675713078932796095957901174677885820461708879824971967588631679637763858020592215752290750455312348460394908648193439018740643237564135219822420283799685043156011010231544719469286922108024032073856391641124604532350350498278954447421532752668998695430319537725117193977566446505684143167859343501822237911612219121070179250235911221154213428676509741882700466002076401994803225251815598124215980766590399530837483189792862663186315915794288248806656492977555864929838299097973507343255509842060720270717294880049547556721119371509278420057510042188107775235784782241347899328711660988116452454017270546126174492015280909625579039538355979897415678989918122279133160054387762196491823947153518289774346715742263899151475838206342394182824675716773101591859491269561161584879091192899771992373464266533832329197055336772609051540664015701608256484338150882947078968050422154191067322782405907639874963713738634384387605163308244160637222735086902450830261542171361601893266533466961815282744578818001120965097980493780360400681004684862868179465534101095629911290759039384471193926102073821455727688631703752627415623028348457393202588039830201625443248894664835165986795555873450197075495592075744167415065299092328368266765644903472298932553018090050664673773922002960408121008989411221468785313826839287333801997815655373209857269680993266013665495992126028231861669356559139362092676635195228728667764975847626658255112774798461856700421174205161583881049412160432476010164937226581703350562541425285055568427584158485690378063947714710257315391199268573629719453183399090203430315878962260450180098221618303818110777824323003480498363745761678453666855014740861661371762229557947767807731128995973786660173387211393321580343627225643495294290167497128743773525985343529718519320715403371009543495331828013885361383178016449333901991734663395327832303493373688952328901724354553017480525973439035159630307184131664718672926173806124882153513328474502615182423927408757983760032368904420513799539143182092722367161871264812887619228630862732169798161515939475053505259948345705750218198504761908513994336678760728927383349909439658936770287404828889499963418538148573747167413676988253577365507238047483455357719411383717906691871868089507305278912620979462733754404640419538730422203663683710486710728299713901701428057228714871471420347033079438388164110174875008336927807309802858047635609882949365082870609316822646885706529689407854384494364514122767735198748675271707228710966783635710349547351681866764396293999784530791806222944016602368608577024418169614613695636003493326948438220011063919520688595071429544473705668618513124226580988445328581709819585017913813833475642179701682308647367599125225886197587557159101187715507532607415513321299811823574002021012338516845343071555813844838771697708435224926856149636433833689601075692989899781687106184414808164550779211351598201466459996242105783454191213029722520001484227370158511874896408911659006351396936598900824993616558316832070548450014636252477051641671330002646198420433652516830259247519141834922092887643610155507808083173505330186541257980588176006123325636613321116735660350205030204555849282798592948824306610105590335932692936880112969085165400740409291163161597008910509516815910017948271567760003301671016314729875558696226013920751039997548983184830057228424712719485887330866341199541007437149133095745337059163609340552438789610772303851847168666958810140100798307804282224079899065405863041943007320194708542030942745568878945921893682103389524247044133344699916199807722195991443312864227429642478599407201905585704097970695001898554316250231163279067091917846772291890702026796306943157320269429269319345897928607648673896086772084523145925983226656621748846130475321346340097109760144460106792751130021313961871626292941929658456116052442632705231657666278745317903611588151196774991407734910840601524493850481051899980504928390498756751874343003998860652312963226632392823104821512925557510147356026453914841735903487744041059112882434036714718284036197921857025387889653104310689721813281308477454872389525133496124192454203431166184983294986809336747464942093789932226524319373229776086614735681927967557458363044988000160423790727594376797000133130767090330000069881166991686072677001894990792642435537021128272118209859848085163357995588324847941588862583210957949816742779628140359267306961614737787218599991890202467965201536838842404673358168488079584147089814705407833391709120695637616685458873255915239549417752020566803942311719316796314259569253700243578301629607669219953728207127830777641908179484957198171883495443041074584291073157398918505506279113069288713768049441356920627438371322088934351612922731552656189256946886461918574735729908751494299872109360349448672264340485662139546321833224364883966380791499182456621202478738174882742415286489264675329626862961137790618937424739472338975304526619676338626187818260130358286220991724501814980202483572985014528137352677230271939089632105846097787468685143384976375567891670160301387287912709680409238801939237384178519375492904004884515603099207655828381124440435505446656731161430236553663729934046052506075964869194464449354828378974284446659900944336634951327066598151471486690141487248169106403832289186496876853444261700824519231111587129818433562040786353593631191364632546537304427457109448111950474137978824879129088175136550451756416426871492376129827232095216838012148308420035356401815619324484737690592843706104783501529950965872565595756454528035417659133014553066354816550619930059427261322453540744605368695985577964163915168479139391608330164518572017221130103619804577593128490753412809352406924368059865153357017312477514761088593042163780650479643248907062694126622430623326423658018612830327533976043250362754760353917802965859622468310181845880191770621024700034118331707343640187633868374369664129575329727522083717606656884938893134768480408106135700728961572072091678011328934787246801637611058371903803385524891412821971083193293146703955226784162574440778296229659537463651088394869962223179358747494786967819182066378316830314348319029966524173485713176827238552229145653259190085778734874826613987973518634236804213795477195236207414136377162250134301974629932604718982016724943464729534025891516149086155749761919414319440051660808242759409385823302618552938945093220876365230093432688502739374201739075618200874381725632368350218145274442528519911058110470690988492900161956246449010714518789273811021603920804821532033896833640570286482165253914384745389138316367850943163759665622545317014365647902146211882992934151801736915044963852411501416398073335445685257950547690926464504120520885783005634709334333942263525424084184943509928154065205642503319025720896425332990981940093630843214358774590665678738631006884204620267168406814509827538178680295003508357415730031439790773558427865259229183770052274791618066984509111746014904443698416419573577151674693092776812567054622379952965998238220800963028179750342761525169236843362582176957837862325754385293491668883918019721510106585813075111741883467595225619833921641302096341138637376132304791747612415159604304943345670547879417229794245615025506197466467649604130147774317550197871716329999419551874806982506883607525173299156198933562859202850327917032643534722368613867161962397415042181523406757145719464625132991097915971354091423964863172464101412329114990617903654821873345124715782222225644291411567419877038064511553459946558911344243961486427107229528326302264285298220652201248517196415876336420058284170707529071012477249734978996437243423099461246958810520610207613033246069676494077007073574019496425501361127680975504716530547889911331198582156000548142594350416885664657773605572582281830265568442308196444175633971410320542621179220559257554318679081408628790988019639099451824152580834772326920985084454745800054821884732414697054277133491214910686402634915998952672746423760126015060184546690030699873952826209372695300558204509463709551858747849115252658339073546944985296172891014748211251366300958377107692937008204679296639623786253571669060971813700988588703479338127030328562324567428938318303712870834587114563977301178008490572175637579907575451096658089534459629209307589731492878845216249929464845879393888684234665137792974549113566946292675847549055701499306488542620379247498914583785898977876090290472671202676879585944120880392422015186597708547661435129720462627411835247757192488073532099207561325203103033403810875019246917250276078250931425267314085628813258960325386428784355614527662060278174818678259938449415002371876571509484886336538403402463799474040984843778464061040867380855609141236279606722105266728953160087481288389252445333907253066421444655250951812097412521968542329722296586738280246721635570846348139630193394498770064977899108376783702674887121031583966319883222224053033478668164521122725557773277984776397938002364538000911013350325000986558653062597510329270355575393921291782945556974690686466400061347765069800451770844317839271993028497300479542639173397646804848747418162426971864773960085560665136412482060814212269942898474768288403855564400482312079669002129463895690009491235921368807893000175020661441930068615319731940377153088768048849992971726020990575873981144854833719210642410282840599904482590609128829862522653130352623469148415719755018121229056788258535949769975492142219987019434464752994952561585998315034952833230766573797872127391675995028487958953887757812648972699924065803135415939292899722685378138132014759253016708743428050061893384336499675174873806973616470611357199662511443684814302003620769776861895481223386659349675231314882554920966292654193394687468140410514296861430254165415742834778427893372300708245075623814659513441965900419726683113043027487664692916160372983750912085707452456197557543700225176150110668418229820414873645708101311362912993766182396577737017726411048941018867010991315721416292053110888074638460963812164788507812153295497005056336899972821289734855346871520719584294928623136922918006236484837920181176047479657088913273660671294605471235658564114178697094015509221767525711555349237146751925879708846339974413542504929548858745778445040595460126164276575833364817881539581315548240358646828961887525090958652053833527010966698903634136716458520314282934681973991980583782282394372778945272721155335866659876806570608387083872978745499576840360254889004289943952000976470864510998948940099161166675540290798145647128100845347871904631099968556419123426389587200219173211449334611531720049720678648610384210058396858583999051842165189885510373605803860059752290583044619794791613750718744097942734661665158626268680495648038999870198095041043742742917065136206018416524160900404003993716414329587159059975039869589351303489914071091431503542347520112301738379278037779783091630117074408934259188894526057857410366024953448961633476543031571333364375862998841088358450186027461320442699612647322733422418910966863727125318799392669082341895257260177094274028858392409694781096786344707535783195543290590826163238489588246531783408287522406571590742953393961648359477161779646972056300469835853762250128128748020083125552564985632660434546676951886034340924914082144497225930613427443914769186881742697325923060420534971821684369812707047470468473535419316285121799833916115984966291949069361478962389770471985584963173403873511355163121112195122094456510653778406615540217566969121226091124941781594838747658581276804808278019360645573127304303866130379750336126688621583763047674464082539524307040007541827836567226660768313150912748251572571060546347602577539786750774079857411729736424245300472347457067584981832811782801085577011972489098045579327757505108973280580205715297725211336005048090063441066720116614233731396728766569403958277623326233162187118850514388885723697401432331770572320987039566545641858020953521295404329829723593995768082317571649503915059045089592582470875088279270069746149006232598055230610575511598013376482323608207588632404812630773914155174664462993895422316654410780529195506964666443477913731104055955954547783232994654572745161603071915745705684880431744603251687639738489273449512514308812944106628257536415603028583568586477000617879493932325383634997960510360698496148066312054490213680779911434331345782547788880471025264292840979404649577680982284392185338018301577624237270725324791365671792741969045819574134480329791879412720086091525346627525901098330163673287289644353856773948447361041830619870371633987021759515551608577274520947921840024329658040316666212851045516964234917367420908418423854138871045341710751866659278487913165688371605941821489439690130770169824651616324875884106838846819452780814704534552772914625955396854385004125584590933508734560788688201400182309049570441724497030392247709940467904910907001458429782482339513378445874065013365806717384172301198440362133231409140108249659350064388549122160842430484236077825415333187546085567368201767268626843314790387354551709814396127409362784173616771630398963600200747927189531053861765452254572371830611904280659094697851303494532124892202004295545646620816093233496983336692804231502202110251401329428332609869882718855628881282599510952816702437234443022059444078342464574453906601399310221075594678011577969850155829661092052886358150429752234357356381387006316049425654270406170264545455780933676168006266981473331001162633091920958023603537397697122322938080040124167809142129733413067225649427879075149929412824849254627091904104221274493647782236266699924186703095360134921977489249786174091991029553892692366189844302144527595460014243454124889932967008108148929718200071608269451020229128454186934873627305718999139203783911832073699120098590734681139643182554538005889134655273253379658607109923643747819798590415540202968921694005623854452769912475051548143243166228877986588717005449197374457045388648096820645909037205505075532893762540440372556886033942788988997880461375429059773807398445072539101701409020642745455450111695192302571119089113720379176671449137963182222812844255963995756026857415753633011705161464724216337381188083573300940970809951333743889094168125829433688544746569738659360577824710734993091324668450633889669593503869400785300433028423065747210570746374403776627812631234297829748256511935861092532566616854756367422761568111081506560762634914711170188478506994143771993241206822870600739831793043221442742429685633415481661478812922498895814460236596027010742450809920750803506892436268007283768426485117366750592623549871046745534587784445787168842814781852434773458984881608223959295448177450894206839716789700438852087582699581107751109189164066363013263446696945811725027630207036839197959221616116226610885091296762539442492201103642009843967082423718266276243878414628993602296325904423050461847898323768379548781308653381150368933005105166388913704916037159626293374968584215078980868608793804259819568782423836289920150855098891848007782944576418358838473754054573642138698498349492897303360135477063579094373313575324629570190639573515627910184568959458565396742183904118631749691578051016760094468240612547681249909147969212295051558130976330860226298660660693933726213050716034765433690340992616647350166640591009915993359796259980610759757969077259505702360952164434373858101196488980182213643301853091646141254537621870747626085316039168521607561987602160894261681578664651837443050908019128951764465934776633994188840256813167511339498055730465350192143758275233052223037963833163963485846716240827755145169846430716152083066144166326296752963928865109408447047039859188767181999562264171969507218996248697664179638459607484841444554375873530436299802843747315340939477596745541503117740955267997753478890331854704145036359996462838640912683886418175233675577288059859386356340023706314380017559158283906068459492083020303444075919636492755323946096528744859772387299801580348227925475962998288233003239385730217099787126017078010668014939757398497131164278032420841790318095847579815273117925485499944924610215609497692825395754585900145142201587066561301188929820899503386830699421278748794625064366877720733886810492706110199506557478985815278359670316020825169058082960898784112037522377906326248370923976691961836468121474179296452767164532171696032871851604533468328981343188548270519552240560033729853323013348133906337502382454723119991495524375826170512743191357964393535517236942593513261119874389980995320003328117231095784123781917829919303804980666609650722637672514399153038312138214812490152952337335544589926816243595256548143470178832452885140355642378169016645717856289395196269877746433954674793048878595733875764732897904931634191107366832404345608929291014290040278905634801749668939041782099843195903735527017819683300874881074903924733807761217176152899230811411900964850191518763002454640877056310159084462250596084312378512708081190223912568477638882720401385128189112222245887772368285428796104727325029084745173444172624235498469630460087428622308174384918984735007128715116662510873080999150051400640395547582626949719401318648077279947484610928730727536535098173427109001847783785376466759890401006188869592671048630673277112928673645264883078050771692794261023616405829060379270397082508782545775477162455779807864861798009012436135057185458447767338463388152825778668369770044031046332004776384085072906396903191291009527977942810363573572659242237808391782816656844060308324947982926033341711427983747825165208924697353319588143867733380695923289687503445980847630447812837915861827304832677135716417913355232751983586374487368240851517070363702903970743921582176165696245673872317969377830173716989652691913737820923425844656363088220727352599256356460640906175100038236956262162183272103371570957076596630210636105756674015602753276944777534226350829340802057888745480438192316428872702291654406040473141283032834170566073783589525008245294100509091576226545446053341034533146357739179159628245709424289434804808737481833785143399457534310197481584443210385693129921727565866892106287643092290426530592024170860700287611981489272416927817158656801603778730945029088613252397405607795249557662903698224080301749770966556551354430265073771541313085029922717371431835315046320183542720892798159559182654595009278410815941911603568359867599045943623433585007926013851592246359487067197994781058236643082522036351029405131487655224323128828759976800542367351266689099216933961046432936872396427024823693547102206206084236148220366541701710643852571483062884331560718838934008203773271930842940299860899387253568559192543012863458270297873708245312375763801795592356539490521421009959590112947918252795325910181353758606595684249474477979376912472119491901614106612343441752062059198347815082314492770618886583329038274478292363328050508154999553108602107110182006307316996027004063508558644674784280593318667946384146109773423774832360076465273649530056444911704272121625661042156736263839138277113735486087620629892577295389941770246403248279240850195293195468111926260802483252344712108671909955444368825473059673998826763544775336355301553599814152218098588354784818284458857693885534387056814487579975442336681027742733303620226859416193557175346613687611429031839789384374679198284791842820141622998685740209566799455430702065995644265147090280476756157436088410655492032451086461891683600523006183154638010097299373718813618854716942475570449270324308515137096334365586414534740217460399152093041105774359413496830539745846582846014368556182109095675455479415696782528027731505529131621078613902835604491240509711469161246359510503748581239472826240366120693838068199012014753028240961238100486194021704008223135267115817158493057165394576688332870286828645234370950597164544647858726261906059240663697840513225490848427689141346734719627424382836476762136126986290119135315093634874344679071331091126549129678560679944725899290769453527059944850124607089707436244414706518176699085617457978026994872777852295316009726257925864725665804298005359092232638939079253216899989821076431886750366903937428157908263241006606624818332734643285909516024395543493756615565436782797151397630295329994042926236317734622055387929261444665679881661394555710134805431138787059572385600497008488978915088036122100799020466958295227278050479743003942627511891888057904143172687651539367497330832792146584942989248038847682172273980884515944605851686449116431795492207548758675762806695308068511453729473603597729947590635664858081568720042673361365832982117259844293113238968726450660842602075966551534241832078454048009567588728021309432921130482236350845459550608693174710814120156944018179566690075364290332574222654276102639309982214050337196892148205703323543163120734873801201483831257081999473449180113506483806900451317687739803123558276510563011218536924109532470806439176251083486085183635678742288504589822593334476780670604829043009860843418337638784429560274193384366160785388740174757557924110928571246254448939638298908293804387138694971542598250640278118017998147047600336132166078430717207601907196171777296388125501835276992880064093852381550922237857696928354321671513683658375375936123329118243270179658098514995395921449407860110965432037386560203414916683130387252130808243615937253802139409631037429241694986010788496292638965904152458517334799401316640328464427687373042400618310712683678925569665736864070350564095967150676638922984902459841706737997192414944686476052255739634437135501668081257507391138689235714375121799362509028463206908092788333951316292556174410055849385997750789505756399263102018438773844996081468960516153839274110813199509308260140729483837509174667176701945569168936497684495724157716465682511114177113641341917354972834880219664841255920582239943103700425345932682610769611439286726096865461226379852554655071551939994916335196959135534925943453568377411703843286710507548302202551719565639036561569119655072318996513275231919752907607458354596236171244138724691437070589553435960647750522035526002616125422929633616601888170551024567249355427580887406693699937899916195738852306858799158408712480619898075907455460729538500167015264882255784863258463662892303695836188807487446649357997048662323118061708195605055782404931127814856369964181025387012116138389683640831153149183183617271578848079486945826389001073459998950816854472107688264445801057350191136686543043225279479152289661833442922650885161442517467099547471420254928162252813167673142836486520022707775379210122351144479620896460935302399535929076071496761022191857641715321117243264541517600701703546300591340800771376437219126860466380393799845231256989377748457662012036302817257783578460870927604036544257330452414414492992788465098798269148847564809071125723108158531909538394043199193713085140658047206791743742981619258583206606796616867594826297251261607160068451778596501564659076491297438213112474010559158334511591387770412995625937601398348930230733020793999194170675361429596681326844844805088988770075577124834384505200229403592419706896187292305942761568075975613054200585132038164326010897332362514090993358609076563602825091146183531183486364083521705972964887761526599253859318991130582612209551843353088695221294160334963604862637552369091603315721886367799403632148579637932695040662522705564431388370004057132940196649860374586457495012146110775619383658027036554796116244951591115102309780407234599870261026545144651129116527346576061902300945588626202033067064928625157546107606414185191104079659287965306537064933493467282195207429478036981880634857538304823436073705053663824212768729669521366363098409615029528260541897547308243779468798820406834867122484277750801227620718145629846015755129612415571271630372144909695734864597001593784386632827095069379491614143187039950932575875995637510147167907487087116786543338980841081162131253124467653478538727603785175879873069114117358440343039489408440314788146142476460850326197299533132789209742086694624823935922300729137421899381247042978966872632427960825935229598367452094811609543765792335982156736320527966400497265042024568385929760485349065170214961955982583065398641381645465602401829790759335290643280522363729484984253942710720101213159120194276965661134508858469975357366170982548562443184633093555073868813783845783410344966370658490357708655382426183658987699527929327124619136905555406423053206394607575756838835260531930596323580446454041472046202347293214001604902081541711854309558595227343634244151017862025119583176460349969370503717077268756327714105420211754588245551514024954151192722399432961895338459544871427963217019843454795844914256475175716734080817648013448759242051503586629712229588559599258859118494915517939111741603878015808176686844530622270264662360619974428777665936653769207275660753783625572680984452256932566207499241652892872298794488998773520118486420596881917952739658705662863541431679743986375675591844207277063660241688366327871837932760997586581535687721381261917784395693799009568827702934907009452385390250566712188681617935918532631051448614031808617763582137867101648771813784777627582203482207171428748390825289873173547128988068208708019936006541217951366593476113363389444920333422425674486028272720256787220830737219164849173635060289164349060157060714520579426620680096605979498605959018769196179276113641860791640190619860065172452107056184829285954190992264084820044107705547226625099332574617653171634845275643777580387980662264378681974003814487884648354988304192845181917205788723661237617210886441848842650029184734559578550975810111523204131298621524750493550987853171308302039078754098452996368429155547264159257043609064911489601690385039583188517044739620177117957148103126344595631714185686350239141570256420797230350867806193551645322981975205877713951913157034124678980413919264032364409339390713301448062245834294170151927555903190005735902529402955135515710733142941339664048614653687938813824974821659504615679888553800367711057310280235703619644007761005839135531538288034188427735558377019012482128153136567329243379732858960744866848456668532687531342032164415576846419225551029513834692933351699913552927678230270678904716358702036507856443426578435814277121522332656505377588542047907400123589027306655606409792495718035013586470414618608664125774882078146745241923157098557555276210980900432934891956481389225108671462625575274167764066174827760734560394921416294155666732834973413996268840821566980112321455005998858313717251792398324094152051115210231324471351507514027795188035670396991354812760347795158431312554599178500212746993738745928273880810346350801461601442116484184587706128583588840170814376652818019509686949730956537881083499601555543516722151716046892087150841131994839029204719603302517161261958834856490215305658487972144475354221696012653553183921141017731139130327229911462682923517262814571161545304991173812760693435501711660865986309411781488487762445161348940395447415686894308076356215854174412581325343106626696869322843195944355656175296528502467449569514387113603185815744802855192876450464350643933173009934112566491867175265165791888709692948722494804923437118427158613580319156411664889928336620085022110353869202986725295973655012681190233364049939933546233632672517730219693949410696135314636605211671657027274276109436585253397713649561180167784249567291039913025534469971067413792201126606589446487365739586188284807220047512994915704540890863053014801827888501546525302893179877883285900441321477325211441601768059339832861848969958162887187780663813331985190433849372612195818611924272602983372243347060713070812868399713321789888477679748807230488303820843975708238744132471420385395088849322011007976191850289817907783289046516601679544480806149315827173815106491879008553882261799323899368243033038245807546940123397106694078049874771309705075470261436767263246186428059573463120523250176414949671497295809641504606990802849636614580005874378569075590419565512104662783209325568089641092480056691639581600081317083430568801178138104267629348836182625219758354288047899148130167014259490390527034948052950089669399061895250936553302143635445799232472872729590413493305551362616915050370258108765676701218956456403876272508771129432290915129335910819973100530010929429568134798743768010237633074999836179295415619235847469175227392342666141397430955354994118334189546952291038135916037108107897473636848186150948581219628528580755904000395036456575141930020109041629033258793979798349477005742120554387777658968246333521471348053776797416847108664468279738164155108896963586095145972342951356169661707848093257777293414079168028116799987677571033940357556255245856713644352036676203280413595927262449260327192507674454691933333487856144845888739982600320600980241591049699541331068436317363778485429558330717018734368489559051171421550486891270433062606422040937051506937802869846547279740658838471555015108327903735290038858362146990585669353957396264264504327883130697952830579382956370274793456317100713737487105109251618796652036181516253847115628326270763601326771009322164195609728540395955136401468004744030708773319426329620127733835538773604176745312360723023795590288353432151560471585709805447428213607220288439478235691825939950341690878271416428671390982950164762872041655570853840804218666743261889416392808905554721251285094791274737052721291347563524838805755804121749477956954417207247372219191155456710705909587597997887779565701613223368503703683135654434186415097646581493968028279006861196908631588934031939100770199710519978303620568379209196400346475227448237309273485780988859159192631621629483947055480986207727078878585867539539195700049425828569869228908448737152673131375136464065047762405873835249312099816297691436432958198835326938820782637253680253679047343531316188713190287940886975339549362258618222823102548259784460106272790518390940653557434255855255565464772468209645803617935525403636729003760213579405910084289967737185672651128943207915011443134262074111855994607779643866710941955232515868702419179144576584684658012704612177979223967994254448717250337125142356941186744399962930137955846059089374684718534165629224739997810202488805407934559633223774136567431024250138500763994851690620708959058622278703577784033070443015932901563718932853979853174614467987737798724807496012485216870140696036274741899686470031970385343107324969578776759251249371815594630021061971177159848938771796050845419247916243512552127319863043081109154017476993580955916935733054800740642244888017523133856506771050231762983331505136758847358206610766193432364854451818184376347225419592773784639495163096021779908953300675945337194377587245068763486567630449136242438309072140468822019716035586573736107468618458946616200605059381297090113454455888236767262236639197813015881402225589481718366095511582326409018775184602200845801091423095457836485337115391442385724562130291095245994027177228166379679762688245897855253343514898614643405768738991247644637646252478319895759935629442874547040756352728865868014112717298916073735419318043792394841010714168141238423369584364517323618220076208170788379883466211160609062127908349224540383628191308630544930353297490919647795107390162066572129004893567032810185340336115699034089053483973976278759817899288885025748743348264729057105864206301291640902508513736993442082719237328331035129291596397362271817410610387880936325077252710843796243647699439356453240077513535032826641210636294480230507008705907523676757227412645097329310916735976658802533663252392453045162893564897911707371190071656638338912385482010626272298072436880439458223913064116526554009368568711945964675081174822626309655213025754155875913862987156654519852745382350485100138243309342081786409397369017352057990940630102313903173874329273126395907421631415083235775829951115936871831554425236020702917608026620463893914269258460184860698086228270522893861671953002797590073019672720145038970439512496331181566589179290928644286700716041001190920498845829323038972139456558065144405666887253442343759979158176412785185958197964685373231169872034597354294173387015730028707709745297512754890110610866696054595574650111624367756243308989172714386672651298428287261344111861078724533993559204627584384847905062306515241839536868868393903858531408511615432756003059868619968736583815225382769494113011481271274615663546374074384908986936086936164782981584999128663818932125659664542409968981864049257585575495992069019036058964113601790555129994260446394890125032974962411942189463532701215718687595032495716634977807606425334891977569873534343500212917070077397171105590153295544839225001340766432203296940676286088891878231042705403907709416543941767535921699498576729415076270385745782735076581974629578116609672141092159090591508109090710091585995438870308914532455887618994707255920513854537959683538846663107794758166818558127774637002009067866517054487863333508213536776739443187401619797600629670015192266422043445311312228560715699862371649244629178105645856839852922245896235063517186684937705038021381001293163672117546070872526771530546891033072817680541652913553478903314916983264661271978065332368085008641683372275721825414544905608828261755176370200387279857588631431741756214525339572210311686003683568835872424769731468311978875472656113957205836606803909172455963466826030449227913748414114981008837328898453502575399951111910026270899050465168788537232428760855257917124190496691124276479698844969627410731675540979996448722612294468036190414280993242249230797465310320810342057000323227135945922344981450213654633876240949918947885506282340818191160698601032934592517013226372098952495935352238970609125771997759485618532579272788590776071705571400230175949777409162576640790932267927953996972560808662879586793788758783015640851433048649599789314273037062904700534795251557396194251710387473592828228122295668826466501534428128175404887728424618355020715407532593232788260950462110201719330137158944519792119357345375082537897125745907649680889838605049461661189484285854702470276212191897281692579976891089266627939439684934653402409091020552867283733991522253276671012864013240338729224735918068053455069495272395683944071072758818719516800799191379377126516351716400529220845152524745475269505129990833017100068340057845235566868917380083366167861833875303510213086844675703219288359329509059710119219993852588940204057822576441896345988655524286998251510383308396337590114579328875903441491469911570961354180698223592997588483035600039334035222517465660678042526798933632603314000589747280865819956747164665117831754806854931818772357518320174749771404600176029958618351201231912943561559599026212747031441214468508918622806732171570692281468497402369730702577838437330553536045400852434665462800843479860270772945172910829574527974585908631649664784758735210688034262782621539136143741006197387263647703778449633725509843614477444262582071714618558861265013402395865441500654758968653645459418426656207648602279518448038484078051272888633789473764460453658640135044828958840803936652703506342017184767673061381452209795580009988928081706782201035794504279854592879481222527029221481328436349752973886291005146910325216495331746307635418824689739498364231657097541568860175315908504937141699872127172064308391208868705877571318612569993715442971553444202643662989389267053272201763291463044028552015279476730562801994905382661871368448028016687864751591474994845311978438853126174837548925338337802003711872740075054208307644052607225168948894986041214814712740622108921736557128488199899362703757753232060366641428264752960281437831107530611603472427868121614195919815079356484261392645607945862507503913497625904426626808436393502509688427723164052000599764182387950735430442172233663571638764453516726518992015930469565040815675518566650055303862479158287360322889784422394896982764151087895486412844772861938028669393300396497932631053551581058985673551635573394135704989912112894387727168168130670711547415809967764684046912731425442050111489167725870774273716720837733439108772048404769055693827521707039579295828747941625390974726850300430699330177280750460761386283127536108522650391808267974540524773353232647701030211124474561959545006862540671049675496957964951785847194923500281360678876167845444205596647342051949271468419820434350236457472744488513610274781110459954565111926965242831985667451674535887212745766464295732823968715461275551010935748323820024571535874517539390060917420638511276215420209287842755373157868929826202095461838153205887225407986839187887323105201832348565793942051674128895382754412065495753613909354355889069943458530071214302191653847075897224563654796982150099705525569189272492370348097341567326870556618959383915155655254809354248915101544066406195272898033504702205000878785825827002540350836316087013122106271350216906041535478664609495472048025154006879710686882401638657923643104560877813050277776213037277233450542213455387041698530477102470366339650200429624211819306137252398674275128279472620906159316847854553419381159003411255102004372483741941066835592945107699557845296227892168901929975413615987839649744264909713965923068504695603250813729334540468408637297093113039665884836079857667735248931277603332217349933890420292935393717112670678502846407670230458957042641513152338050804258501466995263572731296789811419985310874919238671766444277122748723698601308566632594381680002005075143897964529066274082222038194277944587137752507107165117312860176030871922661354122428783282984863667625337234584239132446821074141143665176902759668511485555937220612187752095544956145483148853953159389058785046696131165143421649771426104567566719844675838914775721506026047942618728194292907136090953341624541223139225511094972325810542584491789487418861091628675450643383246961860083000555103686509167980281138603597094094666612715175603158791895630978611247908081044505077222561105734028515674481945637793035972518944192421417130483444166820252334458418862981520451383691408288145470765533179845224898381768406068712304630161668395642475792198715708831651929033798095293719364713253223257699860568385931247715363089950006717309216276985215136533829629241891538326544577618421758671808619217970292087008761232005104471604090304164265942832029516511089457053161307238385113413629891467491668055115165603246135698202560912633682842140379619132720194293307630715174179381798140379013977636237655710564226610933058606405294007410762664193081224357537428227411828634656372686790090634891598790100230281416580039181470606324565228735191748562131005999937714756273223343809043891672817916379003795639660857510289557035713063452987843571068480981212390129062335726334922675877706337650752287748215303854837758650726142761794474879683835916943012127305430138956918316502179432855472722574521876967814705508121704577079868909133741715714657425987467014653019251746339472337207893164908440150584698608414121420473185250643119877679506908154317327663220548038871835761970421012269319294993097837362961322028921554916685629770399687948931798979789832059074932457070035035914475936752629181733035548328706700210729376832510004290811864714723886704123480414280259843809367600720092368979431320561311875640386587809389559970565971295596412140032246698039261039253603480818955523701325126857652175274630823038608584601294036456187347226935645503996767400238125044318968457284274686254181521629273480430393303051380333832536559798892256798115866076791936269172723249959706459382200537950961874059504147664289357694167652961475000274890673189571100450157425835142596974282144113449854215137380155991813676392568618755853129095031814624316929886218400052153999746873884727738050565259508056758954117055155224504676501431425902489452000694813121879752241814458473484501494120633307528558660893027921072183168306520501785532099100497169641480786566332838922367497519094526692193377450741012965170433285190784299010134674201460743801047014627616723581188862412540689462232860593845072083668919869691977394233328905075876036205831604005958817734834187373370940831100541319968184906342847550904547014594721778729064584781748187911974577046160099992383218808537913852624170677382713375869416354643098122724117181293915652205212059630027521752035565359260777989061286375328321114480320309036908499327693557323413986349225476296722703840049276080174056083329832169274265786188329640371017838618509316492403677276637051416078068552963154657877168350873155862519325588405665019622304198212480468380150928074016394502208754348982604871045149089646295015069978183639812780470696283242492779499688317063292917533481393199951282949829412405469280222103797183220271621311729268598551757255895078733254874486935185074218023129013156192734580589488536709665968076010723279232030321975158335995675107333815187749898481347068788459925600304396179563319814444855229537051091016061797822081198061845311346991205820035207177898242409513408574832379355744167421561106082355200794917182718485634877871534734048891623245514183671645688314544414383253855566553354839109870449702267073361496987457311287993557558036273580119671883227921384549410347599329672492931500091916979197268617659105112781750323099595749600422903640992591401102275179304696311201428763996777077682892112340855887719521177155507096903467950030342995775002735523991818474585795636570486448739857271547008958090103101539158170484453744573626757284512730049998502904710298009424419294854023240505243337477090833414646500157081279407166474764727117656893351536913166584662334806132644646428575744463290831828264603020773451164339628093298188900621829283962042033709190344282409053925657304774949461440816732482772475554899015017877192553473388247543847942777428711343323041930045595643444004177694684706165115198259732165014985581839544968427312356840742816603972397871895362869280028849917824591530254759959080280413512125421698300839230530237529003291111498745627570838471607075962650131783001045237353332489372484899423393966806470912396833825270744476440579727428436949739556920649086105060858224052040968373212893122445598270250632001676640531188612321983515369946912614801459444419893412777541964793044812477933506456337046175441168786875304893606341770468371661623129708302891959253201031205048697342997034720891321668960089671547771569707021925783848152789981368559373441264444791743225935840670867432675626731544801277473121723088960589441358999714314303553210622619079440172768880244835201431298678620377267771928245733669602639655200935129948807074460714082023810035537191896408803731785017113295412728831840194663507187132761496823083311809380830432916513328733184024984752470777181123103055901034774842475936347602829973018108284826344314389181093539767260531631653939741587920920491505621626201188995466198478671354574303181132825234948745821192512987372182408593858397298529975661390791772170896013838510937150112602550157213613545803575110734104976203793989359232509470890967193862977868625352138346784490322120554946958272886426610242726971958732151123925587549836667090943805956270982652897704857281123536114177326619676290339402397927599040281277087601402177540482256457787994375370217408359569040701680258132808050034756543966980309105677088313696080433419421892838726707518208373409538123878195266365890892845773954385672264731487819909555906367747936999317690177377147585959296465969248477562739833307812980897647493449252756017513972596268448421348390546243858605289160701947554341570272056841811702871398812600837849197954975951358047766366563932329987517473200150976711604597114649168846735317319953067287373549642985161256724868973722389223828954488018454553617648627150127547383885722287864535156855288910203397275724953556711060782182828094610198743261553868633039563716585671274670366344127605250752289595812687645275767132832040152990548724311393325221218559106670944843046131519767724624632333093358698077708524501007254542924785944102777030420585903510427030882435206546357534267672357657078738270176615794020348576237352824872141405842762336403201081757498332474232732554790964833595999731104722583235566975527188649307237000611753320405936734512913583737229608667041372110685422072553130439120806304182697345467713823124643130470313727049962620520126266866863835265826540935010950199968375918551369105304186999479059130487384416473988687911331923725698956017275284090561374730913062100670000900193464179506745291912898841345325957344266711174362260855892419691657163586261123900616706302303028669305145849726363954985785941259218082853312066900990637374626832263832813313937815122204729524547979090379680379635597617323051812567660892699430560077628968820484776459411288084704196046386611010141487561737565960804407609529055172579668532463195669476059084465282318958572267590349780415054048870949316496885961420704177303522730737819579931106541240108672334980455302559008682569539544310249543490772238536008560172763647462641889356921145246718609679789580074264626148625962238728123500506687600473757048503625778972938615303489268508282788385284067380220518847961195270201754792783464336716624267238977812296635785397808751151867940554248127952158980308744337632098972320799667784595706195827386666085032723038555954447065351142667183333503566477643271894273173811892878304821719756578793625107641905052750722770481449369728826483253430594806550163214708742776098519786600661249759917639242008163428521688992359663200643535279588700978726155160366263824727911763558314071254495542836654705620288681587556864886367729625349198397042320665048620144654713455169201682647483583872463901136572679102715569667157724322477032343001514282839049949376997587946558871223399769635243166571055047822926563417294653079301460351739836080749174870778963836115882096878677206810742381217032693042332059886100176324631630594811266161852404969875769943587577467623858799718487209264049837815081535829083787039596346688315646682550786037222530459316570660630634903303982314777503693502853431163277997170432956445178564045093244653443677593012726712066133080488392380823226697341215730343413465929972578181777250330375788126435970487858503236738386574700456995367174414274079368788370147007236912910615220748314081466941583423479607303422608576694506617040583935466464819639428750340598743811919861946592110082292578858721583317482278966432140717525297505487530591327050090302069644999378398162259735969897050939933839527755498137570124153622303468697379799295470592592168130158550700039776442487325477709725830050314125877355507589260519013002084947751516169649525620682222996209125911678125112825901389800874419199147681804264677554475555572479761784564319330620539049324565306934947553793812125127408224026435230157791314017672571400178091903598508149197069940377124908548457181048303686285479235055639997342034302505302698900886554199271099046550840795642362946460560896860871774257749239864484415385897902042937077351438180116447248316125020915311509916224976607758902839710179329726691799069649496025206838060668125409049363126074842854518403325730306080742020356315380416590568708236107494864349307411189412371566819328364040195498508458631650643218500960120349146189949415673302981257265869524675117446255498678419400222781144511585712080446122317555443614252125044936468102162511105463070806556431194253677640048034011904296657404466131964948147354148159815916090184920915495751234237917988009191173967216300645190971486617227459002438787678087638121349960500990283493785255826709153787458667384759801443644331191692005995014261477541240334244563544187035470487333748055713447365202448288643194258992031286829928935291218848245192663594502850121695619168838432301030431823634554617166023155406426628708389841894682586778843415010688045196049998588861724459431167686482195820597339187749421693983233278347042522290755809615297859247636810360006909134062129514712436199751996002920687017824943437119985771641448408399497943917319989503710983821101671293804671214826441183926724411452118832993988552221816304841483851878634606789051707095051566100399146005166222601272910306955760585500823707810429574227753997777550091397741647771298473786327191113653444644391115032768148498707258792515649930690522786667050295481513976979914798224933746416785948462405509885474868038431336376185490241092374540779936180509550658185783595879535476111524686198843515725769325880147468383275936548685571327778591128534211119863059169085632408604685978345339066420450508825935917507918791048692964240562454600150732748463953615362528211685995220597377277095510145926327594277471704050552961382593781637073608038368642485737988434805521790901195721476140580412124513438732830721844120075390333205612600959937137894649273624607618597234760642040382867800738627816566888657846078649755457795972235649583888255890098598744055496948255419266039039899737115918849875221619014522248927601620139899041834492126812212556501105770414296519171365430777277237351939881861665340532195272007806175583348748023517149690263545707102384658617509247760946357854591196712714040406272568582138316510190966792776950439650405512733404895169408597802881670132911353281666073099001572030617606392184081916749093985465374129808288489673230858027106860436352226511648083017193987419030221288240395044134450542928139647468081151240180323692974898454785524050895564844013154558871700123954028569052941844034322515813123779121816049822088169481688466323175052574289203678357136370323741080262925930895004866663941691365345336379313678857605084868329958383271187417993600415384297685242494822002451531798736213863447758899836479007467364915176778307968168419566063599480821587446766592436813571704561444227870650646436353274893799133762426917266567468919086405586448403908516912303846281718947196152574112586830923282692092178991361555904976171748729259128284776758779949207207943872983123813714510462702840655703490065855089006810504025815328074134073119549727011803420025612545502569679058218093201220133181939406681794034677480472328977143481943949350738425399514203552478596439117645461424384507431097205747085140430087648087393789119616007124805394520704329005774922649289277843025547924676376652246410354178300925523522721166502894662032596911368943505673835815601769225982137405269222375301991582306392959615356830757970339855590759582238333014593587176792063136025516540483887696841825866661607597774952789153818838998271496081049158703970020306155142189507971732950593505846290809741201168319018537726201667394017764688396709836461495049933448180357697092648236835215314842617955031497021875006228159108028400687034629189433512968302729498409389772420651216262790924647434348380993529537020064879262699882164007284510204851164034937403365563596327787189116905555555239584186258113781246032237560831474541237746265016794896694838532987319551559023496374380257366930412049955570116800979925576477621073125595897756789603560143755295628364393114602825968573643226442094067965529652589911370203007845055743911229618378889704999203745170671096528524996015112029363489652805992158705538782860344034704311352860850919700144733427260866538616099693700858916929103114969574649419263776035018609304656866963568389818565022405514116473022142752167300909483786209138684793077506852658372541483708613492689301593223554879688540148227565893695561140969479447711488412039381536590332319095614082067920728789770378634975077777098843902952301898192094733799237664807154056013934056939116567966417717374533983225569139784152526676295159557474778975332994334926541988673738972074212995873209654260799768912726296501537458425613761183872041341895534079471177975195140424133209281129593492453449904341977011666769179151721842669989221226715277267187249788708865055843200396206334665873175393269247808809349843325871141892714433822972363316560951675862216937221322597198999884241403926917941494025046691731587804036816740469473982261085645273052367338805078146576503620262467517687553514904578191934571448925222657218093117602558941240561980482234894882442047621372705597714694374830093962783651036845969519277933631443738200520323358442024943020513306490216789197021582614872260686883417882780029843199598995653569868670863212668727399029976106360280366901801252786436063163164288216577939892097082247381426957859821302187190886373591541678096828285856850455507034750276832567963731471616062398136570610072132764049697850889008599968626667032638230059868258232514222190141069010754890169167231768642257731168889843339659030654085665411857693125804045028086243892267617015846850813535690089152923271270784269311692525457436572569716204004752322603206590707257503499353572860612573161537514794213451084734395218497373290691923867963481501403158868626358858091517371375577496023307962031843517905901072997416471401454488504046017505639435922351529933594430442721246577981015349836107071315281718006773126059914384709808570361709132290422609606391655068336936803820368071767315345702414434970353700005374959453064259935780458755506724399289025944742321519662485409960867808391699397165112657796042857532090390125625093390530208617427859114751511336567192770399949259508365656942111741435782746497083193255278134545864167643658776064769617303660802335553460916259670096542783209871971708214880490984123063418347195923651028714872326823453718988941053678417756617717789690358922042235461898774241734871905331927721064059998812715597013093194163912138919270970423280958748147042673287652976734253297583426376951495044724649330485344105561456860907616852441853328457927108124180245305833206238479617159787614038095635249967899740979095443676575150740802606059395699819196328048570246804457033731697740592225470907214251920989542926286467886471287171630015969395514364647460631517581825046087799164736775079063299604152419315581113978463763208896517887073946322044791759278642827664962125640876408353285374715523991582696257167305314883616797030929929498495014525022344556055128566822650708817257786857099015963544709357212013742837734027502450715157501823257685185492649536037062538039205370382067564147778668331381962857635582619776537325932830100009693953755325633863436710662390521872346537128861428763373582040713427870167702669227577747324891043821655634368784037692738976732274568271218651474120752431826145290749789357652839506501100785712243487178533953770099778805535913147809111428208052876233201477089857875719976379700248870248704474035658295238642382200496935418921237167689819874021023015471593155503781251249610697752608059932779630766108151778994365690564411671284682739559594996704359615398938567737446762524995714447526559914621013433835910301066083483024822481135461504003549429695643796427934750394325058496860309104498222271822362010831675786370928103560138744092828544533792191522374684759892476874681531208022410419636353121848282004965654886386902537461778443323070750540684274787324061125479199508872905611967306976600729424481296914793834150080532048336550601987694652954229212933109976102964354302931198022872739143247289497025048662185871868327484939494901259927219639992421542801610179200386046734289135543641094353242884779201055731427226259512269185924329246643141606647794410166534183134432442388960874438302731805727232904919081979386050453020964500332556949457120446102544492402441273741849585555815754236634700614673378928626398072459949507769992865163359175345108024270916033873178373073492390972916213556708936316200876242591408727244185993448612951151560335863717337399103497340528575837615430057571311775447617134175798728991344680316097781550618341360654279132009309007686991573797658100609571556377190391696767306472026634603875966065112263830142247726819964902842631001369533864076869894622209914965525138147247058971611352470870736706730890733485143679320034556971674870596007530159416813539995064397810178460273770152666418440723937083583225845056231587007040406352158373774633977071092257625971846809024484469336515647272347803104695418720196516424047200955976241627105115559875159637342965553076455159861584518232383795821649496626753701244656241118528612622369414153863352738124278274934756478266225786976032089921522969352298180012649507877617426845733890692571120219821851139023764840635516260652050037382752112056393292102386867284228889429953897971406352892941021814655504980887082109919810502016381660421212329703773253606280428839956087549207396338861873789964999129546069967175583141945533411676476499464902262910780603121725730626315705786190801646982529881937755495421471760488480724550527562567601993438607382998025453734047194766203555869087218914013772431573906675511092924472820708700245090997673359736223152229071218421177084692214332432458305466645219988589344716809081482721708810225476030348716719370901649532337697535167130344143352553301086185611486528546632784158969861944167168449640107549152292203359092157183506151084973052662227173550398114129503540181529064152024710319811178401013980566392952782913012080157776491359908641450589907236669586372156894235455309997023640384679196933210315810571433485692252325768516531289186573509581016906140503502841604357937184793821088737256558928208701478324029315789157916333085999674094968155670274329571019284246260945874385848043862634399896855739356379090481958254753487649859939272056255574855561946567773425615756697155821849504411630488729728376935980187753313866203278028361599517177199223769655120531365163432563329853220155138839101964689350265867082757175695734066774473332692605070666204878581529197215919666381963454749379378667996617752810008638445763876301885884055119627801314295515165195675124944130794214799428713294850170960894431918103971563968155105554973499862434926797330678746191925795191485580690317065189886804812618038904479391401478250733815505377086881524470877481379898810963430273122000330607347065142458099035258483413893454193990496493989656545207138566607659936186683761085776539340416971211046862945685408975912947874158599732492076575540325280802527973817461816103886833178124009935318840436982559861069097335313314410871829604241957630663526713786551660139347859517567497190514400002319273408027994404440745490510197410619781791589937631947674699186434107938735206532156073613405211787364837578459097966715673666556986419827236142746146358255056350606580559329664821110331974474833913320206961403079957761254122624885048051415730489057659337639503690478313511039149651030594584627626319499913967211842905483259796581894018042137662385891337850281842172358139177578539192717170750182906586623833722084674195025645464881768946394688435292784984797493693407650469429291577871665688267805599930716150785113008187755666705825381069882382117175484172749637275654678393515395630365208880777815091328761807779834694743396238998709956306144376417861531161387208334868849486666862141388704471709838151958915843946494692170460601470346093574575128364825320510233184216438223772929253370976644452305124695445092648219705689372313129253528033303164371481019020229528989231584802593318571019805263765448151409455784409720651475928147683852778033316189080709389554881076679930875218590069717262797513560630933007873105739070589175961871859582064245246498393477480164542023744983780548797674065479752495262209377258662676017358231738123587008858533575450013151270783910381481625547884678343518316371461052071969947262119111283276364159447276340426103644946149930144927683630694800787892105940006262697949580720259495875334391702406206093452717550273826878398485679097175962938979856684067575997919858388962810580180426270175489231405071061207510620530767017497730955286439390392501050853302236536017928822627327285609153702636534442388474178949394489008174711824572107895773360931220523861748372538865359375068091789267561189535200139988097130374660878258195002531514436690104652236048667577601118289059827208776186059887153215748473396543861933021710555046541263569492209527710174453080371866881830229939520275947607504361870002211560219039313548080657984031267690975587483950986018653337304727905382907790408630320366329430844136099670629594516995020112262083078380854885904208888101716816151218497799932846808378736828030336233895090401187966346305761165303221940720952896429933291411994240621003374896282281479770666832478119496085230717908761942479158486335312011078909058564954154678429116162049795981081181319276263061568582945251297321140663385093936140938415905048433862943853240889404075658209120854670576746186291534591728817077068087730943022278952885063274126919962166587913123261470249210608663618971780500798970648123792713452559615123918130835114237281995918896499077311209101021165197790258849778684565965548925203503267768563106320448811666177301702826649188914066725366372398911265591302880075148613119035430098872453902328244060661350118767013576607219578749000115412653643232236740460295761193562247073169758251874969097324509426252876922511373512952808025723035397732848691267279065120421547746168788408005438098644155457602611133662731391753396397023001626000674194894370036376571494880135701407362061803184147909500293006529420066334023305125007821574044106241883925674635139086567657108058264216527579060228659810211081568400294694555333249461279266087287109664486900199399557957536793038061928256275313127680456578094972187392956098624248683367823429891090230540586043200397474546996747850051866679966220400997724078595487582633528689260560596635120493273934983977386517044631270051762526487436119619005619395398164759741194021998363744500904899284164111667393210152732473908624950234133327584319356527604326837972038820676654930731484813897782958519986963407739609518030711542186938096691573767277166168012733671352021588729170666132277534412685428592588100129291274274687534641273212393079312130919602806325736006442927147977504305353698180321115572159765419900067162928784297579262819827321413401451708486796713556791658231746810474130388716156715878750408793233584297358505397671180774225868847153962685904285499845523589006833152285009457448858321324896883475088127445008191821811089178378179172364709377656526077631171319325398321412093663743161005809744425691533259970984305493498817798303441757147379113948765789561349154834240541736187419281986905769211458748523725144363577639151182862821477414660452844058212117060006508978476813899496596966073193663246053939750363242638329813705594883373275815094352729642789214600343509325908106617703098416968006391194142061947403082895205568711160521558859144562397126312754811841016570923217379515468771693176188169670188940598876007728352136458906397157989337857104887646328945119082724150093150754832867854971146882536206091021275730582801418324040481236233665006549307889596357082389476827031266286319309032140518680791422958090288324931646679452702656372190560804155845032163111321366742814756999984949223681159041984159957210939505390710730092812190293158794050497102854113613734357189859702896270383110585348835419970046557240850470089464800877541289414594128767790659127022434517113411005074555146967823008894673271562760367588474416899984890380206918735770712126268243321845581909039229231361927396660721843124596390875812701772486798614817986728686808154045691598686908970984408327336774849310015454066037230807154417945383368195444211327542633214073428669488878037959999993398051520497550931199515409209736402606526337298236552492120254685858909280086034642872891287993638294072914485829954255214682290862677212091668487193124828960406049238899112993278241962999048974380296512929475648618486903851298086058857004636392007282396256882501834233938814860884001315102317515242499869379388091812315448803115435254525820278411607106661694837685810098355972127917108616570434615534151102598851363150030934574037590712195172019361413118603013954344628737799390026837973233077337286683147020687349416343033904035361705886419225195265405654086136608354050222859153822862192326614777390701335762402488521478070323767479513261229249130921748235980645936454867001544409472514338308319949828500660828790700281608753026161566363648166709931062364351137180165938076627047412857819790562147862811197491356279491965275450423219754557469716488352525605188339575606129562356698186569019980569496822638726823202871895321496240828294916444023917246381705155674816870537528625682160671346496891208172382205838797362598274552421738348660852866060658874446217569055542574987011214139287178288535445414792765442763443898644735529431401768792097274731160753121855253323925585991476679262581912439527988597933667705973856733503593116414431181634512277589843237995973523053838221876962855649369668648499987127022845328551197360160594742358001810113692243044509570399377172996266006317619315304627979667855181151830368597854099410567204951355466342764153008947247411776865659012937986858168097481632571190355484398406796885848662401751480591369371925536798221586482014758692014145299948906984720311476343994814735416260345388208429832515018002734111468918342533369356761530157732116837838828766025015219813720137725845170560201402748974067333049365720024341180384036292593069019400035804663731456519490355128462810911739399362931009526457557978288364819667292913000699441628359390975980480091123648482151346169380759105205126451430750704038246839224191328015548756563314031141486764525045614616088525192609391113074751087006461415943592859491862403078612871748678295392162624628162823379526624384261204856163102298100098310401882752673669305875035600787033868695197596066015785262397180048637123732322449705044410410943264531661419642101146804066092412719495604272741587812637774068505907526438132077325359946912053070605607884767124209769438279259880097840314919421466893818776903354273179150069730907302592820755827913192160808488903148472567733028649265330063680122262967311650888416666250889825222204432168773607646686906534729551837172197551503868279760843672639346004867985500945437350777817835420704790134245346959393697377380271640807128123360164258524892011692394668297932413950394175983304671268423343467442150833435661646401236750557658975726136438453643455027726787207825864521887509238550809745885363446049581512580461473478939895620513144247236747522611225495128414367029536209667914061267831849600902536960925924005503880231829450227631131754716257395515367038676122454331490291812006091463792557652334534466474003568577444780618615035312911571966671526446057613001189014893048739406265112128726952555000092232635357317341909844273371491403801847263768342823888388539123507091435761957917093045716452680070312679430760107468598318114406122746255763915212856012812284597196372577160715069929926473169439654667968863332723160898897548513172525355183895822492438645706223602968559995490812724060511275099586488014213647290193271812215475652984013436883616978962283356159233995895627881111801940614889671354888269734517999252152630625047889453907673348331042414191712569269824174933481695393087878824761273274724354460479315070074477245180931099385228477312316687664319161368645133258243722369450139379337973818092711905555001893210502693594045708002042784574802220603564033692101732821810187508063611127636915296721364650185597731512449956642756331806087460539418777336590665201258661045116755275858482881122571141653427772251347300260932306760540715942978400922297669301710427501375332749994618548846330779891976782105258360021145069834675972791144258922543629707521022974662213202724172900393202976898592805892195027996211779172172407677899579362876640205740099653669845692601291444971422516940336083878435843093319341873025931247111068997326539569992999439812634337976848498312241092732747693133966356059754968024727281013460729851216145076651340918449462457566106892823480938455120907744196863046088117562897796523559419691216620157221176755349806756325810230461979299414160407482989248984724558370709163399635309664601502197155821107236153243749501614939155185272777428435506600161861613172928406005934033272712351703045187199087028830176543752918454089335646345423481364383760068908325324834442892956108081162965546395596431941215275890638780225230462115112135792293803756091690661275080736964920443253464261862385806492572009170429792198067255312273333459954485928669166506757660041249584735975822713580128500821896180427507304124894119164288550021945192766305269345597007640354961273927464846143782813068985242909986464094088327320327829364978524265550409026121100663901436914341829116737488545147759296372426957614542694963904070369924512430005663971594023524850323483563744996845974646459522763307202906446449076790303907925142754107992895982989960989663023719149170050829723786209086035816817907972419013406500305031455509529403685295549178245703400916887969677523939736719446428330778144455305580860812395196363261638526346252872823089246323559766021888003307709876320888624212068617930750018535506454842034873442075627914473986483912226874529192171416326892570029019970793088933850086432452022695461713273813382859760913728421914873863995141193938137684151189745806394206173662951626185547598904676988615243625213924766710625181422017005378727751832728417104275206659290249119699349585375728017049884445522720461914941659488451897117993908530768064006051249468402725462007497635784092237125008625595607466516911800264251728204442456121033835635380259456729781830226993732939706160518067631309245734354608963698335039882182531709787335020843530668162931192669894747406609357866314600886715294962994585809556665498495903652864127386558346256211104322652301465676229713403025968348252332795732690015264279984623199145830204010313630618371914034102313939838275797567863283013263123115870527270513886073694580891587149262989656360291266704605781363222494241458018879621073494184903685587174848833162085284842383247006697677940422466968862338084285236366550962071550080678706770626680916012386367758471453672134925520068694314763636072761195042840704901053394370007178786107518308355785976108116221507006663868170506534682429994210815417731193002515251839425203552025955281351520961811355410843924521780169960911109782592394277233398124398571713118292381112099547848601268295074731633778353177096068873833398520312396087987295109107855128106359319816011945092820056689429612497598422654393259039742030748124109597185001672903839592317451031272763802709021156865001776438074414698344142115462939093548256033843165265431301242006379369199328577763390623065569227466889564306463746874175495042049126609038552598382117749032244993081343676201400704565013338836668840075749027721495138115327580806177945179502035350587816230710912780304383179655453575796308910776289852966856368298238280506637202606736222309385799182019669875215040101346677316398242057019146787905825834514770301925688766567894421577231761778157825094887906032568461191203001970755183291069832220453751673220428946945979347753037902532544635885717927244052470235004691307509626154471645689065446186202011841130937147749736572570543194854477699076604546913117867902884401465076489150414795565474947659763497520170146683212287116889965782074212261086010720934587540514750566874819381142226125808843278852613677680638233374990440129063275015102885848094501990327372851785313267909506677022286417408350602427092632542729446803526988715563947740309242078083679368331965847986996991413007762777140809398600090203261413215256990715894928779761098741083612368188775632739207521993057585866848878042618382500334277997279663400898990649909158146642314406664393809067936078185044501569573045152520315679041793125989515544702069355535810008944826980342063662697367113371496821529308618865602911869965695336504383972861149284273561193750160187258732203299633206824008853708132542628860498930146453950075704787156411196604749604263052897945185395390621886470720000724250829193166543327224970867597985057234862867582525977955149111680423726785851129206414558343716266550947129488098801995197079030330466348524186486296625159848426815000706397595606111509096951698067579254358108485558975473919096262187146071987292839133129082271804305796961353194146374177067975480227310148327734500995610651930184064954539850706938336682589697519904643299970734405969288708816264875618580557122040511772948314941348473649453290872627973660856949597011265678375885392886139250616198328976591583767731390451520659207358773566843436080045985708283444109277474092123859349844441054046424354129016590117162397454508456989872573186015731537445277252754320982391210182497316452354962034428560890557091546290458224851326287866762608728237715241966811146756041172067655665914670083212951787127591592780287201972280668868451583864325454619862337680670858270697586680796848188559162566349253132338049976978781834268832420748806526073626409124848583165059340923381612554357431147607272632577988231753465401560068245709197704564889740521828423783331922795329592083872890383493260883415095644582864693289125789685583427005261832465041510006640429109947736091345388509951169853905196859719480377958809160947490137576377183617012664882179860539754161468334867072271499329788502833028644000244423048156589057217856143403570064784256130385650546779641115408331972657243519711701214552509600988771487387277518910362623501924984459227488570037773816746799104151226268146727244892075277533375253995073330816079358642851255872754686291041752957011451937887346143476100563074451167735712887121240896888815532232213166242220183419735027090929550466774912126247023492462612846330785257262757633997119059974928111467137547022081273107395954596835988740206048441366710540452684762472302422093848022621192117798793203138650057006252775776079375146644550255695530348870787805728097933792130562633856281149578154707100168177885839628852722526123471466903193414090477055015892703322955327673355935804562977584512368534122110976760987426920951879164300101042151092466236609335922165519453301318680928407638047265813597387412344847215276204203957231055232152420096126051484660911819348311974141290709115917261783318173712046846977106247349468932835737985624085916527746884138828533472237220282409341355555764007745703923763190655183235861376882090810626890030856008259397810295905584254159517741464526219599145935095238425744718010872775955031527557367161955971809752037779187134313115953748982539202204066671846522914255557560406464439755391496461693584505061492491389439637499233100187453078663642671049639598519633892037147256043230027651447550412441325845335702202757445068144170681836736625856306996528120182484248049373766102987506033528857967575398399774950154676928362924519934720660528312739909256911209692831999937825656821132343053705452175591505742431627317746931193719572698381836701236890475793054729912340239969858249984047079169977579682971968164986898667772732345583749348551534933792192993270723057105461388682826428052856275578811750352488038220099558859710282842021101597929689097415967150013640845691907237763892606138426262635772886729702113904563681307857022562265443341387315608911654480783295593256179895910838075417438838600276454602960811598747800754765256740212376450532500488121120436704535825342929145546007902403096585308622004542125922228819523835336554556550930119973799231500753973141188039254163251554075121139306020161071036538445784712479286981756490098231142625309329150008573058888536518753950183242202323457255673736799771015445443864937385503228900716350361976698724541640844301774048899781064743286059734776242488828376178386788360858557201872012232964107940763116368952442298511902736336104896709066593745381971744562332283976225697727652644109330046793659427903614005800292086588996002121980964132155569342286631640516093745085464345637573564688297568014786409919753791770043915421993770838357278307036700958039546813218202277634687373483759973846260388709927942749646634032367868103813372098460207956961249011737394444237774412556475160533672164897457647528837480442690307592075217059952800073944977094388126781912362564141154072780034933057836498768633900223305525420794557475681697334813130400622064421348848432878971100699648438129474342430377859999551373394671122698244377759525766881454152207803125494911075802638807044218303182509197687353211367700170128430958099254645589716808092300423181870343753615600482442560276344204914413817870475961535160851112758368176162639604410164440686799492227039054764564492770572761946470755672100087304829037958684999790328260277341546557852712549517526334664431000691259425759756131734247921580118383023821172318905739198629087695781572313338301495734343003410831211413926130205197143523194132254436997181342374175988636217468380122875535108599441631739175867464478550641104126845834619356615294621675815845928385643691766493901915317253751391663553609582763111224722470189128835008459771695924665788515256560678846757307587477390893597063572948435499150143497860497129663543947488714445746058588298888399437075004107596167726676082330902458117092072036512332433444989346351923069125029836376061497961540866342455026930391606594917659428749812350204214950500587189925735179832440636393676448291104963475669464555073124566613909568689433003937877596762598320506924112639856189131186135056514065850988849423555056639898247916795604076838733938860653518836830075081862878154184876523353650016904673062872978349312787670561421513576467558244475924234001189385084950792784229002087451770049939777723202367707903594618502621640966930746792569139070689453703082893524782616948979556708276395166293999328647091269863532403207687625915003617769879114848520780535460053430328463379012749526559117796846301656288953685979571026879444969062709549102882735415071101200110775251066934152090804032598293139699356484170083986486404537538021855665775962670331076868577847454773480862324391582848815898167900290147658132485782280984719088969547729687546013447495209421803226911087613735751618851133720154441339676195316964270353947297967059947127765989586311805045391308773537676174464163376388916478220651661233080735337108041867894331665777160715159235976431995110258566076105705370468316408939731922199041811097555863860483058930859360075586811066263932364888918267415691166901953756639151344771235375521491843602913814721816882241624381988236740833087395486199134025907642571657180074338926178632510436141923455403158405437913382223467790788325803423638774573972651407277021232981300461985083669555171472445252668693891939403305663632068006829401056199065017715602211628800266503191571953317763855459100517720954984324947902285954255718082080888450704762686585610125597611368029577412027543485526219449257216530699318949338464402463338474205951691760854701134306564996953124041377049143141067297541854455321668585929825223949762177968259345034319705597812189293692174331556993730218250178562170729903442560916381911294233217649423672748237193406992599221915490023563867109179221139790193160638854513436101078280955326248271044239381177229358389410840696600926043076556760734337733939008080050298500766726532343572194673167423958401114494163742828926203959104543388178420807375448905840022107072059720100232591601858027686487891193824315901906917357721390907434168837753670033110777769563201085856192922109664380089117603895027495893042580339291788959640283044349940690489076031899953265249709496560735936311746156197816552115200615769042054391790536920732905893911266734583794038063490868176892685443163897281798032775307151286340723181507253123536797629884690060390322718573674099091907138794537354377154205279330937329252713429018955956703048545385970151582036593008918361376646719673031727604932077353941885926719221585932409675137385981669450830439085905776827570016637870784570720825592526712480874643000913248236566130043596044119330614811537422155583109931676945010423384747372892467386750660652051753173313268556974026260025938830288549226066158337831564652820410211323935714265494552044987109952241427435930737168759223443541661292346419772060640794672767214370804374340931795582573797105877375069121857504339660708732893235225986874966643410826582866324351520998774079333355187236887233302488527734143118153602711142785599926859652864379201162128468749628022747426109075676903426657092179368010994663366434878946271008231805140229618335149978654613056610215884628218929945709216143849657822300687345386980393789259906536364113450442225635371466393470170858959855701720299224673958850566960452850524829948696311032930521085672512407164374178025124079448939064306100262308334822365888264315524182933263459188740090003705230262410076947863003490963669459075109359568351170427853928663334539711222264900454216319091529210169105037430013075426608844608766786216025332219185721746734492280778197839219969534775444241006866841430921240976891954387926127481126533457045588864475058270442846318118054713273903085651454552448713395439350338537287687055612644775540075614668658341004970587336793763484254554621145293901388242824708961053721719235311575843472613017104404662728271566825924669298926866213679686305616948798557907357482575428780674746670610123984966473616998156754725115810455377510630088371108044844423515559409107859955779335006406101764532169307339763528518225033243755460132120159651824929002739997715460959300388137364839511297140093695462103908255636284007022984847610654372195701419890699582670738479425241868474010557496612912732362121551863172781205967958315776190901934031880805427700266058572588659283250395662311282475624684555601898067907667085799584665890149437830469500328251384164307147331364952350807567729328599305808190378629059045317630674524188698464679388837605862462941637633569322913767945906930619265428028198024989995914520271141438601778188030330680515396738824207566041977578260096953303273155232191630216358925895378922710255457868572164669003622733915691278768539048379529018393118502271977738564613465369353207151620271157187863187857168434668846305427658310216355844879999169069747969017955170188173530958637104227929718887185833117221600099394811636635437801575884191912331935684059684592247708016944649023684433074596262431929334310002937503702789845318353089932851806581343968968777397601639222065631471133770560819155589521659375969671228360033637504996826952411108223147021543167778174608577019488604129920826996903019999206090147219578886175299506278432208522642737183749672762487368856300352956751071316278170886973085809292875368133075678098653304916306184182907664488059536409600615379449711142909700381704792599091442750281816794831993718063865139671493938853485547364507679984046081174160330172702655909319135516526346538072785286185592566999213976507551088313285133195963825428122381736900550492109628760978398394083751474511705334921998619448094607280877858308857916005184262090749854076045144920572864887353280534752656352261331948741603141379318568089973484459604930777205403180649816776228297574133271152565917403064327888013155063948429682960924854530615291405227873145618276475314276478525916135300246492603493250290012692500169818156299956775187440875665587518383290918455533838292464376309398369284933366205789729375584288117170497834626135118123176617666810061999022105798132200399265411303464434120945642981463671413604985152986209626267496201521462186193254306573246079121782239204020442462678821660996095823851741747876789306923400756071916710232127258577733881104355590231489688214252161241659758432379911964315198607131699821944098484898327708113964244009672989836697532792231311657020735035789955888314150629398095076379031359020927650072095269311758108582532071477608692519742376331988325544880700097925618512994542631502463731078592182531113874402811493364256967730577036421484947330213077505522883689069039299974501640088102791107132904854791354683237093809942019195277227568721342853588548571893714679772809700814511855918908054759699834954727749449406129158175398603425941861943938825634508404127343053402723854215284114512669972068034641688098872636563006926856369151049224185774536161989678898250130533052264735752760936813935068570968547014629233088452345681153837524552231012392224200879037260038272203937069882531466628262413568895742219268521041107038695936059807615837102909857987292230106461347908391432385768033999936304253542543792060517984961707119441685938424853120026188684032257155133587018010463411977845889602751453719509532426357461161610468730255896725990104084255577961618044262893657791224000702550229585581643500662490161482087446011784039758870344935552144549137687310855714344565747755328643320976104986307003575187546093180531167889898135365770162120909564817324209502785360170608190428875268684890613461447155560432683972156644779598830077916930708517873516980775053801854613437577233398934729890762940674754254442150740392159040241199340443879882800459234714435650548593282515855234507919458395732430956019838492541330984737415234538877690684188312120262102631273841015061085398860210447674377828379624010298343937630504218595504453351027568878277480615875228295749710295124372344116087400408741422127431083396388709566598119805214065560815121718606065481759777604037985697324204723337997952927328332553732317225465472583066011638769336551446731231625661634130766920295376771994676396309829583056879246859286235531916186648428406136855182477981676816808396243841413605875654438229145238033770912269928637472568112881633899555051468087871494334719865410886647983987642395674096876228923271094956105543887562822985135452746611229502023699453364497907350296434662873597521408353931653023948252929806880933462830812631877311878177723957408877029935553729219195933137983640229763955972635825475376685718769712046695411285090971954248666401618483864702070949822598162230855809447644047450133938060520057061949530186710415215238061459791914374350366488636775930360412787515632371160218311439551152488565262970939133804651539481089931812695552694962450270195256858066455686497348624038930396636534950126506441478868280435636336065305114065576213945500910471187670559678668824109745523221372393952375840804282521341016842444444325406887194661895888874634984889935525849018402040590087336062845553423575898503155728921563497803657431628118657981313623250147269539026917471058086468258008149999045180138722634762879053087231410678073851635096606692138035949374689255606603339779982781729421995517698015918564625136053260405363968027723719579943430278555613155372181295935102874336171972859440840943216732821369369527946365245540404361902593021397849777767700829371235501852007506582513132329726939751896973658828326884818605147885254169879517269085457228414066102099192052127137588152905778746926037420527160366724271532971431997014037996230714959972362071051456420546620116205044248712534481243050410162834242735605188597361679854440353925762264877392617664211881229698464418273214955763477793302571082946661969979025453089323408633313333037926771137577537662829915656239983950929217374638646922792239609319367652364600894943805528298593187494810170205041819388362871650443746117474537978049614920668137262143986549063238117862155105987685271331938472049153093005000574570498273919997123903500533074198331687849106265493195429107646673547227332686441292508131212308747700702953590056980951532195524882761368174676688971859669978946636334438978764903126337819655081066562807326128729467447815871420229206342894118092092907729034580152739433710880914685329084424711931118308440499479392579273902619745009945928911891720655904110328240533676427283262517550193633874629083413106768951929213695345158086164240456252353596510850244545829518839579514614832240028073231254832786260582170152817299496766990539690392842056410948492969306122245409927697525526841703762534856277458003746166728882787879758461366975705960496313418140428094860197391584204426789155682632788226355553258134119285281346738129656500153803317524496442838268981732828336221365200576571016075802587544546244026627201244642167588908019865316352878016946016529262396998270401311232028014043778860668270837367940448175467922059872001411430171672881653815743291549600940825227379865483750898719167296225101345169909276355778302859308300797175342510151225280580538255347210036567004320681743842046915337610290245420317739728536020293880000341770314165884482845455134362172235773827416138349623437494279863769796919821390538162217478984142454525618074785921281382690495591967281993411921574767853074965623258481772707226684509164030704860193701521430143519199879458937214597058572633329606489401350369605561529870248337040402725457251255871827978508171382781746615513520868296228576801038835145476286342482853145313726809896009589325583479688017831795563527542942116229517779607975703745494747044949285029650225963496243955123521566901392647588245647100312257542983997831309410980303029001875087400993571243838636366859753388264646001549159662799372511996450525811081907429599631379855595046899939792818551706911280106329154857308984815485320992630603654848941145389934453466122111278266295753289207887262732947256049920741750221557197542486024919762696519233293657571837017521407627709773732522322210618847080292390430605470890894026395151404540902802104340029437584707052987520461535946875541952325250728912146606835399189936826771787987841375832289105558682710010466092157821482814376130961553779559985322779121173641362998140889194119052312679072491652030942088659122677941637140793586777844445397667765466071252325658410118908785982849102567353505741265752173988223002565371685349210176009243590666084524943780423770703653579190579510161031077692798141283306804043114907876765930801309515666590615395349243577425148593454508301490304902881565942961977043952465187787010731658798312972598756251183756236298201601663349957598117777888418684336477726695272386788473089337225275475476433473718122490029399041968804707635925272867401446244047578892567765090107527788778419499445842481770802606551254540233446880687268946503130762784066043752871759628228577088010964622564627192556427324393525486366310838804771275487522337046038694933466348293461249633556595754961893056204946194416397670187333559980285499599441083129893430003314810184618099549694521309629784938661907933680919121295190199587869196852282922371858449272163604769920407466305839390049224537300957810405008650014503781484740039844393174366612629000408991549344377970106111360726290964838515672277962533430982304440224882759566297381322886060977384489056767927739519238088177744538208746964753134561659139386255276293627171773539957314601604887832690310041881010429020489080506306862143900093227916764114428325338421995146880102209655054518675780628776825010950384174831218205813498700794839350444194222575179314154681351311746860361138335968483015099678809770714084533172373068273067929574467101982093103136492232810362517575588098386578701392102744407891241450135371356915627294846580606408506286578802607534289289481893150250714004091428500883412837144967408713401374163005616317780612656517255441988995482801222394548430784408527330199864083417295013685135144610909606028424739797202930971971566368870338802466502082717877643580611042342213173607672522821817760803502407488139692124795347687415638669405592574706240736640661510234450367583887756762373247607079724612313655770167908467005211281834293411903799355096863969727502064704947610473673449648544830180466375650368654542223005854672187727441759176879646736113819982779257632853133589484581638830843881936868221090946679290398298360389255018435994915344839648158469907571401309383556664039281396443945651206232005417390600105998658955946148082358713421081486966754349330780793890966058344846770054808544602758421509498055040691341334142081913904166240113304875978432139654024193786132263177881472247577671730127082437725226042944646888729329215532091514068030136418362162084703749182945024559667322898771337192568488223153895180446545289645170801926809499777869534267824803685003586899905668905513129104654065195868077658666555435930277790979529744447767455474069487207341443826985889854545425445480481436874782467369713732427147878531155901396983410728678424987526001748690449862046893029668719240764999883124701955107787026222731330478754549764621141406218447753350021084064830069499600919521680815722352444058842762697750200138840221956423692641357220315151156640631295729026318119054503868132932688874107349458929423907837489932885315261125594535125306928713305930178014602838754647343216931364264809807338698411105273645810634426049256146122238766211653664895547163249778249068276428586173338059089480402874933715534942621194817646455872824443476125580986037447916109846459819563124568743490920739577432852758271133350182870895683507637328453367783754482772419102701179804991225854612962002197887632227174872779252741779100571556013445890892010529996850878990129471827887891207557222291380042354077824001266128051783721426683955725525916735199740354664335249720110048386377565546577016538566495746346447877361661019034420650396185807047458353457219660226479507906519817885678985016050321330585215333919005077769108487807454672517055142310743609644895834728768109328772994873761460506551460685081055032520406726406854316824796034803057708242084796541478507638775243714007536296184779591756589494637537166627636850233809842496361098553255977513684452468195612831734366777222463373075020487236920040043063650422343019101350864292185048522781622960056598442552766420233870203661912294507088785682667321940993137739482422525931356560757583503868738279820735770826564640763715893060765858056143419871871464698912967645264200915917672911938247842935220823487783553590943423040083944185961875738106931550700537318714207261317755786728539989990459299683766555541682743129990003480901219530700687459062048305767108788536496801545591043099775941919653149923645582559001195333875336115020755709484760085412022470678145867898688477677488370323839736997478841859201463798522178595307285735022143445244367397959859291793685260221354659667229574396630261302590134283616877508513720718029031937507951328582892882543372854000437140966054195259947145693816213247598454406458704210543908981351758660930182278464574577152620281021764850912157464826439531751582650644795856560009651664986225086675514085673852896711511779138248266554703706260900970398468943108753460103427566181423545598289921123198851957468800546449521222374906195975234206455335557618983008995745495083041283262002627985743317908628425000441015443860919155141102518313143400805603179982685851955541421895294307555487947375980431442689043173315168682350092927636931258507903782539547179002790381628793049096838567676336834278658168369559649105366197072730408202799831048235711214433842211340271452027279367989746111770794112455413715183822972212011379095018882889118920024580264786896984541177263942230233045010966836515214403520107967750912131326868632031766456975092648940307063912001592979940164211539284406603381259297847808403772706616001122734926447905600319154860110737183416443339184169640495520551552919011097755376820596476206967161765503659464057084285449210757748407267586797977343915635058410640972058057015283147595338489320172729322602143264239650623669413548179874208648321185220626480326087631260777023307150940509544061443479262939686029612714057713803974167345802418852980054035359643558495371060206258979770694344369377587042691736146239737327445853670973588278353151453308922556174277510068709438017468412181079827975430920504789145735910933878949062728590668848718579935067963007026602784900159153188995504115331815472400168020434690314591874635462853287593974764789072505471892545042116064754342769349342076086858714227312253065508390872837130821971054328110903970752660286911781061651710244005167698844800041934643971382775033053713120002185820852869679481942684630073939499510855551081264954720908776635210723268668490006472543170869477833539124651387595459832269194713822514409752042058260339820559402805608265007810957597505467169475483378822973506879684377904176436246947747334347174185371839197182509768789664015907246616845048679589931369951952726436888034261932210395392329780238667298783694733046298982899704240414332690120074657505850778061003440377864779479001090465475644826357751949543966840706882507790505498237648774214732875555637413698888602770463300125072360079659469086337592237683294290776553020677622064997543864677335776022519391092142880895090240656838649598291439508780786274769893235895998813829335716039772629639837084022154629669451212608233201753945153307895826917588907146926574643523744871820126330502300646234561226874132120008094365744610640576273197650127245363913345321826775743326916644187050319585115105909117241222699854602497778607686557100346075504134404980193525409659392607974311105509647655334244988681973889376564244707962729840131028106564496393766420800920681685900050988837574086467344813993578419405735296601211678928211776362250349728577136331761065715570085951359371359483596517043519591072812192928642123627722261074003956454016348758125982531778691494094767630100680823036922333543009455321259342548673631322291404235277069254152545725132130707841523655767635653117936446301747311568920777790081493554689934196600617701910135652426948162247195237598898420734331226227990916881433925826789323007089987198619696096785195712713180891870548360616462152144048751862450113269692517549024140861043563407818230216998035839263277205866434361873125706428842642235968125211447404892012915528577686788629990025369966525215726553721684263205768885751261673510122605848219854585728423951743095372853712297045545311373027519640285133089316564588855283334304358113625048556790059155105192268857252876261547004532452125100067319868004985789651011605454409152333256517341249191811558338302625529234260953620929754336855202210784095610400281319179642295616899940408012774501948605146654853659917313962453746424737169637567350869231268624443341434996491042323190901742146180736207584277394023387378663333053317906088923890601199522592002810708228957921992202179433467144240900172047418479624338088564196332191715130034033247033001672694605324544057858935251834553843780379830554447132630243244215328294241717867743110904073288459984983717656501813992509240554008488204665024714135486508994415682252629471587287512906574737034219239700687033449117063355202038640696833364600302664181656086302689149891400644904340680843301373443835344002809825104878851982509160938883086871101840906502500059057999719152011578092006892257520898840122645724449830688691198203458097169685008695763331391566902280780812786281997652750146626809730259078492997609518757281677358826126481519169809120555058214662879539469515380443737773944443967545445016889943736973172438213326524982335491808559283673813140881907374311318075874293725455832849321719618596074574065868418292118266298226962400335017795430726168561090444609934385885620007232834772701533259387891294244064093780687566259449411718722174600970763889984745818599656269789749840307824600209023650095852560568955417241176514791468452122535974694178605816443475618336130437133552009564133804110380860393924138542199281833586398337223936599295049290136639106289414675144922562695760287161299234434733388300638045673149307702120207794085992215233419399282044132524139834258332268301206434786843514161070413764465812071470597786837542813150105039464370410023266330842013275150721411329118014671024117340972650890111178703750222530756192251163438356664059135275273706703968509899543270269052060446595511979572489252626757349128191604549974664625786911724536493577034300563934246707678807921509881025186119771154920630588557773406195447529539080383559820010349384738959756236920357206293704581489071791362835658225274889657567071556883896203876798468748683618026182354710222197804528644129170145243214111779070285207772010433267719648595178861708872688928602083869232114199211156185303401143829757496414723819953621046370573273473639818207001694911746246585141982870133371870676579084458442604601153277446956029189933214078340087276460996012874211920173034544355412041323765677727584219628672047795246982900072398775176343231196704023741632546030251361494952234135142774533621806343673802785089220074121803154778661814930093957882850674059036225757147024904490137683048421522962033167658271218724297345182923572744491692281797624435764782315548102467998603146049423309443099951773983088198089255467187543255066375290198809204833874881071591292167102930879977802099424357428297082326543845396241883570555181575811310188178294153215029991357469347346182831086457210574151529956949484286168287163382308165716451552506570168774245817751618270606567844233218044134383854389402189333466526519378152571009128520830977024114571341522054591449434103116051316966607810106974909370480829768527246278836889544604674587258271439713534590661527104017801012239124488747806347633032896461004560735517884405989780217924472697155057654520265412401646789783495872069903808312237409557573961821537423949953630394738718558393743095437408897873263795430231762820830052766743121418462948366485447235970171869478626310648106590477695421341763300621295676599999056582481939382969418341576254244263700659010685909742542598641968976383330122672785223449144670449611364495299209602490656545141899692835926150908977752013074937876007616532434106213585053235109894558687510542958231551646402081992503505438165155918063738790789534383980095922978172671374124132445371968769932147094476567631907381999533925577998625697781962722133734598294115621461081731876732219906253442568178360237785625044416711793617261221549358168719333762231442082531941306606228716045262183152261099393189532407787178675770162115700094199561970153642559504822974811410145099272322441013696976289684345357746600451836565485248984422299098892929188228132941080555903530671908787109503183516685833953780703595787355387613303401651998442798708182029551862519817193571648490530065253126176774709219429264696519877659483289375280537472288799528782336826054806518235290122833511270531400169533768775018341418549089361242611094230951870585690547046869527116840864196697741865512612746852054787759589348062357243052275230078306332628176769780017065041400926788595229748626570917833707478973097909097829716361744533711030055109103633118472494365879161574137949280848583409421528481394426615550269343881271708901412550143307424592462987104490558353698461989631138473233192038895502940607748823836787839987418415436293456386958737892262672556949900854396474753418601480966385443007418900281104433051864104718607335160233535674897360569587783201861687313999512134911083090518442257689803091028637237097552258988433262562491259205636491464511911720223239150870685453425082168768987748532074773322967659755560781776930876238857368873883381946320019591132552838989207205412450448299082946291666268125227369841166044290397055021339773694106401029274481494370588591156137167038963109458093326656044643904125838503074192854930975103774817713935723519609044041522186659737221083372992195987603951003252709680720387547951906963408489730129204207737123968726233660399093226266258732349220439756361243618198211429118428690226302698927364989236884363694344254000571000127467083980164744069926086588386912659874143044979393290838346287923388279988071736457536049258086153612566324551150676722563663279662754499543869846951021192800027209843185133327549873282817811100677220373622188959187649477328793987902903182005897031295315984224252946392025991835601867385702710858377736629974099025681206848691990450562388683503033967533015934015573896905259544395007451957285446522963851278424042034954030625587413549789444099652498629678609039263620477953103179708921880956821093087252058770892174204839670813026247002420785948706882303987703951017126530237034487420293452633232154296803514753929412008197110088863385063056145316853717689802587385904736134750928358775726330975093319111951953888957915229114568704027966498754253827156428179802633822408236129328813452519260469044875553121793208319767157448360757009590720009239855267783800383471460852360753726133258976852884998359011508071560919418294868904975945921640469309314762211173924819779265534662707981850157898829416250677357627994063428548757926688257757634560207960655883200412058852630618498265119431267739213110108120476538357815737528560335983010537469143314576674573486348003875852569061495501930241076923881635910003623535739694986945758067989434252324810125999009738167794586964448242263931922451397554108345597229513439337950127078723027594924508869879149384160670335707566549181620440131255281123638041949590232529080700370817344836147708411669135413961229288572793191993074608201842665363423696281752962077956586451083793517123360676567265584410411197937515792437773973608075669437419511766191776960033613406059704753797626674684915281314938632038825713556429358205646340336897239441617711674794094948417647094365776658301103451267270484505703487393214501647062931668354023738044814069243365287720799913267412824517146246634154096741903845487387731607373644599932096047692203630109728575054214835854730913508775814413720747998435358403157732215585796658023672177861780545882430938039349246328545298690159997185953271300721949373976744940990802627596542702168748123415084188932055951899310986586642195211774062439725779514072659935636081442581192289966243182035347153459555362521465618269978581679569874652153098413388009515886400451814688366259565535797420109200128366456015117271836955311463187183876189843832160225979125546128433087432679673527920234195894146537873698133008404655035536161492782640126021260214975076913264353666375499129598627454932297734092208646707574597121879200267251430219483007633895008643840684598162262556683789333222730269777669224080403336103629140311603531757385142299952873597132545451470404922104678110888669705497178769808775190010413813335042722424193679810600122600724436858020120027077179839468412365794929567520433745016202678006353180302159374306935738795954601770008814357190601841330549967494574549348998135327465031603709501821998164025750039405799125847991297470950529436441658539816007404612891540946886908727762306342125937974147334050209762805917780792772602437204435062156157616778023875682504443828540504991075840917806079442456397108096876645934378401594230375590403019602237570430045210918482007556190160393991125249650777298071398775085418184759442729183555107865734830862921804544756367736964269045969044717546953254350938008940116531334539879629336116366596052289488727757254502926364459768095971873999456671000330252090348063010727994073979236211128093251305327680704542358459180820112382396663912619971294499022105881790804882946515858615978088776978010011074343677946136346406743820536061611086865846992641741143970825615925781876129086254980473438711788406886009618010662901892499782742314750212804514245408199312358037756903279997571522715644922422436273859492373009982574579746125754472629289189508140591529141323471577567137200423076652233186473317444868377527869665461763209649131671489890802341668289656176604332723060647426150612726992675307332642462180223923740282133924301290877230670290770044643748356462323943433093384718192428297610626382965011280276670568619911890031723018862971234510544639732513380456836904631891117263499435623843716222496148060735129895873275816677911549041902774518347419863650431387249158057156390623413704701985468983001496726184075667795691178609782698809151854634352504961867681905432056329534391653931454231153857797561726242677276092669345816455700864012096106315170407629988675758183235004279746065927025355463689264205726838988887383300635036605546532038490163238605544556715010371613703283414129784582544124936137303401818003855306847446233040432174316485281846690717108079582710672165540997281934835894856695420699071122962822041064840609426298610606597683898110185546364619206418358080196634225575103275164229468388780037156818799079986785550848359908115385905163317748222543370515544213230203064629826732703030675469694611768132290683039854565749373286099234330829044168200250566291723600624561157388099638199466389447194349223360945458517520263599971627409148218763207375713642905678832529988268683831578429360992866164737208563692092542538400841081605195342127387764137455435090202133805130954942607192524889830217033170056893085002827528849475523113870795386281138731614866654939239271579701315757499154840997314730622826597867170088140883829992163632649681634562070403475369833927841349495032277329508378457297109133284146489974635704442096304297725293847928391786060419590793777459521767798873866886126532184645597076971028098585238085825625483684347885824152208701489377893812158067373650625208526782616804144900490284281940849473426241962071585387225755449636092270133590960939266502997736916533430105717731168375389189766769986452757340683946622018049115977267778720859419633547997281838139811104564805686431207675237663308430436390046932196081295753334100656210330384652984898879286266932105353302034702390196166091990543141865670159275652440662449115860554670982625065614479886058508079997381228326148881473257698551676133244665690657450609429481195067788967470644822472648465219892893236491217730573924441041910405230210826342973703413359298401847776272892805037175279969531130449918316417956895883561771307393128946867679925019087229916602045324286642185769315333931268388638020464680907868148613500757904619472820470541815479121893226250777024017217966869962262082027622196155722569401789670782506036279292994955524104468000667603148940426899128385874146181514604158527141241182631106629009941841716237224624466128222295134776259428261971228294877223405847352431156362788010015420375283260885390882222162437354520746406426639443673355009232870013265584812633464012937552179676663216333451159129467095732892365109110330211992012641924658655283355387977137362199770961308531038394626997329100106552762683790001075988616774692898542579340878884260034756795436736082147060706209630622071417998196692839767059312131084228639671314416913924579070238191713421891071848771556366857997110829822816900258259706446983460912222732447397921281107473978193490245469992336244198640220433162942051474293709414370277186136251110455051505572748150749974295895260057518239118116793544842621179831244230077789400782426358083096856223827603373080551922196923569432581493552212718206927242184071940164057413184496082160729924538038345076222817989962544188327583907917103695105164842993684564942792139308381564985066022628582916811773880415317088162574097545180491464589469375216307228543669157317432576066771244781277409017922077288341871000800101534818748881245089200294278646022377102021513530324120998621647374799660355292713249121364565173259481132737177277427319404669412733705256332518455595929074682410243607316329908492664607361128703380238681765204727546863186862768874000086492791309577720450996396898823950068085877253970074750400534388368422516774856899491729153878115606280465794656773768550965780711967381959642116918973115081753273743906244748418205439329858512556143515007018614324271717246183294285480897027132033981606329812166954772019001240757887022935819034023488457801766742332405869974758877784990375507585424058996868752065815665016963043313834825834115507378003111777388935901164494393973815791560957657942960514209043053599474505224568633839752525603537701694539167462785747703006773794455973741447146636974007590636765135251743603401756704589083491333322435753831902341980118511941548709050763507106475937531903099057939009691441564246459412820126165060353630823725543198467660343725938315866257286569585371199594330983337797384437865465194774804794958767834651862789101858343598027307894488619657299976197239095793882548035657018914851854093693258726003464817715782528536322193795176176528990485992612117540510966581484721176000462409618513217527033384732869477820524769267564091985457393698007619958952609029689980816263322170206478172414621552812541623975520626262149616908924265193414976460003150405213906898111933642647982046959522514745070999304215202419805195362924771636415643829559028248585642652664576946944854627471096479643840366576499435735475060353667853154137674761242565065680844889459091071399745222787268432548782654084586785341656970429387352421156266676850542788481790706968029889381723205567202509919897920510237476300595978142047536862830863043278654467903201220034231812486386236546251903470831244267793170302129968764154978654745098145006821306351586662108235445214311266273071912957145773523477864880801025215327848752452798331013129513247847658728333180071426625934008739380212991464643041144837333323472015482890033062581363187238364905142193057706008649474029142253939654119429645904724906296593852830101820939977249965242601377518695912739886424031195086018354240483416304949891959997437435491257327334473269220796377881910783897544136620630902330274107518596009653808740131921760376758429638628289168987707165740052814907607770365866166458314528583043474076656645523237890719887343204298387037925691745659708843215462420189669143856090145520267685984824070705212176756108316453569370226024936315540168438363729568008408860826904639041019215107600635731039451207069899330741213276441236598636761321885569714241305346554688077199359724384072490895770690108668696541743179432997064917900233880971427269664148812305684056773277428966127486813414750375927568565223567175025082670382539872694817590586235000059358761584334307820685616600109418530323808470567418930301456236554727969827977373719654499226476535340582163335847929662793703844856256878107617433023323770184845712393176283391040411381418107902102329526348311113805431380794690595533282633479897995196978242293002502425236465533062648425768947899863668572079107324060432233363816061005929725549108890892423621339445765313906937583901033923632588147882019328043785995155281887530023735038416834877845175037825381891771345108155653523942407891337577576289566973255752729510340825385833034136331395283262190294380881389668032605536499578196973580518109597418547018160979859898971678165150317285336840782980516621496754525166628552307738448862714437867361800314283017232521178156826659652195622802923593980042550867882375529818907180709136326199665485923177974677356434264126317612774027133160281249439248963022993054778186977508086307638759645807049546806673357432570680970394096206712980130448521556754285362838032719200070478606665253954281321772924612899288756059461018435577047371434689922151364199841963027256486521075520447776221030840803849748152341873137847068774791616568309032371045462149784049016148919414853622810276263284245423352753735941739866087665863617003734138965496762795747082390085817992407341242277858017807003596405385205316747813294890187457329469075776290115152995361306347185788086711797505117379473435124300613249900048987504179001832495672152958049310686257917968207402798898745606625567233175289931214985245829615696864623929433222379143484985162182790517447240654505486611690150384020475571153084538701895869480422240907869705056928014216335325536042635723263682548288587295380909372830566522249811497702802892475816762260084398370955985855290650383012392333541973461709132814092251374272801547017471119190967571667918452313889234353868098597846352340170177081467939207668585990319040429895871963200886514943189525805844497897721668751119648317189279775887564125719929299233131839877204388134093099052401082083791239800383002696586322662468641662269898408166249684436266517190915264720395672846829057385387654372408613393225782003867870098821282243831375673709007362810289533393184439134695954995244785114931854049547689258844004708795554835178499210678426911767985970519017005310418123474943382448590316080354147011078189837309118642764090538722467921203395856490253438881510542324641138716473297028691664514236714231465790921167631113350858576278187876308624268505917713875411550624515533265073284300641992392974595136178801286149443818195834912218131384689494564055881645147619523369813490515387577341412720272332068616173511232021144186828253331714822360301648368598896624113435246692192661779622706718601133802240239843979193819370319746728730059447308896299877369436338042378606377536361824885242427205313245316894030505901182060096963728393634645538849851630104450935994211209123553114429191259920079663855398282391405672636004532065522128018848541736395573165369303688185050359901132471367340140445305694749448790108353353064976192528947358381839161679167169091469722157142242531261143081783603419805839060057260535367321337256072794532773605333834782478785911806359190582736491825615601542073595149693834471642347791134440537389168514036088204059939261475680191253641884664147349981657767664904487915761890818803321249527984325396012356954121381791112816996495948218356478623313858957537581751608380321498509103498669672261475944241568455117754866428674771586736643993673111021368806800274098138067092972560352702408413164616195615962362193985484270728244100464164626153222317616142426059711887383811594876070288865579698663922850263387403951484156633044347694096181362364450984021609108427717653096117260120327837269151694215215689845051566696651497582508871439551762914926205482899252480960592123548528254900738259207594843711176023189903299837590503904816985008307895177787375024892340353471833908397499197849890942505667885392205254825338468044981152330587318923546020934476047361717291975838168579222291631851732687663821835994749448608116604198239863158063191443191014771846137253634516388716614632733667245712239547471043488538042669535996422227780234584270297669859759092257031209062799295585748736780930862682082594797144402108758186845004576172565612896063166239293836163320374527729432393628229641453790535757749876267191851404846512544651735588219488689695983858265514660753815993958845144617949913897544337870244907389275862725606012610031982501840092005073130046902163029000495358424229916426458088856842259059318810918545023489064568029822252786358864793382805752052408649970155120929205271559188516549975636054604052544865084830900146545687227814013225075645776425626616779539835106810793178298844458438971402464700382132092006079689394848345162599755389136575640356314661180361625897343436682634183165301070806411823409604724661316183601768968349450574523982362125167813125043762349025297379521286575119993876526869807510429423813885127716051736735438619864490847939159985248917752653262636308554053139929402801003003305625443894532149123652974276740186816118549264211673696619948094165172687564232446014349902957214325655398621373469597541859124177527617840304989916684966322535974306687484447994128002380393731083254868687842581033072801690482010362050805091521498114540977538652263877406672170447581597575907544819227845982213324041412669328878606593687519471622363296422151526020789259073084011970537234894671608517017237968075623489916781574628715934175774701750060913926763438248306321233732604992098394521938640390488468024603487399299034975559693539702887588749487351313690073954816582117977151610546532125383532654370466352348727903491321712523499038878511129785746774065936577101005446718253937926629313988643063583655872547139128924946958437964592865878729647714069044569321686030738684171393573698079926129214485203749927392274947087188794804305669016866175460961147291773086529410611998507032597532154710607422148128073503189655253904080934309226221476823723335146673257401073429241907889586686135283780759496990500953113363999945914282174512817671015411780361501124043202020193249699325139413810622335909834410144519050701753460434943077484424476249340769133603457760770463226425209838805387394341321122953679644589016166604757855224774947610026460619836217827244045317251714585766175768161596939983157096141100996826429522333420127789001017560259290254256683706226532361671483550911421741189833922196591725409385289045429292545181186086127294548710718390678479232418258481040617235822793988891706588765219075380316827627409838136361859597186252646419017527441182075327844942221294537042301223358725244786457864747731276677213515962077470405115846529803381930864107252111857512435499408783551699734844981144677240415911294284131174124355977167765941441304230334877036620066783917215979576281288912451922821234282096894183954331270117817792813579978898712575998568980840390687581069187394543625082803867990501152776461252914686601857679030151309012863375015574876889275074070177828698329287189405782553590522272285718897409746634411830259018352540664588647200057771907987020767454372939041816035244933030009240986212545720145354804349278620737787012018116212213086602397190166850545834475530602939211178530925610472285241331661746811789667883778761380026512537138468660501951666587483590057213525964276547008838073599982532993626644280194894644375955530068747776460233170894616249256343342154888407960922143927348713946994988705099985594199720520701328802130129455665074995691639184757309295813753123635653191253446730550790994494076695948039029462407634434128737286815284217758230116440957132074755926696146067883063720290848032395059002109059492084013878631166002225037983734977309311639552351016417681070869945815915504651951564220617653237804411413442794669817323167621741823504409879118696713115336357924195177912002544838176096837854801263185661392756263273407106626079952245123233347759961470742480773376335271599257908798290097458244918258140344644699487390134516961768062168705808635985497679909135899797286655138253534177787188278648433546493167541185836319401054049288449309008144055704726116401677375002746694751717282373545632980533868950638080099463919479662897301239848572168880937013390047643977226116972004221824408131886011289826184219045901984522537796835981305947796909843247215706570452354563910244208898544524689001114791337295547300034559718763344550312996739782660164358483279163314703433693100010285979726088661324492374243026007000542785906051703760196047254990499157790848900057516801763320562871560923781845360203911463439975678596255203024167695599452949739770908500854337310007727165679987512499976499826752216331252435515189220144458495409033639264754658730835152067334866063348648540093705294759719208754993177050384667318878910971581730355243431792839184528289590979436078326511126338452337115429849821081604066841284803047703159862411738384517176556491733481982304111022777679840579500012675893900972086251379071840592072652954645919587731900719137101873956063329944965379910721737102882889891949338899525315864012269398219177259849181515995939708646363689665067002633679028156974525819057965478465562338306593186746853754800712172662674535742698789022692712705109631861810653695571320464950951966930684002035372853104852256976061117722453206375973549267205551115829391913799093825990480932816967192958597588155810327448208096492888758307504843229697768708022146478446446945849814715845266148025300827683498464711323093132666914145670860384942259801434575886898460354578335744858601187544373501550813673306622575806732550147364735423926877411776065171686937500097002194731968328810375684537206373797458242134378642029058445408611079877823099134788716419576389837439239296626154391880532902309087496247035934543636906422681606603198213268224174474183947241799121549600431587045554344695717844958264794555732114157026300608562796754972821233456131501062729329476244032655839550328476737198932525684586119508416234078777464712257098503265739129343359463896902570843242890132285635949159134389240880848493512216221487273573601036884844907220787687012989902090556650729872366127211894523047153865587981538068579294869505059177555702916949420977069449247466299724000199657152861234312847426714038187448162212226340480064787335776312471222792899677967513032494390357322096301698780403163984139030108159259511554764923713508233845890676818741478110781715664993916123816309656439301234789432553794944379594076556776598688465570464521226383485910401282185622509700898827872105480828356393143619368068171682316354506307276100461324718996319443963085483222605346346195385749688602549687862355152115852187016603186588236121441444812913695239103559896568479664976485112561746728748550079594844354530367963467124895094328151542405475892818327935812126205119481671837518735768827496846752588824179093371637993672486020305401445049646501673382831418400117272872205726816095839458898516239306335498468617190507080800284384115366512010677200909289924556221917893302768217281452860058121490797240081941119609506864027380004628877044297077941443558990544699315513813935043083045452031323565915898249646710836667143574959221645710103488499956841007483145037072836023090252355402421645152676873971994511071832822768378949903972846646492448201300227022760097048762811029924587951739083038782585289808107613654825230984468333831354738387496406192464729215468685794720359713451934080918993299177367615016591448892579675090391662652735131479179808605375611782895461017244425004581736562085132280863910135614362904474395723723401470747271482315321291732711836858023649152851335082309535568528447188147621127878029803664436157377989217720866202252889718876883432443414891810576985826530767693808762277999822562810875915448595909406664384893158287196633145706534105521853125939904236555636155212018124586801212472874155127176137108408720865317003247267069141703615882440331839952376695198432307342616987617053142706754853440162932322647547761283151559865257190320464969901062268923795314829629484460848355149473734035264405707981334414948962483161772964816101190811242643653646465640657725401930872619160624755758886094172687751651119708705006863407094879115717567396312950414815077367158603543867455542401226290236553611963648665654799409505492139610565188687458681860161737097925683339334210939797338890091019025465630212342286317762409260147642525341489987009391029623493852552907588643225525940206813550247956288700094693006236728400175016479015051159844458211009944581535343580773606733777826582270592526636929317010520393233873999137946941574822529629642967726662149237182423999812475361535451301797899367658220326226824064192858828127310265152443187965580566371058860043838892005465071527211250380637155937903937622240513680395918162750480773436978273930661097083720806945865911639255408938978784276776180399574507402935165715630114014564519667483430424843476952881332792349586340512655717582441765646462567061096161370738205189664448177806188147563030298450909554410004885782260574469590903989316569235437980848806249810968728984686788894305371170976496608968908837006188639034196529962179311372640992920824493881476917606498356156774628896154648281419128767838378545556774035956221737116389881586904345137173358607769082771232647153211886175993649810920514077544574713209046834598125745016584421090172353091290354296795448765258657328291910069767376636040544612885044389687296557182042080123590166687726270773804111413530087580886866075703261846962361792250738992821718550481813224228428400180464360546938453857361308432671309810285809037572303395895885972911139847277861418470400590759787738915268397652211683133605749922283751410729757686430452367894093679749049177292277066145173472183394270433492511014676864248835365787014856508863563304359333013569338272166242086940008552873306186617542393626116065543941732397409559969365793932906286175490222218960383814227480829191030668855180800534890844640694888519428688608664370306317229062439245879380451268133827811199999598992514883444724887214139628208856882101493437115410279765165069278851974778664418749808064261762978961290208623811362370758718419843901621093219898730368855120192713579582473210062108705281427096701011997319527844607265085763953692714278578005403345896867788316761645708257930702990370501960048783096862994088072883670120312127674455471988115542844353142907920966665721052689776260115671190192533241055960498428379683280135544402181922772587682694531385902678400033180926681435029388739615105248852471061552444883955946785027847749866583158528541255490624541806291585131601502231125679607132727648412515446391498411808822106720884201349416277070224215222299412498150191501824028512094238534958817463440475682506428418727365503804747246506716518751618404425732381796026525807263269281487247240423747289170414950016427434283681334481578994663093362538048828847748762443730066618191342843098569684432210151713557479761695855042049807755180359570732712827254708558197340439635809409072358711558263559483766975267595257196872360460273782136082306930993596680767549981165872994963254920731990605167985434675626326254359109966846222816146715166678959309656370740032714087558379452498790718126943534762068484194603216167416918100098479512762856637971562967026010415259987377091459288400196745310468343579380331574608725629151596509068888731339482831110960541413153453158930959447171335119233118839354481232712789796001603546230778167363112762584982845523722832202468989199385613677025248413939139178980409617219740435577931661738614151907310559273566288271570267374077643641723625444247901151564197320695089756411989516602761519365418164483657254998358271402589553874748449426661715336752834843253404340013684586152127027914533514714954836443762083278746381117401508114014928512345260485236783398687559506442487930548899202612819877642185491164478675068511963555110558514983286847786912213465620809918631720287049165971169790256260845751633412360390916468100545417197431980011855812368199754483333779961958209622741479119857541444838865937111839860380585326864320270410673821970763973568892632923530596495963911394385465073300391629944343588365805072210690976740101741074411604688620679071955856146711535412399662705423627428523041160616083605480316753298417591102129162540251038595322116924231070749707069765919455893161540000868797712685757135589576950596723000378510373095020601117325612791188602568415209788309548030618050896239350674853532091181512622210903362562688146588597589639400048489096684641591045587248727934109917630307223135011609638717170514794285148698977526430626605804636103034153982988316100351343993077231551014842236510815932758480323547382118861441973181651319177009244461391603327204303629126266404242700868660371059531878151826993647551152633384847218087018748463925540078699078540733073570829867819580927562585495511983535617616292483680835401544655266927499125329676525063012080891541547106414525434004311858702203931617082189594178688626070720302100663027512300122810331673290644221073341008240141612546027213072255769441082790507974143719444500085815571231192650106938553401825517938260938365961966032429494593593581185756735476490662959968833901035079204476082425819171127732692663373831024290310514480878931297480807990409422739518014481994553832452730112569059306070975912544192840360914236737447298412930945125757705166392067221492116122278731622485579949490144125768811446296691728891656647847397776536415277840667207831694578305990033311018545781956551800383239524431805591726550212602838102851109003396139706406128507006694242616432974232513792762153495757793662117223944377505609402426895151481844461143219290608904634448790089041357674380086215714488567993668811734055050905807669013998870423202734965667905493886090459509481166342005649126003505128882508259223243276073821410628472291675668821441511725770428830275041304131073784903940156955613746794274048617634292279948481231087102951665791716824044375573404574634472606412435263822910816608205613439171200250861331633446948112675089363508660922599802487303060326960244085426846213447906898694490563255152318563373862936331412414015624026904951693642396939806343207539061294175883882504393316809441505796804345349889773324660528611314578230195158024867326986349715489618028260837557834994808470740477789505869141890601952292551195012849721094612326902801969905848383305747178454294126399773585172993275130165468897190975521896580571124029009129700253893221896966098851117862077989318187588311800208155195145826392557729057216142096364443350278833886335068258390779500769904142762149104171154232934592577104802823071496593330382428849490544419966449172364289561980388618363934002507676188779483419273685862851572314779544386235308682024767338257240699503427292281756924450350313361751433008037115715536558144158489169588862407882913504242735982526145810883071546450851751290405091613637086149300570858953083213740132311727316563380041009771508725643810953264762890460656614609628597836344835697487740280647226122843523689843623615149061129381055279367484596348567437607239636728891744103904721631213591928018644586761825336718904912557683075241783411682601378390657052798938649514323744683432914757039688528023308121545747356807733921707862232922872691996323085228785785646312081567430170805918543577778533671310026545491993726296729822983213086048988422859049545991442105058351454194200276711745083247474821026539071075800359786866274606968189631621408296123845133819279096146905918436698890191728938249543611252399084320005228927846866795627330030670648392066607393165581608317990691722216820300737807663519758759462695940100773806002266695029626347193714398680403716778591173403021467590093451648648647518404024485942242844718109637553014259671279098894935858483567606160813039242569804288540514714008478917175995428122439136311976014414783751236959476592645430464179973885003156408908641560142810211550589866228498952112861906249996003023987260900214439044497272904012944934031317039718531981782591709622162919588868644635412103420201445218374836723058158174553294864781010176260246322401088698520628275987349847485494335530867794720339060992632444176357387307918574726790109316731838501610390734996830445912859688008923916153096806495002633750108442333754681629751381646608491111368900846270188937937435278834024600736397525560957586872412894522501144283762039955189309234428097965158752138722153287119820680332028677394782131334627459319028414211748920571142283176685814536650309302851485152569142647173641492198454212128554769000390743873465826297962816651965286006351920138000160895262704991505305631134823432312639445423138783867862553269283434070595542792720529429228752426263939503560509418988775937296197295497978959535203926748892644471561575134973239369506269670990213712846975662371844823696293652708149214390311016086779378911046701920622722489942463137608995474600375475208966388633401981653246837381653511580448586242986367504174383313935394020220470376699949191658089359740635625819855161667307219233017090927667449739195860506098569604970534177896634455488115562275463849069888504495531174921750629935338607828794385940596079729784675149233997293219945860858099272285812762413397534303564178177604222141163614506317820965696920712043667884655319548585844225775516073942572505625923500224331203666238566013182845921002787663929126840945454366278891475530175517304176938156181353289183901418249648718308279527663334929786955582364568810435716118075432807933578924624985091883327803981698736727419022089844963351800548635397437082158041803682109602618792154073967377487373084288046313172463281859759671207665245471119025516661260160423790498118800882050797843315095863095291931788877511803373120371776521015276479670890977958758354436827895419522952236305523563441057097331897603838137539708104093601795244188595907629848585853659759558619627565796666889755215022249919104179435006360657378355442550620052093412994614598021728826130610751862595590531888260262079602740184478894200205323838579168094871904319133678840495036569095750043515943314622579757693183219737673574801113437183640560568895999042820896989356098317436629314532979865831950516630139416471656759226740841284875383743499355103097035493910054676683397498218211150386367664412321645169479116040849749799872644696272497912331894820008429603629166956650820237931892121040701402824034783447546013749258628717028357194997427207966450210287848333102335989525267634439542348123606353968777934670198950602751078897452770966055318968555558408852048841630431611232101504366794283238797272402825215435117640398395679729558240874880303444215665226486993015532189591527208975713686305135569885628775255148043447747939349825067321869314026534785650417076120244847576963809496880802197940763580069944863933513140535249430483616675885194726643932881027041242214776611991625385620818086280105549690223750033893542267138500032796572181765618092403718029463311912991211762165838193231861734531254017946585797091002977256074610991454013633970431227264863104874411847242136617159829356106872609345053749782141278649724444652205038742504157420620357981297394025505180423483379923057059280327946678117798988976122908626030587203951319052921653979993924745303907665253923186305803493780267721865791228051647757804186127113494469372736662666806440699617899705945300754360484163753717707915462684353228151749797219880633063633636237604912901130719660031954312921499309580365723773256345914444576579116159042443269620560341169123317390028081926923034153737688954682431382189984658682882383684189514571153446807802086808536497414235754167143583744200175868122607522274954026655680887678095197135469999603196964618949476502464380152693771965693599975637342878180938162144762712225233832644373118221253359485020837490527769124846926208120946096046085360000822385588801170814218260138669523683047475224470314292478408566346737102842214632759537384508166662503372734153380130139993975953001837961697897475721971156673549271387171478339001653540286384453090260310666159739474444120599460274243184348983800578187253122609461117347353257245497554976870043713615427651337862329383216345870137245258755794267939781826306103108693971333184687542447469698611240505642136341559947677974994965479468927201544433940013981517407299443297815050251219875877179341181187104075305213752606706204137909082710864997283148773639389988813219893515771758670078062384419787879853653010254492143056353675261853099926457958745828297285634738595008885755869353442614046766744607097705457158725684180398216540449819294796148554859300613169728026804949445302126330268373459186285476347796181833332344147864190208654646436166647483704163903205064366660793885810244010388351490005294195036609003063061252030705772354074457230187719824647417937697690870704633122144090681333962751144672739121490981016137404683047633171636890630804256525456308888883255457609714775446023536966349797506308658813121121016329731086421084552106318410554863824781806168063464474963943963922285938588612792171303212704190637854574838872609375030620475905577521877528525309694023933174162922759371099887040799044093905611572277039732512369897088574111844941310499682371928308934902208909441557320773884228219503947587859250077358155398947655618047385426208171246399718193179692716190601993178269148431583335461535956086045864878461355892446003611258181145951014372259702763142858967380350119266618990204431795278861614325753289967636260268880614340060205446331414357910161423398590737262491810779962155148875401365325271480260982544993154511585010469322952323726706839441083449123070478971250864788623209314166658910320721118872243119432998313688254037516101596756945578784077369391081506956640397178216845008712955037798232516728894104941892183019135037914956622927931718184640837578457358142654256567198362157591977852684794241340896453942175486618474644168624448048734548645826204058931486670421850624915706635462258465859694218382450372745225138213715640865949874362130891268947553620485570928204963107190346117513233679670136532771504537678175036618091158562968451252855324294218496819114522864177621470047434140212308648232573010925113661156226731065636014562905061620211248643353687790055744662751217915685400925914613550575728793886517421454834899188265008078968357307501923107143411952890247292908064587617375616469365031198437719036379317711142598072114540811902767522100571629676174072662820418875576176947982698357842467667907325196970867328751626617899483445154813767885325230383898954858774323737618778155076158850756723145931344574367990327696185739520830264896098875339706447143927498795975004596340653781727041821310099596621059570862221730654799956939851975512893255343579003886857330558037432758619900897149500585342811383939264767372535998378908939168130221667157399688498405807679401063463540686578078866053824791291856963344585039437110970480128174824898169676679639532232997283194513413730168199456618026819211541451161060492430397607904600378092118670399689294890545706720189499656665830353799219974258019127676920636267980547148372447857196426245232631296497931021536450515520448088458285779568869244420527477559515623075746160921110570399714593844689498512625256296419889918662957296434460946138366379704538041634684629409947684922532396983918955822066605892639693942538559082734560830010606253301589337596041643787598098784307545950287802467072351655692309682311507775126556611709154052100068252247559649956826121242890287407413989513472369474731908316875717106144787172448344484066961305780061269688919056842407117692259832696853808866757462400780674317391015546338584950542505562392957454413562548525073843637004408415882206971521741739273879055057203831540126601122314108444798537456472898651492212842005928278836955019245740713314068294360201739374320247066002556309361794197004087421190104364787748884534169765257849867974689317580451154234115281721075968890587426795655562201816004822099671805605270142495644174155938169022950779458775978251902046097039492739777447140191309323750553032745549328375117249116667102180578693845365131275334610327747634961972022375564456044953551415909498872897231099474409098344085033991981063900088019872853579679111489457451476439508903144544784397265278272895642107708671817870287185166466732122614834596147532076737703867543827636688554622183340219061760080466174462434138546203963776641578899845837665061416856747749785481120244998726787395746455056743272247912299996789452216693697149786295968854198883776385924948066411674411224866029941582403424665551604529807978928587663461954387878828596598796365606032477410874410028382710377002814335126855271186772425448759797639050217496181655801131210380839852351454160502842500390098511873371436685029749238374074024175982533223536046578511582874937304125094617311790539686971158655320149750336116752561130201057094557980959481681430410985463290236824228899699683855262579142568912586887719240020066861352804202690685794508882939657238894817646033465824729504118885623169723858823916471364514989663927239104290128862427515693074318448459712190892771947039500236381640206790281645396695154577180275898774488928486941456200858698593946544359081277623800164705630519798381133383166200632518922441488676250418641829895396355584187133254191252287232711285048810055151199237178291085473491926977675316089818860912887592702940302665963120743881715276441617606467702696062195761129857344149641093184440778770791851362629409436058531700633893055665785602600197069158140176555209329955687002867739944632721202977255200033007657856307447628716769566697524697305169262194606019507968791298651413648879038566660554167173969175553831329249342923943915115939398964645036280297999943022749630365553822522330485048071343520763898395649822818164807145560438028380836970712363404763870141097777186972364725329101848735347976947460810995056767385484575062943497693567270230095872428137076518748834720909174325832195393758922830900648786044976677176992938736827995480591097314161088708700350574311746393133099420386770876184289997911307917187557673503128641023533286574298249128599971129261530787638149481651432355454593056501152355277926814398186183672459266892152466663824475858655653344306831075962160429874907800883602747190208955314511782893948891498587234401831435239301156902858323947889118544792702703384428455186779211713605366765281848622070940788516753689510434407587620968496942126612999004932616848614838526056018650717492648093908551928780102505778557565321920767157443000008802088512617881303327397794706067804687168505906219756834343318861526748208507926550876310017370415943939706503957483547786843948795537721890373393366064349421896551154585848477411367259741361238636961320215258245647340057180066824131964602972270814007145233701721626846248478667759853336047577340408633056101747313552563312215264831364141569972401662020479654891778564199120344169878282810263279934318229260969976757627126395624284587794536186738861873170002055145374225169357244738256565303721001957979564533761068713632787321594004234936678875968358771171810580330808983642118873016555721111802210491705934586364436501691813322926316829554891069689769173915825397876759573419959773460051990014225233677721519588117353355308654855530867147848039067456112680901884541822059809769990714513130739209784931558951115749539529705820930108400533952084950609553392169649424984221847821330245301273168406542811916151116048511922568186537425784120360341999531391911286569137484225777803656755984717576386132002874884376333649118630394322334837470737156179666807024319509010931872625626736385489449498743071682426987241263725730800323240851814697747313073906026885339023284568520515658503719180870514088819501683887166340090607689806858911997657476143345592555045282432517151436469839655022223194084155774755364469666601196194237845316160648030416488509736004926126839793342979951658834132903733062593994339593274366946916357899586010628195745765998704781984348364044707864458752261352755795697515360324044873985523637431528796680230746519015852985582908110139133410726760220056065196926023449904270239497758711165835742013597541136635658188614774132893443685046850047732590830019825082601236986311827968028180820493199670950010997426424294042664826096389334631302087090751734833545320180579565415119381101419783167216086591899943410822884141254803177846046624581189769407252240266439323385899697404233877429584793321876305997129947525312877464151554641431761662339027900527868953986546151697701410532889010800248023596353202078164072108021166415707924821014712415098299444063902552139650447230355273320557431664635142452749243180280305348368685888901675063383753395356986563446458336560512133234341577065122265380660054952855877100755393778616300939663101748972602824200262029025953884707885557994802980829271700859364338744511597973801736376744366074853679492860978847398207409875335789252759616254862234421195512642043399180685589904518392087347127638442565574189829541622400705602153746130278719255654052634039876195195246603992966917548036253196209128985838465503745254260669255844557150275076285463897556207861176776265782821245552295700451442897459709883189857156231960010048109155491620453416230309869378016011429784760479757129849000748708307299040001505748823715190241029066481992541638242420357373496797129726009828892631663678089300742316205193288506967039438978670946386734708030803884615294111790252265860862720789215686779551553813870341523146133596495685708040392541668344805901699249644390408336070016964307963175728141619085669862929976291409744790781883927194399899766517136321104040590164656086885766940711276531682076596564655657848634129805791802855819528020209891430850157066011230078356759845079466320234330041386871021254643595826206088523440331955449489437086516065176899332494099733484184124648865709005778478540775597274480764934724316784202372902900960137381272944908913941635400579479320164806316695519384251959320761393366045370334312036449537703123712924827060937882202500424863467964353866464734202745053726778125932688889079551057160348157414428836629305430543297786324265246469490423721823216538844222799150167052507445964437734775472697856213289945599345259401631754062605716491284076770699279360380859450319715148510410047417656577815904905411324090675027150340850676978634963561643842922370248186690052863294712993562723594406600602098850634517396726621993596689151837679789832743908695899576109782423523280776111827519871160387199140004591643313736518918703727734988039230842401880895670318628662250025181261821924602066145936900463072451629202810292987621946624863373265724880094586486327298749701014687413611727077217636000625376750943897562456772860556995117706731952302979317380491527628934106085804605320949476212493711372125828060125119368870655479307210481061495862361164456221610696523917621076796142256852664679023622817616804969066226303213524565909426275791884569856814271410468440350766158330117120109826166657025180331264328974933997827778023455217085735704941907370049153711959999170371831724534028937600816917200309150974709673342679241116049783229674297228143395183429289244354331587120027896829246230619167743011470775817386600417054758533121957398522400783320944606542809908113730795170093559310383415610211514151455908653992421344034286366508208666337108132864302532076904065072961470254799855769075478644719999475632889669331117963770098689316589225972618683111217071771256177251437584501540009280612161335433665935250543695045977574284679212417088954599673056790197553349480526201421673086444091378025515028063741857895037673328243062052506152693646700585093660741472959414721111637239594204983481220954425325129027778644547502066107362528415946487701906261990866980206725565179142759650276863328149253724077151163121328922291159127847249738212306881751092234297837210792798353415424239485995546102715398444634812572346324222266550212174542853691581029247039011939235171016825918316496547411991184803577920171682365183359390446937139209791247057879623393237543427886342649813140340021328898511486197746121377566840778782783290675060052653308233796378342180312899508125762140557268262147823226903721134185808150018743022186956712600367045162577197997521474233520175864047884623420498440320364248477943860530673427446684584554436377710910000044330269166777463179727281277067523795766141093929399970630245439926623514356576078997157507335934773223185177212253723139033839491321015105300343966684868114997816629341955324023510025175770444334084258602742108490839320261629229728369890475140955022711034762247953690974395357016554474769860066810465861561483768067088362972301652825311852090943969057501406130458618811497927944957017907905859668777265655242069177096920773713405392087298716315385782844432552892501978943074155898663504275180214807031943984812515727960557602110880323123101477395692335046117377426416837788084090405693260362419308964866976468904070203567840767079469910125415131774428174784083317893828508916701525766803904587187314119276861465689258645471382729039392016837020334469884677248843076828775711583653216076258472754926115268157550604527309616063241865660251344317281687341608000446267942474182350695136555230816623136483197638385583679441742040160418293840909666818139464862173195825324842445870875053632780196479371506897251279885125377880371298950114741027366541347825867464993336061497711881017184300951060135601151731304071187126755868795238229549458022351354858318364912336658768965741092288682179835471509839915954940361650513333696960427807287254753583445876087469402688548536401858997805338983516276842947245498716073816557053121634515411236251629752987354605774604810518960124210256963093692124574600730804228662324016268891838098098247455121161087192201614366464521740849994631727759327457250376224693946592765318387794864626725456066809839650161177494723483383746798079968211232429424947509870623836077102674798844761619752176763671446161098450322410175161623417863115887715006693718901354278795596490655374481937490483188286214690841732134375110309024810071555924670382488177784016768732727384033090085108462675296450721210816329394032601645245050777632220306239873830527702209831497396603798691137359134997756863322302808783921487371153867347941184102902876557949964950563922469695531767025249177716045479905677158123243085937426050424472887019701124847948771033190801431335574947566106244801453681707080493805778449891420819616013420213361431007791290253734273925941203174905181626401017734356500832976431111549678209215407697947774637102004428248460517855223592415417933747045084973222764079963756303215727896346292111541713354254600107092830014754789623765634656327697028194054196350981906782564356525092469588476897901198176330884675101024100365748826921259783689185289431690308672832724118449651738047836052320092889419514988320419785980839947253428839822662916127457622105424587428263437608163143498057452747201645987541521361474023975300275302975387580037147032743768763314881965729574851880229984809343532119880244465854813375783621722127040936760497865565549206946525405360575198567227967003194500435886042550482206602303817677302943098852663572861683261391342037225676152300054166141584053354621042057640785366356117476714507567814925546974693687637186648782935619404300925557589799209523025085126685695280102436650974000263232169349554177045309527674205625189892301897082593416942402663872029623442297521042926136682421764844308289316110412003871334925964269034250790772074153548971764232963976458239725941624975824266193864097286287219605148359319621894625468937522234543642612348277840072189980589696527841227373943781281182982908917824434729294688586378490845445743680613798075003568213930953023586954650881973095722569644356309949928629637366876634832251095485226420394502363918559930287457182946273249216696739318806757315830863759178659546421341433407209309044905572871937124529832417276252928572604675530388948213964581112740607179776427366838436680382752227731763881853945712168849159437183748869031480858070405041467644958406921339104596951057558899772845181378407735498790959753144019452635518956248384929830062746130052187013500616145691594859878428644970866451880749710758582879483426118990463731207863234073863346308954527721275271994926394444533935906570737816841955365629452451209015654556796534366291471293491131408584553649822530062208627230875840256986042402821518579552421987344516413153459608259881224259948826235572662292769326838792800685538129638107823117315766286004470389529924252118987154608655888148203176418438723144749575296752093886422300341180165072900637303801018619296086751438885955922677239610584009024008955771783813426301429287710640484530840268100933382228301259373467003793145095813124628897293655568452128297933313068834624329618196914862855337747033607178302329334740522752918084007760318016947070268151486808744556678428352179766955263648369746538665417779045765335033362973112434564983552730838366927599622490066001240234468968031335246108225181026701636572840115025183191214914991994347451272703316036434571927400001202264081733476642102352108727946088492190694254812055175477151724615252156994579489842771325086789965555507028206858275667930944791962129596703271256076967665893066368643077607723991874352783946377937864634559334480763024770314286092497440636277164089108818286194765535470182706083218908010020270953984537571660986977342129980831861125446314048866973391297517674331157446143264457798177894905510698494350014095180237912794987778536429437803381664849020530464034345392533928689426136407735132144632259748899184316684290793376861090020130571911419225461680025083963136268635342328822825602543837734636308928617486969521190244318273654603601345876936146017176855936070628367671214121769872795628747467035576962689202147922937590089392776246485752235667033729316837043335171039523490511434975990554346530616168265031425742308050789818574356584670348172718291562856752006319850695371614552395927722582855096660415767002431866760627752590574905610320824933574239772369678784587377540818717175376472088190110108536536865214104868023166103437965575270770007912226916000610164682596473083863376833881945764180588744887233241125338424711847203866977519512334054752121272619244178583634196461805674319973547751070639656144797484930509452073282851271634983173055478310062052488148139804866370881517529178396768444793318202655009452566985838461222467899509443802031670673685187504194268060994747208598506151055061216589124681667655763814218598779774452710102043134357444820680873621574520625113839545782899450615157907098646489496962715020589281489684934677479395429563080671644319195608021530756508890949205710195143565703373362281144823995659450645749380985354168888666945759850018577035121649837507057691878111173072466612537990274616480989905889736798648229919714835043245295844251304553362685258003620645525317710117482817860977385776759285585878079507595144142595019059993472905231666183704087607227472404572682209993966924674776874292164559893789757044163162827697120166316218456175611604527386309626531374929020060094947049633801392636659939269353090008868859669237171256671366234794150424528779107291960908154948963924101445295921816327261131634582909353084322707362558388537146551438152684689419508006954222633747265378675015120511128024855837588203353285980134717972266206412987803816498921709289398395639844204790070695910876847419987810634599725482469533090797078396124963506785205503715732839991999300090499865803742280799787413112803221746782372054402975881175287117623213771378347918239557213833821017482249141870934012815120262494594756724726812837264303125485413110772516054368431845635070711691230513949470066829164627669030041177769364420253805562470024725507325497894305960727710126707526004991580212814906918445727914766510687697176547876855870020007127153174363572931543387953882645574318451829669160818243566295306065806807398085996953787960339371632055509666216314920541139021269053306467693148385837249851703423667533525866569662506282680978639752002607201538803237695078073681624743432687398849706700067074762590423719200172168252422873562494789941049886840373530058391417308653386767522848409379099670840770685925226164485802877135917168212330535891887405908137074370075560155966442584521310621759756597444982902504651710701108775161463798645930774176176218563260199956803706982446992201139069416495252313625077410000403746320004726963394468857891595453934143855711520519791710385975143036016318802755659843042364003111614821024012630262773335836642058786329376853524969050380513796223691647678115760816979618597999885512777061541208246543141671769987377426883787555724117074416928725302262141487865079386879657852634221400541590074294755401661284982477679693080141882525103744159128491690095489828356314867515940966380875486312116276031877535671181949386697306671154045361324741127686353932400754882241125180118559908961103821856357309209435220463129631833433846948059971601313562371922403349053405868827859345153715279904300197662087553965938525742167417949213179820052022312567772008970125345867457830792113412190819596940532910802051803962604042441702285293598097613022241507373662672697026987709224427930056570319905623844949652323011835001023424732609433150974498218627293088349532848026375749169225196554474416175606717313446344287617094700580004912473299474696948261138454977228521486776831183576958748633409858024583550419681367150404159687243650553979420074090896500342425391779505790308578105684610474411594127465179041882344211498409876143027050818792072448714233268434073491558271359890662756895813097420520388638271675073194694316872854171524798150677878974816848571309104090550565232275608440279636177281791005405845467195966480859744954894224238696435172283492896223269586374027087461501769272145017130694472299344855042223897666192328593974907451679051672824241401796507133808125330611765516665296109312237568869202558427943534119080669327134617982792759373284727417724140088943212317730759542706314614728616759506319124362346650114329877827948078699704188470507200023002848073449464660565979891996906044889661462208995981157057224128365716403928563043957624051274219341095589489035658469784570402716185582655680130004273522501171082804373009824562357507631116326217696229403691963690925035970704548254314196198104622935357361246046990905157188553880879924009415167205758280137953846422815702088873677218648169103152263643338495754023987530862536953304749254597960365741922556536060253718906497599530378094535594624564175541268641956328270139285157302895520269709964780597292968794156263682475900738274196114528946720472311272314090799121832392794624202783879731931418457962626285399762015347623167626525967425453196204058755939101483174373486804950695410805072392997317403806512077634509393785131662029780718304461694957043028626590054414660188440982245540719616679153917200489884068971445029536716348888226432205373660229868679510119186333880466564317909115638798112589097291430703260227231375373217827372524640409994907773025951188908060617159256847905773005016222769392378187911727159700977865645606858399524184420355483124205927323054224152986247779443154477894937293735098144267431932219305654623491951905528189345954698754170243767659412961320581240202792321565846501954533400168686785556165695175761669985460271691743761580708846199046371451266939722715306013708029691755507039997894784449271723001739126921616254603986010665397126166471065332151591395986178177345568778698351758078474870052964742447492750052054539921747757669438236431399754168160490712335484366643694298104207937913242909044724839965037906975494246876905826607193601872754910850140361265562811327035617998078697348157848805252756155860796913580884079085889500641925235845106442107063369796866423914876449202701450566573944231706441996661195683901294248901336110551188306140802545853782683015705493554263350035452643118456719048891921685227504604291309678315817644711944856079322775960299870505485428077902371667041347777309074703986899803760710136650206349898972629945072414642433966684721069612530424570390387105133672422384229926010801179840214739674745655717898138233252260054157790190641028273680081503855623355122584076937813271053438448232636007775026046241209698237340796072988985379068551052453041603410075995278808755636044308079411207238547219070063440641017266594934397304856022208265151899012082297896757367352963578235527256754522589341758966580746870185765027029252033611249390460823707675535541981672088063155640409824294865329590085118127770776587720444115192412151979641205514368844453866261725201407816729059729129050377504244067721872070209447203591665658698636146832134116985662533686579335061766618931024310475630929230125247026309850983684268025411386742509174833470847367122559715654270258567735737379439397499090036609541495881522409501202985836075366307070287068042901131620892983002978509774038747635479232393128960198636423252703622281437742137732312437243047137108238045297561573823034342268708830921829900225621479133147404815756409266700641054923250361753688055648013310886545372222075620009225383642307822722169258761883989056359225832409618230054991580650560025514419208626569758637836498442584290202209932476730097299453565550404478812959475891218658838513466466837583938819713125092311752213981263586944173439310476715859637431347132816286768363163806115206958397605298278879588533357342283974869405580911312898970171285307033575179222641937255809494929357351579353019554895474932413803677893222050341081376208738459016510807331553047274036424702985554117929105650013601406392262142886613653195979657675104521733511327067193638399758671714445163782677843592547614320198324645815915403101546008132492618991373452341754673092803714821987397814609127481262789994450618216232911259092670796957556808132852881626093063293257460526562193128208293320722396868225211212454381254238953011106288971810627007364126504194217424113479968481107049720937739300710475474812410628997243372507662004659923141474503262198669163625983250654230716230085126919567102766867498720335036605795699293326409306036764098294603639707332383029041788874610934041870222704001827244575766109403813851667723476755871738141446549126457466895615939090937012811202372664403157039316169472494663228145844654864547198649910648194247314733923997476371123473015806849340177586749707078497673302100017860677847317747763941764603337361516424228176543207684987551887329835610728663358347284185385990258947789581732713973251172676342205518539993946219360352841109291680204643815082947342179015252105439648808633460602218441382230761353848519047023750256525966804287502888446216687463165478790762351590461201751120900949649718369648684241249421571116598508174194133196616720596514772007729166023930988689013928703016567623757416816054651407633880722525144482836840041553342337979754555905213154068214551934817144905982503191379374324792618416897004153285021201169186649524067621893598779306843730479002571960847484838135183001587305190538371395164243121771194372892545111358725871839868134231822072483138227327520359157822385330579609904897097507902553466476906428291697828541465739651920143131049943065828204757353357078540801976437007190312414222317569064613958058181509319148534000736724585903393404399508098567106274875541470036441295823345909668963636929733607299631227813467711855211997899653166667793926736861773681360059478124711655790413366253207850287539384535266544268401395019470255145591494708353649104957792098819325436709642323928468034918434006546344925615111166517168488021332875686186283805509442149167019557912469269575769713179658166463844476725599273137746532830677016480089891628719925182910346115140598271795687755251526837347533459035817595409468967946305327095144278994574705143012187788058264274252586093480100089475056904536525150124387545582626552956046709094721059613656190349448601567374123437260046833723843566230342570748628875701097918265323867520774694405727816961483765578747393176391318181766630683049603662011629822296772899141770944807778981947993872940473965644128473023432049980265432584886573294387665231280758618736471414264964412189887638865095548513589573609760055451838322289297670896660955821736956471148374213954305493959761776957041748772721649458394522111887239466267398485905174040354927465272059151932307619325736861163316803921499945484642883537747340682626546994305354813188406944477518777087656692311921278825518165378083611844022934151882073006772322537541099339823402236293733376245220036757590263135177538070227387269020524841743943136764664418354983776945248926932366199498933556769092574660487163591636409367096630314042171675583248298845208596301844850870811271882729998235955884784378302378640172120487750775017381391190663881575904945998864453045197932693994363838333123648257030797538140549849464138017827166235403494895567356851740695672140140287652276720836313901081796716934245181007754828710309687858427241195674696387754633876309608718238063817111603783738026048026802998690842291017057173266595386734493401884768062647578322926667370005847230720636522767810992692227537968570013825962497059337321430583531334983013802413908728944579388208564457988844023301497473674349688276047044489371645673152733053825494437346076858415705664917983683757324553800310332287983668068555088950493807829441254211710421060165130944617764177896732779727829007945342569040535011192114947413862022033054234834078101087275048169674144281153557390270346023778490575575850513969732371562608413407103001003861430335806822315290271129515289975323606283823573209922706734008621769729983556776362173337560599736980724051668692369557055967087360317725290987879044907140866124765147132419871480697447036399958336545143468141752008465467408145540358684476579937994714717464718503200414704798049479273837908477407618949331414834088641892687489460538720064204699003860935518052137107215329252454729152954237521558236402931092317437413158854488649117992761144586831230051443503829070145320533476726369345306899823102025465042952379148835496730257109618508523635235836344444127803272331046057668685554895350803317099424765558694425364826920518972137425914011253586826474974371561092017436642694116823111655953894599209570378118561538524699326000415980825070814137628796207844825720231597035398550536074161953835238848596498717031956355249927423250728550836686745584809573357211510877569416330011636419686290123850729356450108160844142777525719242216631879194709139199872265273525708953490301693313186596174891225476850296615065329390778923297854462359094309143275504701946893308675942076751161480110535717060175506531338206990430945283412723354961674815023372336366670025437813430390883557570682896653455835545418193161589336141884085188956993498144265658420505934363968909592500448430290051919466766837850579182310375461669417997877459988640226763326192322642595289323374346893751978141865675481359985740330993438063542821920735141078123011581486362701743252116994208666654651204220237144033568886178041500256386710119853911897540839446361227459659362319648897757121571505468170368279748828660136487659417014391661954537157551955807914988454067908315724618263507443100414248917546058218012168259757769314216621083127471606669449548172101165768755899700569596557204272919740213189912475558058001474211877778612472119169741004924152435060333177377557667798448023256541280849087579811961250104219737082724053448112678691359734953840770485145476314669196183755133220725333067653781128648161303460098328011564033888895164098785578279939230691249878101466250004278489408177239174731471449773286285088021594230454086172005736861278384401882678212696223633401290700148645462382906104889855529659118784929663107393788521716928949174773715591449117688779842934261508500465648838042772540902715223810268373402016191963937014500940167348604815469320890561997319153699250573805790675369369061237989496406960388441293093421590879406892218852780234934517469347624589775568506197131916071371566104146696189315040019544539450143101945155719684991539838208325000797964585698081572501883636600470002271538283989468302930486832476568580485981459996959932664153805881182469531619749832381746489678339461707068554582999732657673953755737271313130836392343803150091385404512943227686714341270652762021728177357423498939826622243652394517644160632511604154512686508913577327652730530694535365843278797955233288906598368114233547202510847269090716954218162535879905191168685372235995235224340932437706902653530415186689183718484194978416904138609201577819620486503327134531340885020067131966386932022267687355911974185359280255535082659943224148080131169958494541078920503590726451322044200561584709168458941481961511557996056417137330458010577414165105061602521124421759447508566659868610627251003663534219141587318107833720583747297861766872122429724340040960927982962290807756813823540050297272748302521025548521716927007943436480044768315378140743962658961267210727779184592166311606247764887648354709286821859549087333600047756487968277346710855675823023830112798222674889978018623380401873978844604280757467854374010033828656051859992103334464304377837622308569754812996166610070817114928992819333676287067685438090968795419016744608581678977656364514988281441926205186090644564861347274592861714347584635474633979164966015041207815102988206117773318268145005860859382473942590708524828006070845212823581021842853144598391179670146337836266377539960382507656494244050656254055267648502342385901181742528040966483407162595578523723695173009919047507245461200231088969495289247803656768404350798021815145420778843431115292803171597350478198285208431432517077823144974806787219526391453690136118362961749926057604084575686421716296406911266805560409428054044329009007819138215887449768134828320137114324039900142429398401694111746744481169016287588463848569635828113424331677481185406983904651004194685547060009120792093282487321284494216683840706012108078943107506960766074693899166916725931066232041073331562421005923827421116754894980555357779662903632786843855265394587993932386982876389282233421177754087914598130955241805224413526241096243163628365232416597427588147765115567297442801639678448114247152078835576740631770785784455821096139293245030926625124448122732512960063014561265663992179654248355138624413955163511880288449431046525141096879751753207008221164044310825651741532600962499066510658309632072047773865835052158158859009826576956781173059835107200802152932618512576164892582130314248838500109112947384556697379204115130421217423954526203038221294564652244696856635202946670814525079553181940633744872952231549206827165629396431176268062718972842151855876318380239810661408312932408099903855170777190278747012965296169967530283267007179021340192486598919755508965994461971285205292075714759240931754653046937469342075311331861516691913904177987403438831250921461495457619840395939329522521872454303038222943348606656254177561062482355509695549562994329009427111663119132323982786153319051881332406290458933940287232510389535037119359793650244864156661690722967266640336284861009757540414608210119253332278159180836992002251773024810903573303109312842194510001401382453895126247107319116574932952485789609410066325487622590564648398148466430099582072677546351261860739944460447759485714831896031876022652586164980103295266856984275504490435440197370283011000887988668422690022862153483704202204417146138013930433380042535163212558691033479754582777532076684391423338995565786082948348160463077479077787255671594406804079972037257246822466777305827424773990664567473210823274494627162424924302591073449632240507307457823508804317002917704274581265435727068127173767466584422808096184858739468926402270137156029623956626180433064167919915815625003567924471792477928374292549892998134385440213550953097048846510795228853175450556051077215493770111243180411651230656840071500036418725790620720129077444928966121720600082619936079359340910253431668460315102507899796531790949477630854105715518864612941367808756414573145290882201281200857947137611979206014419215473836568613785972314430397562458366407010662733302082858375714309047907217208077383923853843881316585939940067185465257178821476729035107015280070305424678667582782175409834878193693046500639441525232211284920639464429190005666677983204424947390110371412476725354887162975878832980064282749583797530020100581373874728635983534408701810729068877924962979343413854659258258999461939534451010533913861909171237755808900217787700325669392733371167508183244667739974463470120931749700998303967617184365199357031868003049900504986636245168438251024435191549058868566285999890611887535037448923588751072942113417302428047422190288672341021374036553410837816507506744067086150751407973170068886430673057000052160541949329199796548938214114248684882315630600229670956929157708270074098838056010107145530440863000611015341423998866143628196986480593886174403839203293645542004897066851618196762153063237017216500114143540675036614000708116490245286971495098631171831741466727076839289475441043758080887726776070694560420052726399068868725070217765329670410798263739103966152371819735133808545674971858241034624142657572012528695223486357416165130219415263198150704534350555170594609717413261697999863259501162847312383489383077513179762337436304198337997599222151687820791154295526860052870673341027241685817045556031392569704358299178134158902912537631093856662337021844161580239660280553860862005255823661798633254846016999489960881659511911973856267972682889507713158914326336734313252516529068060722640185633371475764132675221443135796754937838002527861751286487091349095000227872998101840134544768894967910397649085264324721481046507597394210358286588541268814532586558146939721846694152682805418385656927253260162152487706077288798190790721511991341540813981134811235515137698882451993316947383299980100645738950190285116337000558447318539921037782130745690165283921277035856025004939598073087673533785691310533059807505334287219508663360987494916317710628772606249577424993728068668586499084074979378094260290170007058315385045614505832552898153297313435214793366713653085605976253861290506285012601465329916151235824760613683895830752373104821808064000451757160095630205750465871014305003876795703324871188324568557045414985328201936647383259818575578543370684960388156075862050642191000681845965827511927044018961884283305091769855261834648629925517546112478631455706748081487644776002029859716587041721345933429850464782708406043412055160194516765926982874248343182639809579743820852805435438587711529690073480189271289059584058179715241360515780316953978074179121636111025267056401070159936103898266510575556557663178663252498178604882978787768690018563376162808390439673928178450527192656024632906153740879217704110904206750048986036932853546646286368716044414029471322218050842978223670724894958062695256239533265480742701715061029851428751440471159436681102288087736035672477111835129306317769534838977428110428598139915229479169393456587937597596805145681305128024930022239237817024149417020845617394124159142045394353376923408617199903548702771166231153822939167502058779385445560142244894705494829811985389699741602788546283219862502138523786645407262253861794108881922890166408364441013874046797625057360694747231154478761175237439440406104888801408330201788357698614999291476528793407712342263854635996657770058060993884947169269101480011237189823769539062682781797726370176911267672498724364919354294060694387024687005909854535309457253455724215915946869659930610186335904148329094751981532125227056227675109336273974484701638180242178580313058273186038811837245513160431337359558420887474334819383545632499661179170300369317581019097009068817700836465939660681634112531335148058280002634823903087729189944388758047722871105355270922320396349964344921415147019332984706463796587738444862295012216804989756547668374243089650710923925620280551967164282102681743828842660683310845850233164046470010707281302474257065006932784869845274343858832752461077449847403011783066015584217067750616941697930667676282110411232692907930115306416674888282105453279008093146941557002574969087017326691293411617668905025968661526671356878563464816935754991929064070465428193841962850709149520289587092230781322035908074731797752963057979959462317449108851192408524178749218165717278194802503962991872622587381736365861127701341478168704821568816917086888614267585067394173092370641722259401385478984465999036771487307853055558725926550182260096504391098349932413259916306552980539122185866778274759501449322426737680552916839740291692422654830829371380901255152863594642041476160236569935746949567744005629745298001312250330153122200787358914753103301727707742193557252618027487623539323519553487675692259160639825452909010811008264274349267285173863576770255817359151355654366706946975453583785710238294684037609061610059344829103084828775921481980288279786106892293308837146969805131056880595750404369533627999803633441014465403130527011112405144862721415461723003825673113542439111646247241580524613988677054458776543147542596483660623666190751356451291324429375014205422807482082574569751548735010775605349261425422014836800757968936418816604897298514778180485364902474236153590027550331530922097975370682143113941691854047737352634864487784051225864382550029952936983071169169021688222408500140390638569425429464400861854802016296085642224814210486874750131467581784208228803725841601397835993458253701652520818676526047518862455608084773300768787186611846400142419081451331447577581113974799697086904521533069037409245881277751395791692456087253251966850293182557713254317252479657389755996701141523054029113662199865674024388121060629543636022212245981737895759299726342338095666221216956095490812737309456747392282431451117188029423589536934873304872562787028905938868270043101620061250399206210157134991111459493067611377114010956197656872325729192137961887693124396374593526509997674714695797050217719932809398907421810814806794216830925572591270232812320094321111853107550406183636994688044535665159643614472954864730248460885726243802172985041522190419927773404588374438327697376492722415187078384822001804438827160910199472527620582197503653180625539001860316771679809605085786083283897252673381652506337975450484918074127564509185295675088717321018852739655050108247322050250025803000113259612719482239358674224647006307695054733620052297017376026550919625682062724797626353905182786901339140144551598557727502568225816186583614205430106271903025706656148155027636457508726757690361804767218056952816949474857179279145619069031395164321901018341521115226547638051515925922887896234240738738377758631915227541268553775277745850926045912057882226341257636121796778718052137947400027306985751290734393234027764069184545534943664854509854512941690191219499475751989493765062709224751347728362847224544079035154779850019670133165660107144578821464852945393888426080608013870874737786202583728212045670015140065546815587964305012524362822489369861817370509014574168769708535063869150494497052642485763114010520316712438564681548597896582038680872688844585510606671938676368506010886170314894776843825881154582184075265514128460204512592708700996226981813456181461143828506622088002459992104327440664266727526107202433754759317659446566621322467639774703789089047206759624549845153055154643639264981951234896073941401634846949644634167519669500245278222339352726778831930480940205579535220097256678703595481705688556328423920861122083133954778604242966174382494580259793722441851402101885224901947838225456653197858394012335974656612415075252155634599663502161016045336919608630938707502108651505462370195458564466477557772599320343749086360699983771447901803856136346023255774113345000328697396828853891796191016991137048223534897252950099252802846829784517846525655224683727731496278085799877448855082369237454338961202944916076099601621303834647173042731443931283838576533511486572468744944713436592617570515337219712482101938910805888458679576352567704123778824989366122944268583788919865578634843138045828493106850460336478837632938634882571751368315526761171417643034421021007709725799250506564220104071798331299639500038923618017975205874710923307836289551648153139773612972115853976457298927331492044009271088993234675788322884382014711369160713469598164807531838795637195521909089275148243769617232827762797184536883408646470425495652117463057090026789721895293099493703900327310028274459618029567569056882177054533747912770709721791314055845335104598628270622453795198928577122510493660444907325097324652249840010768499268372461502350302069784988116157047841941129341034868409955233685605520363398130398011707910382096248915693733046235395458749317497563519213431356176697869252284289847023521514625963494260478786777423019682644079120895032514351820365308695987686630009032484905553053814161480637944767509983525555175287373568172677585015989795314150584270270036758556473199424367630370641492212960040762575863789183008769277207496793439293356262685251291671224091454861052486269216022285198119501288348386918086786539650623131053592057981523596825164600089416141773493376581056880511728188226794260943223441046723701096144337077401884158402348902473441638341240804415922892002159795763149780235314161942940240223122998182828044780851275838307209757583888691885915317521198587932656964295467179837567981975116275477324787228903513636327061773422724128956212122669095392294439143103096524082328383138936528679212667033213223523202933289183484224193999298955882626009367803387161338272733582910824395859764614858230380225537826588722315062615149623539077829352369053127368581563891516119627143630778855978123717863813302020233151510968697165277751458387618919056079595995463502070969743979348475276246884707166146660652762995613813965691125343036687274131960917080471857313552496642331588506155512398444614668165453948531845435050358176932088485371512067576198304030076739249794767480619620700046766950135612774050735567515033155250512356061479088338261311567990756132612034381549254183221927993038267334117024485440575472862091541988517379491893843320476997435070636420299131072718540299846656410016399074631310542537189893399814054520949747427107133436840006302939858390133891817409362632926104963381556071041810590481744365640730240275045166457191227746311029689248164459780644566193156253393949166903467705693373079427544846013683092737655802241222825359751273317713058509218588970046940807865095993972188266699981252706884722268032532263264168525295811849369015572015307202920183520006625297455691155333755021971074228190068106087588859688332279579437898488085855308518215409242704838017600875483602920984146990622508573652292655083563633189424630185826297338436323117751100402841940938805243454517768269076469821173109297662974748112493029528667948385370732906541074991027233543248719270738375032870725072481531811541424615597136906404598001101358745572348085366891012237989009250807346468549492861418997973246229863451915352601706503121763729937408614947803981704798528816720353990357731512781750725735018926688834286147856390955029221401688335216309954830048529603335893045925969135924198076266082876533037008056185913285226792397247263175349469405765693347042046387951686187750968502090014546558239419642152996924907830829983886432038568109494709804125596100691650022623950057660236305870922173940843588598452136318184878435635689830145169310869881167695047040517061643416923548198235425914261994171887525989362557313206515029388666127676772881441125853782110890598625455246384145012182715070101841234157148140980946540306965243817519744598976663367849642027545572015218336349828468753184119631578105798913810592920809860719991393359079626044829137270587981478780160720041302363797056483139715639013241392749386693568582438386623144084328301262661061281016916136526513283025775889820686995664469503443842130386114408684331227860464601115288344281456664352258673106092627589110778021201336969004978548045666186516993940023629999214243771136507668696694539721753729584641570615109145177802128674414283176171411279755391512330752999261908658117388958103773024194559479166636033228938292568426197611256063580740334147251766980062893309179016074881577236875786366003209761134947483562153910815969502515331585553220893102491632516470611756035984705362035291711459808244935385331671495749716626801064720734162773444865293074524093397585839198750230681287304413195659550062948754917604825812014537033737722551694030708555466041297775627127677092445770315027245150453638684475392521374975196979114738397676339531857019278467955439869506209539211072226347696847302884680314218496962962144253236115463236499401655459974106829553152221583935343184265948571580845194604070317424107497957253626935420870106437800914193311888649685917411080311870246849012302111848706159014554955094194162079540833082446092603805281662326808996172601151998423289672117899204575532066580241582097959626971200333142589795286274742148189553337540976461179157853497211351574804200532958658875486616776047298542501302914756358402453677993814724887206531686670923075613543181218322028585653020198991571138082314983754928729809088135763036974791646348396067927945926752284444104309848191015589185239083784981042185577942646039067129588670124193230036866091612959400636524512711747098095838326252604475078156674274891403997229089065893604963846735122630446686438341680083517103696847831396140585189351230880265959512693039970445410094719132395295055741030866460936069859017623626173480155305558350619685811068574729517975254109564508940606570397052225052969610315811916703874102831974945986801274892621054735103072461041394479928232088465904251279633151582548706216235544541373693311556129118787995687315308554875576664204697320783752009197641594284543665687212276799283620101487419204260797372101592585935204528479369961635116382027559462824088417035016433107380951022316203179234741161686940419866178990838313473460247633953138866818929631147162961689374790962405567274253232644750108361694048890337384813488607157338612446887838713248531884443163371989765049087223080658884751156028733432216109258104525247442958320168124990009405242120356941772031841693235101079659121557947600500909295578428312009876334410668524508065433223651642102974440509415202216965053046659964792247147645061293312268821441256859956195567566883913411259719203437093311172011295540820973425007266326192334214013569842803243416686718066198902026764297351946319323203927323093192221986356104960602080065656548309329342930192239038077072250461660462075379129901721948643535669353569227007846035755770643854463892036390284191113217466099482586768554941070317088975286986699497359069832379803855578388691192874442837081237408030829004957252611802172582146192146020803515845643308466903820148672268102268037927133338319893666362494272027151878398740226971520760066466801573730647226064220340402968851841138751791377456512713807941985612990580297888118258690072947948362349051554072642179909075125457739747700537312530576795430073163276394662394437172233966115930922063185270970684305159180484604606243779468585566670540886444155419885413829228188794693150281603952803077397893709187218469532402959303319648360423431688455893531179217959750109068437165095187537048183414746167777570201153936582993043699221486272309386221567971260672963064258269985586855897721570597581979664211924290617300056139713544367050107270657656527312826243627544717665092545996037214620413506699675897796617432710794212605823490062368369392263601360135326188298645073589408289879871211486062251585228334152133442713530663051514050930620527037254227264476576884881476731339838514290788721581387565906149996417267150991931720377270665651492257520864088667138626924025551951567993005542964029280546918729452161976668800901111145609791866225553809670893010268201654581273221988361893545291316323468644006302491853254288454546603374727678064413121312466773365429554241540326267933778944419439354295360592299945752735674422778034457760626177428897997799717799485911926302324324638278786162373743709881346300901200053003026816905293257022769159556509232253953082989772516786338512449016556823170849468086809719015366955140159299744022839043360283254707974102119509557159013358909373760907422642444355010594961405033480887159109915579741215272451987442223310503573151057832091438154437374104598777835113729325416172419254522013265266510651368103532742964412216003603449571137051788973541125758718618332648099993669968189070944687181059656735238734193391323029567680217622849514983223711342385449771925145688028339873079974793740922794159422621079046907577482045523646681184418252982305637582808588867554506358841962225322688372258368664114922020548137084600916014098068728335455551821005699776641023789579102901852500062402997978263809972506715608291645101256555862153848667306586628573514773893363478278067959650403064785197599987383671187932189721992087702952828558852117009716573615296966713240117745744606913529058578867440109508645910490949521108538580389792713769033847180414509270363426322174934629784303182338784814389949225603713475467455004246913643875362448255819984626309654405093540090086440091393859898724202532074194737968089750486764520087236877800880363425305234951298682467970130952190092843554395749441489160472822373765818987807051344571504979671857646256055820774969173050863122388838254741892996486019794010523610006980662047328792970604608348546158348672223255164138148755784049497236657579926111675767574602566270334044724271501353221888059513337014337913180040992150006987446859073398130798165859241521426455405873565036941043685101340791873025744245271868543512728607073345730282573787132759837972139074144348016157523909758123632582084888306444071416264018506741120422483481986300841131822487373907903213018364068466130388887085819164037527777911672845443201236714709201770829102846378104223263938738995039711090066702690606098883443798615633490693590877149532443704340104783544862082062695724121474175388173508585938588390546573695131587893508286567899865982692600588784914434558021406550260748858510886952772670694036717309057635544945186739030763056331251840385380284098548629512507387173857300133029928716653988000508993179937792577304425081487300367967090212074858760926557993648636241935683367743010400042863846683248745516288993120822522307249084504771065146937653483739601684560208115312355337348850173941992196758629170384734554482243978122783543574259462844726789455029037007372758081791696456726442430066110804677535636632381834513820001377193123964079376556698659247529227558438787786735025154526677500580899742336230756828276597742700027483102068707991774437907578954845000045492998367105609886566638788213733076393407265867392295912909948598401495693709914132800158463975449379924025114141027387519151923916942701977163350201983378177736945185690240365799702052348910121465544710834173181235755073779933676375375901044554673354224366167571458764948301713268082613229961235084293470692106505586550955791752366247555905458607002757284881984759267012843817817498512085996112527513616552064628738853357192645108072112699769028119198744552153113675311381622081749771260484902753649678534396542371661115450222365709130059792896921166841781194983245432121356895307208447374298324388614012205434795908559940115091249364696689685825974792896027687775117609033143812676499335557605090642816502391302650060753464411536297479027583701781501575146331305315065373938975671149911234606867968304607679534868149394852047244585724965444246126064765593577513316328870623922009759302920678802460851320160337398538742378632116758542164924457797222045978498834459860756516804981081905011651706758669690025065933930783336526404842069517363093578878384069792366412508932532669828787058240094929276872793071945096335472493094904262515412932801422126626678772724006482918123471558825995729806947858808950920641057006707940772179134679378968561710432290229270776975747987213904181414419179298198487612738305823618219212331300199701663485769692513790348424681295545787221236177283550653103760914643769116834146020335068278699398001850840109325485482912386375928823999793973511779442723437829983080224348875058708890488081940121456273623291794550615054475152520365598004237347986786126682453450534456865231746715918902652635232711731823478679847717936725623361968769626530342255884406565906975798877851322625477116619051849119907543240939069018843581572781558306260771176051672746117516680505425883253107393530800244955325350855222293472521167255856350266201375817215557414162016504403267082088506629288254640523482357465565577282624583318509552826862105248612240871652500623530372057955482380387413727697764015638817125212417994913811236743039449293199415992204210652691894383592783586423264918804560645988832359744961417522097152694664844635313792955437961641766539154933992795400831202486099838726739923161676656736390183906072786348673296375228627454269585617675662056549136514701243313110787540787569199193763591805917231853370090120665077209023688053596564506939710671900579138691466560467005472898458443414656046502396405415732231063104386052307263078968221277794375961446559220357432890478430052777062870927917632403210229986650032493394289412839121350021167874398566806438992065154543899838397039264147091718143191889117068026805758360292098492618940937500743842353784608558827620406010748918701520904607110423765757556018635532093771533430543082744036060668234944159552780898171112797403051414019061125739934525057445562389236769089704726211714720129990993976317347813875328334959673551489005396720576556910215712346276065056970733437307383257612267646456147686158294220434133153408528054002860145001853390473048248882963585003038989905311282124797932299793468592076557395340723881828212466034110168567428333821203879948286530637629307912158651021692095182915960233156970217532655313822191369159014809072542126588175344850606955726115387167711325262760803510081581894825575472051359136614174063604942711659889761790928201407210059414544927343320759619962300420906963712741495979762456499497741045121259366238309320734268429473286255531556571697227961487232424242615066736981316320576981929733487553943149609200712358708615539760714365360792064075139937167505998652530110759474571032741299002179006054506249600239346114243787210585913595050950070656688093550137698341781685238744098841360938635069919848370109193363659770107080802272533647443893435975827783008600743622362152764326906480169445168423692485771251368995707470863899668479677780924946304494692751871931473641462155201230128870435330004540587203719442439837813625006086930988415572505143098355025275272515212911527248269882702137280668127574260590013150149740639151005763169263713169924209537053957252452216930613099803917852704459899547624313131382996977926407074648857369576888347300786320294099923794799274026354564028873560485147216224251511770036666718122683065069254773637965037998083468461277552968092451741670260172723449643071037638450093075040788929779121056693902741558037154565872417919366095338594960058434685167653019259364026616408283223769443489768756250238506173229315446790584386726106319527283915933448338422920225274542723380904965100651707306998781177721416922483361663438047418054147382417627471925405339708196394069740928284115041787002073958069910025447168855221946777511643653115713061696095425006403536413004522061640743657092039671658940838250640086259724645484652598027288781692611183849851360323737797019426986451892344586886366661594114702520518026375087087446598826341457623303302796094933952827746612606728253929007165677915032734278635299958274414344302790476766442501329860756192822048642710566687191481887159005718897090354199190761907160874411175732147541440504877601574458457922070892166838520248246944680685681274351193677935748714069695770070321940789469808223948954943754361555228657003333184724186421018574303937565765738874893403524539845212290003690484778998689404026478673512042784026698341095349512735122937434242236062461770400024616431176459724730966582887012324399917307850478302789869397376960895886297179637273851091622840986835464138053412129144966641271150693649673589176847174094375863601171990276365202965061836870058928999807581311833561001979633607873591154856681675402316444526255254714108393377570352535946414245800048948467223881143325189812631240270953885705211166304043925823586035601160710207743453281804634554338221667273624495921126753696762294817568032637217828428834568688355055100013083868185312152777394537398176381800278139658488462553400406401868261074079541676053170114635406565205275880586352770312922129788874574694632231139764022537137401779435494879766372749477358697398337281453911099952227823649867276090441368397801913412800819827385784343874624663153448050741038530798705861884018578241386702310149956634275259906565674209507384740386920880662667356563848161911988241908825185678041008744042456333225450923146716974458096610487430018841089997612398481499733610709927290685704654638713019979078586308157781573621592408702279144794594524458299990144201421228556013333958394458669422777241652659150709162692522242678950479565976260947464850618158031391547004596970447276354972056048877634867369881721656715617175496707228264013159031674484054246767316641106268622073791881298701973671602636999183118759945163477714797562022217756362082699357917836227624974184712238758000388281056588200545606461511913430480349570404973283984094701446581349962097602296691952624967555169181957325749547278738975768590438341464417923946317903641253395666496987897589702480629444231704626608445646364875443018275177607190341843513636376680428281155628009043040162782106194276055783510695987196997977462480023955395071601576521313004754834103201704769394871915468007881780526717264697799353678321237603812189515142237535997307454343195474308580280264609894249451171182311271384476459172011274591226939866001183862213344508319994010406096789606587147716624270810826674528720464066775946790639650734993517335068810242639923045138238225340766456386372540975671739574360516661972084049252734366822534450861552121186230587849462588124488699904090384100731822997938656022497926605568398739681232621917869259627697896808951412355370902265537370425900384030682459413665455256297180433059858638548093955750560487243275099581839728751664605415449840089990340360579497023511535151324826342656707780972295324532777941439453806192475044319039153536912153340053251712103568573891729318900964061697148795450671012581865754022503437199916860255427968742733451659517965557389479770610998168796945546564441695781685300497016446485106107589311621328943246031158299239390832454647528322618443084461064822709929309201845250923160417578611699605726109028155142515849629823257225194408454220137498181262774889537137639364591718874829872030324068946024054099571112784528093998208127345838488384228107085453136287548229307431137332524388142748778353967926773676382065258115863274556116772911490473758129743649707070690794498885973600723005222839068096262909489568919906903521440583816203848832990931685893175985821570190233784198632495938023717281877118271395766666982525080747844235728093065271182599821212790235573410235503842166241276695825115659383428851372352546810089410288010757706991249193015834969488668325570236582223324809288931476347814280207154213224918532758524934473780908010033300053095930413146391246428797513768837755225217022416306614356552632464334286890121479567291472405197337233404530265726587496292246087631492251031919263898278516771077567030743705432444708677614465869728515035651800579030807805693471196818710686833122175414860964484538494126507605291339469871499758601494765949918195877115878425213478704162294448842736259455592005576550116783395684902709875489367597927342356666288352597637613228999808944564105398819463049982565731376640608564251571680471821967186526592740082496194373587261411685015401281401255597033067756239252499258760804018160426474055435471506339207522193279083077629409557190468546304467600047872624851958082597015790008218367882945992024555939921102606434684627955928604692532894164558144136401499948068893678559906743325080525450304418604913331373698479922802701065836845271327811292796324861143777811894381878965816193614473209142496972413649363601782652408651072130590418112397821888073709329268507242352250484834616851664931509787755824238589757471867324587926527579757664072345615977428507574527566577494182255796087076305731753975764695452272601130103345813806988549054889895542840725401308240696230457131417208865882741393890595184471533047182071839095691969783753587847894528885990518114857080618155160431554713584660076850004173235625355432134483852470318070787317514431991251514824772197085983123219779582669601276950873353717149243775111967765421108494889773525615957362204283194447977321204594046499909422600082376248559813681115454279313031304322727709371966337356936821990999984654506722375861555532255784131224773408705176818993684930188836686342200375845583987073905945618226221153596038190771314396657743477343848136693383556826332546915338921111972258386374114949136802339750201014526594497417564176136297628620441285782759534044080373915813768484876635465748311874506297205858006695698309370149767272771412322706203757458035612527895044915073351315925283959458912587743743378993172341726434946677574453236606408259796806296784493252712632223492668910222125851126740636407818287505231590909703319080913107619684630510903463748635965609478437090964330866390612279155013303009506826104916004146264707251071414382371759671963243515486262431198769449355067053688556962969048276042758501674750625653154633030893167305581746482581704382673097196409252716954733968984176417382638394179106622351591405153616988717305071454637102733570044434659634512549213757661011440857488153073446148822176332995672097685501468238242247526575986958751018308725737791712239946381701459113811874201390132606920816763979035905587968176133882794273749741642517540899593036776345357531576195125083573800724360057431458810176394956518056241454882784126703850565467015647264707447006812564978981649906729450244722288950281751479291519113464820999054691022363150118628725334190075115264857270517996972657117817782585925193750723425073053436208585904091868356275371389596639500678969573439841836161513997333943584730414455807196918002749615607292971027414129687411772763675899901012856480693859748850597613755623726707165545679026382969628665244178804614491463959074486732839007175099311072475372024529684741707991811564548759649635602497095667220408055315829448208220173413724919348207483679787284647126180187015247346513826608176459377721822403277203570375337587571311167159614567509790614637424216877712238715890358681115643792782432106364664456167583357593809448766704816621798872653502825096197605533405671348950004601477562410676165987500681516687557272412587507434989517393813585592642323564344662170730555235442189524018718983351855845982978809587584815708466497705176115968181328055931297759422990401862622316193049489567210343914977966571908464456988281430370033773256063048355282964408771215510963315589098350460959085976621448186512782422494056733291436895668725936666354666259614527191910455901426778052975316746995183435417437417378183841051819381535409385220577272242890674118978291822717366036017422691238834372414300599001302639671645257396987587937126679451278485674208270937920519576251459341595696490641234304685064453471901360125161510683222062182912614463225342972436562294003221942581885936853850666511356250510465811777391893366980622373356830401284610920902799407352913641195759425405229620173157169197258669153828480269795148710470310966500044383123508589822423232922138054369954618006476781350711893477288119695289205158343651963990985673948260260922238562655934811805115669231528051697961762327963823235639453387987981155862672613958564084332270008868517216058398827709900990565665431261761880841436983269986746000218281957611235121560559123028097073371875757694054664373564876465706397990722983531532177461059021226299581460678744337926979871580400526356946753663845958241750558660047992051769252180528409377854946781201664996044388082613057547622846658095187590714571467254213868821445884343661505123601782020262808398672657551754495872682886758208955279716876200601534135424119502403463166185408842001007744854562129079667383925037916282203188805380871571634045949416087095791352103624713605780425212053003416460191538807046872967707955510135468694418174751356474056920473691390221700477735051441140621532608682761109171507049896876882380628716810125051777198059098465978093966784685379710580514245479942215244782765895776759364646947312046013244401532656743718616417026327705175100247455521367668755288831381901722010304921948928750565294918497048138033882493249812212342937447568500226664874287204729352593995754520413428992585675268007411906189369834735122082793926179463310142178269610181299223462859288525664629422614864177450205596623372997243264939827620702429415507279842535736491649998070259885787186279236493023903686005892639851232094196320386108103535328560896021004716154004916504898187613477024464017949028196465546875524191072358756899376420008591999921162302840351993988577598099998585913085279555627172089607311998946394706207642261416096640769300188404348424622974800362513911030468745235364954628656454507062694408968938935779960899665974036095898097823055674404072132342240207167528345368344105116161920140339137084924568949936286230595316178636290502958241276620609415757048993511374914359369210078437296680012770981862216362554960263483139937015910930886233423308789319695995605951692486609809306629488500901192490749897438653357737013526593076058276264052407222154387026786794962798364927421963834186477486845308321011086713137845528527707224370974157215939519445019839176807460956714211118224385058211966859395369418456398729450698993722083151917528958512904435176836633559515006345060264705776212329651391827245835026866621560851721663395329727574831951997007681635130169102868247795089467593992903163431192759347152065199856773832323952693165630443239944105665796562899405233390201750096871509900621387745132066173739663340212526484850465189543741863315431509671479004741949201949732780814814711896880555892907386213421061170786787292467946999881015018532086945990971964654884658126306374904024499570320372144490064874371549193565045974272070781022276265411580489917941347792987493487627668712809071204575700053133001495859736617081188464631288804392880210761508468718885057217380840773643630751093409422105690976778921028093234461182949370072902958330854039496119007115729981316956920575334370829276706462939047186986064738947385300346784464498557635729562850418814803504827235279889660293183770379160555862860345434080073866387670669825916262899322202348678569652189728465990284411291784545583994421826121863645914919736425104635838485910411956210817433182610080383704065901344625843825342967882554389028848512325394194540323313617494252075637536015062682338049707914451741076163775618395979293852790961638109555955469092985887044472456599174353972341910635188897025886384247053133117113385596520798783528197399159403695537981830971821844284135313968095186204983155739257799655144052406135108349668217619623408244615565604619741553668011536072936868841170521245382393348333858622925345691890184599558838669238960349665821072102776472475203774890254000371213409344123911067060350960146320548567458301176729651662589474226683849296824207801253954866126109431768593304766919225586931387703861343545943571075731067423708247057924100361025550116332281050792308441103500914858880102704033947507863372598974186139295486726077373193735740981539444032775266179310583211946626945986983891575924980645179506475007105860395613715019145183482179402141196510674010706729584026178552064568089983671385927243145997352125274699297050974943882231991459814953440827340142718711113767475537572477490693257578405431607827777313757640023612863576363721265735221077893342854368260353271783183317900684933886469960756091746227838622992204862904722869779795242074381830579287506004453417521829592867068029472601852439181154470471056745958976034317562876523833434421942755988186105885823706405580034341067883332965371921761644950986293855873077093552264188514764216063964766639737537832104806512618092333963466296999835467857230701310255811925972493304700750388173466157199478655985123304567208801954215609170912001481522956991726475878939140812941433259384790922859403388630445060504463800182044180612262518922742939218881908882897973820678047548206625148974608763894644416425554992321410329695667748167919220755863594491077225301758178194406225682797651727347398954471776843544229826392025315743020309619409236778569789150335307984244871979000196084254420227709879302829814143577487399899173471767128662617397613264558097472835602048826817807507008433158595457667564631369856182626704791807665326747764767199168111685459177092622710408843396967616391797036888434275150729643308223579225642330967748372060498140069965667329629421255913190975968871227387314792519149691747467454617876160659564218090443655993331554875555769911241095805814852295903328333717250650188301799989146282461715891339135156053292105961186571459069400265654097782258183033673266530058714856697580666834402614951221693111369075978098477926702753064208247693640640431619544086394120167247786645210439856797809300059304852242331896298904715335511792776524105887423682709973948452843977126691740996165704446841438672717082962150729103640620517674046753984452258080904918983370558915459642263198753313631348449189613022242842348241507387909380003282232408415367178120357660337558113046746944318818836358465526371633553750742399673379746259982587840809651117885946779386101378061226050996482715662162861847044080406421124184510978284298580269405161447740235095214281328980569962793133952158500454000629928958595411401823952465345831842176584542308636852964113362795715367473798035910718641117807644056001248027976737094684336669517190920094820746009087213849511152623386940786721541364507299905453872680049052965066340203211270284439827392169524608734593167837407181288690320057129866640527573708455505419263779474386421177488798857895852455616152817456176265040595809836201898937406091009978675593899469533752592197004464900457831312308466276554645836108148758900532273737648956890193398772510171913473669565112816075493586557283662623118321456493319380889456323396178903816403844954407319276159702345635770579762175889773630353622682797853046688841955335686429834474099190744543636113151160887386509043469283036790299208109528967752028545379749333490874922501434804262547936772292756856391526699465262470964344138154676953200270209658910585565491653698223672255754020549495608920088675035057277002149616754109479597433287017420548034244641606623458323673785264940429967052530497292446755005030617133949983448409637081184837285449486316339503957888014796577792776808658101825373356080085724579137367569271026926424699319188553238428224563799697415328244813238726572175739883129929438661636202398997233088957071753472176369226507366557243640922822748125449332787461143631706994321425259262450455885694023587013930147564263521342952121835318318502626748490581617439757184993996414172588054474513192694697781595276499637708264105133475450961939552279726636273477770209515101249458495932853507031130032581504387374620901937834972637947989230604980150402187359212238676261574833053844658573363217821883823335833747289463385371609411919898168780095102678673053980196813451788359413603062755262573916989438814859172454574035669707107311601990974702813800182189517391277900154058550090042609241241801306649324917306029325694400744177462064260191619249584687514084881076203364408932766886348693224226437236452259643613252200941572572406086017708794097465165403620968607837899996496332712458047552608586756424720064311138709952286575947399335550343568158434701562173675341881583213470056929936948421586413732394565046990793214998772746728976786597411542728448521637343588740518497454571866845682985724149067816474700938492567780691376415917198013597016333892407462271555356773150022324158699899537199680396861699864899537412794102792403017318652839931693815349386838853072743481150134867487370288025468138809132474005382549961015273134730871978488692513547506401313276405266949199620118397157758279115261712460218951307430233383033247640692079857936644573687194448833820093936127293650598343223351563799199404662752874535188074191065098731936730599510158136307565084136157474819301738620519087191900092530185912769760580661769137652060062706463885038843489258348331965901749049318397839991709496655983257631159143440834726819415327856943529133567312020728929621496210478202028330513323542332191461913286249472992620616111284394741500158748485177164586348526431339430994954713356422980852397232567803754614465855241224524994721042683956724725806526481489014239210465422101719861721747280486381643006900111609653649902558389264000423940077952505964498204428568901042093165373902160907348865312596510608904620351011877917718165083870487084756376667093467580797856425969068459517915974783864209391888949242019383906577374882932896767237840203115436197313344792354027050371008615259054854092422027025243394373535317191093714370900548789896778019369053042937594060984462123747552743614884089211428210615359159580879100821482028961037023057611910609058286801170609186405071305609601139854353436889977898439512071464374662659597983578431690227496678865935867730969194619653501894475113664156142670159565145574245930948570906190188563073763684041264928241354587137774198379686177347263140443774021889879356139838806828522591328464358849454114570719402825484787966723399086149343205848147841182660062148162982766751075784257376593304979948057985624036644194766490109067236153289155017490203873517182303850111635475389703989164969768120061679564610744254502265373448424252221714178526380440260114294117270977361038765815414131752864895242323019031036459049603551067134320503633079583730424377052492369162989613773205585480203878052246690026409371794012023299024099136095107102762461894194592678469843615910821133759715774731907786457714329369046022082457011703144382294613328969781560023929722314320824236213561521883516839841842214267352113868537960539878176992690696052521518917095669879366523747296718780869522248540669291391122333920653695412319364148674666583158919584913320812585564697920781940217591809209691616544266073283151280918097044215483605157346037640035947277249044853774130153496462298674378989104603435844780024131469866525300569550434628695478423554983913036548145259522336563194513730524214865252262886353047702938000230140682580982551031118251673071986203530655609259250068518242221312603046532144408690325140584587355642225761940097950279604216161770947147657337337601446820008700165241269505175114066901526266597162231575608039232078517468409918680840030008833873890462131630821208934333173929784157778987342405176678363449470703929340410661410075277491957913922643233325401571575949137161340053208474332115580513824349223181805257631603322582133568509100452625801335527857099919449920026093820598249723195722736679050509621118789840464975020872576884862555706858586468657449685578649974987287532235354459831778733624112830304257033148661958513263140474861519180674829956418188274187696384447715084080663744930136914825050854254713521765328064809370544754278378076507189716532854665522907742465713057187415216059156958446109556368207439024234196088673358118106850771741135590263460798997588829784432186692465695143608253488606203958646589822511309780137603088334182303295547927442740534216817273688651057635001911816127712429632192832206758991752814855850649895390325677488104968096770640584664191136354043224271682192645845486175140148687759427034731309811758226216103198807215555957185144134804709975953097986103952552032641242020953923420838355454464453879514342713547386857024342367604858853667250122401899421143820145210945207651507251901846456652982616282125500930107838833406116720478878962544923784236808623674808962050365089318415014301965587181972808413312056245887742607705668087571874433981893386370128422029710786950908188307689603531887513192431949906387717352903840400768818949281414436816811194859411930913855354736202149981678545737613388339986796614206364608532735754824733088622794909683782480117580386366960331646053580921329851136103534396663841037564196676568784359540372989709763901115648085762437828872747004320050755298820569532722099399805040474668932602132572042286983034798615560118157137637752591853538120873906073094009393345059372406296920303443307782532925380386217205192808932634203276828938851586599670720693094660172629264053230024076094718653044807094240108082198962180991113235181867711866246552648614142321656530242178470502054075569648602040493361247348893770085977919573567594907718754571792326991025032097725102047223410388894988740182274824621016842880462185946965930973049014229018516059104253001412709297650374527551160018321159908151288782288097588671173716180358384216771563454803790064657626017182706509807575900274631684315254553130289477724579978478403463850862524940443008565103120183932023258733703653372797096223820180810426849154970636072570400121644081138714513421293082289391478664556992846078680930814006209380897249531855473706422648083692348619334177786542495514742858391552806192094732242266469870290927707573885096893278234093174205020527669839716663858178640855673054148523954787268074530323648112228121164988853268394524792524255754260564715704322776401474456206431929750432119305398146622218561854534809317883422196131791567656336964208475145381631807863686321379723419302797029203002189496266481874318363863898794871272255830164989313130575307301903083912618340038105315660188848666906333304862089913977763001389116327946465198094306818687691044707593292917772599841184471188104488452339145423287335857814910182849266846093344349648224694745795241268538003873353960194881957867971343826331286144667165218081347212864482186175811419692010526993449359903746241955716595689384404465637871670826342579098535212944149772838629440828322146256149171315974157434557848028033350064945797823607195486705833015643549790475775915585488737017385176646465113883823689865097194369734511420128272317175625325878725549354021659208415961018495235930355822944397735959834904208998880222029255703702373041634729565234787351009433859440779650008797591855752100671586042823886790944163308588807301753719181515401037228354160189617334144926796555497505383492833855692540497777611331075848617141121331342638923654290139697393117116398555850538129111195458916013268895945927169218279880314204348383498478187723174556001566697493356591060839812946015771571864005340236222727793347873193522851844971854747515459991316473531875805598355326376949585818675494540374024093776909301746331775973884311247645045497440172294613023466027232064741319058771158475105451391640573359333830173775843793247812003503120799005913151476873824584413589783319699180569579277101018626516944368972034134746345334451165085349844264929469786083110349479208084239487402282704030687321513512051631070278983551190655342434111814407367228321684240965077758845570682300978471579447286652323120582770073354873253740428284701370269544693174440361931054626338382603330537796095800136344213823770169233101944787423897524163316283075581448335042133076153724399559460631286148172234435611012109120650083728038555558001590076059443030646475167150878141284766303588748229622141648458949630807591716782471902976378516638411002396652636046727053562051396598570457117115463144342441860522314830639456790411527403530691448192423666732730870719463080486706310568145277904994472922798418824605985271212428579845662237975270402164640868215228608665391306053227251241606281356765199630342783268424054634180933810386079875579467718823904359901600757728122263849782254416746160544547853535720491848401978086326380333696481683563816861768531713323138883579401796559288323929292928470149709395644542705371467757578630334320232312554774600014500613807969520560072685600982904480748328269486798512838612053355162686344214140867396186072113241220267129885811859268057519499261374542130983100171299815654466774264051517345702643534865030389079549341513353755196291173526233407261425906490493043396018296888067732196832999645150328561243551109539191726385098145416477302078502455374455736229055262728936568487234624294811089205958112848835536998411853504381377288798130546515473443273199761627635821987745941385116497687349350276450083896413442189300664114117563181990612290637305982485435583784757565256867133225804324233744336519143205008361432357061722112694665026922977572769789525975026740262113884841233866069116582367916911673810703911330439543152429578135372587891653396213116235724868043887781685176003282780262863058013453756007517951516365081081645532357168622763169291105055254757036497788479623968922538792084615241808413116195114585015041079982051018413019210513771719563002765851015464549511630909762859328393452929332674117821588153704534426664797140501923599886834150603829797835628071621883063068335554063559184216425742689160119113368729975803222171563786254232325064997808053421315854350038077872560405007159065070611336547920054292650493922230419496086159160380397302924099086867061811675597768924936524641077011667003222814261825303659480950527903093762718355918262817388018984311723139420423320243123658601402820827559129294602442910553584607522195859566330462428931214337167972621790254028495509120369514365761341294117399373837791605401448699559841070127541061426030804313952995936713028746869800795961127374410935015009197687446036240064903414752920353638094634861675469805291907293111252955044353157622354621695940795745263361353479934059557957529867670927957535230865305553392416525355493815196125168482480736173811428953895509409067060848726964472127191507353923225757588486171848429215837545570725379649682275846430268837009618647968928767888420328214388305547893639141911680344017384326598623514462192387965534382285643939649162367406533321183211589650077678856535027993821206558431049843243844444667276055635843927624206619806003778086631150733312603718768014516584995061192827601999080346185869405597666447097480385934121263478562004341937810147226289077557462468969910096832656147712535761243345820546582486302887773727098982733577837590105114148327651500405083420466367973681229582259785112986326335246407121642624328883531624599490431203062824236198600479067801708112306468533978440786880397805685388566842407203860696389367142602794474720655427656850028975273313174984826318370233711740136236186902803448352185946154660069746595728687836957701318230661885574007155367398387829436205609105645287375873440730357575365563511965759934891954428116266464718947527200231529414035074358195479582382216551199877491173169383054048994587578463705935790375090067340146823677329916099752875853558470228648729869829560951789357310091921197726201154591974068902884872599060881839548616272152684373486048163616639419858298987705759482793915086024989076660883101110302299358951148254712346968931952352095394500817913930492469027037306923889204025792926831128973091836180284895666996501644988674329567751973924089955035124728815595147028992908638224504210839003872141537165967100434875856754344240405554379771538047649803794684431078857382860884693169569067321569702371239626452045195677207551962964342677941883723647389632341402836023871027184773967342679879921178854729042750261408050486013559585053966248693732631583448277022563170482877082947717129756154528841736439042027183306785295124761941142099134043276231323670071527483038606286940289743142659225123571460423241337308028451855723931051715194896482866617592466168070033017033229351709616092591099839654823790521835813056564141858584613028292252749597319121396229934210249873725623062089040709872612664069044520596664650291044899429388564366464573423358167715238866414406771106804043922555496170496896307743790077091968114168733233763861248615478425053344934682424773132932295761864089710702025044168924805638843745895492085406379135641500228119233429548659655942477076369644160958106203935768526805753249352193245629890736211445463027159251673546631608484885844019608173354512282025903633782379144472788757375107721047927111537602457758289304952885544367706480347168761746277023597782754754983648001506906192535099628103899431374932350694763108557048252468181114603909000277596250970503785948790378071334096958039973655509329526957830866252583062831442291428155276328988111030730306976374410062891339934009156845004476237385662167466976849823194830652701574031932509439068002483774552532486691376615476088099872011040553665687355986928870597664738950760509475678314743341083726912386018661647819183512977508644181796480137584140602695407003681982256281283499788054139780858265902549721132416523459909255213675221478055164694575225659490683987773332676733247035953288617344439048212477991071624876113026110943870095595465046619287611093319880872023308500675152017991957385350580419128493083402462363441765473112516026885238851905339966288688207644066720437339851494091369770020946977049552583510530336744093717828815049489496442976047139327432811784767433489292695051183381648111916146041918280902374594684177245916828299462412215156587839969607988206880418058770493566606323800803481825499726284200595330083854576710731122768007854202034678439491481704319317089147338861537292699098767787241384579639927016433673867161662890233196673044368683140788485416712458230969083251533849428703144482406135860918501528938867284188145556447230445267859524771062817827788697308843498043037259023025687838044012313304249750089881318957999166614196706557104324950842447688773573930515116768684444345646639328835290266329693023691328239885024886246343209213384916207552838413459405542336607902166301081436757725760635887814937673748701878134884677123613683047127124638847284515855414975596420985854455951066639195574009552835109963754532815146561027463912908702196174154649425595618683769344369988226739930200282768954724675805839933110958004141296963014632348829294258930040876784823207067727860509549355706548025112935701736657710226639600029763759796814888313672356781429285345392455714801254441388082178269120911261251998953416601212798077611380070542141158572736879367900576845691762056937346916062904005451938776685438399349433502795312428939628002227181528602821182180326811175153026050328985968055135610307500390855010290646707559301908466261084250070683556315927762448691190127037538576324275027888121706628325452107464549857899695117347185622218605217045498495768474473987376605364221494291579469988328182633070091948210185837376411371054197137426362142231863302722810381224797073880289218406443416129782311275739346973756505913838142560900562179731581509488535728441424545463444411854166329305054210615897139914029100183283079371454000592521401294947579928479304110309471699188248440648107514501138065460460222745042425294869091140471364500135686638137282935896251606072258610826010475660538465583945277296444993666203668703161606349794762127412045842195121298883354558476098740347606971434474793263919912854706744894127403573485768283550784166893407430431127172291960857149901991470493220693322242791438183170410300386418828267943495495060304478680217961393633905231869744299864434703963110431692931325522129701915308855017935523816509246020570936670411965268627620209065235644520582443478547095115612006311455029186493538438288603939053497003566579874942492041171843213789172462552999603423018997088987328705285698290489646089059604831196953338857877735601239223477402525261344562149913298078264514521541148140833187297468385750258774256469280623617852778368832456150500506497766162669360119809143394192899978660158560862514476234184745366447044721603967636406399103560678987661872261736791873628360156230258690967932656734268835664050936857421115803959278418925113922206248827538844838890075226156732452404440095924397257158400006983389383258492691973379032654954276070784149766601979572961535227278312385721878956478077837101486788588238800586486541224838301190350625043482585003556720825732954070299130279639534038545254823807567859652239708425365550232543349100888207148191731440949084123361509627421525622192835490384035594027247404789754025246988196245405761303883468089420365434544742859626045440612717863380769096693318764003996257375427971440269484265676474027781133355070961068829043915246290615306940814425481473493835184046350306531371600054000015726128572947553848048332608593235072295234623173157623190859137142283581844846732759867589197513432067576398063566753176332089085415242306903960942014066156509948667571049139263977462551664582857936641711480078048256784418031794548317946768769338529244025071983809800506979659098994357687937251976569726914901454680710743935980921282810983866031023855828427564490362755425828811028238917204658771771267244627171553200875210595294850449848988697328654106668078495004019098963805808687048050923105736899064274061511077344808702917732851782953299727405198071707059220046060053223332828688881634526243770627676534731675562149439518115361633790408482834596065464270316389976064951804367834370480462892330476585816610930690152598568758358361577193454206845709206546275085196388154008878749527747945313555942436952387386737677994078249102362990485210703783457123643465621589216130877200173690260432167609393426310357589237081097450729251716594720349286615956942745613136787536168143086409435790265044118403904824489574738820112634073805922331146632866834610688070065140169536353800630375130339442770192546266791723852695687817755717611599867467280440159154129366763942762182962151283453777082391003476405928908577365166112334108998749729996714273529772572206506890728943660298189334692215841338346073671170846616910879496457962503045087773807912507062228972263295376037327662995857080545661990739135618733784692648482424129553781769204740959767443383383704104329894525925174970559510822426930013956224169621166689083787571178229424846097815931456834913363863855366407896745215139036790564934434613206507205905099386395234922184668060911990341294367781334823001983302504773629883416205225028183114756231875839151707303616298158475632341131791535488795533397933653603008489278207356700187111265390666857659697638493728471731263473331279813407515334831972789713060316334757601313649846399167338625073899897117401345652265815085472729750873038310294960206343515229275263586261047145584336702339946479229626320816732672306764242425191468049735818902921338049419273846868482380911834570090178691449976762229669698004441091139597114794268574877610627961473505925943971517214581351409588502412620642724029709835546792607202988257816827446404560131749697140066202006597586869695206341314355173752804560767548564058195212399565100557461479233114792894312705988240967965105297470479746798541229535352473545331952242319927513099624988590015802409497034566890902025210800991933690492363406603116769639106622955224270044729303831818048464887781458202839527327998114161299089147279375098497269411770788353780555566501310004398710867478460624357887101583580456977724214687087479516097887132678327830870895133495076563460876174487165695047382089734225382329860533557459358421151718889499498467942770041468348323644117903182562709792148693038959865352941963537798223626062327206493233072117793250879384049259778497662955492826280998994650832020329114086812760809100904066013175893304866073937136893228256130797730786198861658937456558975416485834820452902728421660871414866571948680621397487659234219660849972534699466700310851370401213493902188727335949518512517862973034448087827005346186592860751899169089492807307033892463606836812880478836920349208402721548268830440487632948801127802019991858279554489540165121968483189611774310323406829149743921528888638461829823893884067861809702684935082089551763440917868864797864155417517967356356727554521121851515135556424886917959162605551288584374589551878942008750541021769734431879387271572180101173737644614477018489864704160484009123362973538976908227831270834738855551587164201498169354754400731872078636537770160107518470037390687629010558376678253174897087186416572286180361565492836957855110686867271321675865527744500349339684604240343858647347549112388083405681811565697275515412598879663476687590745245052973031894410148218270966467384362049598561541711002478061913257300538140702285300712200909767979347129499956152485864430204405325520745522522671796415633119653276241408528510134451044416714579821766728810070215404723022919937727628332961357777575272258678282090070292176353968328311593162551858732772284910334125780206408427636128921561857747815877719179116225717759866662991268567797001139352922303987440249208012202099158984836930719988495062379617233850943026462776529334401752621938422766671832619949276926925721966790111011533398411734728111650577545615697407621011849086844506511093576853683599477777879791525672038688173619666943595668275379675916902978220974052415960629279318129094988397719433478006343329575263165829742454565150987681749458389168545432593188191193369059767406571667179807152851800882289448261855598960715625025186071220743204728685218383296324801951021331720724318531910232196431486391833362328964562562713880364666356400535640073361595573837791276310705761318072880014330166649575403461182650523692422422888169213299764517164238291903236333262619863956297039209361372844996215840289947699476727334814359597819244147626704416250138801237586176988628274625165407271943270877002350816108612430745511170344619302586895961678658992086057687531458891758083892492860644944111432413082363009699019411825842560794704796129112508089458503792314850350899496729155289539958702512841590747837223263873793393989680354020585365310812505865964517959532515663620517048708184144885302923719580784747908460422918433917106554323349819123929154669691677950299842481672183080560718317373174711100713629383545621041789472383711974567782781846357627324447290949984264304317971556178077443591906817542913690198484834191844083007908514499237785749299600296074054307369922215832748239409650384002769746770444849995703015465887069725588585472289481708962101207461082592484256661928262706237707961999673027784320240963409650058941982646826454983567081050804250677581855943537611852465341126025981559655738967331496802728881658123997182022144252740865040055788137411000712594847896178534398238028382744966232482338643066416611835018257293152047599219092763539782705442265473860803091107225337023476905536565335987241062983502959352304539927596833162634892612951083593441991768823281777568496060257578096560216501912621708392095764277284947828155923209604643986961991251699272737574416470047059418475063328439395685584376648411224577621920448561424189492564093536535422414095615231747003728077735701367416921538352992941247254092827144207861538791721039504968765732948722348711169142660416875489822714155733757512668635783864021821401287371259602250179355521792738758802173644421402119324000885549159142358298345152581768465517268915688414891071242522097406522761916975491998102984315521236425336806277671122816191715202498097088560343560001217146909737571118686035298794757483937259751610187918216532591709486531960551339608543425035891263733617279074638417798661572164083816583232823189026566134525131270109547837279276740967920924911255215047049597683383575215265349904267147490538273047915021836981238222786206969443756253785115324751785801392935688360827966446536750929909337753239448349145747550190537791447469950073103597555222836523089216440526291440974545182252790812261837839063096615290263446637192514702958144800341351077493143289276147669538571509925052735304436615884456386680322210757123575310217159996655074134696018653959428647441325896300716838839632845475240791160716145209095971986055155844904180197477913031247205381761196521092627292609292256212950437593963159816940711926557546669353087204691501354576389604696941933074074907011969631920000554220480620053953298535402852018218715445519957181921673631653747947134757099877811424885527828045130335703749995206980876555946986648496559856472767234548147229671610150487911943231041165012274944484721739828329280476626728215051802321779265160299390728983990914074057810477057207575964356312983829456366826470167841352546883013033831501241878849726791898942691402946303429873041174534698573902212879332717630640392589890683687596572239772622830688264502683950046753404669041493095174352919979814820774410027748706443631252254350660466682308166451939747516561358572430556950072614493710796184953014106550267238403390750051544430141871997408137008191785290969793167194917648596835317783684401067802232755499546581392943352849809889410114224588868112131678684066602132329872331919980140835266675405697413712007576668928259287806822469518936181824173267158342065813249680704904317139490884564520447895543084336015313582702308278861782805747278017642872542654970828754677689281924710065350159585030218275401581983183143147352702534851005461095056565738344390688297496957246899160106717774607257030172278658881247508318441016511327398703244529782090691519872542647922791876881846303401517280023759099488816659583326106001387946179139409052432492779366064469675753112426133954398696647369684476684960732936443194504636963760789558119893946945648768310874904850143135893446742360847630808864577657958502346181236660609823775726106650178803146373719118913363425945036494785191410385026909798050622092856993087060701012945128438183489722364940546210959047358804879777699746343220428424534080481210978183921976096018938359710674060512174571917928315938768082954310632528606537120958818617686966431069306974575655739987540035625518763508317962578359520250407289942210338939259131334764322938171638458525424937690618992929985426725568521479395693267956302666661977587505728275082412156897741961214946824485371389875631601214891293104724085507738099870657248873756192911677287781859909170672793322941651510019761199705235281801191113489740376323728546603571068099123151507616725759072405463470840665840938012172590416639474927309767944051195936724191114734334592265878961101294450321816103581251331207520751873443862676923904282596347839467586873667880282571059461451127757795248424636162352877928068178519406864615676807351259014506022693419402762187683999671153199748680745032483918829315502494108622191748344038918500818836143206555127902094025080262934636109473391878406785968551572709524863658893197256410896506956066519141936288875117442163876157354119961166346512725685079382346193042095692657224883000116924634793980623553918376712625407200276082604709491186155451786802859827846208906604149163349500642859638250753995185869148068511233825270840592810278004442906186588003568252927671353595537021887210624180015924910766113811653793800330255588144549437983050978179405600394803774239258817680769609915796048029834988424861953957923328212562682262030656304544152377736024170679462166281233644757340962554626583228202062107653461723641775634115817944782446870310991211985060379589567632611670816700892506352339723657713924824761272792947367248542051684466079650755016504834254070326649740617569250888450034176748988001494800754048837051688267440191526391627727879194292199202791085740403395668046131096021329289871020971831125351762807766762002486415261834919509155510904302600165493853564563841827129777244489646500778992185877141630802125721309487797376979699648980539296439397579606084224266055689466920858650573792154306459977734035462112817256728532943596180065351983629713426100789529105615752531174814831042263526042644094747667405646510178630928635952394527889009123085147478652170158156902872617560722921764744850546256780218960529188362649324372020701894500066150571266495169670140508104592130139405497734463404566656474124146781864346192527478274830953050089297873155905503880566084188329604628447657834322448883693802718548105147083825541240388636207809747804011257429978736111459421234023093060549168532924081028554053194144096141481333960273065057073360962340238197349392318837028926867104987591592362373883468673255491125781741295433825073108309901190066351508389496552897049655061647385146382900103471725680096266200660258022569827009630825619608148974429714643782200473567476740344592969283853242602269621167156215473434446706015228038401225241592412812997287531757252550448176939530450484437057570292277412351181006554022357605533973060786331039137418273819397295419021547045121409477852333571773032207970683747268082365189903305027734132480840754363313967046714080682843442380554803400261012346045937903523101977807034929763694028609004303218291532903265292077207803018202815678942232375553941436824914925083263803154989206794635986208706412016828787805683881341255847388244626790829381466932996163621628490977745994291121416962918981624683340404697747141864060107853355503796254587841833511942933706981336446486529558364419004576916409963619304448979001851730143116824153193499701634479989963157838902798467644986822102613908234792020684864999275758018951368960599129902403090187642395254986552688147432696103366286587134393631855384160760155909771137207105715713211567407761969605530453218199677980827300029602392381212505525207281676674402796846217712494172350597132543576374328411899327291966164830140606457081172323141492472488479792802147918591519794902658968049379775125198351795852211866155951809911432146662211361870015513408794132945089641590963639744439685033481885583073640598630232973436590002084680813373080129363863783589420984900215364012744149808145842327998359091176687220147718354349108605635262197889130577021731964278032620717339750010446917425578929460070065747918315187662521902293583369126286837378958684183638101546432787279992154691624671937874403281754499438450169498982512549427362089614608109271085963381587367040774620771228597787866487932590725185199680571874509441026155607562858625066738326370858703159661121882813433408188773141098311054105357367700537872147217228846260103089914901451930805770949110545096981794090122632863151879700604081783258308132053617930813226944016539217099392141847511174458360160301929465522809503718399626534408110868425390844388457970328698492091921292617973898775901181880246421183987557067954256225582238178967581694170735970090907702285382684586210699381889207391738020566522709055929108578202976044673894584752631425482830160051580881685494222937631736287765098293968638722855381251824769375920434872202424483273821618897808447098734308220156996584365311929160477025467122903170013130820110033379602840143866167229957019344476696009704693663200957952229994103777791102224490395962502622013388412420166802444252852830580544714010424898501955845129781153532441482245719038523486490052783573694266147589166138326829700347289897830366543746953308920173039227854492298437606469269743651506224593680662075718234694896372006359862124035059681479030749967061112904966330324673047195561295818744134187523241884133925278710188999019158894929905970184206244590121302881135757400579176795039480361886565691978394611405111003678090121557300426873924887770878258131713352635726786115583627977312310201866243302682243947208398631607038487080535958664167358197275829487893109593209668742596843889048845931052359592202165084736623496649393091932794209100502546315216359263375756823835860981195467070061369203418683065414558161975326862610024362360247144705674731530660529107337149187976315690488054325335161754373959817297660164521313403063762184950518002999892983411194252687234332790574515503987305375955393276467038088774283321601021936166693002819147159340683624461020444610139011828442694285306413197753953261430989558739642404810454296053213059396945226777720716201352177498316798372943186537443203212276302849643703205807215711117855159194572756505410168602407915189909972902332924242082903010449849363604949979172119019936435101645298074688979628851030258551819317911584715853150906393079638840691037695923257779037521254628313739629448135584527514643728523117108630514038510823857585043077354098049894288101277204470307462482189726473859386088400359876653599545612576993677157716988735001160498812762853558496590948792567975890458875583398214976524066518715625927021914041900589385660489544947737235217326063456030955676018257666549431189070531412175202680817449649148890685342930895386241052953589682000089678118957500599265128066545432047430484660382175805853813253431572540438295399198077799403772445932358478180579406372400285659907195430761249827329541030116310535525631406095514017419855489884656465429929131456688170859894176045851364753988290568539452039025258704638616881561232468539654030383614902925424877019500128457768232829959599531504864918799362157877941147998537301184143183090705552021500818862239535890460483855878147125226354900969835730632384512792344589730480363264838746184637157694207248109514769137283974615702803139579173274938785275487354364306645858280477007264341909480238397065257354602326776989396343774602694580003954733620462532205001718544833762326776117372216054018031772316001728095865796805367030968605706328151982332961839385662891169094035226553985607907406070780257978207304012388711516566057709871538343025714559507855343021014193755609686036253212057778578197863624870731202267898125378056371573632204468004394401318601833171964106579633119541961525192028630579898986658789996733100279423123221525719488627531930090209725438623243614175302255805639522078831763839248483577297979642911801311548985288802938564924093138201957451962584997425056788868507405116630093455635033973432524115201874096742686915132390837036273832912110284880617893918515215607622296394230690154843082833956621135947697616622891304232052887308971591954097089914025982358982541735129933705300417263817887689125014701664159502353955858098350205745572715048485064274075636817240880639438425303189414282923918116686102025240100153298281472264851034352717474265063755014053856841006783362831534504246566546123350580262723790790302364272878052146150685772529181712987417828358842030220010522301878814759033452759370483630387709559063015444247656783104435215342886234377524603137101691686374796972531956403928051684704341396693335878016690899155015817811033220737981116953018557603061244040873656703054377168904490653765755842121093658013925475328644146469047243469058206078914184897976345674911809491198079028651205282509336567273343446723160162533756530430007946152323703390830862712081858796725333936591253831934193885812252970403464004440312861249276648267135616954053849629083785020386842765389777968373129912022727215885458165780153694605376736716122926043521191235381962335900282826992636066487619929863317921202175692174344900531467422283495113404202264635495407906955608011749648667304603289477262582086458780463569874317478120379592045599074145860975746855171284454004604669580098974115720235358987239614780557214956944104982259783944768065443688085359920484304411179194292184580846179725308374337126383835600395799364960252127213201062266219619808288560901370053191157457775679744009860829514262942018923011956510312739453006555396732361889603230281934265479500418597503325454905321171409612582543656425401436967100438286473625551680139205776120172949966729482624263380578627613844987024357804991083715158217118271849438258629201676100066011607322112200181408926626363981136474783728369794288295202804061922559297596270849389995279604946634196682828935752578826543477104119874031091370008511237737761450474278776235040239631185822082829429227495308042406872957556768286221313546740668737540732114175382657883989031303557190471627637952822153486868110378345383276619273652306718658973755359454196904793075175342522259425378783307606031680689057152062878739767951665186220570838735491410223148734648635905299001800216019621659749539335764696142724207337083266291270681419115845991950065568741969259154865104302410048715650462963389087247423497958443957879016401331782445527245352255847609927565244541124103115520760446295804758229444353711480676833449812900447181450267905430735504799560356711281817175641505790374364266776647233398580120931502443922780214425228301437011011120999886229181814510350882496874169472674022741420553422530148275257010896181898335911249954464181908201748084893337610865272948172514860172029975242173655728178567780766878116106710628637210835943625577364032533207132337126439035785110602054259654325971599540068516040619608705886855271054311002862402431981337406445508646921594394809055547430272984820255323517197440043435500184474449414976581310994772435508194808101278266422328406812361595470739630366616490711640522828590928350174119314061577009481417466517540433140166059289994921856026251724422457792460337875418204244248131768676414626227414684221526790936322389184915406296896024682379547585928023105830957881287778788738496327504323340645926302708426293977827605292561300054742972784524373679443883808212722674057258896960832863345567170132014812350067233612915433930343237810628802656048445074350278200142056055504761744790032287226247969963373813566943510255158251041377321508481688334498083086787913102487513679550608214001484785583616134214512504650403167003934203075210614856747126466505410004126087990714605208785242715589875439414202677167431523442043438912277629972864056365876847521595310761246619443526913036699197423785233110894198119693352392603814198340769555125193632531386480067785086860571248019506306436793091145274879535105586115015566735728437806387913523574083314486694022598236999777067932553031687885467341005883740966758872041865175125010502923276092448063120528990939915452674378672275181655950207455618446023967874551431740458052159753758069660245351456497632814449419460221956936195793438520071154903986171540975340459159054245209197882903732132142467671344780805366763904761399970013905203984208328804281736232575634872656830849158191461336993052009356051866356798452019965983404658343865390942949568805672170236865508492195193416078322146962754400506261177168080578570069329829103968670141058571955676353966612780706325027676322631170286823421563046495954942667509382551164520800706624450705298058751830639957389980904796049911489693893823390000942595007995646288957792514491297719249685556918846038685682608118970214952393875996387978860534762692933566669637029842520984415318571484626629568887032750229882701976370411900525408492332217351294851946578987162957710906202196432341875105739746551343768230154846327543929465494512880131171065085858155071006607909290441672209525223976908668337197897600025414059992424377934274625871228107644206792795983947060275237258305768077654313630222633442386871146267071292983457457817325254325808298466435204436166062934565708045547275000911785990331795759202265100533884719978645342565664293092828399770151605640475609654518286294119025574415128990149581549328730035267885451330977645901294931073642390133432583399685370689914304188812192336110296486409262504879749690115593455034791690528686932612728944234079317933332523811677004068587156333482760634885467235488287655081222975746849299558545754102205631632132822308384978349171576439421746414899920848967849246718347448836739749239428431545710596986697011755431846577380701057137513683000602712459528862182381019315454223698396462715396283915506575121006211618059829550417350175850864544351572724458549517119241585030601612741249823637337229420626398286182648489670712024806210325928562193252448350434831910296268148622839010664882140679632481514699237290839267496902740665130851006797675266622377397886686371149660725905301081654881052600179504238955284746639311715127477005537195447154216556055209200961820022657723855379841412215134656943768800050169804376484619196236557251955870814919897513279701514749966827270322234264354541905004269780229812894610363489848751286476398665094605022827905053458943711710493241640064298981320007653949527737487894285822909403591546760361824232376956517968323047982875741354526616199600286940292538985181116817440916872778463903595034751192245891953283466716854379235424199987808794163537624013966506150651781126573797481101033393805320167342281502585246210886042292840306874780213898705751848421676631151770173968803423812731849407666254932577695835935212144835391721411526334040001304256034299804535509534823374951618306785102992929400626560137836012076719887915627298196853272866816741521647886054631556073783015648000630339095247941569327013284206004480244668950539642862604681488710145715527018122870985491874658866914518872279180283507306289459311208005911421573414606543449884012160708627015310242938510215764118148672858897790067299944216449624979017054624206441957733970368541635375701990536745796568386536457067717338730225643988229835145822457258334073179877419186200591148374802956232823819893500280738311736325660557241705085065151120250291949501030611921521288436759289615809772885806765083108590673402089476444566109826642443642586629835454465315939570978544383808591961494914548907296351864814460094647856304353637298637411342734175516775603934823124156813357132272696648662065585944027155624049835238406876970793024526240604010162807720638120153919893444955841185927951972304757318723941888678603523267405451305151181949384859389964975405122243912939928439572814644613511376464844051917909497063086677407219684805552850664977910324529621206939951391527831875431814219762199205770701866248379339606405880761806220154656294431900153993876766214950788404647000907684451670407873356985653855489755236596255029250580556630661878651577311212965162733760836472644423993567382532278239177190046286833747232528898986242143969418646574579740724748936114548384978794345898683300242017460812060476821142980372847727441229844780720432199237398812806010414656556869573958199225865865799357174248152344850442429524999146048620498059655897744780431534960648260960093707072618537109682070680441629854203491761077537458068708372075059401886369232657770307668081874723378783532435171707227254779771894687561941814072705612896603658487913529293085538658941498023287933373334002093569659556458002715800910280454198131779675811632414324969011012189087520274767429560987574947132788282376931219287116333251273219443285621315311199588307345907075111961676188898396625000373660072350521285869633170745461847310486019437361259490252603237037731465861098351171717090614002416844603155131285822752511834595929124777640345050861270626103503085512890921916704111294432052717978907446826075669275021664969857385156327408619758075084814105881907821649078421358983277329537027573988936369533417355202333317443282346189762355626871073945229295374667288212047339960306783726912067406824177902913020801358573148307218199453763089497500903914536224401927934158698373483759387606290761196331654418458666979827568493878427455187952516493315589556381418456650575466862013701386161969844862174295851257181016982146473417354076388483372467231582179610665099478791970506781432017932334767477464234564908563826200006984519556630820897385724865873685280107181795417439574686393078727033816417540467616269859102422420150079236079869689928493680588281071048938583019746462509489780241709504781290100685096944659272355259474765615577018283089930025666469531321014300648958609765955241048467851857698351701923643127098517769378871355816202455667843965157802499225095972036298591672546960274973288406898373158276034757185703645277416062366037951023453953857210176054679520401926905961110618818058306371810269747603676141496887386860985084984171581337152360181978450551495959853617787810101912547944166426527295467065240942838340899356655592947128384503065245649852456011121618044236088959296524734474141407091322370441516717718690037906260121769406684598019104720655736882769317978417707334143005124757406950630106986802455891130517489966198757498773165680015771137943790872416553528364050634246088107088192669239948163769556085070695095270365342547998934634016699433286290394424844006461491912739736370050833528041998549980428340056502527464972718054815976110063493451436286000449752737625097068570551762770307843046557311891453274394443979052691573644219279219320328342446817328704153636091462677772793862005759882692436195858629164110138374990864316045030281964522741259165280826999305593560506881268055024031750772027122638340856238827355931264988277204492171620294094924162839153546079541417723164665059045951365777440890694980629780647328032681224831170747006950924943732937374649404142123179839726981967994758635778680421300734758566722940364833416392521759446505861316931788375571238473648943075072419938912344036916201643160456300058870685237160727280358803258531728860438926278851844247489980423371642821118972850871684723135969403595718979448066180666535050871075762139552218309952499853724155680463306040221047510208990698750199656620243357266987164318381638148639469424334468449143317390379806099394871054666447727718621670794035004615777947724740332836947687802732612584442937756722677998269818371397171507230353674955475714075954422244660571722529141603975112403346196100659902358228905574346020186401722939498337912950429551677206136269844666888895733420091631741315767526877848701490720880456388463905178635138870450520922598218452672170776742037726743504299239866327818664865476474515604179551502237925437678105440926058896431514671527806095165101359007303981515018133822101903191789673489964916491483343018647987134420538961233655102877605060247936363615725593251289708280941645283832577169392682521481773972177646846428400429607354355881661598615682806266636544771386597436221238519176416301083215246849997045052837742020091160170353325262919198796772881727592625416661371939665416445681962764280383198311193119152397439120736225289793918663719052931769459177457642276148511860436958788478478824869477316197805453454675177361085669327920826924477944172669590491214797846931228311669107373490131553853333561836390798300348134590278338476083770844839677493303117792220731807506604057004069615361530855758987526469280504029348879127498354030074674036517877266827159762426448026170055199349703673927351271829471251400826878676828853415825176992785781209787940720284816905462743985167346615048287102721737662466139443256448410037780539567101885645025168316947915318308754382779877142344024290649979244776766849025265999115861159453529768913160489489935279847031911540415996015682142622749135278297430471442176426410758213784938369289261679897773686413254596585152529544650016920630473495342318438821264968425086816663705829070144236998002093402009357946550541764553827511590568241708226745924726959151027771146404236993916114019371934715289042346467580255601686975916303371468934892062259512583961850039955293619173035969899955900470072702764640767345139424698304563714889712010129085569186729141085544054511901518246063770025727143618832587334385002575407034216620536385552042203920082404250429903672521462819703676859615543296623893436798707825915701734042820154921920927461445532537854372465023011969512027256479743562331388749037864041117863767823686895757218396024688399870088443627889588927663454253892541326459949149294235019067309837046349205281999651553000765641257754019917767117217816717165929688965238850121690068145233234326164760897660503026005322462422675665583741643287843928843690615403813532038944879912765226036105571810130964516517344084515061933664425851537164232794431536246731019289223769497462175987379391518898987907347198056994219923575258941282719506046969705400353739598159299887885576496912707905560390328119718272746128342081104316256352539180230042372950398158412750813076865473845369934946986675146835853169560903405074381200448435328097593032810334373142059723740910086247168702996692366862064667032671071094867341154390306872860914838637843281549187866607091466134642640939797854303842860213965319334092499056145826917704107379699099254322102798887211369759083549040721431230257154690722200473982447919218702037845517868112223891912696139930458563558906025732264908396344791384015638274360741254338272985641874647427744642781380804508742585611358351670378142378879252647098364321955799309936779948622808502328775604914880169090645539557382062839864047691405844798354284565974551122284540055699438194490057996314250944326386355916885356132073256949984160138039744764369196868827000096388494767984740282868504472437193853981181054246513183946130886214445277926303801174655113268124903889103154777098542703340641614560979635322022812278653904468655717681255485270583146929183609992330763224985784505769866535362377380208383780977878557743821779158632465070186181135868930741088796189142815692654664897639564808915495239304039768498998401656432201228636917672747620854241840583061254752696218536412404180228474573997050928815414956342808757856604511077967675900821508794397589890787632381986092473471820954598450526987092565398146451306081887719260502057429240016749871336045013591182705976494500360769156239856538045661254637830235973244063638698758143448316699498907998769086179029452879433218816040125564517189722117042099949772487671318736501769664468313430481322285053746072051195941277677230926816128703544609023873755453098667144970688855922028665713528913638695038452411336540143340809154357434599298859358738751219370814308363808448998535489448006315646440296562526446250785437900243336858535744343981619342014334148276285846078413162750933074534978340294981544096603033016514727187863592276513828649544926364866607284815918723242710327358868366612546422166844225110640305613456043439282460152603934598599942654586584101015714785900900520911500717434448653053110747350657217115290216140517472776724808859095392825600260381062414087827626358190448428887290187373190965299389940546172313733074611431706760212990108279216416513198725922765404004000826215111037364882089022711960538668981144636720114240802730463011372735967190911052717589946741985660084438208129007314926016230732330051985961780744451196135206871460002545534966356513913703449892565164795432625796225287960227551325940523673619798715394480447007574583864767622877773120787381877915817773899182391796104735275134992224936866068372095492262253589821967666220933410244360725461190247238710589555719420220196722556025242342371456436135977074465718822378788315099866607904043470729958478901956157356216123520284708833075934577796907275088927289344897330277204512267559322401423918306217175915533992583767166000231047366952098644365492679858272570197217087661561524336449407861864873666803495573648809908988826007304101887683046673175472753692575498566160297311839407164476962915911402321254752752045816172942543436713869288180941377826079877546766724089040070979775466096039943646289121442500814963785597489888217297812721729186077340524465124278037361024650787563796313896628269175481642223448746815430799785979853182729814389877327854861967013981998581411972552786921788068965405614802642532264116714695795172605782730069128376738855524585939197188944863514977410663891810412181008428763483857566887834147771381598688220349629787714595578367904888209812745796188014753998115650817314799433791407788868772349738343211475922786477527015754260264765660728655845970034609099929203379331839282384692883573783425998690310062584065748902940183370019355998341680359097684301987323601181338306272262425485868076450748582061847302871306292211503357599435308167864748098424170914734786199714682068598708643839068007579979012964056294447834903840521111010320297597283432750030236590951476710029766329711634636106045742779097903131556765901426936163428553685452294642791036096166896381674263452533638432127013600388667688294918544768032564795223882460088956822515775241799672231735528318903275178486455360740998855242230104741850957825171321241760759692274732025846104096126868745591135698023975510838739907311277595939081262386308277002159669349261472051025921807588989683020748316886066005687773053966248836766852288477751796653038618939704512666778426928272555272129209547025661267819303427266045824278136840716760259658077964611695888887623358352190742494580041875897513155302830090228541800699944347464733809614172426087271647612755292745358293963905941012409458678302050147693589148748413742956264118730039072558507447962412528715823997899370469559328052011256651959366802317524893372279195817827650584527959614051013211262281610239044452180374663717361840448014757674458471815031098407096687641059258398371603247680584245091835814342821816786542014001998803114440753271701306971254160524774810682784923170137626441444784034968984793490099643893259261835037179789358524434854481145586355307350438360449727519719155207874595991605327364493126902459831374562723417570769944322417290449736789861198967593444937434273282416011126122485121060106546452863426183644720023390161622926695296369086166998590434044222909460164903018317075646796055100036113263338657279242461072723289377261482184910088925222212017009179949081581591028990710879378488676280110730771114790572093860013873851415967735782322108828641310578739491168482445341317894807899172613498499079783482846612578817685466492903295798474666131826053004131884301706033778332577710200036574529175022712731114680070013520493596258611708548189800146241084730217986611187524506878560910367759010167920661200180826109711397771779540969718210690540185103013541634406894814238020817535145058729617029304207604828348155822117501881811596951898421423208970660771968213525055267441515838999041814677235854526343543732129032189189196031901830430735052043517956015154112611937841724187853233700691280797567742645553594765857802663978768452086968133703449572550797612960090793214887443585158794795631921658872939160327484974208269804693011333110291258783102680416830990813391716747400322867194468964907205018409795654366738599332693856324508289358168022564171400256845132583927044451761868650131340042268231830934449396166948382272996476399399604237089984168143284507419109800185705306171885235283191686055671985263922357601424526954270766975496452628576588501931950729196947133731302331188956404837528987837712026283805248893637388758163087112734600920783099251526172087766119931630826542817570191507355261276424931251223308336356497425890264741810566084856536870343621465066598712290385515942376817748076487031241335614732776210888896281529016781798279626920832389001550771984183395069726811396743992434315009832687489477182083129553967366433381327796263545818069293098058830169789193051980901683385699088722041598427468255734498157243281970088384313487463890889151750454273164820916139378955314699830682562377139804869070656183874586302752905755441960814439890056867253959860496853471284546786152450827513601099813387940914483503494417267878066527748535646861860882772212884248667351022704877754362628373046616669668906093087529849477441281103381624157780089589780138125842111591533206893269867536904129856010338963272839772841099761704651381226275857917560778602213906011042119199018923415570723241494811313753283128112651649288339992691801359671155141748246542677027524810077933680400308674232716639507900925584277076688676349373106734980199597863656656990912028500952925220909177305813368629178144825704017007825523337567580778239854572987500085862092194768136606943841646079752100004036488485493090476545261287303318865389372107236581610008150069924368564119299820921941130741120097484423716997092238964610421618672534467380768780205259736814187391500511459890243881086144680227615158720194429327810577208260815183029165349342668138169721902978187546931672276244713641071675804803272928655934984572109675048511872096767889868656327034335948903719298235354347514924954035301741504035151758426908156702644375475943027744660360613743444997125840478623593295697669813216751621735462362787528592209304317013977163055250884715968825510871813640441985125387621172238151507778468051644212583074861069324388649804820801240692964386669017607084444403802264102838357189282358550589369269537595787361020206863221961192215566615665943284433671594556394187512958778105371142596574833641807060891715674936852475099448613617142123456323792127016619577926829200322534445304855010724710314241013621897269722918782270847370229325436804659311918407541259034857900035873995893980476777409515047011921520650274683902446595368540286014766457052391608490306407181291662676929002178798788813883623794442972041460592096552381583267508927109459889339644884531349710371296467201938316583539278004848835378116507281981290911932215345147422165571595079474811746577736017009043428286576758728694041236772975157401235719704205372126175990693771282671126522918567013368227392773187482791790361069507514612876312323746244212526790352380352381020462907643150889884837691128080158387712674494745628073349124211730614820503352009965800412331952016566945603895527138944511304464912295553909834734812056026079409231589807547813207545376126915062452887457595404299894720199056960875576015774497470954680441707342174624116118719193854516295999402593745118176635668349817266441192205331097005003907556208940878676674269638147007122580792308866155943783991707244888659903548343240779669841504278617000387331433701766145394828301730791176584592505240878918806027260601606915584121289092160608119641529678091391018587674782147318554163883928511339408855822988891126294526808622857534088331626349337668652329468859158631817127364604253874482333116459392920433096095789650649599341949406081061716214535209306372080344744619847442089528592842644807378844267449560781109403808013440944336038483090955479825931752595888570545328092071844888076507049975502040302823206933545416044469523186320198902299590157257972114024726618613482054777289734496761438759631548484060117451364780050584490303199708653046121064204674602083950853862979679497872825469079748200463318909840699184342365990574323661477799757388848837239654924940034529943728629803950313631472009578870687548069978789184360406711469511171087871069541292277595114398379236053445812552437096476703068985020169800662241674424716913324140367555578735371415775284672085137199005669528246676057193186778739426546962515497911493513671963431849281523492427489962540546690016207477328601340743666710810768712267294774694132951507011328836564269930182791695683367427630980276613434026001919954963343417388984295843893527236449578293361292753937403227009079284420300821859495776432998421909147262141809546391181927888668081275250398708892076372297787835737817817736275912088956975510621335439885246408472621562032390539620929729385297282348236125315464582370171629189170918910447158878007627617144579256181507287973172760984064415218416712687629953317111861308613278615238742085387363109866029536656978107638035655933693713732902306176642806750820057248079316241624078906783127479446753462749394867852621146011569142292504253596751890432594873273523651528090091332526961240655180863680705230192879221142887277261275701516831404032765545467299437913428947897939211931843554574780961967593718618559750846628338980015735599066740387670768235697095257533199361013790732627483812233666254217216621203309307337193677157638756527280615411590086121462808348503426416645907400943105504015038426225644818346493230309171560591161435069022270129348785809728679517325118138399493462440797836017098142834982258970380820432155729891067424470353686648874156322128324493983630249138001445405476338036006779000785513065057131138450314989433910748442834334806256002276864310610196066610931157631256040323891030593000359731866481958457096527009469931986284259908927106326162965532483582072684476344757634297372038609629604059633953287720726665110258701052675434968673175086855058582157361001131810739505660372966660083281719449783640201813966574228976167475199398724846291558932554586342848397723772517755190414719005295458239629935605511616062131290537070396058448897964295964158069705285795820811143359212800258235792899931507523222402592909125065773339970179618396206947074457428481087583842533273381264685751317582716023327352619639239036649402811539282313784551675532108784136616466390016532335862095697873784240340629497987924351262049562132902218180505210098868688490574270856992340795950025277040047332431275670631889058839020742036165543385293726385728794607700849073155467134471759434631639989212059789969949918332004050944116853529975852302653926716671728942844418061374491725595385625778832072812571434366503502671577167988685190886368073425023375940742199633610640934246607647237663678536146603436634196588482874098304442723769555376086439589606709868263785004704271819562238329422620243326532313850540204549028025118381481420068346036599425470132841970556753060833480547548136784850730399935106988420104913293805184498902270780532054252512590077189530628959473010608360016209844733989882799541784990617853939314999808389267476906586287384648122486531166549925683340261394361427182548389398490018083074708382274434320503857247863392617855376742399276507503935938484663857951963623858135197797849877344864849889389816282891203060305619166384209611552212101154571023330359091128115160811057634606775033375291948667153914613793153099356950196048388063740343031058110917466862852590639939372194469785608368317472109465599592774788102896899035271063011870105899900517186642260148094845245269992780429549240214242948505130379854225770540868395780174094118106810355551823392340111908199797444275107506955509377422983008688882738702747547528323217472659902950710155757250049606502162682596169479657574863445747297703574369635880707257230661194440751806413183296893940666369816566251450732023996388640137845335988846251780542911445816804737026327168444623174780769826571633849574107379367685544247340223771438577385013448627812327137673884237810294010960674866510096777587771336011933696999427801431962736777278042182555693315389011895213692341777660614216190080418024175151047060322363459693300869880587744064349415034828908998584380583904171713703066063260388645753854116857658282796062628112525198913441365752714459674263838162190528064471740599872602946508164373140268091812167328531443640292570170807563057107053344609932742921859064592308685773068192549347396262978704065598001510527764042518735941339570267646667698446494248382079653076662018120541516093636280557487010813248527754655844672112119944137886790925653096752137981009436774044031620823759390096502803997808832926371867626187712538894899763804345790298571485590684719320654170812100249137069597127729221569003493781600686202725528505827227210398857737349617029470097583960422772197619847149056521825931718957120542976963397955993260214536296620452259833380240514974988324010048799377705430512136534479503580598921593605514201109093156593758987069066781663250206077481261384794063043309324614934460074349602625284109268100310388495654628485119244500219852106322682651134885199765314611448226173535313211216628076308864316539748684879464069660273778097559585506795538188344402525614901825212962083537223461097167921548613456527354401257226185714968241619118101749285191089707179268188098722004876323912278201346817530430774951207643289441550940535209507841158600891243409112217457781804058510629388037299910144611368177061471680487112912156893087154854159070471630544608809352349759930278577379666019201117199031348908861186172759763585111233149818234463298476681021969879291812475518756225237537855283166680720409162254865173718787359255480785252493511009550506270719674005320565654334851495797415698832244778548693735484190687620022333946405796628701894306306301535415785605690193654330915319700505708555921751483761246612801340176708128113861862622930399281232865277434576981989230840184111384443841445364947301669365830022300916023652691528380288969318868188736447608059160581009479839760040497394294545390257002954701518212546392844854020873457061000315350027595323546247599194011621714508060195367406938907144512080826989262509420100697078587293541577717647580056795208536535132520607182635288495147820018953162518006335816101513993260256773776166815160909427834472468613815946423032576934573840342907060048897574450372104204313573716019926425365951854826242687398497579926398664162822234809058294252684286592754140095903493872262798984138518897612736841087704297218907401650931251208323027854540092533993382489628406412714364344911697733002995650227243565833958504577834904870715479929084057917544935464716572297710303635919607413794755595691496740830707579941185652399905099870010339130790378017672700683527548439831751479463135924484743660731806898393659535628831978108782338604884411572913000234442812839361441052160276098064266482595697392475132236401659871621412718196993170511474360081463026048255243114516676340286742122872219175112168582407590497713354349749178922815048168379176633595785160325950110522078677955347933467429355087776074522200692574896043471167361138237872998428936923047808443415760617677797446004042634497465248502756720527608359615878105278130397432066044040007518517999671754088611516481563226233694159287984531371989684763477414932072470578760548538866066446337086806780418787979540980008804314821393172230417819905061957789648943102550038671221155169092532827450827542088386471725360518969400438361101286061121373652091502398786392623956883000823306776864759245447943951372280527782405425511805645876815227952058575577328254920445326897409451822542290359211683516254817330018923738474985801744957716576995993772907043829761506154898352177813548718858111252634288409538522280502457155851638504936696076366792232091971873126390180087905034464874660767956954872700355585698844253144066274422673422929498765124056078147483660194146745886686035809396361136313471662200687547378362599739166253469975171473635620103377778969973463446989721046919863072023222927190711755255658710664117140597037264067310014109618006736425146752677769245633906051968349052086045021840715689816357940791663858840238107520806394581766819661771115660750206301076871728781268062154828185258656607119352951694799297064345872278109921699663539710154738974975160005509145694224292723087946019513829021777063381426494235129847049282834788397335044499574907179813408567951465606234216000817624795942263818718953245324912333438749162216189284177235636415258605736703400063264242563292737174969986066620664766965599776756595192289406560428774156955744027317340115227283178920190772316679424418896225286293204821066760890153611200903546122351780362259097202342272872876554142898179466914432757940404558906494420230186968690695718283938458747178326556604138280663118521951006291831927356449365605994956491412729894660232094493001392902654276430842288053718113468248444407464004168669065131495099754133322898234700468213322633033215642426612322109907879225143825611829931225184328993694085540686891513687472106064934443368985468751700359246145428684816338053724769446968586305031264155389987784971281222247188610442031731795168685410748996088498748790693542994161626360360516138747523265148397101643397367706338437110649199586105602639326907399897743551000215107992225970414050099412311887906298362822276618631681580122448411622720013997851217516704130443742074700650342820053850533727878514395274620774360421285347560009727782614650615796971014558638608126712704383569291237404314980897821716634061046039081142172421594614724639762532977468375941692922141540809680475321101095763490495935223612097028935509757618230220888483026440712921647817281638445315207677674624393869205971163919605575594878977883341606295246394896373919384856359795442879375486472273121590658303105164457552580769389943312181484272616157251897940530048890942366889869889572632285968698475527287515124383324753112734403552298037105125979494824444256710413178496392943202826599896953628461703411057847946202768337766460245115613312339062985741157717811762917050838101751054738275037802823547585510322495637558085429329474234198418222390318060229992496853155262123043246840793553040673095858198773325682960868960970126493756859986549805084542350331724060940356816895871998209817059763060859415406516715586223813606159195381182403121175235067608388009235124915565030480593534016441508334079579649769713532061218559134068555519839288869928395362075751963079444378052604977636643375561794034823398548567948685458300635050046076176777080723838748607608497726445078829655153470629383509254538700494021362300413961900744243916366394109058122412900720805460026422228027708024154564615038879341400449135792694363600381935075919982937958878657351697589846703917786187921464864672553732933626503485703321864891779063577634259215958637500681159892891859594965112478755807423639417885242515519304156374277375045336411654003204806347752024649971385972853970891413299740893284856843814369340353730202616412594582230018698644119785889408517497430587347514610747375565619215773984874467055206020837192890904212342690628808084447176826343044871643262472698676184344939915804463727256164504682787348601167100135324173233719070130298628832518064373128479288512781351898315759637907182179944521923434937318399186532327766561065729688420473652118905898172425672078106933974384331001099685301321167960265680177009580550606949792773290087687610195786934084532826879469162320369361142180136214120617300064425489015715008682885136437966014730747655005059232196068262559211311680458116492191275191003417163953288895793319407939970485778127042315129542792492073814480632222989941887673115951881734449139104083294970274488977225922097177706113965109544022183427970884183890867510543480557674235876917477518767566528285887992100830876257990849849222287683646207463567075761685936877317814740402088930173261737593473827859736400536611333802949586954697552517170483640962148973006882066578712315211477745888938508150568712880190928400732629929951166742755792215181153825030671556912178190536230667466591024825272427464080681623542798917030698615730462751550201473100355645519443981831532850969967448279870844757385460411559093885811049566496640790186146656162186296043581338243548697109002161355183828372492166662920113516827389909598426492057955287692879575131789920591870425352699489134791536486460255001032908346377120367002522326561595030946203975068297915644978045311852553470632257024714867118144793789599806703128311766143182107944727463766703799816468057587875835839042366080084420817396724996456246286715222754822415650485946017309890645264392311926913101161017521712933026290760765361046974988645575087883375488964472928926083040692045649028499545722706216465600049896624188065403985656012980939164951215985706095665005869147424208515950157718504726147252763797970236599212752357770690617635099897942407336629098608209458782390446891747004697367478532118116778906579838552142430737318811100936765591479014304885557022076718339930986140587301342840144530878284302221355373915379540910580321111273849486495500839668102743198915701633183759190572596318967635079087005426577376744929350447882167211539549523255818741186247345400963690694357076201997898693019578961743768664078114823282922599062736678244015167679860883243930372244697050970396761977882141317215189203804520736243853006273944233290580259772426117166383217253450472612063660386819854033242221508737323530561439682847864070048924373157963031244600649523587731205448462393581085614094537309680723962345100135462893223628322295442386578054975142531118401075920057169975522760823730746639141774563025746002028593965984312384148989147180240076820354484880083047379999118575638892801107747414278385070223012940538674812635984918984958933588937965520839829931822747427213210920545501460057681019777399328829125307678530032508616781022098375841319158545548653504105698405588786197755933506003568905255331188323166362560649146130960405622059405515071418354588870020225904169698340720336610163765078514756372227475111132208966613761777032746231229531126306067598702337477670932347213301381264028605206068238613120524205452161227136459240679138905828153263919453893328531084032649289043055274217673611032967668828351508756347419191018364457073106605522356924875218670838468152684499356572466447822279683790264612157293452506273088812343817395707943322895759948332994964432370101831387883840802233671888869634799636172468517574324871823895536154794178399365885980472028103799514904211052766649519968315530805233692953941684534117230519345109155048585283092382425748953246530993971138713962281832264629138475710466102186746017942141612329749317660772558180820882991454963674654425656449359026082253931079310661588556941753018806587166292963561788400090441836907649758515563682595075025913906155831847355591919436821321463576286774026588554277293568429180991818242217696565304024488675827838270320640587700735968806036032908744556547096731888753410973889835795979277745137293306310251619121589397155288981494628735782658392754018994590164380366557330628456635473407826299442174412242466730496600231832364714546670690137668435083862835305685874089334247402683137354017812727989639820741184498102469995182555389078659411197726974579791368671243849711130073298541364541093338445193775665375533024502067845459011313279547541210533642171683066844157680039577652778241851967948345855000270829373578445210036518984237921201617332762512817024250562010572843044700678005768702123671083394620905615937621973976137071949557331230562899585725992728359156783561596592633019233752731609176838798520890417167358061629003341339184270137635653852265539832381288212872526416612259358422320815424287909356120886544436927907054506400809998440008424067793030964569498189143793049415113731067157901209235007337856361231834648768749600864894060210586840341510292046938681949526585046703862662998794039177507421709641316069080961214660921025288782315969277005592400837434692785746150649583146281178774686678094652899715612907720688695424672263090858710911352648583477346435113455803845719457356143678670546997955646629650165679454375246703856026323314059981902783354882514224726642820511111033724562292367006606958391248560733503776843641682960836263749485568325373402735666245857284706609922907859013434636247779294046210257658753652413667381274000837517626577419799910144621392980448710122986383831667711209925769765082265943398891280087513512676808741061047640431867534185338969735205934632822712057140727462065782328094665652185895063808041297078756400396870190897394601291446779263761627651294501780288349146352765226733519633478590364610301656123482820578735103297379460335451288888994275933307867517557539220170001064994243052596805049313089736301923699417882874174293300305766927389161313914419883951811666728487047544738977009013579788469590417725281864909399813419274181385807738356064161053377803029924791182353111130599232757403209656469312846171925292082577993117095921836430964520170178995089539932874604873642965098474616682640859166472335604332648613866656530688262200905721931047595342009913690200832015469513479428554898014864600293175933242113176504019631448383379597184428237187240577749880737703694686643857671334855902592906579587364415916004978723745221848731468131266332255527038301924690697345894773068987742343330727865928653931118645409987265333411524225936064401587714974027341813476152772945504878853504293590426873794194627470118486264216740312242407679507223797295349438404447266278721123313883038935682730801732123718290917455566974906228209547242901975318441985684242099224418657833965262005832746802021109646374973663608053466456913433442450351528102333591451128135157993474994084765175741757793602463882038431300359928177232876272340846511828882290824319961187074433617613319422631774242991533357389629982791311628208905555961869440438175637861492586196233212047839703453020186580905561878417484985565992762839362292026725324034019622380478338069033188268267143134652663269875651627409509961612974093979808505447643373943227525133033627943411130793980619582905590934983397701241533475274630024447350704372692245357997717148884633354899140978685851884531822751205940639108131176877162987104424339057316180127725499173271175824337703582310446154880635728908597898758487142575553985112837438592816500444841549148266352632290977474065993147319278889104003184157609452721408762224387573265861056277920618410921921305700963358657049480892143398944167902368235214864143192244441604252538767388126246929063717368225747499324743432158334315752594538571140668975161589252120444321105187651582054488037085823200401603584453732221342888259729028882179927311704302017066623663626723666690593054546644753181802216803549900916606475936945394071925080565979881952418718667597848921941484377264083703845810736700652884472951528789457575099650945211806406949700729098289236387396626251189956601855130874473772682533321449393353267251595644602167477282888088207219115891692619674850345726216277173191107887296922372386495414121160779760453407477156948297657144091946740281316369474418396263793470135150967476993843228428916087370936082855063657069322998216152175378920629095845855767014638672646944004205943816434820868924639834865361723530366111068429860039908297389185293630283674194518229961888181199631506440846120015885430606085954327145027877308643222049904861734013750195393339092907339072964909879853676550520662791189704921419791629376171574418951905198685116784769793682583654808216745566320757425992836557318955084163692581649662067819096057235792916347405225368121918328401347644803507675415370503047575287355592424407783028392747727357754999125204578247896690244635958385112968322163185753979538379759829828070160456452892575168366191911398804485670534023969121147207628467048163941601214112014794447548452518823428438664831627985295231109726627815677172552387923006709344101697675224690100360504689871969388834896923614361665370811700615365093864745636788490573706633225118140385385367169260013353366862702774964991606558523558219874485138089864288472692156819206838479507795755362164633804281726726076750236224155073539373554178873211401335848879637342884520290643938874741135675639721341479432182907397062494560506329636887811199518245513059353637535899098846308395559785711258739882635658259642709644068759667335833525056141039613702086220451685783418077505297116282716870394409964486982596468415776866308223091380318676685767819615693335458867076273316028174455451584098147321538427060275572995912833773459805900393840476403594462763954133890532478369237445632850746597499097765365637503820272923981358281399867165303966070117310822781980321311398134070713956683021744796404893245663784771522449590950297877752657140718304769879237596810483795447182236689873743340742640000084735615226071320997667622997554027437379667946925869732480435322073139399080885616510787976796600030464284820049388039802015853314191263640052124496226553316241128041846228757992183961088862425629078024031721206519960392649456775680682244632809955654146168396295360277574527766676192473036810690937201517189494734614991318968775172826346562802616433363608028515738955954793211185432698021053974493318019507237707561129703727853572868648057356789978599201842495228099281925949978430729035514193851936591007444946038491429243520867378718409502561680386962230363405317103115871024328976212174232738135705118880562805327285804867205326510610711808638938227860953652855910741366828593838864461864095126949373555673318313634348112002443363820969357392512756979567362492026702441723410053090771153410414425267400235824534517982046959291380207457129864975107603420425009680870257066453579136692370673180300085825772122699821850213092912917778739070212950329454718480769511272329830751492455295009979143172131763606361918333672762135646306921121741424912710912666619789553377152331778365788097650644723395166018663341424567829913291030464896436268183897726024281740113679366521270996442761792603321250426503990338719229014011288010854175997246258687408948882423055620231963468835220670818113709423640957035031918698156822315446166893323413784902288640862850983527858812761857755377356317817651983048812697289347548099221259342889945044415205647675278952511981734412729152781236748189310135783784089453208680405181663976322475984555039574454314321353488495882971588291937578708733973177573367630306912394922126128263671631870405035666489961124296856212642231652669525043696553233429593233835883025750346556148684591644669711593330923654990967432981280403737413854882402852041098686435973386144218816234295667523475662608166916013685371446224901651848149026541459039392055053348262140849543950198268122234098745791939808598600284673381284328833868685336730348081121249933422241355995897915686083293871726113755901403234197014289685338318790346183657122641131535553694669650254421370123162253573937689972179012450199544741080577550425599135688494753263944370031616730105653885085903396478297666883832367396250182140417033974851494257342548305425711744871976512233855399790550128846434782431750100326449473430736903714373681746125346709511774761175207649256540965322012581514334315419602456833623193850803178818425583400387966750911235528878203974447752619187098296181170086373822056106665728831464551585375060220185590998228392954587455118239667607902419993750627020557232658625164455221445527401659208365785118372892395431120957968385228393970914632623537531746902786699718911819672002203344259779062925380479667375491564044863075390003462020456016517126370731780351001412751085325526956650750080995036685152905427936030710381311773976609422060437345528521443197984901715156371046876937405030915366431019731832952847735636459957021478303941170598244141583056165292279331636194355605884130952806252120327634565349583354795950292631737160899804799100925890158657414654515029755459900187036353606806615485308199186587026147517953889397175336452125795578489108282339816737068453090691201484126624825379879468320070421194709911918389293963413913193016108867957706456247505406713910760510790512866781528121625855130919277969055873468305542479415282938127789242972208401076808526827959530133420818029502309807484346721630527622330400711051620130816816137623361685009258666141656669038803498534671843509851061159686404367415527309575037959131444344682639897709538967537828353074972284628263542411586306370670349724337907401318877333325541507358157517255193447017666692474774063417442994843980795884002029354359932451444771573589152560426263179951053031450512291053222713817928781753151631806173080326252864290757612144395815410397232703988469375619490130310537369517763536215225350446420630994360896790093982511523360111360414404505978007101642992721832664041684419755263451851004665091068490840319263700767971419463855371010147790188592739933657449194980033886192105203475779167614848377608586095885787297816601148321226293120473799098294266816044429676803691296372412208238207848440338996407143349195796556682121514126740960201792681481640089665353376265988663227361698408610010502773008539233839461146504079216973441214043214952197656052931840811651349084000272118600512615694496238562548094311474890815154764384472923165521821579812387351748585553782172692523188728862815128572041454563407901478406646949061453457114270294071833728492533336415485757149260053732190110377515020994354802796661304594987272718938375324582429376602507132765748441517776366836287017689791090131085574933090519263489393688453023812788678999189433069872395218919506637217326531011597648525540436762004216206462827742027431658650260673118343772610171275584723124810099953204457723043803147897003992061981824612691178950049278129856718956044511864781651567686309418787769424550349087698674478905309634383136665656949861228470708613735042495219080945117670466251604381323554942574501676836972912307948852014162585571467682956339484629442733911061793721898908007810472251298360796718165473665253374449390785036914133298155964500629961028606667257855583686039566863319773052542898900659729856052108904947477474612268838961476328117713175206464014448279920152043237832054887942200888054511588145670003223341686839517929978418977842821212045184137005279938890300599225333904659899811919386142647119836388503244433321045146958992688846086191524388218475890626125924400293158992474347225074849638524614739725233747167086847782665248465774441089474802231503130319789012145046929775367969758429639744536782458729926971728869840532378469144959365500176790787264915341479520344752703369200407676121698861388687698934516084163273165543430208642356062645951569315107854454745618692688867149486406796760003076097559769481794357276489042051382154051826529416547054528175532497610344491078107992843197365433200286032838223761289787755443350649644083939728526941186378161597534667518248169720361900121061129623764055664756618712863453806449924184522998823612673440034364807140702496849679371110746962150713279889585619083809103444108993624386985624378474895416328108234201932292243835193858868377424927861188502420549099477567573578432289321660524298880792012328926103854247417623642631141562613004533466362194096733179269423878778872547104929006363372948679275132310040447066434987328882443835357610631350256387619507643905387128193685084973880251545258562415363140093017581741946158311141380993343809701606997615889107400754412831434246429255803041720495725871443662635549998621994244292767624123823000310224446940722417717914748806314309191055696539303515339601864920987018058707098276576237118137910048357856271787096288869944211131198372155059410461188164482549354810580710949189450718506467501081284939201847297111405206237349831854083067602126886098135609026271299828891342994871849479050689877076954034552227570150271536711827464092300609183537023131607741474046460890026495976483121118412519107402058140591622462954243135209093998784698285056745235619294272139715815006459799427285722064856329735043827844212914246056395643608497740270706623507406101829750161926961802016826857133869672726907010545927183857946611209342583406051049870755665715521704724071227928609390356317859928528560778944347437931309850356152925576299592565818836014946293234523081669142233698457962211587620124386958742274225008670096513787326798191185741658537568206515676015084169517977927629754108327045307342111773873324163320922676792085746889478386530007896797886069675256454805120741375134235900893352201430676817563990499081173393798539926688530998300742897684371000902781637233562886411889926763754650472752054492740443718373829954182580691613119695983493568505082822079884044931229613631148907723760329759268691951171034684556221142112378714069858743212856851399867938196589940197901307744523282689109548495081459937417482748350701458068775216754471264482221009293634016153277516811285815742365459877884012217640740460298218857753447175817379504751263328521663820624468029604139418712345206288728273502946429413808416342999018929955606854864599552154664359523463903931360673646636450090399376209396370320865140956133580882724799813412015288359590489844064394507995075142514136137053820944556654542323318818479622144738384824678484057754018756986743762601284276771323673021160962629142184104685119693665869916261703728645885577814842289855236433416121371334110422663047888151070457275615396192491743669681019637738935796765452957759952746091162628573936424969225196971657190154151345734374347523920151195661492880888165521176776877674498588231624370020330949031933574611147738610921043225624654036475721467214927432224397337652294576958606406804425205504408157265462665464936006414665190665967594911672720196754925410043267407562839475256758480061663484050820906151671117067160151577666396485027848466536703893260332839834525586026351418307358653184482384151576284447433764992856122918445122912919342585680879381209536866663015823689588867833532883785239355138922703871657206082364413738417931457548092759831523205644851694003490866226111355003522762726445065430710807611700141719652167594038696044601924557717311193691750180739663812789871036926979293862324624543150185974143451073072545580721735939341073795812061970351570932520490729718820769084329952683078662669228595419488690266409078191720775273946521368881441815902346112061653149814545202933193235803144325688936941321153163369181774776635101826056213877188144611213526862236834458503052951629528774516526391319900261525063765254560774968228013931622525245163283750829979434990829924040348442564512241385049150624859697249576786327384842885447916576122633424296481275064947971104834159768880268255226204560088110590719027031341865618371179542735671419115950574764990076862849782788805659661337247776383246487564479951180008012440068523625286682229401541477250506908096963038098487601044659049343787646821752007400190001156110774922721176716256862861627447039618488421966742755998260409800853421975136536407920458817410208906162053834488718095202562777301530535848032941579146442713313913616464634654732070897443464708926740065396431481178692820744448109249602827236759094089888111599514170563569960487910952505096483042199718843207989958564151243338368177639904828919400900041568816700834023461520740344459164447647257297983767189120741010302259877188321006276514482066567711736933154255230385169548250345411542314357554113681070808193747532722620277607744643279858075291148138983687920463842176103013047765904651534916103567925444550064732303028574528961240204636807679311967355123416232138384637632672334365478603895644613905816720751472110377268634299147288934216378766247039090424989319246674703212648320883901004265810373428097733995261645889105607938080211353331176897682056447149433407958492479488879315026335966099224552417201428619523262665805850160597993950951698531154682597268484124019113575624759692079983075341718808630911089561254187423716260412962420581594968669634199269983356594596216731987000312831258310452257038864508878248744571719936906115972746898724589173499093846274820663981381698717815056641379211267138024402130434340899697069707297354029582088636702182389508322714391861320727512344956400297689230252194477632214190394906151589628927149875115507690668431225841269167371361475200919482386575272186185181720300206779708412380597085482945889964964526864022861180541575321906379075993172704791555518298008681833321640835039326769868365864297682512382459082922770245921420677482688003582742570305580754209341112194262314734891522144448216494787479511592630411796737684321702315610301460206874076939458358249038403670506748379949163439347580320686835331664771135069107398317879930815927246388126912283413829064199825462571347344098445124361328359927187974669078896108886467895514610954881523517511934869786966676279944519580705131493605981397800257089749227724450924821790856211014565091778983519585566280798650915722026373751539526008101861942330712985456642704711670565193070368756870909342715278670218919190432964809052641184549870583369555262256475501424984938242065983808166456207608664655416626785828771735746614541887514309705940795031780078290421931965426283895690450422529065236832944987541654293139165796512659206121442483767837523054536907456686632916685806164771066501401215645184755046382452891386284411516878428588342430208390034663181608665806327320326108590475805811919296541591232889119766769278426780025259949189531767818157419475982225901077602007036189546481864920416215852580450745846483690291461121794759170826626121361429721773540230481265622575940214026385471017994404135428695751693070742365878190714004593055999882976768024142492469787417012195030321487157846933183588928325162500416118201614686448923805059379344800105446178754621360827429974332685705912922877840295557982152130998958771634362752688432294195542623217671587428985865884051242400718527430027088252893647452210630774411076538843838993942872016699904478869853857978888797141232410840342950524936930224615639639499875836455145408906311329001105251726115221990769803576502804768759339698163201230543905959086178363988963787099190299978547351218514584637768972025017376579434436671082550210708204026036957984984934388332879409923176378505335790921295083917377750473224511363682931711219906509697734383657221025629064899467730458857593820993170059172736897492685839023939936798924755699645291224856255565743236489319112422767310651400424814062694726109020062801664879196905884558860733482239655517048194469628531032462505781161177923796094086272194980991149905829742024542710074989045154855342414266453361675654358738728015428629348937320275861791041834912167791455386903542294518417559282700258470062886099945592720476264447652301480053042938091214190187580300107799959529402188123385587517318471313172921232838371732789792113969673575406775046544111921173830023308395944226498160238077235533940643060626856818089867552148025186704044277929627163080841053221360632851949686745297935954136246124035324934272365390036605509705960411531810843719630205128599933163714503321283947478192095045513410455987436018305589254139939933105276875487600171941182517446179502411548942676543305943202685691581448624552609382037807392214019237911088369196975994495193328070211799757966358989552122401640614761800036803016717282275063279519341898333962557247674679547262519791032376731038178725093613445819708172784584603997337095187586994537334778187737556272174839888698596790233709034934249830979054059387694390071603327404744279662036604357359181392363391676997042693539662418860742670474152515589993937836686281309484361578532094149131526611252575209996491126787136904594679793998786370999951361309958737864402572158748662903708074018649040656736820291670617006731531362776549950296205978592598193157154155528458429923270757766335016057859607184591052799264102735324063160938503662620808240015041902401128196621413664838724527739485055212978520237774439396166020420811166502589207315008136096682733771685749168062127917923360045467869300486987721708461700695611644509057594971520248190417187405170546764216464079980939021838596494980317367352441075457509160410634494622691923948560697703734529704191923039417132282355900906020278229086441054772112740646488221141339160339381855239151797846006636331531531677389535944165838280601871300646360693825747468330973641478198248031483139505484090434833266205492753665695640369850786783237029115579555271537476050529267482635877465950672288439305499734709830756413692602198394030650943982209041856924586989218010576491565137198801015627618276066564928773667571062463866259895250591572626965313958464957287018191593146359022918384708469163125882087696616617930694114454745773854169426647258337560702300753036482983978475911409097470777959055306480110659552072914587030311980358632988840166034182262589121691888010142921334002570283311426583377389698567641039138089346098426583706588279940043110823149172506882148704726408146043527216231425697105855149984643307278560367325345027193606783881521611240403796893737252386997119966556895090854705206996456206789545266788554678836822118222263862432299455210358746791738191949724462234208895940330887366266074891312239896383826430879168388331080372550641682281097045128614833346838642289606633144072614809740839524917034318778148643620937622985342823250676100426942606496834476388975411090000138401401841940888460833951448221049234013885269311021423871256530988258260623821321842866290600745727869241076756624536830418854093364121704637433120073194504086970218910242108661669611531918332481353283766991006238248522277848639929844185120115318952618761335272879470890424495822823669730315173669192840683183884318802425292066108754212545110135539406615304243299601928354473785158331343894061962128002935904677663632058539762181366317645361512634539078573339672999734066705297404405778226143474664876948572571467470299331157196104007259625400528595784767097836560181256876985655746435197189628085339150157613227767777777340587953447922692717408441334954224833293699823247783712511811328802016304334753714456528567165270768969281902047473147424136331385441615778207278024748360332052477169479969838079851343619317704804338511955647208986341291848229271283105918931172088494727542864370089339004316016169970886609508597027446078238297233094562843967176192062492201037940151808189033884412714001453732955281831522499867274584489123982305976535095059030371985350519168923251603674021452069814946538546104377127150765520826504205908849986567268099376936885478997517018080984408955902992628628465559063950993999095694104945214231339482220249824348125770210763105110802210250921610637566218349816590897277566332646449485426813274104751152151341440627965263473334096982964958863951514008226158026211560473513858013992634903408856880272610793467278875453476003562408863809039709824880895527227680425840196321149520425251559863656035144847438930430497834849461666315130828970582996753105474766236387804498444208379861848141065312203221432219513155177044250787036716757844946285097692954965002577460637756957230625585493386244769451802960978224702244383317900984361351379460536343371564687418900858427626754344508964833376373713382333633652993331756624865008932115716086809416863215554708983741867032890827250596963178800251162991936276100793401373906474360196030452327747684737697427296089736873738846798603809618646987479894354654386042859869991026299572682388748625287526320947377335356507207052298824315484492083123274187005445389951545419183191201263128842181874545488828243147324550638007024593123650960285682726844801059790387191035149286420200096582512661129727189180853543546218054832789981967998939558262878519389542974561098808866485989797660793401005897468160902752074010518919918349455304090324368218495246419630446289291388005297358701686342309262833507854542328695088448701601717143325090049591324557882523473028503599286488017366507844753180231714349681617028097271267820128856176177890416740849650018979986774291517798464066849908469011924139670621276189286710908747724623396988590249775408170535811346591862109542998867208355228693863606056449861053317933508659128519319550170774128635451062146453206218891417651015412028246389077771174783909676131645261293625723008541006486023685771135047771530857405636335568872478978037379892841262886589435016089462116523607824761159949179695717864223661023236582701909484014258265830148493304948803965852216717261353336292366052335912527179105718363662594179978645522052714541394898701256993545405640701445249209037193398331762029810803375436689848275842609892409651197477829040723390527270720868568077842541205557989613969464819557253353367359640589708261411688463926924855266088053803009291988182205486657297429330933307943445350777464889364819337966129815262800295753480260436774376984844377341465522371978642869759889562660114660706762738094208955589688234361943237772160936381498870966627384967010350214025023760728317150040111349515784131969893375398098063257040336139133641723798208428040493786669136421583488459088717005332811054160093743555599236373493715610933587731454798017898214066816009280897479624016730734841857471002993318147170137087517337296737944030128617693324837117874330424282150000511055841162905802025545653678220224086268188425957670686616526752624589451184500736941979064618606234517056012700412375220046049231870638788722436246380197439372785510287442052334545007691459878373882806251604171518736399142552090759218522891897385653438403645623358812041605833409600150322047984616059589168581100904372198009049229592873495904149439818019832948051107338762506216788729453397688100502114414161818841896204593696392086522907438814752418362344285462704868368382781087198884166149012906774012959609765014664730023177856600005407432991532364209195125610330644516475491137213137892345893492221131999944521661154743400765846266589210623236262277763300318229838143932149187443546618535858419879494558858722664710089415826082463220237473914611067300451903537693474291755837425276785565814753868358112524948184798899456532231456508567763975620620456640707058547576877034246613216148412493534322972886128634964910604291470349526278113808719280380949927742205688664976146872178609250318316879858278400569747435833562610460550232436179358943283877933726336907666459015392693069386255796597423810240773391922532744591522894996880759630715710833261461457229224845514006933062471778953061353929403224755263110717589286093402161994535003882607659019164641234148468765470889095127527207251375773879983305756629106679596442989003707985783453954715909743469081949047763747628418863577579131051865827256124417682847554357926204432083515476772819291495941857685241198735491658647640228375835134406252778267106649844166519096840656146440161805218280291645644380360891083840269435907741189674686840854635772763746031621939952234653060277164787669379156139585976848110710609119128346436795415806520840125120941714147912005515486370016468978639240695288712128420431744962326660122448402620999838335898030501303056222824032572189826152046722433497184356885097776840504431988608530011517084621443708311634442080706317150304839815250855764222226919345044138431336687566506416562463947276933042660391215466254451375537388977915932312083862952687565987972983803354395652285636239356336984174034920330996558129961309004891868125814217207508580597463069277692576610962887742392632958167895924989029743248057986646718607427181634986480306462480939664206416736754394814014517226850273119184848166050116922330038139721906484300202340333853655475901336513255337430610599296841562828890765648105418895578788141674586151974288103159405075915113005912358932111707473650467257214997295024153147599389356558238068522083769704877560481893620661950982184956583461528392847265041515555198377863821856939014110907527016134388551404666948070995825928393734161456412580756545966444241248695611394638027802287100286131204710759120485782764568320518373643161378192536883632958602070491969477854787224018380750806929612748740771216907565429469166940548187423749355018412548394240615474610042953135335906678429741146401433402746879224855054629810773749444190651794537548606444827188576526472300929387726485517684646242474942896809712933225682661499648445820420180554062374881142455746526079399574649178799865619483699293033533457537839839219904388140452995584948798337130150805086004416791700913763461593376945730356586441525995947993304116727828387133599446738832671418994408131501662796681399057101256616931134233196853647010364728274577263561388941319943784604701623051942082814324080789158174700207547155492193127606643454352168108926153704192979680928063896785693276216512327489725985941471922764160771609906384873514509369377385110098118158877104011493834717743337271738128813420452085972590733052380762558260753121175716427415842455989867580482904742995003777732935848054414382983624275121044717595891199000848905179369411517174403053778968762876921394583134161369759023104749204589115558255429960774911722257234504668661595020936476630395548550587888108652143642865111827196702097965855962709599520768683265712802092363023727370706808617690516670490167992791745291622033835227339739056219796418267399518681345997572124247574480626242815477860028421049014154772236397403815094158597260496876788430683755076481235860156320115561386258310399100706905575715442154276648471641537838094627454439758291385424732379697149171072688358563450095204298429020801488395275340516523969851634360408914068760031908053087236746387683376841970302231544221220681121352508059570644289060074460483562881659382652829621085191823049170337064740833910882269100202115793107225056827906147938338636261681949507028651283182387432220629842315750007206461659378849825991528916786005021323436616108109985035822562843383285957310417686163093100072879643245263933519558778331454544490991145081921531668003974419552235128447938353820685693765410113938862967750707025053360050349084698902045181185243348576911691460699407004440450686237926891873255044385288867395634043395765489142638090547169504780752622324734022951765113488623232103611969024328702919268841533022226418371392495058595497242490448721330811803452494813215297769780605764236940713544850686892842412115136242798504505497165229101568985658314332134650627670535415122760252308562295838034452160002313093848604689982869689759078259899602139278062862711040178037839078523343599304549044419905184057710184336042657924103973340264765655307730514408952989533512832449314934378708715516609243362058619112717359411854321435104359655224158331576952306037404613972414766492147777727431880191086333945928304765754206242198165716771887281431535075790845083704023038082593585364668715966699181511947710915781961892611359601690291876701779852206462466362011884858721041840977623757292452412546909061470271082514956321462201397771669390143377412349408255353736533200061279311641376975939702330742383321762160216671240027794951871485286526761841421584132442415674811301418439276065565387629509021521876470534631536351346445301623748486124639094891353425466103417503543031027665556431073638285918215185387667514642287033397141035254256408483437415640474280202433486885624617247372811771623631713709739856014312721171050811038198547648183136439269949646820428933193963123873216256548335206178011198115738583088508716918433652052222329575287136348915318309760876617302668279918320137570667947918202657035354958316059637443617518183415543187891192002436315518832437750755638552540268779834304859741644704580630398694378566899524278193831264767921936662094979682985693898062442936978174081390834740955945312855643361038327904244951207377248316375506471623081406475355289289487446189722539323118240559965993689245937519921130092489346727081329239047503743410586138009297399091526370763670161837683301685524792927450396809410346758080726248236367878105788573808287413804027138163256664199138741424636751806123240927140411102200529990908436696846692465681761624505551665491481236025637217435340001465675265275711043469277148744701000862365635786632839453639465321729978712217489953369915040270991045331358461356451600215135465958399216515575825231151420190624750158657773941856776744888107659064516697119879887615497927050540832008520190965738193324291273834688776488181823867392628232104218208954486094034880730931218200353594105082415736984531304968677330263552962020347065009213355523538057978325587060816782645930785953523292099509114301899018967986273254494632939240536878334946826093676878158887038860357896477911659775607553856403019006307214301131202316216654085477069282938182537342247653394164198075765211723892306376078614191922163922199251607518528731653303388685140585381664843249003025775608355581476514886519393328584540466090102326978476277435038589499911270972349439664181674396010017758467674528289970093702277356277715072531201509398406905403038774162305651985824925928146086223593831016610914060476448731955165121301961228066066848110244797072403554036207503073082960645184985952499575737098619363511544781856139964165693310360423196490093490630457988235420756482835120048411781199715161371387957405767188763316356240140600695813957941598483694984901049316305546062469879571029764285389517977849025924130922114920347049946231495200509515943410070595193528719031172622561887460045080374678312557839674915782885142353222870194691868152030570664682135705622936218312510286309802258098768794804842941074884566165763791769653997923131577294099535461311643208011186905773157912180119782213734181690299445330604910987311925158951697419490155422781168658065860484692164882114799608138809812666641305113639328281664949645252798166177591317795974448496484577848145457901557808577151009309769848436265374953282673495705887345825324937628218251295876742041557729446101115337672421437054585610652946430316374992774995342483280421573264654744721615641401313321426070892488143512492585740489304127487505436264343611908882540403384514537095248786583643818914024404790258843093224374718091357574116694461914061450972694917064693352518303227261833031049232464057651867032844415267332334309097444047190644483904169420757792672096412512602954082788779858098847995381614789730691845629833218921752753668489202773317248692588653760165603833397776146925871209099853108437420539286869463625157513469310108739510792490967934388059530458897910731433365706007972722355858059337334428542569140770258435356841117507430324435048813147826850184577272517601926911033459286977726660882304753002406419747901488759443758905407974562761219215708313517008926614174893461276526170325060239364452091321661788211584020275732700574786203554898958055169177254378548252165654070484213788506297209790384550676234270458370084611891696096035226091465385969441074796360321692987850183117824435633785295818130058785036414484628527135638765533369359324572040596251544265596489846509564212747740209792123460377492719742808059406183178157893352763417642582072393403773918087659901381185147410925848857644109017973690244191792956437200997299903033436619755371322482427682841001213490190219564220981197019983505270138952476507224188255283463583750822620898862629255087287904373539277493999822537275762152373101020300452229751442912347864463978565750924243290612150420109666402833033038134475220997632746337724713070009829545891878631812839091246178372410510103778688872146521337893116298669297283338002650642313149557391856980095183073680829705017654691351044763906939820566542684678066676664708042403562294174775094708938721777313689469965555370568160641819902111324981837619898295219823827349919659893543099824634931826677228495176800444355173847304097186961105232217345273616348469162893156990788652875083841472377072853605357637681470235823116643811366133899525833027011818000836683048145349315970541120035157752426108812082822350288605530769801262114950270549734831960106047935102309695743074670913206161718992093866943105022039547938726580935867941140296784534264403945012914904261526513369908220250543737312239578291338305986032154524420095469104373724190967753113399627518140437575351018865113352419776823416170358421766657921300025861768528975568646196377116411753968035949267999602130585902996627762887978318725718467423250708018684016810510410338278997746965014459380978483093511195410188799880610697811557231547868869557538865179576212138623391713362679993746321423979128934707372443869294144046603613417806267914496309803380266028753210712719047697942800061250417840576885164092633003210612506159708256489532884172563489767710690009670705473317845138034350101945826177317222850698943552835570683872413737352039757655984948326113251729599822580657718613544641466869530817821156160827670525825144009291047768097000257763649207733282837273670106166158662775553267664921084681313223448755040506195108815712059217410953180660325596982363076034805473555369828366763622924451453687788963877030642408252827418953628414609946611411444012254101174467579805875089261981028859007962184241680429901844269345369448331263945440502726062795076242178671591033571346156980169253776790742956096728769984581147857099008583577180022931263850700319636116425168392202090290513867620759981022047720492422880970513756461349869376704287632063796229300601523165448835921395234497597479499145570896651831007848358214980718816523488591021164160491501148791515268005517747818190758780001585350339269493390792832995296482708936960216456405039892694372839193237186187003832181548956024023167220528838128700901212426531110664018168465175767321050759090219516431318685043930263569511581287303565521778200702612886804077262144604823024166729442072635236402413930289015683431084777357491384322436023145863528585163659210569410140143196207292346101949781871692620210667414629959898329847236127619848898836226889216666646820388790177582517277752677156050263936167113845642244027416818939804201315386907055243103824953202466296535804242495864342766126913346222180561560809125567990923216395656795193311788684927681607773964934792286784461035824965029751779359320654171932258487893054502464083481883124766823756840522311928466203631820008911357584184852622161646437766068094001651660047874654148905487184091715021016457539224413850153154961106222640682358898739574817276242472610901641845472758301798953877053591146930792330277483462667345886424425551414053805940249157730746333458987287966795586198843611766266903237112773996689326487414619073740968815652658898898992314119309507898748951997253818451276151527457848245515005496477640385345813486212183337510369306004033009333255460131313071674005836696178696036321196355299894361945105865154201529830155983768670336956555920051588675080131328971627191533638553339417292445762472743474994654946634716338360452842446643673057573690976800729469842538434284087081101641941722187160825066959343437461629114710244479340863386700906934064663723538054444149220685808925668599637927726927351135359850199535414144310903656322231584995848110429995751833196440758170989053305882803249121641854340573444775381024502335596280483144919341842200973822677890720623126414429167888588962930434974150063758026250275434871082330037709306496050017035751438788392085380255239314002235836823579736091186387494181828552285725199439047063673086042757243604513093972699790716098653449441146330182683855702339085559555831863497050611865475056311476181986948274234881161657698373144205201430241695950224015508225756755008645630088745006751881980768760073163338192062977383906480375355473203161725256921817924345679128835868544654537959402741499681154705241711147642079495095281032083523513148504081862627978326763458703149068294199534041240725939537414859251791869299506287768376026768183143160791149174548140485368571107958002179408355730968022178187168383095233454528264934547703013665435495134068542397454432526705634840074545972066978441371058423708262868903067694089105257373870884111566978031144932528735915394606494645112731130329756779387546375796140706933967136586785138670827553982707613021284797587275254790611481845398516236192510012593132690511293242573707927770526514399714205707079550547317382964280851473657650171075100927556638806481990431865367404850095002727542501024925387959581820646681405179301334958852135874389383291546396635286922549044349401357429497310181869231654353069997684135042625457428818329705458388900821424212583704997605103927677868497683466135634552784995203471927425668122260943546235018941056021461812279502359615921544486748202409227594899678954344958021007892022655932660181417348053861857810371397660048474738552400702629957980082493608316650406642299963000584110879696634898595792040466368499421206894347145886588001884513633986921615595856277947845083851842268322187219438150058198975039243495980416087612483358458327291987927841447061016808422425351737515277928308255530369728982646956852835667125233722968596628461633118294265664870966795589474177747766543713809049633714069016264493713208513966919789944619555595118026918080545735312869164404303768190854058155306317970242017134531651721439256623025657358121667600299456330422637620607810868811066868414484039100247649685981416403615821125100598697833858300909359889197381822587942049562281295109441994784705198446081778900482107699407757350564371296795749340309142345078268440149967006168993440684908754849000000010067456580406527983990100430615429727897827210959220784407555505376739471774915556360780322276858060827421709256702032638019145615265953795857648802247473083651811288140245193507940221681051566349206974806991547439249232273414518587018362072767068979125149079837492959992067481761280967124442601145507493419391695989314294066880953092108101198272947383604396926633854060488055315990303044463075937190622461616488381399457577135470932666271059536705519801367357278556009406102794966725393084173880913838585786171960324675488656991499341684784773575995335991904169415146575633239079276740621481811862383975574438571516458419612441601590533791727109486448155246600256523304051315386913352832827498673802671320504518021000555955065580617960369371089258689448108250134602498346002496590699535643823302104671800584872402861832651436339283949123067632139622613401414486539680744840602918735276047970688867345334367007823628742854641031510588006619965982906761808744298131870750964798853065851478135359201624900480184465322131508970997292353913659515861614851656638878488110964817771344500509172248774263475253714599506391117191246253685944525257142349764235670951180175081736519370677866772303393778219984058836042143294150051376641525358713054636696058948847295527621913288184424159471180558966015571631190064370741320963265759174835609142034423539218518045364341494870134860025560860370182593599324116529664008075350168386365872202296461575355866886828738013715339484792632203184225215743551432401273674792077238543913922956863671944307151947095118885892556693758691596189706803825441435906773196621803832355020484780058999879991463162506029769806200497871403769388314002588995652919254112906873596790591547305382524464695199437115544174446650704911411382189467289704294996379625089272306932685541844635693309934228818000798761547346067472118375165066454143071774026815321966145146687699109187965760196493211044813746297572339810292243263221801513315061505957850698704328612615701360166413202872442054282970443332646586049575117645506888626920584575125837189778439019128247482801628094923219873039672467114669485354598695240417088896144162023497170506625525477186511552458032806832442530487470761645279702007421037259431828551683051358843376809649011981216998299016644555662497745786495784867976741006054386943077745876508225173307900539162779990712011632899528463988574849103262455406015097429728533148667272627785095830548024789189832985109806052780164653185296684089655835614697140427049631987641215382616659959334976203757239241144528212432540781156781753905094398486372157139593948494507544798084784907266544254919580429877845060344824634835636032557691852236345555171093603232404024763837098610238014414209762026722185554744133848997531891669629843917383144519467751446780211406966441459555445983697791403002012688068673788189294081919375402068164180382977395438823748090528721552951967842326844686469606717815919644095574474154814889626314730294270522427591841695735534322140764393707700099889150869376127518568265877740877909905829303455876563067483241797353743072179700859302421150270775781053347339702392164032934292670844045189230050635281011410208542970947715112656418927927831096746318079913775808632165957506924957503251632419782690012516901883850926726516127477687737450897655121966315499380476179717731223210399025658899582361995189181338891642496357647947142924228533036509775931239311248081411484549252107983555760498261431342595314745121098658629765566145724722568250872434710390185713975692056579116161021036286892738310258777692857338831300364600098717668712886291713082080465584362231564917036564666236992677536173991424063055966605282105140766587079427361489289351035281684207785964292241895587392440428914656196594371963717648144354487086238366825270090100339297979134570364094174287798779836914003065114186617980870263181190799486929071912295057297517419832468703423341726802568110702424301995336735099579700361595362639846926738955115016291825895145326483485820962909111421998989316561417017524116196682931049412087104902524117696729931271724759571679306087367307715111813587957276058539748529824578696086973732731509575151827718566706944588074524365536990998372759651223725886729692733709630141077488295640156074760629474473811276789003470627086774067405725313574498306281103230220338074705967139826277065459501955614974160030694644513878598928136211102261854276932028505890831031411463837744253639989268076912270388180971685691564190712444379896664849215980350570959205197995422436660261459393451434986353781999052957574458095544909962977771579445552475883565512829388987077659815358276506721020542281698789301071992699634267396358662605990231076720044185709213250859385737515464946905331592359894548198956335896786451858754997370344183951167557992814950004555191287509700305801872539498421200277785146183634381648427402580523460346779032931029275170184589584465773788221963880876317951414894293374059380848338191429666830912555646658232728335163118561848780732263836332140766898601736078459637893283997455124326779352988983489197846860725558740793323730941402984275490200761708732750545039429196704983031120576037006500466788606065175266104181456816377983156985373286841612292158675792930076992133987242119754544574224559280589365004175738371157542828796405854332718107272617549140993187103891377407348182950523595241866826504434985567799147656106324836799290302503427475126573102808443810824264784179765988596612303069703773396097318232603378480600354712729482275145650485279234461422401522025720480494869530588474500683439064717182151259155304032969704594792190312572368806297086246566732083525111384323452732833144312877602766944370108340279303579212867884399798772610132183816641548124309727857789456985906044350661614626229522062579177450026541698283910913167048778934152003455711354570032798622989972933411653094844167427870852051450371552489333232286954072710379801935264970120703550368539741230262587861940672381846829944492480144349340376994008213112043590296073994708022524070098154761577175032350545187633026598413925946992984539413703655191375988690458802045931859471576278959211463631564757649812008766632989150662682924385516229733328168354485700590547207738734311968812174117715683858360883893823330238916125563171014214307582306979910951900203312364527803474416798093938251593452082831962057657345051448789139461605562111843052808400163473940883234681025057442928266356293394029568958779963769595316462024585645706216619829445726757116309038072328969430898973497957183240887764534537936324526843872015445523230940812886817636055191462386360673098371975163188171925760278916763759838468216461185490316613814065790212580766678949082646003806236242577047926052487878034151984475051229273033300252602943958959686051156150391849881394746219940578067654397150062984522469045186295554778461615358497178349510708379868852683100448770992661434581271363592897326254634178203126594065709831803180768641944009951064940960894820389254712786649163523139166110002378746939208182259093875899485271156820138648416061423866838941674814943614020986121703241719823931936002922209119745954780591386312121946084290897068679585690200385369987961175807184535620241953329657116070600328999239072475347914913474188242039182396932408641963841392354528373741857834456675264395292967115685331533370643684313252245683114592523138213291513973620567822702234579000877417622796342762511922268166366442720422089770255981935656924968066725857455724320993074062453035163916363077343762302704257746692329079581704419766351462371006893698192964825627033496732822293775510803096035861041311413465412035319343424856492448863688905560194880973047557273197764797927199768355668590785329795563153060342618864042062726227558917565921910278051498445808567983061970040384092498707571857452419333894041215933448915504344143689185509002197581878669947832857938456756642875301948836489657210086899587618850795723981459120845055560802822019539385633789326334552200750293475818481002437829064544537277150754315732236596283042939583475047959917182890971778323165141236111245741559663242513758952366787457017245479969320507610899847207363889186254073643770582627190672043495758530683816721870515298814586764493262208746245654716478722082301720692141517302959340527460159038754898611150543644984509335052431570287875524782195699627973860148153052504183796205994156510958337648230363825405491461150661981328605538038525439682848143245731867620753490722348286710362127928777156750825238210711650812741368992504994221204491703539690949419398234790465140074743822480419530190802024682382564842752128364198450062442857752369812857047335472867541661205577821021714329869362008853723496667193108170023307033886312475460980687964391349924499002220564410646841599215274289951954117283965259757505832149956327880550332681969558729067049840490778796430419997230313665930559148309925525643106831372722767527876093313855996364433789626114882985374183030184904639223637456710026724698645811814697760773265714313208498437628944582954034387371002188708806629875771841255031881793999623018317589548798849172678675597418835671668669620865796891491556281405812561971335481643890155440750764163012464285664679084518824872296525595502799684554181081818920132426002310238258863776660404259581621530152813418099192810076120301910675921254840109728490324244611098243233062459019734859731803444291012539329357427161410506946476311987668837491284186323622994784353777902826333540341611579214097783936438410515205942254574500015888845914467052806637931926337008805465864958412899289930791267887172482868630404043991417700985105998765706176695622364086969758758927828592751131724233786228189042442091484760309105809856206675907269779959928639320403298478860944378081450537981929748396201236316212828342379365682776557111020263162910356661203798855319609324159625053228888175668153271666243149036546017993893419066821550296585950647901671835274639018641730655211671582259760934893857610192301560813497030108396372082394080980280961428086479167122986985568067420267299729031309622791829051477116153937607086283883225270112666729897474650133062366335506949508034985841118772649209315795596570133856351726708292659477115584770719401466593453102659362148316028268847766975879230272646985285513318382787901534013869958073905003941072642640579551163873104432726778606726795329974474926203016372516176560843514670262694963955378521102761129142672168649642442818782546866850996720067199905388591330662305323327390034774250479327497336299087893862275009196587448965739820641333642577044507565021725762688096522412278828411305532023994721031260421560010918035056385663822466498514672602914488398827883320257192968344867851338717851038321464109831644769837025839834201958233001159955402490257969726452613340796857468514847704123962072491750548115438600379895001424072210348962700219639564838107518354611758562137229710659100507085128297261824501341981298509464024281864478671253477456278225773604121358144965311429872460070409914970821470622057746221870142812559034014899878737918378581953957005909224380506558072264976540680412357203842888587132611554346240270645799698811015175455925395460401017429900963578924276158427721055683443849541955185726260642067274701839474869814523404141421653880684120276135891557496170572371846507906769579701387634531733206201110270163805077446124450699128062309527016056715438629115192474257408353265983208490124096676940795790547060850366310253964820214851281471218658759828540901256397487732039655782075257165037140275092773124011805877190324797407829248403453427254933536728463281603717790479790208007587665291791688757752939895409397209747925897097413164984516046985154062562138812564106135811329335812510220812986735219494076083369041793115632187946424622668491121066521423514955116183486969100729530180359294883200974409160485852518124221488304603881088184435909726248621332801946100066565201667804180214927749930661658082524986391952564891339794385205692644343728282161183453760477745155255340318446796324101867669053024445824059330106239641748823936532630256743031650048027588730784039399560438158750433350541902707509570859485193207814379171582079156683484150700097139832584691382462625731001834801589459091786082505976864862734676281281624602392395148209405277468042677122550523910502451633737743133333567388752132641517318339944735127625842117572528752622362980879329841848692131534792384813616808461785054713331342751459928051739519236497362373826092235573190118521379674909581827871353228302288330269638522229420300794503614905048254969590452404394114972120668225225773716723033766952450149309601830262297897482947093319564533594108965262653282172671992832826076571421109841297044810618497889948196488308185826797732485070226550952747526506308122196316516555239092432535508487942347653126186793288259578708422496663682029611481148980218399261275740853443802154375687960272704702278337438412603921285032067557793502429626846605977174629729338787895943070450589907538793469745163691528746143665406395680074145071104520452930517505723393761082985829749369300352744041712471077071825984606338787789018961864301907221541929182658261545477068718799986355995537058140453653180278158719324500447058369706617719089468370141414619997220875350991952154803713474217863730842285204679285972655174501318060087243848124405611481085930999722558504800073898447205843038695478162396259367018387521217703236685576216640981056796859586641372139454091858552460733317995723212190953480462922644961984344641889789023558375265773237849052914723616816333554954704954683670731480236328914884824234901589576634642351503309258131608308174001871988900654958486153642390921276523791970331900149378304161410734929790823766118407549776256275012980381473701386792599002162265942955274673490278085046850966639354618388636780629746632776282941666256524910222856205085797498185324965168327800720658954064887786416241028594949174978229568097721015010125938701631210156362047493896466954794106143549170282511314961708823225459029553446681516143066535556772383760567329867110630962835228981317629110716829398206819584503802283198543661215898864322011590797138832719417180895113046543945900258858902499628404043800803455340485557264065728458123325968195566488397847382512893959245800512082786134802670112477699172931734610073004896915356543345465065724696178280750785424688503504211596713348809356604624998104439614420903376621219940344467974777078922468732089923850521786425044297042115466199361764392013735707726934050884110550388654748838873774062055381632208884770393036014646116618740534681204110813480737498630434852958848793674392371365789250736765253883390297083356732109707045297388251046885583308068256855489735961264115616285403816595984880274149789628103612287670550725890153771937722620377234997399100957914490821289375441673801671472793389884139612751602850688501707910231370135188015177724400713683012713409920503715124894610349411043810642574457252018390238163699831247989547580097975058682161875652232655533027681699455305503480965022246176017478213006073828616168251223141389962062041355394131380661972530272038007910525742482487304204057930360086871415222511851196720815178258803505176516130858319758683144426678718997664227572606899653943918465951060365858701970164991544039892425793624033527988458906062361857369320862433349985184725706631694379294650741877121110604217227852135962124344816792854355278337278198083713512409206526928418637123576997526385378151446160960838247194581663658589372795395268924342674689854156961248402388077902022971560841262293671054703663530158042992112797351990577126453750980868213024287993570608211476294865736070777263437849390786354690589067713098793307010835328182760204088054241859992493784625585042983674211700073465492878970179003758063586132116527571410872559623002357069649838276378419304719481002743221811687145189196753627816246537566809707224979930495121477094779606886892397489809904698214254225755006419043551817112066203361774176789700031670901031300407308241722098482594190238238986264407741783829986451944003108834573473230434154502627274498935783965498370177818464137925753130012204157647020875263452428535492913359548218553357447652119162964214664196801147346760530790209674767556890419866023197580338359030507776084549492348679751700577784731832888457462492322741294549661749385821452183720571718360546626885713862616575587593448466771625168225257721411516082024380977163758806805636819494327601184399896476295460182989244502826927495924836894693566088153757046336123479723764469869669903329050405433767642855019570573013409713015266334456611385715536980626502099996777822254820702690777880965726379497917680257572617664624609083912161424530736538520359509569642599234038356983759495090190641483718646984030608190094558269169660682559719267611610561980930484978231935560814686818686122657441411164097568570746607389562971377054847710852145825860720130595210683952805726464694533962327906779960273809823811832297595436400217931181981129745886438539086811268919579302826447019791822184960045492221692465533977899935133631528310711557436354948967989149824437107605761831528870354500164030326691730738420716607004587729920967665867421394944356881985953798171619564419262290838827352992518549667248662717150438569805636218253408201402756469281845040012835237112817796526675457360362202948000953137474021449949741383571406193124535576051410509018818215078859829941945438409140576803612567081105769398505816719184570941301608841573316721000492705232475137304903162228691984982463760845104571474975925106303953917201870308764656050650752278299939990502111243533787256594983076043764522988485572723203366566578399207148308621891480771164809979706921906773598918424610769911819010722065765555992212034447115826102931104998466870482671826368530350677244069477027677533694586167105226754703399229145580175069923368714440881313302662114390425344762363936264819560940304387576528996503117043907027607343685076199618080686397012429381691589982494466895141838935668809671018914217584064367327138774875385393048006547317792225799657250471445409275375327537228234543792429983025084014253299034584939773607424620268180608568110065999747136879912701873771598731204079066665544936348768441010628936213998190699410009446012139089417978314989178587715051376964006066905449319327664758682418501006463726037958139447090604913412722036172375985644869477875228640626396076852481748297152480618760164596109122534734272300292875429451087422696589058603335817989511768714434381477146777346743265838070163314241290320523807513051101252453795546876112799680112440413033285751364476648041302106237803712500613732460568377475057422654373500330999989408570503001476375477051699521597394792519835855530501157165973917290714452397793226370829471016766428025981124141276316459962925019717342541890384971398636002786192521825716713314380144808812451624795500256472076900310792990868720480212305076869504460855634959235311261108934506479591875347912115473687388933842488232679452716173214896878015116308336365278629690123607433931220210857239536624232732154742297798826815706128379050505978756176721292918258693695829610796909140528546089733979261128809186868590670483703042325206589358042921189075052637965038546666662639587127942928472095920096924272948921478048800190382334403939229240966237967341291519365818336140800996526163214920079450675882608111629608178211390373676813856067479230518719624313212473582216716130841042991206893862774763948130208442694004774859111952714237877173122420323268513423300712155403108319136422659971962732918326547667539187571424891629625307792943574169515313085247598273898152837527839434278672319319476060396603742240854590941967061096555382760062343773525875549236679485933984474986137671918611579779823012770957528682318638652324570429037589364354685466937287449111514354156024296952074105190541536178896660855352516020515325972709052217991828288858253647066516417404024509161499098316709752730513145237412531870842212917461154509750471554259860748108406019004429995204509905665304835679259765436579798064797954742689090141754766983064430691546663132786376785609918393189943138141076081117555057925224057034243040435233486021641415222703056092211811219913985103892569429692668063860567251163066192079402822410827510643358485409505396006211307574067828869136490846389471595383578247971987527429128861844659330249937355495821820665682549364405127841330084835386263968916842700103357188141147675125641828900318736071206449365679475306877458193680132979108358088468691777569836305829878180440037162395294499149724058402945504821218209423080562978008228266915579435485258538928344461103707589068175245405935605239857763188407964555411721801038035857971897145447594266183969012658425138677305756383507224817242012456945654546902657419058526813101985416713146068372533054234025400979555362222815382557791608324802366493025451717427333133578362623416487155267776767188374757388640450616708480470182938414101826106565161378386582841286204522411372099754376295433260272124882866698219011986719974516969315879087974076680362289956517999913113879919898256380399670933548478359153665694317737475237112146518835962428349252113207184262843816394829847464894006057529716226477188886963078941816121409455396689817661022760781532165618274600922765657027001661457202470248337297053271647465248980830032379066182508776196520959810772602480705593694163397852690198534848959774138876220395683110007685340634997711585935811559458244899293299886590862079615272174871930883513847690086992339708953573598523317020056319399014916374680916774281271172849613052214416759120569486246999449671548622441546653029174883807183415752416721418019790967150429608036298154931102802940860401692909539614041115724600205547846687871783700491708903819966684217207165150262713874884765275112584546721285731040008349433707731438374802175993507542358387011159454086017092072624777520536589894074290589045258913338716543003464019449060443862580006378336316830086749771115625521210581422803600508872321203416669523203261396203171564657964350419890159905081736946889551773358282983743086723137563888861733041638263064778814331258118258152645039125702613802419388176257690268976032330474018944132516597175932874304532031975325506351393676579092170995942851005017241111019040649004886870422983430142451933753902877414127667742825480118555325098824693162680329527601942559114634931987249618756095509713299118453782461524821716889627530703085193438865761564687496854713947277863351534617885825941862908828860610724588753718842096423021767019440977867993286657277318884982440884890533788589972554402013781484984751038586858528503610891022848930338745081077855580025986785825433932670320628989857978236354695338835389416142776566953639722036039022813768775771400116025549815553268967903765001172442961868600265512816600261894432463919576783257007115433866065641110281798049122878312220612427230005117061052625231074683147714988449908204602158907097161253276361780358583466604248979956198169724105271799688190315497299417591229435245026760038040922892144035899223187885997779458741702790006766282263231138719859959494909724123470419823937717863425147792080210087652890417810407863684495630134464997306396008627333203546761717398695389554951722590864486468359210547545466399621825496614055182470324160684388992591243305526796628549338745116927686605322250751600082085167118172531068418771502009707728660657432701974486588693763598030644338614130079734282848388884296445817365981615345883054044927027539057538416943815197201680875161924405955332866701510277862935314175082994460332759130096295388181374441647806792170009972407582551533369981123254549384676195079691642446300977571684176537955870384895395412385883320792450774343210619241196022783327688370376862271525401779077404108076211410174794364816814609669087620920306301268802773088084366958021589761547501810467585616115160497419258317202120804125660694053491932722135199395850872330722056688638124394806344672489282853084243145565208049657076364526561512327098194605505952918895029223115842492723028333613926225754322378402660010205467353334464683184518149347589420208583156633229969328424177135607714545476481450094195447997455933452440762289503198723201747171463576283394794840571310519968358497456346546708867982965286073742363112241254085166032876307532445979285535468161851337509343511868552953535694713880631863677816795233023525029727910666967556113793114506202600731773624932765546474842195381165472242667179424217725731401512973777496487591001021841004927304521562859782801883205486978639443983574470153474788243366579955576269591799747383073948746221023819006125762939494042450878416047285359140580268228980120720387763884576980519460866725812009804501563766417821684302177749178241206588389233731904410716242982748269943896678371252152977969215546108155457996160664637857782616000331150818343863822818561713246002863149742116378701341651840515404543047992526917718996648703872088783810895956310040764873433039558491922318608417735418417622971429367800076614768617131910533930773585160663885361715286060306117633769730340886392763724537860017864354374229935777042023511610021439739409159628550535435587365658021492465349412236161203772131826062595392316815178412968130386383426630331513749106849135848208279144556545753034649132514642970283926877934037147746125191838013481637012151232923547560206368110262532210955525599326687922624037380557221702744722067947520195581093221817627861346990311309434415509236547199389466343975881067033418785393487285736244710033216703909769940734776910070539928248569776769580672431411270475928228834148211830146795257041148229129046219930781404392774434141222844939969093386651258088584580812139427192833469679088659287751547068203114897833318349636115210180686683058645089561305968027890692098839093330590337037090196501123316545503635822005366684871861883603021279194885340632338689790449512179153707441238544136917358391487071522525471462224476567332366475151483948085117782142984011871701270835061266611204785273953553599772652118179525122557126809072882892318900538491399866836896834061132845347353163036877999928525737929926259962547099075809764417704047907843348733323973995971117459998190740827179874299559288299389132451821331247822346823246454952172479363274394075331543299542690691495570187156798905974141437962280851400790820544839608621903525888799207658021899371228249825799228283622800745644053553101854640677464518935877272218154608691746043173410541893303210518497987402215668398103327561390161397295053573554766659305678996221776094407478503310793248641214343765602127308267757620041215476741247298214592742980600606452746948783639856818082201865690003106074749622711994817428518524623675696502277680251842057264292159969336079032120577361650065264978516307600424286208401797970004871798213645899034894283376646822052275266843800485492190297240931299447802806316780141099371935846887575614531862845957307655326467059604349402874605913270770045814654996269599578574461406874665838147130732804203287803943236240876595549951819737839834214589856688185663443956408828998763222441992182193843602116742224325847269841695800755940865677912284633619717864825110895751697234592880082796197650213568273546917910390133261651393237437051588937649376784913097642125328609401008478217996821603584527495598740864611671837505540329498152633655208787391121171482903004861811256157755100573103942367978138655934425032402180454827604255332423786423989161849817649334290556403077933242366193907300875364054757534889573957642012231897344524735022058353488714406633604114197262623643203606323529235007807914236817269214527454286274747077926362624252954025722046774676515553264504512510980156702799165057868776444730255327144867025031507071998708233907343844111759416139249134697637502194778687482459161083956342573216353382305579004430650581854547311406233888221506158221345043067434022493857803284562803415776419555753554407568201281317343926992477506059852329200557431325457745986982900473481744989253098334993772760460001527543849355344587542667169386991104776142420336582345362419764464778134961168080227777419030001594074601353127459118711896829408286475518945153358330260709996994097041022788675134997457215755642306312971495933478393352282200482059364192071246279422143506343278237363432476554837867141796472157469490490537549265940951290195441025675496737118480174833992975324360050950597901665378638227433420614778143492283608307837314819791007642426762406498428145861532094465437459514254124694378748738098066508871944177240853014114425716365212741068603677838165643875756799428627795310927907135438676330877816590902232925482633768050832055882874695155309613325854319881985092772006992771147877831172427276985025073741846016327558953452061626086657498025795078043831531941675499261285149250008715708237001302678908383046438656086875292892978491118009885424782325498784520699589245856612577632408669144099119625565631975705039432213983476831640451390649359242316614326522030588046454477360051502904331006376542127324913059833670425864739327200211066594988920352582419646954701301556452996454667459621145075397579406685886481198819191987801918193489345844151487680812780820746686147324340639509911577442291112335035740639788191656195495559588962928296867365941429802891322270603857378841357133554243491273822329155515868942235830887594333340238103314839979923652678063814075685988097251419990622112245932115398956595043524445474213113980128190238102492280697221465412834585200387759832513257642472534871266019246383497549632813541926206616903484996661186349210939533524303095739874748917977445704763970361409363263975628263083301617350787063012418017841963168601206427388564662118490063986591966478339553849292810145956951122437515507287175131465328552806427556379291282013128605715729231497853199458341018189060252714876344124946295052956889193630836260233585369357176069031853113192357941952405968129354186340118778380345380318342152529705130895642573060741035028625706080794176662977009837821786182971315074518803264031063334951790233995705928233846264628866469517867285823641223480488278371149877101648009181713888102189514527971905932870436297571396747540262549508254173488994004082273007766552886276254134758970111748576371403122292145870014606578236049930497342391427147553354959839281628731286029836519588516542942920863349206500032976045229397355061947489959388566009113308344392645345467123412986957656576575122474400361952865424399790514655787400031306623291431056893178082928887545628507293798746514249895819537681643388537736079274226082228526364530628261421678455217162720278128453081242054130309115902649012796270879886266079149769168544315699520472533185776986488480351776031686545057743388159080366601947236973924204939017387345445998309584124950941670046286776135462334266547707208207391581429496735632089345179368837645387845143906472766955042733440180579497276427709359036855271329915949634593205217142950318099762956194003374303869249670294908270428394990689537381187989243771832476607207015906491622605257498186391553763673607143496326480184066883449524366537536536699794850794828019928382393164378748264367289993304624798084479452291775340074126155151678050213321207167635799352070820625106312093909792253182071980314255484617223557090560229514359354675979886675950270000122474149016232514639372585982366758345601606991591129559248107503777212654211310786413494662746305867256755367579363615938412630459433261978860890457866928577402380802703874298521362437793406447508418945563453531136063272691553844572265996586981045191248166842365360901984183276864713509471458855777857943688535112415010323036772763204090600176162850514161019861717699665720468875828631121374432729241170117140916049367546511190735276473812191271120760321275297280311181256081117810541909603525264181670568381548338697080944182088896215531963239911506514223950985747546678873652248386022288463221407253836367119859501303134226879800093093062488709728422052159649123534498507794594432701563033954210280121100307141450400517948706876208159461835114996161694698891562458661419752178850481593482187598284393837974102986506601059471540862058042835442597904017734378613394374569034585785811551510117705517301318642034049468093705979095956422354394766105161354924669571549831450977162682573734973207538272302708595318112001670702020164661058632684253781192130131252691985793423885633907611189942653363455964269942044102719642536429702141822777075891389402709883271402452439677017742369102015958192340163193241297958350201849621540973589812195858157256263809767437844387593882869205616225507221667205901707151007519238533131564371144872498467264295263981737114976951454964559980267405444597338721976903124293273160328647044148400261529401017481484377105898529511106687407166011801181598528017756695631376156134326739803542283665087459905145403838546603297949469902710569294713028343346691840935341077162897359783084371785156248795799285474205545480204390954671268618098986075869685922520505218181958165294113348616531140396765904621198281214029718726523106956556101617370219379374860551629537048088154324386579551810470574907559935485194821383093856312799961191942956619969817863283298334124799018841452699246979674521496420621947908814433279987792004747645484376126455853091854691531683242604746441025788238453191546133982442832655268925535815619068388239162643334531280069275663370243927044941647419766602480292875255052996869350566829768869398744682655764373389761871065741233899251867553231205707873313764602171564345752011774465677149562078510020381293492250459036187871663790671633401150580290413383196498139118001449366344811272706953041842597601165677002542386846414034993522488711001004208479003958831559928932025658718493758771454375346312171322502736730327077356736568422090009854742086296797091181739908838412114839063526268296189843786421612937325072977527622167383785883443850990991889669037085810321366053807406705510444631902884634337434628684723544182202615918807219915651296500517011149935698176006755809763922513299139486235124596526059658366861026364472812997736048811581444791380326880380392352752631476257907697372092484161392528181939370121994085065553597594399969391861081358281781493455749453381683016577638309005958957393693829236036555730856412619959449730538604825581269126324319298329140452628299975009476455811527618552679041905071268486096605217214317707771020485589434838878189251255587192075569162964447182356130081320373715302258945587998534636403218082115123271497511193905388052927200683352849180822398489333909560642394509247761496599998222322154775214331436263090272686199463008300964107931840291189012502036380246876335332492407695049147018056897731972487149290446790272611168077962706652210291052919915374515189919691907798748633548748533410316173336076875700686731704591823160662919427344171004720347839155482096832057946650245135307504111034778105330060826843016767351858698392046236597010161186478469079987149204236121357036026911376838892413434279888862834081552946433564050205690919203082169725552851037891821272123339969893294503563154669211807229409120493001292943521473311994585333495444840063765534469946310753086471266931991944693162121324734730082378714303428099622798119782217571994838580745533109296161263006627441292202882724286552739695712384752473397592805879644516306715340460648811326970468333334935134298846729167911924615411177405628017756090703907707620966434800930072558294631444247126383546901551032525551850206585712390019401687895936461388915988030577647213826272166521822517396010638948537852679333881775086814289712275847455042842072309430573951274265623739751369065158972402113146860490134980539371362184875913560509306082011893169211077904434361142203968983696990539039490500935911117217422736745497824807652259965705229824994608933045821889499832063712313535055977249948066561801263157137505021113755852324480275647399916117528119505066225124210424228458634488049695088635230474391174970197888903637728967530609031201941933560901715845040528553035959424358009087708099800801114389741214384488675513891135997689923108970903126598997291757977702298444467250021298130905678705351739190276391375341631697671177064837254828048781393556354297850245337225385095116247159146431210706274791603609354809140792960350938834978326143622572356682107645612958115888681909445579870345665369812119708889019917746407153778071969496704440916967584567077087184635238606882421352078404437237373244696911059935522580202875743743732904582177401154785299813676210609170413648619554646430903900524403146528931213266099437941122533318826768362451263597596125108237429022697508203563295670862392696373953067225047943740903283903770934649301097103854720219932050069281565571879781727346561953463563954632225917317274698593196185870899014634907260964555132188492931667624127221270206278386037154731805487980186438380511551642284281265943751060288609606596534420241313124396594740294133860229220573384260000572826898631958753808724200838518264216508664510866559640539635178848593789636937947806946519185936025934383712325735583499839806743918112637144374978258876996488731839413828852564086197955862301382988952439963033934334385948541993689164881064961941264024209686650776830482872099103064884537132104544428276210279881965043255084412849691871597195583277889454871213542071831391847439295870289960344715591319886513750422828143703420939406934514513501847558780149296092330814856894100246962107495551029158652929250029000239281006984246561009888185536951839843187568092909884829865388962192829703185701348729674654634700159739339224186256830739596406806099606051846191163069706209516632537831678445172852617849412708810312838566580137539239441445052334276507725234293892857065713828994295329056084252362434665237555009442502792618894576837438918135732051471637210107899794847073138464552344246177010218207384055888280927566491238812472524524428823808171068349299343485203395840536455757734271924170647272534509593560440753640920798060033648496473982900428904406931870990659147745491328649327830883524212511705257390277188126117641341913220807587877066997847245788861398505635196654748582275631108256743853319582259617708941213140808193257690791027669790751161525498409967934297813681684679940832386483634818087091855460857942126769900787970137403495218040900274766887594232972025383084051711066777992808153109192870487515714248046546916269260307156152406112377233506202170317691725443556936637082486710843062586668126403607604186915358300522345547938311940787711748406227723373290196779583856775578188621545674670909685513188908585661885493503318263428512455506251553553863308831721449921606945447911442535118534080091853835839722221832434627084492597559737301120786360638739012416739171541226533653778039160594565668723564379551365151515564582254543990286294772156680479166787692234776554096116993074583821932680847151753554238902378413405268692337913901532455155833495561914257226678971244121288859901247361987167409717547972052549510110913315069248520910134564434796249971248340348612236364815223393309399889070445367386142853194254856823750623545469648490820440963535145181364612011227955868261865372017578302535606677736624185564026541814464569347765615130706433637692350382425546129730372465594205597952331999091846810921332231717065654286238343819814248107807045265307694713083832713220093245931749189083741661790936021276162304986862045200389754696065435849344075117268905462025684799147471517133420457836874329923017234049856871408342658937741641251874757960415348788439881855493729780605032321835800010644384454757656901650434574720234492041044337628232674951508714101804797326923530260081945553316282609364176445509227632828758737149980421165961787403665468379191708597615733152369141689194213651132176962207072605100824719798716788677943651297943437647561951084318871280490959638893297835087036216778490758101396680194313103348778325216082447312716542039779657647153124875453059018050966640500900142421208220102622526729934184052418174942143792669447460105784981148358351893632040794325311495618627356900994152566605050882083536729672738197434150263765466928591226603827712788133326039154489874471716199772946971022055400009589380285610450317837389441918309486871470137958519576265797728784573864409459633396472993875338213677937692637798651787053552563096834951231501151839182747705913441148777633409115460630799107820624602501675018633894229798470414720566799425953066298843048984919614798036172611251134393559777931788995242171493060607216406861019950592517340320181514697248143338253817601849014485003238255117221814611143858293952949911970046976808696409391435676615242894934964734162696021740248213984585060718675542711953809718874765559374296566255230388171976793073042896935414851266539337325803930011338234860259162597504412771666324263706915528035047115220440319870797437303386903121732105678868003196617386172672922094817101986195070970473890305779861982841161208047059702593055025377629389832925026631490048476340740257498867923392974024399503622884359967084299882966134080076267782377293882524159905914684524614388183610345243679016536409191912594818414429907033211933995770234504938055185586076551064704489324728340552174183605780499808681016469684411052680845216501349977235454259020209798355005484614826200526250870928369184115642059439024798746832940331512807105691112598767561885117170634850676919136652073289623529213922516243084730237388524239546369668143603897087236838712472892465008634308455319138897238047920994590775432839682099089719606410379301291615811987898336757205468637603994631445506682754834140837142494191705087881351312906384517576672733684222252677844378885340739272517113914137288369148255624290944333511303782238418110661583115752033376086553350811624440703315133675860284062944742904517393572225207284442904258181265590003701043742668219088473704621752603589689322628029151209004386266019295022981847031615638589402434262397816547458434423427025776041350434635954116920570534922722161476053223435476519927547331246805787323243171708649010692787130253365493337828489206585085221662419006916050488058918122434227111685542674026158024140779981349060776199666174097637740921983646329275085148044187018300239708354734168897454800633129001440434113584542283066908990975414023136733794359869554213539319103482739240190416379242262251523432559128064376489484001405379554291424689223762088315054436492603599333394827126472584101151123781868811504568012639508106358638409034764543346687611008111392652642788119818007187103295399810032791168147808887623983100270187430778021008059283196348806430642011624054705871372785853088865589141747423436365858374666552180867501853554795470500477150788059094402552173283589465084810724015320266892309771060068355861975550676540823055187783071197950651167663400514759752541965575571722680525785877731913879848394118067375780908923832832292955584599154463023296284345831484808990540366770081227151341829826946323119407414453918726233602124544548424513192861950826383476412841447601324938706976743455291089330413289763135153812190210914916543880575875549538366329442371326178758576313145038078893507277330843055855113742388294321234367818014669244447215731895920273152787489849398471394056420887475947047982489499716116073846170640218535106178131513527753289036633341930094829388635847121367638355717602829409645217884060267299458511793479706267290028879154858392714237457930020230401556584208216376907165869497488509328527006192695412579498135587295561871858269933681124115788853136591518757759690272193139114757689519320307343026786975334242003150486068173620853082557660537099312816778012713617655590081370055571051097347634873966584411443424529956867380021260544166098596274387362700287459619381911796415618053706916535408253307914485415054922965067112547131162480937227405876937738372974448049699364577112933862371776035716857403477703188748333517400397408458275114797433939250304814077903971777687833100401626092538710106299622652217384054375460255698646090674870269836761620149453527483260307248836187098342879799339679842273541589940001539373602810224506570261975240163561571850926937637061295779073002358518096214755724033324942357359665765282016021206300577058643722981261922732314364900054218139672843223166267050478049241743103584459536825744052677502508769618388708737380252517335143815908702038686125765049985581029868555868196346131769437385099765824343923155725909139519997387008282475347353362897878227807983887883701367754100833678905384022231756996923029345592711988004937398306166736120546633163021579887602222778859762307443860677694223369306087885185917267355515077903027326301638229512387091127881996843968464474777935987301021340201237498050833086084478568572566215312968995982322753828724843017263310119987849038123494162911798853542387124094787709214483377205266618068174124173973264831708006413079281600536448399719603196770021851604525259651224005624628905166698885550078200256825538343571044286291660435976894698467898278854175168842276540809857415671962878749431396972054642682585498752615567719383930300822539361640419975256203471951077650343079227140492670279836590114695717595033002429665592806423254242945268546943947955230833447969288233435572946419598962415145709044815038007044573345405639196290231235647538708342955895763215081800562899572824920062295308986539652024865905491099389188902798236339451539950260286855714204949802527705423614180204478530309352360397083704882382173186554706939388075508766253533555542440530206783647852377848280183768127277764450257161484908604908036944657370525950074058100053414953908821106746808462405352716800076054099018151462609952193690053424962960037882934552805363147671385443677625679552434273208007239966712509412519597867490402919166817784114231139662686666914261998242959547662318748379978747534431083848848480149326079427876499618166353907683889217644393403662567943308473498230811965225449774522343670837283077833092517095807297323945366353512317611855089260094496591945905135547870914951924122148076293583860576968578301217617267206090080865875635554599089022559433575010981379625585797509233484220064877051827427776232876029908057759122141910816755474369369059846325547768813892625857932708830601823148127490752680681209490616945201088668352397526513077051800916322635551613086475254918317116205935485804620969441882312911603670519988520785557614906461110949637165154439991923199343408618552081811876054303791973308848215185007911859405856813265569079164003635227153750440677871227060177199756191781480886127873935234483155274790830539911634750148365343935631729355206288358966407880330734528411871129776711734363901947281206887491933123114354798271803597953195976162209927760148250528118387235837835530571973304048974322341925383281079546188734429826583161535876591035568315199640978638574582750660137718055806713891078364060518817301694052342517309416248553076398282322734288658629102903555325366415227173516031924491950965452979617696262505032691756854242166600857877341821841910032977318157569240250630828072782703248385805590801864162303163931064265221847573507487573864383788916125576367874471510898984949613489687832859002237538202251933673544923820503276396196654198312431732035363531702552482067544794669961214090040161803797823815964395389469132357393558789392963818571349842594206928870636850700372288845262291210380271896810661825499857780259750366253475532071898496440935090075925115272869780543532886230810022252502949609049865984690542932150132250002103067728001233055699103990897422332461163030640300048267323464362609883051047869969990081909547927654309860860202907532544139895496045332391169959506776789162566480873302351616421021029678403606318543119833809142838798227825168892311189825568714601443757312346211519083713828913305238549507519779177710186729124349564398153435625114851424710743776083022822934548607180610117986129804456191162191031013264651018116753205965916069808318568519064067204460136136621533231071499812680077789869312065063213065222012819424698243232016896829188708233078582636050726714736435635153573862511299872281108764471579681162583347060146049078506509072812823375088304267399852223373719754149207868987236146325070108441258225416986483686347974828206629349227501489651527898219385546174977871488316566111302304965710116513309735553184880353866156566561965613194747642965712190309650152701905492725684516182300289393866514980343542405573904496783863871322644840567060155981673913403671396383148918346064423353763962311479041098846173691576148065928582134056252580154428502627451906755262354020438177512926405184681966659336967806958791162855593022545758070830763246421315489959253547184537387639852809818034555230788551606077563016113320249745235158237295975401388316215590628613329524248159287881637547336105561955568256412761594959379026995767319825734635282620448951834254366951898417009819610910356217417198511177499162968731243311432593072024572644777953332014909236338536949734142047516692881433201536288818936584248398416967638151568044990895569737572716965636271098915528121459656671601399684629052555364952603029065759140318323173470305084671075184693982880983104088336542411600689713557689322265707840639845291166371200085540243611707155665225789932105731828587279863685393542995579115286170144252093818424342929847463089375837639246939576195451019403065432862977930456797065183842448195244173320212696573550899609648421959931149112418551159941715600164560166896039910689614801679721643320715636043533524103138521323028914529813219434533145394933994498425662046043717354979324038628235647896228510626015334180079034730487111802410889357078132536184519530584185389764028750491776880878184508460801964883329452308937801953863454892584392773261133762235851012039671644430179881371423051694975732487277022685836645841491321953483821222369935473575146921300953964826827923088356475461123228773744836722873675491294569301050650965605768068697498968477949147388212710861345536844019677017040103779915089242709868942895398036372445428866562838388857848132684367148953483846808262624872005126354634255341892446897257484376914340092588310322789213503995037276040655600143130106266361049240589356775432431538376584369813921747856739938709740280007142984671753339950949030692771464851780136551548481020285251603040058007027380227794548212072837033708390755637523399745401476027871276522622047261451826946565833759763708150403815824344726734193928057725822037416289364672760317673860004473902495670406643874927775320044772170865955828284839067563242234025553446755843788411013643444115442116372889103465838154827595128042683902617509232280197744963231314719045413014613395157740412215629253084412380729325113439882637400636010851503899268051936995145167431642339153209319261174546391373000699477030347665291827512554104549180071318125243776302389983953735708429606400481026565334901417711975395790643770130153260768739367130398466686207735883692489876604266346463605534710512811453606566837759375915271702640945366901562113021349420116751835367244744379301152589740830197916273609744139635360963170832810117831715506383455013839641679486600417930617074196196044533845880523547388946686135067527715267162533294827154530083109330715608732969946982264730757927087301265843787232772086859492164107828499669767116129887493991819441558856414280857229032919874477414892796568393835544020465109717809862436719943074120814499022392074770764483100887969087144654877336794093899438526607611501179552769666592462647957911208820575746561000730750587409022338784608343651353235484873477084768731985889012419964433125087935011450294880942972660646464561532216120093298364434399332041783816668208070439099870305106006201304380017620998585282785880872546383263611696387757602176812057103700682477462164936042656369161170018925542278472894293730440208101651625609341123170802974881274746239630904098092904343105026391888725729619233088890169902608874849812244758284917276879260550187643617987454914438795676175057244356153308848190458422406559424284175540780628105895902609051121325081515798479237459569521721100360343478134630946365293422148160212865746161436773620912087572129569845234717941118610179678965900041258285246072956618950419552211460406637503503017554422422556757466188283824809749312659877894985114693365010460342329377091968497406924779434829126707665474425271533080138926214042756132526576699486862188337114796161730601477932828514229125982248723301136345639286452864732317426167470514259098987260099914409303187075341110341437209798618956947867139996671443808635631729130823001453860229351002579160247665162072505577738079211934367468424080169209355859969399323474651957958886428976498828748189464698284314723802438532821441925793037505441729453309584719722735399428843722701348266489036518200011934156384764013056991301809498270095903956345006212347594589157315838504874468509873407337569778597286897073812639114678075719835737457106748340676688955345697511977168334041838344960844100858578027729133765579389982164603970660353386375959164970467751418296992535769787267344257504853087865171300157089941381963730562700959468913188634607581833995119563055671581692895264271775940211926547913156626023776521902322697461705377599712577075994018211184101147702928465675895714894638668049429146630111592034842129646199321393024898346209303509486605177129533032903602059045760504922047072207952350963207130372393446677478875580257389063802719218205784060057642604069861403208987613991783872411416203056615015172567518332755072523743785348763308142259275184615795820255327387314249667723472998130238740629542138374991943327549545658164717742495720931875455171234384571762549814951409552749541378867996747812176557350266875167204026624727123298387800782991746221985321933135499358272280098563217402443224961984208375327531865605331389710086349450137287917752177537332093696645054070465976269935919536226851744512712608065177217675531850944264829371798897328617893336289407950043884672147964537302219899620484724021277351276092919668303713725992944640484543394673729417110851854742582667072165225943490005284226974947400903238597722929936239526413477118516117851400017177044780267999789361943184491625264314923981030851410192952453172407994957953172026031366114486994987703834443111530460021151779248481527696464941177017743269482287856975323728787096417834112787129787844648899730039194756969057325283022170385289029697001163204741805505745557074385569486119427622746570349420775235647223069821545075989174033921019164443859569208868743056737212419479654782278758111258862701530695396602920872663971100433682081160688279049330223019538197478926398030197975880473135120096819162606881353075689009089290408579529179927054791564554447591599987681976518024522666072372750995300863204088761287341251611082514048117049162139974555015025674489341575824359328625587489847006207552666342779218573170889431293852634483109392102614685209446461645346250265336169953850612021957626282049178236530640462545037982287150066841774656786900102216276991510684556310433830437456738903467983479001870125935541222059709876807533494732873863530880509485555700544230638718484661421904265903749417820496841832580945176247183596384268003347691889694771275036405212485607336317442797157327597445710820490449527361800263963900645920935029332674759429867986603057894436785543713183290597070840160047077622926524142000488720656966947292997576765678837563582730043779013429723759117087331573535271569943266813651017168891708884556052074938455756119871107535368181248853147005265492281581216143163959727272904428955666656646001765441002147717239807018408811530173038637860942445448691688976895495112886219316063684463412889711551303367944839998984512103247539705791875567653485267978116585335435772040546325100198490204746536785107597647907242732196142750370830076958641182055398164728570741682410463199662813318803995227696229404813479525332657448967480026183013015886957376661206080721088166989132633598005454328738531510838108471677561338521120145121303840065781357599113998554544113535371126713916814690531200601000940402106770657406689438216325854020768268737908554773551525974280510628338552044514004286147828648905660671660715327476466909326966269737488338624695777940857205235853696666303556732575703715095714505688654283082131222848411656571177200228149081545136780849472874849211647430290628168866331959559151426958767995273318468832765133680809453642347799353748297153756797320226705897266885088318056304906176231206986285469903330139014897890465733352255902301734026476650254178762830944802597587735888902222883695524162009350193287775038996619315390660713327162039294516932147081795521679069813425137789865023647516116356706075680520978380985975217618730949987363313895064383823800162517867383714275625480219618920106716784239990057013766096609653179925477613503930750994389141683288416055847414618656813412747296281983867163878772387119282659303255308500659949397623794110632958939088628468165371158108591095352646202056193338672574515164043744013085029852893306073441335427838510618998012649663580298933196451476502726678796576054906628010561777897661707570545585914577573651426341082033845630754187585498510292995604512255623047696939555660552627323608823370606158405208104783704878768852388430622122189970899334120267486751988482856409554325362787560628378924078386880201202477961710544210075083741813097475261742785259552353468411828306752385687971920670953867282442982450078347840159531882680900155831800184587045495662317598035057411566225029186757730733000940292787706670529767114949698115149934207446051748462420331291731254426823013908272612289670484512491079102883536674995224077812527117600616706177311154753176804680073757821379016121202668273359710286404508392207336208470014103382711615199764340234283149480278672563008324169242280371410411742477531279986876110825044451915719572311757075935756070515545561737851565509095453151024300287956017776533736344472167664425607561274528243048226928556228116868087261189291167382563811803421290494205149850624308444120080967554112480614061597754741213611420555543810980615644766490782025749381294328042838612857094233095518341758042661229583814224743628915336023307167722370351821884647768382473652348475859167723351682695669969375301877455693346510786566636723748559206396261999458167880297424065578613362442422702389690075811388996893140475355793724953343609922124813885219389301680768494214041761431177977077607903448710105658485206127681366564188340187868507336861319872858155444197537591627352064331115157882635823377601757142275612579265759564208258399331470342417242763755152801427990313962822463133044984204929277459707218926247198735544036577596176453803828363282937977847167156212074213217733709733398112361431201845945479878944766131910470402029201728858260233422454246188887414943572181950617619681123820478139816676356860665280345387965427330034675479741049396240077920473108803614783752961334092493858846298862460760427318295198172688366693111147879292066982952927579136107549886452467411023088823274429793238847933629597321175551550605120462717119355643633783150566098765898000731784628799439808090780122747127649699983131143308876381519006023494747129323921373762922498106481230149048737381829065383682925882510232367478326593150859052610637590399435186139798284630318503113132181520785051946218943347646195241633334432644836560712534843970252039971010219499992929813685613342151976029871458357570069574681699881951852090281421239321888672867746231746769878746088080923071789277264360088703071562074187331217397128806411821843544463148186548090100006887599769228014486288468602867802291139661326154533073069475945409883236556576910758719009638143866051968266295454832080333375441019370691385310236383351030851282399499171329102381973340720850373097424626881208049596278090617585293703109558558498068708619458397642665530481771499218462198636428153080157433950868208335802365237717102721709373849493977068500965804704198188165255188241458271187490115809941919333774880281792165451118063316461894109976306391839291563697537373416423619892827162130010486706044803945407440157568255964706857631204320730434961402158826316491024315372843410502727464845856907643627418570766017557803398922858616641410085056347959100109842524548947360074606864640772437398386779525516830776819178253992313420829566097516472508689001754027435109741069926232837134602055794336378269329117458180602422207701642813424632639244515367611701811319289890344288643209730806826540103471251557062633913036537875678090557806423256176640295502399722199932177394622110178692599213625729796840206991567554034221908429017745183563645157235270711606931700092378187721924008023006107226197950135188953763710934316759571679785219698518772265141701304394907726974473501970961732435714764636873954099779293323024599983897702055490877570142660548905069926094640092899454336122195052841889306403740146269975052173450235119770186790365255315263471664367695951893053671296944178755066086572614658320387129825272795970239877523453522709508239743016263251768525648392242557136837411502281763811724007704748494018692844938199483032015959627260276157975824436908286944123777657561090847189545208919526403413044197607577240981667758001656813617403988675935725684873448769423657563299920746013614214978250157157844696480322522486928782711473600138940591975916246494181769181355106690732463358073998098591170246188071325977332658336082132873645379400362708444670086288738896534668560502340493951936919853765679890526235278301049974045002878608177361773905487196962422589445671424655508385697269401700858713467365944190017560694144241266304001384122412949632762583863752974250247333221649480439560147773224432985822022573642320053102561069660515811204960348649660951106247817656947291479868486958122267367735242621690103728672849916261907953481168562743312479733570882559079607032581853444936533029412415588055981859952421528806227534850858331456407850940240853972605959413037420872901053237791982816126097678767151938532089303460361873851404856547608961244126788372654368830308447498917179289752441345742668624244409457985516370399510506184834210771469167506518709028710868418258072053286114255276854615192714608731939629465150973553859103718306317889024887215864294908520394799315458189585165116116925685038424226552763558851024541826513342686562739869668463063085436478112185259633677316592192142853948137672266088428083917163510366615722566592317861037264834815924732259948832344873540457366235400587828530291251789792618386524859870937781823254748222425835309345972189001312343262288858176428340112168567735589016793288910432424157090292366132176292057588766552883576476705839662719730658609667527501489885867781723256642884664326756545205209044221631509415363904358153160350815173429322350475377077412501835771796024063883588819021648260169854918909233949560350687430168600671121243037149704398474912998112629032927539670232571493793373751568639500164540763041552298223865746994654069042158061901821754375736114432914892301283949144027782419294999080800584342020590544576655235006065545741517493079936579314553285746720660966728142654057300814668498091370703894713683663562392761522950314561773552209388785545594768651737039832321178225173747202083934913890846793860198833052090107479793222891593314227471695509700523072918273649279471303222935736653519416937254199334572796574173937961310055783308112370700242464885005405579694055761538647403201155234683102649461217047048228610067957608699402429990611488525203389066707608788614969793998486127500827647489895733214194203804050827959936974024007496420167568856990421510198835546882913684884806573435516431888206092081412546253291245390215845450089843557538775638481557981598924422640326900147215328386932685252187433325041502937425273998692042180425452289584099653040710782229144310804073667420639184143792549977163444276137924351471914353246505005432577470679756245518765287773751774020688353895083082852410857005844188759809169950489793152634695314272596219779388302794122422458739200982957281800967172893698647141340850607416138230215355156220480448710723392720213940064968075958472491801176486170670702119042360801682864556472844407961377484523108681708442283511332922346118168867434342838296735782482049854937184770990457419477984666893391338127535247260746820450821331185616490875125385396164618044561635763321359226967876341166441773279066353595975418471104411239099267880399243510047333107907999026771934810908328358848642895455239060438593082845670641224467211461191435220302726042911471943519240773698205858271033391859904197988936539170282557424045675431820385353097480986649008798017828770868328763695697209905904898913299672476321419407444155131231846140653771740003972527145225734191737898747592021112894924453647187301911998144053590574895213984327524939055621920422087225153014818391472534677212033676585234640648252338164397060742546720645760596156348478657149569637316610475626127756749451561802474594884229066894876539225367121641917218110476751749995292664762516340153401225332817658669151774521716298157900850100545691867888657549697665363259460265469990998663627523527794525446727225718104575758110187282096373956895045937758156576185577822762677372637643298596996416747471203880392719833047888053340032887583347857817553067930252641115252651555723610312472825163438145547258967267458389456087960941339852604673061914927236987293545270143850345165183899507261371023646269076789982973082176251553405130741409975049030656100087596266214496305154111222085301332713642312710606380202850730901692899666020947436183569704250507967899871345141271268710471784347121855007964470662645895961445802458387686608485747563933738550319136465637813080616792748570849516725055841233899447137537041495658727051319568752009548092994389754939020866415345931987009041945767075168797530156182235147917342673993621610787139244602544162662390477408908018589524470310967617037995583060293545516942981532656352346828473788941663297870618360014733399626813827327098377183778989083203953287913224617410537255536929353512858265455913675230905410305677575628537152163349177220619519654413110092346626165286993658784009846815470204431047044973274815225251985087379788014658402058176280200979078350807713726890616139182288685965433055630340780222607511152201369558141725131753787129253678632621889528792138950245094474906270820629698883680139256626218619750601628952962014890987028231666973407827797743458288631136456486474389681225921197296928417023560182650973513761840223391965371688854253638766398271734903932265209827292005893364206632462828040807001496854439929094427218365284667019581564940588195650902740016380810732367248700481255036004925616765609298244885404864434912858292502481212647434694201222672350596109620968270217148868814333640280168378104156012015163873699361262620625405174789728561959844018885511430261758966450112898960014375770825793787686169187387620936914265973320146578749304044997788105004091820211359289999280046385984578240240357911840708548388461463766682458047055708191982002475904608019654403088511076353710240076202374343093156230339221061731914025580386338036236222156523646824617246241232357554695390548743257627873416929455063366410301002304802407858096510411051396441700132923348615897387229310724393020834401705460124787775948110199087466369842827684772752756665720475286835485777102871700563194489662442639132874788706589497301751285148353771400313014910942996148336951428998883911395883596409254531900508095154012314376318215103837851313144076171203472214312002660260374966195435922773695039641778848832205940235697087274343284849361034852658484901876354312484823371059313784287653958659406508164763624101430195634364112686832503627420094101965728879322389064573449602896162654985145786646156450817970366816496657100814337027779430974882818846637245740875005526011267959019834933477338246562058318315152905461282432113137929136945334911429088904045703395912459777983237913585650842650521209450475992459272854014308231078886960332082963250886176125471751442032850941199487440979290487084225612336316320131109664559660569266383101919933577824243088407501340322857946229253787009814043947380174619928522859581005849448423989409370285561938896225915790381799456880918800172254270218183872576675517790299719832982276289603097312705428809136954536042477638532603454598235552493102845836614010295634513529253280041481231017606170962790614059306023917730457429471373062815085903917132038052509822295609974084970872785094964771251486724896840136203045122994045764934629274742303496930966294353331041405505083862998104037706330161019468120084420193104925427583237980884659716098755631100625654597171719120508373568709365587650328676401997470369130740028663513699707416852382099184534915458409150855971058930356324801603104056193048446343702545067524369250088797050602226062163132595727448514863942869707044042541863804799001135814119615339234320042013675934189509571453940739895177681494194367193985085990854856811007245459251503593400468174064477674712578446327413967029514305326659218360947139334731084660917718027543101533359548076210767651262387773885415181345932491364332370468863853700828229000326071392186159772899639946303466295601115653719827271881737967729789068532100089444592768304084344853622051158843625254210883953918702029365636869418501450223190212761552492814988751089875003053353852510637134191385936896529780585799654818576979329375270390653845123311955141708246591301232550033795405918425139296452238021411130116005109314492456111100520865288408011357850941190109958629655403857095157275460830308661734363513814939871163626790533970721568236926963559048700212545231629399547342862903606213167590894950464505449122218585308911321950242667132883744283906936100147242071195370397142697171090740662976651529139612779302904295973214582583923383433968097101744839799783651240477756715846909456500303974291133290481640407812282093837556530115712412687452015096952562029664598150140868464268190025140884365995173770281832748144433306304754886248238549047448651790845583199101098087993802071206163362465423179519650505761493106849010513594756775526487502137202232097060350390748035230812043154609414247472238980927127371849363342441188739590876947253003021160751585225750209887431029998236728337427839593960651761211894750245886648748767757013681093074595944885401555533077534337610305661282134502196628635659142439020098365663965397545997336058988024252079941937980381949857962747660459419060128902255088831957790140446577378633939431729823527676178012337956201832334850062124799696717409040629034820488118703167774749484852217209436625834928243325865841682509694199442789840393102973803919892029307571400103455617586543626181302400575781291784589453719557524397709921886500399630520221848531111285126334010089454538679460701964095422404520188545686075053876985171446658585744530225510760470834009438457747338188402259717020144800787339604914129128809190825713235872633659508510269373745211983545523269299332096994087684442689515756803934749064834680761776380516961995398742541933049303137608393618718024379653914359286732402811279726465219688241569323955969708743931918926421052308721517476071322727052546798580748496043894690333071742967285822234734292299311445131323992712999769910101730510602973086264704573074070394138721007676752573452285747486145713245689980279616121347431388070239008663538780639864743401670973907426772971479342883569428406464948574656356427006919458583986687107508089954293711144515135081846693498373061862709255549511535705743441868835214733946393695493241557838869340384546181188549975591248928714487977220050490182043992842194976447395093573314056843033582350896687011163735544283899206520133954706738743097009816513192554089885151867795639192451185160169253882301523133078250140809636285622635700040733758526420929219684407703425670820882874462232914784300966172203373006887963832020932998628353164157777137635758560022602405561313420399684841216086097038463793886944113343821933311596622323422691056953754834373252817740739445239001449476818786860718448176662219036418348764534168458580511423358331511821485603867235886769476485758285944092680231516335888746779530482351302861020616738828068524443469150431984814690159980878664799668350918442758882813940038243851090277314500444762509095704518047494908413546940127423738236871317482495053200718555098104110964245620512836396014952933006697001872424400359102719795523154981404250799079021145057951512133312554360039920220530040092199208882061881210790644641277850642370206774332359234265729363036444331936794074045891875014828689335649711474312362456792454877670363884806023443787291059158728330081664675301921395510829529311134293704756572966059275599567648821432809033838203471747683617855899454267457194012617485547927708184876006136723351718059088933960106074274844542574946306154604185554849258621400543027081103491362457424548902642088784629907807207855877816324219086642454899512526286299834068948698325251533377572130400405595627962159195660786443294353708784649524155163509181789096227975776276527079928551376140744727874149823643884419973070210944877894996483185322467110597859908282033628961967428957446017275474491304080339766251827145575146599305774452703826489086773229852733987883500865880230665640574426620524415627325725948630632108728595995410846751841786388804229240914955977888061636294947438143729219125704672760318577649176275870724522349066266447111610960198795651643273853993233957139710879403181054284786487512986715508937552862807066894324113064187795946879229473370818370753459815194312942480648316391519314152997258620167894042686390966926342034659597114566366687011492395345138026147314117754227353768690171996146878236105852121546284199882433818742825062386552944506700249396046720511652021113287690258449114264688645849182087309627525235383700711291553049731574110434942048258189077325819381767405199372648294944351150816021183856472733029559052540052405426784289594107058549847582536091373284183004310999980537575880452993177338820178730761783673895797122058865718085645183141889782213090110596008738174092504543898498131372288478456877402126344779893462018876194233301633239589549886608578304286322536313276505078662337393118458937848916355045591056321631538543917271753441482842529341726047562095417857862801122085170463345118052879002656739267273218537329933841962971670390608428175299242124092452798493657939738502799746414778419525323708163461284316087149312648273175711690324621125414321959289121609542091286398169307363499208159761953945134418359638018086515542842838746669894481713016737849263200283385341794015948003527523473785389912110428420127457169314146050317750667209991559967529440237689897378003013201970260199940840814162412734121129070267922888010503988914401478743890351326800924796313129299518367011836216685174157839497709572888659414105712212896163166838234622356455275248922975428391213214808985050623088187417124737751227871766401410760970061173157688969739780824749088270116645515803727016913024143638271413914313958191030721072584853184960015785881055213979343995717245327388226772182182608901112642456941721550995863921349965628486765654934599262761428083059173433754427601721770695456619644391982563223280465180361704661586174682190840410736549465126235993294803678796767417502446093963643349499239969825004418770115260794926259549901493491005848951075036857906412812967920954050505864376352922627953440890432794312281156409977160094827092593320165903388006335460557162050860393544371527654737166400645276703639464685711499751824494350803615582200591963982891761759019599367883276877572206779468955023586814106326135069253557999796982610455607206655792645383635877152909032440937892667224089456298923266604286705908302086506430732308609270694031551040090886173786114643739026791049642217286908964581201470919686671957407532825774003131930334079777124033572970832811760896323528090629314754001378614975217008401804892445387162862987943707885022064922191831298544217160044067223870067962087778577307966731365224239749562974137321388693431231412649288975370403914388530941948234725757357508213160697820730456751271819589922578147350156493798521159912201193136337188373432691903873940834740880780861893320334003854142620400217022630614106300192355199312442566877801841404389339443996398386916739726848619365418141181061881907516736974891918430826769961836567230268546937729154932980981189719703915387822328796611830028079251283933133563499094092455641509387462265254351274808889354213090648783413501564082103768352344109013827045128607015647921874910250473435338168772144842675074575387146328452145812221290235373424031690267753359097232387661376081627442128223150041177333702093680011167969799019002242185879881380184176443507615290072580248030717040236509768713818135774669755156820769268544338904364872354584994323156700263670530139382627793345693188961858018141201272005311109127531437643164416274982441930790351515441143942129478699723431658449943724682985831123408915266061285759810960165364223985621624860264654494350368987972783597373676777205112559241424332824946638775159482492544440901652370519108697059802567915720891094150035465276515868104353839104091665384089690327472336532545596769492314629554912410565186527831273145497128633259168847360543201116306149311647501691871044553432101147539612012089600477336578012493272848988160648118340602891094468714565365894871851840942420858734748483546317191290860381431786077375677745306864406160501309573519270547209974094556317451065083784232026292595102716732854972746649592479041414854855321021742682267697140837723061969371659053730827760262457305730036406785665338442699433776236810560372482297782335427641257633619762041584382982883985245940509801990873576174275355942936181005755789124138641440177092280644521576074980456901712745635496695222500099928789797022437475123731362165484040657703086871381069523882998401740734718805485647545306571396368428302224035465689859993066406096009126903931903670928091008300798066024036356604626978912530144466215342581900690789618657899530411464925891112393410818145972898793520600727701027501641956389453086623938563008640792744402867903002928954581172154544542394770514017775624761135523278826716395553480738845631296954276505511479265483045018675244813209283197850218110330575112556635463755788506358801475644609983105292716931569129920148542823778949721808274677228974601495176347784674475806362545631274974440086015217884967952585168094068102516272244724812188761816885836089182568372478075922396057325569600700892706961362095235777640050385172355029600953808993093148956617813997259103158515170940942472239569839199303577208811422046129559806975803860001082188178072625596923795446400558748703017497403292518358445039630820137011735678574478724898969376717386093084739271099669104855118744355764567097969102496563621292580216316869624570322780080980397419902674666718250869911879169706861385970108651684900600534297212761991921432332985300953365349105450398651568452837236071190047908559220509430023193762487433641980851675122831444483384181943948966825373122619889981057645644657323176598003431782061248141582698871309607073602301653958965684122970787938459532734140600345735663991736702241931148747787179295882424615426484402316608561418632575112017294528281891603381941091387241293345337840827502770470797239026052396353262340919259356645301321145894595824062423365300058944974041811002189158388573883227196596518937771394719292680280164462955171178966793234870133038241754630900941746171283920028328849677048438312680075400810863253368735214837984336396308966059021842633276049379880763493055195606400169205957052891847824871585488175825549532471459756366803107415113100715746768563589132253734036466091989738674767298427273129490197599918566481009295399777313156214232623336543014993589469556601727808100267904833875678559278667828064359201876241556100969678960042815971782394665947163404153482875664246218462902836910764995422945394627201497680557604124951577958450287162959550489479363353159674071172287564056634489837243954336954685486142990987484173719026501691038596414658416843125121800047606843277297271540804761751935942409856789429217230413093043414144824621536899776846472846693863560567918249482482652265865296015319130246066720423316989014308542319040420582108554840243882788045154919553408172204032886705360518897297336296682656428828359926804945768652663563462347768425975431397668895313354568998080750781225491613594958620707484150128546602009699271229820527710491326269052537316894235988458905597086595002308557620314622726019373339379337617670473160248282058586129929242565162355257544479201355627326509907827435975337844312518651891823056788744197263817456760355201208124631349104649576647028321218467615343216877331380395957026719409685840132669926325891914319705718414155848660302038452815111781822545222525069532581287672930425211914620680727089743771197219927046780267443614529584417670893915215025794477057316691452600410095869352574672568549893137521476361423483158373780838924572249513721263429609286511108118572969534250620646504985890079734241701506857908934764113709999504455173396711319361087705864202144852333134129434732373864881494366612038861339162398108679850153941397483745211220940889494879084488963334802658950963863277606522570140333927118031727301960790091306839203641386895539046040915088806020437624524352829890689307300718985038987006820682386222657767696916146722793006963154241839790217214368710584275383496726228173624920648493080212202368471068571940902857218086439628225979287086381192427020699767966861133886157162388495148465621173655181273238778020171529863402034435420685856441584012739004591411154374608908817304281211132629613432531539259928581890852015723883131033129464430324368088003979953552010291295670445117548844604867194918276145009187595604024627804936044001280269299272637681455668221678010581224622330862795281176934296719973360881214291743034666301706938030896023560860436008816106174293398269352611584735648636431758467936786521537319436066721734783277937502007018426110564130505844564217814205987269976076551799338124020696560445123596469339134892376434958587172187405783701854451817098619092232055239619555782064166375792195299592902847507210445015752627181092406905124231901764367595468390211372004476422101091801574005329339142927001097595234640867487181611950183833982022502740830300978845614260804749640057985196798769850472024358498414640004358440197678985502655095898541388656632339171929045815817894081189681729816960630252248041947004493610390154807320875501745346034009928662875558623835753792833460779374219452344999441563263276128890948087908198592511473804357776873301783152830446928065963352327613340408944984949292483688782865471211286254671342958577807051853004605615010895247916320854886505596566738834338175629083025633937825609529362838013411730829651441011050095410584463887902447727616888668800389296551978090897184729016423513419110872879914049130502230436077949673662988689504708662278483593549231040269732664390562905408457406246326907983559156240979035179669970959419516875684850469135288631738501063537641411673793588089523389079706264733687403082625283114697611720017040647849290635623598223027691547833272327645979976477040727442772103067888468398720438229232185669871446868871301807476037666111348049054793582781829580773297899514355693715698388257822718734270704100744511073303034837026752352436612758196918660866220782963495176135248872526660253761215530763248622729562303852401649418437885563037850200410634154783096471671436231196072121118922445822214312754315587431504116510356432585898732032874803307520934762466941631418976585807401532520526436785978486566846958150903275267544667191170970405489542303952227315476296766599140077322485662741432709336097130241912627816052487447160860093842978486976226161457433250808346533952019429856711320458271293033541885459735488411224515446809826937868314484668717854149336687450422415365656915145500082770352404970181713360061657386964544531813096215370228964462530003095967863071223714305593856882539730778137307201406634941014988096758171015050798762911568856569961808014114379783469828650213995635972325428550182231555369489528728213787933468869627491142161812025076882318258294735334055716227920087284636695506215795939581315587499162605222769754995112920369857446540185237177928165407229932888962933358639957511885459013169150567193640019126630779422849143445440850481109683048585838580184394227842715372291358499053913418838743944892659876525443905109320505437216762680736325900036668130392504540297881058847142007470783769461058781377650613733548575950579331131323446036398792863467509138300157891439010744464276864913141632528470277402003198793816982451465368998520132833264432260184249013492883366112662706600033209877966411318052557697966775778301009758343378841587689038855863888842233068064851983692256399559039072958707950443098920758759088344258696460485905901736096550625944513887906711676598104891839144283569641858683105522072426560942732631505943013764032799251684175943259562280162391996098912191752766528002264060562869010737274954270975609623624216717608694189209272601680921041660472246138273390448895948579561911700593393299351961979414582121787528043843226443250682026419528209409499864727085104047036245891989710234092190611886232259408415304898476064130919270684853059072202012939089335109398742543775555092265172190659522549707232808006701172164819138417546681244908204775155959061373751348653416561856211639539892749627977000581550033056088792925455822438748600318069574964791844103565819226960643123348690571709646212989596022851546711693524823948580434504479848707998546028525082095902078758936423090387105224353587700732584260184381534974402901693935221255816846121060945271154682099839354893709290340732603648594887832177976688886769702993463543547241323404135985202410310228714006900482079795031901957285838892319441636152740130611608348005419488288314690262839034190731223063552985679601147039012536378840859288480952640535132225212597354296234482007885503087609334535343452872041549794065154583299406416601831306487978568351403316047693085111963881058051096473426879121242194619373335256863960223011914434060732265600643553113073404275179927765490487508557814618934342974440724198389025583227645847261217016471029709003281507848297239946791908917639438823775910467705187073884922792795939502737134375260172877352951082780570730588353920330339639622673677635897993468675962993748286794013281909651160615892521988757446151400898795110823114840843713184618121889990524598715055294524566708111429603140338684344468199559906828024366534927036677708676149650793803912393489430202667428880146880187887140276202048582847976392016578150961753533300248302981617811971299555037562525200799443238064080800454580465538346068396962773731049082254043528161260963459198487265543093258538239154940205523829592097240270567417786597692991691792724486859515818352933665638485731407239772399541621050930856203322587281987391635935892846676604438545036799532026310612984789550617069215561336641422411037165333582700717797027289803689288673753600254679920807004457081086488309321132403837801129529585341862394069895322795106900240467322856571008907709874868565505262972539413268246561383647934749148844612417960898413621106601940389040809233308713913033484262249445137457167155374125718614468306120478666044753822098013656338612138474800991210659227381078731673673091234840407997446919821921423439416005040127504267855682439535775105841205908614673176825959583536079840492176258484986050222824682820496538306755661822499151644077668121942659833548030704336723619099122071656656119589421234349015812213380761832955366204820559407933461323237657131325211594595194543437368621427880126535201757785803526853266712938327947426322331781564813911891225448972919328241882938791719116465437798715081859292320265919117945434904973416231313514058578720348828083670515833603098034951583103233660319086928610671322761649562153226622772675694499613891094190980362675468325248362706180961427291025403483178137857005573685549967355545923432909554558273046567036182925539971799326921181635019562172327902478229253632632788914923979126693447010624213240260208368043433338811798361946757999335625798889347204992262077121470587122848587606030519762441675293089927112044326407393280859895342589745183947693026249239493520413486681600401056496208115987188969011384419431453026068924800590306951828373173041029050532965196548070790624564979547390722919567634596982564439512741975261324854609380885647765571173755302672908057403467312784077494029270453137416186813530540769042198068172105431007932510292055877789826682679638583245849801628224534842864115292944867264055131018541161970169068066709914134948349833231113432107052227011078409559334203343724097041166217905151513071315051612226204354139424355663020535364085738211724455062189907161324532614019151607292212178492640090049199204517036513381710135596057668157546515814862837802083738926399145165766246558224917958882754859270268439061680953769374693070514115539295673530101572133778812557464502212743264499494341112345993941005945699927187053233592422580931919574880058663678890327056836285834777088075567898222011368471533818566117891128509469088487470751045474957622150731063184164355236839680159709015167112077447408581332836209053207421289910329919708433869267799628714591855578455488386039850432618422274084156263388703520112294411293572157591588309036242929071383654719819732146623224320932764473148354747171369981145135309785907473050462717328342205484130904940959922744733522244323929629022662056543381152971190756812220753515172206471671503913866136031961497455692887208044323542353006994353264081361729993624017284702122803040797147020130551120453090085812129953973836461670540788611911165343566282451126141103650598183898575228696650703671981682367668256860988262644063554819107422829972682188829049178389932063206137733001668037770443961406952065646591430438196368094718516587185133401446795898875805029563969888340600231015468325805225395181321721027558000483803873984256907999175325448613743944595114754988902107414992093253754110451971642850103902546391956224814966293699129754644836838624482639477688601205349589829853025579713382300800392602013174814023388304987644554749747428346300538956345666815884901988293838597951478050907412617577954592679601344678985693188738572934726895445539229626509824527085357398821992398022140980337414177626737784378430214091198564648896435885733197521069902789704046300056867953523178213526408111089802802153945725078176976574058113410048206852791506521268532126272148494147922008124148545889056149204524555608873715149827969471681847374780186150486951250217752050930189925651607812109275395097324748214686234932577358707987412390018146184003454073595943624406088882525327543566238581711012694330978110536076234298695204952858251289947254988040368095817869723220712005645983160155103697483870754671262647719974919818745225299326435412289115711577621737382327765280138272607136937084209624637186036812180908928819908418754224550723188436275938463582233549691285840325674966847037440301211700853720560982928174354900240861271636854265596940686972146697976387625658740281086158381683540495559943741888479091854527977159921116691772638299655167588507362253795509307507817866299250398290136765243451150230966730745173945114359714963198932177633425561299198904860561411580492346321302727107272421346830261969105326578904041357902520493405202208744605307584470636099701184085733984559611284577708263650599016616280137388214174234815522074553705208146472155483426894580061509047713951943545620476480528477833643914303066754209159293305696974785279444666157313325878464689112485856485345848551304063840864503635507227801120114193039802503719297210038636729173414286926516897226808247147385021977286248857000930750230562807772892946414067117599178574567204377262513424656747382009495547299386685922903017038745221350184695292966363733313708931448207385337453954669261098843266074132412639252339052142546282687367096082404865541393111885685082012543115619425369436043651813769501015443060721897600672854112507779934477224958431974286553050909985598600689556994497172026511865697177368246186222090013340784751632774089522982049636560692802247510941525579723292249087017374993869919297011748900926147455240950518897655285526631473667396939702259762500778834634694202393816971687375716303154943818652892269341863624239694818384602099204001638120874869955945667450653461541945586835456542399751560225810947394752045551114037774333242955001548533255126400067312125903659555854511342512828382275680472669007001862321135701795779327376110195759610188993388120406859301947873214097015067562908212262494725101033354287327763512097681693648778375151854499886363186951565963580624554483946867382214216864602851850491651072284584143553616979268775571613832500156626856513577820367901287748408503728557217888980210088179623633732414910161116493605821501002280489066763181232359320798510951530758077269686213291787490575782722504173754001366758431887652214487244274593245739451046935239835398981148620669620034566770936060584418368584687271294984072043097750058934252139987551320153217826806612673727276954268431810705174535568562011698305869217199968855516086104044046071007002369283640919759514699483150122371987389429204582468933481459024250472216664568456263524591323597925771250462957877246891467613510542341696846695019638736797631849993574292232924860154050486931629073358574206252563224718845327341874370875488072687449560790906389078517810618857338408060278861805950347151769981344336947375191788479448675403186642363034522743361942232667173551324422983847117005824012755155161777127165893714732272160448781490517297952752203431211762271778916061458685046988754007755073028866227966061031347754158605356391795239025683535249571268004955148190134272333925643460607442791674086437927933220653616131688391668041288696409362210432147855205082302095299310144243383297880598565507727350909695332853546170041757199113175033152621659023365541375665776156907978586650895483331495179031844198950817779241645780283366706575185253470196412138007023824914503699467219582456524127705063801993209151108566880588017062091092268294270398443404645976212816356583499348839479925673850530358737500256630903113673555440195798682979413740766107825734960407001334195514087270046908378266900401853425662960094102298793785903664686248379074432660009028450564378085528642404618862907076762953913066554763127892071641603023530578828768300790486497333689444107474055496793724975676824294289052105557160874918466363001084501477552950184429853661153722870106700922829882685804733691279339952738140893189852985610606154175943389714893480791894615986649426173180207472596413587403163655363646040520401905432908687124248749422304842768603044592907645154375975457013661207080267067177923892055288567896861585363495784962382183732562613058935322715980547367727493310556275019820797661464372607353966725223122200111914889322231659595658798437461208547783801525880797472523790612442579027525565426190620151693166981578722528022999530390249799090416809602671376310522134992458515946711312421288482806885113227811517078108366250617287944886738126970849443439470039404004039911295711523833068067762774252313767906686290685236207403619462321024919295256541263865564396333474572887616445701430734846954548157989558075175715710369807390729196137397983496820889562876951516470590894342196381184068380153563420506673011763246145594433347068647524620485200268129345791906609465577630233731602146598321130482111576451652341323425242311192342257302624750150836610136797914466757517003206484959643841328950359851422830224191146228740391524697848539541103553012009600631978969682116688964559040448043844337563303621266775388550917230731410088524725691450546364303533207421870256799675291046978396578610790936799547043124318468819090737049635293055493275486731181519915806746697515134088805868511380102001018650177914579176062494939161717272551654209378383759028869100352800204650033713664078462149633834221207974409752229619947015179020940015814820585276979648631685019280575828326349909983981134286076940004535442159220278521648724426297932847041943330563183039861449059846061135571343900986891524081151276529563603504285083948091995122839206292750348107797384520178870585859365503392210596419493951166221437390128282811969927811303210180749902629148892753959281545183463735272402540172553460645400787600623875752058510080155399767967431793482252024660706599991720800570689686347857862188773345522998105220547597425142742534328078188687927338011243160978133215002692921145017440798307748882118421790171313434736709828710934896195906702941143816883816919388938826598204378774477392149445116703135567553824576384809796608206573961251222319946404000209573730673755764286296363808147942934490172139415441845127230514182459394571649820834576464820120332556146728722313869665001024192258931357684956573068744219800086493809048283161729674579022825956679283592835832750620232460488062912062175011515928193683641784942318766350268094024010548738238244722916715812782179293042914052665397771124753343015208218126413801438104856714379416074865492288453741308048073814106824562370864131178132828536435989927710903249806426681234732470856021954487881681528349156222670920103411080603244936569759518787313629521589263641131775962635519534550483809889637481552022567732486813281849730508887373065654896446863016844194408301430156601282145709316888291770892924895436640427073538423706010468301344288227292342200518519326644684545614613610313436541036946216973388568068208027703825198739625701485106040906556060648250323195914950504526291105800639491674723522405867222946310119845251966692021073670549066432983596300716269725237423872453513435576883942260816342370949688497402068410603314342522861437806451672435557659638710209084529289734479499619330310870171297081009452061277406492667645072325002859207995446075198826077187327952275129348797790790663381020475764997028195041100561512072757598171213300323711031801195962760106697854902609134873565218313735710235459707628392638084184877696410596728311968376114727005493593498460390536314113723709525883825748079449867424566360407050122677916260951157014208391517416740730749871689557194588868880702924502077779011777561278128987744221381413873659547230121831433050880878309860418960967273853890048311760255148695403249071375454736584856710594774386437239614835021103410973394616808009728345493027612981623897611828419011048564448529225755015090983236967040998134466342685251048144270717867800592421518399669025142165197596710332575451525508302035712104789493300847470558112357533362673934717802433450240939157414633079267718447631983040753930329001099326250898866503409206315388453498009885881187989598687419831101331922864938401450436999023317226680085454962185380793390104502168814293275717499874050733833551112924342471383326259473891528825389173778609938970771871021289703215903893375345041001688273988099560191197994749955547086567248824660626843250794521618593694512517235723314392555452042627608782193057033104921168379510765932381407915115315073458956002048674511462956388809861489820488207531712180795790448829477981141515773889237239230077452879974013087025534277839324439270934331282712368107747564212703259853849028925935116061444796124552221907227761030746172156466979655915326562903886966241226775530638117514865648603479944924033828960652992306015304812455183057330047967678156807433873977008833253699778067813827303756138741263567139244855599127557398494414725342231001711538570392686708795297939669755037117173253128140843532300166761841268126953339324850694289850072385079659903854648851261380728547284278416772907608945038689163513581107799634936926019343743478944939812195080808066091497762018916966000618718358513750896146059554513268890485660926440657856213857474888298752366199911944725714882552286860752142030928961307892815520068658547082314960449309246133450115214506151509893619342715828745413618383088142618442031616972323395400879376397934938878446655151845783793429033731161577638660220547080342326289942767466446870787823890812820774253642316324819803296689682954990923430818384138908585477847228877057954422345924088896226927023457972492634554758510688480270217663337938643249704956715170584084760996340893918473308428611451130159643201403360710693172200998523028773351403595904654914363115949810877728738849076353463119583087743485444658116629233671841637059348425862806817267770558710631255230942329065689419754593498774292773155851216865827299212139460908217623766760527156602996664858533470764070870581975163820777824310271182481832229109597625797456598435327421630947762700522735976086676487541296815143122482411654035191104357449080151080927817941312648166150412339186875292669926662095882376519932791100804212924713338896637084026073491730984426727684034406868240960092209258122959515224730614097914567136561424113160340760909435523181229403745020896278520947208372878028779389689806662805160973803899532915881074916934042068983164939163848294980269125191135960233019488718749058204577405445281826510039095731966370310280937004979514389905046842086954859494068868241396563153868102028519742093536571842481512446429244761016328809787650247679272111791496531319756223861943454463087812930498642559877163339149288353477588533371416923682722984281969911463365947523168365993429725811699951088912585655425729399052066098215275875848379616293965186593634417154742377299674529021902286655506490048952081967381504865876395324264436191182992805612749856884835970775115580367834389082629413997623024102400968791635122191956333279456184218423035382257143230951831164556325985455705791858525319530402821657329507694949983876005507715416560015802399604902679774861252567969696469047129183622668917081548056643469512720689853702883117408268009339479077074575897863828822992113154111574065463969321455280650595453046692633891194645948851598516452426395837764649836898343706974731459029450613859336459203230064152485539948033779185864906276960803768367682505818585473584832193746025357275488458045150623793704017686214998794492096709419582046515230730693842993343214040873140617450347504976975135211835391263310287202687336741069584712716369643053300873193057529778250345088018125522170413249672182159210997033134909832242772303366593349068436928452200112958594716973888675735916730559234236908805197285173743226055000829747550407033042442822134026777465518208916824493716939008773909388041177957647144843300504148132760273025237392275383252337059272131781555383135968703896659173204750398643378919137925134285079015195929482659234278245142572680935810639443969112326067913634881121237069454325356426356915602155301934643149418169035238627052635145485436025917951088119723033833799503867262738124372499469242574190940008912657086524706547011593292745567486132233486408365087318086278201612554811859906675067661751409321603253506002874291175572485750852122405834630135679338800434637524126160270018490353930292022236694079791559120458144400990959377931420990996880581156417411126344065887984025196141970518333601101277473397470583722040223602988587678471823647563525316081135097197468578789783649250814232991654192996619785338975092408051444025689772696909662729139517641199874634829498555341136298575231392340092182055138468320944976285951923371428665269596733798775040527163557156075251380163375151792764718262966640672226975275814426844262664176423445537044745160023310966859666294391118026296955100335080561881179114133761473174681419856602671632069931444147805514474050124083893993660727580511245977565478444577492881531679085547320717128147868091222638852460366603875482790447831587105033168692148904816098870154058253398219452857091732903420204156798864425000253955397684252916220107006721703760936460441137650838937967466031178368941865675390737435572341190708022987375025754771105331803001153482859643098130930357610040533126313610105307668819244921207411436962699767553856268803032194656778197153220891026767761155192877381306626384701580907805403866050706734720592721359673022989735859620331276687677264866120676484882558313299925255331321152480104339512230928385705334550841219453080432967383267546463500948911406206887276443767761803030108582907983072704724960320648798805068436441494867063853100268691112070465015343825382554399493908152165709372949120375296040818937439195806158869661803308456510621656446679303856050627329089803871719903429844586120343579505364382318598505085986789918659012750781829890921155728295153750652195994731183476238915757046850737633655926258524446351817657631015858304113411738156066867572945481309651480965904506211484308719263742955629701401650634179675293569955830045884039078311799753190708309868565335623863706873677895795441368935933692312197133494189802061103914859713015396340544259283255633014603670184613936915235732795914393982351052152179294116575571913235222992996326197727596359618154934683130258783043401854928847778124687761989138838196214189415999064656528171291525592584401018766931799200900291519517974712568777852898687543877954337413456765214496168781840360162523370542572878431148629485041201843231681099045878079764223166139828957333924272479233414452293509690462510785277985705492497989754176888935228510993320531314939637897787954176383012888788952255795167658794101329139218754367880043059360527020151369433841772572843127822328894665538053069705995492243992510877122398289408635852414795036162300790669104875013874012549668222836707286480945159058584545691080154442204376404477193524538134585863021874299410894335369422183726407193122511396393910460150469732566443616191563771618221496466252651392054165682936199917396880483070085590340956952446780374821934596293866606865744068930704375744552193779224036236484462122438869455708763962717673672849065682680186202111220972364055243727649244798516655792933055150181796382041346127555271562777279761900776212278671481170326766574112123358343167438412295769807279384436490474692540211865726385773594392023374348985887992564109659041022098311845638390804412111565048285648308326425114875836514579017032629103992678449470083310808567421458174909043651029273810276537571865317912726862490079763397231805466648555806170274608081371430140873663657083053854708531238106920536758217795797744415210895934388700196223849936847022228738325108664402993673844375553173747884764204114652385171270803196628526029434852821348499612360685921043001500457928234669966005464179067289673892717006225713916268026109757683376344514437787932312897358699931435793489106839770403979807125247862693587913702262995027211136915642207867262718268911754604148538486797073580614748353351153632011085899504453702174147014629107389390274575871452334187990531627239038372233342091949010672925041322006264973583931005301044471964681521481448726441685894716391839172420018859496204671572218170703330632139991323074965225407708958002320281168048945509496810097162809009785094833727379424657740261416296228288341288503121334671251607309613811508130897554015787532916166567826505432085562783506054942247935292840509616373194752471389424309784944501769801437359671506277147958906811036555180181933715798913224935461416378458431235337519165054459390575552474830392232613889458893471343657926172564014173463842750170850367718113523766420392526387454702023337765610282734725633184514493972311160720775770107385404055928660651738701645789657658333439740812374270047501997914308107871411490549797281589261848899648807996262277469910338426899621888969819116924411622287254881930179165915102028657825730553219018125669212042946439711072565179107272353767165733895155915901614141818666070353700917875479220392283808892698149742541190843201148201867801639554824192507653169837194387343999993584478291818618773768841153370083468026737101720233597828039754816849110429077480399196001191712977280873906182398502235997476133072637512042975540960260791811641810241442445143027549179766424229605361467655029844019588630265012032727121496658953025728289026637189013849778388564079998498648709035856527413383077971313825303595181474398615266450230703367004796846710939355998690791034527962034851783732421349132849455270687858169071963446677424260006806863822427371366593100610113533388233433954001157489518848961218249170519321340874756542291856390659129540996165329132216710067689371353849949359789473598029297870114836359569960995740680076848425170809490565737880521562155407877161393836182683984375295457137731269033804877696443787348433893152296660367071984347158791046748399839440564522722748045289654919244700661523624230415032596327387294761237384092211620693901504485301821459714142919160525543882331170455122032767597085937825874624008826908060371077393499873160119252097041846953657680382824014710809015231558362326995202008543897455250663325919456578352844352230153675821356489736279794409858485185393404989400666652811426871005690504919210041917855931510708689134681361829825563880806097453321000036755526073277633663433501443864491758702173448326167773241269694716106565864322631738217761930344582084348979272658717908577760461005918802239912428928813493154600641785271597241049881439764034149669835149957771252239464807251266867669615526187622493354714774749219118119483407012899609434431850390944321677399601607844658514302979619049889957797702929900117890341819093078067864225098654437429764695862023719190073671266086622039932349473947264119340362988442717786805163077624931986126303696597880379764525246890457610275821294185490346989053324090873009426759016391722622493212337402869706102079489879119982700331950978370519163564585445244187849097883266677861436374203469705858027145550403963351128154557490823919390292649593931208992230382996530033846083416095940757588429466302405113352910757405421184190105929946316454645363639690365659002449502533121009827266686791305497920301834289290252970529733753110773914558989694213816741162743080726312013049349917699479558230642979282634919659891748000925933852353832987442525956567326837088845157770003962615840562987036020841186519316324967675314569148457093424550834671961477629602236017191042228881120690121496865468170728812426123379519225680239870104826685329060755329332456768813945648472771793804548582066587432593654663848471524791444498598369201690471768099308509385531897333960155060873220296768909156012504168410287116482086045375500849825537106795302959701641911879106369987914137505850499516049231043891268343315930408917747367640101171385358764946251454190394775542818583932709423560151352171411310183524784626171761574959665985112809921046084283389449558512385136736755575221634804591166312597111031260347838450249309063181993984655238035524987255129841271835427968240010501681680541852054790362860952707811735743731331388932028194028354132314516620081171705613731324441082551451479087122532326347494158716732187287205987782897171823122920157404122979309735927358024144252204884353011737404872474918100910684024833069824448264201621507307611860477258744363694593402130302924814511324200511313052248291413170083650547978206158973230618948796365102575615473294798486731864879534677634575006529553124598187358451092495653493949126004434224256576834380894328089110165850200942843689100599382522300877433451980828349685767120413813089647290976442738380980229573442010149117681706062726758038543407397618786372747042910022837288096323662922060463903700824078388173683126454574714403332391402430604616842556709255676406818951109563766719449912748714733982063147712137644918004804760879526771729264359140826711097508579211113056498244782092057801075110551014982672478898456498362523209211442264506244487080706529415131362343924194376478416422478340851750327821867777503487963674730334961212563179676796648625086390604880549133044192519169968184052236960659334403737742778490319485177617377657835530887404225259916476602756081534547505680631885698870393498922779255526428569255547327037154908953416076849528411951123468177314792778329808382237863980513701017483824175338076966352806229164453407670823685312217384699145718754547174608489717474871422325528049478245963890623638965980009178955282586135807304119953543149667285684792411571068809217382410066008494781968082799066718523859160621119825367814491858423359490582491888054142867678105704110166729415818114874854855382128906082857776751847739198648522395372842091317001581261584240554867676371799997949055935599793679975244653140781319622229499562671805396483972755725930115171100046465349737091348133732059644119799065279557408469468809039619230275569830237742522007922850320831468192108116417981063247335530130032349122450256231361508702556530034198102507457673308820452035137275544657002547808443221821882988191648102036841518698194175005186469640604638478195783049720300405164294389273728198744477884350515900507369659086042623632800739697619374784410390071175086150481398553859040496025052149247065754775150826873478391758379635478984510988014226208835146898200970710704683916747938792696706776013410967119982042222839512442250874849113686283562512389866648308479456829017162249948839203407614531983999558186863747814741532242873486850117394047092444633825403626782707807382709441867998554185927829421526242712380601411176595814567242853902404652154051946269475801968270270590998235855837499069828559318860694683806837079388973981973268713253991773657712785871549470163014024537053886014222961377196290778113660054744138448844617216366422521495655937209099080925747429245633037877017402508353298946033131350503204361940948857399104685123435820898938640428489881571437197422646208219191168052173481385777873817373274669598626182009708046296658874020457859454546773694512421680412998862681302707054033814984512565782816935200334625319562230596712875891433713029209224082119169867306897606225005300151210593222383040777947801816541791158623540997980023471064157035102530489102767312593168310871568787656926411524729049480901430204829867747962136997109642266343625640330236314265653117597390356746916277628078570783835303270264712977865491773340488161848390475455071388375121430053251364759735488467183716140872145851936406462837096022443649062895578757667932912566119847964468255133352863411022136318694515870109314433144100958735489006360746275005616888884441691069281460311105162079977184993618373559829806632944778230701671310013890606616994950065708428971510515834575643304057097727917296456262745586506887531983530777862594752436520714430917772162583241633553457013706210800595598916670466666210557336536879375981386429744796272424650129310390702011548827127642503112260222160863989206095561619535421116917253892115267531664872576023220711169039634825860865831982664762490472988513758272999386248909097917076929650305265917622683887337309586833858062022071470371895653244438104727089176707104150178440145883494363386780801217965193451724548898344223435039984225206173810975870026740624984351505967960452947362353964053053133328567527622653411019283024681112980427024316706554710568706186874413822425666253652719463343327336379515250363700547307563649059455479877506998028656371823593882147495323044558245948369827563326204040370024818688229832934405519862640582723588639168331460005981148719657043819137811520420042903985133132499838305903488148307458146854843694941195031232199379982759531931242994185538130032108007888537031612958889805669793333277714574804408933046880509525164846567005367292844795236963855034707239761354384079977951329514215161377246057556664229627040231115456242620279251742333925811413568211537589499770938931112784703536297984128944982225006368240143377489358718740451571190531674372273635637715561947245427384263628254884435962567778756053364783001227710149338056707870049234867709651578496669745294207636700833600005544608438928738171068091325738735491722418364530013108170630017288953575732401380741043141487883612244900291872625685947883546017283416279403121988787377152323279587884523888268413386775218419920403051391403583880245642662852774376944457162456849071521386212776971329072292283318861213232190505812629808254810582518961804293448191374453487364816738631891355250672573439623885808255777573731113596351693019766249133539592155428816656378320662637333805770595459090721769993216069362095286385916298597526629215708111212745892209742521943145416911118208916087169274054254311239517738531699297406691644835884031358135874916176034770802145190354434394566664598894240621857105851640612891120545551705252994587578747447129093271858472196423502892759410165779728504761673753643541633402143124309755763761483135573871845057842221610435921113007062063412289105228970220203033076528873213914965493449831239153906639398787037585110604145434175421303749743273310596613758158511298901494227155400768659268351303320647880014960453234987317111584351130956332841506591447513536768860717421402720890398334651638859773348639290466551546897374438749029032669642223744376686197151883666574411661354042477498510284398073443225771515810745334482640808786362302367031734043529755988077083588911205664228418856662823876478945194335336266463118931307931205475983819535609439218942770806004355898698572710687345442802279469945220601848268834268897394057473572554738226282636866222012651662526409200169316024745016320791096740293534373379170743618487949927479302833372133792910928752563832968372818125156007300027356582007441816532169813128614085994499529505744306295302790361123029995059220739379058799863342324834441200946329209164837202702241455755426920489803286410562557289960076308390456767437756287107547558035367863172129804557186268851083434640890633899199457839443695917376630281164834182849521553777085650237351315795527910614177856926257465303809334851834276392735730913133915862028760071414853632339872884236110668327824222563333230223623354740572192056439187980328612560645048343788471998834821144685214199870755776543175876491632223678598308787528044806956465714210361534864796082007810906917995341536954925611058365429992277582443319014127519815270889714754151244180416611461256638331173055158758051810137901241138104022435271328884935095987242036587715537958187046441660341844645325124004636416289305027349060337785368725977423869973339116866540888650385146087264093339166384650351554857343531921563415023183882672025734964252722156189468012908535413594681973144001365925911552204171952343818307371657745493018645329951168050306431019502463762429113239153661121192901387904157364871917981991300676389247698464443753708365435882675285796140482087610990368253717794413127995855638435894593181944466451455111255369661678549616351137481887797007779057248991987122012065062364505189458711070137537083502290631929480140184250653530315712702328793901807265165436530665703914804814093007248276603237001209667565792998606669473379885375187169720401601150504696542434642535301993799500482773171450747724870994271971472688206986784465760017472689669426808824125134853134924024562994721609246249588099674782900953574993834747441258294998760306517843792485835972143894710419400313703889751036996432339744539003559323104646613264618256558694884027050620926006072036092016978901314074141680472639403195573374136620128459778807230887742828168200698694973479477441357876203071801334132908669350976048924009118632982724449942695428467822906801333490633127554417697716715927349173566618598258278526275876225060386723232505033794171945459154794423339898879553380823153041271115833347372669340836467893787766547526732221757898428815124476220082170438140669510686918700455404854603042860733731634792367392566503832939864684041722540273328395769285415370310203291850479220785465813206365743066194896001838672205836098720223267429908289189515850515010754215467854958987855721991197039958959387289476327467006053728746846802332641001243315708472510115189562005337403168108393400550605864848948519904007842052704340141345962117134839927652772955808437104794830853088587381571247847478763176568962153932246521662959497517496573629096284514652653929812541140186569154591176307499754043757414916095056762883787998259481254258334413157141420518318161766893576087771033517266551730593669648897807730602561708027250743892132215580115119020346557504022345885619361535448367420177002360648224989186255283609677397600607433469146054727122207870430117137991328740449651962878268881636977627326402160903489511461182721146587848622135524709345992748056044194559085878043168314148157175393672013212911246638431064255904499365525191309139198504757362643255152758210174925221887546403769380203060533791601457377933091260200940156499059962723783038299567562944838001336937179328150862817053315894586021135298352905999277449066186059553120994182422460699153070421953680501605472480355329252010940603457212421299503194956277722832364317431994124583048797214041973736554318176982972829696406292626965474072477296307111482490721446015799504573544414915907551553532733291569328981307066346426060050348512188805712056774503448143231063544070646487302405402823949768494573497457487990668104324139076953251362124869775876665717394440644699513904796429107072522839896453628244068844160900506331301817433742399585289886808351310681704663595101872042086592468906464124495013607365438377114180893422880497229425418765742205884521197761473385013212129508156855166445582767967729247493332202778622073495897113567573176306597276972362137068859449885260074286044442833725328921037050319656550855670356859570627944376865196425097200210027012348531072728226850083722134804275354298869167322031192906572418717391473588948118859134558876934888741284744704204894402016296108483987242753457664690074735678925417609008785002883858508562657829725305832929086941614800239111416532315920386725008292964892716708392571822479083053457156081027131243838722268150175895725345119809864149622144585113079356240421032211795389299994428175090674835304019451647937428405916699476624286625592307437498737489933878807807423350216584433342119398983375967920783269248025888860283141546420836931284386612408708695282500437239386816407431699411522074945056358836642722963646501808692028300155009043574286669854757750406917298060604318514316483010483050265861448908633457659802093125839382059998537097510747806687133784333561718455591453443851070319856446748132438950880340924858044419506816567487779164469972211412120172097881367163603406882457817826828700799657043761680754859331958414355522422400531060870480453471666453652834563589184659456715312692010504628307654847385012329842942582060638247793419747290284141892541827211969494323332778252622112070176270628570350561044133183389661486670799817616011737892412999998347629413654422649146369808785155502024397852999036813861169797213888527209587217827986996712513769155364723384667688600285569896957764536535106226983784750385707183542949186426154665136403902729827852211183495988398358851106651185192402247476150017245001883210628925672712199923658934145203206459126742549888882342102027210509508257925285059157999433667192242598112671315861527007374133342414349610730102550352922498626195792123459847626700073269976855894211991224204809465432664921591507165465863628777372090248372327842230869879733570606395341638941220473346888410654658784970685647956618652393077988213219200599754932219369100171779986615168709459750951403148749406349025670108794714522728373174909573994464077407350322728705826000874520465945224568650317594335236770373170239007677609423432189160911819398852229137340205661404718399079784304733725668535765086053190503308417893762634546286373686740622075630987612374566753495524516697992285243381159981305126528196387695496071609351849800712320055048433039639343165746590275792234002134490155453637552883837142900205923409285020790353180381121817777608895291076703094463163541084360803494955961488950847119833899833424578374916630084794155952736675209727317979478155933430809167611844577112877279602527030000589733214818665017100495067357904030313084500901646392538870927712824223800423357678730334894572297923647197223557114787221054328584356845081535676415577184355287157979612013313876022744255115805718342607447909050923194779513063590407013432169343537869875798618523403889571225362168316232469771438502524007038598286603143953430041380545875758049584084527212079078713820168659292622907177360509767298002837815213320807785944243169034127176416657982584094838128171390016359965516140388646498928486786944745550196732920218498956807424501328968852481773452600624208626678005707630726312681894266832964676428260553107077370790914319710471317217761086749322563225119214504444246074372012582371733039170846849695433031765162552965791409906644519994461636682811872593806172731515108136723294171560308514183220169412643535122194087425802341917017557518320255258628244496641869091149173156337094689157524052777401130577208883080823786223840562886429036845353362981045599276298043551819823376338456444562500341807375079262579868196280336485837531763539416294367838644726500169725416234987229122758783900267474939362062627802690478026504350377353875437443534752087190943037508315345243422104692585686545581506850614613758203725040180267065998381144400536186660765933411060990879763954936963001570916975193266718204362065243854848389026878124650850872929078258905658275826339072840268558715876066752270945732438290997538505288619730658913883867426958218715444816607673305426304852902206155298269524013086268175629449319030495994332703095922753566428840182462956802201801599241810440046710315027624236010383446674563730724106886017536288181131580339047071175343822233986224999498328871030135989463731457669415864830409044946317525044966761573551837992133482339726933662810042873067795765202123684084601886296831802665359192488319961838582597724600024246173147681315583653019581767039504295511284940649980952200422913767422896539525467830311597835829910859376190336914050547484537460924778088687019259902699761151400458670474809991368549942520719558404004230417494159436729050963622743848737457833187049776568106260790305155983733197395162040752954257869186276244272145929121998546620619318856636451112893966285182560506775479284726598029062558890757283892851637622608687069772073594151999432849786132133580601195320402034086385963748278361351883077123369239073649157281481789041477995641352225331222170157203131096220245388949713370619513595167029300811360700550395740560620461168779493701952014091733707639256089760515652132728520911475138114505919654350191857946257361085503924772481843552993282419753430939395454711799910979201092510109314574158246116730652699765567390768276799906396220406015983298565902392207847624817483585669649556276925376610396066752996775095433832523819652992494288950855334423744200274684549440951426400455185181825037058073138066090582548360626618869145604769026015106215486981065087004872919990884115605092487955038515822209454939155480802115466377878469935750953374753932314320923832438845264008565031843715503998944395391374774967077083626794102238234842826235645036173587181599844243010947210012744750109894907038660058337327105552685732192453738262074989486170687628049352004573110143763393446467961620442997822156614766128622111108303326678741758834033106239577017680089882276549679270606947116385957081852342845832805089853225577385410017300815175211565877742372546501132294208893998974875922096365079648905595718957134682599330513367857688929430647883402737414938209139641047689076672013209067226321171424757879006554847365286793429908849887255163277295517338467915746919480807151946099383507416707462791528073668769909754918168718212264380911454839283347449790118560851054260049193238170147033297444918359441670951006927857724437675008869039636970798860742633748592656587979930858088717466189646849010168872040375084941821391863947340621746664849246701147104307999454048782759182597711740922663957976798752965139929148972536298452801973886753839049161231095044677157127987176531510830378376873084241759496119300836459245907862887051733142035560613170078186007790008125360167148483501500398469353619465425746092114463049911767683363008781823109036090453447857500488438630687025681157921117902073200321039525024433631782958835980871192984121250595589134191826960964583188851295606874093974182540158465197722410893963586127771018879019033142239922399784823882728355725240423868803608980505255705468290154093177934684815482502525656369217381662912090269400416301213299692585898480796242593638744733451679888922791018284522115673063468359604267454943883136452868111427969561534318965108687780134281097682210191803144614069707079173365109663596163835661289938128066804939972770834187572762941301754586494069327226174391149368226534725629852615189239074832236859061967123708532571973699334386315901572309331719463452190544754651558591585795459598660873105918904554483944378534300089193362042048438679315603415741802472141482189808013668671116919635729158832316027832666862089381357597656588029058966586794218260145393575925759551492253058757148103441046699027333730711926554517314890819431825094643674591005663510085195196315432802143460642389795159451097036681250297048466212881931395273408081061759558343105070761290667614367083683102075013899041014629059427180488963439785543117610945782905083625027491034093485160779548984851810006776734601228130621998848070291342698456947681460710964297708630997646669037618464955107852863096903178513144029692094359561074011816740080320866712976003022526513933930369845666739593525856194698626188115051091873391481692527025658656581321940330440980934543699200288239739319846721945134730813001319437321732011698063803156187288084890046415517627744334530714310494395230681795236993069600836103902644426329270584426853361201702568792839305941632804548645866147675458253751776674538962158112072966277469435402475755091708814167064779783936959096349145681044226300340988678076729767422041662920754223457813172255951436487493699150051176681344518963686054045664966456631744831419125445437226900206758867045020868343029912358897112038660056553844897865682167539569906069199975556105507844736884509828424282324508491403914874063643725036689809231871426256042140085464410441491222025719332313746893096402617756304224158180725154559289803606433033495943256107808453095578064804799528454049307558456929725523165677255038898587847561511265400036230743074849897042838748640870282550374968217843412958316081657813757348722927520413523172613872527030683796517706147620683465832697782167934214098662944965387460228155463580579219765758192944449340091388407016612443230118576968319868519509678244925197369974977148999010441771592945952562779506458659025968614147049666216143914296789800126923697138523888688088192890731690224818481577953928433654368609365252187700176781575802246132356185971633704912902399365937699004679403978286921021996648574767427656387258421149665071185546340512203738408259809008826775296513405117215568089501249327944874633295227669829483867512350614923059258942008497364185487197703914620032094654275845147248090484855534955577373161733697399781551258173196681756059933337052097744863066786096580115441249633452270041838760133563737735857938792716411045222658018718555144475074827694013339105282175431683153587314363957868267455006319573255738983100210217594029194829162528019920399483922600403524427882249875672224192984879991609588167986026435253657760160909142993085377273168447715451461142756857977254685420896224009560584760915673462880065560550296441599717131875626141633021103798193407826516469409646615195702926542262187479706900058327463779524768546045710135162412484796760955452124309003914433867628093575546492988096703396033540198509575944731271819131682542993181361328207073841793102415937867596869388144843251544362201941177005449679893157251819820700763168140396736956051964524163854594885154611399801713702724224242841709178217270446833989271311769095040894663375241277896432551551549295724510895306941107690487154610628998760959326505971351698458066129662306960654669417153266939858002236875364312821570063082690235510463433255518400588266779829474945488363348866189023864098708626968762052255475860964301053363823412307933741317852230671769022315984460573274209991543646846106730220140315069937902162757130130337423271198800607607368728458856648762752320639791071836207834981564867819314299877841235695617610207772861106696285258778634031423832198766786234540684830506064297155127003219159345994968650659405538560259874557868605674435011407399039625932461552936299256484501824980238272081970237317133530758972609645589699339580387180297314574475239430362719929343718112873084115144563219148000720741548699312596173863497928984791633448796507097048736445642508894382241329439798995595107349830977614475439579723672798364411402748316140200761507915316957713622856558257829098279932680269336704804358195007757426330747636140012523366276585484493484586810658177926849903924538358721591729606215862535876376232390782043205760959697418136937645223621341209572335518852767056426880934566706618536139761203824715076448059390079252529097197930061848074805989182184226825517173486523293978762115759370687983613317729863454475204725364866654962609537054926441855751852054867753837092167063557967483100457096048920383581896185749990564051070293418804165241387939185492777373131183358383974964575259914298768443262917284576887360168941064600604514752533950218973771493520227064856590119707454257011797050650961191381281361707955089267883732421161206328978600858733053687927241559652811641476742544623742285715867695995046243829770580382399982552796560096940884750570276687545937116202680762069190277098213887896889291800681789833040570583588364321578332701142413804249387485088370896283345620254488987629592767186450542691122449502182911662774852921308713553256098137908315168159731576694397246328035848156120400821228272733749042312548626228912447880503513362362239304646443648488001667113393416958772541486527605116590931533250424650508454186964723262851015212602587311497157834774725328701193598900052667050003859065434119226692648971899330069065052713922373602384187211833104185878261027846734058709475203605021033446868825204105407772721142040362102348625676270826616902841950622362174615752976964515069946205794886982772626651351184075810613170340574971180224189184404556044716766052841463189868009082260137979647830840893406668920061533838554879439789329130185269672285880509553776496993614565024256004291403789407283347867557800278353537386007570115284418791729892036212542664377290323847887476761834515220463598202818271243937569976932904566565108564459540068400077789332715670701539049967473452055135719592138345248596564484852567793208495067864161379787240429911777187466124309634040755742029559286956922431199783705575117050573516823884229221341514758623322960669062573312966905906437292892557093148395878763470134109611035475056531361331246419412937157792667847647023000912976265578410404047751746727281494268406239109810882912497771471792049908439015206024602440129907160480938021877069747808745367483643535217712702777865555054059657216247574958182377588609627241842172388374941499126673933974144811261144686254427480891626034131935845367028467677745221369139563862627111560899806092991401166644039837361415264973336113047249942258630599445269733041118550499251869852678718913248031053939558632569979972631877261728668027278756338689663069414763451160473084657608056910039142773115813466719424206660459027771144618799017749283726357254772840673045024770050025748210784813299943809813139378365962880841738489107883635911299153427477494546137695967273171581518826859165540602427948439969826858460094754437363653229701735988209420909704482937916224698605649523749538521592636147687314759575480180715543730498069826587184292278284051725303917289044639886850835819057799588305088452834453591336143774746550071499084581333023285561555506261026684660968247410566460214806097833614010249435967285082146941415990826207969184175997853910602940075676551310247803695541700041285738669335215011874403464794050032125702067578590603069657070351195383833491854091561845349383105498179490823840458791769473524977220121935420008810818354812368046639456990774932173811293950883331535052478238191626804249385459833202645002674063669699576878714868993793418256749838633523654091582194166500076226716801268221346492436224832704217848445504011896005959470722171447612840895463652304046793636448966089601807911447604620870416207840149617365550775096538444774807895362755111119917363449384918227994379602426890973061265085039554040042742203603390925855580736541917310204351243988406264929166456742797051660592075656490955978226145155558471503498394151531966922379215055097121445322205771807849169939391444544936788549158875439316911289392547607720879715375983498181027809564875698706434042390112874217586092401500252899295857899793702312960601856517383290732921246486704433798744216360322969533721878843323537912841124983160343482434179660862225839467563841295275348028928657920286605492763951601207568896148302396251246233155711799352322631010828252586949142929626885761061865650301835723297317480475010095514536985325576780686272083788162165710250446190521551117873145772054966090384672030111414844417757003594644072871945612120375548076242616713410561382781264506331345785589488311650452607339368961778703803549119048171540959141323077829224241088474734768294132638591607826342175795787073205450033740199729888174819513308571685735360475074432338140047065052218587519595520726096312036375177501967732152751724691804737452157298378172758656510032918856544881014049520684557557991027489543069637976824439692739337842493013616970323305004474079898431259356958491154463765172647765221543634548822582297768214971488478952689661207234616059167377000026149074375750343960583847091960000627931223595905459166240305220716546051343697879288620377278272948479282338912874290159123332319136291365440526800060262412344847575729174948094059980618796790145410595712030317599224025520089286643582342460936928922099519212991401998293337518057945645276136928841333921937749457712893729086672500874141845899545416983398931443299030420853434803290529742574680819428238104706957853090246945817839949789027582489951051804069545520541919665533800979906788428700449515321379219964713584638668810807084987105618436376629619473657478558509166913699061283290701517317866197107980321759594652351441145591889478355677869550446304122638940012810071712168091719128827581227804476325072547804793542752871396622852581522507194315940788703711375224668699667878171394057393775901039500228078057588304493190664465930823205013981824573958562838782680001169571957409887111901532543915259636533776415887763312314096786020164819697016879910521498763638806790415930419678007329877805495779185721817247405419311136716998279793692318300618038998854351707286961270218928768256827382598170806258786903376738635308687188133646120580562854285939580208190060090530999582416146898621517429849066826108152706639653315129770548370313743469164647558170981052686724715320349781815845102092276849235871344395609009805367391000147638517806076289301164916691091024213081450344735603188945690468244794324907761465070546160313840872741008506709945573925215899604457266387609894302342790399875438191222929637464749446008601488221758022716764459004827869258184169442527164016509195684856516431338729347719553830727247595744643839835096869884283856076047204961674842513345847594766450843936868861575441225397108171939442431566509613971499058140437754891608725265218384497032472253321527539029847101192223880599093285796018543934353278768424455422579886323037300376723980896578328351339267321850930926256475116318639913811467412291815705054444402869381671008099667665080932085198416557533563664674959729088820882594528628108557184782502359753435997795690457167862439385621761264629665380287798003196464643135936376738227198433855124465572398684330240403558464673130631783598149668894601115946140057190544925334873587530146343179546755594900125941779848013104978562979745246129278172869491409078925512920515423838151129979281911695557782005883525841874493847960737279092980983131998240694493138382474895280417451219069794610910324924093721967586117249437981946205272454481608464485534681324101665547748625686193317978660595848082407423745677689101945036770958960512467728127139168955286371201390048344320594507399239171329422122071246969560472361497635888000851634823835530122821866163981768395378405496717986427873001952680944577774956386519204872318581552912655727319362387036906435165732816487686835906498284836619906372125281246976905850241811556976223561871195758564653354125781310498436311908193857822006530985749750043856048082526603806605459304275091938447443182354292238800250449914594052090482855426509926360535234155730545154254284800605111168284838073723797394014094039305521534756792476230817725719427410703771214402143653379690955655500967328498197128891175395310784038998571670885977443903639136096644299636082029600992564677470471883800675057906933486261193526109548099933697340723150078299576721953966604588868968334157875882644765692954862109243834001705093351693594731123401732917120787466462493008195023981469478928936673375970271208842865810464460009126242658315931629326787385657708987040288214993213733865301129443978962675727698937432578832913023821578348422206863021453909333247353997706064403338727949140020539373315784338290398926792376693447754944962901758209144814996663530371336056200907722216258645978054417593184448909711235509929572765144116604912360194910122009866162316801087159637292534987912334733226501315750761138777331953405865080741510031643596286095850293577316156223383236815260012044049148207663218372345168721212493203481199262414333839357862811673588889790273106631026163697937070921812520638552278239444128290431855291290790679390786502339019353345566855333996305147897854447730143352492846818643423854800761935073046375749247137737251304494153787922978291006508613674270466768692150328100564491207069606829839360269133280510518680483791169484492474756962848261932679108234204471793834799141087020046889325617267133224938989514525828661188578198557423453135156370154166697690492414588559957084801505129733748588505060178216291423997040171477478391628478054335571091743167507362673745516041190292359516221983504680235862369802747925240744842543977734949096927916113376564773973334855523874509502371481996229841613719467357337712389403155708199287860708443850901387068807196942670542842329182519270766089934867269285475528470473062498483194710897723134621825684637030052759219647259279922994672766637445574505181928808800729743942709659837865628872087059507299719842592298292655529051253081668674260508439538744928653204169038806794832453951920291207063076814554646275652829193274069744907935858965957100468113390904072398109815307698615200512028041509564114893097199426169233771146642893531709679043083566049275972004287220838319626936207507692034711772627627855566404773866924104473685524934957746832164527181532453258837485591121539529671435124180957150798534433462522593919440346857244986902280933787022949725343332771931778116073762069529305543257825398834395854588091481438713569123217769982248411035042784614522302185605358256183016931001166667332647495912130905375475889618889484230096241606262474804917111876811393858811001867613289365349062116876132250270327743082555359420103274839974941822111800330547032679635008479789716377821337134398204153129586998372527184592295675714676190114622705915010836303834271358109276437572257685311801240418904202332060272128047845298241823232747537488834169537567044525087890134055657484184147606398384310209168832762623481823656686469338402220522374145313093238120167741915519063524542941757580005032476932035407362728346194576486903489432767946295307453725338033378592438562019821854355517532214234022645097185972047661852766583067085182665299093902200775262220162524328187548566025772532449615020182781607451919341139325574548894009959636825023261626258395801678101096632672228229350229596277101045927690181928177831411789641793689395380996046889541000916416348722558969771829890974455453779913901291624945662687773081677219242145741915197369598298057339361662391371879094295071044986206405115651082418536626124754606521595379288737786963238010262936024283673826153968545151241211956545487288289459595599893725919703626801087444431879925951069533045542207793434410476708083274730229336758056512364182575774475096742548663610626069806762079399195591711785421875603577817861282087251992620333772081674864106532501591574769053874899313023603429657340310488073995829978158606789590688122150027851172335182858172265433407636874791656492731198404981488818510529456601895197085002009218144627925382468180255279304662159292845819827543575545914704938014275369721989630206926038761878828318589734911933352348123591035258584755281821291897467067154694977675700917256382797580597801720920839373252638039242699686139121601870993216567033449204807674404778472115695385366213383507371155233744437245700329850553217473876731261382065058003081064356759848609825529902615072945045157266466172128903588368800251926651482588370153309442233440851683532449837872794356251280510417291050238202111854265332491162456912369109481126443512408949974474275869941692517700181637520107163973947844330796901740766226894372085769342774786730348252248302250152945393971133412588626902972811676771450766981057939620292138285474943616215102647507657431762201436067499407626402290068464807394309203444526420590115537785314264749365939878245160567038567644961074963769046667188520072888201757001515133601632819309733604347794862957824136940895086979552761864500619350151278417659524725322458719099564291339997471979211173967677976997262851775820487986140057252282322569231400504156395057478148413889058812519900649417655350798668440205786158539377082925314604987524601368769218261011070096033298373374506459150074541014648801795582889100062210003030547565696489372823705253476318223030677372800234911101682806191551504865635284711398411162829627249406866796231594752943026865653082034519083991061979210006559120924985428032500998508438759306093696538895893144692123124439660013956647018300894255894562958625248400466858407367439819305810823924320737869561671504193756256299306556047317753418879989132241283993313789535560656351230238200486270882446823259874891294269047819145975935014600466353405315083634570926766088158010326674737891606989453239337307416360336995065881363061440636009286066243943043313196954450204035700028240100435531704030305960502455580557373815302112041259892404425435316726403730052554398183483620581852341013082368751660577124829620888441341500900970122013945615578036345405698091595288200310000196029708493607712614907444561759002370712560868296661208098412244328705823986953181754774344479379883778138979310413526528422755106682047010989982512670033556934333314244370360242977365728157092560381496198364924170813007676503316709445884043781109488698114007183803049353921925135203496487966109091074094599548272190269522598805760990824198733770434167107881773452680549983372848692190661806282070636572820174791911977832302706207402712250139129704531692261820024159678756914215311214895854814818283272621613218152692470649464779968482618755530851545976525854637842173501537847702098904884189061376849307774282975372493916630955632560450177257828420740933661212251685456382734223235272147031899944899804004890759565082892596173598764108969956769404289419982259003009186012476689918084543457503562662708923029130824232799030552853496268820162423979924794291719612342603868680931019584593014060932628211254610596969661756062284900499469874914389945989728911993341472596007906795713342678286803738208344815556887352095726972902072184177203704936849301708921047022905698079030969408928380075611517484683109338229278677512155875474683487691957420875011065411043524995257378486771984025964154248064888471776174611149924291771946068288234346423768700446706861282583814361858086978832293910282529986652084398216039075881097072494993757748815252405002330046872232584234661147023959917929593423227251524805379840478867700736152439224890374226976901653318835714463864160542753874963311430241686854866886821115805087684775959984114698078348377275725626410325843426906803681300033210547135141212842887549015943399269920888021706697251754859371153838330590887003138523755632164051048607974798367292518521041004169431842726401342253794253389665516890176565539994961118916050398663741115994357631367027213875969856064655507132280723332368656730771571666901692993703424236579060017430792310303311723015422028750718998810646121714357522590504189770273621061334223271462328448379068601512667478231198461796954767560579441010291092546078217777463349909684657730652079226817228026980380172894633566644775655046026478712451253438817754645663424802423260321084567719883297178058609709921361278269720161662668227707526129589234434812413352036843208050207553849628284701994735537711751577247973209048507703493465875244469476047914111820984662660481407234585693518426369271097881686725591897603016366265068890159690875400055288083764987441916079510714932268943293373698140478190314818990960993610975077882495483398114380471623553738186752371603040743136050544434727322992025045524811248974047719338194753120416994503742396296678922152774840341949640495115879758484209253895373163581895502048485940727866271351657707056867670396702173025867427954221673141026728560360304708440154312603562594598012662083876616418308505450214832199426314732694900104889457729816241589593925837412474240459840818964690387131865794485295957290114398622461434530217772434105499506502690504248669685655130099375924034834821221746040254429520475766070079402329117605836112257133367162712565100938495874485298920902122279383387538373945846245213622721129055620306357829604254035640451074208724628202354868917427666221929217906551813139420031386389406782457642663483361538538335531687011567473923963030518053268499029437427303026753129680907081269784865420907945365092729105640561517923510336990258632441104124169976289443836199376044047887052912860747912239625947058130130495509416548953238044576519467343329899517999885824728514180980138616483563095839362197030404954265216128905260910356113914773946430764633782408641178176787357399334169870812933907963718316917643742393958815974935151470688505156055726155511770356467021248711489621962063973239099150280482702734725048103105116420169218748952200404750027450936818953813514413511358247142713895763282645452397322897467929161771899754220170561563861450737478370951009552966343950040277756195095860450245851896719102581953072271835084697845310254795011099531506887936166721265807498119742080546324058850925323948699629760987693651424637247171899092120817787641153549700645313590529116677847973776629919769613003808191979931520156659940441242026417020144678022915603472725529444679605157085759874612601974833282565821637543252197241965416270036283315070812809677982076183741497667812060443775303663610469819323880195349554505451531412929361196755840183636427117396927815543226766359313752073430006269503316978020697186545325233401024246007130115737053867010016824216374769352262507739362234647558668152463863183067394752969200118891750695401772705515990212954962404708619141744312512056529985635837200920921732715714069638702384619582537319381335551712673582865009066230594629077194719102287622971088397879039353154067199499309110173125668925088460013952342194408623566630946347575085205226386263328847017573369600920349490360031816860666530022979839482602225851715775287935209749420691001660776689388676841367035562258171714348959614751207937019626794845934586515248109949086944950366755788725622027850672742690878509780988836030295601894556924505173700763632445160542335867046877005614134805696732918224586858174766337839664176051923624043676129998104518677634642669761068222246018532195359324445440636787937938735497243020238220360224629155234770798478908729309780548922958006104772462784242497801114075114506270236881962039897657664777095623979635614155308613320361299614700850407062057760492580308319820101285646938314679581920083679408166161797429344804301813693083336287451364199905916379949614459256321381164262348555080652815817870460320894623711238100221636779677739480617706159666802033114057696454299421905464641126495651759084650030994560569366874430682983741880655316406422556556305758818694849573110497413615711148061578724014789427853934926451567305005986395210618413962226119502411199524224577348134511435391229216613784058182242662123849659662393400749581817223999307054808770560714993223659929049603005112228272131353191641385637172614734211911068415354417122607027899341986450249691434464917777505118648916784782968435029862707017935592801658977677079085846705459640458902361877048360593448719932835767303900674466531769034711156901395191644883487175026375483762952331692807991638871788986140756964375384894575016885032327393281903524570923574664719762347330276912114766979770741325578760507236229789672319649331720606398405002746530894932740074408121400022538125193962209967446103552450387447089685906870170759386485239770638173550422288150865780304222287579127537214551578219020378130695504570019076168484497640049415375975135684522219137789221602122415847177246045659176729846819229601176240634089477806279369170362261859764656719581510572935321057934898589937919785437118971906225726335458144385180535113915417157192486579680621807652558002552004486298819776729802097986230080773722780590519972283360758295112350160393238398383769885145811394686470421605563443060581142175891755029415672809528895360505930519744301723662238229706332233365385197432038298033400674457844451854165788723139188513677900717582653885756329544710726685971505376196862741225474884021921038480269646954676315878172671498165859197471139753371906729174271031401298709513735118625551766081805339506947264883258524037331449805668894361545690007739301680472376280097196407599152713794286612858619193120102462081753176489472856116038350699224974901684776356355038849850841999014126549959529428038075800556999949091154158757717349217229298248497012330874248207324698711284156117190435608884340835049099714900108804999193530721571789066027840774162951258941336619129182142123772247944225891910301373616375175358162349996751353335489440517319153829042224723048984346073001720949659068970818912250024348104745811001789612652345631231984849096642446606939030037734730694903539463871760026702252249210342527657883812018627674415926695393685134040835213910762917652334696200713470147931912582339184039499185961335302345880571540493971614154698714014934513113139192993408430574696433704654442461849919667709968253126444169609049717547267935388086389428348642504076522811342272344824526286767235796519197246112187178732045025170238016058317312590775044687364378102328514761889646688901634380461245504112078312976876161801320889030758665889667186792323205377512127774538595582805995303134130776072834870545080858004999941710740583846662405613310903106832618066258493238800753926662488761724163214837161147559955914892968278829319841113978426342076061847198172156394234791345543055991120739660876398965065724980881837139157234709329654709274961082103417039129674221002399979976702572985312456334162691178024634124306324569320314400067507523790250427764537519507910200700564568001717263624367071083054801030988238643764993503688571984254563342134475899105638078116885314998725333020756797605007878221249989578178389385457243343213548491701718263607016020190733384776875062041834784383226166022183869135730282532360419897682526915472610236338971526087749604182033234620793079696149324958040309568222968682099379851084172484413255669989004992577953971666030371157333874871972598589822950837149482167818707978952761683076822103525172088996681279392953353439999391032146059512040612894478539189428806134198668246298431941770535019471130309129118824451845112059676226807511356138784601832856581121232096786278998060936636571670732884957157919535156580961292690997067484859617428487422347645246977276856526245259461901011439520802942585097890259597247586619922340114005427413530657758385846963996112688937122643382514721628689851619767786335527508295828040329315652251257435758164615618467147734127821763112228233682489998770642708261710544568623891274342452507242179311656742303973797070896463676582699257864179610429856759571770479015036193909034555167719981455147301779726257024742877839020570276383441285365217710321985128395131570039439732485930585230785171909899461263168019563490270570072614148042727706491702504612338701241360878768162024290274817659164977989031987868121621005686845862005580905902506678781096796051384489549579269254452010167144162562863648940366957547678667647871575091309330250038504858269410689374973229697681680308779870019015342336518233615587330237549032198662481185771653282638290782841090477778742109651451000955132053798723682803911266772544927579189410242043691496850769816015955206190625524279753485580895952834150430260101881133912338027429838883589062222489067707616735898288194374802754767092545851737866988813579417245259354885559732914580084349703600139664828867471678121593898524964578729937875400128306190926423683992176335341570113207714139157015778342610408885941059796429474127017280969973044504768808238724319750170362348080087328795986514109095440272694512769244506582076139043310529344580600486843597145811710262424360315018665222418139979574539475375228565841487025034045297100301221373504231116878753550969427641564960359158910270114494066064671697600382306752869262181083701491647235130055119295931535774832119663097585051151628560224543429873955295126899078873496382604885811823335047397289996879984851810073626733782846706437643875205954768377074712942075111928569754328111082180034929674997155000858062514662412039725792161139122939175280055804567052925007593157203599429928195319010822690016642047365523975193092668472291951347796558551916045145636784563509216747809070049958898295766325221789910268433525984628793571012107949295751326711540045620613060143171339119250751385486204506584244007199158663673147731560202278150985280790564346244992483418783674275197578675158757665880761462532311565012854536275259194579387576846236453985768598317133928040116039874395753494977866032959952517975845625414605026718937900435767845051981348696879993406964649669027653923596351194129180265683309060879328113800469757289695689845072160184216769891384634955243126305509000231852913306271889300311611580251472489143485511870963409767037489916223516818575462781296289834998402433274055541548587362266132027908343310270293652901887540677893587232253416940106826123451199674205829353094615504419036637289079961642739613581098940796358209921077171029005378756065842637894720448830795764605614519651888889566792597010171990011351735327270285281615919017107003401749031596150596902668271951682222294364589584528912493458309143942231337418127307246496671553363211174935960314970867750457368208286153258946593926164531739073771834241847151474511323504613245070119311657361025239220545021936926958533734248338612637990415478120621480130211306723922769887798509501967850693495965543487897482722442475103429389749376729122892862425801342308596783605273968363150165388778409840764658345405862252523822537648084742751219407346952277994500581258648276036695005182156592082939702699874117909963723801718841116623027401777218899439335064658167056215200292049935916776597513639257443191790465310919693641725933301223548289248794755553094911801384415183388776741323449860778032747640562493566239729164997347917680702605150814226978352817951213231396689491969297757626897619219267716810939004047172509896510270400694970973135583841274328806818814447685633753774899982469778209786822108921555150774675120822671035759006539502349849450161129348754195714458187851264527084790990477226512512965323955831919255768242734450131041299445105883812338029677343494562317482550243860119751873092828105578293244747426686596622218316028339895109732817638364270846927754689158907497147209900002168529003409969077898508382127948212882834257881384617964269982652541378173411401272027657563681456691786871629551020358312118010575562245179969810532343686337403874682427941992330660126101474932355675128671698880476757340345240379261589757206538276644140243591448375966570055514946711001939830628054237669426184182781590311224909178436154615498910364840469574822053279252692750963181058145383901013531721214826795013968836851300139512246310245330374826811566598251188399870134643669880791628474253228426947080441379705970495270390986176932161838900096239363450336480728358121660736783390153601970535572464564299058806864333796686387332594469073153994385095844700208782183917632033218723279061265118003742045862385255784466201248679568049596072970397193137078985883246128300702052885525594780746421564585095609687989993834458290286341002657251948825144826747690349719580442518778780147176492919929705670541876557866160880278650781294603971034743162119449700828656087138697812958862341060764175561728875461987392412027770954908282267755719233294642635831139364616788621000533190069439212908252999453078905637777705952986924168674312704339744669618828464804971433053422940988214903751875430023382739623158057631732036674590120546730148909308081114305395315207212224910493384820451384991653659448978225770473686367452916258534384291337351979164958424206426817792537470068229855493497241376679004823719823986988819747368992479830016521541142569954006792076655834854075734380452785393416591018233076739855859951410119020057441660408926489240248858744234052235015312689536645294066140432371538870776200529913862764092702821705479233159575709417292511938052090281538838904153719905911091647315766800735523857248998434279507681260408890864267984054857680118618793055455315622205911077313554678476247214182562353412366516821551448538698801178741559109217598381111905727628385072506908609194101524219004318791983285919328011945534194082177815445375320490267107125205829887232013223554899335699770372084857430405975261812408871780836901624964669913601205854390535718538731840636213507122526210291026705100455207090799761916303737611095498718015383273695539367449005383389017218914378891403568432670564378038585523678869524692366223449293349969001376439503780059213395617145599507673738886653885084002287206436116828369384553066032073403492972311977064650524639891378425629253332159638893041813032934881952132399467976245668543623780931542857170614956164264501651855682813768855346286854094720443251239437403950647105843269022721137295157386738355758454406134077910001701403422976794885954473027461166220587841397840501166689575531911597317805808102591150807553757040574890431224836986962040645775994581404728395168739344090661380684450453668777568518723900133635942345468808230315935541326100872412112402184210644842784441419043649336109690467316829152591954072742492641626149646505202268847202003522472944163143434566371337187056519749048443128032498767230014738325368105328685722551056006904268081383731710635517714655609589045393746852310268657794879877030072609762526777676906587413626996300426686644709623386418126598512445350698373764780993529514156793692923563876086993599334972521483921716382480371236195248547504116573719254122734842113324863025429700663774808232575994181772898649903605700839743950982852457845840949651080764903822208659780042106452117639105404056917648995969185693424149218557426393076637989991977635106196512517635575597894054332477320213104103434901706350025399306587248966912668161365182748892410489716557258371099007335816409576050769527214372327366650683115150380214418419473594087650996460404736691575324223760892037138463418698822310363745532985115120525829616072012730037063852115816874271910572148573238849052653845898094176380708957491955586066229271021249483671635201830155532924714632343434264766985024253387001869670061041916163130401004288328657034744073073443591086199025089632663862284167781270117264344512941123419787277608331268860291768876962913670657509532109649259963400454666463954175729547584613759945419011937954679884331147629940397273973272777746947014520134351711838663237919005139929043313258789501219489523017697625512126774527762030794015328547570383195955512766373917283145478618763190325058642941220145121600343478742636109650892881705079013106528271994691622457855199565910642173301682067979001538078601743884638162474403077860365622473996483497386365224386071708605904734994856386863701603347007540114838735654914080295703516356594994280824096309295328148161496133758921797966842177929839313857343793692770956012318748725803825933897318645861403133271042849933175256403068696910129410121289164424272137399182682127085603783733787109968104098377394182840639767539696935306818837422599490985452831771065986686738358604386454238631747695032298720117807558586836496994869080140906750689191320601472460383561033928714866291770324818162367404839338290964384174539185327365830116669403274602998870633572721375528987937765337424751817575585993548538943792777456762803173152597416118486521903994634406542092022457035412512089719716903824362547244173041598255466739687140017907316522651270207628911428971597712163138567355789457003975691661427469923898261541344493118161499559424251945323748478521863105555729254589082706004989495031833931009839094663432828454105993443429528683609346283307972199412413650577304009357170229908626694729479571707279191962098569410788797387116537722426293005159315130462205454026604104774505979406917257443362308390831984482310200498705622840153669147994576203906824808691140793863550209843773242675462273964723207251333113707234133332158794380914462429209698058958269620360012301137494270458041541971107414062230538825504454778148955842913357348229414247554335374950847816529229479964651677827852466162472323658336596992793144498411169963953887139331712871767095344058995510829285740308536098447786655685608142231763572727444034305745793313100331751927390467770902125435180485204471628295520373761051359351373576732945520764899520308085433009439366585174313415414678262614222167278950795738515173225106150789170881856853266107791657747021373415176273082784198023069741752299143287874627154467770244598386700184535105719834780931429162049330485497260599639961703761037119953035090240627628758270352790550124118926894974107653845024624222721268087689364866458556714246955179465271394840458310202672069358605556074069439312509801020169066054625060259521584221534102551029045794300306609814099988776870029833320436067962016173668301076460456103590502575792073826138460399618135384726627291160105821179995304097970752963419994258938206770225490498311907561432641961426603949477307884778265277003119369464287892374809424852137291290539834684590936011126006017998162459296028952201489720114896325655803890428837773405518972948714583045517236159990010715863466332670076949781562000241927344766917265453550672465006669029587254494056576685826668608595318422558790504108252353639115298138150757010689380005106933100900941116666367319408353402147245938236170399869142687829933986067722936176771258587243017429809482349794707684703513796969677837626807048712759726293296681835359677358632134440166688293185768151567922875569810038791965306148261881404448138535796453384629455763236478977717294598730742067509147578588808526369885164150741813112799770011201145952960392512272653309439459796292808945690858689723238964592542275150992808925906041700425752142616938587876495397056539711372381767698774894257167585480760737016381620420544123996949692122388807409536758729380195344861772323720685943826313242580185963012364030410139186343444673222429143678622432282285629182647870000558550567280322218670805910654202539734603674897313721201460325823716144885838574191946710135502706128228146795635075113186958580209396301776785477322141977679033912747183143611038857927048793842552894970270815456611821031121643092838972147369756612082976609081026164061522971328555610821240102665756065079077641086261129005376143929758686148109264012767519985797483825928014381956033921218505436553539165300464048302215496172120936320013529233504663537387682776048231473271057316185888426088504641345450429668783339982758784327611512538088806520473687554093722734502512186405720713280275269551275567933516882426530634188955915626531198636940094361643706653181598991516973296350454759455467368069967384956396810302756773504252739295140644935857792643530337166810787612508041907035946417458303439553660987225805306595369849931511016431002992462111798864813017685309108292336710226979599904086256070213430585188129184328819463561608387900255705754312262183537869923359377578448324955146613006644754228354888093097478470009690159652040561165926016268379870857350875430001019545291155930268071964211051810374784965481203608134831606963937872294212339676696942537229916225539001388774050328601205006610388600923634343828356668785527010214874969228015023274132702518759669163708840485270710345284365071708261179038760334076501314407024393462655038299970858819410390026660299698377097308771396552600704074578103166680242631661033622502564753785010857284374256180532633993019142977646027361608175873216418475446656300634304252153110888264707792201755752135704158952833016809054585405537101506287423356552805252951676076536773740399609454794447441222839000930077800873628041256495215176217553285578257045500624997424740835939579859492427096375499624272674480346447457281346583065847469826193293763869326860796304061413343978248875346078734327025643572747911598598413032573926703941873493266855844649082401003513851393340193300429256400916124968574427158192853358686483528045292014950650902659100256597302039908947542741336810923720996647341430048398912276577161007950442873283403610949833947161503752139550285267978064481051108985339137868317353533034170600839575441070242647793432284372730783727081463095958575959409433378954845926547066593510856285469005187621559625687945434179114627278732185798698151883649891460050048672501696730588254918905865336744881232205647434767736805267253273224358911264920011321329864666473924626809347014452699912811018883253758180774573228162020404762321412770399770193012875449484964250803984086226678621839049510524527101941879692857463371828379880686271568604816781406304385040230058878523524200379843901013752031625382281061693287391897645357809479995294489623116431465626345484327790129468645863422397041521943039629908625879662942188988939845917857691789900292674976581059065022602103962599358579434049956609007313555754171837600465481695069155944363252101390122638940182974058258439945942001053406953636136753748939528793117761343161940040147174343796849024602122031647407412869724743960971097488797208172774915188639389996810248889317606968799453532423131445727863728151670168430821681451167139675926015242724999072321791157700668731342663835694613034045682196938013538876055307054196452217698890981016023325799048962473265431010005672491362316565185141379789843013296343572798901994703888408466444512725119912918021093301396632530085435061144504335772430168315671267411425061194528243599412831177828378845488098083158047085270558637867636559380303356323723110924898672694814838206572292896208956919448297453449692980929101312521925946794111826758966627100619368949628556034324334874303523635980151235258001347669394761965528718327037892558430203434268469433786724421964745945588909919019517307600086807379855836786824409835771036887691682555394450752974666595258956062598701392658812635233418070621617152120650719475136518009492921434547802775088869046554591933464454201306403771786004626793633188182084101609714153236194991860656281057879287659174003241149951057544499892948461861863270479390097980157450389654992367155329311132415802344132886833345091455023061630710111210799961440288001696221856427410042219054069226307126839405782445827054138505033356644322183546344755978404054973603311839580591287046582496390478623258238887493162485577706725894488099978796263353144602979203697485249599375307728620657269127567885423315439419169010038861400598433215476136548038220022578557115029882315306839220632268155825663943186451940466557458795574275285759899739008903412677041554544528291829998475587713132453228065238815656175553770008891710507862849103418861921307457332375334207112660853532746605918466141631563472355489843430000467850766261078647541497126686376856178464026136208968517884937962708476509578488730693627158138367365829423942457260190823003237708947257506071809590710028893052581858321892125298526413834089200586805471096416595137536774492797152460165796782634521908196256527542274886897829479581426345740347771183754562125232263379581667368458459093524637544556746046119550802293726431264571706059481882144681285643551241949217442373523047528333027693220388701190737726207175049560547308099873165295905226815581801613835706611104645335053943422964138272985651683714867053022016300041600924545521759944725761997550917545637953775335022141241012792765088780918535807472814789773749374749262726150294456985781910100587275588370330990634177764635671338210297844486787171582376620833916870248568876743988342005751462761838141337705988487479005158275313880494234451540569914532782249122671626116030881101950245021551489854377672289775091469720094532435706399325135846217289882666058716204421682486581216460681944851488180549734956234785611949633507553808395637302914179709386015536334103448196152878002419516586706470161682631942415272763791007126440576232351750399462921879834377634394750790773652583379421795096333072810912397333006388566279998529171331104327127519135283022096801730137520723595083299613506390897030465698272257640031305513749348022123912297209259964918244228421488510788137548285984956123576172036040418010544724528277251722488531366794465646676672052161256534708319328729398745594980375805013809293657678778997703742791322586431185947068978046823812875501018107775397732458213187322918785429952329103737956890310496392526467754432215078788728570562842106353326572316867445506175399750348331710931350422932991043000639445691522877599428842348907216771284524581420338426895046672023563301161876587253312594673345307010017760883698216112671941379865766852854459743964956818529662043238591170239435828621134635424266768696973546401420453631313655600050843669242855481162067917783237984698501906016828644680383719412639426943617286152454003684126471551692659121861359183861867721889271196639780751362951126683912277393272779073129934716927507518133186206227394191201707744993513282978716502872979853833866633872449242019052749297729939928404281999795365138496688262178241062610806405731887578292057171364719331848915695995244440543721023209564408011701081138665769240497763156386021972429553939646823216294286110361809395219974584300584997975730366386991006080103281132039141774588022936765185238111824476677691230526352751652521149304729015177573197462141014638744450339939746927855718459258122885992538947072761654809712540814793060717596604957859996480288999530331028686360051091514642452291973135050556383591850342111024902938978316926070414850882433590118164752961010478684822139755219973007201535358120510545533787170620817681734723758973442442449731573158247589420308931267912556709704563073690276929647147061908562851687440940667683310370181479755191383019373841208579232670721781909700553673694350341997227379747149655424611002493368357898012326478488344701120288373378817891548009880731006642259439092404636593870857288530371214593276738534169530973246694552285061203210100921015617082703996994308249945532931382704808715349186297715132822367235622214696810281982757395738404248105991447690089016708323712444601273860056686622482146893288859624565087365160607237087687247327205675449620586307349434092347708502439070208863343623786758092812469031543373212190314144873368002358914203690256106451514002767732952457982647292598844508097107029253525841044353880730126613736457671538830451243374781636114153143069909218485708216212780229074608921415667095080453013310692130323314257046231316472698258703281923940841319451304089482962974870023780229136052395980643326152840938306833728704183375941892489423072845038189234595218352261282231448361289366070547466089147625730039252035001759747275545728279268118925653540297816622936348234470467955048694780298300452130763080255697578853539699479741678196260626277653187126703828272254695673872876890698266334533058684148647438908954180623677670951853605479521807403341828344597536674701056834521949439910574963873301122755659250854384969263833075202669577441423525206929296340009790563638767532922769094600416438722343971765448714477265062163957016723641886618187215308712326678052765993499284901267157229965653416002597837688302224679760872716329424832642299442273567331056541792947436842569806639404302781100870220297535099543818701514171325560509504732549176712669695782215131872085108576828337273746533599346319449172634023025461938668646597455568454856320864178573194280032853035869713288798816299779503086357090669945794881899999501068956538001108645092405048684955265251633805949705759963179316838662022349406981100956438933866429965780712279906148501701152597469053894337827589622261816554143033808762874414749423958174112709961823679752867262692717631206270308642496303570724319232891927721150647924973473358377046562130300755078065906508261666420615756367935747574840809607239097869563368066305129853174526113549898435540652522403815650758443641578138694893929309096536028297873399684727832524827008969547933518860163703725106179868261604767070869529292702712956541780218136128913365164404737999622125152730180780493919749168115345014548835809182806698618231030425541410550420435236286703101433532789750859040039641658651393401556966117601749235199929152286937432352630948862104691153493298952469013124559130038810752780513352112649673573893098559285771298324511130142563923205934896491645273255501254486975362905470110040057659930497602535445800289893334646685601679083398322425775657500098503242005703287289256735915889426349741561850705867132747936050183882753835058324657364917472973120314318901548148225029492558241280319649677229865522017446348418130382534712311437850681011603863983177143233300157543876167437448482940966621642283881034977701560907592971266621589757056968830776440109166979420664855614179364922516854142426419043979362302486324944544686940450508822429991474688559744166167606772156601018927613855157593280619765995487415796261373538605201292313064282287739586920189936905121991870464192508518832255739891865067652208374214290331217390295682352912468680083514750698061728131004020838260002470206711796600230374202434180202823391580508707550268915047645794203794245797645090884247071623397846292399220956477177575802059642549980940975456478012653396638579800011301548490905507044156565905080817928444520160273353500426368021412111328828903674760121267275316730918349715888667489743062521872988568783699077543427792750625930973601742613046609026570541751752935966211182574230806210555058017417107924990494781569204017309623228935163222160077561102399525773046559277012944622678206365119336468700793320094825365693819109311482380361708144952102973125795005284444978370150271876505196172255463277177159603815761170234327688390194951069056666339910957590426544919175731500620364458772749298050579530588708759596443523845387881668033221921706381150837526079492206032260877675659684966143818971661726370937951990986740591871562186309860523869574140057911209110110343938596164914641393474092534479520358580044830856394572786948326316742451397000758991203751382410536799987335059938183153487229099408318296383196893275450272881898036156928636727770613148701095470683621952579700788305542398593823462316336597296049104750958129195996121462183739441692784700017438418517669082786822144394294420369555951682164317865482235471272409324752817548702015293278735270289293457826483867510387235924859135657177127914854164401160765693507538012807440883069743204063901920936334331526574384493466829546272269099963579279758155520188500005388584632447836501738807010103196000198399223212756671129708267996719291755854002424860486129192750824589921583702885384789040863028714127845504241501776875315573242815212323043785218978703538421631010946150768889057843157030622630109777179698206508923631036745451300560061844919008374471114977552001493812423904129529166538977311664887195255385035491754841122509720960985604229857054846694215859242531993629434065458795668411889067289858966774593179660838028461135987394476132254488117226429487054299555039111442521972933287423148349040889505218901933725432402651750182880321472492421719147438520310485483136456918528327704267627881783264367956938133399669822348013351987059597457077092333980546966568121464917102046944920516416933227908754759741224296549929159834906804310875336296440993932663361004339024175865214055553481527356168889164333349485546469133910625231989268744498712847804428983126365859276952121784857045512648196987494082086278960257180501672321338578910455088057904599756029200096169455179656320919066110336150659914248034992538777200138657301061923887239895096132969595963399453283624763244220532857727476321531255793439190364914389379933950652461349906343805569695085197829694310028181130178020556214130407167358674052617195969108456833772487149500659675967735141223420437048365781805759142554259159373922727495325785277964350682122334766640599473450885434120441418404465088754748298090839116659034254972320726086053595089303194455563829305360018241988405941986404358431565651333241302868786674110892354086640991253792239238276398191148647500659926830433894210136413151653145909740706591907228257675913525731937465868288608353781196878107430138917479416634832519734150448297773722106821273994832004058395417731987395211390411751487814575746577833943984544208896117997995964947085673716385292376780569638732745140857472270460735520771380654275281206732299307496564745189658385574973419229462268209789747771094671818157411096648510038282968303696347764882655632994676669392116859579874342423405354099969116509438093288442001504476812847046780899118122264202887044372246787361516548361957794032810721977106982090205888969672611967731980148632105652777668315383739263593868805514849043817945570426510341449298344693633434952444540745499494725399690693394321797322862314615803652740896247361130254006002734662218363295758587606052896363869321279898581703522153159693856183475825286136286871350565892024245835165799640413631931326704192211790320188742037359519229175522076860306833565110711167707960228422089726197229038708416696907504447322476521055585058765936695758385833503734813198267073671379368474392167293728505006133171026667269016526893128129798350768095839663996843600783612194968175551061065677941928275195867511160787367375141930829297144312548654761590983956394795874106165760507775695004236512846273261341576045509579226962379863204830507021829606735499295954614743518633387220031687673207865192143001220113096304819360095816377624800473383984464703600715699234884126649055433360128955670622803811323789602910369714431501650061124476014593422095020449831968255732220459793633873403095464500306815858661255005248886853651237193977210196986814236092639505641526432094708157155845449968584557327016626772106801944282823269822858322305496180973217210941870871396352975136751887814929347270128950455728435390892071244524047797592498494270987799858793448221120565956183811561552156307093894738424460723063520931022986158429539283617153019248581084272944320397577398787892115535773150872958071598272276993191964792782094040750238206728342571388962109354679633353037469875912808602866271009895048034555943335041175488845009509096562219085365591113732761058729461700593751189327112774224814574536612479433588790444529153426222574665118337011716469592696046900704872801502521375062440939693268210001718905040924049221053147362656173487838755680134490355592704861484330615730970347829756715982991850007635678839289834784831932814019036882303502790593596675307019839645215232118178928166296772749059305328621528388965290693966444537726506518382268799511578581561729122510408763772035580236393121403522234652686048350542963461905091466384704631689356789583088272616467590934610889438525805231424719238037701191005453388463910284705826165765754465935328632680428817477976606722173103124109492819348865170764750386398057544725727991898755536089700339398700264964444193074532490449737855299216129208274397096435726829610195151125188355898375645334700625735948166929884589560175447988573313842739643661131723664842911011676220114843575932035468159061138438513037561760084612929377703079716894319233106452053262025000356368951477121566733322687317640742758259939267270899519781877722643812035607217798922498056073451511524307763486023258188896231895992539715529688570743752553249112238437949483928885402802280291748888912263345835516912693710294369004993586354865844404160014756450682014288322924069145144826730834249459185280304103892685234867647058782815608748018459327480845610321706756137335654940349139354518681493454322708683128414560389687481615740198647533899578503436526069582646058787629967083213720769787177765789050161582081105493850004440256195351049840339454788726724150033422059805797078203311062400071547667258756671266298994481979698266061108650873404659965152644858818593114929085768585841975647157489281429608949973457589006289754435516823527540718380665304789930059863944511521079084822956220860779961983603410192998722109040766506253506093162577281024442748193961594513261070321442539306508617799011537227745562753972607158494398994706239307811892415970231233237748500964463086779068016941990011629972693500126088404083950047312352931754797726460577480157376215050709782129119932391056845592569918035563456430941329138180749361692619657641423809911993565550004344138875591272724535539160652898604163936305937567015945603888034758504369476096944574620967978708000303428184063962646773803689353061242768652908480262484660778973759531458771641536208363741121515833877479971287356707006152522620532120729683967143958430500161525323835037568330724723708736911633280550949645107868528828360151702152586653155246368038729154127898590736322962000679656487878065644421782456362335368540119321761055447513508662003844893914354166981373975694674356716415880978068186658951197063218031663192781964186113623645167365511986232113836452892517059576266988798666277175021039127144273698923921527338958833409102243224447434607409438966897553077235212814907561617856675516377047831568217775770541201758581526645723253149529005822570211902554804792273376744225547321959637141529550003495374858128920813004842711774351389601735541126341196061586494500760990778915597829934223354791089489921440296607004747986425543207467882252120877187568705325080684151203888216058370246716541176744478972755185532071995048109857968371685766679712927311658140930123884899201944184072922094806576488971739129281278697376606797382736580732377821630963640969415037945311804035082183941296932383116195439220728869536199595775155175609612922454995544460360115802717861759160128864883922697175489296868143594268743987587945089011854112195687833673664047184620453312014271112934115963222785602810410392336317290015105520617586396584068664839113967445208695955611227909928151185973404012662091017505646449738494069532880213701692598348778874821691692687003627194515171755768374071551260863554209671167348515987120753544830278171467860797996661554186391889223141140743164672777261467436853366308272903002845016708503060738065633392117389518801460257836692827904117469783217066979366305833657433494198858208977898317051317408467523444756379312363157720566565714981795568240582661835022341729556989137845925741222091097190551439720571728012574234975790186080806248194478198255810004788126565733144163861396536552090846303633112877812727189081353402307292377618366736427247376246335656036692423501209993218635653334628114149906020997596191728374482307166161797346788402099486292099876003609195633021527226507867722556575689248716908582884024271052815598491438948185299809514719941820858097714520557679913056121829340456099629779854168479244314570797293078858528425854971589049426128870740229703422614781049104115042152850660870086216214064749627245235327926579339096978049058404497930298033655835409732009650986973976696814738708547987049748635843903471395534991610070147484439902930117725559784115326181075442233204453207220946641685360738302087664415427710500923388098087690557102162401382837373051360685514047055448420291105920416802787485693623641481536627603422665024261469057249067754127139346430284800567021845908990742972640613968531764514537360060743719889207872093946859882209529390694807241238665377768496986588178375686597487804045556007479161570883126878595241218617814386309010924792047915296627862288733511544433656458781802396088164987587214616203675257519710696230724141339130488219956020262769201068450058041217196266477105634943967006799855845029310545368565368802511970471853810456675116962622284836666751652972565028691239331824529402316537460792115213898371182118510922838178818166749654850143978284692020871273959115031038817600026729483836152603641115560705812078869760550551561969939901460265032329389170896145441432860355386948199029344130181850347381253089409505825533726996793176708264452980037617979243802268781077669711907278728215064419404726706069645940259919716835922472019866138809493660913957972367473455488475079018877415787972579997578795923109995032347905916232904114970676096007417565066800486165859268722963345641527726022869739085345130541027000827091814369638649603804156561208903030251965759337667878640885840240858150506836162804302080088363054350269860874844434704979890340415319035561036911422035889777876927842252629339705934066099567868791906518915044911725217879644174098547551304057925656365292015569514862216731158929892491501702672759830067575481202086415376888830676947316517147714869350604664124835821091507423156059616379612888292958666269397072086895413706581432104961808731161517067768919440112378192495155559468864016373113042188747932312896447894501407654415912804520550350147742836677409698147115866308155110347433813524243334415763583004531124878562678621233263534878173878827870925881947654613281544653121876976091741859474326733143296219831593954108951326891559794963840001611898309888527898185330248854219104212807281217743254961968795962587671944338668518415909507073499785106760229771154994656084855917423566459805443355191110522180388308154086353048238886788690516519358806050622641522746190501378161994542157074768354041975253244894245641594593832432886331573242787317592656887059019907652795321398455213827947516307302464104363842354652104554852277054827671223982679351114848383320610470864559697723328728022822987010651857019289970794463036149423621809643966283759147001312588598224693499019920187300374014185960113128662578241189544062443576881020017612842111720169362573763990876109892450129082667670694127868050361079377604027621272040251537682785073851653926043958984942235182580230985613148499235920206397715234748606620754139585118129589955229337372332087207250780597216138185231864063405148806304184706968773313332885164890813426190591764067344113028992169500008592669994543881449094179434577627631949015334619630885682389554050375545884922123795614777182540558930054629015194297766898057453244329635133445090436063767383169337890527714869513566432086356437541357488492985349426494664577409204277243920008101137081306774431412324820207286513797088540522231527664259634284703867521598247612426991992824891314575016826630600359232200418244493314320923750403427519119450123513987529974587857054306470823047691143613397627543717478445242518451936401204509196021785667012748239185566063990048385017889189970861974542111446526437971740679129830726394575406954990292752457866848287175980784310379381977137089589413513657565885628542643637276443388773534302128649477938993772317097352634461892560759711958545278438211506186962246073835901189831474939395125314912882074752933059598533321874657196187271918665293582900526014769178422716437547607980456428872284054148237101204585303686398087873360788376539013530600945578258067828714572505944572597420148172894552776356838446558760754532145029753035958486219218092035100606938908269961096998111467675794773296746227381466475507892224627240635332387960202552410453281241620442556361138561372937083222027810561238438659902150246632434171779924305944878244677992797841325840767837648848629939831447859811132706105680224447627788570232803720442799520929021325737562703560192497818618707606749158157310821151671493881198659302103376401283758954241798980348846950825124149447313458481493136215664736261854162641910296947166074655434869181746068217831584896806591266311258889577928240748271501884127685752816708006981286286247442710853597341610350592179728967211960402212819180338629964583551123934940388321836387998527248475307878936644655620035180010498808915553322322841736032809606866058807688590847668692789072317991164843327381993618714525016082967180722668795039826837807363741496402302470855237567911025486785431264865246611035121589133348390377928834671008001257288452979255027007472974200241674507538551599450156583540610265810883337078259890437179925912773302258706098983862062876993214888927695358292595931870884419594224877853019763702659890546962560035602394590477234749295520586120809166629903011670657478045051752696420203442318319475399304696036295981759037484979983285857737825714802507469508346982655850314640266035118479030458521433654703151585495713478871941912611102866217344896377114183004444642668435222272309808906831365220453096033304653628002801545630575754301084479432879037699289585841465541960301651063603125136967251062555012370513909805357179188494881519866443499557414803184094366918527333176596429378121362161385584403165016037914508513459886854430287553897421369365003695337253951311669212667859035194376358569297108261895215606865021358922637176984267115947204704698343114068499557019254034605760988631192132116797662488271022427204963944258053180228969841281622584407752697899564469367371691104225285993941090386602991345379911099544044237457268370021804527700251780962242577587309245404271268769733546815600119830055981688553876784984917749319222137153900158396286045941654118040610613151892674368982307303128986777707818188638095439142625154040111287883452688002851488137450486133398935655872948254120527039695647644214312169459928665007613701975734578890448743679964153046389155069898986624681714207022471833662078962523134585610258885284364825243606407907663877150924479890680613282593358601359506902188742968938929256473225707292297561203362719265091380706235139536702056629726866419439954683787316399129168511552628812184439139392711999159423909699420568616765945445835851163238846503181328736404568925964352693238952414145995768550093587379541111748843379102822009832041938473181256478945151480720459872815187092143695708938886403944499837577283547199988387163996253972922151014027721988148452892176432516247468517831423527865766666288293733440878631874139320749777815954979119095885503881690294562803638180888457455505290731683084328204255279413058268302165810833764366799520518451115442065596885108828232979790078751686088414160970076728045501873655631522046042107446355002683162369068503694609306888048294516647070205403417716193210570907221782932259157581670988368303521685234424224265969871639727135995688013663543964523086197415494062803603265623257088469107580889239739377072297088266878359383640423930900263852275273282735909411884556487344538333058695743094003521567953743702549317940738115622715050467526044992774771766317613428510157735547105171316812476938679598776100007616845543712722773228277992445507277570318314320288523072629963466026764068400447972902359264409697371563579109044290959239591299699458056955966218408600465489641094748158172484940399817773286274269230712633565758571963936047362978748138502972162962332944850989070047837873531677443475171370674514417094356521695083996493422649794152719125994183794488620635139739496620416378545181613192935386359066135829342405299946369094766581254173285705113439585511646922320160289261113161258125742325584048024644790470480637764594490265771566315070496021000383930486571749530190627176354677327481961126294095844567114593212144181321354771426321711235556906542524853791692136649699052937241336377417196389066488851141486454809337716168446018172366669960857956719409185090285599345188232552441377375677094356835070850186481333570758557645323191259581632169269641149190792357438969017538825382210896223718152338303661223888088733881450742832443689914395565932921605262812961347480724461169331245251316511690580270609482298481707220699342410810472848444343039534861174343850606619716218789603164343371969909243816914841317784149771927543038329667555426163071894037590344152316903800918306595164669617295433335555508107986437406051072564030442907327962051149921284557305110866364344060673165702412528964392644039236789444406178644630720808269462908940753728928926239442752590750777351973708846536991136729186132242541775629984516417323364166181292651623030400551146874928416408675249120457053366020242813794428928698501189093122776668408535184287763299871087533306913271689962758358830233488028593837949640762344347590198832194517489892174747637654412747509825405378035997603648003289696609691649725930497979578925559890692938221273696126239819799744152213313924820079881938504157948000773240323641780238444953088273069434162037476782713475813420371097152146139119180209595463775547761075872556665562204633163615433465261380963665295723141785417660690282732039638727706592713069187987035942055629695490596578828184912279968068063293294534202282875878901501189004668066906648935998627338548374443863024878758354122112655370660160116053808485367069031807647406480655101632246143669516846686127881854953241710446598045538260339372020346268882279420486938040375341467048660480501615460204884970994585158953992974649976529447931818266344687772707844057731306814800029155695392494711472976486384348980244316729983326278373546740079918472572834792191727747561929535432369868805543280934644364242186591411232102445051859696543923355521130166010777517959350687558257678819332242804848301409088331924446391058095994065930229507973378548895088959164609994575102851325436562504836390267169668493347671272709095435587331551712460003536445394142203330301666327704157207470541291466768122900530303176573930945670010589836835144058520401392746341933852804904268037624528861007131762590763561807864456025785309498189025663207863323730661264964056033233111781342463457685218776536619686259404021569676863835831618535958814806705095707472003628057254125189168184638769119247123890003548962368295175007714496262089960953330144945459598588970432706294507768613723000211984691975954693248382040281963002140305108196133613233411095426373993457732178088351590515127138919355901885909808228181750244063406957184992887334761391528719971126318376684215753210578704531802371872478948346291775689993035235202230131936693725404065258430628315932935384592090627839706913931911671773584450975325457070556547775419382173959392874404502104319588444534670395389877107649872379720029451794227745170347093892876578956862450893818177455726930104838376359053211923590304537677956126724822477009947589721552882815650319765431441009780162297886246393695035665888627562802651623182638160321027998764318816276776793122189332489667117484849836402529030000193017135120515940058570315206379925226698625712597220720975491038974358735756078991078408997272712097777036566540154863480150453526182452366273354317216521853670961092522789724528225118962083871080534132825368255425052630576122361149458178690158061417849332598766030635969976564616735846776273193739564876734165554784938610685055244056256494091273580727107141180157981957562595993540836440265894839988241099306238302640561543275634507508580205254267420899227328890022354332334530502102677249341394845772443416794592662299972054277612315429688110892645454652079118557297196708156208067774559174273568348785927333711551789325439981345302464955130001018139766725059708159024356238655925593064746058976546425781411525863603919054748742922701829886909796381825163603532698430831127741040757305805992630526801039544503334802325185978735197551650903786017013938649073124743629881188860443036961255627567005484299032032292546742690052954347308750629421439112288184042456507367264845914616584720079089434005163688521285501617897843764800904294497488312517864680191856870661669307852001769230922727920671293955958511515035207185880909392071680984614396274472729895570183724661592335455304944187768531238292158948917971821679562594152501684068247012377415599452493859204513473004513669729673538127214858858222902512654234062310198338356699480291976482778066215845109629420236672374961213393184856107930942899781099081992091668997316247977173660905706513068269719526633429837492812278280610746515796740759012947322776524515022229880815091890038305433254899024654366375535832656506001438155309125552194193379709777450064886493961999683932483840053679558893390094898961325644157436228256243294241606931076347193930317947767566384008787164260644486424743584910447353013985329137737316287960258996521211046996048717019994087014794040261943202389387679260412370929870601543128610312253274886837000983356189249203959935964714117660433495017498573690485501506089808233289854968029676309782101317857380333267536012951409248537086094833041647914086314214386075998251951192170284686067278946678087864375075720667205895703445550705191109957151078331369347583120358661217820668013438349094989871776449342981644869344092195859523198177668433165444794532678740477218895658443572277431557765776850671261390703455214738609054552600324744698534197113022367879570649220944665587657925517427053295922165471032688045943684268766688569350414643874561276079558517960925377920773464566305888764250119902203062907221229397408712917160213041686342340498996111158866012920955602118347159161221640006046109860138928452452567992561636966682115586843133557870029540183145811622783845265060698209427758130774381304985207695114321253762543025795338275630064037995593260504074834911685186310020075174035000352757513648966796914525945917157813611335417564265866788225730996845191693683218781756497871639273968799573521315226390690207024613050846326820895412046261296678042195709393202021689744123750544690534399608370306466515961563254071874374608011828096013149415990705696074256266575291915893907507849227923402260804544798914876001616415339283456377557722994553080718296909017740237299815667043582613223502595530573023222040448532966766837274832458114126491857278876662436320624318282822094312428614984099424865779545090324907990780163621931069048036917837730444148650706688141901513478437130952161200554826874493188260562135800334184204808227309508552268351328036289475634488509627627919607097454446024220154129800375098220507579681422995758922517747626531999640953453205080530439729601121984627003244189310059811487706585161622814210649165968820295134480685084570505743672789574648328083691443085337570983407628735011725261746699291618546537265841754844979529201283098835669659947124798630757519227243502988362860017638560784711713951729863592766283038430583365132359092156021314788549471264201636797168941943346622152221273979653897825649492631200099319649241518089386394632789580717862374567414881584468244516002165093141488751961678883311284980625108615152934144500693653667562910441805012276049521085181183836783394859517083499404955034482070864209966624595245621493456309838044222784336090370955993517005776015417793073409230498724060574050281629893402789841811803917725996318993457768786043741696182866734572411127234779872630695278297120689193893669304331897581658008789670165657522279406860863468083144944680848962760321969711834800467452863356315435159717471641135603590658985713055145483233311885996314723368455330962591156930724433887043646565341429340293702616351043116029667977802281364528298168273883316392986489265001632046417009106742408995848967385577599991608577023447477343634816264499047040604981381057500511003933755755947753601604086885254210356800607691770993578193247259686229513384758339351144883606349786661829478619362719961605969914896594411870702419975191212618781876316991250768476580446523487870845151766704960853319718396310796002343258712024676363651470034708847604668815204657866551467754008003838678088157362325493036075628595309461429504078137626599756753918872286705512383753666655792866960769676534683756092939904183945443780547043227550683501751648793829305253620906709412447041895664873180420897365123321456551135233688588614186937997788991083276819774897941332124642362438027000614986128889634667592215196643913622516948997304632975310982571296730487276213265628884167269414079766399118093725005475774821912508350092668640429679521225620016897129064133903779065967899315729926221339073863811708462820007404873701927032024250036177893934828798392612430717473406426007905534016656711506878454909039421002732006770865928409232979706460465445591315578149914377015526801335965865396772227801150031331920746293481948619299229581701480887419420419862583317597898263109415406637300860841152792669635120983191394416257752029438749439732925816032946803987559738347365685293323996091650358257405100762521079250426898677376667851395472403225980658829785967469747334920339040845608946106963041546208444022999047426635127971722097527401147767764042148862900485024488189953448209201996821372457536460289110047630228848802730196708217416327748469027192532812294552853282232813291278635547122260606346466124784067084829387039573119155685810213307308923113909366919931426818429077689638349552941742548761639462458966288021651712212826902033098533362529986458644921957452901787286898861714925593610559706323972694442265753557790854903574202434506410681546067204917724552914547049826583146217379929148191189110656137243330964312232015610217586955006453877324300246558101246096714709640861509097219048591722305656570656135407297316777367771053915251220012291501141665274716517954718866216734641811085530907422427329635031994050854386697065946528115310970539207404586160174265685496433928912747152109466255043422458037711170136880078866729706720550422525384227751488843533893388449138690245307872584204871333569511848399748044511591551802176866251100712012194573519072432712864744073818906742146664190711339439624595673521900501753535982655757806393481804318042272114264853655139224857832347959247678724951621016080107768540224521916142633269798336801738406138847650116760291980789817596043155983965248382606130930856995708477349531973130666330164325817137797568027363967995709553883798265612947900238653941147848998210302589933154411409457922705850075921240314430342136651451210385624465496238750132558485480886013291912453592643378040706312375812488164203160272504594795977557349595390906269044905451958576167999118924515285705525941965116790165439227029547054346237816243980951930939355943423647042546893465179805493727358779422718932957358763494474292228825839389347459939619193883227277309329797930632224437139876926830023636992607079043062493332685173659341057905973007659547343121442889053591813540255659679591997381455683677690668271730563320364844738321074764298480550254549498464251947868971581569512248858088788243836041026853579665848613986227379549767031644253399500717489887540130663800210915181676493603517963645964555098908573566043540196184486266260860617724341548504247019257851960843255890030505319247303256497860248176454771046202697829395175402785935313267234403430777368246482615188323280895185450990254976816810002557406021176032187129185274112791290667496751295609470066562077637636146732145341195114368012403188670776913210739399464679031585551764762633315118900301570366436376559918942558966299369552227655327242216946834138834084529517575140225535665164139631500425304743999958324069088005199604833986428828913868197178321588164277195157558046232595830489544307469327889808808206148444874739129899001872145734691219711088688238846369851956919326551783370622492257727057462652869763927666942380514551348489372427822767620680312911427280502880580296096614693631549881725488547130960408239579928817109835315720279989601430179006243783732273138188044323057055982263821488750246432123428497308008402765802952701847413898576329897247855711948934758192589466374207473041616566654603927131432864470410320244324095444237619256136140378679800855786164213635869480885715335355709997663393445999334758961833791720888956477040388935653817186250205201076616976603944894383370541287523831208855544197329726312773064133911470844761855849559418344002676806369772050104717684310427494071489823516028519378845395401414402076047690633170294841268999431069671430342491423281001537389550153488596037782990799459291322251977665574427587077133556317827459720538614813564771089693539845824158600881188454557991994230910288241596115637289295812146812896486419768378699734341543602699231555875431384579470323334420216629170813103056009929473730549444375343756631652310897646873722521332892717839583053444876467024760399214806106830982293291826276063450723812467305382199543732726036568042630389140439715258096250132602123168190489092422175196075270657910398744168746305730791818565339785734936293321760509018182057286257997534323340854804398476944503824288237286722042817374932020228176883238764630283267393317774229615191627150577744190055266178309721957467424988351426827305637877524077287150772937066299615601483852176825357772407560523571098428490686913309477397428877086338722766698238219051794617520810376652038420015162063549342523089121220087875754212011958030565698034292036188146591410696066838439599486221844344005295849489812914811346092248108444752482573762733050998553899843414243959472487685468418032045782809103398678585067286288603752074145000629837013709827949284278166910972212008725781966921212003916988830920819781477127592218952972157717096326840600200479744614002295188258973431510170439652543981385656299558248408226523656738388575572071437498642047533737606632030871231431498834528194610777955168890514383562990937418046929498355559665107921304624714300584387285248824080493828431262779766330505934341822750755072514154074958160597966729636325345554368080377289022869476305460159229252659672737367402791276722791288682347888807664627578021753751739137960419167709011306976033455190908329731787998133624130901012256790918844785855063549873379666477338066281010664802814722995223526884091958526683475061542694026740689998313730683388150845546358491135499527172262925023931262592731401396033478638233226434080324077149584338150851369451166360030528835723978476876640708097579757723554969681256329297317181229201555074423380022804461254043280337555370073024324532251081185092049903140918069050904019972690388664366035854448511557185247492841005284038285546204292096763029473933462902885111187125741239139685462076269246645604290347249374138260989726816537814814536112166450619673017211284287420585340196552011712638059893527284437432247947723466312140557736852199472343105196132249002260193416738558014794645524129765642863344563247642004950142763589992983235294531714625084639859129892300711097128076748654777731217000315498633164569139992625924465796891586101403768538815973573882140822708240278145548178642791887438314121075161538575292363022059598113482100379245831491670241041661433534463991314918094460402340454716530088619098941306974888133015439041926180767528752267864613269681608238330847601188749432477898756109929660169210642000435030722332140739885509678705632378785644482929830558078429997577808140771745807269358332351800656389245506625259906456510808106676379268312394839780706015320979241932163574508060998265239508471325331638309012281065174272625897434736698084878104545363325592959214506193842067542960623269924118813981694274249206546005894779237834105084335324575347694926114003660503187799627182373183709366779750565530048663515808592458546978635312883160837723690660412597808313535635450610751309634963213159323160088892090958438053667154252993471827085629238173509539116890660201296248144160822802901062674506426332445094457921452721955701215429106741416279164402166889154999563450541977214642369783181966317171689129702227756701054611424956276530303478033793991754840838339607916161316268147755993611424392126266085560015256135312418951443056500262077976436113132573531693527525566288593278349130629706243192634185284993219954218046934783765341267855812753355156553625932041264765918513529350495001180551033291975742629964519920068965191888639712201491442871838719323510765163196739952692963174162381001826397058085609691386795501879849350373281210461095267194023788363439958454841122838142236839536199011812016170476341322493356356988753197612142210023257756782144087671100214595031459667624326210872571652169250984994796090880874852860826748954838976692763447403991664571620270707417735701627047042819749154200052884230497466427231892972544666054472511050656458917974229298400437190667781767936336532131678987005241488852881306909884006642147419319842959685186901356337010191656226968097649337399344103387586100971031602612374324826220583779315719629272731994272305229661791921046271965393947096250049418321869905987504402390024412624567000416549398428457370274835675825835312002366443085860375496074695793932535352604207457267072499946794774046578699229085930844942484936389231913787222705785096283557130547579490874514456850143643356622899956473310402900382228362996180342397217362773510899801146755301780927102802716044387986795101699661893553742859284500291140022514134087802553967792428223576936496502942736201122215656177771359144948747573949288473743319091518716096630280985105839181242339551739041257270755972123143054733871850022154928348648625255859680161432278782115736921366809860317434236527870097916200328232687188998142379370076005938374632852954251746708936193243591636692748518004119293678237047056518282913553303699702846674145768226217490846220042466455933076563119945212579986690897237435400265170008337865454236357228132650481507403874601573078084957785454106261604370078851677151806568050578634690873508587064383082756060033825704838993030893497395538415443884352078330479192922758548296746886534980900597329234712231892428308435593172341208231734710857323841049570501098236779272885182371762202697590350666159304092779311620203781204375574923194247876275351766480591203369410046701723784312948957314561566112549788823910695543637982466950147922416352497557834835224292300835865312693974510849493926142784606595188249752096508073941670728074413851987334795384579740539152712276415220284324147090315683416404935483291300177576485056404259741799353856824151937367103144678198326701278180040700182617268032375648846751101622769651168357773762925778752420862157979804550766250007047078857063787975782292522235807676228777199396866220801263183243174690708661899268597034242437312096414135704781755476055614942700635050335319987597981734049011688366672987276735250176425059144010868788465783963523579827986129520222840826298484083754481978148900909713677411287533759649311807865686153464890035466802078112382088266447703127218459302630937726885375980785618915439526114795272112659246047758951867605168696453214897242776058101952036474250728046684514385983866738757238365281738558244069394900583817476587167316453270974880218563596334116148970222294530771391491868117976904781779868104466174838038219999343650953996674987775294008184355209386351472189865749196149140861850369001415627460188597702920398933813367074906100038605852778886943284918281014638148949425435146062781342805116844567251404874533647089988749448227004880556961885772642156538757827504028512789282952110575929715599640239046984941503066442492448784714817981594467026939589465800557319614921240457292510852773588130998286505658839316980341196795471061907631550035245287141824866085987490365805052987533867693489812123852547915769175984153457226369815871991531546029897649396619829698700517505169675860444316998098503548621648697372836985004990183853097531116518414335571215466755724399960157327868696347122217903305812872968254909800678016699799664416492464816065250980422211425102841314999455924114841922536902319015761190231722867357366298900104685138100140501620912080638859777579688624005399312581909379548959162928583815886546156525011824060127162665049229213726778248078878882551052843836236305199389247171957532089097061207441281419960094912488590286098358903159141195167168832243630057316631458697340383964875969113390594756342539749127134967590703002248597803043060827587887779135162408030139739925453960638023169544204343548439882284151886581483951083072454997792528422445938641963292616338137200042333632303809737471717733952600681011643523748245790252374639117087786557119529864755003246502324637038804775890526704115794425989505852995593199120464815659415698432749548050599141607665340701058466451739824225753628526317756057690839476005044077863660585969307295481790074706512179760981164575251162233002019262466690731105639251183660113763903944844086438368502563986190760218676030847648799593007078954829602494558194350400734396414637226207581281439999195966090881526478900379670125260108013811292804280404831683348691217817582264495359864607732148540839913363598734500741779573920333671540435956546860285311468098024121137776988570130062977883584715314866719364783368946979236290196423801493788399317601610339512905949390768676081595106823629685933629588616134367407634154548547991419143890339475012626599694023567264254777308802911358551022443749903328044691568969172887463001222868978410357818814325276558627413061382500013359497358034625157692099831079112388927113959309260748776153466612448943760918929006180902039452776797370947854664544265999652588399133053968014757612179130817012267162139048121117952006213877763766520200458567537450045108239168588676690539363956958888518078054346269290111473831131398015186389897059708366535697021622117333133660631551920721541441921058215703745177009936604000962591188819548564668874865765486178382074160342495385970981711251857828038225321265018193470848272520453223496717963364151148576664259377814807488034216847970878239730457672406799003994148695228956321894127915042000911764777316750380641685934980958720499968256180638442615466912561607289776640804782137578441555373338818975923835807704415528103240725867900705178619443930742902127805846235627504125691290604870999230314893239846929828988894480587969542213407634507455492910912305256771226421295315411023645458053435220132029888327677217023731646617313064394738731667142895774588887508287194165228838609139722206232569211127249127952224262668128352335640986041739944192824735438100937022559819468247083000366436366522121996454822135884811589121359327586595531750687174247120308981822513462545890235223824995727162888616014483814824575105970801252485450145504259414312658447938069629984357118720442573740743310437533812689698366279959725082635770615849493743381191222771929818802404116884270156743015748046567721752085183412738425773514240776686919970498318132144809430938299540995413264407268684720917942685743972225297853945236625649794266490925965111367465819314800431940472932918343851962416885879081950758771001845526871738659638206798047660842514725224478644284620485512126831781881962070293323046718409682464421514959836404278532705682059689222326092164559622170470045262844724818080563779104417546955520149886663480576131700311066323749437686420676374951233093605568916611632232855792626585552668220384695351366008223488311278213349517980129233977455192567815306123545464909191284152958212794684791408726640736952387332689057430148950552209060077540805587364074390689388475499768596706905614346495390637993489941027832277011721451750239887316631604155901464507007767632867907298503701558742238604466746817462124736858094106790291583784801783545645324723102064520309651197519800399167075211032337563027463023602611471879070454154884915535234433179884162681183985028255188280806962733492426728529672350074396051533943930895294782178286098525513326090312707740433165263779680356153275479591647472531469856071370962464765547967548209481517432853876502473425708116596666784593868241890198586588150674728992250358266816183858746760505786835523911166803083665437621526426444210882982312596390728861988911028753654176352760711532288719759122652390643959314992910336949545374441360846374536039632191603054555874767123290441014409641106856063355349329620989190015810980840489219774102925487805856434457870298318908663675818232062232685681920507504644356162053104295101517902052991724169150348808489249404745747703061110110059076435475446805286679173409198375145984620514470026746470551004168751430115912640271046393057589801081778158921440042644707789253451705880303816219857656135417428502937561681454889710104624958428718117938376658291443442974570887441644405137351237336914503270380111226509884706930429216883985732991627589925981851105735368000625458007139762899324479888287131725392532451197419071777913286829972456917576271104163368906182281563705714035910260668161978507242474065455496795587334086683167078196526153337068169861475568569301370955520466850082052363633265886610107282912378673228994755893341637839900471149335291396200255744107742361349417806784849085451294199495698560331809796112128949018209925617034148205164916172971097685217135144389393716320718489696780709193963136320037012603383532480409040033924068502751426138104161136132594090493537431239274343495268628077253534670984474491973928874393318130705174629815986163841307334286809790569991699389399988718138776651511957395237991646500871026842575022500541315547187439973200378961691974505702837990979823683447643574225572602657235742519923894230492273472981917492937238669184754414208090984577757662819441987917671900903350463803303356463397649325078063068289417617790314544157483516276573340586229369644169196601377300868334497970475455490211605260908442570150035477693985654845386153852243687879932011579905954662745907713538396156296352085426202804075708393165202902601325748277739652973257912027474868068959569456612831774236782957529743465144103883843135567269124444198153591468400378408985155192052006590727869042344020446360780791105093386866109781656167011678868365500290830722939428122722821855711231882529524429483798404187942349241276643047358352509398752025419306099059254081759134750904191591113303128517127794522781359070078073532040047858103132687335851134439418094855913952730775538952761657054885978613235740125882198492772353120104180842036958320791957801167099705966949614117317206155329840869233506114086000706203588927195946428556013009416751087472546667376077525170122455891417750343044436727863388389866308945068824862523045184897817618291495052281873124177420627935091838339772668107710870589668180716544691256259720539208961310306733724108653834501530576647669288877001388150277553065492659942804776364712517799784758845286693367243974316488571711403071695456151186845870404622936333063057177488712744544713392666014967680179952990860326466631043728925567574470317940380150304272931060631223982081068554255217454148088307909894401423902029595723522285297012220768015305117556370769566180669891854603133157316173066836106461475303103754402492650699586773818027371996265895175719575074262947772221695953912013559148797626591462132843483820149441479335092083220619366500701552278710358645202414562843716236033877545814035197533949223248267290327372672573713150604691494332661067351505866793645069170390196229805194746603343818164074079795361856210842525716485198238068596012336172673606968894634028854240036531927769125054640410414952460173289845965023497781844194994528856380353366665103447026844910188672055499071110076949185336388478109511496185972450202749471133368664654999746692665018342823267060471460789331822083522624147170347081921749502054320697666518731437911887586159542454481860303313898137459929910268952183848430878236143807902660569692171677227703417720369035815725646721357392409783054260260194042075051829273621465497298104760816171350045911715311039587752168282848544039355478959555317988863243694238566303039575711397422279249133849498364050733942849236552529370489241061599298099202645624980438882214615120165037218466953809102211949127651829856217380434579874655449843120959953416084948785460586248501335532041471333794836933217479777409288646173804752834257149560752934678644292095627447754506332504162604280260506623582777768901174921295690557731670979244639078519509491238248382070043990374472749233385621104878490424528428184078118013984126253010112612013641617820058798257128550470728831814722697680268122977989694934629594655859957674140644018847430551819628518901289905568315157761496550893632395153118158833379489810960187379108966570794707575034938226407675202849118387009313556705540683789676747363692780990592728479922984890228456530688791743291831549513930737354893533548522379276937066005840179462353865710645350467881627316298770570292304723640103476368567651174631881032366194171194340078755585321076124967612393441552925909330403135652432676838534348672564402141177105009613408517289336552789684928976254987843866081652739208365685209361091094869158200487810398239290454449490550973055916995642189255490181021231692641492419365916390209714491052971554005079878035777240607872080604833896246693452627904684133629087094178574446002587037428764644962145927189411185086878166390204783353496958968442274797561928379100543024910198456577750725248909790585501213343058778851559134984408203480441132418726420480533834580680723988694277506687135882599424053855636543492096048998561768608811557528041353598798768433378440957733970872907539770710889860648076247146119361848021300280219170689622202501024582678619794540529839268769038001412367627851269625308163412692167452554624174392082802861524929886708194764631009218226238512121960989831461915022899605594930270369554942608530999242235826757781490780954215961376905077809398668005847164291486150833135480232701785302273081296845756536776428780345917026382458350694405672558475104368531747495065498735379549933826148570401771761178673005864341579618137655351039188870485101584191685475715251055446010615104370713954740031293346299794251949410286929915931935094424944560578261244556016950689857526427107112823511722980079053781563224705866243284508973545896270483580833884523283264780545697028448647253553039492925248531202558347657532971259398659990619829899065275943949212790463594350236762682421520364880052422633259275525980239927254293352961012928901887019731657984835250313626535527974604718261327874466046166907996911401305786603173922662019790959279744200182647839702789889185736760183569175262762035641543442031046155670338169591817890518538065765029131356636301536061763337105929351118460100704877988735601059826845429350276841806088970731339999339480651880791976961358510461381109252414695662284198488128989520043310150620922781225595459115183855019207851876135484354748805319760359487637618929126348735326986907237113402646517456003969876168282293444742044085373420518875628827477589722367230110890900048763787307589565853619620030377333749707539198536635284213047742877949635137952416681685099463590001273323690708142765133435263698076802926330663912598222746764406649739046194278237245664273691316624975871182143973249883638898565710064013143256827737089503541333415197656352393256701729539234676349539814476778088059584684235074247382528994088706127335289345234782773310433991076132856459331553653750820615963605448068458492150887039217121538954980143245103295008739279081952714340619949934055373503801612220651331326664429927893569184508173177870114837899632018766068730704954321557172105883077613971810844465516540554169930520496673622257556355022161159120419506160611955329485697879527644870985995000720535955275300619265660805950965743238931861047982731049476885608971974091736443456605170874132105925590966472354648370200904121653645721280967440622928581481416056845058008148361440076659842591895116383011181434315922397354263171844668352379174301440328096644154025710998944538360624051626274828230090634698746061305887813563027616908930606411860641460985978284575856992455824725202625688802644043687335067573126731639699999428137203908195738325995124827793149417524695239004099340382679871146169766257665238369137561708238526040363238968671614861639519635510264877848949584470750050791710754939006904041170263811036170335913206580736714942409229114726936926654767710709608210122149350532017795778174475159479867441514218979988200837387947953601146848710233281175373075724984593721003628842246202297917710334714334763543758995957330771230038248327316746458349254051816344131704864158880400680419029724560200525316738649614096650506434884509593637388467600193697726983522968750319004489995703272138695529335977304462505073859874857783740166105989176946827962770040021821105223100350341006059073714911573976146576489527058064105159500703346865533765751981778745844036390179437078334117462059175356194866160068571256814208240641969585780922269339973794860064724454557034837868366372636594888726738373517041539382306985400312305896304349970771308828193504085299747498569852069572575587137020886561571325641434756239005340140657663305495472636008576030730333307078286474743155908722152803516693440790684963911507703695326730082180742039091454506568472881408630240134678756432953647579796580941432309739570038282291305437536180274119993463855570259374701791165623621574740792411842290159910281164033967497020273838471540708813066514482333955448033039097755105376819598636633645283661206894550421711849169511055359953105150904539867404204101268878064245465870567942382731898756604271413998956948786373424355785282303248917738348251484602435907126605451714423100977643143630715194644572489387465683242972595755663520242945303475851337078894834147490407781673510486532012429869620395841431968272025650344618263340801816809437116963736897878005162495552968271341003592717091882040363539205431269674089682386509425577729710647948076568701825690281475050662303357789874345170504054314353432080207687083521350007975997929964791864622963467808368435898146719725502838372857943741298126301250789747943736980314897297477407832607103723996181866174985165609493845161402519212160847989195390077743950661273366872928732421276168639021070471948270946872023667347965196297374402660824497603834888325758616477849979729849639311830761601136051479000592899146909864852264390911210408527870666802995232184621735920535842930927445377514430508438832467713385338226551425098172838264747139108224422401070464667031586957824845343848765498403122231602810763841615813318157158804396570682648777006894384901275483309037716977122965074383379440035914866298757074352526307910819083726812996993886851376635534029460837694454316179118497046208570587003072653937167631616324689464082527079787725542415479866609831763154453096823205921970582983953754138969719337797406446046079157398115344462250487384961631519312337037343801506038525423963666974268696711827313623538677112112824329152757346552328081008112619322606396253671848161732309968254511387314813829216892205272988721244046626991547992689635101869673914241584154863224454136132759048727680737710194724701731306204276207453122004600461575771761339130560630234427841427662525838987690380478819884189920204040607524401469905414095351009723904296635194066887328803962997192582554380612630714394839871638238006408866055529953002902710817536969865046598748679926620932150344127706267174724652569687898085428389946106718917184791121734013758148390259702401593842991666338149719843409720541790683785882689591868222028116030217733828868526871116983522029325641944634644536503174795626260746537233887544290732945381730560409961768023342559800669042404823172237004102350046283101382848781349105698154805012418854347975557011487275254145763818270163970037076869235612934644186216154464249010838666066339007261732036355446555556805093236088730799338497128099099155133217390495788065827868752703193635205144927993999640653556539980550141328916762167502303478902695470438902134004838864882549161643552936363578207821827961879666250350146976097319705723571264653122947442319371936513732047753339112331713806096699473222041990838269826335469575067400523752632637195778327395397224567181921456426104524656935328148101749217732517479158024741245159827706546643670633910005494478470602818768759952279526896781333125917563411477126402435587611481197955919252304240744636787986835200054566435498511167365572735945366294368752337874541731890090759495780452746257028472031589699432863026580008353416779822540385189795070308793986840152289169379748133902153951842472587406809648559408096208512897573002649285974399872972276263053378654345916389668157489126993479544921465694484736120705496592541589998612799302270563931178200846614903733061282462162674701255206119144898440765105993928778598181587992299861388609363220200309354377959894545331832235168355199812819911046558683143124150393749261379280522087936624758534546055370687336712322044613396352668711108126417745672566839639098815281910721159789872886939886911590784463403825902898428399930280515655824170699031250956201661406936329878198167196620947502290578377337639121728308619858899812232025906863875396638691851415467493946503093378456173599746638091640119835921577293504399110374155908234613407941683874751524593481116295270757925979408176428205133144787416154291825227826431317569784322147652956031470267108566303818813175378413573352337163576746824425461084427863667555986813639080723478798544109710331676872363461236102657229143316258095024308486366776946520244719426991207977205974868655018655479187403763905639045912792501459640568508467536700333548190400135433265084105465002189842131155798810248327897830412450609101637615419000105831743213689374733393010400381814290010696619620397442660397321929465514408079750294976535296469481348910972988125241524256942906702552521876346333945096549512967202167730809262954860272752691405208741293048027595877926145594368080201779425159168545349027921538301452312613767582615004108404882038420032436841503531380871549768724747929995372526611716093537562131806827295380509916253219251778096124505692899958555720723262949523007283599223965416565494053512068467049571816559204125507505215615529284288310341948256803075341401233074965330440686460490442366498393158384689409918828729813371887700047057266464807469169737238357068283158333127001740184004209200049865615163507656382960413578779131742842144991417002959250625288643234777962583859364095316544103246425838393488716593562516402000786447816738267832690217429917671891377984501239385179175623482125174601605403149536907666861001985047732050432811134843941894647743538202019416544174564184978430889573069238605114531037451229684256256665490078394214868313731686130749387919021613776573948028262320112052148963715582832321394344188674992240395912680771362186958213697699065702571086538061472337021559609929851755865004076242461144661777222049478282752060482874318005620742902440185572305627960569604946628522188041316603221358092510212145754317996891563195931897651601959275838506513078167120074384939044344353533932452600036475187086538565052164501370565142093408271826096221683996175321053853611776985037573933648915165895868365708291156921807060571632047819074608961400670363485060553960256923828227027718448604086005959034728382008467781897577571469046560487536364722395093508936997892758502699994739281440824033101460524688752522342693473533613105360336614186032423612435957087835096955159477088840026965315069777294593678952596018496384540626485940701488994396846067861432200714380420365547862586942754996812846687656581204534648250426682789860536165273930757542129178663418934282420813121657133667407560671555822214067165929659563713793918547242120002700755035834050469719344179557391844417692411310658771841771505656387253442529054370394509923324363514119483184367636045347428041510841504865662823877502899060629723458225294317262376013064065577747217493917736594360335767767078177847417571694674020906162234512525743396222717644235269895362872739579325278031488529451285946497407601724180416615719999906956735243780168759442895388092200312896976697063178827526069217708087150172583555193669503236280520349832016999859818995540603266453171088764463422032254337184624564390287846343491702255970048521570405241536150654707373967415397291089504660254118592757811675116843393035414335342531956049125799611536994742504103407281947454822411559658454562460882738170621539067397473668766334890342104091334639841063319244392704428842278012990205950096024496427020169944914425396998023231640755366996286242770028421613799219162231597578671330325264614627985501861283736062218471398060666571068225252123688487512894061755493513104942261684635099935209475930207622720323477794425704159151897382704776460874145149864944647582481082574971581957781952072502388370552448906328615893200701012947140956133707205522350871320088997156708971168089465998204131227285382975349634502752125881300373160242614500004810156737878491839303073713277088380383232821936393467511085574306106927791851058149918331241284475645051291811480231210233609736031929502369900661157754925079975366108639522751756225647317521848181159108365600822769510514818264228187517500683022672887983683613143592527270869505670118780018010424545491262997305378773968602466944103378450670508622720678659804112719830283848143613154652780060959261180011898325017936319781831268488709291689980036408332502860959462969474945513617107215668889793269747715869465115752220424518904634605287765923873300027809568530199227946322855965557647945750859643827321129741616238783783861063831122448913559639823149563380816162006214187255843535685148526786021182023502641412112157908136844275635419095486981586615082119409864081952756042234046167392340795887709385200337439522539350372347934811963365051056551296467709232480573916171454434750955397444127250141188867378713097145949082620544787089414284745485067819746646847089842854777604694831292026841375848801467298742527131045282057246648912000127700541184514936959622498971312643146398954346067290988460746722737758629886921450413960313533207044206854456894277772387906888425322290562484508364681383776687220541039980244040770875255857674138683637542557296842504174459336295827491653106895904754217223124213612191938413096499616669191128810580775493024396060820556726217922460065052721643810281885836371504695712725549008617698020768289399788472831650229629301536212244473157281091859872561287610754719988939146883444407625135934445040758508107686821598920633259187746517956273757575209364482190935780564942057320210478212168775835520684374756183476320643979362103052159001937758099524009802779066409576335424518086444633098896228704983598532521893270834410924361211142272713978053117651430810864153324039244392156796814109962959752214064020175892817158362237658710570841507670840290640440757567695071719923248258333660928677678409349714231906795123157302479087513856030704816181434265651239291414222450978962800574335512526621031750738383900648191437672738886664361126579794541232727328380569290265401132273797029523363388858289598889850168581345887856626869776562071501459646437353026909763604463716787115118637102518641058145210496381391907333947310627088570712982008736244328809574550159043063097238540178247181999190145724369271393477933108781617316890326198334187929738708188609287615750784911821864410174357791013205201071311322897088451237868759669848708951449050111973592672122311098772352946627593550520809608356279792304522748931957226768203601792124533941304353626411953775236895165143839317668355113443699236835235462642657889809925863592158694310155403319342816242552761620092992902812084675053465375631828624126259874830824676704113540862502726251106460356516905957352019328310601068292528187477251225446049778460681128656149576017780030308235736744617831218699801319717531054008347284986246596991859649713405021325607002091831715927524079176036729792012949037973027406902736984890066159153458651030968917126656134372183191727773708592182266339653396480399799400203051066407111844262119120088820387994218877560851438920554150745109035585459459193991971122620589613168839356730223270499176295784292465563282970998337625049559193882819195955840682073407995987305405654381608583877778749145230020774029554059095396507209515244629219627346894435306612688988427399309358384483122432441620291655913179750010051854096790663876188233091787552588965839768819787368127978149310593093956814017847149856099078437073590096349004376217137399965268843173075705785351463149985522012054186816469107351583736158854975685765176194309234768453689303918835512217742485512892992376256681344735992208082831423746762638522594998798001536461154241435306469692676411299373177689207561569647928105342134723761376884308343992601732926178449732607155789274440005387617091654497263606616904889811864598599525283686962077026621542977570976195342905887958214682349268657548295470369873953005408325155132846565268754160447447018912646102674420389117845138248707499651923701291062965488048209721477631719611095595744584772387587021528687150151092262984111431009460736141358693887839681697528064966365971814574908606770498437618232727788747568880476798123951877908102857652077970389976593912716964163815884033276502827254563500386377842155887348893299060233232253036190248137216077875907980624419053959282518431068608870422823745207935802188651422307332968992692550608168144619552900688038753314985335224168386322939529748156008435715288207393081315299729627629255143630810240050572888514319270507726839472848829835552809801308131756504690741911612686419305730374613399726436721957084213368489196575254814926083264856425572820437925441044780543048143771528583104225429827435321596644034460965546233722484583674854878609425178568623600890160044004394756985954129957180751836210617853339282859955913992939601438213487900880138189481909038338872051317427681400737950914956219749583898720311637981030134791301178606045110878550275105816010975080220917103589430863972713476489483856666196262491822695345160149383828947269488232949162453929538696886047542664159516461121535024784188416736704062422901803235325374895353106901099738531389409139165468639204148315553050136212511128831493053982551825652665053247240639455823203319283851986991256469179645363788950022611680717134359121234283372077730894014218128838957003995280556025668546594487073820168121856391988330869035383622521542556054969003595736505118267391375318474877149079763532319384518819638378707162844903850681306085354233746839756287143483829902986013905452426063028434635836182075407903380686825888696430232001995597470854355273810289931497091337833153649176101352261778411528246361595529529205275214412141943398758545664506245760537212638241921093263282005255033275020569959438590925788771502865630878436710502670376764790222884806845127692267836133317144551778318041593194171204412369218181280013098718715724187189180010765609926688769899009367447514149116108607971682645687559015860915057175277018739264392858201395362823811294713387834004140662590477298235554611863001918632102691538174261201019611389770779944303661853491119958107740257279475560078697840335911420372639268277639602181099517268150678086201138221756065267493545708380434680944425625920208595799477449020441358198745979522703499664949331762562742600002925466495308604505790664416446841354980532463706528602582926758856706377930861958954681352790153379276301684772998203164727308365266238468596809575723208032811650767015062805192948508539904655713792334906738067879723365869117095547168120093564430601773423981913238101204230916294359525518114507019711667826335751775358319292309272205027312830546895366403095984305954848282793593986930452985950295023157539523425554681003013970469474716975188258171435391753293610273878249890971318568305487491191490572419927695502029282576594520068507638197006461568590623339181377687036404056079834481452085759089971945036539964437316542608539694743212231184066893729344524962927647558952728434919175589728134590924637727278528915004305890843827095539581328852864122966409214460991490216122602751092352202428982056103957715357462389152455192927457582015333563493579997372637491733618589247663041543586340554767878308604059174804666972144488043019028892844768851126570717313613912510336216535937663245706981782500334933096318433366634583555992788180190254672681905744590596740067901980039591198704793746298130691890382966539218323447076814979186337784174821477109885629484532752205789654453166938549006852665408177950381481142939019385184871801013537327529894177210286607800429661817491006625106051405212773979844907186436466182656236261805104069912757873370678901126945835639380098872557202248351567313186120285223226532195592503456716393978000534662336039948437042013764147152899867096721593785200193917613164799828546809271856406596074399781830905947489090625007762719105076175955604941202958082790292004398366494659677290087165656992894772780594270593579002867866436849938644001349227533729707606428609405959444813025562631271273287180996458470936405778439999812085519112998273901419224883910220910749332980131336294333547448737069565217053856657730182198309488974126765770566126320466904670435468638207864799220653368795148682105126650051593434679855982232913752994916422984260912768228748019132304203398150455815199504789657915052017596219489749521742599952772742924989063266775854383478927533264754485403423135544414939260518360553398188124620305383842991920425790459599456654631726171950721568198068252551283857744332177408170278108829272064819399635123600953867486769126691415271634509946382748810272066914117588237687584643153294005394915745698515880429885232664926266598757630205472843547920542876717364002865307058701119032916269593160409087010078029376048288142644123366723818587292032435071314308241414887841495164082606508527107442115335177859829371034979365761625577722022675914501751559249127740633443662676829051941422305034202935439425481294597888887900569288215142572756704840353389947034035080166227580956812434858210089986314815655155549951334927829772103977633889833031676931032656431493509095869050853826287580767198279287763347496733590116377742009340355221234234328580375206685061567870935566558830543118037996720977290240310192441820774374190497427943750561083926918067202951864730943786127241120018913442475983560756214891761485348773568319297954413775341404627545126724138212065297036669917804336690411806400237085583790254693505103404010624413000388069195839549397140301145207450363069901586033460245593571479461898976148631814556865719471296533848444867958730989388872615690834312561766389037580161950224122260650419432927522891608042108227655775205938338910669013881505545590171907232010684157555568422149757269459709521097203543065932686623201755279881999011202414251009812437962383530426809732631929336429417122918184999391526296515333618605683446133245758929758031477201784678823339293666710593102918720485701914222588389312960839334451159626331585697107517484156058072792609054828935566775524416706837085764649548530752700057428335408158066849992338931180490337529718103322526617127438075356798230362749511469258746527279333227817430242175629353691654863181324913087802682890106999694714505998219445929147914457457187810723115791548532500272387701620525336805457882374825129901371347232446700756932912376951167768144529443373606848480102186534539080922172954830230861417507078551806111523782364166170439147349620506847668845252393812062513530500080378440028215609191618190540066554394692603365637484674458300632521866247219031338865083187511125051538114836006679602512222905290308312541925591494405816144719605254219005817663457969589285120843263404800404879203418593968837413482105204683826446146380037349349108214543914767599018857971275754636498931649099358257659039948663996017333551997732991088725578315824089476727458054907194203160812833701887109371593421878198831891149211487990935542211637738580005727881752530604826798902453048323312077425303586031675794222642656104502779470403339527772908794419642172880683088897722344913392151523315761732113317078649081854657267948284009424927739380415349609477900342763541120320624490842732381930159940810909413896040016536474097327395129274999916133427240147088883765741267666603911807367049307403484911303105113390174828560305291751152689001782960126824764704840021485646659909929014461140539099381729619389711569445210097077416136927941312280164152644901007768002119746526241912072273591171790142036135636355506783675974548140634368117461113822101292422703492248562273457613964245946799990579456532884510927396296373345699973721167270821786588426439703451921385179409750138094707695630071476492173703167174170920341512797119010434620885340090625556354161121245919261381694754804425475317612183394721479873053354713383476723557056053976539872375000057495571166555591246784238164810917891794663502171327942057321802599254060605822098006001648871401883373661028837504265990214837309964478175249124970906771171107949974334683768000579694070426600236525887888528156928840113000902887956518768577585614094681374668955121340457282668926901648246436443949898471271099330000950393835075471065763381152196046614903899637799521327911517652645737961574515456252482528920672512388801702156887643481092431710539432121992585114693027563860043560132413828026048891660291898935370852811467992709904237908990068284215310374504572900307273381072503874642783478399460602465498915793582265959224667642348590246929661628607455516487882532007996182512900670289845482532588356963484651377108446833525164226932987183061136900525467081575572079385173315497510523344233960682354223072815768504801158890851988311855020540247600652370087355309503110000060561017277407939317532071450771485984786356746724742220020770264057059829200762626783327337921944888012288787476149050685690386284137607124901275114713722909382135397279155901361442293224397745505605057154307658965313023260416904990955849291222243454495142189776882551406161606912587038281200478606933515543857832773045765991536345469298928869519554897342446250041633911394255524103701491217209696035907654747291592380652174479843331863055338803176208252285811569699766156782682355493181910251968358127835329782022607842880061335864622966121818374277608428296820345763482312812405041321018813821462348905903541513759015469392373161462702131526562742540512533480400716297333684421018413734334297043256881122244053048020771856690434571063550718786440036443017500720454573714194241067053070066781658638997937464708674974829735004848738178381298585365028127313206663282984203894579045066317335929524765701237442414171719572231082915785572762593885781611827893988315654395780452564864740236481260420970728753872758521649121070537570006221357245988082774824756758230412955562261515437583490862162217940169189756200839137037576519108775218273119336426077390472505780703154736135882005063080588033272406729032523320661696271770554529815974453474645877721284777402549619599859372687108784701247268632507493640788562168254353771710208312482224354482582399241198430412783892755965553657273299618736510516346741306830858737774465336176188958475511512409647558246696153181237577846237601993615525412196429075138389981912306378178329402579710987089484925201081359536123063973715097074494379447682542843559214347403058906634876474950352262779260212682465648917505458680126802142413691423560948882420283431424276096331828745121228276187336376165670817601612082559359779886079274604227885930607847243483597371865570948882165028728057817551813431873141299366024371494622007106820565610881854070722903223167478462914404266099558469034782984453875990738789759902504935882516902073139945870240877804509275942859177447585337638730414813714062851024915754521329032079405604321164638352585923585100685308626166155403058127551072676619366411965708242083466939557769550214689149612149656214291590368568809086754886274407049469295261679329772086976463953782175790929735717458958148812383121618419307395609185726744192232701156818240167481157403357763076078759054559196758850565884101671462582106718847899456839316390331268506122295230206438570160830714617498428186520414363310796307587439803742344414419381446675011798436972520750130349178995586395727067124590733521029013759371095913050046901943535272645711799243680652054745991727147187010564707049657854718068580308220745054666844387789128548310701256412166421425017223842095634718309117010789109911048130460228036877407806674965903592251916333275641704975944430109336304808599701960411896627092787764409263280818667844855241619125812041477010538388923011087789972357091345549434348936722920689849263178405558513494346298488168842120273351919329558321804514530052688776396314982758160503006330617140467826567257178456907927992692091359441493291119243470150045145923488797675358542405319864310102232217202953743723663306650358748754063744946993225261735891380640323303241684846618862903907579851271445370653217238392256990639360722844286021007592813251315249661100585305407184729450593970552763718520100453656951832021454214657110811855150294420351610840264134092037605939294997576765253937785214194067731155065154124188613780078224156727862719718445205714325870148133602696103002220968809167197437564698201282219930916697039854024311692393022966996567828569140174479118478776464541184388941332306006626364274830865120036422402298067385730441981102416592765021116316700444222219255815243988112237586633956856693773660554382149413169198080795144148237916788556420616199585892996698415886660407602437070612417785103115140611246204880900208670533856425056175289107607215949215742868753034465084381042328412124851375474958422577147970121828313127985994875735900580696954275181846657481854830847014906585694986203670901773396349229013850243112501724641630195722200853079668420836644158937186915462257678115265261217303767105237804849920020915374961510827846789473959730169542313140626740863846351281498401075264212604923181535095072100945599006835936985962025889097451807083009501859293951586801388258571924942344470820083940339116933279133906089515950836291175991841390807751570929641044685736960610187576760607042424415262678234681374538683740811926891226422263533617911723081499722586686093908669807830407069707982185255644674702003786306039306170064536088150258855780471821795088490091653752259265790199720666776239135994609444665455495160509665107279566380140654428169256996816673276598040971166484070936958140765426863899582136690569419237306502568662370010876978004406290385120511876814150200972274158431980000252393272623168742297507971572439175376188918100532539460791572300543827163108780361661625820310941462244815116399658308375547270564248094639407184369383650333037560876669137419412937049313564253200673117565668974674918517635952071005900905662147606355287015705447660832825743106022676788549357558182283990118269007118502581760794610870357374778343546726536789616456782032947393688588812871559920967947521033880027566723239502770015734280115694025061068706911100219368466113926789519716878501349385200575057018927619594622197480654392207016593203819124693033305967792310184019956027970238967227373094203491106471323202216451323396727956834717913451157753227253783697387802518932188727584216677016450797042098144320378689720136008228801761800774155174097477425988091909998113599619239188918725388703837941235889350757302032991255296221385659190755319388167835670665241238617666802535094218832260526805772343582006271462907054165215944194654732001581829873136669708280630840402756782869025991669467137436058878145240728107790807563148353664820246219640537965151472903412778852073984406575558530268144679855936119591487011191460473332778015233813210160540905549306680023728363163465179299658735010716136835287060702419130892050875334074480032681281965391255449539702751384931218956391113223733250152028818463326517606139781694759075265613699290064105302401550405773721333465598574950470543080970082297726141536095017157395589440964111065342448697564967654996016176201423651840102804124748115265473153436522897500493280747045608444704377977793946345824108230907163253256812019244612098946204472888824631910708561934265536847303476104649043194452394711195649180705340180810143293517561976742638270340762169235365132795002110251566634286165255253603896170926721984875959848953839681465164739551053628874272164349828578719637450380197160387450579476791400392853743181507718660670233091436624042311989553494660395468710839444894050710794979880882064996545661708874333256312763121412391528349356880488677501717062942147726872898610310564333088091179436351327621003024808543393914618361014412611126039769595909555871310934137545472028627539568565057905937031827251342953679047247248183650456584041177890930285172690316005646388818761419918250841079992685456155605083790107078692711766620746154421210862330551500900815832899625085812275336111169221824387326959333308492849389711684174718939633593597915311078739378538495051320434726561983528996633086761103971600606127729796551624408065143849175224939979808394317000323292530275333078499691592124188833770343519811458502851658232387619943643496211413976814755996528576249646689069079389764631465056876535630953638467085351702306883951563250716767235218609110684946025950650656654292286786413409445477058376684507075801535150661731492363475520574190133937107167523314797133622217040187893008341765597107995666583315134723851518712793087575489371234985413820987203847413305474726125701025385426278878296996866682849766974238239199264290600682816432959931438109680902212496235291319289006439264243210216491615345785774208133694593150594891383899332032073403242465619047758892145011788301988033915840883492168256184881635757295728409924882611784800801894944221020653223165846780887956933619488113138184269647358396358858350681607328519566834461975683834137118336305375684716942020042792984224430360646429076116838176724528330628813722024407630196397697372958594324832661074256076224610105810033965472550225760982833313351360167668646744080765764428657467323393462073214924189780059465036192460753435929562176563640873259595679274271140012138539553111235057754811640059262800772552013948060222903589761785152736743038021879624216012342983091957430137008985115172711669375842368052542984165496211184228528547856371341223518629208719464812895618224482115872138851801394976579022564568502284306604695783784967307842864869135710333886834173399361026828094314642578252444491247766925028689897522133768169244828247675980596055087668109452068264547262392715648832608097053191453527564803887295537241856862798854762927931636917741675085303621806853383746406787651264654154775981238693721465309524972997028263423028174025789866762974700516935561848775777424391193999184972766855154702375220769486459860950568897086374048102214112042966377971085050612056547923996762168417202279300217107477389336227110611662837030524451709072330358466871639022064226959923861165651695502097840599439271531316454098493416551249275033150706257260207224232804001513190547858114662357014595185962649716951704369462008450030994056295311682607377434217461231565297995790416981031257718710428855439248162914426755783755014040081141371249082255852492750010382274150081717895382399054359606799984941528363460042923029003664874263888840006239901000183910440599971491153010954690857314137566763084919040061393785495942367893373177128749849210111209930197160415872597172017816568391713054794808286984970918884612068900299535613753188511420722795067860993864732302447593547663416306190214404364350006469193752307541732090239942440851922983033952602076234389227817722800053458088690325537873051752306616938135229121894037119446869431588689253313767138836547263334033528552585990345457680730863801121795096607785551325104085005537539943971161823687181172183482033641111732842523429937931829505703580078495084255668673818445527985306890496181563703440971533725946335162598664347853547319239412365770360025803863735399448494684316004248712369545623142541277584674755896553794627132613672999684235808423828053334955387348730032864656691081864032467879192989355616316397084567338077166099998484056194408771184753040922660495963850637914184745681225296155327269145782042262972340873248190071559431629177798016779213487256821131500646983324666522505346395439424069903649870243184836696209061689109706720707351481982844812795969919521095077775100511578433850744392694050424528332157671707579870863188246131415615282171001717348514375113586202756593715650053474435665101785154979731177798671859758516452434970212091780219653322850518398562429361779683462668739859266059001805882690664018829715785779483684983802349332559622596566468726790884253305935203003393847231619763215053147227194924371555732938317588415372452797719588767373996484301712888748583605419751909326073773712425508172065305124473607652634170659112827576295979085683474869141532058378102333589194787652181857556016212760934914514355825062969319212747973557644028880646359071523012150945003713979158437553482539972286781277685417867147101323679269665986132164664961036529544576951295201452713726196577729192524569072694633064589461944022498610854559844429121175576368570665062200941592162216819803049197709748332570730543530158733529509352390622695850714621510675946558183177557788712806505955055451559319634241350868417994996936206951166437583834463594551424710232157919639848240021328236167075155397897624429849811716373185327359041540739688213298066345389825185152547002965813596394872755438555321745092207468797776135810613065202289972867924260213513310460976644462896400189233700390029265811995160670381785097352782607978202377553181542745824325120705405208606457283840618957079744584808978990186079929663407962098363712715868677609953967996480339382888311402229683815484903444089847857722229121231857680196308344765978478503525218653341901271471398783979576668361059597072873104472213634523758646642774911997896591004141759442573769191428662114202723204005392498102293707054846663362033229062685261695231222821881674089477059921428304040884681891562996760631217279783696769772114485836543041015430088048315079197290552787051404090480732446295273683455629748322277828193690103297932585085260592305478044057461087363565048918301273205984520266596450768175131930497997929159410632137761239154134652674132166819991632205688687462674655472832119073752284217477761133971710042438167943915541700348239130888797647447029568252245010276618851753316499618139771228343374759780701422135358516383242502672597212944506616792939568308806742509177949018882619304876824152258224866357547282062736445017367807013953451321413114886013277271958512493577012341160452344887919376631459782614708905364798618178498283322921221022456647419104424235092460534798346486549023121055028305040780475269390837131366149947199015409832790791409290875317218826922789271384540806245978516386891048360293493027884919135259007345190915434591372519029790847274227469825229765289196973602699267854025385077896195776418781858733211837992624155281926399894983665366075710043714880254627175215718836181607966355877019331712698001379448281043410836020966532091439885194898744772873530224305893462537784481252741574801324893089138620698969170578326112315758774415977846834644514777942570862923962670591887543683915946319383812375729080620959226177169788161778270292122366555933431741676182780345016849723976192020909929646259086933085878360148453641266336409792134128200592706323712947898918876363349191440593889008340259303082217632324101042876384814747551024119178734483589381208872265466179356886868603101232639081316209663759694655053540923788748101976836698722715958516857028154156863881600427482499152912203808239878973957330949183642021905277144324362771490906169354009804421250481385022705099028120595783867203362532005029435501554183835865767529825485843628566769232221636891925084625124351498678740963645014217104614566411211071835711677041291618786628338201261625458859304721204103913269946761728343632698269321626549655392897126833443571808567801863396508597916003707762691359949142674771459277872646736238936380574095192779174544851207187680801655329693741301398138434469287501164706545097970405353759163812244166641162621791510599322070946010315163954858015461122338857917276918548979720960520141261049028253151841159788163506485823270994286220943278756103595163918263568252635177740550047115288012637815349763879502214807739033702546406119766942171745487446543192022288827733883141879876118514367936298977561371942693000519460022347847300852850568154680275741307661809750745955831180653721446372068919072241000442531444064573729286466607406395233405906847047736501043017537055342859846600449165596745162153092349082694846793149642351478785425741903888603343610162897792499531356104682272989803701838073191644509078530125642358348630484512500361288180360173069545987535578192049950457871979827832909644219616844445692558603245119513126143739015748686949309987860611799162208578154863302205845469753983559104579358810621221911290855742449798325881176099424330550765335180915756023875415175801513155589425178750214343514322989160860968530792267949007442189695078657839959956010163324085875266803633671249693672948180063988747236292034516831992026929709310717830118727453580570241242998805673133134575835589117307984476278840342899560671267510004114037136361518791898268509673959720231183406513807847336419380705849822449214491235238935134244765287279632740791326369214843483681570360084482958123275218813510082532187075891259801632955001101513074453470702567904950833156629887595406226552826038938942884236024624868521650507961753061311262904423259218656464476504657320681652630509126419867894952805938660871571441407477919195443099983841954195701393723040218145670085237638050700735118389913915563805343452923557005601355484070292440445417417709273097818374348529826758593728470085175976372011539697277848582413361213314756407688454274378589375271422420189295395275727445127527749325220283125620768697116997795272227071798257793704957515965309291996937254950289631891841936600715722597182684538166164968742730260091872510757032946218096836354629525787230035318816615992381592081064157354184055405893024287342560068972378913913834784805722537218375629450355651484111791660953847910304471958005069513692213397818576015824308178901882300041502878533546076719340611395386581924095118695802789575472310514213347008410611809139022569524607164247967198117480730887120833845923294383074025775681914052111423358586397208531092757710003871400935458541622985256755055730716702138402987232926049230817877092510587738914629827737317124626108224236263767263115124836926724670643395135085604109029537204659601350411428618017058237800651325364639408437616401974990581393134775578563512774575034953323994758582727189260002939639568739360562359021191901708584365896882167519427548529247921893773454766880766316607561330773300409863172533188481850304075373735867676483327838461288614785279089091253049045197249981837034909365517853284088199851053917021658217142314059718292444183900751349851240983090331600260335285759751197101671636996346737605132231356696315018455920812333401555470884796947753711408798285994132379293132641118975813344734961179077123114669437918192799623906522644350593361901759491000518141914058565806290000319478264514670992572852980543982901112730126589525312395136665253738614477043803689600819341852915262455682212574978757060326311578055552078747617369959362293571156797369656391853007061325897306243498299822495480438075455561060352204270976406599685268891608130116562955489221038900142292399657260013689765084228237425386929110966941404191249956312058366430064086281965073226152820954280149083163323030415618371148989614785234553878528571249839161783388794881195903516025052022862387807593466210750338922469070246068021144094507873199361383450946690923002163681398888720305244298566072074207313998468185578914271120615267135102722936759661155334560027800257454666031540760833178880675009246252242827637360005217156178279598322805685205902158242446087657164016097503468207372696928722932341428564310681879265107554487702484617532018244049159676043633989131715591011638751644636855267524240253108390917205917956473814975460686143014413184221473214794745645873041639985334422401104027915392079663030072985792036505375007974157879419081630959719042765644259242552917991383942255665969595448051098980156793088339086230327796346992982824040773637206615760897498131026946119432182861020788095924734216434666167766390527235451366707507258642629648230537535632289109939412646018282631364925123734880571855425835449135473334132251348469609550843252656465581749842807321143089485313450240266989233240941943526801151816773347537407412998803941488864284882038512122573350608020229578616758661627698076607148781119103607930589289561764165447844561801848809077746255096648533848132169722445527399578946803423254069930027930076560010472696710462295779341719056268222464069652704132183597192893705189314991234406522885401935620723351122805313329466950225699443621959590529517034345168637540489373132828936271951753695218321445146845860927079646804714691047748471174141807847445543285794868974806612670012079676647227450778911620328438210033223809023497765407600039478342073232780773841286712611799552864272395419538879715217639550648639674829570611242009456604077130477510861633456184608636152057314033602903281505687771242690495831886532554803999068652614260341380820490427389502415661842862581964982183559010469539372878334147446790856534364410412226096275632243472239297840536176192012441478740638519184350365687125961728461612375007495253231019520724816552677328503553532086866226180233523874875629560366639409731332931961466523056242564748541050506811749127255356596899768716247623828657066149498094569165292053571202560118078776640893029786326633931304338367637824739499448531225909964968544879749626554355499277153286893888033624133969702412314169692930812529500659074005098518939148857023203797674318457147392165627193034082280026726411585182619805021180972022961084243204556861648516890877023909397833189469929628405643052229755572719528406242104533669666299530244608360437040868496117786117374397234803690028195722800225422109773687178913422264842315354971897490599904770207904396404845915027944810851600769364010787161531147554375104404364998140119374072472122211633955369403205277963910618774226206538169877477167585548021422524996367854555740252169694313498925688457349943241566192126119454520479351420625448038620413135572981791461592513703267026719970590994306837496438005626166020454536855016827188088333515443293553119043585937724441603469379824784563149115275471044321184860012056334946458713185641364314703901235304646527521686203823075175447400924594346261205790424794820426211163943202086210632998145758585181026692834397444815921743003611863849976245133098044711648398993793085975119218040771197769533148991100482508756091957904198958882177558733210862023491250150775055005648579465906534379189769926992076265495806246764466529633591048032426858258550816078754656039057199636002520992964626580899557111134952589842650959711854402276545168979415544211844647898015993745200698586184350890930846876648077164736036750143533832817000129190988935022077803159495740866217316074960457507898467785788415633926919343138471860603814589803830755822828545851727332099943797397957879136542455261368544089520624314819199452954518123060732381275984651717746395776335616285740957419882953025843556813562011919011575408165766831282403540616911456150283035199984856803439012327320079914942825339932539662091352363409549969723908264014686834814364005051154477877722432819494670244401593939551279794683252245235865873807929135638168502390216951156178969036564052870191605393227916226905400029854896416284887114683861156490486186224873303119122589601894812620213665308054919888294346917961715179619540962685063473930517063858822940379597340988226346882091497933961218397801047962278617997652352350694611293135438939206471166197851693583048926220232041783731500557288680181524064957331978903163347510059490169508226764890589965089196290664981499636179653385292947856564366751143357990785843316598182713486713049740316771819562289123013581396755918677021122656982248292061966444384239209771601065555902558161782388584407817406383421992399074903041012009318482527440524769519027572173421381852263068376586205812525284212607658272485849307393221959979649332196497671397877327866467009944474789093949100932031642476665946358914415728014278884636638295191441213081080891559999633321049507751117665440236918862675035783307576558379072883362844744752993439954563250301614172032632303374079211400323626454045539127799881327103864071272066011861712000548514277213248485356598603350187759687950257797101366842293514587726424100947416394726517083249985604786020317535037063333761156239816004709512420704686534154077888878435604083965873147566632540064652875008224074961382390281467148249804046825835829853668543180516467117040211073526665301487152618241794711789895256886118100214983774255222365521273044467938501373037834695452087396249996948190170396952484578566361472851870624008394751122609883810048707697639185397078326069568322913172600115134730894267109999086353844683611322662831268414590574813179822826365697784103799844903386697558982636235595445324765355189867526403499118018025649103800275819304509503787539334301678337929310026689989609226756418186771362558432085526477050769077469307001588033859687769137522430423249485984906863997828282719122997542276506204266393986629055465188889940300569353775486287199167186383772499770609108780120272296732200857083019589282762707321385045614937802582889052820955350686756126558261660287334460359039186074393443123519182110081267281291918606567303198879319311277714864042701948386181786659987811985984232999187912824626543381925004543087755425898781139939143723803498756257501026451529167393863692194950699399117927158204410036887303095579696018545736955891440289801785642237423151870037438398265113833180905286511263164235328891001223831999762488010385132213414154790508284614000748785125640231611314734120347710622434800721310069193413021721053020008907351475806568352303170410593095657757417069994822223491022170087399707217581414342516680570577812622453108790218871532956145252834500022178015302358574125653789980149038824235583085635180931171516937420140912856240971468947605034144789710996342190396952476371299014059564932074099947781296615238321197993505462500914583578478676430510445721718046295669727019872239336239611158470574838682169909667476596339178134386846987970716296223702644609528347666469685818003973440252779048552324994220534476325890245337244122894966497154553211835231098181664700776982684873227148733083161015959917228431881481112104109192636792752448360607985225843936579532401102876822882299042144016238129567105995262001128046665063504797047726082898976413443862388253473567483118765633305589266928286505957369947524880028769333624972138065578823242804321311664299449850519854308674315386466341038326976992134950833078269572331259957739688725250547642430299919952792402015865881466653925061510917324355732254246703544960591094242891343038337365340194482233821945248648735056864756859700210615519292545630737047669076629867000547604134928809869852879393207304689662106665009208836086540802358541584486708309021589291593474743952391134425843212536389682087331228228029431275572134348693746026361506122362370516547603489181174300931129293129631247805427725025965532756287266689355496407895204765505903051950967248361679388244987850172246723348805494664903394174038825222409681197490804050206583951183106777291488079351466199216244009997679110781083681316005212448829048071361413289965266421991540174721416020645724251599674194853294044705174000132642588956078341210071943907721579688320488651801906416337539847463241796644730477485410677687836464797717852566199190322084410593890141685348825329564018039547204435516523508672257157926661543959234980864441341715772592649836685187263403158417665245844048291670996942938053149146975887220676723248273281559730752860112682321575583068162210320731904444828793193265271561877780111882610930141834393845577290024435771787115572691848055364840282208599557769758046490582329063942870954720532959290934830097124550051708520981299145168525310110867931413059157157661948899684467510093780681674632141820090585793445973868505510342660754197435330046509385321227035818330952652672342099529551150728605313823888438724801190422277928892667807716948901370356735235964215305295933015588133977683906406518294354221645978164655265545214433692861870548848524968467451882830444849122863335552614387001994068386520175070472217673591165647958092316444723895573000663067412121507107064930440351384474293411638925449540232818622980947742491351209155527524351486902962985167440941956710026184977215431805081178961197919486853102100307460985805142665952217278616025318618160553554539785426596832014505222964119298238287000597173993085319473051027709912811590116042388797726949279007160898289134837212131699656221787069937767339960560736121835377857206791521949417561753705662919872401105021243845800802352745781524326081680510612274732135652470822261287395019731595375084438150944613173218614192112329808181481802958022819030532635494906605984670432489111726131294272004295446285178298801311931088411238972326345514668596940426372369520235149206147587780982321310344154554570257872145556887562766902078990545912819137291038706540407732356260165820229033205961926263158470768544645739298525034784602575006932126953489728706588799498264972133118658120094907314032875590879786505067471737070836082682981706568612784262753371875487717252023621695114066674257529351195724087530584604519980558603418363916190173483434222722507886321949371064864923446239502384981491240855841142678730237785571322394698146584977902490601841770842336079344060790788865677751662537678961834642094960960557672818071199027938913435126123554773456064422244742999512332399606843506324050657427846868943069761716332049176465613573759530754312129376081498630160305671009955224871334212163111524088265314348113392009859605083871868412171542349210955246219444450741104397199932934380000523533529561692898865743858141196496961418756803307829699731252299046927756046165145430600625954697965822088572367673161049963491653472234904568423358656686329518038318668341399407129549271379115183427863639125564269938344680571180672321881964802851942160881929420264866640657748585761310215144942502582598146844290884237071719847773482369745546942659806807401384542504324314098303851378503899803603189760601003994959500463664957629392939427833547972411810003229918455113973279254420427676829116486147324257120404119148505879737473162835816407042021413190871664532449162943605004092689619151729587579438630862656608880205347275646689464644005649853396809854805205947283690345959451644736516326892336670743568884886668574688675796342101977756362126912339481378471747476976627087363179096507279071259228681549067153157018671691425458781750191202345771647719564104847691125671652539802770601406530598948411795368072454544220129664900899041349501830513638447590305574092721307447448773032643463140295236170280301481045729936858160428578985220667891456898060986546666126582669474089765636434814141052732746104626354556400788915768533350261718310432480400606086612700714919320049642895930125046266962952301594942692606320233885819673766748387787142946693755379957549359416546955012144128888560628920907132538315625913489413851909668730310715415486984606620811065307114925815860963051683022271108882966709041461687966165912543190182623085113691004981910410248587997933520783537059058135614744646323136064149792720983808228327785382381127280249323687115066999790891580839333189184582026010613641211970129139275831099687911421613093604041978806772652206462773594940244463182584728947511990137561992542047970357884704574717365560751257267860834121160560948834186487030818817765223437224315491325038846253268393973649939903988655773506986916904774017206413025668668524984858586724928014363586164869105286062914338672128016480272676251602289820604600133597883023198230670597256048677488147607710480944315910184786466834798838272278275041877647121753603910679219663478981385984376543503892838175463894085006277014876088675995125494010247669047604607268761825172285361353377689146935666896456859090880519255386723065779827666022120767868558909974280029579790956307155726790883985035445063895201076776389074122061451349993478774365400300723836963406696610128562251596386366895797914594694367123634391138725065703882729833154493225923934964432831475310620565163238769177227341202826839160861786279115203758457112635311147611828334101908457156823303568751869959747853968606511206321556912287064086394508191323970738871138913048966667369659460328400820038061518503391429808806789274085474778720481107914398476345838223084921428393638061020250277106467749601937697306303743491337579186911255061051343985060550597234182699169847690044450105111818514094812114673660451311774378510100644100221973759545000855494501838215478539842455733212579973746438049426572970125618349734712212331370715570007110750063749802588304214977946827218833420036397882272526980819586221125768556696663647340479600014463661444945457102087968018490500303445503912061358900450933318633392666162455881679052311554801118409534341914099566113093011027227902812405581645529067903350580378625917219985036146475309176900820715291743732557043856885671293216979550173272204257268485768227091539780368628112299952210543120504001006678545399178713045729119139435026122491139215624979882173798655822392401776767453348858401670458532069099806453867326401456330818223882210781281099928622413721296013685029516878247948177841390241451863227347786700656043092203326135090369372584800120908366656118623650916574370979049207872363382498077776030925108922914586583491166548182363108108509132490885715029841142940290576567430099567117845193318366323340149601825507595013252459095508274635288194091550518113381883548928675832263908404423227637779898311619406652668744570327333007793327438237610380153580368054992866921413997683354348538115992195407276470347839319942114586979498890405188932446910193127455749605273779209951424881561027876612248577057371083720724788086613943818295411997551977305444754608114833882388027607482147196787347323733635710914931434690420761879530762554564692564640909609320676539695202881148525255037634431738859999491478280052871548602314271755053349326453031726690785901690472122326710747130089364294298948598356357236707017182449266735131133862286597720374107070648891896727234697215283451863652721869999515542213811448375796087582149905030769977503135150151226891782953619141205168173076993839072244708273933631013997824794050530062067327375525284481530378570555777153604387915829968765684818529810495219682442041494285506962201923651066823779652856815082239976604008475566138579048200088498301117586153333934436992502101592209106376243748496162541296211617191440577496703011626194525914151614591178382409842209692332034871488424645650874425235237607131229229265433934493171186025484480019678126359715575888208538944116424416089230468248440593400609185853097541032675848000259109124146303880699500104397340578767664724009257259920101363253788307599073024838781253897776434136317153691253811615606284090621735027194869710286378339594186414911884136582475596433928262127900245174903922693291650664042756428846506180220348470675890088647171979068433013886656201612876465445865566469594965519687454300417231169669194138384382299462308323081670014682857147841763722724283527121492749702000375351458127297932859146527798571563583453592616199629019343226939848507359517349315183510774085442964542591169248555379367325096971888735470159786610817807867475958537007701408514074526907107332046669592476855302954441701840132645343232060749231702616788370317327695538811992528081726081741343099871346013930652746847462544752222727343071363354003794262765765384823467743996882306945825350177689696193310489992873185657280150402696684172255630877209728329412206062335026449335003968406597316469796140773396735682010547631202405492635392220042733802978418233058670213989729329725563322883130185526043205754140346786355624929972634521824719535340796893621774533139226199457854734119569401370008333157564548776761997548015759084019030972919153612430946925636209137785406380645088519506613740622496780134206029735985654223130576105474704572021405544046583042119159489014103942546171896639191158494974286234378147281709074616790703756454447358648395711487522051545892341227770860562734033293200531279680012679551946381353768822006682045055591639093134825195554012483590745531485165687790133707258254460967033163280520530236947470976089082615019144928274150508636169012799799859010954929716559402108201416277585197971290683416961215825452786712527247978157943036748145087579529359324059469615141883170089588016160891122038212865988242361699902635705282653006718054934372408904711370198677278708114396289752839234718284595673444607612324720840243910270524472076673352094310930946742769122293870264282823395611012424266601764016931001990471012552654517218895456686408825725136639847812745773018791842717198727313448000730801427040527216573382249505561026326143099337580043123507072327081791771983957647321438476639350010314660154113580058873550947978157221416076217280346130892151485952871785374194307707026349547988704070540942028556815839735480801935504486625925794391837781304306506383432459577940778845917005759916803574740704484945839918197975080725802606668769739506847896931640354936961971896158722320741696062469637381499318780088138405537541187558754331264727774745432585663547891741720506215619888224807816309732111823724712252239356589241338811068932276098894937358360873798469156155576788645363556193276448813876615778710453152643444355206545656842565028402682978855077317344821332480718041417542821341961432126639545435934088957340681471227724702061912018243603620578688638983280827134536359385285619480209955647743845959281621216025509986354602921937754712340100955334870215122213042592679635548448078769652084873946749175089223500833701531043211176806715221468970004649109480887377554169265384117636704537582832268437648923266324642028765688850574195655116896077644992413480496676741437935430093141198960796225752015753827621569462997573546008666180423152080624446861926805741570948913779111918503680948501353402083424197628389418006102327650885246808717812583018599315438454536518629164881332447447331447825834542543544284910447261674178348022357954988472030454381979928480840343596947910135924814957493955076658558620444825192291683991625821491771223340746670932793099751714667693785027088544474154805044609616014596950248843691979999569883385098242781976318581661657124159167188587474802049448631819528261901741426451966454285092516115820543364369164018346071545127281131042489723798295495511021193946290351105393314006558485426451951936658105495353101874752932330330314728104027716969320483150576734204736665926111807380044044361738287939823853969077548677769070403440464141515669277932092242702166468225311543709688117114687990710741485994178259985814395351608420824210100462604060319123991395508497965546210923104634524816565949044419678521795623697802590566632276345294200461841213035466053219856160915735528185449216145265669580798385664909251849890664438494884266472784495708867176808180950327327269540758098048394904619915658849790386853404295379713711104656280058333883414827850129938351545189198374147372004344294177820688807142200758241739723148410727976366636538635118522621689448913398515939160727713725919481631155499749359800317834216922067829532833874265980306942544734986208236581652760580796423068998090795701191827289018374197063213749798818202829284886372043562692634560945982811231385469994733557287039569814420728932140775247114914947545765187032552661035096957240900531445444531746073899873952311362770935089582719130399334491451259565087819557202944322753089902092586368414087048209609241313801680294382931375008941270153005014186900220586127028369260535728605135913646426850402406753490204550637970973964546427200433913454491880597861065069545758899643441006179016634497183904477932574126879759382285093931639785749507777004265439558823475275006359669416561454765967500924714444024819000260124038037398603663045338068569760088625340881312066168217861093935260042784922448946094859499301110396189820923688410078310267257155367020016505022749643992721901256367904266582038434738197662485885024675265214515837066405869881989693716598807161661987923235456416010377421287568751244592965205660375530958555370906830101881158800026217988790552284943418950055566778024039097721055895412525339539257826113950370819530892460348667831520204956046755034610911677186082272890950834714250595497965438637045102645410934756012620470352250981681748048970042971437865197282610274237351711665850984804401476180920106776610317034804290928659441949076168771483647548942638148580389431151946316860573655142502859885845757020173808936720955218750785255093278802733634380472617549070465248992666207595627815181133685458349644507198466690167263533276136230149146477593085369216372885952514001388361144198297176941960479162506504145675422629689450846759237497806154509837594614919073480022829846288304786584202567462407481959992785189059859629620082140194745885889341295926615932919991011279951784420437353189794984088790819478014851688410963405620401752492650172217273699569444080921765049935901354061544976199165277246475296304609036761377540764919612219065219449009091742155578565647629950582843470787939623379521688834996379763678059649061140657322254563773755885204085122161410436935362157439477245269878108947256140029934211872611300735765383255927674499078693816181559509129578336080288366026214301634253408951335916616946480128347869864810464084485468273849040589995213049880798569805334446344596489212662783278227435221464841606786574684466169275285993729702780925449354359970025646987275979721591880191492007676085683896750463423858161624841844755467524380032700923259633853159292167291596928562881796982022069144652912718211237545754093670177374889475639105148301626184024496258118287643696119832325300302819205281441838497622755591158044006372048353036711401840138761941575930033576726293069942419591488145754250364245318990502913905066797997900025534046689510553996898532598904024135522203336935406790637645849168434586988246487915327541349348507298464797902511088835849857504952298396676471397929172338928531094524695482991986750756507087190599253497379184007574873955195377031563224079762789283104837868257384637412075412549344025334255550482906377265704403589564407621078647179183710265116463355932867084471105408393305528904842541012150142056168069914605702844196504502998312929298722357742278448850698747440354209117902385884982494413273027548342616897430375127319969587688493493698889218030001869059026485767653034328743091127992863096683067034845355787492104638250138211814679323686796057989081582604504644487402099896504170073741990474443352644951499414174920833439618573844894242544060293226411573565023062860641655084563286821743874046331026639904827026237184638161317635892181072434888375881628551946768954989828137293008249358467095442502091773072788561981987326910831407299365696653028570559974405695465040124269760607229868727222466597786345555863672880467013727795446356978107425552261136093829340336949251047264066606711248284358755289656317556792235557736982893136077980544997166839625863385033719441725710314249084278526693202038329433897437202093340933866404998760473237118458652439639465725945833581912242191433746142596243317004403935994501325722723520571762597259204276280848624946796415179907063352666560646369556363470803818295246402840415016823273569700272052145944752366914291835392722271626233350332369387973770619558090571767845892142617222209394057677799995581114813096048218620384809124200140883907338138216483364907712673800814297437062387049057236644182538976172212319398150334571239293711357238850580003007089552401883576496626702411043992070792662268860230002143365834059263687469449098806029727785105700125783504096495626027980782575588548142548736861151046296710511727603939167341729539634641472766312939245759383628743304856964925193920885039696380822936677062270567050847463389361332097747359292958576018645744734480772795655287650406951349249254005621497097870380493449627773719315235811710970605270316996343155203775594830042691473079955870787903921229803039200072113436637727816442149063320220108102546357710216477330346950813034263417048270559505419724902191702412072183361846595766579970241365585274216396920019804048600639114405260279359790310347669715263217472649021304250972234808486511518745894985833167331474574791818998330608785750680512123217625208049928045616429846218110444894944414868177514150323891847858711404037079651813626264444021421853434436051290110156605676335669636748777432450490918393949107353629157308919296165423506912241057117294890524299442642316337459681885102601328891146298421452187126827620529428149802363148749791536436174759728015592923933849048096932199848624329254481644119368133681232254605396905440868544090256754319681244886783896205493333606206189515576750184391960900168865557371051197247246242283379598670346274544787297108876769597459019757428933531045567587021039266912252177119153289470551104967812301784386702801978148848992268012892077988633368032299812050587296252841336726765270374363593214704748075248303513228583681361252511817077626860430026560224405796898013613807735635783433966581663461455075497634697329783270634803856194755662268697368226579573574184885990552429033256759135424311576900375602231878281683516418587810612079757006906705604880699069740392117315142482931531434825828498726478675723983550126476485364691243453428343553460254497390683893275355589797967967180043790665324458576738164940499009375660443227505269319829556741928086958870394166757457337607181481757129972875392748932618360368835119337366130184413458040356776064623757994152676221772723987875225668046061805361785057867660420797286070313035546002804975551166863145085924263743915708650333376507568593197579256207570404145590449541793951232588923096493344281227956671227138642327943207468338476050668738735600802925740059847563723385029241048527629036117531105999897797926783303557537571011863563313149508995189833452406811651026607731300250064033186881062549157312643383377951477464282709930312348862839906225008575173509033569828864294845913559430307082114438777757813776692015698837815232730638718718277930663295343381895694851541919470784195227846107320664826842158476011912255442713256732617226449062920159699731524594226522715401048006722810174266662953032196428469643628547409613740863609055615554857040722315329030751651689284287158134812749707947884609617662201906488195515653530420533577073424378159192416098964525685231175521051778834370051068321760857812562084860126938568295770857551507071815902512317417990809841377338310888252990148413697755389410971810934391212998377166132742769385907556688356274062296019904190840883355572423236299081175174147035011098206254941261480714857394215629545242740611064426899962166067239924450116041055014938493178555868061310134054954982102477990562398183861847930078167498873358485851428506641582680460309101658466492379560867848543943103615146946021983514475039916678344141396056969152722830657131646190455673203353434854175345722012816496241609899903674770190149204355814183456656915795117642372222765869185661052126520829821145323466837147009554213682640245113306551972367002403963303465758867879591883166581140644374929639270107547229494642718381453727947281279017924449544965740000281853548999571752297574585034631724463161409907498653239803163987970444249372582975009825014648274838511605005001413290094198752145243234904657046132497518080246383485701427859312840984818395998644783224057106592221860825476423137696270383227939738025939128347503434800167705674070438464491901409599626654087173744160322999995549928857924954848436694747677268102420971239628524741170614649025644274298864279351404502203145817301383335784178166344845351575469867287478541338335922195589845381644713332612961299155851767626068235678290521202107332231815880511570989362272809552078185926756291991178384069171888124975635641772974811911411486207559054274842874956451310366229676942081840246728398813421637060705891152301397836399358201831297940713713631367686208236168713949815691396813062111488320986514428727101378182811509471028663461812967573612145085596426452473484106736716903111713395863338466569949749054281863969207141980343569741363524029193790845513230940519961936637862552830287191251075588805234287384706755994344022656670552867851884915575889329393955766526849018625171829707351841905857092195580254885080111774728421651136728124984649065310375017229599881597291643828945419430261927432440809086359840965137949124025257083953753655371770011830434864526758708968804378657107765292451478932634446399948999605272637589318809256567877611612091390497000910185089784674484028466806918796578216840176346480953242325831885747549205212097874234963901480180035511118758309169858528706706296386387607191364258614527779005365293847415351242758452719641115228138004881632142322993252848089713343016253989094071899025863970606422835580222402261009606003942564068683642339523257897478227472881371536347948539948389952616429587429609377860269046150460539151258968824023500453677660241311813458380054777756347516380501366245666687875763276782551316146032818106476129638103631178462945319717683955315446012956857749492627354762276619808852661054619762544492302565105943752309368227862687527922276198576700537901474234580476325371520801614132633549228778262095239160413540154588733562735421992312253702570792200964808940174539739650459711411077171582935974607409272775014053293347373664688862168689367039123440216313092675321769377008247446660882245427155602536554720783670361998415249633754983537062580654167665491417837632649327451108605138351915450524719608051145211613111435024716360364409282801095010218189718831512109194160808693445308217630097693067729351818351961559635894642517084141714135599265186112141996220446335482966861241309331168895573226293132992469587910363742946585159755981502707833355559523348486943127352048865455347881324696248759292432767137508344454825103975297605973388812735291078712347117132824111489354198020758581331110181500408172652691446226272252404756630411818211806622194045238479584180385341341750207315444788251769202222955275313251934500939259558611258928254743690835428706830441742592190239995864545890447791061646646448900032565723169714710745807341803989222056046037044408447930399186673930234270668882807053777400086796480045570603117286483403151390304192520018150225301475687277066746644238067105170487285731967692791801228221667986560571043860036299004177677005372817314627647484488180711603333194778693234580100502091765435356387206710560819860837920419762089985376067268584457987650024022992955321623670417868214728210666074919083580945738355872927956756766845305814045809295243094498013694903950290728627302343116834279591314504266454248893427802003066341273123720004757343216722474812640607038969646169967804668528842426878424816956468025369593675636339050679837777187193279584139815773970398211540575490152033496784005684514463567541554768401873804892143370181628747468348541127114456468758807262179412320971513808530492767618748314196269010872435575529885391854627947696388426420097990534699638039310090472240465124925239934404891351164549887512184483989869226339336566191577106150013214562621316741043610560857598111015876229985096501138605729207101013053189573499332199917134592139482044988540572446127129969911047901252369233857490377836482985376260374891393653651684539293208458726438682665900304850022468491444262793474999333860028289960587515949950797380672862362910850568267920473443960188827602220534679722520436613968768572252226722325235992000625307691458609529322507064704794021794343598667867385440715392644422153601879374920916896881069736241664325121860868290495037191568539516333021454544684106391952355824310834613418206369750742810323364987954889730437274591756150165999121261653095330940140091157111787344659294977278343044663785686324641359444223675791595436497793991267424280684304617759240896398566369971826685836495982173233274688146455030558326916245882619722799307429879201406226253662866788960310068055982705306572508276561560845588538605563637822299830364944440271040236343511005722983701883128237765771998666595283812391866962499330759456806104555987503805454868525171424991067881640834111079126390486105553897576706066748499984099933474159769804178926536171939866194669495526491408138878180330868708878649132999731811263511174817815245198293763710820176646147775724472680460619636927200281463667509417943305022262616878903726180142436109884576517925943748540629253953276739509872013013836285694841895515670751021111192436750016006861027920651212917404584272941798589386905823748014102091939026409367767201023395118998036507047959004562067719967441987129540597790553746606075245255773397769174547839719034428503260523974616893697589242411504715333979747238993728861828976222947787113126571984299927817116016432074140962741539251140954873469597987898558666983043734173134938665150947035738601826249517830675095615219864543650986635823959620249484738027530976052315019317433863509765487870779307997077223058989511507138016085232858431089583905407607058751233676523650385366850965842315537963869578336055564872661569162891696629863133820254445811149759696086647631792541460086929945742760053404962238662967903411351806027249629536896500369632161818801772442963447107444834516013031617782740804697534443281205449111972548316152615043046816355111238545354365065171980914067484134490153142972528899556741340833571948330021656944110270167330841849231089108400121799816645554682712391183644714594042751329868418202269613095242397268196787645288365654361804514059937158935893884482622424584333147077400637444601507258383601624411544299440140282403485424788261803001144320342334774215267761887544900246731120952163744391772917774823323465596426986401837423734631192208300847487873434215415499417070314894464108145921555219267666594892813086109279393033271456849422698122851651833302610442580906235865170946868452799749682871397996895315846155871512727838976999221625942788060086334832758513388438824566072448002684499858848750510173891404125358084469109691530195688816259640663995177470161478692604696813211060988780728590648598104704054848464102845517175869255123354874106070266585234892359972684269198757284913380644118100991786650174200719895532536012479434334124934566960134478288318091204109604377155907851627897860066344737477777685320864539438912238419494109026098432939172973495119903804514543644536970977492121338222732030981096115214249037830505934525440008148708670614757584346803253684928434269853176936663845594285110589336368089311838265863783184388646508141773044007837237632247046238095164794788658982882687136972449410063160979983312421259898754746344611141243080000978007707487171741319881050478435047660426103399151130608627550827560637008808361092410758664710401751899451255374651362593748357096087242751816232733432556315372298642963986604807123496316769626920477208656782998652392875532239041656075065433077630405776572170247123926192916922112796578169773451230328675720395559446479570360306172017174091967216226350143607985272373573727497580588347488228822611199133523246679679767850290099379308318556034944611915060838242196796231229847428572147144814589394581120899602501816378294327807302193187914142105326907457071665778609748533333361551392122684791528184976702600639742674935632512057975386974465570498372648189920035739923273420929330895603830101686548230745937653405949780792720664682547572008937801643408480557140284315559744586291333932007043151315801145466012608489657656427369735842482955953553045457185303563065509007080591831011773760460458008588127473706832972473631434095187506059936706057127930308235196161825673538713217522093924616353265968883738914836643396611550659040599266421379756693610540515805601835637495307297312814576669986427302002654161040866125709959359458011997443007079539708152991193175138849647213113132051374436958781996213539238061576001076873579841616422026720466521721710860315844403772027974068653950904345945402889796170257165519754073038195914605263992567605577783113520352818510604828603648077118599569810601074689267008002092115175344931432030714729311457062379936557725737787353207865353005416277710954927931312013718035404734152711490418386725154529783781831711621941644207016595536822177607517907278356890730974055686845055040768136476750943644382205441342305412134443284473618790833022583117605603143643451106159096941985671438507076601825998982797203024535485148598965515310991982688091635110372102445737864715666550831708918088114498413634079155091358017981167230885500405713699640817556672475366911603734526631030803651131607888585869538762309161956922840265599655675572269246898313221393243086100021943730502875753153215273066570916932598910310579390878306870472249673574082247981261854467085813643508882317525786973464913572170883766838569762989493183061917632321630596428882314309955530576946760037599390397200126737118548149457167933340790437841432520339824956774519429011890595241457657649904548887906201618587757575134239101409226951479429706556005952794125179252748369506312055401390832461386952852829720973702694851715241993149758147107806111284273272692947096940290206666542169581489730674470894287343908202260116848904560968652443461004430898959921277062431112061964059061057548199086571968749677445414353612792724169054408121983854352483188889710978303689816423339266572130995202895002094171442316261808466369701705801464070531494625877356597716968120615872615941738292264599715063046541165400211811470000683974006267003356109713012497218742000078043845712501253724251868843040897592906639123768783355711484085992328272570472946059186630643560134373504132432514039802632707822041367048093723032170657290394664625048705927591217143410150109193508048285927107711105142621766017175494285396227150539101229980792400470226917126322291690014357933426510209228435797428581287222477551928611561218801643044929083623209399569378207684739862023734636533690468972625803524743073127242297667238144134951618766617477936339599225929661647086134772265444093425650909805436497520293286584135625956795312871757271500520559181302284464251058127103480139588738961748028171915521228874631439509233663905189321440631866352240532753635687574509389763160593856093974473551182273991859164927711720311661066811362691449706399709778777864870575014093097703335803477708673802725703015821652205625399280162200057323117734658329746583213911218643536006692625111773256358561685921911212272414802235269663982417059233638525519822203326945372366913498982177380803854808705686564393708089890116868353252511670447948073119929839541003229598798256273047642676264176761514204218696291633151501976117409027652812356760513510280492848689314243099493114853103063092983689401029679692120594337541691857374886955371163447888004413087446544163429938503896918107311189688282567055380084044829184878709151071585411525511087390472348300476899452686174884714512066401938821306421941462950437300217445781511822536232433053377305226968972475817614040835317128503725797963276743682936493663540775332522563810485325531733923655288976743159307262654016123684258861047519408555169419072457678295306604823525152341613055168644323130942873794332291059364032137354959266908286927136641169968485823500257894207659451631047646771967439089139313485667074411277251254351678778039973057657521516335076914096784579003861933531455258298253816475239117131786241948798359684706424117867484064747452704667942800540760328763792946313187770818708638470369746420383209433086266383523415354178218034031812640886862760267446275941381426094477064214972467515378982735287438509827748115960641052222046746331258940612898261029831028101185027011253107555651050141613476111791785770131379708493980975779189247594449424628235792446070091510504798513018875533888495078203944314574568408417531032047739626994516703902370419944161024748596632658066720754275043698400779115957766564927357190176522557979942473129659444356310580441696443154165952391957747681942171788682682361787025132936140341939857659905433643834245215187094300176192766302881654306497937678928309817000590367701822081224387568249473605721491580334591693119620330254226360179221324789315333374336836770220980661188288832421145698572024640674698201887269477805849128263510382975108388362171354536188400942305715944371389423393568941448111605045764148174817975530545611052626388137624913911692961219440313168071101979476786302136479772106520057461030387143279130371322235926895715759702773241204065793706632498675947950240115454503255267094040616582769766921149484074034407997552391995010122246415935069198448019153456792071825155667221946478498648729287935327579250085283120252138237494446103266316282578484542044262129185200486638728544973635752742148133970705135968604618495919648885293103070527074825510686094165902398489442765363875462299036221817627263936016233261320713897367986420107946824693712214679852238632837608376943403382998077827271103594521307479274927969111093121674879131904314365194473861948154248466158117645846002696396853026127772562829354633561078175214562616601066379831583732147788516551646735778180150473940196130076100560780091841576677028832495059070035237708933656744854611558207679053877121022207910524127644329259966619634653612488924054457568359864567825820161033758096746479675455251125457975979913164972814014881428510773773601528754381550597684159760513844124028504966153332501398953222661433412259536111681471717386022709531521342048323044067293822304010264874249320533870826934612007464328566190211302758127347850935780779627919398486224406440315920379268158391122831951633815762869456187699332019953180629134941572422355463848842881865137162314701545682899665217341054807913681169453947352881214948352874944962242218197141722745189715584336045974305492888782559143614410813631035487423646212137631927834179829758832844066154131069228307729762333096824617034851376655748245075466552688934331330148526349740331499365833394467602885566510772362181289729625647492117981266863726171676276975202759828911535710479776596393243661876138765375185799869382653199562010594810879844663382477487005287122977693137804067162849657255111570691271542574618406755639838856829269171426234729498724404785458973007450485860480728351404547692713196012704329305778941674441230720003819403840395627993452107765595156026206648750016822378066735853883705304256249050581621673411743094295667017199733141409295152149596720707620010110227888752661000811012936251339097524880771228578366583291661937783801178531486106926858979260802459615757615789806003828308003127500416196411114017605084382691473470640400377803478069408479276161537958886924573637172168749999638637936031031278608135681761685313122105966010435798038456588587578788002331722960546642624643838413220084116420781459015159764418975430116054452585060614403360755346877283784688108333071593134761283455153259844733044161407246662710991377303899827437228138689914880897085552912735028733542015504626821854178957768289600792441035696146020438885490944302224059473635222198873728282233622885629145063814358693343171614167874330310868557503321666197614632850414120842803517488885997045005973967147793074550938757904627004409059484563227606271764426158694584529155957905052224107560200458508481186867628247042839443059808580853061000387734867670255254350931931746344142942533457630324668967442110771501859978212833784518028467278619563654018341184072288839949137870843008582139198368408560528862561843246837324205635617319475478168485894868409806628637450032908484168628374950212487871390782804813838300202636308961904434916121456348904995274385290533040526544279454211398796921313911906315914513397323350431614771340304735979930511291462400203798047625412840798778760749840882993731471604085299726090112388992181054812092845332278926508631840366184532624500592672509180079875379208279858858398651591609376479754740829001342539219818679023678691673273326770128959595693647597629465252142919889651367862352737712084830330817756864814386172036760345432854051020363185135966265099769289876067626673781406031585123653115757538067981061533810650151122566068854025161045458199118954688260462039302882993705877750061847150585308587704866229233672478114411312276107334322137909320716165293026673776294027845974777274962586547187680913726997297543636967258373488796670461172705768042544954483418426121081112884232394492229467596490652760766144626339082924366147214772915934359893446881924917945083489385392688847115714265683503294788976661986696729382058163099327816876700483939078470597371725627001965402083870282940819446591854012829910497044910738252530709744166719914757555129515122830398893092602063982038310077892309174562038021769064634336176018375135856122944910502984415939535369578893941419209588370025464808418282409439339137844074126948875879453808431094246804830406282243819684258620613287618926343014613026096700225158500609645248831415055504092970368666223456804309015894480277775222526295029474889746828228749780491713805350846869639409722661860478873034634747738601472980525581582317235085119741378769028200176556925148304499475115682541546825464877967949482130342859266853597001626308642038131608207513518363237691670523857363238043226657761528014203028938539222884149541559727336481737560943393718690607117024201476591463788700603962936943466892662637430293679469703626823684451800894814201585585623986720860291482078693104297948692478985554101965421837343343740322651980611967098159035557958686788374637121547734296885888681756013192816317612590821827052326053099436491501507579024458967616130735998486803447549828560877091691647190757139421610924454445159370658698114461462961223933812223639946927024959482546585834095539484545342999607723557351814108113634958942116212503886792152579517883855325554921182236469623611238523710540642573442498484368178053182808048324757295029761615622587981414126219500236162740583902178011870721687191075952199931690275284256020995310377159718516610285211032909891052787978046276086151017101460524621762296867974781130558230636034568045811597885740572021597701581215529141444471533903456429353287201553713793396350711823819423544290961757283205767404305490188336717387515867938372219777884277272905836018764254756151867306273313273725630980103255117259995930212060314649422731113915884021963962468344078716310002541405911379279736973966466698350485644484661104807170245465176969903425141954489475569013590218265459467612597088933070206267956053616320849835197684639617672329768390663827318905781531943497594647147532959389567697339744628673709914995618319039467228405547260425299413787202073014481453134669274874598014731398152887466171225113538191840029914426196293357518978875404741809787934447540841149003929549280211357136441791653219815959403713502393062531117846029880911978717145561697883624639767731127611101336163212619078318444363250935018783301524560465535347160096849854568797782149888572939298476047222265893457782715277162524012077008832677446285709752486627363821759119261773324064664764668004207545253191669210452387719793116673646015131365245868937568555923615458110780427919301252494247122421711679443146634533480170259954980777650707916460269663995590982436420515027626191576998890123865791016602053430827216810226213603442868451809317301720017277952527051876048977105063245819699173786303185322632802908346128281171182231896698788287928984601218059352233180747875049222579313793065766874153433510587382520496841859035984756097524152315242756403013280387586768832554885919684250308890246923074626991883381880923914608248735593179475175689342883038932408205876872368157991069442803915208686739622653904602882871132961896183026977113160412767815450066198050382405656409486016416195972087760467415493118145411331240485930450245689319875245379892811942197044662701108692664647482422735246721721794822210182911327660923949595208612648016564506678672710354130073445478697907441163454343948546708949731559531463205739823505541320781450702292195355457946120500119598633708182870798464047834466662599040903945280927703755068594973035860590189024974124728749314963437014419989951229016688365333228150792520631692795233147437514290575827142104132871083683363467153046529285805580257232229621686553239793289986046572470204180230065509130201143890366946751696145990641446712090448337493978236503152497947399788141843687049319114794079739254518472402131741932599179248972565038783150424922169571021086684637965704394106382920116668507240388219824049559515061995825616585501384354589598731086402276822079331121092339501470908014515502838218113063215338941434676851815985510841762293006629606777216946549142996436810657555652534196810888361829131030546107894117326196080513433948835825097048138440091497366954391581250874617996908623501807035124233046032571921792068692823368635679916539611370839989748741091085610515559817836122564930029258594872555319106147845738301750744202841692028804048947076313402775789281023633901161441506939156864922562311628649053300199455631365979212102038774039701379600777049887881189227827535048529202861621795385348533119314064218543578238560091937801409834111501444692015621265495718489397391489487411970593284754147615686115939812746409135022003870218255024777020805666282278624438499861671858351001938823907484432113089467540656553032228266045771965607351747217530911065841581594014116967798811854636074319307061209145169286693735431584201264374818451308202597283102675736032427269706018466165739907615296722437678880052411238295353814385867641838916084834814517144696320951455356279411711653012689664076467934982865125928198589243957329490630685609206907338311317547931871397852221921599191531743215954610066731344162848501526398497397619419811064402089861985437253082141736701712159946951023809364381384412700474922103122507178164075190739600187302848398159987727768719175451176399220242785914482837563201180213173869342387120655469219046675977736392865638086406211518963790942304074128440459743311510552968206593015857240059188381389560838521354153027657618774070396754953625957411684179936077909973093402221547617179489496586039562474370438400813565380908813396448726215976366107305184332589927723177701475137892985117318130543597725064867936926392378687599937999510177833508054389888119739419222889095716228260617063037407650091372068790019370888699902142424202608854605544806845462699050623977283219010478390454839743239042233931129770137030271810429249973159595177942775322901742714375343462605764536132244868518927860568532363116637876153463112879940724853240532943853246228813541949764451040647578656581328295333403190840453166166234722835524291544511912933701698894872142887418177096470105054996185664233483472561911777612099077497462555758505073072742032737708780748542082728169847096697972567116114788057712063678677860688183214175067653172776178012870043923538125701994326215580030932786391080311065070883833723138549054393717655977609980721060034674525088193383008778196449642764557451316923736374643511843788665602106409392118577919662858650138208054814765627695517389479405666627250807778585704808584173598529513164241719797894206999738074824226222711220028367506345919088260279480431031173209087268505384060422359958993233813474350259922107909017164833576999229487585699551341760921748964803433753202874293868035252885590569404091338646509259024627443779532890970220566995592742434320215546011664595090452169447855639609513489596101893211777152918898434556586506394271143868649472249126397144334572331081455738343627310113581498973890543532461092024339102293480674336733946526916384464872827870353976241381855987867662659535352374354746501338658672780886257307367713239004821729281169761679852340104751338109773918535903625959678280514413859641106196641721409346219886026664668116451901592581101206111839479154337469525958710082697304018658086933606793171405991923370210333042129835076249727017350837999183120777634777267513937374725179785593703333031953573152562312358814921294278596569608803720649683275434538538151198571942315294440026886709569916413125279399456140388201793152179138719140409847572660316323123559237601636913606579892324498002070585138930407408326707000754705542207628814399417484328565699394151654468622688443423842598762849781825347121121651701929745928456379675919887198765445140878507213022942316328404411745215154888238410430943049796397115716854275870196185498014928733927464145475776299255449891386632520478928124088915284126313665895891030406051460560471571171340692320544571175322755906183361305893789498642534367564129370890414759214583658743181605524365979640843534073671360663790457730384212270416373339544047783499156722161284336889170790649286932393045348132427710753839620983465301127588502734807061847644420861615813596902202039973969984336807903337145101375657375848122337644739625506951087051124562445766283887035080897436852590053037813159960108459448423420954123642334850249729210646853978639791374862269159051805057649133812453115269777989247006758147171931200859993171294012914304878742669643334151987284689693124821856673121382127491503808464717286252692211820213178587405470834431638123804468460108783846754504552296901192306162864387943710465635634461425026704544381043826989104748468886359675361614654433506625297021294516090447160092089034860238854405461240563611175271584979330843512326126851115078701438130988927942405742471695430571136437743612640386097836344891896214577212168318308918267548765811021910626739179348653289977346354911703275974062982616029738771519421959899983388373429239463709165951134708964126579013230623381647347084591278092827992840745650069192975704092880105702476065637925661174655748814712623739841362379726925988753288963722861114906598512867285814068709228052298241998138756581603832044741447830130890423395830457727612470451363740770240159462540103398310136137219502000407144142227809692218872940634046890354848110989338888440103206340404182652925287106499541342515550708243166874539626758974684381035674261607656117630475417949424756014050290148169011220823954222104978090026519740883609848142965174204492799049636830050135369821406463904975540789502543110782126098760899883296669782694173588056711300842821380518252937230253313635656623219493460310879612123196045280486948987093054152510419686436116352011064677263701288414991345937743488039134043566666393042775389196827645536616053404286614798866037503146501493767690971324092993714410705767735448604751252830533535412110378560031074697496073103361294997436202368817573068394457721358767206496049909821958408710069726933163464027413509087378931781583612886238010520874794867234267750757998812939717490748039118373232531454409493461599140237747120596014272818068748939657423808931662741549636369751092179756256913370945291904029863467022869202699696637447863006701296616667842824014344426203540204095907234752244438224123758197341352551889073477854687487748507683610519618269571256072682538925265125237715676938130806884711192440059542100200525662489878553484636991939273791636418135824708853466136472635821170420350440953227362867201669396322219886739217065026969338002107140808520948165978030412273801048860165000062339219175951609267556721611556915766117221384657997932729495393747323849910348970793001776358214707936569100519813992477826833478595041852568243044065098339978900382442919568313117311100024120774700340153520622746026358716786585272434382772520162921750425436669586909009914904596473236455698970778109549750190636844146681673886584177606394557054310443072852426179918709934706126513589772765020693769191107706702578028396885327745306551725409640381065891541691475529798918078694098934446030700792804338047036813477812120717733407219041596609160551085222251342995348980015791426195450059309862676982891222385525524449533052565246113681187956791241234937784546418436080706598363894852894529293700677935920113116322187695476545948690813592223736192199001115110349468408999424483130826506870252251502566281227616750851269187335659855731011162012038581058330370849027557080052903865636350337390766295300540927877649995856220731232640523989185346726452897756055558978561843624034495552225340672797421422132625343647831021939972511954504562208359250802116019323388560840132597084355617728676218400925367958473752585459987660573999476042712187537030433872101386525283459315639674483267555822176755499354373252777805073367280976436783620221478599657988690369777378388885588224107066428004572963580716658558081840947490438787235885571321425168209737754529259699116532616912803083866448946868664861539293765254477156598496094113238977985914086137851100383013462156497441343159930155992922770350934865849786161166175477952214571443494090136799753594368306328693800755120549199540917299477624380751080855922232116896516671009768887634869422538590903491131441165483044713291426621893731840072289394767264032257235228440899295463249168811856628156145923805467350316491091489691143833921188212122809077532158176981834995499018269671820488955751459634439346833211969383709863961999475719051757436460445213775212209248633598492157912931887973427620669618690924149123020114336932881606234493535251088368960249773561953081912200401926714809454212902397514027163551002171048771005554312978266407445499959826652171696635771211188446014764753726314787950228919138601180535843695713941009286634439270543429566427520932177601004706875649518759187188962078584053122726799930594884747681865419878753529737803046323660521037698826221477940393613721734315187915104423590490536963317777101995180053569121898227182633452785692029145291704209143091912984701095900677889616030003973282485039880252583306201709344684746601807062356604961100767749443304184136025652823562881232115329586224854609913859518192225315728040808168516612990163443459997666963985104024690069422029869930393715712963152143383854017911813024586610271394583229120823050035527288363971564947895260111376645044186442315050891085848656979215611699592012423854020279631148512973763267425650560892928141274732930785337479040113513347405844305189251048250954728663762855068014842790354578942801863001731871495378070676907588881919677541292794269480201158531311681423837106558875027258483187129332318062001840698045549684184893260101488389623660643069485666036160556602078604329044412482804814874945293187024580029210821215259673399265629763396798088916182414490691757102642504746945359272946496343075338899801713402378765463049394179110834223492112559313148253804194654763420252445649766490657778737757461389245950566425429115548089773680407663930063941937463206679166177150558397780941830398827707331482208623778672651960000980655740851752016054587762549154826703859782803210748559999155278155058330263272085152532128660327946225666539866272579351895627912623782401316198223381307571809540776588468733208766869891555487563193091848485547777122415136313815970608467273883781764302046417834299137769316582557727501299470736860352529268600634140596242690507256196242200721627495391536782454010331362758870648194420674151875939797229166056059481438453024369387080767521328788925761883445571468891860516511802596004921836340586527499959384730445948010943742193549912695987354119605546924976226347408294232317884058624560757974355351293466484351764385276602547236720280033953264164376133645468799624556256902309080286582741891646425327882129294501144795053793505078893192818669639283269365748894687289445329663487091329627075146655527954935708150431753377893764980022461967125650440723795584085443286537555140035403164457202684593035471545131787852682252172943469064662986838356842468746267093151007799122108570460126581858729864522112210744442132405253071901572055106503343392886118616284252171664781221318160991549321231446222615297834936865241467524117664370625148729423035146054500495399349303732023508640883785157217297481302807913306909026926684507548566265304488329718578304075390439844390770069295226556678737037068627436967788719973091661500906653018613007266097919182989133209670973067130307034360192461436177875928030833797073966730257171148861460728987109005903520605285168106944714978654372494745920889513076649141378207893193366717758119781934723407506152929566776575438378129734722066970119090147112558781969102837924879017041438066290066359865036523323501221998040450744961948986362919438197151002278828396914138040547006307932675185282488725051876540147097854773536402326397759230040703673348258569004989560309905869072951317927323909866456897622003126546226566738488446313146604246159820752249995055566953730855723174302416158042448487921115890998676074532916743540091010315182961668344205332674765958656241455304174567367364840086574657829903092381875304386321097998326467010502097740545695330857651316080081222812801719833153223413704646198084705451984165524409311593173854376782266168849097769723279808690214951485772872562608484852748386764521458029136894051927569058269303104699777513889365503173503812719972687795006356102162334053259452645018308553215280238564056590378918259094812846507457244760130236415183284964622772457253367298346082867346820905463032765640157722895246327750590009867453805169584955180339607145536752428999738136057728258750566536901960614961942749283428825122737925538042215253293383878025428145091428669595967173832021550358442844674552778937233504010251688728228260843941457626076046445962300930509220494634700706161859674222567077190496792822028444041508435339324461670499862035282781471507756787188582138390254335721663646056611428509924207912235041814740405583292438860024140379252625668242012007713522117892451554965964156449881686544214878535114221489692300574123088467479681045076500879651715222303593519806059464488053432495389036385108353954510636621147051543619286903056988964206096108996986942593918250255038555487434020284817164336745652541491102158464842278624475105778518624225377178083134969329719774479490849750931096748208394422843537886385099742239106987980684357622437719460930888938046794378585392079989824697276676913324161359921706812613178424808739083946503645597113998306805545117658520498277564378293583742189338221268562833463618000695290743908271092291612587708796601682718063349458125158987779399788110399305345339663541622770301115498115235887467464221336151036914705789524006536265498283788654559780779796536489910373957530963992079371874388537071403892371199370116880472135610969806539991193756657234611869972428022878455580428464349473022273744907658863030209727792623894431922899623110134989093628746757622496692671103970741487327292662727213717173218346394354846114803851204037178400172205319093993783275742255097532074395649752127677235605392540634740182740723881275647466310660639386101306882684160658113446177738482723989406412789775587333248978832549605469976245871953746231695391945545074946179395372640535310869651357212706536977546814522147396938290406821773796300960433502407413104609288272386110497323773796616383903672945051727222122565767867095452776008043709649586817743888729898795776370940218056367430186934918656892557178901207025594489793258685242543735788828666251813601781533642011070385761861042354040058741209352118806692055062216919343117524231323363238640197679237887071280302646143250706988048005584200002048552408650215158574193524716089626446297295439634287552638622708347330102122137132402534900536049832517358209362433104680164945138344769651743701652106414402286190801937354414332436744027491786889618930577075030123310836270554224044421912263898130557244547050622972848732480980823367379675064002812743776091259313619914529421379796215046970469466888075971734903994777764590571270275266634350066126457793363061619422099916736638687320201206748192046703311343999931143368015926126410235582528402677208099170960163595122704977669237987201122992663181350125836268871586030060603415622652371531125231187302238190273132597475385717031553490679041354735572448112229535898896564885816726515713416197837261238044448118832469460143023299912220547614140793239263618175955053283120126757260288199109793019657418606770056938920651317794700988672766927895660235078133101548001682091226652714561785224943579364679118869606474550835806225949064801626605694066786143892656706809831693036431025398310589402383388410586617231476181056403944522968978795310778189852328563991411022127189032234529886770899434063836757422134316364254798540029931768727277673011720333119176251559389368276208437763553935732563137473865836323136046240997886078863133132326395718538386538343848988378167456209273358194602283100920838141976613257072833619354902746315064857104609580262170173040757324412361624234111199928546448806465047175776460793962911367043537230555966958916842521080804719978689930458639766795150909562929188983883894905103113168909433270228229642869320839256297878674643589218546411505122643494523780273086584861865943091048025504698353115762792482601237230141521547694005934317511983540643801984145761756436427362220445633739247741581582903445511563877559814436769021935369370374212805130246236980410591072002510054034489084696236431162942746297081276598245265812797872717194560529984394005845630027512449586526387179234438389821917753080065600564585354148293349964608084506109692841320599075907832821033986195450014040099556375747478380654972368671918035355491804104531357837480761370488015448110278104365376342292615515491272144728223640843645934067392999089153862464496024987921339001200259614199039775088853914593811627023368559990617675822285883374499760402695421255055858604573162697146101201559309917567574508627773543978154776624966086182735518519278535589589172178179369593356166498947948545561922636883237758825145487487225935368713626381845704432979226688682493277577775935896016283101764766108880784642913930164899253826197722494076907541626453249315018024720846361010538872186988215756534157431653009643330667492756793788535701973362839604131820126044927116962993275715694174583677499172996514074723093753127045400367372040391740612812465507123997112874695807646185962105955171685593708602218993977963538870299221040335838292326004659926565661975919600831689021016490168095237355728488656726241683187840776746203290803054416822096024702436608678757623868524690704015429243130794722173916267187564456021332414894159559490673947279264988991799733622466827845232444916073710927162560619688709937491815856507504014156008534602970719018460185158491252142433553811220551823469626413598279654058840857013286487384586075930775365810405217855549605881286954909773777466435291688850094992187729744902828742770065921184573206924708543797175570274609727131275107975519344250657645912153991290399667578278610653570923746195836448503502996002090411868803795272168605753636411124746362322171860373347691605412231445930544382084597023188165520425342751543666461666661262245326128074892917839588246231565004212725672062329726810482565914671742142583495705957395082622233760925612937536523449527628737540533646599098724669813582616688106592654765949193775883408163163320075660864988732639385820206614187371848234775294333078014422514394928349978215463586144647740908713254366302833009147686289339373927163152676345481488883480811069058204457843295176609267555449083112883272085691976792799020066472743821985234037423273422028624227941482881375983532872105844706573205516300668434397385527122787546879694503581970028833038078491168516826316693337090386767394221287866421673622549585468714383559129054117447862286716730439927163866643282727078269107724715143332946385890981516866733592247791543229163111204960595747864731912972089772932640515203073155149346391043138635308359706112879862748357188988652702091430068291405014393317912165013514849081895895702585031425870317900849837437190946881136658132887432591976368205146248854238952981345546582157022583745633305003304237244529694175347639359900114397338040269055237990990110821006102197784873813975816025618576246972153063487714830162974108693782894109000815807082617706402494750340889634083601109472634506211441531620401336583816111522078269431962437137766736988129754334704703526358498331147163505850450437445213758285249594876496704389191026725576151388237813566667498359934232345224404142451377379031146451147469743105827074457222746400058632895022512763588386070102416860263213088840858499856268825321828660957282253422671578744864455828989419721743860819487810872055640547662085650115398990006578164126451391832474649828363877950453014668719711809083861128558291927121169627442921761411687381136865281213022822601131823424828323361903322238152035994644442327133910069328429057313280243706386655320793269597659976035837086148290937973504655792990980819405817004995297567388817683617006309967986393124410115316639304212992647357726397999876898586833180917019865776539086224243866434447880037185063402882851494927176269295207574733472669225764030111213920311323789445657204721981366715470055155771368651977237604771324053100173751737340627074776184714643686401637856020554481390213553546264427345170662882819762522036403641136839344927119515902143916593410432105752916589861565281154649772008575711278296418029794990894630094457072014493799333162475561078461631848127490563309908604506749540246324287324228292201988866681600270951390609506215247130767299596428623616308883552261367264071783789788520779928051547029925662892964644911720272335120358431515105887280210607425036286017417802416731334579995122081777132000204247289846907894870384245053157072740600881990252475834985582035893102837863748976981027019051041785106791797059738944160277105622544197243693304100105467266686815950441367925864955597338182655505213396889193459141848966365989570702834624390968448637570566908529975844447639213589441239676851423988744211202756723483846987002911441445874132840296746985210084018512775102829211970444366274923491887048903266570699990830329276479360637959492425309988248737043234615954350088707071367690054520609426418591799434640802313530595271047966076714146520379226516754022505913839116426157051419214161964816369189669450768517562740244744412662059274180822988727036546796313215414240022366304914373211385247398413379985135102056442816890683738501164722500616194085253696013708682864462345614049832436411719726827083348428356240103219532026838989394125256110642413606620990820985208799275326138723809649322305939721676559493453031793725659106158653697644934644253592769536610305201536330556520195358540741029608742487271413856160855185483368701299943695555229656607569133787252773767608097890327385853942276446260617320368848980168661758022223182258055715466783352207993036426273367690798967784334771400263748301438781166191775340035898403626819504628036464648619277657504750717910568669957196222956703549281017458332134348968130921048899284940884212957442274328546848866955329715154098053409109351757258643855120466879925115412375851676219792052780010552629844409858328187914635943866175397800683034694982919285080763806874189674847565873743104706431917055049201359107383687929986312195484319302123847915751278604395199724439709170543931424038508717801989855546466524856403231661290147124396366169609827178413118296876821929485912140713026748442666050173083866864242969224854408743098392118358239991913053430125628800443277130486326983787341590662938195241412525948683431552398434726044333131379927075959700270949783452990224366542116030538774896773434230064173698978003168987933911741892551580909443534274688068266224847818281130336745544645172920349720823075265505561073008805791364269200332961971472597201076030631553597819334133349229513426876472525579565584089339084897779062551282313900377814264685247873596348262271021802033739785159605432466186937424444386952496186531107132158268016751706422419076071878327593182347610704863999036076617328818687147800777469036508587297442461850566397561737886823245760159281219815417293991756587987393501674988472131788992637782725857509263095951296163799744960701292843593161412143123244430444435935874854357052418628924198263559926789410040123021554410390054974743023736945500227906378392452000742029857636115291921811938192531996919528310198309186557756564489444360721133552705100059287915946060046342441060396696326009362452366962179336860557316618705631443019532532597932013424474574430374685192884067287600708167683496042251995037479031910835733309006797155104839191003119195482248630148159602373303844570811086727953634297165095205995058632518478699148248476547284564018158297860599475152174793428584597672531992499906599605833542260902803019780532434552782279515365912426679970120211496470055136154561189394110483699835797816029194502847624122324382907372776863574170853138146731954992410851810046538353615456457357109883075737586377581268530440150158862802333467155305240541195009331951543941363072348539367750455959114684483688591138943299085411328294314411112726640093210657293815225655203677931261112070976039935278453131953027665961714356100210429158386757119864142435385602149223889008675450987139238282523283398474799508357380579169179463199426761996563191860489522578720998713685288461627288310287393182195584994023573407780324830609551394471163698962178085771173624754021088550210989698936977282368861663119377008341179094180173046730586422223842461948834640927017120428558702604884723163544904214977656593395447013140391118032838019331562292142992105735883598252333494260103666175224695067289412343815421045983146957445116686517837861068933074649259630420715167445028670841666204150474167241219320945950741602776890561399311123784876365118181954135773598780967204199358149952262874927769441462276798595476301439246373982234222438993572420028812693720991317434385121118035538458971032534864295088805566492298172395051467923789631662529181535357992003846001245842747942113008992843953750528242437262090718180156911881725571453613631607729021121949995492915521867833356824666308311001362931499058528621132643039607234537694829107209660027247209843312439458060367120982777514903451182320203146304871719440978373636811939172840447045381699101427353360521771764058852754733398600804611174719923744210992311464562169948306919548285582936679802757931622013103805109025757847040555629241869722857104500767741739156104997855730830705878581073910380259361258895308248144731384587250175601850981079355250570063304691898295919392795866283839724519130940443038411182646297157864649853063012395773512942247596900441860788737701607199108411760714456773304545273730540223467988696737852886207113828512950257511690953394618468777407271095556623240147802267752049732009964129677088199068824864038268773332649232033798802634985357574138490288188809824748635922599127862190816618955509070305346715407963493646665635761093466013808200036588983243519390522263227504665548700318914530513831234837807379557783403104076411712176532694343789404797226856819793368962237806205273461620168549500022660017521969621253748522151366731558724237550050621985982587343514788235016465459030472225108844557755039200578285498989183779292572169055840777017890212607510790969954777905345493426890567188792839870936971847141660063322415109983235571639527733867956558982820396210208922630392927568609978786093838214974576038168862592812115826631853226847139298189296211106217827306782460861955853653182713014357342398321003230445613561706837818636951365270883102192003088347027429407928264872403942276766792170601179643266431071346034068378993633574798866644478302936440087959046950755125425076966697456834368743323048258009269485940274128219171583218997832647064060392647303442188189620699136260904522544174899986463486437129946931960328238202695973717557276969193487115820668083267534173932718770690687779256303213903002657322867737330699400089846291843925896591635627809999820712491273611510789583439989264401826428648486062735183332952298753598064798053586098442388731683675674744177860440290416931792596878469888053067492859508717889366652657949515245565922115851579994365160778397270156121392568298344474253197173601459610309078358078976814506140787565180633946815119839603200885334977994897292530108639294295644904353614100097850886031411697844108760094315411541760433266550592155623739938658553715046330301840755987768056159999884652499904465850431943050231540191141340346337903838126416084357963849405635170372991609096782019886887769762552975676407033266726703134148161243733723827343862353714186848323704623701659733946781957387264105903214721072901630915512585289144520606345956760717887036451883670938393574831614518324104076788071173267467909995028117279496280268675060288918804883506578721950904343430446398379380486223959027650029014236740690147999143072805792104340449712462395151836782275306149053900412353285062786770662691599968881223201966168574070916244141431270198163650890841449383563041145363291056287305138036644591133413028827444123067472007229257245068484193802525907774373860959237183070901439690466541449216659478368396104766128631301628113773837206197347549165223822191729090336193508154377318770204450694479545143746698802654469729075201617626830627315543653403407210019557750612758205099044521206021106160311133854953359970687953149411413868781862869418568221550641081351099737804207612654526896001070326637199545077809199850892678041266347810732247563251113437946575972108888270009083182963193507007509273321803568786701187905547358978434933708636745002552759254420028539109384719358630656891293558562586125989677456889785495175880245835520121689080007144598853669375300202831538948315175741325057778319748111766059841707975947695959222400369380582771467723898518786038293204080888130404842827976998004164876566738998550643488790951741735779608473490679664177469320286928860232405733237255733523091670628471389382408975402979910058599043243414724319178186875556207898384257749957948593441561741202821571972994460121944820728002426243768811408849552831611255855869031893174648370819475501322955069942608431273010228959766285965351144559348414089317222741274769561752592227932270025890570465648018509658768707857739076484412159524003054218456087141453978063865267904943977004577405104650011925693013594117707314227931425572962408585874569240114224662603210480718948773443586091928997690444686514468391271478736208056941049196558327882843897592422700273135635934571692009463500578770525878941719528039732730777253278959298933374894893151607308479586976779627875784724483758432923178710666764407855008818684067014453996771501045100079078226925764203068226846531212971340784146241132852013477577451620320613053259675706552369124194915143879607301988098241711438767292587990268357770129542187879283729792921688223425781660892105065228995467977892156734271923621303507155015831976379173251260102403513521433647176634128896625171536392748757307049111136511914727273406120860671856596939720450426442974017962112925784370536914165201726215828265386469604205852446017808794722724540063380435105019554109140515601991583693070468608553469715188808487635033090200378432822470312111037374152742579513766628645881913785302590789475390229763412744924200290139616094624655102097318610511676798914681524905909680629779184543344272190600745872691430687469381736194536740597657023054640145221316178337651663589923363173435620982446491891955904379122362069232534579145840847724532713605278351548709748309703267321631639669850225574241383375156746092581840938068420202140004754073725332476603816526872627213979023913354871635291176211149663346534505661457573273409310424466413681696430576352151181680877973783843051070594023886362060521267524820234642405189963313986303928156874411182696901455751133922412641779201507576487447563413198288717910247806133174359639034412515339411651516238795910957412580139210276036450436864313064741410482423993787599624951608025199061949693304327382945652978512758700906208505878638105036997882790000357764933405508776342054102751580571784027406770983848219051023240857046334780847051684838088525728525020764320462163119033733567794097919567174075420829280912340032719015824269198183191027239834615502551915614530040257455950780414121269162554549979084474087659762606783688792438037733345210473044992818454680173040475321156700489348498549249012255969821842911261050261289039855966947743036855260418141807422644361937640899115858068426833462169585445736869550580577581306038833668366944919544761387811227234600254851656070002546030042241399070340180646327101996386573174853906446672330490782180134090576954601634941075970545600193615043368186469400287461580762528502215546485607280776747743513183668273171136263725034902214391565025792548251660162487163242711707901577327060987739253999854508040307775078071743711187075055958084491374701585144540908194921941510692230843862126981054431023541898847457159268775298333561720624461845527284109528678481501016448289555451178505116880247502552746959546406310980675617281055881321427865090583160142246110741091821547612658386998902957317644662062825281962485850331317240458289081765585397270241910742110450406519562763423229504918560007334756537836588713910423033926348246477955488496105559298820329152827370023364379227921156777064911408049476875582174922226536356808602938631820336795292999516232000607623994983643819974135491439597767662250454270400247724046375731449182981105687798207415564291508904705141578524541849594868641850366557511952645902547980243917639374737422507874471959828142897471416965244795041414712985129566741175295109552946725215972857490270907114167733591018136201043420046012008393990206965970894947510415068513801366060573530623582163414960311743798957923287616866401070570676306112232940390789818927936343196674545583305612900214249568822866688710528370948991009746511269012314798921697405039286054263585452661487283875452301421163722722840833789529481810688401017586079106339768945806197174468576194193704089075001062167850933903697372978409084298094756064031116432749465133795499409678413780659672526530648889680723647710914905252750397011290758309463340508408720046794855510845544770609682209668824877264264182084150833342008859672297792164061126453214107507952630163511726753872484462369054820468520870294161620319143264545257345808241019538651871575421783102642361841159532998531457066649574086436101202456981406111151272411780309461177698861176440436315232006736256006199083796480381104730155830557148771281369465946657545504522675057095936338308178174929456471781960838762892666391905280673825485668486392918545678675796599512977747504514721611981314692867201411988152272321537814372627160300053903930791580254677157254957391504171344363023621209670960924821500541848153212607063078825074116498109254778904509981411583087588548977364015791456256585934835510476912944319054647514215141267456939830174839696609955772316463986933616267300276422297109352791400939122907309024870824969951250385493262155371858448556449011579440702478927737530153252429858230760077815089683251352319845188406498932144743270865411640170731242190590537746197652204814979088980257841799551831383156187739364737009266835873009411199263938280557437719108367475785780472209853054661409991210139345818883673783627479490947851163365869050761938091243821818087700974540979958980295536949786737000637705054552248877450819156290114170798993401671328929357884646534866051573261721993526994443315431388140570519998841231663752839885574541292632752508205495491786311658742326594705057221313430083260223108409137499539274233525102706332475934640985522105133044742264189971308193070288756830826762958603158143942040855148681661537390420028210280419608786224303773131254271390264377805418710459139662911842477392557169864658977342298636837212048562029807483302349801978529811198180523076788887266847673024790783451882557316958827493187027593414717293745084172192708078750530717014441869331445256091808689486277410705706968340119837574520564140905594588596137396137396879546103260408393665233537378377241918483229805820100690277672788522912084278856495124946861502444104738832080536612489247719297766289551652372583285977667693560747434082712511894168402370299465949510329109606143630451504248952506317409932461847171436763046162345101958907001831417884282685403975282924097596766939974848394357869540175291360313038152009812082814014835444812311512616614366393378155837338074786133809263518918094187293824395613171933397049691591763159713653963323756577905031764642687078371308242236905660435190981944099539667877041075171685399084507647286455475986646115389505138814096044381659565306087629502666782988239235734810825607327550044375299118652273093630679174380586787050082006105096297876564874248922092302449603144876858911878999114578760106194927439280908237925556401242152351588474869863305425096635884183278233844467699548851604497081490811073242618229298529775726621935639372596842427357444519126775203856473524414969143380346804954820320015520050833839962042950761842968636363071429486266047558360424033857709374637264543410477604594267738644268684284353802845603189827442919317380969249265943911514585371433319476825645160231355561098594863410316375498370488963231173764678853555375511017660361296820647078418084156183355772264600385237367821315482031782488730071871748803265194077141314244782055895697786995927780597026961219742111500498770081242810206777524556300217266598143608325361467836003638731369527126116801050381898362534177043804384825865271701131107047552778995403176762381290745462683666729009937248528187996563131418006369029540987997000234355211046574033024914821500626676686942384341124344551010547399036297385766271547070445944875218548603926713101819182956613270348999584222474719662332912143596353850642143928107472683843409621934189954761989051660375626819369751947064785580711530318159668330993832721120231992379190565929603124612408903503893465746976842247386267834729925952927588154310697068375581605002175250341240087125121780883107267519697613267118790746404329743109455059915337245382283200848841360386463637863254872323803220162884789849159442688736740940700172184271294133547698837580421572944462048376402393898254729526408403061454406418447119386158275447385309307605786447836576014069170527875687339336042418179265675173213667054997214413347325585720304375962291458040806186160300535707400391172364962485930661291370600453041134167829286773816483658874919958141834196631167225796786106694423596989047159223200611418590540935840349032672745832790512100732327458729236769825170799052186806596359315931100451949766723625947931206377715598932304620609279431758179723563285134750029197682380200265609453658795457723912460797553153677016644017012905782427070534782281900014597346431147944296532632869481123532344299062068045692148899472958558517216694001712359653746451110807363817197620570110641420027960333764818947549566072762667585980540822409819412724614778865036936344003155944168723490051064733670390173177744453156768412253225854471583979739248300445748579356357166831721430404115206754295906915280227614459290258540698637145743548656926147479449653941105838170822019690141346253720048593182941098048620739464649990232648581142715655678461718215712546950384865658749194802476877924654719957584471680588157678802401020162297393109511479129844750703354119048661680255140839476578242895326754546243402610638668925935767464148371965907325554447092438399284549661311535649419213768122053392710497348132561416405426975388061765919166004873403821477523186183260319789018257575360107197066415804993076619941078056461989834890492680266914449657611374391643267405192477946487912900103665366778741333886341762478018370254921870728231960785617432990999420107201727286977269825853958389158601508729682959695884564692441488250700687957963779543287926324394922795276037000656297226451585468542088251399137986112174203878969897046751287324291772042801453824387009865259890087257922674875115707592148877928976696999682000562917580636958066374442798054642536572462031196932587534811833008935113459135013425860346996847477842314391776507828230725544261521259721945300911216629299894651207381340268494776492975339359785208525258784907315098663420453176316415516031630356950071296200999621586488345698455790798845989670348740521936227726431469625712069428006884805708531233574481910303769692089118698407097355519910856165451781722077922013969477753333081168563835047178589719540302443875003073008950076360999273609354560826444812835388017809332321798351742248609015300530210639982186119912507947404759997321493918210477691903555350374476088063250720490562710455665095732307736025269954159505454735352891848646972213217748026455200317996410527756173639218043003162337890811848831415491962876961024164796903481859280848197018772201103626621071150251105425441411151320404653568106438069382807930302987489452896769608616558180732177000160777869132413019122829814485694212635098903201966783170083068741591450359163534639566567121108435822623918785864931930309376572103731446057871322140369387935177660705423990959247685721304600228023037164913100055396826910555343920026266395645208655668307373287896481976037817703516668730689997195137043700175675600182782355082566730982822949439508898070105055096509915333626197576310264408411179721412882436773127329345020966745391565195514976684188902036729566044061067243584108361210654118946918013325427956031561762536190537920671074594384960329701312386890739088102475203933430863252776238860931503934393983996625796107976301336447859000008420163794576265550926191364001750799094589186364194477422907397994337124960854400074823262217838636248613245134679650815040245861199818746441658050201808489842860962888180610419807431211830668126481854028882568835120869976900823556256368225153316563274695968945400016850901638034228227808236600195831561929359813386930420913988454616185584001176470337170113142435054538774909349036043391564817144329877961569704775608816879915891776052666677837889748088836591334448692884267121672582918862283826823091874305026406827108058623428138407089464143111351588593767274695061001869277805129728715568439512513208936590861386575932614752071598333763151913969666098494414791327722345174195191042455046249256984349551782250645648786350994114627176604679059120928507166465799868764485479368139456568928287183503652684614995389683390803594382282812148778815314606754231628026339993375149119648496814143375142328256311424881973545063348910185862680558583663585810336649742491788764094428809522923521108714260116739589575447497494247004996126755565350553926201990842265420169826073653018388082675817282352687294175484290499338485110092929897466697822883473894864152226564107385384698469742888454831137681587109924173909428804229831499220604586667111236892189889244826535886784190648774027510354448452210770210595180316132509454884195464420324636247197496753649005628287477231002360980383774628029444080114939741008757849063949148765059129133592415237194075707593819107743208888251672427276512286161095436401765238501544420835512162358716278858839171264522870015779740819642383898733407353742932540691511714575790825037807369266382023513741478242803635410777620745184000951709689512029669057177798692509259840905176056093901377339385908471789671276046174863606856487441293108353603925505423026316605673921014920649468877833373586420666849996398071361242686504861662829009303596344014882215716522004252687552584855789173003255951154687908544335436998728759238111906536468469176803489761448878934900998443507579151099108827822735205609382575666198424645893857955861578401097283963244386219776711624169558130684689025955041069060696318445181090210677048462219816793723204181520782748491975692348640282823689367248427775073635139010616040562058475448125238325213391912339016711732253948738683412060752407457055267123250834977945994594754417205029641939194681769721423065538886144836388867977474316658370284252734488019123434114855703211717883052016464583517803201728193837429588994839817067909152481668827159277967125318150754962038356605545042388176416634458255418958443657226861342838946280482457230317426619197466939459813219730384762822321122703195175089876121888362331311920459028088314787504397725256294221397731760933222260988611289366710826637161762267360464563450383738387762320047649507126811403095198766477586675215793886508174774001877751497841525626792413716887311356760637635157861521733818790729914579369787259906769865005902922402236211646833745891370706833497298857656525104771986331670547937382137270624110533545182155801346417165473512006234614048889120062117322093440367549845250080783843106777913788340487888163914697614302672888099882652457623370901129057405592569312234809941881684702430388711000309089444974663722815973090619069590743149535665660895443147918968943885406638127897704560621332581462918974862721440049417564553398148517940033714085586049822191850389902711264781212290045835553163243192996343830014960436711584249711115939503714028359843175990880384658144093168603463926630175962959872781979545168302004438115981284311506886529484819601595259762622078368782765840773582324264973629567941386812510442723595088249306702297891256210967290608516933137775556993415235096035618194026144910711885291491624089954819962499961323752699820768651678349525953084368768780858892362621330254638793041092337997507710647166129418396701421350984263348525398157722473646605930690579623351163520298057620036149867782798386564373977169894345403160106830104399246116963536488133645309494958452500205534712962727869147396699201698208850585877739617544310273029063282244482781713021231315918252502842074726486364493994466373969196944039567420060190522466951305422756966083172015494024262998384587844301092415631942169313115881096806902072022875229538673072503341675886745764577773139519465009899450184891317628499580211508483622017675184725447441103302830187619434718556762872171995468178312440482720187107700729620590142416368820030789101181501756803999043869810413941709777862076577083340766661379130410975349850008065544862695405367297001207188300792262966193829595875573395132238027724625715479803910333141724236160136188207603023725681092965895524364851256062467078947855434520768449882716534957273892949959292323762086495561027811990030392303556059660579041946891633593975009399117940834979113836101346239280094180987793909583398601559657533885244187159973119285979223720895237586545794390728730101069771828184165977494526075398340477340412432987853327697292659126157954857294604335241632648598235817361358233338172300598739456315097256226056121484329307212477400795916149354081556792021679703956333973611835082260197838154995020532922318741936585730073646415583474287674153227799571939794260767650745222306051514898910408807123892696543394010863826648731873703860343199956660387971746578731244608552438643254873129509351416552314779231088602024502548980669930089994577813596553055309057317765460805435132151651243623717732346634034314223405589867013099362920106531184984238255599799642604514829397534082028727335631345513732396848353526709411555889322196110208476226082640073682476543894233383256534775905845464615565375420380942214606198102671555393376078030783854827596465716523219154028299243138957107714954397824831916991325857407247855434769230501091366947943783667718958054274395217657478074133241152870553786908292139765766997456728251176679044783321083756412073995103059405785991734738729824130351284964239288834908840311382084002379805190124074574077523330747315922084356767113422446895676812122460420718413085220573338787437813859600715946194553751987204265488099069840213361990668493113868269216167278202950422511050146018372815016054599963239055839752305150272783300658018366551930587232509559504129396826674142976664901599858914275145294888471367090059906021984851412523591129117882408498619459624602145563826032148221316615961296571392013298291960172772859605186256658734633373312307081858496503648908536773188523629773937304977693014277032236836456079708584458056881966165886403757399904597474612832166650007130142721878218593954776293701923406175091546537770315009621092689510061215297361763825486131469958298012439319862403356691717415293916217731049298861463555752790332147777657590549871729877216800713092043671148924636633652001418745070722520703877541870163158818461865885024695309185813272158433164708564642867253629337256397791885720896429916575144947138895188165151346331965720609083941282102457675542903782831270734298103481622656950593097002751468243790089881635435943779261472585992192116710462596131931204923833076836813581000717095715215758481579906878135050403702896952291478225896291104426795230295920841018720836122579264693232101483379461974143542290308405130870793393717448093920109249487611032608170747032923370839489162432540215294464705399594206415476293755891901012519918268010822125809429490549014361975575325346586772026918756102098334508122952494422795501857505664081361346882325715214011913463807123014967070212001073348157939901226073181241343541667430158779792636265221144398697894996779395018086080627911719454783188380231721214580673357077246541073960800631319650921423698824935006062990878868306555594385024133713394476171766711384678096181548887292637343933225513866729860559550661773524813095396055045192332931043759639640069429284931196582853509730408526350468135223611378313918261410262940317498247385487309392883082375811533568972534955477491460618402910149615130843418535766355165110125032668392707864331557014031574343478906029566353094220055449706829449363225532457087297933743102800484416641509048046996003577531968997190981810934825766477370210768289420892388550975473652964494750484241033188961672669218597694495151913293543745322085468595573809144661660857527142564857281491097430108328233518646700035071119039816447424668996646797915975256269665530409292778960627008547311550695968110866370747365400471237780031489847965027849382387378367079278604314505233829022677119483110619252555038368939204441850976943182262684870992602987360336389192962742799963550374107628941558965927741807651424779313708815716246248987328085777240278744077466984290091210470824457329593087206785148542853286466555512066172001156534318871259673970590342474047242595067377556343416910340817135459952476163895621690639070904076138628251547370185628131073562736518411729818437584279119476833612921806211015452941511874387763965229853340111228485457684249631393441983787365320947146506422342082761215605989184375809042695446013456468915411255530498844515709267772743970161141080874667128558450638539309843680876281726565713104234105292236518000025845786645172276166428382550100584151446653186010535206532916578088149900310574273504099952556596450141745110322616502054315387509488695786950500554997576536686187564322632346188830911835413594446616160056310127374500938800994183040340553052283062424572846864637005657954060035955437382786911611170768185788950311080514240543807675279421636302394873202919708455968043535896776988198370996086628425745577272809253354480220458054368783232374479447781380457187429020733501107490408183555593234861516363843466975904917009191332696227845697597864675217160700446424253344598712066553894738204032414220485708360210841871144888565272117568335922393578953419807310365728907652855090511409752326773855541262996211099717957893646725503068482482202587507244475312588760597848847301331449777169420221439783148929694288351996548731366762142685333801588017724095321053963160568102792375408965899709838140700016470809911180891001709784470573967938949629316055905546956161807728695397958759486059430762504870753876767156855722250332834314990216929253263589817887946315781182606464468664112624110447038987841123074902027847303921467329795958007212045672833253433122743890883783333313447093730268919996316050230626649122502008577575098947943886237357967838553412171674352835867858127632384967668478552485797516994537164355948840572098268851798855875669558957660295096932474760300227048158391893922841920348033091714992095909104180174108193582824499278362779486233524628182186357786394151509664641228831230891589874375752432682851127136684186181569507113239688329661792030129371646566001110020474788050712418994875016480774770836868894785999932308631598411569908416353058173552720002374424903985755843231939845377949929458111079697508914582440442313842765051042918228468116359514553234901751974401855017738722066058396301916120639280203993668142414571087650041525348450154866223612746950870275621409259282430913403309408971147115637552636570989222896495455948909284595231324320227397931725154406288438175387027042857431741590531285341013226708902820671532022811349847625380602495264488371691052590161992992382007022924083150785509486886119885955517832365629154957141267405269242630558619024549630651233897912702197479064357457194810641758120571445276818803077579568439674096318719017801400784084832232618969031231473269640985507204632412126042695295190410637743382376996975179062344894418867987835158026634561730054334038490417957003216580685010303183493392529095862406583248920265342555669040291644451256490445993535940947690457381507997130821387317811666364139342246003741024871685146669226605208125391895158470628357024848133265120447420606589734322011268621472947370140409835719614817452870977263774466084663986901081724698072853581702653511818449593638127956584881729542752755102645059649005426024348046841031491097614199238449620312805318070580900020042468872607627105954448940064653300553551772337465575850611753491811383418858507221831116562158049789433977092781383890170735279294514613644112980621257925881357552476520103390110616851991837518420719022386353223377033740405183180768894013515460716619175021525740086026200719100204335283559962531969576149553480825432460093498113504445138429241615504591031284389869059340148715360015467670180535096095249940235308931760623596730683296755800749242925316866935419969650006305165869285881208489808972964637728851094083441335058480779789015493130394030150855318680100217256892670018075059516676991861745504636116552804394875857384214355823018780445915771764788303366158049310128064425858180061211343434568242492257126289644575239316784669920616318683629349817828002872493490535420079911224210208273440032932613718423675908828230374728722748156554160505884911974831847757443041963863094888106477047769405339488034165390072395466975872835628471976364612248513801294600791422619830335156564708312288315602045975238831087491272036125938104669741157762914329949875758673647129504997039387765548998198267249687316204371217885832032632668147009835699052254895572491729407077697501403620345400099625543352192149052073745048209734005285955194217943567677515222451037934250927074149577536017222784529695627167021969020762902218010489809846978441548625668672919500478767085033709016240434303637806196849986131812096069496455564384732158816198978051541877387095831592012151135763699058832884780815061873631317831208012900263967268639418804474190563673719017363842767152981019989299001375161049684155260946574650100478814837253769437510207216152524417576518131361522587019138433640194552391034209796183743154789122023548427394208690523365312819093591102263918656566409220072844646924087718478207766537219148321727846714704326527591426865538802329687957637747739856592848155349377852871962233846158369515812003172595318488550305585272105290628626591311079135974143420777507500195200648259121550545919268684604470829386255894177487375995549055978087914475869083243073581035684196579280441044950306525332645095349446924343153452860743405147760127130351994254876070134362672416268060970975537351856087006475667335797446881984417971044972724550668945723935631596886288403425165106068594089415944974125374100896929496190972260859344381983751224127531343733691703032937610936398980120806354003733024285583439718934227474745063640710094637855652306585123948862109496726347533760610377321852481087655613640405455210363978862683728197063596035334991461383324747629466473534567294783409503640185163791830349378541703610119916082162592076198759030097358208279373629177940665486889486522572793787669597526476008957414312367535239940338767730746976798346299617674140185374529709294438531760321025768853975203197336077084502564634640879267114115847038924488642292632276928239781305771874851746891617878737121041239987178867734847220941460141642096668510758973507219259256999870899863571943867274647030178986532148301804413529332607719295050983638537107679632859872947316801827007947060249880639443646258252438037530782993556247994496688424719965599859765828401782435905198659078645038357774429162489790764270932630815150306516463781689372866149724070857925992620056644318405457900490339571517326472706965493984780779793694113624538347203456551865426972039014128603337194689408739380712567344937435006559781269957861674154785018427983874554307615601454640158509303197115522167575432697648585139258762173426521407061907955550775001057231651539295634525157607583921240968237011666692107599708897880615973364337944703906232583892911503065038732616049884080487133826098328737691942286029504749059601716024348249200292933301836138191640618339060603315478498476545455895837432827698016793397980182626256864442613697523118608702397134951113359799216806081724614253154952148192215427946698315251084269380560732424684935055603009168813894998596438214879621210416110019504265610270504952917630034210468876016577619556382050441618519530753352738831588762148360495852319670073582060174941251189079003913917972822146957878206291275235261058016131484822043860600981677024084224703627864736938322640238249584657128278888243937079702803232299908175619585849595546107192830831498612695599253355670682378555680828401755465308864080594785794717684684876184712369122321129617113337359557733077213933943607322181042801615368525005950554057044676578152164315290159870558492310961168323376679010156957400060425501329159500816168818341747204280429273239913491102983494927450212441498321715264896238907321212687450470421950726284572990124842258016167524210676618380141988890451811554906437349781726161453210331490706927424955128882325427232204777381086325477568570011224238143908225821478070355010549558777281025341445687373038982145148991389112207662468001842281913094454868930130109602051766945786724531422523238968256146479333820227441084104963270670791130089131319353157837537854399746549857601056686090506831198533775926500196937823752778695888067510320491620619445006248795240424014048228787697472560572763892984676819170071337660452720709691862948775527125640348346278902619071362227328440608630302068184857528339094644875095811493499490552366623087559945619797605414388216959891789528742694226294685796719729775489142312761398218051061109710174346752171764602771799496307094044125986763636128978728376878564570253726454551330804151166063512933552747483679243203395616316298979443340562362431283606963072119766935440933716364939373016774847113031864722742072762010557159990381428269526626258355723509942856555061589301707120343971255796906167479483969254414832880834058816965462740178994158361311345565905691537819255678998610088858735163050029769649940470511891872651640778306131035741801812595569950460830880378412457127193950770927086184833861656862596207392378764702729172468503984785145884683316703201867154362211189440689174591946380304175513103192551378648009955305286988457132252628081136427665777876865933390391000529485865029448867182521348133661415560159316141832110988705650318476139965526575172985767913859539646948153387232388795966955939707391835635060888075094811079010930829065692735299876553082027169516669938673571943758519696402478581464530866533610665018241414948748877264528600375974746015906637077799913356574555678063379644645848618903736329482093519383385732386976640221324826356498826169287951838042576129984200999578243112759144078670418374463357049675350674192935521453981549630426300915920782803305209632354925433691948134924919435169297594726688559812893076530332850725677748952463152812360936390684358385901762417377480203126422909140263989311759004885939563773604988872454162028531519317651629362169254000560213300558274190861077031870928708271059213922413646791711380851216758797255386101695678532115021548664005898055054867094088422762799402584712280035556076111627754264336852111347155492068099644096747231580820032766320717884688420675688702672096077605074605009236997018064852007970217361483865713139734323410341913644821459630280671791379361919550972464042734691630377677710652513948054572155938763352132355904630247583980391370069192151950030047726328101390463526870245630105779353533214381773082104909609512097400632396368790966748389491299295348493730337385766900523697200530136116143574546111779358027727025209690790844298068381611520541137070392502704304009087678639790745195624243852258032085211993818191477143268618544546856834192862683476250102367800109645399850998172776918958791575855384097368993520112739392086826522255703037497493436109123141945716585698787390197808144828412459464531991415229129090083872703607767531858308889456906800108384242893757656257957601858440725915230645649302521350326808830804754706225516930777656553879563957715843576455657714109535047549685011680462611325114609105257762636089377289972910530659578930127304761639026087413335328186287023106475723524467233914200578713956184156438524854538335522755264932577156133120597690275163321219205045249199515989460863437503033975126109241133500037028558409059685844683408891017624580392692927747889399364570384245639746756140381457913299334263849781406653664454690505252146172852120135276540548035396842119843833545408595104872746390058765519957481575592897468214261602868750244463961604347839944149873382574260256024768870870655446042504370974903908051719584660628499489833823401301486929637603431342049541298249517970342499914406294983703837019214854565869195596007043038642749811872559866002277504365644123709987269737762046360736857122523516464937714977138597953262663442361225107176481545600290519240182157905902935071357537263597493551965701955458484883196774404687968301736235086504677015335461090956327470766982319969010868222549523791039560639475437617749663515861642862793734107664857621579352155898450592354922416869733998674227472852219215253867889897474839806387704602594858282735565534172257543988281131374393629650073825514989923636265245885183629751384786928399531897163779048835266199675375063306133022723366267318663023890000819310769479746508353655847378920929149681490637134865754255514101402935778167024943995610064205293208885469007575272022341799998805499865402875200199155787808363936776208181530681609111563224955651848767437713039438572023940702653712357672025289709575585399019660517158089568424917580421550080657698575030234449490664378687496382356085077925013808365558941345185195941655861148647257663386304889429025085230809086034697119765448444295908123360381292047136393513300135899543171973479618447673861063751937474062132513955132578261400045124005011222739626229834645406676164259679693165252869035815186211028358328173786634666972827987597434380997925489723831911877102401621540129957397173648330749704880500201954623715666345956146280332001005965535864888768675234025506728965746037039923492354444649382399293440649501786675871608638164687030899044299775192489105257754596636814516499837269307940199714531568277319062572266289312978680407240995301263625636051138331450844820013859396540187493278315074471482915954633142971792869166302916810561448727943532157708390578275779221900630389692022893570717609260828895509362781776509473219446960477988980838524019118900017994602428779401756049397625379982904331827390190973192784855835881736291646199408266412894024323341602167371576538578371026399833661513947659873464573994355190749424703690794454399506144408575675418541011389865380397563952039231938361932133823330045995865793049255135856233130089165804413424253762000486280252878074800672757982996868731591809146837989422560222985423099164274293528924407351842518875435885862752160799804777398204453439676893121281246800371161459599246278343007303096324939663597786644277844961963616888958240757016114437801198961137885107697184197975849874263361159560669140526677986973002657660751236948533572066197426611496877182636045018861453935005415815343610394885812019577504348889285729922660774085190668319704868978159386793720219951346401762730071793005696938219539849414008907459110445634629652985035567175657190020943926813819146521351312817427206963585683962695866232078524161143992876675404875475589964514155924190488267651051388974152864079875174154185906442087877767576122405013661021779539441227682383206417284631601644541366440970037547527808688140041198389901561813347670835888809575690854137621070613868447106414936107654139606083445718281005473185474287366201588894008634236854829156064958086936772665554942473736443041717867464560317191730624468397201692356539705325579323588974919817743111064258747566177769544171500587966052053858634970546352920518723350346221796323089827599771066522004177963003715792037337960826391853580291721138297643813395041249205851614002973365374835353061576961268184415907849211449003653470822258573289924907657786779918282511017885060295662799460702648604680870347627677948032749505414506247229989709840083026566173429185504870473874232021353575467548925266630273662030687551737774307730996607186623310134202695966983954772661201749399970692417533662008062532606940272657569780816888732583903257751182215094675696489486053242960972092206439612593634901932462124728387406950499459332221945088630262752143526656551868056675585181670133193123161365115970228898515993149986892980981000997472478860891288152555644599422738921648098158189962176925388231878342970081933366332330736054847410410121762152020346471366479467213177798392215357731178368237176286398071309073641175808049613664590345529251199613873717370539254791587998740857434401578115635972447467981034147851097807510703704585814314158816539697373864007527145894649671863822160350326207504487693256041549103483386039945037606301282131178349658464961952540537126886963120054464327224820096983319095528831648564619955515580291111055295798483476420811958711480016242872529623370605766824957954448027780950205020771805586667565048245076318554083048936025969448831109224639411785413205464672606257010279786472485697906290778119142630023236529889192215439555295018519340864867833243601470807489781253881430726167227998286097826230166508996103375553585668838413926352746344679315488239119470853276820853498683878310282080641238624821670285986162520469203166853492471970432070538296086762372948578923026842175803930304875699240907448894472753897895579150990392989924696713665669217842932637497067349095241929828193063080998946109028857154100803918275655990999949514260849835801380719658905982010051425444653931796437148675398130887006502265196649569525218984657543262191014283700138754053704811730573850450748701320477980761499165264037565306614023912587454971798805090892047164724800381563622842083714564438937144440979477579634394057469544537883935684749306865848656508117993156570538829286516289419870484714349323872787006291316874134923380729077460559115575340935736895055677712589037599819424702161713875294583575549301024005526245975837918464048590809857781477982718948876229464740765227261090690045116366848297204590672449953194865970162413480807995405358923989907866898014511121035606515298148411963524781494196353225046155601831549158908316017974037140514738412295774416611023204499309828110132659437256766665973941408518262446202586122718682896864820431666080739861300689195828259611802816111521891204285156674636420030977822315147669612706511531130723826773557548395069861954904145614952926864535899610911372817735588354971833181684130247061264061575653651615087457252806596046820217245090407705493040865507938215908216453451595814278296505556096351214087249877776238567695613358589817207899441041664559593561909656102943583577122154542674693172938532235724503990589846990539225388925551608783165737202969027620446580019112704416129867323812857159777868714973730061600317218717693199824570917074529752138688766227994075154918622901476013977135293249561287802216536932826937832321139654168869419624924984495790454383396197827173108651771453174431123316860206265386898400629189052629770340857629071086254988424513673476427624414654411717676191026435509674250494509727101845969380105558747552087904137423705759777879642012150184198498314462568066004569628731373944857637633703665840716305045004278899943542757121299419646780194344152402171281064298831130900541670821315683892173327119881591742318796422025839622327895297273588671066260944061165717081596893103217588155193632600471440989340492284720204464925872902652655613060808964191695184613196380567631133932890836236227721800850386844886220128533974532917402855437676701987695994983730699494250140255541740558920196289263547435159465610696311529015712971172090899896178409476835436805002540580286553058218459179984779460571292383568902104863135601950935455793605202045807574277424924370345891122118425863362363151685692357848156166166267678927403040035223417154533875900837678678514636046306582544867379529180838822572709586299147564626579148719924875723991100030212285664754422819578499920032366381996559470703105898733585240797477336259262623628595157594503478143089065643143117586026712409111715044597339513167691871016480159334339766925415493209347978891220331901077687322383599347152721103617952196709667474609837809755950702119777958035027028936826870177920405887848718558469241985962494472918479133460592411979982584141867522425385750586424426155635689081635645865479360697728795124410906520633605255189580016080554654248837127545785601554602068265382163833428727361144785328579689856619631890863783147960510308547639543611942935574376620769582051775775018196978555583370624402677381068609666784250481634667149931832849444567844315265657154615667191261468418254027119196287489083136571178399249292483277566553036957532878187616373514080293457833741473800962898618955112897484472477911663116523313653949191967419697120852249780187428469108505616942274008970886709465572054737930521256154367254302628327342320434813477749346276351486043848113472170913505763961671841075967223318763726594268506868922486335828486733717751292333583802439721942719459006155174360273681775950438943064251345069216308309153779244080039098204144942093924540175578803519297610518483314829406034068814386335626754572248116345657961990905072769244543963719193660794818054010801234340569866607257495786853972000429571151435177172630733318286612471313942123182460184861157695134426613146426117466849197256504160042994132254969859649179172964485353092240506737118636472388179395296218314942485392629686977263397424137808579927300907555101480741145856881071686877288938094705848152515143585287447253684857497199248585541605418432248317922985592831014139957837842039188922088906131893143619155933481526311949388676869130586429751410307345547379904629946453346864376971363001492714759049454472617063104624169479086430453096254809030878021149509430326806376526729377788996785705970189626063588563284347267735987507376935307157446412246507391358646659271207679917017222787527973016501994195938608869467164797762107683694979744866633793549107158177121577880276223136154966857550904869108309678792943939045438116884720008868255083402790210269291028920655294680608887524099214828012262010312416578845881659371189396725955391669947269961942100567970474411855738734920435040337663889699767945070426470284787875785536365585456597023003843384441285637982006680874047706637479018802846219369072578436695651957625989459974914355932376112905728633710140002633738482182602681817735045370186713844208534539537858442707863241891661197089401695716993245464491035041665020924354028829432507825730015134122209732076131075277824448072061372417827378708682745187636101960662982250782832385774258550559223051205426808234873781520813208905272569733387322314154228224900950435689788745979125363800534707001249655401921883086722903812215172370693497602929574387010391254866183145157358754319984726511623628384451312538592306637046979255505054949917284167034994901102558194360948492009005340458059389999277673117946099303876338948944686292118762655816865336247237234499029252616511108188131352752785560661798138585289592162061881097834775029099384167755546037208525997348596176324882020549485748292298560131165565808143385655681334827665629868288348379069560522654985029054054852593547957536978674040812159825246473311468192286040147787865996562658230701047608496765818060989779734264216337807478546099013571931285994522682615522989229203855125762413045648196351109770945966210869565161692253793788008018215615262807726378608193989850700697630555924717038732830183304309929771154693694987785221670296800295848403310710006218890269794925170181018369505171543086024071743799142464363075902768326150488149456217630707194368408271757725562977952687929918464419763260484130992882291508502627792568474394053434441599208396074280092898068653782181114246384528555631371879327148252732993340844244970138017867305540697718420870521274705836919678555072755942469342428345074214099353232629751794560340363255183357369827115082625618293244586768946035502246275923723120704174789213715225959359578191280784122230635925341996966609018354120595011447254731920206891090546531016232997218606043790625331810745947113799781572898618428641884852262551817410423262358456166491316627854353780710953537097008862461780966362047877796792638946361276884270006416392258663353936109555105362162652877026058064549124558536571211135755990465994735295923608836614823176408757711390608970226218043455689604792778202391602796827666134928174308339336365415426795201679043753560511847861879786478257763114060452776101080775345595538223405043943975806157881353602968772478610426563573033528572460109424936524193817844580148403283026863194084007069281239870806820673244894882638087673360816168017607311679971304946260466301640196448308858284954662884083380885735515694746608315457179346013502225064924832738461208885768361143061462416149153465437667974836041653218859935832331697901380702331368736495923248665292820336000576635903762070461614690403675234230102599124037829686162520637341879695990161254888749642195310053108650327299339194182968617887745331233755476615074634851138373240126099999170717854769947728393406756247959035176093398802415534478608433277220394566846958411043284864639916219421792743997678540566746610756279078535145853028042606120032279608463941459483244592293565913615664396723400532094133825402194958404066009969030679390409330685510575541811079861807501477977599516119021220880252973914392506640711551132892559806412651696999385201784078696022826752228947667333225197011392715355687660681440730360720201011558215160574364982317709266446356869419585869668955226845432200042100101267509299947669672684586619293778545539302264652010764470279220961743820312749492874816861131456924885662377085991077394916922740743765825659378756659859650276443233112411354361984838066456516064221750544403193731898815640376529238538707153230191080327663031809266773461690715878809408184368689694761903998485284932172851732014824733296088791357702315664061369705898157605250920150627880429779016977092125360429678502127867714148539987326870966008331372590759959704603809555848637909631738476747369170967353475404655618150594685855486965303656050940717585550891857305235415823144178761783534954373929506321305768806517957318587751823178107303494709885769894336223258373778569060115109734426755086241565640486564143092173623437251764912633038154158942167678596487003907226173406832768121712868049980650653943246890648670763631839477617916118752588593870247056455368260198783876320464578881501946901520529465348137632111747279142325567276384643330183153995773320755969618069847077876488027513479297088935030485462135386859184011533339391660904818129221730232736883808326525636360585938072790316711009687076691973314950445170002270244860440299420969894427945177040493419183652041823007978969004823215704493043686154072773705074247593710627213606921032582707378909390584063347311462540100228987541662870238904535459527464360607940941137430972733783837849647439354636338696072298620509114547661002421926521980596974912884457411061913373515262701825345791659486849432051136591724704665458247836112044111457818406860930868015836708669984243782676102854598398399858320497856598553268727012927101415993043766707758363296248179314662862155750708695076895602401562864363858601575730068351382054573813565120642827229838851679353827539020215107051716372410395191181937027523774864519670421760794765281130530896690816821225847422669931434404368033267309520391803001311642475985164181333185220336080468878390005771521543160662096607887359189195247114711653784320542520948283834651272963994471157393415727767934490629108714177441235949952595096150230346731928943607275355119309485176717408125527150614209194525046748518420552566822365155759831378149117691147676753381271423297925142767555243184306813404141289367681678492820994180066910788099221312953313139463070469681434255595576531692507050486768843858542195350217810400674311452950470559843011580823300174067926835338170153545290916065478015670107499646735041753998246484669843918196966364619988053892435615304151270947954044177583176040479995528653320844141927523838854722052825858352686238605129960465561291986801106248470004825624906818361826460235660887104393979469473026825510525473852992938963164624413006250299489464672679060059528506887988452353195401855193676370022542358403955911694365216171684614783030091381786430419944252030182870120509281572421623761459943181621733006114602139448075791815996906041095282135549763180407892773986531544223678511249749636650165035309403764444701539191111309767367694838244854488008037185932162014655182303500196755408200494237748178480298557203616911705079644857764115144347866516278198238422209532438314819868575866582811068208110819880032366474247357406723574800464327482406123976433921395248530941515056740101396532163760684010610433985125377864809033793113693533090161309698562703755190108076867564250930766578283342186238461201467554427438643536260682303362516804147808516567139256452086429839930201531416001466574678980300611333154289856083707390360353239398700749068527884849667645669460808072675350158620247576408543375310129344085117912629498299444671654757829818976379329098226837500190160369802430249028509520447150842605924782207966227798074787253555768158843155822672155284412593745368314373966595199354562899955528002456252932362071340363884172580547062908200217703012058773002909592455959457235776912125779923824688950661397169054362830993435828606144668938385884991141633439956999993414026723378109149393200322465486355925300687789395118798292147004405169082749676729178389148552794247717245343202281916094010073688857665744934368498545839819615601311968150933457489061950754716442581394929351899964150044150733630297916107823355289342314261109531864477701949169127907735161468371042036027959797665400386036373786503189394080609887997975646731759019550103870904531913289608397257188835811697087135060452647317047007957898045005142466045208377570099143972553836958086529500170814927256071107450129023395602390591128064499487893610954405004505208583586999574040457617365002431040697191837268854980648143768911979064340634094880653908277297437967730821652648973989589918529461339646740293623774770200362919249454455370115397716219216148267409819370813361735627498001690158214613947939556946646804749428412827215297094390988200957391454331512913807303589905188718795200534365315082980074112895186021416259029036133723307545494141978338257108209500607147171559749030009271057590399772990343877980614475424191811471209024795357514950508195597599422635288781920982228830167900875781239713729086621719222604851174225116349015212973240233953677853844263667514309029201445697457111238831463332686513619410999108328359969990781826248217945367445030870219139792887442007994570948691202557799307451857570664703939216825812136862849889252005132057426173480633291256308974071669919071583139314153485091473309605696759390941737353655407882523294242217904315437325066963114530312547059869484676594721074366925822342861928867534984490484939399492633963843707036460894482283689960970803273192553475477861581004957185181223734367684351866417638414059031900542368643394173800568787821351083304533432908576103002665692765376352708730078136336663450041460227143719592432981265882938509515879997125948455838844289311179141764229074692786583245223186436130169868945860772730971125288170965798190316344283046045034602382288354590336552158668550103507401502655822232044904770770148382057022916310227254492612077949117579831515862349496258763035405190134496797039889213820916605435835027376281122436119108383517611505789427369414890287175065710165959744295403304384695687026323959548954741775618780282019619483924485556642767162382122933338865345955663849825815486092414574429156475626806577961872170606696376816324693923873580223520459103722263201244592523580926496578572357871739208340284651948466392576139573777539785488519604934486307086234121963691678795485534081519540732020402858116322061840640843452221915568528421174919686698802011077689640541781846640330341316006237909875270426871457115803989327202444140223521771858360975054232643208012513164313000124524956926019419808629357726410677608607311862879793033004217327430365947667688991891776659123781168172350083869266159455302843044501722600977052237270583184067101948833853599425139877274490002857644879821615945131799704975460110503079911896848261778907269404048880982787732560890331195035841720281489668294174581665700801384638206370856901599019578683175084567774227006270013938816048188565084139851435186185519667051971564229982769033148223893927756554644112869813095284995385168740044723622123661803193288272882477802922374750107951069195755515785616295066133627111333417169838567034796048941821941110869519071143955431549017870220112121879322727349825772417202117373852534879384611074863865357763215611927445229852069742020067584109998156610426494329665859386678719269372082963316522801472091950760558847856286984911210061619340613016898928297107609641251327739860445584311338641494070885667240914979299072634199975994489100767111984891037876978535988681979970929604300524055382688916762344188299480632743628999949591730446990703379538569797349639748052728071715593356039422276010581052230692272670047746518822776536478084037545545081830451878885895398589338126127811212445745929927201931125265132637441230810689528288811352369896599793038179839420981720285921121198802477473474405170677481243315120125646052648434447752032772786535861286554328880613616545366055508356733153857924507072298960518037781855287146731946069423185701300896188921394790426289550510262575355463426685701465665472103608095175450889524879288444357872646486771298388774499089393842056185177550736627318701883466687825718536223434710692399237637294281906647197743833689256124789048240057830055088448910221364898648467753076046032821815763601597057530686780716403726387998406858293226043896609247542867128559875276561345190553395593352206932336383251878441844709445902615088625229792257423503052040705713190265238030485020590650862818437552009448064446770266802403077165841350
|