11187638024920019276340308531076476025100214852948859506572091740023135154934858983079649278919458945431867060445684393788602973960612127571226382915070834631213653036250661985374840622046723496554998362710270616099863273437384660952445276371602550608777347328744730677005276327343792449802393111013733779489956988590855332416477931229037365834270707409659682912236720614886315391391506723347825152475747137235955933479693341059244180255204010785564290661221793164071988392144770954712082445555879807256156404842327280708691887347978602749426327401017527218454253219606880290779998601867770625714637014017287841558712021087853523973951066442821269390606087739676761198623705513461879844010899548370791110517125654345585269192802975334730708917520548765579327444093335775672423151180220211476440211030431735516297467407556447085208260095998407242594194095249750192490224398191541785925319127274479523673407011428825865289781972502098764706390525544856274116925843117147096923274584003177293224853516667866116644820132540193226781395962099773373103557805109838310994905795991667434833243417369598690262373154058535832507529862731850474379208293895749917692697292379990551757333721113997408908064978708606839623722751579567117742784579182118207585917941880339940011738449359782386050376719631310393214235287404839521472215917846856609623456722807595403141431523890527012085116892158724091870664312288726219215865404047516192332365861981889398716619509267698456664981014497796456450201885098971940161503968208852644455388016788628936480560140907682564006357103735005388373272231674884994698763398952537098170804245310461614241570714801680559055260569163536848633666037735442417074907355010873310337882875661885150274046688668456397824592113691606732416313967735486733735782424524770253439234885340304490485552412472203007761659043288006437360581609149690923761509231045035684110322168445824482990729195838767579422708543850516997430892052818681091942835140091990329815447220249362558537221569327295432488990588049141179851716998089667690034902127292327802443060366046250681974607215601442665679218592352103012372497808722869176524693112058326934961095819492412809519883512192996085372796258219612550779071218704179809599457035410500620044344853235550025867684872677490386369658990571199813878304094912321186550993065438034253700907243397494225161755854821313600309426850523868148774172489427326500801145355068555217475725971282571206678962332777694264642303003815181021738017879140399742992053445011336085942539815525691759698107834517939671771576247822406553268042639845190799124664207752104575592565548224601110084793073319914510338830869965342198847894660615939533166722633714590201213495980007768656905034342580663632736442297759506489791989492090077178609471945516042778586976216545448349138331660629812270936488028009825638227963920825559704244688733321978573366858308300201038749842985475858093066767390866697049331756536430171441138473107580099515375122053998906876443489792394180917608085099688281979856707896275720300566288017477517648183518847397908733296011946783738007325793820235825370209880438827285845718257873895407138713576879512174765303603114086735768949040528202621544154749645185000465464409125840634324080139790752779609557671092559051335490322037453229932659409482670841089180308020908621615236517631633648077246599619603592819756556343137844141467823495552894183070217983894569740237227542967539891646873929758416528201070990121475549700281503897003223939685569522285179991983977099151231404763202336892365911447987458067869850963364905261541932324059333519908287907042063350291461594390464991611298639111060617599126169924692188580802294023471964741337771263607318375336127746626645712431361630674439845311843392320895208784778570522406668836723767871817994700448817666823048525017086898387997684692135597941518808981333411670343695993301999756139205447863539543180063235767019559890242491605296497896831747473721875380533723085796763406279320225981881522301499261714983712258331719235317666542905954792602033887070477053541761819758193430948825221517830287353211699519896969805092550698923034454430507276560133903592922357648536163017071209466792508147032396864131607310195756169742626882385538440641626946797591245448441021101362164253657752758648214424380131509202003854094720236994485228025634089518811989424173053303075039702441975148983780370287471207213745656340369614501124182379892458538597404408064855886685958727440664603024552014227775603273014987329789074843033326561197005378430370620815518997781046430663738810404242920558971064066753709527172862142851799786431744264500776558064901739903377790979779072204021599148324678536961072962099653346499543459328037009289769572155061078207777150746558248923549953749572278136841115898716663002941463653227577515402478262610437243188301008644889290595478326103027631655570773608205381418677357426669105903825499367925873809245818488093586901248774348418018070841135309214129053581382150945414001237396515265756413854903039850767636000277447946744837988233783353588807439737214106660255153855737246912336901394212744061569634904799660472510735554052434495195864533607734717020288081640068166138669881773665903204538469675444546842144903709755376402793739048881056737641992223818793922346970284482746784858946738564219347383649915100981500326604125258247066244266672355399156521996244358426265953040617313239178664720632882759851913940597618139962532498769899361912496768848159856495631420971998148755460467599798501692704320544419829237466002720941153323600512763329664172691293312454438556997602408099882743312718323657001800450433228772593969818055392136232648192840606540994908693413230987283755359915104218814536767447711598839786972416971242725346617104304892073123414207946459038806929827387240025124008547363711976978549597583583980342805497233767629024982193895646146779625589633533687904555956181078983437907656161528695745056543975484223688473438682206791146351187194811520764260215740501126815787191656922963195897796426084595329869194721724469248013499135876093607547901977463620005471484118634321735655433809173670666870636978035673266121272767789154051573159130420594046857631541464869357383686510895091071590480839060367175712890128221448230320391305511843314191625401786514499300622371847918091108673250400982449883189289845228301304119306292378886001791918748155752393355406507922937538131525811088531802291044074552439574009920296541019000838650407644183231642310585960976684223605686753937759553072990399446337714172922013219393547323862006704235873620269728521057844959303415743672576403691170452110374679317744594526383489579194747615118781052490960240560986332070314283550526922252254151949064326814783005555438047209374783189641261217183903513815108648037381334515426229622844916542963118276024786511958996487923018326721248332113738885511552121685777128840227033581009366920291528502056006602185463796109284761768626372889603953180442732451983232401430303646832261249236113889662346314546615999399400494319857901750332002388867301891762969714576234532283138780210572865213264261348081056401243243847298376359332377842152668073706310355267479793070778278098338056950852769504988905067277248430071950905250445682302803568681251612872103783302349142174390543072204503476781876926454874829307477149978920584761962588329902806172876920531736037555884467859713742551574278121037698892681230070222091638135978016335496654276626430803485035742840010877427846144724410626221158578694910267249304904847508647301748816598963808068732655489163880258155033950133709255910210256261150077186933565309231738188441316595340592815605932685189908523600187964918658880568006789647206902832000474084335026501563161136825298340743661858074878175500296499200798907400106088418120861585743496410555720383039784233317763198406604703275344751298529083292246467102366415197231326897485188006530398726276711863161594627786608750862620561806428591667676391970448082361753977123324832936453243335837223104656399498187363012271095500109646442138286104794619474979802305163829741462423391186877465735327277636158435006296188703447838578605230468928052972736313505365789909415252349711065299623952203555569007216269399715576010968435819795218649907327756212978954307850599552715834181123155069339729115157883226289356107982536854086077159491565712050609002337440936730146645228048337121976949376709388320201106702498412593734768198958539164926184148120065784400667423719994978127853464555688698279094792332139574518530387643127846900001746412065326488138702655971794670459041148056508877297014924170394850427657316576123212188694159526976547497273119478764618007609251732026468410493303981816067696099955707692042530415259375776550489262177205553209499494435811788909461536989283756134777989878829707751937804828278083577757883055208178409352992271971260803020801368045327014294908512722639864459347774558856823098301641828664016474877467903917773908036179404785664624105534865223609235816285338454645643216387604264155868337612563590205441552678893007919941383186251584331580753153095195250614221523004557390447743252118059657921651394472618144515693602811340939549760469724549114685155140373442285623390792526891925496449093036742680189592960341827381098408614311931362018992382115692376936627149497677627507419285241718515546754654020458012504999660852913478360693543867809793567535744209088113200008651070691382690672565045948924306463887839584417664653626065711402199783218489406275606887356913248256396819090340604530716670771518845095543288018540765214966762405604030619347564473108396518210662738974843955091893563656664203114713950432671010919412972705544310436149064978959127372859971543667041223707141573150301923054759511676196145575641417010675815941059279499685119999717130027209846497951328196888990135318708775159700193735544734112447128962674727225247507664839940818662345848947609732317514395745334409845549319552837156285752713748513413256502055104981087835669501583905280948463182255787288163295886620272368631371291515239733146546320284636539219855819381886960967118380573432753667045219309768773542176419898923283818697229422423054661605591075293778315432190891278116018445226075474309164819944876047710540005637972045243085247487799597426883008441593337491097453916164285178184421532603325326433544632292205816028391954293306537428159234787411135415382799615494570763619183560551409907820216821034714396222771316945517620401955931444728153478426962008242979644061213468841218516510294788707826164261215928623573079953543334858192066245476486477971396093609177066106491809724025943854787780542522357602674625625455369904116386758066039421999840241009843665968364710046912990870824809285185078702479041361419279560114204796227996365882148196787892748589400638772500919974237401201603111335702957600184082546301973278979451277546199363052472401881622642807047043654638745691900722965701910155990642132512887026083960761417565131969899131419945564972251518848286802823524189510695344568907007185498189806576178034056203103938709436059277334935452262948537973619842275898800548257133085868575654326246058166060250337965243659614237956570104749642469259169175453047238514152936128671839778077551498868100628710550344558944652795780491035651765358749453740270921929987877938971340100629293511754974326566076360962712007153283759554675344577758513322038878235802855400639499568975268501628373205797496629137807027536677707388638341843283242359835315319469534083626698645000769085951099683400658698714703315579325705588909453562269317512158634743735114183210508551691969577188152926508074130881459006782325050307770872843092461147852700531093088824194393912992637916737766110558327848287319148244078935517818691117664607435622242522934641635660858636762197368350535843253606629900286540839363051516494183001711314467527040682048020361925235822867979578163472957874546335143919460379288246949707572120097433133828255564310849108453415149038238503503543348638964386876226909489018376473370182934088437361815919495066131260698571598408341535180722389322062847323025593362884091984351050630578203809093729426897734487284613999563148971513203511688996762264869617455106481164557289510336034759158884850930018178933911521109071753961092729477477615702486330578887655620337621936126443536822282901318956581637843483884372825743393172727736162849186693726025350083073169233834576890879849808691922556024136753359812050769514312108790460868450132358376755530045329905772103145744698901003748807596280461183782853751000576507021010394833089810636913716914093902176578662307036990009957942972694361965996888759105143845152226594447912862265546319747722826974972512387499953045638939990093366493692579463569367573736156047434717175389680121547916447518572665474480177551606797640096274503807748087865604210517677913135804261952690427665838813152168644248127114151775574343917480447094094107065255468209051525771643010807723349856331435507326895287246664026955448172918965708331980914404567959692322189202660428142091628267751161508180286518145865679372146702707766587213002624533594810026693321722432483914167835357525612650477623314284576351106602956787672879111148264940223280930699086838346325607403599006151267002832550668334941547060173863593982703974329691900642142147624432185174393267431523748168570888435878725849906291039422289878338770062465668669861099765214233654560122627607946281307192172582587265976259848771754131872306964265323177571278601927138442603357149903124980456515934241528876901885280137360835536343350522008437942254947017851289878541951110290827707949688949267272998153006773178228762466035575787162381361485376598453040856785483876786146436742490014530577183093618176988804534780697489955994840483890398367567159619764080113645133359440642619167744878662576198477382039860945613105172512539468443974969743889592861188635623858486512280275801037441851710633980032515929859072144744388150767551157108778179631451822603907084462804539358078253040734857933651377376159411725320913651404339081459483287302435437191124259007197509292547600279191889155368853162382747857656048407009750044402892247262504887445790223262079441849970108283721476069047262836199931789479470622554209488213846920171518995439344642939259147721982487397995532830887724240195555599021055359316812237809709335271089908613359118201464863304634209687125585645502507069844273484993502847042040366490076442404753602231044697029553303508435956007135803365802945932733124732122214294904091305827261303441218631915661696666039124129493818581028974214282328502879063458293201045254740359647823915670370918873576059519260583107983387299110146245356636919435266473118468498750313065264877578914816329606794891477220065444117876011811876087010781556166898236225885140470704178571995376068726917926031640415830704456737757654395671585302673293400081580394929617495032423193250482316440769238287715994101631970759227282698713979246035049883782807687466493889548163993903671306077940982023996226807436233722951153845037966962071764706470661969596511913413117461240252254518984585303669277740090199535436381418210907479951724377628204558468379874889977900716478329477631616372400507223656739727212642940665405150997840704658320700101854225308889977122539956758593195602450302347756473666784475393813886994990288116459038409840831144874674912005244440263702304095659709835370833272950720595557071270153976123955687467641131466807536425770550175647083138180314519039446840442796753276201594904695368473199007212646673728363895295972703863571125307735230646389999593353968635242662770980694845575827597428568356479576987001142539866426530500845098358628290063547921937880150655464056355122563044498620128924147669083801592804066191477473617933066282746916654894604609853959581462967995729035041408604859887968999468201928610134681030528762055885607894591411397791428333122950130880083167580701508375101269885519222832737271496743626838848739816478643554561290209439018990349855167682618943159061134193970802691562076153082801827933482097847874499287248074083993641733956231266297137261216164252325263944678257618242027055532967374801472647422346668147639101741661069929947895343414132155126481444329186047584423626496642972979028115933528024934776868387061106292484276926055563559015568318855516567280505684148436328674646934781527342680550019156246092975280295988269182184891728930530717371853259488053365335478643294378699173976584435506116427201395992897226966996546601617858161484703696859215312125787711360499904464200133470438964520420754603366769278374450145441581798786874477758986900456703820323465067412636915947015153705364383525975041618114988418270412533094201504103568172023386608978526275933737583774014326459369491876586538181454678689668845957478677725253779648545301271317902020505318575319599406919519160387440438977716875036741549752708604516211534690105941379550608911892133444443779960474845724903293547848111162895342927835192580788730326430767279581299820055381793415219759343557700653711025075973506942097143362269743552894972967025066897708399569682646252391798170903664187628248197887725286125326315314077604748178238782273413264382418048889205284692164675048613727071967531492980964659255698895049043038615249981181965077085163806414893263838926542076480889803438705658942774373660697724111362839971134007553827286010201837097393631334092352578152766478527777497614466452997690664099670238642291456951024254538100471396412539687700304363025661956072213923219654789716045040402004881474766291931133801852981710977259357669257934020376229854950994733267281039477568679767203323378578101693127263298849435131226806248571198466479475254982515473357805451130623615101156382493705552849253147800325246762945847146836811131026628230133380988740585590438230046792156484787473665454413675200496745344884501718106064216759836221626983523621243518256433949512144614373900254104322759971850917280254466573847926134534083944882259364114146147531281025489608154769468572911576190541179842887513585037583999618409044759931571220615890233440527658533269968223512172375752573715550289803318012645823461293925028314235284959879126301959491661668050549015394598331657532698628870840552015647131998976767830921631778130447025292070910880994668822435551579397483430162714743791249882898676209491099377008435710986354622248896604829080618996481618454791860306808689231929079783891174563495642873043125985614288397764031381916195095279340385716113779435194949473016375841234598997634577080329820787338527666982398030389458067219908582138094939340571989611987435575559848152986510028416934611206444793847144487461481045005278425817030234471777263856543743961934696135072510565584420490452267109406755841998733594324420280226760819204845301309407862534117438955143909984503519185327325975629254541386705092613205230880407970141104066482379736209067015823487115477410570687830383544396167848443858074209390551828131639489371742199806102394811143037084709226829198851992040157959953570942690025164594046245234023294192478105803794430513282013839741792460592719891175208624474956653773836741785929920577963193695431787565915605587020162323914182187257959486776015213784723816695946052904923452055406318358329284620032056248164678827810623892242959121101185475200415489884472716858713384674920460237061808938978422620971574975613238125196828336604292264915921229280615842478649090190978216571673259090806059114508236488297207045278725110570055563455886337578520853944763011649267841641526606262491471954599084208215215713113454973791434210146063524480219125700890369882989883774148636691135735125679465147206260597759191616231721051456753870617538485110348100764987432127986091207148344047291881996520435700010250791184092063570380418795119185386246868935420744308713905998850745454707473876807808996630121508328804159017691844304211589118674701671707083164906329185144796720981326239561958437283964352161578041975872775991936148429393092989953410486958044318696302183701991061532904895686604009304421133518267588610222114061962205351706190340635822563216732133532620736065025429974468748613866599913778150641377647532175465302132368943698704742838678756957666539578609598936974027298843560377110382494726934724828266648306544980149532726192195836519949939523114054603238460468065915562736672606796607902411255999089134071420224476191227371870259871558953322397977220075842591926899714945115330797200950411175742877827143720773530864023628969473853519038888064682076544758341553744853283319226931851174396940850359691458295031841359774577782456581251287036937480579589193424108495979907947593832711281076014494359126668783965309505914089623219497666168201404461524290369769083921150291584854384356697944071199460392300083960128994783995269069542850686999041046464875273955824178961255816115046357545869637134595429188789797201151638605885748548826724877550097596942546699432647266119236487170755649748474515532562191920055434247628477958154256157480131809207199509241779666354026276686635596732861798209504098383111503962839523265208012992379883787094920041913636362514087398459635834247515080190738641365096717660981375208580439987385127109169557015501824133036768708286165517708711964592888124664262492748485677726761574746013052080162123920255207121300792005240386582125261063029478436158697626462045947387122726780916162183461405006901341207274606786440299685988458015330619662194059001449109024838562586743879412078697727832120316081125042557045857019313095473104836512552922585097805052134591601358777955815893554837734877130140128930714515650205156112202979400841548278310826686801296230395260976124923572967977542717524698370430930745508585170005671641349720081780418246981116917793162589546217378546602506997404987904286955271143985983731299800067413159762667865468653341143725631624166815641101943304098266696565585389901622042080260302950104735421373327620505322668492128491610488558144519403969680709244375493799950386599810895132882226447676779962885679232258224614934059513078115292378058834004542136502928777926904804826526446752075965679795097145232458915807949194513616490643492952549032748438268351950357307795916915083229707729910401674790310887120885799567393219048901995390697340335502900685075402529970023993244408646475174649853065844701280840924490228523235907776812001166846686792497183603276327615428751984140289598056736811557579351644771824036071961771481848607295709110049765843209015924900064111643373630665862267541284079222221785774683795349271315250028364364002128917866851369354823545152140253824377262920702358468301970331972511335986108651137286981109469635363438946631446176435356051433687043147574797813796009551898283369344466814576614072303082188282111972995266725585283026165265549529544069450870204886293003927159932077339112478481183121156772296333254403303700918239199841324407452201164076987417729207749879288424798567232768081000025488219282554724195930115510354869130748589224722002862872336086177978359476067184789747103054936082782728766418526887565654954152877009396482944201199515730244497047068674358975602435731648698349843252972311669187461005009192899922735418218413289983320842809501783545036761991970037424739396055082630384950827617414510934217786604615127808118088178053053946421398781821290741709250876261689588311304603413622545997546308314388366800442579712789070971796120195663675385132630910293686828748768283762591098610268361777861656849910318672689347155342259499274393344019361074574516783043362167459981602421070529726566118660150585753695730196490434541127921196194082257008424246280657186643080790454392654477527090563601238527851175991061057016277727116877127296593900877782618460808972820418508840782849112127852681146583285615499667794143424120002496807752500350397796962124554560117059005528688402203826160704651825892857699837274934276038759422345502274913099256708885511267085687237665213101772664308348086275219315898536739482504602719364629397944688978837570339860648893291333339219568178076147443071534528587736390860567562354740496101948295510441861404773220144162432826952062608307987977473594644979465023559147156806527384652127021715062561596128859802741354039745153118591897408370614317208403991292366495471708902702477085128044994665206518439637939220312645985684405143627313707502165812620681761482074156904318878560938362123410054546325784296623041342993867566557863222828936855419955798085666680237008287731646707222978543296675055653115363143430485560016307787055750621073499446470230218987343792162021933397786962381994003254086618566588842294050547571288611807174065453189415224652553026441538283008100497472031576756288038122748652540100075933310432796769824792206390414007451648712986657229944768141922629257621946098013820245104100587571875660484204891541282531300015966380195116575306722162821817393780459882598508536663913599221795691796890597065580186488379421851834463393353064666524993235241075732612743311064619329375894113391784124330626730152480476393791961167373126528185886213592330436526189751206422479611801534242557085670667640961004942338139970437565486184263870614216511417884360310194038783151289865210466059581651301572479979902870563286279272120057605645882052944394236849633709171285360580415794008054611001269645259358274188558365639999918969653484102123205257031119137600147513270388963617430337768907137338841396925110169130790262559168906898352744179595217225561144575436332987897953563018529930277513968997542350939003586821813765444624987994753197055197262566436764569949125451523945871170598704931733676659667021158390276113620832850791651010372046618571487905775297987821773210469052221590218974459546385897740378346847743573712879834775444667440221702543495428538870901657959754004147206926440312984695380276057461496774550650400698618273805745016090613444345055295279028420293885871477570532886544994834702430220195205502107543938738257117066478883233555194967544297867259441151904800587726436248112607548322436397081971147740729621755799089957316744494223401378414196340955270300512662845616946961661629679983371343871365127142586785040813780555529704207264800329003625688043080622840709382522582699175602913989179734503626527022203660765018873457244548474276816191547769776438844138952207678503267575926205629648318779051188958359375246385929420620034063637821694985064707681093126068453990324584948484856458138237248983548627018734399214389121325313712297442755506937203415352152862395490157324140756804701234145703151178538116363016960521019195976877490243545344337319970917673735224950794039088919736335736619772020619844151900779297381854652539242411363277003233457984372801190040608691465632042483642303911923171213105292004510506430575628922334686451487066702557538318934793355789870466576281483476255214099906548355412941174572022411197090538498690592787876136680125291596526430058025759373733049426323712997028367307136095936893820739301324995026405946241752951249885719531128116742919629424277070729534752149101909466375136153500950579100982415472829020544323155665099324255700761233501695597519567215705864333777704434988094738795502669401959067575852775109805050054181475554529108274612135027698698037535555910446733338891454558855358161505610854252954330609670268655659163901605802786650913311345901161601778003847233600298543354121226908127966967081882209675849122765176001548009086020514978899886600432972819247525412785034214044668297070078908023275614997962447315349983000732918094913584305632097049293075627192515897070184010836208177778620045198085722349714757049679193129943118793540981093809381831037058995952772757480904838440520589984432246376262195853510937321133503842123055985353965655102640371618061348355696213887060447019849022680444669359380325323315410302340190868666615136214540709991456881212097614196668819360026355120877058507649513544479470616026189405957276709725218152669824505024250350908023763119566995523035924795071174700905766059617575728005303213887373239978751520075430861988114783347015406010739016604449953145185155633860122107336112119454317221966239561949733452645822984372166054774829493521570573768422220552758169522933304517362391203363718191829005197913835865450250376710122944800306352850068117124223928054841407186006459241956351229901484998399440573836730673657079622729373869383678867365838253885099361689854258146283706395562216552999675634449283463911212722745267004447897421972198447161712964633889877085771266533611676205529335943315546146863404395509966498944388995602762252978917001535038698898597633080018164404848439578149281289432354626660540294073146568512986105823942424494056916592874771396894898073346176077011090477285594143769962650016982325407250679434014089231073278588697140906716399653642748244029349023999878278672282364063617045119416915860005030950136772526605444969619832569127074113379256028810668558843171374348332974532154272613362709109145843253268452132162478906121438791280971633427438141095160009220449906859736827033330258715758153576198182553487904095384680490896652980529104666127728382065383805221731678455624433267105423260910092264314642746582829812679051165434264703782394472645967328139349131511448506115872935317651897048821160046930990571798346000734534739174205974970441074561889914576207554026099358725413881741622397366220862980975190296269421192705004385722770244521510533502490377051533066213576282830533420038817870927092813166805362094875107874064624074023689271805965513963348206091723340369251494104092275960138172137393564191338146762723054719849407854731333765468254853821368258530999668331537562901044912250564567710329886755937891272921751441924633497988452296911029630941504071030341047777869923543191025319940291056755108377345207585971998274460579063274786609388359852935876534187281530045269891863384724088941391609141127894572670239600312134550029079180497132835506920666737584230014182484009271122871786702636774450893531976836404668851730156070456277995856301763163654711449063094629813595489859859396574516856276832690632289286984391688510518676075870585074087577227597693880329775423093302650867664287015112542313294252933512541396338673136423205635345237014605601709266535497514066493662159733625728847132305543177130477807675574637875676310599719615958155474337119516459948087160108806114568759303743828065233519278955203578095250311062967681012571292755122516489871248410604902521644301580266309555618154231063070655086398449074423843035217556094473865304241237107390126253906357417551053275613090906155788502482285807674411016341395641060997638306780066628657545419225527555033691563669461350909757842006446785645686652316406969947473982838321907624558113726754802339426328314063481992340575377380904886534872916161106174902277899563855189498393434952588031782839165655180230217179019085194669364527253424979812269607074476688417641836339074374606060630911448852965494210287674979252915054871238565638300622109344963537149133954989466030860626581761635017306747552534446130596401530104092129559457185281162319296309585720503675127299805475963487366099095024545434699961391109661730238013087659343047355843612911318503039502015500263803521230068719247409167948811610258120383570365971783105562681237693816537263456665025654658845749441478024855024052173983963278374408508417363107578237953391942484226186478703969074046950097481316736478461499008473653191156385583597742820930661628340732367649194017496454007784921762554790943903567797009057160133585902421489599498733759758960832657376098051775611635362171226934194143753069646465142233559780304605357018732664702277673975050402971500482852428998679524701188510196885249774386834022432587941258291075299634691822697910051448976384121802883169934609387826893131289880694852861690957121524259364222196377247792683205481930994078995612760276000574273956745548269977973471881497931634281030562123675617217749942135985633466227794170105430263366801714068107059280969980472147125443930831486828505286902463369220979710512888913684716779108379706783426774018806274320064000020162997208737362553639859618269126820975427219898039071604637939467284883697341215451755380774452900484153877683975170787917460117454395547929512829098704001222488247056255129612652360915256119781315474582188168802832911522707052187037756238775706998962561097307582560275909192872373156399527905119331121349586482778819791620232259397757936712168799259952496841466488605314631798867207580017741355127095004181907319934276733963302088488052400671044991169783276175333507912445482312165422036095198245710417014575280598082810916755897648439192190703493070367656619793855961224288259508949663203764588735349507424476887235722168552022440110002736263464773299314846777682158197594503308283913489477626758256012702731996202199264271559206634553391511935327691725825715515231892003579374988006947237685467122195139363564427300526919882113616831169744030096276015455730114685246971733050164244569858683339013518841423639254549955026281010365736968706366459650032119918196133713681032071880892853171045162559173722416997076248286297550124632267181253640558927837840831939163736255938851088890868375536158162901059826482327499783456623951329309496961757101602068542349252357211540246805232142197238392537442799737348071313204724963359635570989201215427902745628039181201912118768173974469932031334154000973411762992330717786323516382497416416838466552468712584401307733394001082354525455373750975343104544410169991663864640494406912293342456513729698282386592244466695660363630765651344184577526005074594064357426903166636194145915517755885795197762909470801001397950701345475923586573807697644538995331568645928688371052618638927720445543995022956673505244148443464681956734611165629033529572862255681384825301374611544085149184336478741981029471060504712324404370450559585563620767338407181712066294792641116359231587639973912050292072051358927765135837109322386567439925993690256594068472309340451521629871731523199263532605254052269412592308416015652145109930363829939367771705538535612675711705617632278186137544121699581662877393943237718156999778264791539756515234865531782208734348297950809906336048873044344248878964708886530728571913242760132400113589664640945748324871744787448427385395339323502581077245748773133161529198745454598961540991953740777109348114779723979651159689204769033756880749918511877702825079248373481242248716500263451568366270556609840599442862587022113330033502982000017522953094993808962933935249427726651483341844414468750081894129415444992106354332299639080921065940039582725063459500117828898091553692145489070784158758738280781584336897211596937234549246487475600764653864464942228227338242088607344110921975187803875046334415118578712665135716560459547373253638463277966378050328267979550852756638676947483601156049636728144618259754544319565845925351594518086145983601668776296956901654952826331833450143900223269898780496845238990855106940096567040563605514377785436990234670178742998520919893773034089573476224815762511668017097796622795709212121410377389832204738791383009899028553949004489309242974283093259290623870016532168043743440121610282311157527413756308288906552006599675346424016913506753905262814077530336087197390472091979044531853024601899479360281970188770736281300808191895099437779796916436481292322883299918101884599944219763833531956712982891886188507033198017672051380448828360278455566183442869160726863304727059023507454070509348702938397743082609887317514908596440625236072530251505797071116730355385992999009185566245705018280277575185228754521531170189175494180840881761679941974765089798592793822547008870404704056362269422753402173294844542004437665963988123752406767728368871687677871794449381820835440123000579130919337776745230417662593633581948750908439655414590628186977655250461353195032688708762321109473372724864802601696644631653274092985618074807298441286457761857671154320000380433349506226639441030596947934198282275479618417807261180335073028497826354838954820828569762960094682336772023600340223756954613515374607970628220679800171068223107891075093040405746588924513998852960965209203653054960531911102899493976375947463557369594323757707703866193782139183077775822188005146323863329085663634711918162046071131623647669975144872233008965774308358660148709469198933239070750890326156066304981459550577338611963263972933312944954494140147704820331734684955701435772538860667116201496208757791959459714141392367176717294524956257591070939910512980827724157786966002474995751638861100227009250236809296189599789401704239671030750698374380165348381827038392184054167830115313044656192359214212341260104558494495991615785499631331974323045278072405121250005009678172086599882349049462762689151656435143421430969506956160645503680742503642400451313548758215095415336181572047148900251579149184750708183076997469046875828512322479113626596972745420269302589961312056052793614592448062283305525113483005611922789115107991587558082248979805859189915369905178261142476739262558996905257966013738676555694729060088742766862575045874790466053294426617843281403744172118878629417914671865435153726062376524843792356309741092639732226572037746956565082064608450941791219182041163353318947561023574480243200887994538593542088433668458102666458974200925692147618116506256046895420305311825694597397724712824157356492027940746012106142118565766744500092246345384946533609780415382507970744618568435328959746209648799978593000199718267398878077109209620947994571191753234468351758228661190205069069021731079329424636816763413969772854383428050068197174348817609661106058911492988357415789939692079724160163952282142907683422633900609044660379983281907391146629742825771961231970899738175531776760292652150496937157868310970233431692073809202157210868493489805741277775311043962491174581624551615312721628446313155121587766094709039282965683264789768072083984683077528819441087616015076462473388296686100168928065847753218655283330650536626519629725550162578194423917264056393908160597996966084383719327972953289176142538841374143085807425769931581421733292405396644175107062717550619986289639592756937666633153442234090627031839220378948077243509519675091227543876952421768282459993973750185152863980414133223077156192482639632331437335334866981069101589525563025361651127407105658497449851652841103575870400967987430947786114877146759823688035954901517704410430133703362536933467847973336086768098416132733412749163795972240714338351724003457934687995808254121447604727008829333830202666131980478713511024564305844926373769374726487802046615258929568487107156635645447306650533186483123410341939398697214295034463664191445506102902174933028830409710209878053159798215990544065335402677926505431776928034108383425328033126392562649747074203253087209873475287930526974913850505452811889015060970862899239238729463747324123318563092161822715045422163894101111062361559082919714080492887740972228798516515764519926035679054211566896710117770145099736648932699776673049402042363664664637565487198313856630069810045413297928460048262577785543982757209936268332040109030082053708771991630852667061082316221197915004238171566022399658032947898818483463115794180118648824406666146054196749531778613117442619551400793451249983643287469391943588414536568258980890030671433248786959814369180532046009876416900245919277003004890352527402832922527994104302550800833806099066818419278859294697223216442993054053528875682443953495497352011745118180333010983606175899373006185356795341230076776573927689533958956950648725590840348108443939014670507052323243933695068741386483652974685348698111968717166930701984844998030216069030473459251632434726790491747907065390760318122344549060217535423719264381238236835827869853257665443782287222495693625048940984894921133680312714872883294028066412817060635267143417823653604330555511357739340736512263264889748540287615192674592183077789447733286791749603138341814165495924311392998210524874933469660714987609867910070090795988656960591986335858698890608278515697829577308380357984698013193796239509370940831746379710869664926632213522197829116349041556435903751053665310076711396685180690596765622557865240365680973130171882005367382111587068035555723456454903545172165645329283303797479343074857591722264952630371218924676827265718522191209338173054227219844533974222619104859499440894834016240875187238863667952835147303164197019622762911150420611351464478512494867181716347333673143288984746097142963717506321541587881883471332240526055729870524750665086747462071011292414669145824287611229995459374452166290142693582808156940607909976109066911893316798867427832195203924524039084366704459666499292950018200384844019312419939374832875510652489114210082530178295850359357653865072520661696329361847234064998834530714903817865819173789037730457288846615198762811425909753041742692333683574749910130488486751345602783389787590614539080493525947447073500635200877054934203903794252551226390403244818287744906213128335699719566366503462266172685135271588161757414685719180501119902749792850138938496979114159685036121381044223996208256814289616824875989596320715438550964440727753834760806902984869905830687268381568262332310374970178899799439915248877523368000680936706083655321616468147323849303833167694849050530027566457944998627351995115982586193663568774509858600338940483557601681135834279973549193396579914693522533687156836688873641321400622236805357533651087412857708523240044721203010681679908068432471329521780117538636826840107260477062007569681652080278501030280187831729244942878016493995195664942483376807725747841621258698036980909393847838129308107619325738247427610736460120993385298356080570883701938901158805224388948906270612064898213416138195922780795618203414268043157630373616766643871316816198181258948283540906259719021547367082746644455428969420735669141788691266199880719031947013426313263206829704581990467211623497953699577369162461394656669530679784128166961511245771606664402435833613446935728467428265312183623092715125616024582714805026710218290670020576769452641363287697800018284150359163622585302599264689575148989838653133143621404572913422576720268740811850129448034678229752827714166985190888602946820659519200988649985384037313925021597814347213502565209776180289464514110027962950733012610311220574447907305391234213875714839544428313498839471029291291586939581743494275834867322583294707685098937338903094230890783996910376830344592490630073475160676114536838317581959548411527427063270745943145353776882733088805232422999163119363159925061088077046460212107625632521337660561518280871573077089814898645434088250481283891592171045129773594589092511488535527579139093636112898040639417924380514934392824887470959721993267233449787499079199796786335695815956271891378406470681913043973808297733563629167456897139307893619523446979620518559179576624651066960978713334158998358272901003151762854542738623400095936888681663110110644050231166327930211847002247602876907338006411934494130795121628185700403663720927375076117451400021399740884829532168267660429143001223734323258741847246040550788606877912219828221778685886314186476479503928883918738235425056476798118716849828729031814942026713184011339943036240649287889458192862106075211491785501947965812475996054171438611562129502923360750224930627811529859030358976464887006940920251580795650353409751636869452679713386892261784907115941697941421968264428697256170584288525675417326665116264503300837929793282169654883321113496968783673432691499292918143573749653406564699005413879152880608667039139293940838418935288114883982542985042006818869674659913079546690753752861757062704049651783278725904283713248004904190420916320332055087204239870328002827904730147554110798458330214892431568255642290777371648419984831199958163125540943905921392488427209305490771809526515591539482171202828876577334026230664090665376658824838158860984987155162430783672518035257341389742025847983117338572221191872404947465514582770880341966184672838580184423518735373215668099034183707904858441369916707903162280229589166132406213621001425672547203167103125890151121813713480382074162730652640989493010942423687402208433860932956518887085292397634200898127638784643937740657095552335303332730508514269153816311420425231702200031164957945515227892670628017476166306885460187636445902312030925902000042237697509265887743520062713727229985384817115618111174387388371554921733441229221588574688850352081777215776142121962683034652241130564194485082701141579881695102106730824822463140315053014420399296972164765725169886195366531714293958837015235299674636874692237865051078304738808041083188934143357340343383283971312746234893685072623266101138100254450188000894580105236832996792178514408233982752292618768446086033385453008857006639880059790997426328324806918701527639265816274472402445028399430210226428605946076551544244265614632146395633521117751495903197367174946014255522130165244043223899311658200042753935523267414403137112490427794803501069871338217744458807416172622901618927074310057038884745704241577980419065702767656666981107170412026473279978625342972380222460258146192357462509880739009141044024646205653180577852566802202309881364387574507837567627788335647380657678089871417284931364901011749499150857190440070444828452262696287921914726160800880952124472389173160657456727477996487824903377877379581289460324942395009677837402312178998086732317021946827270852827002501992229535682976888111040758707684332843198702711436683402216167936726193819887770322850672491795041102956562435102577713269566496499214965950970950103305068831583912483442885637677997052283572382350723436503915799288475820092553386947423337403517287675215668442763940998871421864816420517317243659194389892928775309948532705391211481659022322843329338475400428043833646441716132913345393079759028600621581101138737387127635315574665953396466473713426768744688740056059902290819674412101394020085394637063361516682551014237686944601415942298403194752157333777194279142061376968193201584456111515648650873335545076678042130947754451205178759596816059081578288122985301195131916263907093255064737779947403727421727572670264702589650202438470281735030095507558558562837266658050529492425490122997463083568352005003196656732922318460422408406988261895811203423900991436068360003494464586969611499654511838471868860952587753579552626485524618933137084957934410382141102585715588058960816327164209314059992631020349808055519576353785340145795874491803138929184526289597207163359920086688923818736753094418230869891754808945462057333062973882230460788468836782642583466818443792764907100118662739225791248241038927009583128763086424685982816847964928961686682575878838702766484102288489251807188396370912259376498565411406529873716926121735782876180126210902396541762756146300552284234336354549966624115764087038401256097989632981364216408421633088454735484817510820132038621671265708760181081446879131301422422562720002493275461366249984288496101246404424460037207467626634553372682224015433021957696925456426704368898548350672502244828943124556119834452837021719263485624009230176945935833395950456558051775769850203830232160097080726704471819807541561201461943356754817997459397080309662124849535258432968897370047906590623206540685641923148779536561329531857778694537094908623137125302667638539538422937954778715517366311450312675838142200046788651404228596791182055837249693707131391046228636946082840310124576464880712584101617969885305870483094653097264814715483793330956709714207060801749783502597506707305694799152263224483572849314248927354111724436704640996132738944969205731982633602874219288691938446036391411349306348473772236360939963282296441202014793640759303104179296326660432355231494283650263558199664340411156371511777623585103968748256135769761372021394074358186316786150202430191042349371182144662498924559555947160450534022995966847455028293530320837061622582318143320383664283472779420065859735354832711385754613132308310710153620595809666084511194548641610861315833401980929367281776526227154508864556398000979952908049212180782807296366868517400904869160603724458084772343158433532663797567133734926114045388778973373158232716553349541294186856666682325876582625921021659793328907077112564299604738606192937985003532546655736377479957916226897621424154619117780633514391602416316647570867505938064467456917412775619267700253408506660050254401282871474821735475632054624613609126117944810699818884600138048906228491064904272883126529374266914787804870266962398503818255334373725867240111365615276321926501104914734667433081180736369198090707591919997013509182429601784192980153637239010292378207323492050818915738220299048158984173277354042374087842356871513077650631208810923997710392588993827824449229191448945178866337738616825008992582164406330149390266396785204281521183312166088120847552695255887728333496025829545673713984695383759673332175163231896855845709985023998922183446391326539008681874600759424602282153347145862563719681622623074135832984506863361231545776496132435398461370373575063493130238225814304831571353236823643040909308033640047857391436008357545973974947920753887417509894940987029435073390874151753158115795057910149231859580542984211140144576856537820433026998547087003536796013250890660753624583694564569349403054034016992918367253613379915287903129564567053900926282681898516039029243058643841912979517540715663997303600044539793748999406684971791931740833361691387452115809932511194830995327818697368240880200887571926952993135373155531671596079434119807039644802720625084447918883589464031654105645771235848457712433790548400335835359699741860332103374097390730357498041713610794965591865567683114417971661505483040250565871453462306224514659715927958866157246139563587287236637467660657367740163041023329035331556136169421540031698425925168660620925290335722776379770717219524371316718227707180473838828831738259015818155195831947615047692764575486175993518028560257478341573852714235636117066802412527892484992239495304109494381566782772697527969237545370567356953605861732218726920937510128505873810546197708493001654498238580202922330248805873738029382774335276849114101642806152884158164336732379007262503023819107646832290002290514363450903533436637130548701521213035559916185495089022790191898486149460541910274994290544208909679595402803242469724120100338653711785045273366624824835564584954428787682252346054706335502843186389277401472967052128306107233579388465557256327322030415854023998118542605882218981106476978114810376756842268406652040056484640950000512500915047071742609546476026945754997513093954637950243123116433192230527821899256396486781275222216647096591059690127619559672849466984849327809144860091635007000521754516883977259072819987850024556403619085154233199041435040522979154208911971661115774553577695240634454284441064140099382729447325963948153525406657757817069721712598655690079630268477486730840895752155638945812259879572881388255605975428741291977446288597743327135504045478143814361106842555651744045473112415167255998541037294248398881805415333296277982291240121898339010648679928807676092251197898043605893954364854584420273063081165656255991491489628515964960055878797652351588525158252686196262931223098121229218066613390879591212190457286422739559112631132420427976688226073732769618468748031171900480675904882604126261073293979240961630833136583851650632924503005151973466248392963262329279642743451190041931564361380812409229881030292631357793465959582085369508623380942226286397009664122344301034071978518662342702696849938527594015294279023414366297575801796178560851012222777613595361571240817125921681867338483355857488054702314587614364830354111027182350278649348940216857512115754067717309843998365629863759798098839255816642641350182177799298460315918715257390431686223225271488924489686932550502840336444233813230353483834672007272700389136663263021812361602427796808695716400969027155407405580471824329602517168665735887389419135562448475534187512421741387421600024857677009719269546294396787846456712184298196283727625489833835889790105840213645315574721485170457645721624259040697123453675058073640632085119059595748067940937058698946453100977152958419936201782715132392257454069694067496520888098053412808413488629525327748438841465062210016863492684559170682178420736748538815645907804431595404853492157282166443917187941345648017631184212103681685234137427923333683683304071950890816405418749875677125402243455800176290043060044767059653258440900413468344828093819233737474989138125638336020961490164857104213657665830370736763867336548999034541683491599187050293115376291345120645894459476789715500927603071137170099579235695536855274876367748599826478104637424002304406849954507449419628588586511303590993980641119753548508492787136561214927442330842555216785888184528554445836715354531696796882967378579928410574833091292037416720099020533757540099315250030856051883875480242690186031115676730718655497143626208773031333600491175898381324065539166025164026073234939453973851209426423841652636762286824068132692449748932802096348172883176984251774726488027270973133516067168088152969500051486551962066723039821267802562074285167124672381590710920024625442972822604396937999364528036246458426857895152912270389827207533457892322172334463402618425523771836636608929656902040232897685425191741979088018542153947585302835947532247380081368085826413724459573407460788277928786656541828247547154432769457662336047712557860044746182672607085492238496895320852167871939615986974650258603013288609350881525942829124865472843765437055523795472629320740650599484687132111343110566280660819772265508594655169033747939473833422401725068333830473896069020382734550366115539688404432165223776504028402371496863788213779223867694698373993983830605706995048361397045290163897326781792080837675213301557954224259581975205890571820835063277926239055736429093995718035624449407109993668150584918774235869192721001419900246366571683395779596022794821642872773365795915158186433365379195431580957108287089001300947836731646236325461175160075602468482404071321915124009951762718248600870063679367607725289829115496696786469005016778820184741652054660136635391250001907016226829868781755852972251038911992847345256438039392191918261103188989253994241478161118268340432593556070565278468911274974913820821824314534883629051086441793250404451426556569286311408915384424492909206514386231973285231292451051098974205135488275522939339842359193411872570876291649054545794085834098216571250827680376306307027537433009788724520618716459698128086903150786147526745529492859352944925252581937620431557189776214490078206569424478440822889286675168168597734954619262346920922601013565235395233897049508689807087729378198200174928139696262754630193264135980537248540313292887250711040937805248146272283053408478902085336174039978246524349128794876248532072784305890946701462545748972446010877742602185489221537497416926590756776066010417767836885101178307050532206335407202992841489311711459053331071537958851617920868587632102331743479877679785266784966103454184184156356776203146403959490873260589821685830334009778735543127316310146818326989310894150164900129032889298445271306259293915169869358323949177365864165765117692174498143330504266341659317254400376500703501674787833603948502740879459837624253337244015625503026818339720081432762387561532439010829646981645680366591162653806960357917303089935448896313650186463821941970075246233915555289544080263438468750248422785117106348592987288274446634552735501958038664088154007936673772074294597343060322633280430342000281022407139953347913634283448668629029515996253383830258572313822558720185242710078495743276639794869692356956585539478702856322426154637286130482207984228163208450902299550070750048907620896069268662334519286231067794797181019095021382120216746341552745616773543385622943128662806122427658042984307860721366708573197426800785467482043643379387537264672062237112387594503836672046501942882932407493361985999008025280579675385324910788095795597742863549586892193814478688938402675118067864391629061999902606397329554865976356657981774106603043002997734089336552349417831820632311620522316093345479523565647253785473305376374938330385560995747572346437204770214836526008155569354317611201722417750803983873492751406244826424781008542079466788202570100798131136025078926179102544779363517115191574832406520853688037234183742608288624618064880145912873769792978522831422174185907382641652859619393459287276543765582673208251001394324907858631359654293290250630054303299296619197774482336371081706828992697579457664452773374799595792930777766560122079780374372797035271793419534321980522391872079759956689797021844369367856518956845662019831390143576648886851895956398329121994505237571642223262495240127131783094474952149472029675511977576260209356275049669031810741463533579229102320005987983894349359958631951095597264244726985599923683759238785275929923596619724243169578049202012935072327603676095667976752612048321755835784083880101523129525777939994319607496879605630626443034168967891555578829557262494449964225769790578432067988031397807538515267892738455067054038051188673891092894032447095502955844748809137903907530433983134890345950264559059199296476960533864166884431117171133174954791297764645848441935194186456329033199107739627589612107569496678139059262925310288453627737927038046608259005770591144524574220154526058812420923861777027087523193808027545402928213992191994855866284253291840048772691613488826658290348641075072870868979234605684968990341273473753432167002126882261423916581057214657549675770097988159685927177227451820922366328370841010712136859041600590090795356556650323381085705192935946416512641818636648119566207029269713762109537613156018122803708900777015470111521701299770415884652293245110217428980155620476584477166211477594981365279885765924581641699927614606759956278148088494612708372136749689551174849636524834949229741333916266625222113529952135480366441045505305076381713941925256428205368646009152211418467098735083641523081871967370217385574027287904912758948192078466478621824484434608478667568870568894723040261105454901781883450622125113800593587992033592655695183664674608727862951049233644487641364971714501404228947843860626650037886533055800283534391201399097960802996307940513474466779514689554013303890422964560410280327973630165173980135369656814310342335050085529446317427300728378340113907921488386374243809706647070724976075367872709630546352443498003836477536348477424775391619935818581138122352206036572394705994782820422868177791598993615405045587865649064979456408448696129771689183335715336699977530752400825540218156494508823423327700753350748915427981995974779641178605639831342912798064987286510946754472068091959559794311880510804381769619952129376950776601849914047377999814095592597404182852256966368145007208757871672474747314589908231086188674304941251434654551824110580053092854525531582533172584852498846904210339693017032532141792499609242005500917302874133586789020578289602412745940720566246643315996267567278714750814532071868710161231048290684518356329767454485664943169478403624378734071236359045655220860796002284311930912333333923696907892599996985763453294659368444662476531829882904754883806710778280171682239535582819567604615360033038537612946386246142922750606086550632249703628847471562674842849184374954169598595894347718471904078773421860452724842560699653351502288992581601522305104971070275343424468857762126318857904890475724694252944377123458459468360432531158427574390889224271788254530842676583254938606561428857769939125879388542190984486772708335569680419088405287698461022916431622173582466316214021327841110977301773944423359501862098244906764540720284289482562288243085052841547692740742984850858749421299914626033943780213351537513020487251263484348917156014382961223511911239141236725123498444249715646263843306547173467968528984006282337880768953141429461622030818714183315573971819881281714530919911525793836468361540162764121205361708897704058378270296494472845911133325716574796162091300596796829310538741148597340282294098015196178262335226063039743644583216908701814431169642321003953861678835557562982190011607720944784663312147154073429609510082994675572775596057768623814421927002667688440415368183885637790084107606160497593683392121468258944985687831648352280075685302599723703658272968428711330030332744347181278058992557562546476308543786562577889407157099205516771660991248635009767440664138490347320870106862928839609179373587114494990297060175932032477195516433367040454449328839627589185451228606892051228354225930504366108621886933664544784166618297435482388112710204011177663581293441452677712333328218271996226961551054214014965402609899240936898234618089441658958431117330224174278018466926076813518346701540117520897696479967608561568230309563149994800601635983447838197869201134182125497156904621325051379850970706008943987496606068352871905216461575208857753032583231683802967226822733294490084369476641318950088187694648716280872641420033051120454436222145764079494206853801653516725802635074369049461385896303930560898694875407682483464586704933894910429568484673212905593749293445332388957432847842814172691856003032126522687839734660350411989693012397426936798869185216165504530676284427791430924258736079841028389606926446441346914915361995508328969369224145155223134060383613015820501543589519300454993924231396942625110343162065123071485338638674139016403107427778322849175301743698750153343712867164580786853688028940791971858469723134789665111125972989287749633858598832096422273898447836795164024413400898707094298929012293175963435125159957785512942420271699356722681955237710396198563109652340745516587168960086587106600831846358657795619712343291045693521214210181766471017779469507509415681550257365938206092783847482324245976771076017271334378833063678883606273001043175000257903533702511746739172568155175715858630894586218908602724469256932973773239120698417546222523366829724620645920555064546172043678660016898718347329188535315060560140722658632443244480862444198224458538228820206133777901211328763037782110099600691149429235974076352902058725980178858038295978357287472618627230821434058044831294197618327416625419198752282051515723825033135286434419184379607181342434557950155288482607464380916216716375312705671587107799098980667113305925108783778783586386150807529053759995739381121672885792575547244923813646130780124948159759578555976454338971334125716809195010279229670933057579201505267570848868131095195504603432157971679515908844671335566569244947771048429633671325430018501490387190066881353526574246542526193825431205482734916434179422496308278854516431120770001880963064895944499294664443940056833048482382640724355702626941217898947262439666476404692210032748698466272960860193404274829107964639331644847206320634523468249973820150332106690767763830900393030218646201784888079062069356575033024541138556259846237147451773432736957921582993485209875753739184787107802376497904593599729455134588947733655174292322123692800885672759798804959291867825264208674081611277858604069406357342456150251848606136271408482314940533117588939290956525827086148586843479551404801157877608793751580281518228834158949058350592079030386955895208127348114330807338804502812847053589673233975018785395880636193156391976362180447033405841287156139066099346500642120088286108829654652993862068319927048523712039041329149753292070298986179262484643231854359363916068056448552767598528509400785265232862434303183727321344214203469732061581604780642712023871715055566527684017656086327364867390969727879205003813777506749736233398349389494937955139459562711078973922396917753861394899428027380745647216862415788327751665504364538019902249077508837828674401325816251141210449978906237281383274713881890166280442724384444227802857846278750519203731035594113142356996170860166987836777580665492023437193302584037354853873861427077598010934135298598106818713865207052470706927777552246868325146342297055383296347767372324472746726825999214079744303620809805454344166788720531854937144726019286518323316905263949460749355155997720131321431069082508646665006276100722780301513313352737363275503888440965926860747523895757542132989878498234230053438732916536523527288905590897009927228324323605380205576956011810091300699062515923360035894545424035207780283428341115838074173055937296393933521088525758895379520867191219376330952458484851367682337580662036541349010862614631707372977915319881216166876066081745876534394567977120506631408077917057758531001089886556750784225362028527985438453597134371255543378702752157610339359007134548915403089652699863566578935018406335762880937545049800745644152496398722667772747532365521601368694563014528769023262583214627606708913955630828970807586103073416832165842623179029167917456695964600015983131398096987638635805031612177065044100805449419136588404507136266017553995576821562029826804092883249138464346519023042012118530783545844370614437667798787898676272741299316730954318313377493404120213108330668930062650288036236689982756453463903605800010699314403571139973468219448000405036467991991218616493515470671653514694011604936613799710991256226325360257314356698990834813026010782415186958992529238651253027544830814507050251289213653912272215471749711197807568264652768705268483259129178207672686599329660003842094499963477023600419433281117628747104368564817078476685473145790651624592973770804784196129402191447611230983859506506888050507848414942865653140200329513062551207644982541856951299264966149015892683993167358724147916576171815529658423712993124273992521025806220876793942848131126309121647705008435070493257577092016211337018913534164811777026544047847836887105306834220398701901776950533162444085932299297486612690494326895107836739072150197321341994194792617378268884533531575217257864766861210974618949085883975339861375923611318667580583181122605289721008358206349026011479044385516821138572544496492910860374246193456644141589208465465702824749406230060255132274759976926363425044760910926955943386361413125793785828507708021801781927005116331631348953795916392386000955166184069073885717901221222019044103839246088873287182419144676765226846790638887666318785779765318425233483811784420914494948243929302496250287667673554640233608115369318305505173068401183211486760738199181322697166027360036493651808895837632212177311900748392164752917222609591188586048497020937481222242422734902414097649257442919752320632993539995187682176639888038892265482913617935216103743721251764109248614885304533290809356098687332948440484000831690440127171012343236289969902594986267296278045168578044814906743180627154656095544914872329769345286565528153186655391622839285692312541919503291057395331827483824996787106021601793601152774365457506747056632868173361539416762883715899732153513041836098733021384927288490742977936745226291998496478512054279028325011372956858674062575451185671948328776665731823018068790173096159863003561303417677340691002291621549188553625576797340947408703180181207020764166503414554696804764196069647641614830352954724637715702595450169247469745400815954830574191854062792621167483972081262118558244679206765414004772643941688991420737459652298014828571083013948370080705688219948444204773109157697059714033710804327313002333217267604125790758830286451395043621015893791884916452742345096392076172054218088379432319480626342683122223669854949014315137029721732880165602417508870197058787916404558908313930586321993228815450878795773752987036817806537668318497420930988448519546701343299076724635782140062774667717883008236003431897441676754200530143916718622684698257204035563171484025050544134610798658548210794777146154072594034701838572165470841153967487721333175995989688798947491053707192659163439480357217614176260644790861944868509904710817004686349832917041014317695189423728270313045045384307419576309506460136180760320767000198389412083557764307362728249192094067093644267826400889062989255055372115670805892119011614052032611702067821788137885908637845220371599714615491880753099928521848829833711696932451334668104238919646557226397765030201067456853913263853394746356082808597903926891570958893356669685612555586402206024713077691068354814813900030966991403247731050902409313639954631658790166740793215561338357242558369250845131385518011018770801041759706605074840702512055085261584509992869579185988128451356154142431096948410793368138019947843266001255464933052286465217599724363181396767644893357540116787449632329814584349209408949266036841172854145111896270870989275460269795310960025172935342001655323182478396488448699281712012158738618781848328981165040063812370965879393296307093426124202108035454800618424986678403490672999106491286855180207015952927138218044302283520879275857498292771186658526933175180619573841467518123865964262401483604518123572093914231798300654319909135681369816465821988513436748714345220421680760884177593960383839635778015193634209425740427913952232317237346153936267092711258447436056840028697819936442944271190250495114861627744352013429887383488662857203708640255283459512935187783827098682687974147666743763447172498198588910392985603877399669897552189287760546073649886599550983497584815278512974273558524627797131826471727040351546994423787979154280645432433670086947968341945162777937825997813988319449499792360232205195654911795511368525112207827822178580345978432678849497992169419417805115627084795294018782904167360988486916594292619705845164282462565124132543598069839628991935408938620742901220050906879034867370282185563753176246490608021765890140310840061646775412534605456799819134600677131188359586113450509677407965578195029794437834304249640423438701492715519887188718101269725995416462365772346684091727554365762795474617491344224139500643825457546167569642745133408060044932123730363142054311549182242681047586847661941590922523191328221045324957308575403822803340210498233843024170223347012629759018251014692632723896284194694993680933827209403033622063164433476041102295676021612692086052819141001723530616182367920824446413287129174380291134773986911795400753230388561957000256276185863705449605275827034877026377399383337851368610620109857662861697890689703346330087235025431793550245064460769267769387263816719948839353566359423456180563321379692238687308380915532901540368531608625339274433146372593521651981881744878160430626144106273501530635740969960274325530968552818304416616884139809542498517079500484681993609309373122769012834377237078353594751500631314432561879481704586348171885678314033684211559672800980880891201359276384568508172662761475344231716326121748321995091064341680814750125999407060673611319983280094976957647468289446932413990032466962311320184075593419814113381739867243292187758923112938794767380604806069489017128510911469891649985181871805484410448258455110087891194863448621567543419685876314642909381904125491344931319919175256159083156928035544466222563421018382971727710562417830169959445306210188730579357232672296886228696727027284747000593324313648559173932816737694328775785951848127003305120676583297055179010587626864177422023979647844893311341372540117376649291699123067400259011079652061289466173786740945460064553960537062086725647832629272443549150188988757965190945622582392297023280712328881539551177684288504375262493101297574752147735999189918996696401732213735625100059539646042683338921521585073600775583492396805144775600295292349195989918026063688360113900289772218234228464069547519255272213348318673197500275323444103872889096339540255745518685621971048298039285497017574024003537555025541759924193884870310189931524734804845453514169219743417501989612209259536072060110081480784023638833874618708319420172454463877177019372442226254886982602495806791586533741477300739145796420486335429899722654491080063560454201647336491058460694859886789399657289488432902565886912578325510248643269709415124149899095086752421862224276645286001416802672691002266510930662330881579922300239870752762248262033705192691637398865363381900689750381111526736694377562766690555684662966299825118921583248663626631341990077682668474787743980510022174529265985934380832231380017848819366512927573886255073164289420786003387353968188547129367372453287256836869168499488007508218550115409201498383778452822757276815866540370096180515541809931751690600234042658563190211216198596537181090023016151720166629848757233764742317303806091115136799428906748713418333069445167735003613416189564083397918266045139082339225566881469672073840274042487337384323605596440317613137598531523961164141996277790053176338510391989040039941367635884239792742651933388568522814616074252149869333011655497745498387207842335845174985600148149292348538945339805765765435646185355981273077406753353364451798345428706880352389990522560057247863760715782285770622280510356798032156967104517065363590331602886246450323538762255916540103217821969578197455463522002767915107754360437566745680272829383523568270407860028978149443655180394850299517785542770073943871253733322510499992263833238931893215899704595265645298886297972934592765510444270792821891123587529214573286310438867737398737451194959630590603394774799682183499196067652777011213351597515866985060184512118146234166322257512395110898093933212042239271851789360931434231466774001859088298230787541512927969844021627690199711704739073418806245215159477172152611930580834022214234892753072157803917581614722905879792217740994817973070180133334778702897239723222421328091525582840969958411418781026154647371079650081154875086984460132543667785522068813039745595974583836192207196632205890413242699748324683340789073706609868211230876797260712327180536557338130368428776578994553474703449055512798937693684785718445176497225247207433033190614537163538108972000568075997764926218026739318985111257125020974093642061642652758750920734872042774838039878511701345737867187061209353147462421726518350544097704557000874017585785572284787664767510692408503197603894179737202075172509868158685530824451678650211305651203544602554182970511415405412059223676717014317510801666601385389356115995712049503674672224431824678947909451848106604072289996369490486494295536076954262534997166409498636100784367089651625055708273890380212200898354092273617867252083137010321585220696712885124432301355049007191977582277406994271837665873312601549072181019811237559783301206877404991123293872545092173939188872843744474626318467989581415499279565402514430682189433503984892716325171144965636354133225676942178209790419196446646542417905146373161991769360852048092571261757347059789715435305508338739779619236732726192528688543037295156017645703661533153315684824395147713139142441372687274638742276202645501470040246866623221905896837385849566278827225019530286322725281690558207636388205217542254317766844642315332437162730335478610351094338792700445109183611388679274839519811913474202481740700224614312089839792717874075725177924399636869402737395588028126538839316530722903882039998083015757966279511159754527378392730632606479219924972247647010461585574610029980887814854282358744627467142639311722714213768369187640525071432055444639242025130534412619956226816836319107944127737904108274097947800144938871584565258991249329385244403776703046024819060790093434821084975508641096256927094163022363460017433594623777564657693324788328134488185394005763444018350759135676055463966262592667569208000336828377537852930040158518730440737621819145610956870374857823882047072860759591218435045025168034286422298156257686527640547337396808870600506635846124807208863309243259576563406082036072734592010844589065588529696921860478914460654006319463665571153727494952844410070747354646906085915242460171766982410839186977059027119103554566680123833819849577418176815483229229768414978352687030541395185473814486012512886260170197907034466952553970459910424969300463986113421693341522465452494642861910759420938263391923196076417630209426104366707586777339703660359076807871665304863654173295066143445727628394177199085117842095019716689266687642698111364655219615041876870245503093609822200090474431436809991929188698174604235559631816326027970549554447367548573240331509817363033897686196481101514964839667520308242782121906591808953927808528064467670684534294149864944290165960737784580095495184709787799670531384325442453595316475620145006496172551726080244059733120383929716673767436263206185496616698451508120287220866201462959979793135785370895322270717960980673891291809213442886413610972696033712843358371428276667391602092127482419504688881893552706366757762910575708074642015531042844502034693492689838348181459403383468942171337162151570758929259793586814136447027033367106720571612690508522603366308049547121400306491118026345652491049324420947421938909004758249731440108826417056674259413334410078899095133668073627297882982395905947502402053375532465906813906313279636526110579816745592410178372048136096876451262425279527969887279640845409844240438980804896551672411261840274414034119386278051330746922812688524343695854892011095695111501834608112287128368347896244558955246591928831364140951243247273674437965454838269299408916762779400522936797404102045728741490691888537673116609623347415526777089746839605121020381669715338938102390764543824105992645887162801356274068405541369993331413595459321270507388589662933694787496129372762345655267403084521476220912325493226396783032582603876763111039005920403119772254386405132393005923938347187957546855911507134702698112853315041419912580949709861355915424344164572828544620554349702352225757416773098114641872209251639859508395605823091844351720292919189997698952413460699018972580431204773339382526260280240785592163304335999064083040236985694397783952587339869808514545828301457863389030400973787778592117134373229855470815406636943162573853617866926702595216338827155272277354157749059334153639857758597338892083494593074658254326394262943244121352306652085811649399916257990250651773884728395808949873236718233019809449553126624767856033323665618791089054468836326393678831363079599384224313698387945540416965616057045629832121234601146716181360258759440740158668556927491669249632583346929310584628416401316797936691933702297023061500193615199378834601228245409611091092911269234283694050340418491139177862844616551959686707788790701990463563131791527591390650840340401726300011912302120038982199377158511001857306598434918314234341023038952453590728697468695055989003701625140077617973361034965362054033715957978863666957754646723042341278298775329221073767480956240549651283716331417712627003367926259111444512024059881966575593473351345656447475830390490129001325153969257173714962807686555652749087622047051514489683008886060591678997863479131091924516628661730664417363599957357119479360245969649981773793069901323025332868867594342671179502559525549130970956769326979756861734761410915428804685003297639182323922812593023295089717904791711649824360192471921065493634676324233248625538026205159579648051058612983176164784321403641766181790812364095225394725939540203748932292435815729805172321893363986977540760845176271009691108370305486242658387434056334339898104746692138592350304861280556575885052102815443948520263459664033112810479734542844579302892102237242977840604592549062820349657965116370295771728332978499482888256364553865267728124906780084056527445007969264742818805989704834187514129171979821729126690409136399517807106518904584865885421888280562541006813343442599037207470270697665565762387212221237102316214504387891500377814855664843184407616938541032073578416861030814445245083919692885944225144647777449788057761468512711257932876173989032342092161465317829489251942520447018131788549496564346404714269142893727438596461001733813709234341256891676302467629280811613197179894886172198333416835623993507971217447879815336129826555542516229247242536019715159355073018476518226497540213124130286956123910162430085585156405236561785616600800661449771377553037162112465071595281403423961485126889181366520749912800893200616419662842493582222570345612070919444721378465360353122630452246824117813937069172838175043869155673486359525831027712427287396253180742441530992513296426232514640415772212894783875640976687178233196847797953549808213162845138288165889800643972727549637650193834562069241558508543562575336583137083171378083435817523019743691227100831554729773302695144965408785144865471027048527645775326121773448693621523464883283933253433330008642525844203258013022427764364192138069757979029564107081033854198101708327375768757660203251910452987959530834640106845577754103267953548186790040648867368540344712801455479247387537580962124254168597963728903909439946666435532780605070573634225040247109765771841847242701571671554582536972511986439233010320700600706531610447448409900486840196868247963309138400005673759067084827801481274612985221574684469908014329949437014645529360593780123086050042275472422116403535885628463794227093438900201956584058985985176657925622300753368380782937014105188748573048807538387726949822923978880702182115486452683485278315989802582856790689780141985328571029433884729557487874167928453084712608204967669108496437803722299307475168166202254050733644116997593942343721001739833100623439656324546868368901539083170994215049518624111308059222053552966670865975260856592502321958834152784250953525129579821642660389757392354441887164813363856857194905884483020542833448899029060508301572918072053887304580220128080320560295137279479405168304490702168505721502489168952475863193288620412000980998109011898635718970000886714742305706071574207781477467929384850450778531238941288487579837367872300756890159361201711028445527648591290680437959273863118852170510913969701481669937557558068268712179591723256810788150091840868004435476994788674701676221704295564403287343167056772526293521866861042104064830548351813331438854512157561646128297221654474331060814250774207446045535027578343233232136496620076434389753535089150886782848456589128552658106701174606044068672368019239959642805814019791033025549031554236134058509314126981553308074043994634893022399421563012227941942482633757362329628063549225519807774939061561933882269594713231932390835514539144143752586014937739076787960494724228929752636232913565243445742440978401693163195995468700561504532412559631878305935498866183434102269472616362195051920368076873311035704516382435729633523775238847913152082114395344577460517638449744662153882987756947993269258212453507954560575366961379514655228675784812158541257942549259700297594272803440174826135094988746350709496001772953930196590411932735492789886529655416900282248862160685491416150789168257963188104706580523341689520603424022182441276400025461741807287441197303841475961699855794300345511680225799538294988387846002421838063758257942197348314417666382024118607464147063089880773879916284824853751319961453242435870119999742189962946131262925029558302407772902263702973476321523414509211446214188490233777369008647589516559379008286377790584716372576217350631689788114602073243993934844038110952879811724169211527535760144130232390417818915773949029871684488194953302990411186340869234199373280835817259371966413480696189089853460260566112832811063965258970440008837815063609023332279156832150794650756717883486842178210667944058099441289103436958833178553178573907780292768626703269321000786235737875131538855436805771820321158321477122903014232447467624237977068774706312050798960865605441155441896595506924787912183614770363712609379097357941466349605469156855588187431903412279086158253679032746702734155664307181441471161249467182823017714911798380473869587890049656453203398189630896950643973113342308701831199453224903406004294512188039380953798092333767841225811364817431949136852658154808466371367070451909316396165574859868274377428852088223528817495112156187423521475453743284080836243835771942960027401776182235583020617392057654998410374582924558437142569750425337916328334714232242964566010393295147693222547486464926075568318126154611435695141191754145686526620498788870723523947426862411282891513249911854885770344350648652988462773648796432619243591519126971563942840132738389550047185191126776900118893819126509901018406766120445885035980234354900688150367611532631835715176192452913581714977404417649758923128291373075794604418099804242190860333871788011086571012212016180223853968990798170983476326220281629187865493505950941200418809073409850058987446232862426938646986932149867794961781807836178181065039815788257212314532324622238760817874906802897610759230022247678596823113318087463260309486541862415792734506957288223339331178802019465875144219160335995844988488463631622701180072262371953658144525612805606863349893007630174135793537852374586817148324532430199892202384422764318212526629449200378190103032065106670678008452353135933554488074877833933394532102204480085982535053438285385594096754815251232061026276358679797604823990920365091750563912941255058393848307038776240046098397977460795112574277382553094520733867429733790836556409173876352462879482608227649792254737797183593286402348212840098086469255908328252902098558619655290604972644106531121461806068885145541979382796633378190229774975198809273635826677457177105882953540427770267937596865952740181926263659093410195894326159325916983185903631091651398380811672911714117781844816952763601896833268110259060279156966862261982552741781501147318412362652510766736070599163843995379209448624789640809645301630073183088221907175735903065089332756419803151464165330812462293430919803081058406157390460883433910376642028615807280368995242554719609014665854201294810237364324783941234859140412750149983423318130760805143480231348915893622260765014435912403738125518009867975093866253804318975712046511629225444688841832830326702370640541310806043027184793858620621219025982333535313956587673693306747468548932909867832367297871985712433177039385987152139320218615570896145212505114826987374311715491487290879111159455155588584557311898747818584708155125420914520247989190602791196560606807574187860680620807236056743840204297422029066899901487876349257028800523821483010905700271396581128064963277600215644257671621664510046570607463370866948257196585488395953044504625265041615717634679425941141795508241467247640205351526619562690078222464850294923507992231383177970101977502477865124896788237418463635530388330257133169068508184385453057571522389438231553435229182337133690718312860908046578429875446207434181054356117699979733845365619956060061059859887637919538130799823058972612517608727630921323352240557262473570668936220632785041734042956458463915349875982337566600578259223791687448557009323150545848827153608664287298035647408022731878000793134908120945984730580842201717275644797723399479875638741209246763827712380800773011914620714755333188899386794758358011434785107149522215972656657055303011422004005606913698693647777766928499533994307748394404627721605475424856595020161339750270750916990392888684520789638965569249110655541799810555715066219886226366273679580729059182009511995266991917511265072030768132467133138165395219861205078719862903865440884583060158429634658777427222006647362975986825528553256789144703815135118434297380096505572743445510885664258291693347041667597227452923079552740475516096687782012353948915778243726473071118794934607133039150094301719173603055572213443646322371136469460284193532255384551624559154743502498647980683911261580863913910909273577098273926116184909987571042313920128029000217041006974355836036370816583700151004725920345625294701159788360329695666918498874183318944180198979629303258808354125170727908428817791037891482463333747482832286216509027063950662919892497451289312205850553029776066948768655279121945205961927889182986618034045360518328217576942440688411611234878156383008751940744700251058032238871362101931745292603079301565863872687302484041415290130461950977109818023311248567832480916248069096113517500905582174730477380543809408865041410270227201667215698951901952349927209508171312447787953683104075360648308511733658705510692172206831561103305215119377255489450661866967134244817746751959213937712026041543617979348664941012851208988176599621405256042739922265636854036145274245689135921213601220121781084762169594718333005398614714894931178703959620961107690477317277817544762791003426546497345938340466060536968686489818177535645896382837613168939078097672149394197886080394777673427513014847452753577135777890258166055146371407670904489804002039058632357606562180647590932989845132984803150283123158395142211764465896400951581435084274211169339714031020002074535436702324728373811435990275346496750428345402779710971159771633452414405400954446712531685270930711361656342182303017908046375508473043495686425748437287561467825098524947324715072005855970910388003728868303120923422085013019336666860321239965316082328986109780077983997809491590190867170879523126513665411177835240000903313697492628141275256736621468463889197792677018619567949821254881395792259616391636971295214058863867802430898204600388923576460998135740280577724799878249829745776928067367245500038549551377759568795524195023128682079811192759191318260416174936804134874294286028352360536009871575203197539575051809768657165617449230806779204034141033332375323846556846788748809672528221086139386286872942458259033717207493279064118816852439301520724716208791529367974764117960499801977224150021924160139034971509994838525474632923339621254400670557780336712466709123857748588591950684107925782467090903485506406575157593014827365325441646636199603638886523369223623801100292551554211036152555716788501062498205249157053836581751116473433087686404004175521057313308593964930967276303355299407129600661903246568848700572825279652438232946559489530452641640890098487241744011604552857054290633655291782115885646601648511815641004875435824094817602869462644121288496754218613224472505823579893339538176033521741355412334580615437073645771166885624497043539552051177810626693947065100858759189383620316869764186621128524631596247250789542855434404361678229309886325576799519748388177029493513804762296315076292961289753062834624726122247291816716876641371703621379213089370568333849370933325285011863319606621538359990563467826681443165000532267952442122406344828425689084585059103530499943175830705242953502514237059503811435747014638216126359724399677523949534395766781703980998540792260013413911890490772891558868952413571839487701271894111312442199411321674761155707851490970186366262493584451100708273010200163712302925728827061779515984718263876631412724143236719319064653936960122257684519793302656202442607996909144764780926523484703410147051050711214261691764376583113239366619307020026562203624245910250360452549102557712096880868164614147686092697015530188750673737148108423859982714262423225716653028686403348837521616519444226029391863177724411048204054982423833480611879333589409544063552848681945498870296649722423879438453415389816825841370751432441744353543276454337550083476454708327768947023962715241518491740522820938959901956908028088875385990626520256574792537909311086228971608718839580532515865812821499388599087135625096632709523393348055859175765497800212186489587322126330646598529459247945399052807040075804293923700214626534035661849471403856669058822122254306880307442234442352998390714088713551553352560400448890247644338362976527002249847578582235580798679665598669425213564053449764310155955671671082057646918622825008453714393190482324148107196536864112443361583542505774041482390678275614978794610638406916159897907784177313032090327113576487509882264974417599688527350865247601937848692630091767666889054047363680897670126425461905192581974695619038068330830438082339782523769536713492444006117395456520124438245978121993972977527275999554832451760018037321529570013241869690487889384864748124089481946250131995814115008046230057125733618149941390223659807861561311860597179730788912374619859914260291845321047618253630028450934815427099130670501468210373259782061352857741819445762813893594098220923456306478924114066477338275119428203273291928860120763288301871951379920413800873738534495273904558393653456889520321243913865470029572798038397287539822682664586559932977820962853274864100016913361348279041004691045991964375358200525118051457322157582202159341552243690613570587897631956362495145528258370208710195424451056334937172490299122447812573141253489717651625690458588515932837460333568813684659735334879480111040889776508288910070839967331236633858451359318003006513424577407255211604222291538164644721505734975131638751397921753781289590364859892201758748089849883630795127376326190951446441289685606573408685833058411981292100255228095679515150981242985982586037020722002521546344593051089408690523913764440256088220168263334395488646489935618140920025238362711297593649620411985430529054607735321718825545616306138481075937662955599937381422751675255729878250112533380435771090839995112033838591048923005133022093086493413517140797288035507985701940139427992452671830982245946181767591172509838114787630975071630929680240201863282989203910163327161331966519728656879599438993085902197589008134745077797878877014721514663351178618495734507482723472982338563110543333935849385772384841544026949555743991905709857405700924677851061973732269802160483945341607183276312360640532263705672632019448563716424556454502654969677709332493377449545118585887465240797410710422685953619929053721854486132433804683829901671011556267382293691708397508225840935816505485372603472975447118150877019218346877220291602813937048266286326989009924041891588338687646088535271820578234385769039442297659372838487211377487660506880805904677015626470290907029089829637155350513604156750490716000520566438702039356611679343613828273203128636924194251165464970330859252141757648807856096551139116159632727625944895821918820658470364187267775569777537780586460225493019903404734487044590602017291324159534900950280385072886942960167924092057123390587662731659624777513702271322650476969857204971912308648979461616885403963446678716619810261517072673967806725003557301487303338396748675029181655784881934308578510284687646554379411439290470459817776781966236541053241458464764056738166843830525472269917422329055471359848836254246110981280502918775705292586577259275064218470917647076084310983639775707493299315212607995306541565730476302762163387750441401952173383557696283405322598779540362746255695940801063697537017514236804227717342627540436516367595466184322148865165889016905322346991458627783818250798118788145238288092251046418210788915399504748557948637179914292962696557188224138985103988263664605005537360403785450171940261603889963567896006400144425834876815877412341683484813378046272746880852040615053766724376607109344034269804977380906999582678076755437265873464961065131087462244652383410463575198666119436264624702001201544397355694704714940881883638193730045826323908549546557844562522335434071729040676289884927585651193581570687954387237487637545527435084621761744439045910370310730621307159630464382840826718105822390905289814687035495471830579905638100850930515380971959261939550704025445270415001480141896818833860087314952592586711998648718462831263632214750165348934324844915238466320620682507313429888579963565997246080318923336512390034454250886945883896453139338490526624004557206958266011063657409468729741210117738351185515231346184536407193332181945846099379455293558218239281345819840681202234563836410594431547572110116792899322036514741410666617943027837842193148294590368923194143388637280843039098281741255634444620739442381775814954269896960394763068613727765256266106703558107319415692275842040481335849392759423972285530384338874581761993719279273510279317072334577835174937691697283811023616494702081610805270350972053420827851149850545887937499577839897627191093416273695972193667520802734230831609546734912779012109223493697451795008372271429093054297031037605960000237229842203183760121237181851547169571971910780172850894663753203011053298288802409297183698194163754460083019116091480404338220809173512442457857940973687226569583939853374222339787067944816045790851718100815635243800727154535702859685672174147881084379795135534609256807175724712031362651044765991241122227628855516920548086533191810167096106657234441473056220376187689528162039266970010104858107983866280139355487282272426979751901295695921255716569028606329342324600467322728369564919514951948880612028468816775002138046926672961061612827235333037434321774729215631207039259693369384715032462293879647001526235497819140342607646828899618920513396918929962278107153657497364976088009598967444381243421896889023842942172329442618939226042788706457980655558523316429465194979560295634764819216003366514027131482630542141906111912993491566137614764837125526766820395375022922763473715875199948256078743877041922360864938230799947221174243481553200465320460623555654714526367029776851237871931768454961942598130989537665151370516938866760687413365037473645540945497417222916776981303839450777166447253784152711773932882151375779257752150119189043558777778830863284123795703837708304817312308971513787951688885099583768924795148668031922658285602146639979624224457009737376363679205493821121058679460774042181894451316595855176836648081116981040158641788437603519375996416360622284264834323221380687308858464456624452262153384467355989152517639484936083367265777501405324509552880325430460167988062601299261860679211750124064784052329144397233441042789681550126417653602245825199172448907646226089094873523304579810578408943346811259928595563429534955193514747738091656906469242508314518967657779775026975779741538607398502301211466073063802241288778654358664089580543512948112759651065544203100703821875325530409313629775585244586876968663390469211527319226075793262892428390052715316356622392208190866761848807441878342032704667171780415875416474942456125880569458822317583946254297376580997172507956136661744137990299496829356793180820381370688206205014964993627804643416866467717302480699175811242573662245784794915542407226001304625088980623382524435334667752749244300523371444488792607583290784384867890649452967771166725156147644499894005758677846950708107139604053678899678622457072761382318958377852605554836653273428361850624514761167854429114889585313521295597830022357169825805625923853594437342802146824319805706465138231854870553098042452338283091693645930191544246129980981927053953553471167236481982308462521704559474079056857595335823618848782371524306868709036543927559311931484414422078582068099448232406476421596808618718264255565226187310479792304202809711491260237772539328425396262249505034227017111479313574574424910237224237167590707397089111334957118803230048484694767954831563878970601355873045007430040394471757986310312701017806598510095879699394039345681099795840070496701252784387986796206487945491882360510141709180963220243989453071982285253844586934650686390667826601713044729296507588180109518155154061092185201907258158824071141299642583125324986199682079321664517208988052661227265068318132320938139962842757330314638855274186862401140784872635634716941021623007684689329097782791767961130547098073164305411453136177963992886640276959657074955664514955985262732868578221583218591180284346556782838163579826059877228144237401465301592980481627459754080208796794670030891906995901948484587103034465384083932678388242180649587357167121708889747830142199178478832719988344078720069313217031753667962984151643420399841053202843059388719356001050132384438110996735072590936775902338640891217315995616636641935966157999608509932679055174126472198050931430931606761720048450593364624483060715091065440523797539195211978292117538470309657899751567092521489418314455268108104721137354154576658995795280994678622517278457394095967507309118444698009695553443497619045678598047806195801652925951072032912681250416097003272253899511558116744075716512011039443666384111881101367140770783862746124383762840828350538730019301259440909526102548439535554405758300226120752086410072901525798611377743977239694960854197564093546067745017605728561557948213798122176336467376482033971133903826873374989966903087778406235705399385750577431234777581706825305444274299531397089196795237305517509316276142452505265189312886505100015234450969445446765756606621159315637784548979603363309688829653137362694491631950744111231545087561319182001751985647698982163192569932664719891883511972289857188834319903514732398055877159130713441073550641011188539485013631337546180886373948172648053653969365752277725867623689331082188629899807575486194491335463835131951612325287910348341117801704538561236294319413610774187670009331303730529708725491986817469970301618912364934030256299957569805144185994346592008784181864547651943177160664222621854780416622209117844517825085679561743304055903963660308563507813545180203937441315758328522627565477833008166513832998028137567607745730557457452223999530091767583501698824436048884869322912022949855073094493219313218781248737925688095138230429077728875871224571242474141123723930024595605605225553000364466875163120990519116314040714025333997981509825654353303051073353004896262285438904019419046439371859475107817816436006975021984508343281768294643366195411258553329075091425902786864766281821362238426987231751818834564890724610996425749768686502193614056302338664829872109491913539704063360296978536249660224948098550315392772821267239065049198027464543896544407195221234235710821479515054360926163759011614280638063132333317170546771768782000550110056858997921692478483502069729427055910641468720507539635533232479620883593136825036723193637872569096502293667805011406014177729157814881459728630584530702316878651974168143014426910299193007415841488543716597038078488206838080609832579204123566580287150374138979645418002718663244396154576562406075504686627873813407439473997538653405845917541397206437878805800425431360836536055765651607612370568213755906751290050549549980997417436054024339253189610323915845944550825223343388428079748071990089764823663165820157440421379164507943942535336742005875105371944579877349960895909922698647321144121717451021373854849091026844630681705107241989771672289361966056473883239486172415548321927357009148602208861303273045150761755543180911783550438294247296262985241275805069137360398623681217475411527187202657725501067242691207446035045748209550030428207998304886554813364653932147125094771919054438652336972638370234607227949836757006401242248531656945188826909362616718682661985601283020208739936565458942634919328340559362551507604190295152635889669438168987821346061940849413272542883200234021803693468661746504289608182466277333831673544766261522770550558800979385145624847698000607448028156341806011699979162282416431856530729733551117650517468598781186259273688370133762878379772603228414327783994575261977553256163270969585872897298858365264080082901522973340074568656684990030684099807102873317364321253793618325313436694302596971709924834359550941229279631144861236634647424296403846685969245233084977291966518423345704349872413497005205082809624256033728907966166649521919351214306135434818377021701384835259404838776993086476011969918303815854227504727662931995025434369161057922485536703642261440545221858582354521591910341055805759678643209012068426694704340017353381958757910362542701131466812743389523937476943856948225824716087334451817310298678203633970574803244521084310924385813455495847052343339977313709432216579655640748063961371107420437457903165099845654455907010251219907447771966219741274385762882327310645017454762034352563265939089839540557166420559681624137372753312062406624622821483903806951907756971263209197208379718146476816271696362937554118724155260864012496012412315391133605755223412170601741175602971333830639670915650655552668515173403985212952707727389825213801662730986902432082780206351412046745983910666949478839704589539836601982051928173960298954035309210530063099897911861034925594881492441224382913521602722334413970146919138913528260973235276900545443887214524225037971580361450383813710088318903511472938501166536229180361069502927058021870595958568003024148094506696381693684066912698303859977757275148544012153269345246150758883277449501174685047859411804565512328953016689826495669016483315505559421708470469765550202593801742804937537174386102335605869730390697031981522211164746720889374622316911849501073683731960099036364576995154376023994484194935669764314905116863925987589250098982237460715157570311802605706610247566244659447289562682172150934336089223001782155479104234392686267589998550471052180268319336220683197055753450503403916096738179287047238292763341084132249286713324902033218459765910258849657833476329484845879776423187403381782696731391638298454479621319924717696590706507298298131239165783600657695069880340544393560176353048369107095282479198369435397276381093599654801581951827851139519877993081955822401913524059446189027388995797126188467861774022657943110438082745213548290906996478767672931618375681125572998043728070214483414352744961453648570369921771750483696635177249826557466556173974065347404042667623490738728649501899487747964118304342586009850015515381371176128209877607846722506730931815121469804020828981325292990944780670023181344715175471453565021601526025852711093554217747912626953747996300575422537842408751166536084365878246814320395081941338208658601499099040474267355472129850074854421872058879085739001029613915505763337579252661320333848019184982147780839841030897920307510612399941994270488464581060766754589377290823253906865878591251510110719299427933661506526891629563776768261848091761940453165863619774190640573699230075139006377889452206418741627520479826672656566992486796775475972626511275190523059071404690204359094609286701896509458793021949128002380616712338250211154987975150349051278187618935726760601006590978673174314712545646060886357693541549527428975808173080238062601866619568665608397439651450332782185442223916264412816026994491984622625005899816382795071141311927060217113071678129952763723816236463843858230047858151327312106839170688405409948388010403840513099237909027708405661715440556518608228355611967062942373467587270243463049860639785530368960035484204042898295577459231019892162170030553722440510631044593197893397679000620342244950921731261865961141573211270123369277574582267197544074361364434819651887962703051453283916630077397491096545099874454934499552339731842051084638228430246306470056416583917524737325016335188258589954543231778172029181766372798614627123811930941410393132339119685554650454199492164099668093241598445287681607009900231027886310818801054032098742705573078594398179726307200396632968866503209499838302374695784399476311470877811775986556726782881243204871156502222040840135521679467119305176800521865057050105027998799245612652854761196373902630429499386991960725933852732593822311385295542774822573767000045466213113883150313487918533083978491580441654292527073659868843548197036112713214873419619815149205000398752364966098778167251396735666676801577083822887867265342040986862070239432217209152357659166400145612957455765632431201414291101223682840493631655609562432561328348716292582879208303272256685504321261135715911337610887194973934522140919812547554074428759057678693393645136559767453313059383866389247444055964605948959135566386377576429180822843087308039494180487476659060362920114656650999699643388116306311475316344840487063876126754836579982455481079057865858778074561116392513827816208089912255320619145935102762104371198128885997750992794212258511640190978512541080728766302858172242152897362178268876905479393627594081436800344769861693475279409268214135155772768603713276324971885466542936328589188334629549200005569398688775581468924188790636591191783591914584134568763101311333074490895729609240371121997344674292005791337912145899253610768171521652531850410672704579936932993628412579069839243422264733183377612041893002884336970854014920983713995963763489111091076683775958204431046097891174905029844236735489774739583229427619719935585907208095319530252006708321225032673937336370363342556285206885104713856674097984077112060278199842315686776684141776484277321473535619534369389093359082445313974778903214428006975309443758228389245162737417047876735656964110578143985730700101086924307278186901704267757559607108995336593769733282349316233040697305874802351062657226965893941822888696288087442345055770619341684843217789599998162500631260184744741809731576604009900515283375634696796922413354412157006033140301115949748599072266109216299872002172593982905555911288055635651015569371999733045112933464987823796462892184304099955948683663563245503402268401554134628832117102811671060422985045087612316042961864676472638387978280477001620411674084088917453665765671247981623480710049813429375595448511771380924283480415455133779515648442613625123693167777191395588207194167654907408175351296139310923299391404931268902340323841238510173450564185096928097606179507553291484770322829077385029049381945257404478279623505515317009184384585284004928359046080052465285195185817638032280221220251314662016939924597433062353869184486278720332597589560649810035518594429898570018488224073680338145039330678129248509210472606844982223884692883102625523490835270734857039510133809856525841670853564919019982671504871786253495882365262553882782952197103315997547669369875555848794379047426302262130447209135137142507064998442937208610014494120346521917279898944478297515475389583304958028324510991919335844835101290252911678478644706754428627766520301409735606852591708823081676445229159302823878044077535263300489448834127483540447764621989306216706425036460003987832870553474190588502549623316483050952208702907129815793687170776189735446936323853469398445365180427595926217644178942868552783332329064802053978229128072531374542062033066085997773489251906364750633248479041291599277323343659873672744792198044991935770255436845067949310990611692337477531076720178396678045778720355997114567707523760471371058828732987052503293555710524012847313954646194033639546150210677570472430545803296949532232666879937899589229064451058461408962499634082717769011272668179156734301213464363763607939599563488189106696437161917288453836702873923496122515898241409547648385185885493342010925057140635030623176992031084635948548817878634025151536280091974093230746760204631914803416362934582452731204081413860143080400041944586996814514090186919742598033320834696000612114304313507589420807582069776518642935444754732110211704558213870413649952812296804874658861724027616228633509392712162458838768701626573109430637914818032286569931299735735657125708516720666048342902660659728248348652569618864240187305705345616499042905748078976024129241608233453959408505247344622236470137821675524679617366860186907515241159173492983023398520958964859218582474457510642132786098608487650412234420293552796318582401371230089760524663094097789457913132148177054936399518593290601702608691167586869970167130861497447612858371822125531100784284972481203088814900200409329743688798347211747200441405440172153487962348881066663606209303860433297683168984124451757031033917127300059633237049855737489998619468212263090597772194707790724076379633950246507257566337269937417144670781994988865246011909133115231591819106156260539883299821487509940042591771407830503492813039335627612173698193754078559046173330458812729959890567785672325187723306462374298633090331413335452218243033805080286900133705678606409066886253024076562106084683920407196337450617461644727081968221181346476087043743622184548179659827365922629255180229283295883329733733369125789819573795545133018764424686951216352252049883466844218134818714862251816484993385609567900295108302443554342978880802074738293237387650240198677113665094528955217377660963152593615833932546571896087275863717316877264128427570029728363972251077668368799909717452796978339643706225185542414107237473841917528487444449352806104320910491847331166185060725249099131571034224710915546125906962412339748747241059292283163245867918102639882002074919011788180517433383614343241510999441950752320273542081110453353276291237485063972604844754616379842374668935961286825498914011901801703204910495694243701500633270495776061885664642890206091694970910126449769646385971099512793342804906766109344550556599455368143948650110907922247934834736636616586688695338742652332914568262800234919682074497528743204868103247285352565351143833627605448620579101770894217961248760774225512907582281296712677505955486593324539211928476506668608713037092139828430628338419298506136018476368851673008054418341182862607270130648383066324320375970591891369432669253890069979992969957749833932415779835113337605520703098436852363198031549931355976064829733549514632563798007526458952401202228078567961382316987214521853654308130806556114606273044206496180795992778958786943291579196617309598311728573031958191869254408505704555073338834102464270203290842720850318905364359146220080277662979489639757198080508641612177517263071218403624575674520629943335178853985529388232406102392070893013445713553512974633840075951456831304187796751471712803574037755792190008667721350539700178839781387991512956960721366089110949836108312327253046234702396658404944494512676022700106543973445129030700457743512368325818316465293338790981352026090514666598328576762647504112999171392323460297011668148277418707756103235716533367458747636403503326758186331842264697277628320805949983602781490416583838179008331924595597657197810743815545377524894439618656439264267143706210662168196808561358475631676530869093592539015852910742480535079061340365779438420965756828805473560536788813655520136205749743021941910490365515634549413077523766825265039807343889608482388272832830415657313610072456193890037756653214938390751932571402868616714949888252587509730711770890391076064082538738936149217647919456805801854945729676568479296041609845173213471326981446364462862555042253813836643708351954323233834898416698768737549325929355316346519085701929444978584103796966957014149126749105980386574194914511297870758143848826341748327858223054525506064137870892894958982101197773490387805233350517604401304353950319181763471858130373669820007933347918378716011005435450402365777058182829132689968074533392250583002347128095094299313774503803779396625853463281798408200307048659772507542426754637353326490267173984329310242605693783844054001622720380815895309281051723235878602556848312931737347333410471633358000128947231846520752909954746357376211620636848218342029424652501276481230447800360340194870985919705172251557742940714306952356828403015694015395349816192157392186127372426011109792351125420256378356703176338898361224561217973880146300973377777345222010293284732095269058640897635030218583306853998617769157237713858606730587867782986049288110176362936745583341828018354797268304413401098737816593897903202806750996912041047674369944554696224023912441844782004712093237661836176379262060259292299950706624048939093987084476458256858053534687079349776337286476887910522779190927644789480915356872554142260561031760328360912245134593529220822694923482857237541968720087857092652787988802838274234915612324929531134049080555265811441219511266058919786228930679004970636098872441553694838001681069522169409649160692947788684809945579670084170087660258699807153773318007890975350316056927346746280999995438639107479449349797549496264718166143524582907033476395055652705659308805628242941442636374454006181234701043607723812413674988322184715533831520424907473706822204769696094291758335288657816751328632577836373950366536001632342628630693956115260150406848127812527203381245592502463958785136626481416192346158741094041182640470363180734908080912740420991417482785405480072587384703526521801657076970219984701747092283339245761135593420715044916949483839936441651934428792901977242724596188508677424973088716595848367392771939394998820943737697128499695903017803230883132996954672942019537492435268877413202981896925732298175904064096323281206000000781658978053808247550856813895600811202211501125347370386802867678637024858180141946261369473543218077101389850799508412546932547522869241751327006689522521606484806267236490666014190411921785805281689190086220367528750456802893706719481334032106534385794333512428733200860410439694708968701396960644256074723065464534832328915687306559179986700827835222236349977686598925788816317177796298125376877569686587134780480360127889506031006364219964507546928469924146005754742150296342794951300837428115283360515542032910225541373385860549671101165430080004148279461224876524889030977207545189680374020359346429705643023524275476618229982825809610646591242956515340003026572312747336032027976104093226321655972680309297236969613951854916768168709433563069677433316387532708968107884711130868167616875995898564487595323757833981923373020349971123764246713031406958478455364929123928797382529946962452402237021916859374856604674024664646513634067322325763260044519776271963824649449134853957460060790532327010534372182532607637622493597180664423699250258620170142355057504533227744258098873705734101145718806133341146399191461317019874901300798206829999654355517179007103211487386273834365592681877645956974920809921293369624575180929634669701805708620258370503836543551643980857988843050203173242816031575226148555281029228554905571096384257054243446305664935281283485271806338495347070800395082741559546496935977576292418938435182599237381193052809533402096032846933435207168844869853163360863443100319347652786674143113890187582375908575622528384291833269109365245391479194034665835051248020277373884990631125048274558702102121639671713450017198916412823684609510374913080027922122768759450306942532589984055513626249499336683475649363343682007807570382397593241854175169256722541031962782203542975814765326773662197844032786700903314337095450916781532449598474093047219930945401789672004351910911023660394431333188400621418929875054606173570674152742762968906884485960702702362109312902657130313095121101768153392216041810444999814770922582240179937123880804651954305672154032910607661611343664699519419538309869048998375176533108002436431407596748003876794042797287706460780834472431960515496958417411484820448337557076507714122797915981838876723062555361148984247850507678604127756815686919692913867766802766260057602712427078663730654276930149142229711525237503670216209022318551835421848427399298794792819061545205242284436124572982663436239207876359313587248606491023935382722534579791135915918250495240904899781682859827888928942334764663572937400261125350797235859665812412347785534363538434927982468899758105229825784036500109256284142736070100100596340968617874159013555292260351939117764625689087373281584973464719652114193759117112313720094134078365278573625274810982775272202036640695508220177336051888956675338016008224444851789042549387832169836378630860856894178835081985610043696382413554178792952056748240702829584647339140159997870769633395165571988536931788448667457002614367619349614056293528319442852704136827658447002332026976423752538400174317663810707968357993699232414821412301901712898612371571428233425166205699227067891435418655317038482342789045428884441631754204535619213618956112596612733217295837311031860217729033612702646048619087645934887276149296365113386875809526999380115504864060268786379371954446261646209272420221662757857083329758750283042999856076014232900396140034238588667808889941430455468575432831634611713758240074833079341815342931026183104010103718736776916929680378817938067885763605869324829984226358889248160423529847099619236380991099171855751072012817058823804417375821024126711776145975002395108989035272198691270723384919999818391218032879917262773435488444233550751874734548503608792770957786284572889579854499457377879566351059445756508244234968731821092548263754907458270478395727284905860010207826916175793614235020052436936806841780238658915982835163032066204651739998182032918405000957423746183208698189283639411670321646396205113658277981723963805022446358923507273535941141516032754407500061713220470607530308699859936330977272131552291063235664697826225486063107682884068101169604623505047631977579245311425794737928284317507598052323951585166126610429176938838348509758759945830638133029283804564868044170058155201301502276466147751212317645818706686952878406366668430224682884390867215144576055582219076471805560683547697055725244304441086485941195451570229909465473610071785422640432523515343319428741089519642484519832132273542683196122140366189388255313273078232360805305124316365371849428740889291098531667824086833822575980210998008962680164669099911300523104886404676733452039911253509500758463298701562372140255429549422797565283511350968930822916303869458951908085332514957931374985094299868426118625837160319514910596289896337171086556001616839170695846341305889927382163391105318422982488705601336127756954693358074789169969903247063529080515284251430198496826326833780729291729695685708168404041896403870763165784538656695309899616406072997090980383552986297218481472856385212931999398335816687735844218578309271748811202911092361263581315047516162352014459474762068686818745781764240313983988466946492152856710879206071699098998989720330719550350484530017907149650670641622446746001533230680791035638648215286378680503887544795515185765127865170716179780945599312971962544891182482263290743727987845305208730210383554881581246220322651215392504070952823434228552442887503231931991436421666345693132841804302090003687018210877715947762007120106572461182695759857773273055810898649466138935056983814603214339131123236360408574830202460786580271893826532093216553569895924324018485390789929811666863689289903166288635678708362191428837477289122112351836826267661710417681450138941352277762817025368544811451667822161013853676699121422734748410638547982578020056679047576501293165718144710017807248106734839276056618723981225233166695335748284675730534564984190760610661672171399199255682444607495608552011248372498070550182797461850319803018446649969935952898180428058975900353719206343068678698345162894613327739320915135268585498106720415111540007607386484925416472818204584195435605105167213354032828789697904731519745568107028417422258620626510884871689534907847671526389747247632695790529960247050666507489331113132526286097736523135175156060028196291099403211757545316969944232810726937620698413250621521288565544083163691503997636972823135692638135520186671879569076338371779758535135248147114143497943787658800340340803275737130687915195535047694087571549751284925540499323300831754519696471979792792483967026718787523149856954664911510330764702024918199449198731698735502360876032205390640346864819818908350806350333589996296925401692928561392890118988086872853181258863573257385741992032383743192169250930226798014155609255662572748120039854116811773308790479255711359022370034628554653931926573502786091510797313489355493127184749006637758543876803271897084829589531890423341226642192558705529288038148014033039225637626410485277801287207636300755846179021169551818384855022676599607433532385927134564670839329455702219187281158270461912347387585456262609902231256569923380074857804384211182743856610421565533773359137218099260893577131614992822786407764748034184232276177623272146885672790934614497607235711048053864781954793993048098109918780204269166302356193091081354368676213846593856847893757276209602560457580333167219281572821919855809732100143845187194659138942956560932490927860203179470874954402901751266236289917938718884723823702651123772132525554089181538945784776694733912447874687319994641216728147452415977909980378711147856443291175826664784451133875022197696178643632294965000649245057941652226655601562560701653549559162950370300098172959110721293387530671822509420840466199606207609721421244920504096184180880927540624274095888887287630517276830696877505299325264934884038941550141061961764726634257198465082948671279271245227944555061030126667019834065281023410634726426002640278300612762158597763117326571267701196439396318678395442378023194937900264302321477715093857172387979745794893678101079826677538543453726800358286017135172208244069419855907202693111189472798758691533480462316921581882440955717486030407639662827327881687523625676168273403818022896452781338289436523605386649440782822098450585263041598727954447199655451032474269852308609507323563699965065191518623284732714324832380628293360824154398194413954040215140985484047442864133413146177395578858193843781373474013878842567828590220038262225629242257238437834813550996792848667212996880516955517981707470182111411808074593086655968763062900037299848929525082266223475361228802255760292670106416967383335904156258294794840652784977192598597381696536496518454380973109172553442715225835170554290417133168839690935435841745059220049879381512785033287353669373079190739594449029402046813706782689927848044598661244530077441169915047228160946187524826601216571739755708938114041113632862380127729855016729650509463188370083646694215956619227478483286477077437344880735695736828723946537608124016336139785604747747641354781330181039784095368998496269887122947107734990911719022156794885853683879215621795692441419124054067000225640949977519052316998353921275055539118555854909170622997426968885220166531418548557388820709130397116043057802498597624194312801998951840320874635161787248270388818187231512929790188332743187499547191853181755878928409632973389860987716195725329775493593171542143888322343963743724793916037968382009626561219478341238766810131756877138185407227757427133521582728474471808740725229736881495077524202967414646142318530272497919525168785460677325998450407088275699853493923401700382684901956143026248706986524060343677587845702002955371433212761481114376519589782663467036599315760362994233579586222422961993915670348740304730430503634252605748070570518382295371611548154658336057574140564327650047442255372499331366652385191476385696197788057143583895103695698899822426970635737399688930374818065712352439318028589865863920847022882462145606697004720234992110620569695584264418734894712300488320668362865750992374811217159992161703999291335563322347498294018418836721482142852959128532818429003417152929771253475092206094658223604273156230178048444796511625934919174059654302028205432885341284477818581827536801476547290603162176314078971470252562491398980636923047342059490386795748999819535596388080954493090560908869782683568378620764886636520764798015965850410275092941981455383275846433812433277859661873484984700586508467693870638114372408154122244179355006585208327797346650364046553191377160181035904590771277633351731734058224395228590021983050361212685397192602451408784197718098833299370378296333092466040010344872702004226905202106101542287875149661585122727531513765911445629845571028719495336177707824274935998878773968501174515814936401273200262821063048920492486605176762406436577303187445239180170643871507659612438101140425520957863463698535454834043475630456838950972334723661349652076753129445221105231727424026168106216269858600497671623981766726682188617046660886583385751333851922802300499462681084720856364734523278669680996835792712173492249333005897175577549907217169224833147822025851395039661070595962862606894051511865757519046314734214261920342681652938746991072848690414113664168071136247954419134616186192752640057914142106383925880814080717033485519026184634954220173981233067574830044401743996505666236698422489704900168068672502175267992596885862778810555683500505604831831014932721373544761965150972822082431311688608663980563793421860001913322845920580673388029002519839628232032227562214614771414485797385535379555806721582650886320222683510167503123744042787592686382374198263715497582156749279988623292220161920886476658723507667718960690835136490988052161067393004410635903739278653727905256714342948127430678696792556429789322429278741985142224075318222334841372018842484180450686224499429727585037685824107243987395030029166297030685764160110521213557866509534664913806936399964333797012642674052389275533878816413015203080614671554966472957655804184581738874998663209686833904875386428461753139776340573792023204765059859404150293796377889155999649687452447172204495567345628522493197518395612532357228244841940454127447947540844573401750339824804300017428986543053758474059103266817718821525925004806971438099280454927521956809767972633092154470353407435260603156048711458161995880164673226827173594842451041582679298410701161483330672421934701394338881833702232258152563291338772883389743766132450619753582580904227387622492528563918428039995228136353834527680394674090778348961645721106276882751248354063116124939590560522189944796592951633193450747535218056750774693512134086887786339619763867545287836978829378841352881446984954318984666641852455375662339210839081431807255095650601262373671200404446732281921776604565369953210231532296383102877817990443502933410321559872208599766315652665659034231490462607324108089938303052269476823789439717839744177363605532467130442567712751154053853188398401370180039527318485294321766001727842507758101938064135284086229467829433532034741808435974439320710326444696312497373052274192460867850778510370409994564991928727953944147800451960168983368759747508891271497383007183047903590336657642697838896810998924244369932642189423230501558304947486444216772059072054130212920637197394935853974488861007248493858514762087647005668517187175851905190932105669430984573640804752641758698472813948690420224837055140112256489100339969504010147429143301767403344887770664394605824683558232115784325407664278506835682041641521864122860181217851911997059672775031885636670862707677395122791085242296457509766848952492792470178673398824590115828839464210493309060676058699490880321131373705040233832266539536273611249606105864812226304790643580167944761029849098073281337567964586897252068706811068386343541787390909889755174821248075570631334667692426755099269393020135485780509031214976879148066614241313002632329860258057189925796642626573632099252268938032335770499456035752378307543264806948756982216811370290954097205580091737773595215386696616555609758822325032420311527589931558994975770940598810353944227931275911797057292864662954242739560533390746167014996625877813314723689176705527934494229337042064865537470122701194355482449417764127189363455693633748117702716190665965043415488217895783916847045439216329549069845642915148914364610831788898781525946491381735558553418211338246914859804233992812957693679219243046286793908724430837715561598227065582877652932858927342267824360452569090875940578797062870587695372018620702578287388216488805881228690148300454408375008276818888153122981010300314843862148741959432455047728398843297235216309333165657404557527498052982944312265002646627210791114916641510132149197221130894404489616515632682953578024727783286688309785565733117931895352143415568593793237539501024831069874920919311313788641501811682610541948724137465321747781376778248739448439147681256413492873839012629251567973120079289240739422517287894289031834041743866638678965735236767796747786488433256200224269578260693105543354176907134045284708906621593452764250257677906842797326481627894381119248239775708889489554964889173219840754472803322732466040337479869532930286772998386801675681351906154183594859816671770222651980959810154889975048106428721946795370296890131925440628961725578524711610802823257607268387976061777754364663065252096246011907923778959297724013231107045264297201647459893996757262108599701888843058614995581365744014205527569539388911745735152626737158699852803270465875924641471828621232134916930646416674725589276395110988830914865320341275341058338825805516911580769288602460725504919826406672154988223615930220996947577299577762266537864609849594912255508219524620457935141865552237412249687504340549911677458965952798144146871655054995326211326637511298481626686584329644341231051927755369846606457698688073431821128163443352112015799379973352649694468207272787203080815746503215202678556034366399499753081776331566495758636870178155641964295347891421760763302989285130156544766025417525376334672314887252297224807912182272767921205997796745146453663918793171680712450724227984764771797203218687099254074706761902422080625467643018986726329159396301443411119335235129571940482204244845848988682758543697697285340688389518263063705869430520016608256245949596658737498781995121360856784880516577707347781869916361224691597083959313193422889955236421883651890409201346015721720880729795201026395604617061174845874040156726817534700036038601030767494824703866593570557924509016525972841326110583019918983749490846632155512699637585118834023610904741604686471683692447774644656219306066759626020893284350318991602398690562766928966756637629434881626783412602117096573580925232520156464954982475873563432311158545266761985587662918870151318136974021959054519917597657767453114557310344290293430663356116630852081949338018703492185131120063275100751316851252909694358750057252808593288597201386114209167345351608719714750672888276664588257897220613380746337073810518587125506277282906466259020877812063906607440043710413019301333833367911894427698593224330676031818942571588905819132020266416292951220735671644383561121527093298681383320033613395214748571587531198262782983445459582653861584271365140658554342789277719480065806387624197771437689618963329459060251890331124053740736793638324617233632537369199216444054193699876748679667385566529083105745388338203035611720607677225497335883954731810804202431852345961781122558931973912286043546597562061133690220554879603188014643065585358927763820870907689953043961321104253326790074877641338226361279636040241315864864029768217301359847698113350046129206362543050013324530828363587008609373843870004312454688725270096734657237913992410093431970004434323861619174992759405109635753329036666752771189103215033980242048312093585788469792610211962611441502064591908204834456301475972151399412960190822063826126381671991905053508346569422782339904456623938118129170463096312117631768498790415769933873979506001307801862522641266639480131764261615258062261351745538700706682969812016352117814191024120989438179665335452881873792230818454427320820248391745630157785087848955186104041141208213863905481461340302301360921083080276444689174318056846368978569055474065821364151818216251824922987530146331427435660427431353942555066082034338658078733512724024494753173485631592130004425989237706763839900201654038224079743754203982090927289752784640883315962852375595559568168709308968936530035828406851483439509446285749107973449499369139370726386543361634608205793958052761476885798239471050772164339219556808061757927417944517304296062208865049529068376981323350086138335638862388994811582485518112116742774755453306924736467050389496697914031211785830590956644742889625409000712319510602300315950025231677345365002825292225191136667737627015009999621123736571517975855895385820585923621503186730872790671970277420029120713875436496461955890895940612246772686161368890868375577635662840293273172281485591555342856330587317646630991962488096470028393920198935662543133443347472788472583379568660841562361377057308151333908516291894089977463663615604908089490685244576190714499519069064589063273323120508601016455967775005401528245126221215198416058206622741776984159182559527094641692150714630784655942065507989988699509725743657725021169185813588748358764564866713907519031976047692751406204158943132838357514207805031402308984293074616566023206942871563421783073128205482341727475782487614564447304180282995712411910761274108308752561906932209158882259178956192827979809543136668549127501298807574547125607940015674916475407578660431137775841349903269733416063198581807762522445100414726191115676580169644084030014118959686772377712093121896323672241871572920991545017194228139564652019613871553645184681491718438074168881768656850171687596952356551900823912613983812064868119324368666634063201171314023176145950357963002889653838727396533218115438968395457726586797660105711976546087248507335977685731040601602457586160554093510647481509405013994522279840610270955117505583434616615815024046092675827442410302955616528362264616161385372031964955389772875380358567448800965966286448996660753473853529642055130148960357523069504964561120898210733929728716034591891248290910548027865314064678571746065008120586812961263320291738960497843586929415286081874698616456961218979059743768686206160780669179375215665808285274299683655920680717457795724809452993191484288281249994667368820953710154203025558391270742928495816796891887100224721317510567003689009485332875403842349468710799704471013064645836646306601098266177721039499938882823337601009965213002443972391561056455237392081426208205843572889398785070597003740774969745742273991353423302178970226176854050785659367803085331992743220497185051157333187096470657401043456989708678729945696530454092064305981432596566224086264750527409969308399041129541196987332290671003382349275868180441940236476465977806907362508493783065202762687492908779656677671526251288503577263540985752323412109066928543031270576772349244799279082341636685798380171595152215011040454336266720445108789509277499533145003561370134689917730003848124222606691896954773748820167164166877406881718910314529493481055812841302181452682038883843117491611144443635427289570290241849933790646731022925297242544422113618432639902782453513200130015264221329809285054942490503197296498490374405810444556256600901526001827221399681200298340881300382739066027435009239794811577143274379010685359760562132998364416409366517191794961131734431476135509267718098654638648879632940518493398325446489479479280496566327330691680299724667529398714438807657000299144931354655610494694390865853072291801011064205733402291331698126078172414143250748655281267743909935729183165241945394683236875975220906404103149853340831562955176667029968165610680331248686713450476512234274585830546053032116378526087455099450544360416305225914382024456900345135667206382514465109801700100175843852972975337511605559621830369272220717957829884674523789170776962146908179599153064295152280677235499859300732477400150389692868726268915460689751993467099714895168291543429870278902161886204166955680688730317931176864965129122020138619509969784588629762319946169549775949051177765253457173520490117396784451403784894282147473558891208936695938932729215154113105830520576383649131951318954622775896439716771290882585727031214550820129952593870521409870035398635901391351566796226669309005396143232497878806963785631915979819871789875769025930305007733970632472990946852108033658872626054533938584415539067477352801087331666846056805928981947805087466989749533262406261085830053964129306917108579381312781780539573749502045335444637334898976299058896043687948908107848472335943651144278517632818044592169878321265648854122239191238755303315357429196913126753300802663414638499698761801627063583852057337609457305017325653521943178105944619630708532307351224938358621592200768063239066744220791721069367715439872159624529598732548839259011481143609640526690342565546807207635132152595630692604175748189527542181018771284183925379758165062775597231334856248228654245599494750651667604992587090183141476116963693229113617028727633968114409291505273188481257536152656421447006893372580338898902389485372824421448661983162554454835999175959003423897537853496082544556549970256103908106618843165312901402372821353116821836054687004087373058507896131395613395041441529622872071223981822858143569952629638032371308807488490921559047288741456689940711760287261558099151985142821009495480523390777174038516836815126405695198126881237207992153894810786532143112676078864425559883311353913917918963291736639708765719148616837938421231038121010222054073010695071952689876202580762146324315062479195340689782235596428444968637967299426805224672395522296588493683280372550585349788015632349736123552354648248465074596709567362879777272481366941194107122726744064727178223379465141907985852477034369384373875774922535737298256869194504962033549235971604560281527040708935721566439794103504622370730842599758515350231034741555403063955413115591940499952735790989975159577234449278299484741516969819632477449025216585454809680485974805905339644666636064649766430790985265212963753488659797801328008679818805843129812215733049409470306438422033641543235378308470245255171042192826750725874517115794806424253036656259820837226100800803524920827777068224361557570360609684780603867840476399965944533185375612312905098508540585364346907968496270580257634241650360611447467916641822997237693963654999477319837876699042699630813549818992042162510062960956809818011437799403373880352281651292346980752533346587399779384624725402484330595935725950139008731082351335010410899855867948036034725286899549531038490449502516275754696128047573471695651970772099728735338307511528809063524736514876777398911176528409556258727075157144443869906546791140592739691205491975693503942308761884351399746800246571631862428370738476929820723430970980426192577328341750855386669971625062678855756136160179259163254438536821677197056184766761571066770696376218573010570149433108253297930249987209154922366932202057930689334825987152968031743508937239064503158152150753246662278919022591433591281039109739393881469259238552936996624707781761794634455738091332558307660860906078722056283501652218721970669048884069041453254834616562946267685578634486964305808832957325366609642321392716627554287086895426104906072148968613623970448189602280579575049885310064330867649232378385175960433667361389407068027882878552914362243293723803175422759979036956143997243091446966929714456060395224493322930409970658205001368661904989097100657695241320669647596433309026331780058722060214546522242678794526830897660639594846058071294399670967824719015750457347578626022458871484676421987939973932227733341595333936379747403166211377591570937328577299381011832698443425436999445152650326830050011056435762077421438384796933909423628235765784019235637544481045793953930568009149482021837335698111547650924065513270480848429024680693060357997390793297653400976875641875738186400644971648590449553656412888042306748278126442730634525468230117181911243388561702415010051913267544758103184309693922908024999038561686437500522446352834458355797131727164514216901817997361645237101879333655393240982080558695848253850488871846362021148756110546205570965186878448827601344023450085886486733754225602678539517602724154349826315417881722150249680752823496818309158415923414399243809230180257678235126913221789836106214320934279462937578998178890766382971342956976897361843562112058644787419973813043008150591992018717625526135236532622932766409021840384743034516072779068260304571425819885761920491519540430255134105854892184797507203241978553034609822119674017076297279743282962217390831434187467232940995326086666340063610611789048959585110045596034618032479260240332653096766627757229139599531666791122774798095373441889032507865465304770151132915219098319494765952047851963353408745424907754740911465339884846696119422897869854462338391485040171235199094253593132922306872366114707823102513137525247288609697705215957250697151614583888963322475122192276655593194192567346180113459117602594097018255188327068082314414775241401827215065262860715089319629512605460325336413941077042719637257100670975285830269543256581618364864824940689688576185048444340601456593323774999700002685106081630617189967989841431022615099796667031029754930779666456212727635261299387921490278682227901879935913552678864675032500887313939478455000520536221520802070600808838770816347303867991388525812198513587363964077389758155737544843632602569672579461436286084157452315809691525930941305097455235179662514168803849747917454266865952129610259447901594048668996538961932515874910539662614686664566382612176305252224832921189726071023773591288621622600107794105864100241449055305615296488883733275001480522179517261650153428069030105454066181105580382497384920930546833423057033771088287804105578970335508996752002766312075544597050657835464968975263193499763828463753225613476721133477126275228406782829295713875503868711144818159629405638927333928282612473946039697690219127361729460011465295555536039309912040680712415307711681869321933433562594614640349368952760489414104377463123326579949175073081549908312855685439916253352264579509532412930211130266579400973658111611601040009496711821659221290450413818898838066382792778040202675509718014628998300085364358283896474689657976081457182247596748402134820945863191503723167268857935483367147852374125454629930936679587212586741704711941851524506522152696261509994936757717242825065747874314333068398674969468177976113418281165384073713090216112183222975072321230701171898336156958559933703369795236560173629850738766985269762078253686143894872102070970823184727966901251475070003070049232317290181410394674875119543198889132300565319540621420466845765309865798167217788852036243015751199334518740014807188610998162622226086139794932069256238727455362680975581645505241322007895907244691095912214157207312700211227337276734963207004489655123497624367181360604405411943199920767637793594281660063565400808089290904579740985272712810356686523427761755071216562251409228953380901453783240574341277594462517520317660708733038735404042821238040046885523555903198374966078345093202189800379367649601652140838521719339357033316887479776228342797663073114839662424748478304406690413153648476624436263352341621686636917420153482639798358538457256787860424051711331182067366922772440408901161043143007197428855696986697055473122119737198741373051350443741472134644606864073980855110827195559037435492411006941767627617509583264486865544176285057597734507138892337947815142323961160210042580395786712038031843704861718027663079207784018338574528193082351090414074574040706122623415227445998279865742947194055895129222071622922555048784216630701954958600168110494705935836581877729730455228054906094786455895832396508956780034898933085868557242200353780963423287964644866400930051112404747931889081771449333600415436941722477712942510194996407981344527557463410472861614505994718483734380561121079433559419524653881281162534110415024553500737533448144559986596180017466869987946482306810099252754638835865082945706384191179795883648220283181690322479511014462252189857127699912352220219542217692358066021509086934558442089628784107390275012239319193044861209087689525323975785951488235456897190833345036939026930962105515199562468126073936571888431545809950890702196377197496295647249170187877218435222012936325219860037219427245951020463439143158070598582202272950943596155871306460731699845030741439452419088651093237471935957525287287494961912889353719652389022905077415609685849313123942309525728958684663182843323899808620318668055561078403703773321474953017921538393851948893567825059241513325231275776582376028479300753211641862104643071747794316115594256723880494202703307106882021154747869161366578342104488129742575945976919632763161948122528134485518616352033237814757309681444017493137654078024017737233798428283369712886681151090248435069395174378401462260988644003376817467504399479598826730255713531283972441357504213741981043305789733495572383893099107012088417070174812755373167446282821679838042653189155905074760673916530393574485933426508718463393244758763865800502531482275420452981281720815245181616426345823304481938080026423683372331455663607804468435428465769087292221244447012333084308963402504758166627192084647266120584874024040169042706613175562862585468960336991752124815427105288979728537979498304267535518422787453895818927289465388544029925100679823525095860800433395043772572387433250256093414266434492571596905820782922497708842066549620403495001266127284514487181621157106985712058505171921417400452468522639715146402300325572367369321902617335880879843799309857966509988323313429327738951872733423100367137401898568387186358362694385858188731073223014372855103352454446582215335107562665471529996673906794527946855414327928026511077363962317740266145628916639348486871706434578342687050847202748728167099013441004620063570809131703115177838354985617670616949975542457908512651652253444962197286959605696761373872961484226825827913220369411433367344371022782976282811558039166929886325331088934914389921112955724985947244275116660997908426660059009550920153397163335851019198955672457961337954490112221203490861430069285858064543503027210867072558227431056580635866417701534340190512394501730502293526570095816977181051207141322193362793589340002796519946371041952918052830490676584838202987454449814275758174903484995431411480764619206607781886250576491070889150124965928702458532646266124761224451157422868204003189263112904601891299346679485753848200366468274554028870300894198669883046241051465827474105601958363292177339776517335835901613005821179191066892322613666851369999100129028001753153198507892397155485859559816977529139885324556128477243763610926692389486806861912448623909661126011739115905562643460992675144317242364089054194180203738985317684059355212707491446455275763201579979758440134319716885726903861614289819349148400813087794717709503655276926412926834160460052089436685870984358378762131272871600309313100237776090844329084210111559123301773547144406457214422688766319652353059833611034439448670169495921358132622977221640762660701481427916621372622536188193679554671152886318853457978626253921445779272915029933269424443180700153127789413760982191639522936478565282947105948065790806720073261143684393182271040871518834388627832413652377971327992271171498518087652187726914418058541841548301283764518837621435942349500684308210250420030053883887540736276206555956711426127744020589686946704635700936592827991259870729602872190532236314924507626821513992013549156154343160445757900594001010679773621847801649681324960959996074031336471827917876055402898428991899979347772385442063314052511835464048934263096134891493076786253820781779036091524798050920280350811592061567708843218625024873098706045762008783396548224193601622696747676386357485796138358779989299654099825489744290755926105069753252559056273402500008506930243564178083198582823024903091092584495224465049675291063630695203220653694051463858900348599900059436643516713747323292446291968881671472156773436677724397145390920502002790670837196408609294863238070244957479035861540313433251839731512479251998671584173158698078712799362220568402298233904259541141487172924047456277181601884922565532461761549174663074910586401269369265499998596846190345566322415219842279891446256321035283302253981307674463833732964349873960524521735048953598487667672096550930793314118818362556392298003495471676937784883788802599671549809043634461413225516983585192439598761789093839603264550864131056778277803441593095437460182911215257894181373735914463515812498668702923101593274478461711085382715660743883690178948538834123912458537404397254208759658233102058830431952221984622359415673776201861580695999647565218230743631538310281902599865667325031263793589171455424864013820009141909983162983721315842702761877166789726586681343077990073342688986424243862928354162095297488505188323223832043052607911118301960658495003044850144234548820299121640602525901457083233716338473678959715140539995488864704729432673029765001378710294936801857732628629091416740170915394952610932151389752119059442318297074481244913481601913549140745654253522945085571840998147197568261532206919170803438314484904269158187736338241805300379787673646987552811775549898082347015358120040187674947887203249694957201635467755944383989574692237882733064949630915048524270506998466903802695412886871149170398603532097604116416980503624580076738178679592627523429544643103119385314280209612921587212023739815051880061349308625029843916460958840339513578487218313550412859126351710517554342476724444749569596310487300658089489117367139772497464061623542487244287890042064563211694073388095427199058779666775621548761172864642037991070292208530574485860769264550304805362589189840999417660672693602108954263240404664136823283624629670952178487874974068511621549646722175789250602164518397135706614357786158029907242284962093011947125961910163006721586418585145218783346124455135036613775675510684070833871533479865590980980454289755662766029352048596349856504436571880295152736920024211301374183724746361170542988769346444333115209955708817311666644422387723748799846027114365047818256064254751342422318925171189820760710072804648498856755509369277019791590928530807047594322468652247496995796167175126451135979561908830688362874798132406374498028062391959959488672386313428844453210561098624613384992840339530523546016354380234094987026314081148957926559995336281661697115814671318738840245911741678851238274501912960625313332422190883074737001024419118036428298123122671197944359670670764024187489742081057656303589788358220697735504639512155809673431668357004974226087199227228334185548654540181329310696951405490932572388233483516207449631531691838858609778852247977912615362968310580408521319510740101490467059712980284844496827561494676111655250498487673865673584800237604477740291566452984519203905349870796992084209152881199497560663760611885062159559468466574522221871974041335008536453648259621808538010358911443272918025751867565611668431758502464970734503449312022934411632940260922153486979236821841640353068210814000732910111358289444790154289536120667886088596906509174375987940939330927130785834043916685083226012315695828247547014019742385622834571668449861899977743696307641756200643481731326028347406045822994015804068513633772716588674725071244857016648047205227372829432745756133074881550469200831905850797768091196351261883245944598597550681623266584315852557781186801203581833368095386743695131285216200442418823586011715684100609753234947345452719740467106744338709590325731371204862080628590273413838862462430984970650791377994033107368101214245958010650241695703593350372307502039287289622856267164717810822403853643870186902000331231496643273588810568085294167411590827417639656582270281848558170855097537769985163949627266182356745053502581975773160083851902617236476123385740232493378419077334892920325734763760390205350026489161374774879203663613483384769448536722273718966267315077016380919572601033292072053188175854942101620077102368556399991333646585951227012196186399270791616564614288738733006823570343846852960595491710546222839489411686161942566743393401910474593900814009800917709504608435026975661316855183996850545747548306569501647665700074103229969163484540271896818628869284661110462390304213502621162632118262192220765560152781743712703177219997231942488024336620705013722977744106052392907551849914829069689966966059284511812689635611503321635131024427830848090132549287983975249664303198174783585240721196281553895201498358554162792195927809762364957238159201210697415839103043633838597250130064954830318214572388862789443419661559100024820055296081034050012947749440310491906176844622545941086047467670673589537571258740798425244023350522444093321198026684573852088204381719447395307755474940028877677181149890368451515863944747170831127395019396365705592581435392406705369966250383175394298385532729868911066598223445207912268901918266645150036200123637279533829454830434850404739628040659748644701150494267571088190238739119656451086828851141092718459712185259196636363830237753727410254121198990811083795336962925264857973465187559570502776153152448852063311127291748209282128765950087214084948952079256638674911942843753766168284907328370226345460972772898098823107287196250008438430615250658554798695610932215170490028257237500650448568662838864187401565313283183494473702322085175803661971257340543364213874241157197297643817624754547607304036845504597892573389776330243365138249460601756577828552763052005529666607852430544781300490059440774339981338922206389630927685223410076909054935207255215350802706905758530666199143166247351609064694938215006137898344776052656882930261151910048523076247972544681348289318473414455332439191923724206185436211283859831361445018589195256067762167981721348652739021554313666009350916814632884135768752921032701052243921371915982951626041594764956508172915699663305747118467582831213043477661292235365201405875920011663352467835599213584358379963697469887447938404318436676144198898468336564333027459371007105275201411014380694130750328585755980861212582431413082819415434685567133847527838687456519959996206501615478007623417154590883179103014741581690386135649746355198410343739959783985502865036552276893292557654358343481817304830150215931002111962370634689449587399206030098690004798984378253759723793468935375639574462307254776049472244088714060756500541129812053044595186079908724818986326197422571934399595555441872032176586022315322250994491321279465554314970506326147338984876916387878494703311626646306559999843548296780536141899089753023374171288268685402936568116239540055275177614923634401617080455737995411942967148421488285306742505590819130208631738415423410680275149617455857123690892079740730256381678923926375872800342361379603058700212454621934558183258615931180888818376116868479662417195150646739836285813451555233477307537784321786390756290216184286338016380069992245074105147562548790741994417779379774695513367436301972049310484843581030357450488643651561166869984133383267416489451295072071438291036993299701526761628315277547666884313893455908864397065398816088063114848801415970996390043723563026875930034497509390142139181627647869885288259972109032995806733181081507694071790584519128656737144662012647085193760673245268332428388518330204997715399087873547054342051805111015887189233404111634424850271678267384076814764084621306420854693328257482944485656548907114046458479060374487601933472925692892596485244905992010725232760415794092158377470353494606820438521915861702667318742785597358372120068163214139619575434958000569050397787350045766193729015613412216027082443342222599324309722819421195014536389920063219545536807355114866445919597392873895479972571272891595229056794492312477831464992725748262565363110256685686107130225259688947753733802927990813005467755315937692100838512994587009645149764346876503157416612643133369345064481102835449154806714791823926231503348818943956470390793264975428313736457539301057943533350644926422232829193586483183898632668751837285378618941332314768738873575967359787282356819228452494892021974621349905782006455174238378980591285900861959627055104148984347593566608265395133110768627875772746510036176549955468750398105924784489539178268368365948724386675174345126280202595043839359610818970193187224155979448164715712888648942654259958357274460793078998723577726079151042055699628304996746640042288342473429355463594330017326695295048599676556931549856147963074425966204094439556166145542779820586160854391996171643086661756752993690351376983503695042462609056249556622499260685354253488833178886550611372087018515151749038315810601012348035898472495495664102942937415676244604505514333611741734182801904533878421253105024500985004884280272989030194834724908705527341135986974697384751799147522280677908217827229558105722508905347140738492318566405221840697301238427932969965132443693071226903990573026849280036161665468313183321673038000181504040750878815431792913826096051263387582777291318416069416614993655045676377228669981954914502459016772478433364619473144562420553428439139090700234247828897163967282042231460536160856665132196790293285146179342362077190427670108827730050153404104758730103493832621106932543355487625044605522712327705041766063086096506350406865255335323724233007619533759149546075665568903633591228752722264906342945349029799633396329335703414244258717129302614132003437859182187814818447045198791857416670214199135273613391704766261582869464152201392067406230740139309158310867942342538640545860367469152428347095488990183775852209272900589525145027834775773200942624345214486416622479448850532786188899922307750342110980251480818300418655030641407871228558921148521960844378117059323298235062395734605813263319061887694763709865511453969551454822368562075411024780969940886674075705754033925766700238428075664297821786153237369499654533387245548617227337174779438883599609702352914682601541026258803174714699514043111451001968566520642989311977755789546402444258220989071402420720374729006624542126450350194871201651958790410607736795299056791825069997248751299386042401116115064519032402554557549106509496803429804946095266426497855805494525396974538784397411320358542905547776455523205202313660087423679668613004652116814851303246672935018236573788529749038580919565024889704150289377982014433101627470540012589873549524125412765724429237484111239533796578700586476015911928346699356627359190807986720729328217541079449922648962948060874831227880248932759153881739856314462726443504824396694533573533983469975310927613803158887604086666859830557391922667511509987897362500516335576057011955490157056931931300995228311769793763152787543023414614286529455486283157664032990779403948069173918191584659641801896830444256475065198236872131203703695311611025194021505584810561555621748444487071506833169660300433325941473678867708140448643232749605458559031303381501369007762100004224524043864535808678406922308725912274173502116260388720179814547307007669941522471613263235888980853568591792353415746833435041194221973489064159074578994287269327954375378865789982875352860915596796346087251707826589721423240915182317682743881905553795745797654948502749919603824729478943766190791783732059055891037231347094705945464669258127021402129713142182792124619118894712705579960321329540745067656674824713132697538370117290551216746000676576242595976403770212274351963040678577337569561603168157062919039755694943326553439977