PREME/G/MU708011

07546225565157269349828406507184928612491218895946726451774652798497557407929419179450395203746311992593503961887641055411691314552044181684581213277109544845737147597491388620040522702490727063293412615551209307789572472971579647250466118455861161398665544854930843658145515556885032156377770725114579079182779444627830527942581431601933785647620101946888808321878285247562390620253178537089244269461639365128950859610365570399437482112410546579655334514870269877298556986647947129659818621057958674524735235091271138382749060020546978966242110734011821655668568754489990910946023643659053113599040488867612960179289855050622355213047163588887560595707444748524479702920795445783517694592973006162989634323921440261949876013505388828203460513781837911955712003322479899677760111932365312473945155891263621631892778258847254100044837158441018057221580262222828313701491860414657560497079755545884797316012582187667455514483637333332074307067250419119410724553272559940916412731414286396937239461452673056309902835524834062760518438505271061554169735660387391420975748730316541227249852571419779848434950882433357116829481528912241635314516989608578515951411435435087079200230189305573947268300604462252387216680604645930250916609329131790293196863092031259435419227952670376629674923205071364529598316157715278142735464021394966176028829604362457766140964337517677306990803007367687340840576726053151100640233203500277918857201734517699126053225299618972599181417651674721400825930059031057006493380902313277189198340041352235669280268898719263421465975125154674474446126269842093735584517711983868288015195717728355167638757750697512441976041291517689847037683924775781773410533218614759587005444229802662263359020159320049092613593442458111640945727214758709718473315759638311396055482212927167730880253752046648279457401846350376605474717501471808005390360599240871195157786964252956156032084739004603114474289871938740474191284949834903044666005535494808410981624799496712128789627642678292013091230704505267976011215650616949541141308274335289468381431079074812080033905862411381623895398166895344444639679118954449149466098262525226950974151525329832169271895793180504468434263285500224230279957549886283165267897623371540910247848132073263356034199726439385152919177582486870088654316233974355782239080302980594772680145652878722385827275287204443251000590444183735298687204441510786854427181530028056184496882687178758434914338387089812270949419959812042557469380951163563920136108687464999370981037805480367146120185065989008722961403712084359841353983361502750282601252142005253124702717898260893596552068107922755560983048255886550952421636550348193452386081518682318658517863902627024836048313344098142919059193118147565836042267237371691360636113263144556171782656807965718467594181888619771977560054342234230039671354625171634972533725548053174349124133597961186040141419055739713928630846300746855288937399939970199431914924798867994339988260635925985034961149928389991712640436400012351777565885181629486555617008144440738000822673084506650034262590197230524814730531116393123599138310468521323550159799350382937157172275450364339336578510479114518356119713095186615040416412575617372945829583989945874829693997904498663441805542812824038439132479382594650577275264261264689552267766980736864063082484580238578909064222429481906212235486981441060528874141068799454140184372673383752602874502173492492266323983018175111564506734717753162120295577910950326194187989930626990114751537069738453285795312713658027174303441664370731318687894674522435892215048570855503841988889682597226390535881874120985396585085924525180769844420453264710677872322353735428466300105923497950669014732857167928865251890913321551450743809329790171320643241296902783139895168528474779071473417435795449969109503015245623769265483377626173657183975187436741311892120871708380837251148013970406701323769963209385959138767179364310265604307414649797374079191211513830581048509570746424696820978561950714228279242548469766016325552779367898985213743046768677905820912472720225277720688841554821133136837278055519814305427178221737735361075219088197470971856501145442094839068226043881483084150611539783322530748592433737412061351379775340530204400402109825782324569451589782374147834224327601040335307280070902759293691805348148682833323175118551524322258667451903357133966339109908690201423284363015420336266746666043429771228969992764111959878022184235422582701289716152977947753631789368204130827090296190664011632514201467188517977186813007718602420756240424730434135774767509750277216143200118710459804472671547480425777715160636463131298155596041841913221286904724506472409514609714045937690360362838071263688875549270597890330119925960631945022936160980474905208301072479397494735088778864445862476413701762543652306987408428617389104390113234204353709920563880068968177262015539855754519422178382805449199707989307531517996211472658337421026165831758823107502773554595076596506216192866565117820819739802766202227129854310531941960274342615100410906803357664871878384637790074109712933834577671456777220996857889393050218288102241910618284404894600630700581594284655234894294833862641140887750735104219835597574675155394259008324588968739842342456789946992722579313246152436683653152345442581588569886009215991880191080037687407810442219948583632324731608494305445562759084143462831130182865880729444307672696377983705600176722940389718045792072980812561189844394156621079564190827728600128476847300336547052645374362504395093072396665224283732507511649432538660614559513109138618906243985453222665245589361844585404298751509697073496562990530672061398909263277841437320762127006741100481550643692736683986313894326745383525308327706005697439823845425717644165974422554925494894349132187153025201383145245382910428020786483073746105632492811150152498272864610303442082555440150171076937836196064033838427923659504458925485039714148877360725225820437446028869651032391976390294188266870842684776085605421113061152559866215128136717111610516256126138475503286888321195030652456154451335973345151277187037974686603289211407894142072885410685363749148168794256211233934619981785767986232456310033298235834993213976362323643970734834085108450471899376917792725620032450075260134388550856839722672002698906886617579646674446511161852440924590213593786920443149897129516273336622700114773856581967262430708902502002110250423395083515692752438918295303296666887242312344802714533117602189756837003811249269240410727166820044902753465729170204636210911534630276710664412286251441915313641125040358736079042676894475540533701089667217957215930935574011155122036992497810161659654626189007078180059475252866330952294273134042549903102880015443752120301390641705494628554376523633504091042728358383641644435106804078276879545658929786265300665082996289044307754200025442433307006503780289119467584038214193371689097571553641123345950002128995374460956334029620078442926895598331613072547034953250754518421520131240966380766256979871031062997934446783285492461612447210786300637882517688334325944002508362439028306065387490467866929267556607724901396751599628893765237456120043414762114350044208809888917324669888843981433835672613487460374959205047952563971774610873627430132771379585225557103935827170883382160050790101266675309535269662857641470455550382590546535097393932278750029098550197646941649218340489234987217775822950479103073338196175776141687794127719998533384818005562962946412925741387806071687708417522805677446837844032919230241628453174437791189491682689987354997787711450509338452508089500594236393734570061669908582864236762022347379345435943398821575093042607040978748353647327705489808321206358587489398842476598610668054500704241093819454075451456627805638202191430646705837938015117437955115499056585456886570288186536527763131875687948165085023780005129398706427789207944827142738300190325732589625502531905394952431362514044796327770763611341931842064727418255264240904974164296798402131844332950167402940292484102340768365476260515622155688644811651833338558349172791276659410889415305902159017651096767021162678358039933061680832225385751596238012457425604868364882014926488902704583629332071074327159669552886320382373431062073478075427769354178076503119212038842353073416997704114294407887365659353079427413284276757920224352328684096647809209213741636021976024017943126922426924059516262728024374264062426123856551404308716536295132461470181112193838430429206497619876707684414680023891899125857467264038547922799015594834429982041552693154258417348301476572706378667199557815430644589168184603013805792623867587157331339736932948473410921269747734583193575790005427292243619446623275047536251964285188747793384581856299782303832744283520848977381776551915110038646715104259307772960028063390599145622222408380885836318324395673333641072849434407531368150250425523611434493119063520146672043997977140372470341384383383303553527255658709780717386503901389654433471129251390948731288598211398903848158870715119105940154019986398709144574526831600409958763402310876493391209879164044131549153365256745109649518974844926193211764353591779869616612848083858406265861897786557671795579904678429123664675991069640473143641094935356154754874798044041973473849865256555039422932958161775641633701979607930859220865900287058670628164889448102115659744589072829335133955253713400394659539571685440405954056099324012062350639897864279233458773020612177359083706360559962119638400036480505402258357365963623220484911179480717169007237817464451711819292145122437030401630775877748591636553697334452046212587478741348913330404625314836832533624706666942600253128340310638199751480826223948891868130516243724314372254293624291496613338224071431682183957953870202305713550136380539716259750920868865796670200178232383476159531499134458405117487873556595755490657584603035331878428721673099238415866209001844132539363076207530491910311770931873283529928810898685057840282196504958467481574802077102291737881061837364781004374964328152783218707906993708394342614434639395991563126858352003767778321736897247976002028416677522734925327032306749380495394200315994903652105765624788751420879182469878356031546795110736462641606178568868095638342752226305162784284655996695521838153446155571633205184807167679827249498621880019603438410087938231815527185436917888064043416097883696931393270355418840637422067386702218100321223445869758495773984964747216459700266228609184830749802458387473549799859994345017864609186420350887263766282237316374576239539359598624500105680504499883956884667876884090583355748997437819513737685717074192345986418435932901777915137394926346534204891163776794258562670914547091033974078584882932898138390196212696276609988367502267344821983053579145482950204775771132927159549691798739948696636662370440438000482498466961282352627720180866285564636850861432890775049469925116827382307552981034514837077710274229533852299243387002770722504497116217669854064816608629313678001169897375659674085953823789984410950107063138090445571538091133181294102133477124162912900818622434276433410477136923095744236615932251443908361194235475625378191364020238726706328044554402174287513085998545993378416689115620408689840569921185549314474453099739077643776342888314134176929871360152835639972069031246325160022778522017799691525854477284101708948019746879710609595464385647235609184052459851226050247078172241023662162227355452210168972564430837577016208154840899059099490350239740115297519789858162797100047985234957682008003745102501388362509001536757479628059647975686103036619394555376913125335235607600284058549786945374952156064103073098189449119179248803203168762023339295607041353716930506234429863236503267579855256269868201559199849249274543012909243604161208420991938580335414747838706234678234991398186356051156413792058944176866906669085289257534764104074160645258425768946573838488778645648633681757042325460393005199810879715743125884844642963774256458078158416118378408677961396616751837680190227012186483555974833112222183281819930479617463433828957647312238597306649134087412193130700251163986638682565324135239678346256058381347902402166273716767782679096090325196205126059808723870897520735457113575962838275334175142386821791888376841311915857561773885767665589597211072216486640857693971875476817427203444974938832643253706607413011029503294374514488697960603956631644885281827835118930066705484876117768275449962536424415384423723294332041462724652497236477673845942563690649696707965086396128607680829059262792298821049128230410445006776194895078259055722170050982827564645861688645493243884448390587347787001463322489414779279999351531390810105583833975217964602737251260175243039269696198285735970369873888370821210218595997610616791860451958410110749257280993690836393877531933145658102125708591908180432685509414897350817302421581983458995132144491954287612662384007464043283823242354260359362204876162122214890165207710687914973854448410959840137199327377344264468840921691621680194171836296766466591921887087912232135634855605094608500189950848398670752215059786555801809738624812986209626258942218849885632675051493698728479987665517313236332334265209836683845218009332391379196702293013643700533976238075911275002429843172130949350408202468884715262520186407926257723970853602971704896817326694713733866450524054474645608280796830704178581920595444050858609781621725286426378373023336690275653215625185406791553128414381607170280719934729657417026781901359547438660514405734185466670481994019959472501930630569157679757905096238768857994373646457377242376639767343869251080326859449723360220149532302232558986165510214549551975235617222952523309914808790741072052202479239683780868493670309079925636460649532959383585140001842188070837330107302619190006734114390573541496889290225297673359979146739488071347293665077703880184476002078389383901077999100911215935134270224324561364500865445071233994122853917008952161369342696076889976455999182000322125740161037938687216320302551900184877321036350398831557144440776313204088318374686724917579703461353417001648540236944934805157425168352814601539869678476788175618247068141273609251680221315644826288932086156208325035401153684164494277636954743150248756488775066625623004156517280549446391568150552120201485892428367049141774817268249966475588731261799987126606300426397732413402597260510697949981244856307107436107562473084555738800260625324644854641639539440851361660791434741953949565310120963392836374175265487896768248782884584344851731099115212455908909624889319955006469296082813547136803291899148270958739479363716271857356034134788112161949412070888185535119127127554700431076379308234123957926423291708068695010340793840662256839729742752854847149593712017002185368772567971971312821674222828536582546288053211329564463600149914664590941948886661856673900860393174386296996043802687452737290010454920617243617457409255888007406832695180838312962192695441903036727550008339835758181115596570833536786982528341163138069810412630309855632444635873886179116762027241855625457894331292542886593848190604019721831768030396253429757821109470629290153610532483198839895343805835535755982726076869423246427464175111583780063120223137411965875085530074132188427286015722520517291218024771761149319123703838529795589588407701455053285750852210745479274995104418709851240660244014383805539510500380635374696241481631601872137806792250649370627797572385166932592191946582607412814743454505923829853321471824012941206893711345952301964032332626691196311372787538600842595880603234318854114113125015957111847879563687279360991296479645605308289104592967944105476697783080297690553322058261722927705725178250107106543947004579012254142069439403438565526694224493051206529142077961900578212446218242158637891702775475008200716429293835629196868063229550778447969419271683019317218322467024871127463566366357505393703755365086706778717736887867110773239410657091136057097952860502357138251259830298543334906996301546875913480811530700872903928176058925103290642191448584201870775960164733888042640957800286069698344918777171831605741215774004953915951684387287721046617940112608680929859985076487504956338885487041467203808173211947994621271558044485834056956143346814205595547490890070208338502531528668926853103187902054448463023708086935461350681925569699086915983054856620265751351581651273626557897133836205446203972078283969861030259029445943099269562454822225732320595362084876685544732119014204972047883529920186728961221468506549071010420339365965197344968160402166442319228576585407086310858899999141295120342771169497517073847324158511634966505148321209487785347194332333240864723593259828019919852771756351314191602515347389843876830586423556126095697755312352464788222589170056972038293686079414563265432337533793573297308810327899106492103469128078661982987273473198724642157825313014828013398520847966462653303299630355344544852552140532757340936839753332402401330880862561449312830749520023156957032260078404302068481205911770696671934164390912598529217617288517260690693539411534968927660293787847846758354278712691675595106297121076321030101290626348804860321012170295776265713538457389546582736090554488071351856396682324478654172034453193317652455852870552514805118965246417217422331576516574982594465733063901492541209241189323158483877360350276115420280067167929385224553241962705618739355125522976978562843604848671259052676556995946048868308474123539511407270503533908240727897073130215861214667042023305787128445473221205225051415834177248247762035719954380961784207089493827367748195311133204005265416438889755765518030067517583808574473422712692635261452391034136958345774069623797884518055145338740766287936701297036153595480614454425757679057591542396012842979869299804488654017974527322229671642818838414551667649380820701313363606657535359160637247210498847936696920765776046847966932764198853444259375116576690869279480915931200392740156796191257469821204722162060336047233573390346144855057863643073545981739196897951109370142582953495345808071688708991163647115418356152731432997559381091218605572863814139980609498056871897434459591559951921736455095200542056229798814485238431406886199059921146559348684418628245380713503938512670488524733371196733944497027705683680568913115738715907261835189491487036148364377245184192516489530417294596754410391227980632475337372618599589559219540862565627004314594752923531938107595944829324309079247197131203971026082913352298007654701482099534727502239596749483081375599898217209278544785290467717118580796831780454866988742582395720399847324879236145344821108316690636887159037056465497937396474564567920727342731882344600788908389193506811404643090216813351668512244480445398974093120769403758407018380725294521848069004599322662736584656521290788862207251153299682562405199265649923761961327366620854692397980846373167717859842460343206707835581036815055343382026701226477973135560739596454277995341125958630492266134865533302038276100697218021760202681914511780711591599020913204971933622723842416827252036620708002289074767006431022145570759770567288021963639164998649154498029108913452739349713865414136924065316709688900627132854474287846788598043983282816431901119956693861130931406478099661063245044745815480345869871377520193369382845860030031203537088696855380156271063539492742592575791874383202479439913216158007151374852631919475897588246381143596763729613636542062615372859956676231203535325944533234537460089275010485069695037669277891318412271702222892135470473727309354857266034000794491708125545357424393040100767618965858373145865400483856690073954399546476245931782028968556442799371560422214862339272484343386418258509994857987571743543702125666923819173646085793821542338709415065701082715111678573278254067087485275248246633606237986291872056808164951367594279399544177082899726332656486003359908054340202052705806449845102499056035437452035216332159059439108435289586233971019122203106629741997610693884112379880574034996731258615099562246125595322268474940860763015376759590754411305262298826543988950504294601605734353399269143095312501964052219067508498777469360635756551323578684821461881844477369058111795867844182551044095871362479817382865007649607298878169026669012130073416535968278718119120182836262081719085652371182828866043419638253055259180992159886858056460112474520144146749530262554360114502447242682601594309568111656597692405525502215687863027911564282998481782630278043852331352820595085470105798962121547288090897482877395625244242956557892169083857255672169575938193156690831574413022737248378480604010443820766020246801167735777203156370554320694565596454630050459966588989090862381314110814455706276449212737527748231288704581899300840413085934185027989086297360211807829549255463128661347471335436593486813223025670017698368356930115682238127612216228121569055564637154307785720463879734249804139765748585846603946192170292517555035168783958880781814073952349152072142639108096697826775914461323648308516997765734601768253320477364810743577527126664216079144999148627243162923816624032315807483739494921397572020078823829607232170702993847756121318307124382449125297275837932528585011515373421559430213608499398806701187996007231568964287846931125814398900647716964008155898749907542877815745222362463218121058297535159942109486823400638686644425197523455419942587433957657550744198412966052071536404574692067486569775390205354960173242683869665419530882329372098546940800489152900594614821034586483276181884026751708030055632370637831181368851283649705244648261780497598647616948814079067976977872493779256889885900201354882379561275352311725599952122887475730324869787294932174661852577654344007315268464127280917489871264908518570913424749636725880673883934646623994546858387957585049788011856548585909380903880221613659402994342674446578686473557700125680508143646796618843122827735690090350186406769221488001045936943779566663287208565785684474188681260114297710937959309928798261113878954090763900446767944890120468646553820221707157441837969436283607638541995814469483714894704761633197596694494951354163170370413576754596762046232134254479361348522680095590860524135325024458120940796114725585610305061552777171215887538472186512040860260284740234120554533375063086600085523977965865363294226828374691982612016394525620688864489461681070497438053579273287913221995446062099743254519387739293876812510625375385712219011919506540618678523382852204410831369174179826797124134423238505392382119034176554913318478604155387339231518174756226972844968096932296026081004266567404930051472076891255889414905414133846824653576831445139036192651661793174781210051529892149437135183697992926560849220594935058277919511151233462557420026771779929597664640712546710911557220150392435341507744572687905798001059345190144393417185679818987801607661665710315633022299085449601156898519416478611302063980082342247841520556771229937581250978261615575784752479117142448637572272396103481912097286232720741437090925142559069256319361831045393478740473878801687181464418054701968430440513212892935785833911718132000814131509539972510204294073546840514741064922374289120744868734098834195581974317804992551146247915124344050848425816114520028404819376573079846678990993269349109626460773518317737846680424842499633378886799403413581594434929857796909049303565823925993119654972121628282908138215314937276711695430675502794251610052609042840285727711517304268260042245831640312454621771535741409887379812193104906606987911156978889003815219724359234744440646539669946155794317186760899586619847900723476365591018844764529347338140109406790008942498697799688017786155061865258927513780058849321069351840555302804130752946447673765318337287915644610688840333335595131289888211289803800138112433069293016040425342525746912230094357764137367533956744541726504487046907981065089688575916290034453549678652224462176766901837160470342008823895928694451770915303937261163284146804004226040057699991754323355202237098214770583680878809321971338968740561852444973346512440628308672410764241229829300384007520419425324318017722605742814811898414841348910951239488536764492069593677363519879306989323318092244352037013324546650502592568635114776301014567620458612351723681178477973007147669436504950228311139091504322273985320424829685872781977878150263459115031518918769090461671934923357502389501602275214653791689846833044375239825034260440287502309349014637390458979332470871539554914551722028266107341784304682504584172319458904422911566492842788630859081234315530732712200727330834168090502078858062609986053646893510444614591236998526495219971413762713377042762791604075308006704711017752341648588963876374015982098011174916672669928210455600373591596516534193567560231942013301184164971988296738330196054222799218127409727837870609708038382867108523084278700382396807582399522172681511025184660693838131655163850705334822243147462823433641424251247265791053108694911858519534158844086609804543656149943162744374857013213974153471674937388859569010377261574064889699791472774007232735561653441868855915750093379814575030989824250559242412751223341057894941100090106773250223709462243143001357715103716878312414198158499405264529436465596185765357589549691540916002483143311283513612529609389952641100506396531666086348662642328255210358261390855738348469436035105431480420867379833052491940081405558929315162091426780657380835930943519320215925583932383047087229887339613114246920802833112127482946857742799118233945795683374512152168381752033907472013419107858250629811509830076012994898010328799881956478778706068067355976277628738976286670195762218269783501640128275965119782024000306703922441931336949585574075751700948031485546923914405614794742446911879313089037995679543676369220661939312660133037954011693487229575217410699038214247475580466484064721472605090247182332099989543824112508195770413142773052884309854320363109735091604007631993167811635352327178996902397146662400902147778792578860664074751674690874202450198789239680122702260240055842624922984326568220059815273871625783553147380136368392669139959874398237252042544080845825425575933900011975270639385596157622737551624309754706404666691908698660078527379193764368059049140120870034484886068086332697332703758645998407228456510153949566689545654323224123376699626181713616409697065133978124997398458615685175048933081516579087015075475627398971456130978725323281849553578126650036667369869665333537556194875142726950145656839146655021091081907611150335443802516139069487026479332951300449782709026572131253028123953982766189886995385703497607620648893043675291698868867238124494131353651163288031440861775194611060357510884786994464986129797397386212340579966535196984316508685712292080362404150237286846799122489939112502228127491288628574137626025992191312579136783121381169947791994659279925625331376310740358027573939723763464314394311581647457151138802236198289855083586876503887481157651898394487541666990151008227756854998160931751608878525050164835993810623879192494311267128778984450285082079771586101706339438944151511480200699238894868965279949639634345500379851596551051481611985430526418687402402122597331190663534398866788848383359997106130210248312390922063804798844293852127666952904506290538151262663008522454555681701235098834397169173468456550264101494616874163382300439025216618106084058027385442028140843330147872887612433758841370648454025276636906287356321546057357092614040593026919400100303932954938962219508970804260941066044339424138319518436077670677232196560636620714969949055763335453594990153765093451064174035485061394446475512384034613384448010373304266343477668260644744407665302813497732631537158964769142271289267911525456212341762620387577637698202071576216071313583255819734715729292947690066312856367004171131982267598588282024043542107760649380504442607198167926096631127206450709043984103867177009570420742114328882460271529765434376077259231335287059580270713511497524225947398928716140914706961714005171088905730835278093634351313603016701190697437690596165158001007011519689200789688437207373412318304235260524308164328696280344644987895813269127578145478842401337120296531428334148623264838062119224558804724051044647547502052837897474545967467856270528426910176884508196330629517719165504720439665399206556864819783755458643408475558189666921670226739089692067459402176333061223232254760516880595202402603989794796381011692684024664804795710116771306378364368492663162915354596808017400193628150633229823436424607849795043926111899905209231986830900926442269204479624760879636376700237459027788230745159546777756101247959554793315470911741004540215113419174217963096186360881649578678885636634484805472110944758514735268961594138375316477680727655524108296221402342208002221586723699060567345466950884213452052293978572119362395573912318993896430121825329180089824832334713514079708078079664295359716030009829412801463839027729205786646491788809996180345944787644898009715492206960944439116218332722208037919963415193792612358215014223199653637105104217144300753014553025998224699194918745593822373091885924342694220648101258827798740025431596550739312594704555880483257343504104281277235283153648477439284250861620470985872869757409619051370237551300322326844643828065512493507927736252022687340306170862153223790236273339640809614788609826201762173063748729223397294789197356040566786514418875314225442634215210102119545307552782114838250147677358831871106467733690216062673057034526169780077076080724832648862099719416974200806493881751769987770048724675857178145292681156075569260976182082442284874466739782676634814460969792407372291746816256109979898433979668410361028645656646837120515332772692070401445598666866237125136755031025692714638133714686833687163072759970891051223335559725498122283894191822606390802172333433333971815250855748527964385346475101944280055826359671815427444223381779163884016643444899612040133325843130324703960247039975064588673220869267405440352503231878663590320865744020905377013852631422072342421872546347409484337244162477849311368991224760157360498846660636774847670776273775582288452606896921907970776850896049514840521909475000950809152469393212305418128316766048830445847067537582448054280066568467207246250519683103036367817350000200957956549891449011784298777815832234676960261776109706434101261894874603733667779594184156372086975730183397680612650027352170494018803448467109942410422207983641133926371564907124295389852567256079670445568645057726381243855583939583105714719074377225223779410355480308199420676498620611336886365240715489244589037454825555249518237606837204176276395647081997093836060470541774791380403534729856622038522752126438807637178127910440480370447744506909670108521378914753073653323054571490718859280045543468501221112926389151632758596209299896256511426628871883961559780431148710424886551842748832996249014389565776484569623734703542400230915077503597011711820651808441571338835137515537117693475600809038980094482096011578959946884941622829542242255243108590009910434060213949031247732147069628669921310038736814129748449985086780033423814303447012837224402430725800965457396703863300320678597942104210111161119230410264603685069722741511611350466185173995613956025331575012012073554603235100470649226026155574388250039600678906856172805507326665353778273514710209182172083106370200501986786961480736138449984893147446313345973375802665300835104790240233747342758840884602660347660084192141423019206872253203586637252211943450086805581148157991301107883716511699121975815066898634602738028467288258748377091104325593889468904195102121473779501656696412608302183462060530672159173961290364193730972249758305561763531822343432164724178502116563143709928189905530526061745407262061692037206521230388905197517814247547013932191998404836414875088706058358655572011572012996669415777450701121471110912134971778584094581278418979252790513490864618670858728955520412280980480558946408809224486948439932175366205586169222249563229704954636282158317147145684351100678600476519521922922175605333236334927959339719358665922948808587997887203234137248863452842416998187151350997306304593785270732807107525472831525817283423424303498349712260982425812935999665423572173430681079048782534745922507770987776814465546685088051079222199554540005911183229099610680692846376248800540812597868836746985277435696300571614075461893703177233909495832597438431629315245706275117776326576791994781370504772718629416215566169091317717085592091683661490528876106439328304734237709921056174637313946345771728542591663896897721044565756644413599154051572351506306643060725133107893148510772838249209937106799346934893887729362904369459294208860553820383698466154048888124525816641924427968993102822711328384951726137161011257898532965981693506494936611492935639048455837661016740097337328328811703404860800517010027655590887573565022784045593038249822446053058098510624434980174283708130052651854036070670479646783062511192482112127069528321139139959229257924588434490107576872002754840186170986309456413944082931539142257162512069370554283102544269769367280145502519039854765159091855566452600766489136681751100528552744853682185628422294436978350417055903004865722626190344905828207754077278063221421322657064892674622790284354698467118155991450367729220522511897249022450659329313331307102363003559235968515166375463363479322181848235542905027693590652109660429843559629914050005307168349856524685980141099845242390648455997964238095265993120226751047948327506625860454307578866871360981619914083068081164807819600801840931944467150002059572009937758828154469639012274979540751158159345329924686225873557045426667809401896761168045164012886395168532503372046474792454335917429464918946612983849092166817565711163781087695948579721105081357881156379386235205012692234268168025463992041463933893377082460327997445027759094456813707485697628617973748531334125388167708959044188518734022909688530351528706859635885690804921479800378241472563066635504580460268423403524065443266145414385726749815646466440915447769644535984159668899317744667350299872409472212738363449302791876187108305485423982559553924818781578901793992000671237830743936614737799253694283755932222452485536336825750278146634384871622453148779210793796426385064258152142401804773013363248751774383950970913021436817186254810073885022199558459782642363743110842311084521111516314617560078849278298520109417820919326800045707614361963388783544610762034777786486311724643294798519256600086384042788772455783844458104007152551689508915978603112591980538124828671684252458137152885647424254990053867842071789550565177982877886977105083095725597512502676203636240737079922769745132799905943515752493309184602972248773402845581864275068827714390490328049596045567816341614726453530391624544061813300991519328188579694311656420861046757209845970422761356673379410830437488698918563943104096244608179818412026998836854794382032119837425077031616362352368372744516775725531045080368516099435882667467340272690103743795337088491485782681336442468164901142293783440754558925337885856485242520765600532404164351431204433138776179347211172010168409177335894531560356336931027548439137077115888046167621417864238963141643410623262965017334846184962572844161552802156399907810812234793360206320044274867366993503807006083373623123774863358708594253668319585769356684497109081674851066633739547209119949386526194480000148324398381336279137514765241698208316014831630532903937722434778976918396478115100546074977101023431336878584205447052980818167013990431677806909914339775335492707166410716814369559263712337607046943710171700412155285138285459816535987635310676694458875938774784112570926445511593038106679595121239157871434284120453259892710724903918270670815024445840519587681859176237164381530430889948348740112561800611153853004864331301164306788779426638684247265363617850627055388794745037359659030439913413310953420536020034806017412682388397809957062141395454129621763370051103839856547267657670781387781652458256143885680647037629963759533349577384356639013032538511000302086560876960593835599933268999108534162070194125362688898281461960850813912730803172673952799275279255664255721883860824187282864861750837620894523801210440811624295409129641153021066853258038212375484928089683103389275837033977048772869280237481943711487316087220413418064689362868971312603660285793388159609949610667067942034450976445545056501420282025271757159499326997620028902456523789392422573430177839543887277952405911717273492390790501231597595252509177309746351982066283581061382970466809385247840645042445136087538849587105804778802913272601985419483240186262242995996541369366867191550394006856721189136337958033176595049313484396820066625881321626690630542449593254915305304136850724067072624774573415215124002258543269684551960900893585628139192170815644796763075945678592830352242208675060548497684317042423968887725915837150544085093587293441242259844640133265438091307498626702546275828988552917306090301358642860012400304317823537707092563451614427113214037268136447562260401374347947403997833529389060746173049631730877871093530250053863338494929198956622262696767106942694408930417308849697147737788649595087290604442373290016770090306122047091426338074932748124631337043309568065032726933813224116808645487178661714982820462809625953583919038942091809089875217442143736746911941540132895170599418580441197224987087759346420522468627692461246288854553538074789936006036896779321184697239527522485484633213643385115592748390256956320075843717247116192440916197228754839115200135975152416492844840812324882881401322785747432084141861810085247009775397064921265723078093558289862947572879548061299388705357975428572608074489096175177257703498474923206686640084562636382292556391840971198145049080984405355902558783341998237331609610317824534698320696923529404061425387006212177998372332025174801743235096901868709490827997963311317486249282011084216196867905299860799169088657938101939379730804023099989579293500767267979146335109623292472233153650621292267648004921503665713886817564177343412580250512101723830426384217172695362201463281924570745383717884417807709703982259353304642893390089354597247011158550387630640488775729877713165703322443503348581142422266078844527723129668990441827480968128887764836779326202864073381714309265953025299178167162962270749871871986171407873325139235976339320785047114002842953581114026162287794028815517636863617668564969470667839659753763034755868478358908071960811718052600511739118988686915137758885206813775423878770877018739579863193864280493226624195529793940728041882530422721211137379633659131641704691502956021632907930490556416517115893560421934684311624817026357490255022500591879582776877144875559959593994483900976766505124170618895952242428280337062363816839809659978967352661968980151330106096808024181704546774069439114664154174980350807488833451281039875811992282617504834881530070374897542821165281718292926741435027663515202527345973366092804567075246708961670832309397289418291487779663267869055656870345478962823781841412671553610454780327233151706713969543186624667231580746482874808752649883241162985299663639140459893365820009689832530570337604797413596545411879566151365695278523953589512432287616438998419867325396599856498660979672366814628603996238582436332860196934746429625893356085850176835569526180794221452182129595307037112442206198377860209671003287609291833910822981100354225400965134950425990890211245082450481180503548660556075287342588566906451157664309355835678391671046699662919787517756298476895125770806924993229436341126930569271825726019919325144420575946855034877178186640233628463865552059512572213129856833143052237666952333416197356723655084579670121694795055503061414021563528369366671748083979031560147440474969668570558822911126741537093128168183910696631689113930352758940589873715800404437127606300548139497623536856863124168508934880711753572746796192151511477145160546461400459251693885304491430097460662008510240049218072264563052829154533312686272623107836459163610584766512738952031071619508256513893867203363312932608378123366881918507435486078020641016138069213183198799299538928342710797488999461018158869907202475525703709022955938152016122735251589133143966395405417080148300938459074488285226388167067157179550501304617310797347862737817882858887542299049947942973465878454524880231459318178416339237195232629831604708501586343219071948847987548696485566490564652073713819846184474853912988917428904861042549583234045381716298446749904666454998268448976789273147744816202227985190703635744089965576462077961286933841979792582531190561184190011667533687026664632039902149709758034789936401655728993698930206832351050092936681603430877572592721821499460264372856867015445759480914745905982733520235052639825779531782536589901135652664725596026917008012158010283313299503706401019091493341806253675876407125949950103777922859459767083687447191781023164905169127653239746015676419112380734679180902178723924578832632494427747560206548571675475605142896264002915197520736777076275163642651422777735165605016748982098336761062578639591915491813505571428555858384037381393334822261031143055564359701321611433724995723742642047224329615901620432418809449969464236089644703871487895796247825577686648166819697055360795522672230679587434337185946332309806997218169287901497435947523075333313282736653768587695287814607851443465315696904373007967701106479241225552786640539037773097981615395385298934972879752189876752295920179144840052726940545335958379032674515711262211175197506756732139950678591436176466163282529466349371331837848374237620768111400463512235928304439101188298607965202749132769230928299356777405290672755989602308084968280887776377748741495594019385541934053773815012057878374245666850573842728698636891717789270944128404245920826453946092169271546343537414284567082263843102626866686570447048961161729925109205898465625281026249139649366581850676714568143721671620805969634933231242187095073318729366013888862236410218488687013329238734159500754404432614973012611058458170000741392670777325489867208008352974875661175770255206325222976949189298888592046934748155494821801685518698048439010063722364446322358742683336028755431190964567788796663841434745329956290332776237565721956426608212411140384036999758161412604578196634003393081221168147694033005615532443827925197814502833914826630657074367196209084274336118854598362597574941145893360307474565879481488831846371411066313260758772945389146451947517699510344569802102069338389793781621851003942526316689818918864864451883139667932582561732154477299439044953179522503255731414243824135458675620037811391660103622618498664875975956909644254295181367543180702738175336079394048691000605354345701516492638159894760201487303404202420689374972570366886424802809257844553806124854566825198975433907656282164077113250330050505864672909562830494725712393610312171812171760301088764029360441233574524096560832766644176422081433366177883592313330442547229253234745856331382451611893807107614067051724361496290100344298559973528180395446467473754055482067007306658411684830923964394768921260167549530431345293216063645882746726946021891454937108305687037541962673409849425793964878369962931300612264193612600955790049246325099138356115613460463275050576161580526992778700082573745248604506699779606619982460259468898449610589086492507124868280340126147459233912221517552986287547388374234040531925896327265995145728542619991828733683921155071162913164696502532455060671577521174666520362526906873515480261735043688782084029317232899762996475887291940086411687035171747804236889768980340104716823858422235992942252227843354409210708996091866753802866144514016012721426403568116131318313548680487118078985109165504089591847919241839374346439227862368937769815121917405443674237979656757267961660507500633231423317924647192158932546058661392834531324582823776501058178203094607884647662554395271653347076545498745598998402785012457319817950161873714754290099448819624005090947554419061155600586396589699601617835251001525114935813743531318594937634472248164793865998250487291482680475438850487939768802072233724615370336329835604631542305145058893069945650956587500726172297812529113202035217858075327912281030307965896305058480279876975704485310919916800709842620488352211444020588286037319086076617208722864090735688733236753596911034174033008474676305558256078644917335033066706908913096478822757261652734590104420523512582242404763451093495733428225762014174913950118065890127452453982258531823994220586308335632168519917885772339306142903269461889934283912625315684681312414029457065772705080983153628772721565381127422246325547572291065494197384593054224969865864948082377934976702369696846989116313594687661665094171034459539595335794503559149421195402085098335173659727755299309914956745164910422892108980411163607376328797958711991396814175817737686812386404992576153192603465039456248421405133691458766191690614992417165373965671137294870314291290683734396382242189904418029160366664736541719479661413914947941207910886876527020946222853774728539810194561638166213764454506024625928230515935144172033129651541438250326350960527773078938006007639067996671237845410651546114714338664158113677813679622737696599022141240384969879752312151901576630916969201023169962481955114769976651614890783536997600747820897704634712138213761462818465383313785578778345607844058777759613171763215578557549884222875365371609049961346820396671494312358881414040444088383283440553848302427616162955979261779431601562434886898789040223072611731049320660302101990571452955967681756404342004582393600636098241503337282135662426357006249281624038137726743366739269852956679413909153657301137056036099419618645366063515879325884699192919758769506926376727571087404226054766018848432527173854154764111465954180322110294396671130043250797278128823359523950827299797982025229498402978581776142581213451578689518260690064255033912358114963030416832924111138294447709654626816446608801687965380359180723959422279845609753059939139998098696189129185029602498673719040737426125069023546064440179173023185655826736698169680658762966406552691700548076772561902796592304614130595671330655279250440076662796892824012179233201966790362360566032587285718990263886760138399255016875132897481448849590691906525993240105697325201304732434234637959952189316285484990789080163895521152133856027447870232291818665830386019802884037319496302354804365321480736021441989390922839712202009760724654748941462343318193533997697499385720433116121519023672375046986048451308776213666807721752999495421957017336006098259786300952128228181753163941263100279002659795180285164804950516930828858088058154387737366585499041924247520224189764754227695086125271548753067175862023818337323414248369626326281832937608929189507025482857440420788210656295121481330414581793326266251560974512005262619593363043566794511893364166456825065022450418788158469735524796540291021834743869642723226611861761697937331917341451114762313237244235571034471723214539706696712680518656321466397529794918890775204211820459972402799729641709092554106204217978966361787462457413956869823119306644133734963275021869571668926365997455715637482739840131476195128906821245163092342952189198848052677901131721563109770797213980218473191124959835898741151249218532415766416365584280429614243290666285799049904242642725259037595081473055546432375936365284566174965450238084620508259106787815359145018524355134292395516404376551703409274548488172372689524555507686222753105618725075699061234941545201158919429333219866155034992328703492921837789626277786703762710010014843029329883210700051445177604253483839032789696313722175897052011358180505917345909533731343279335341467684737374807290742283608789517706866723046172028537995087581014912957608483140524283217664625248975025513689232586758413555443984637135160804945916721535226767889882976063780836829959040193192407663093839005522248055436670582187886460642812879579552634184455244470801464968899247998971581341451395560010728854305690181936161727515746446626395232368778142286121580909874691384543369373540768254868882438005903774860597804511425217009049067780916666703856002435560334205347566620037757788261167688752093918200130111694232154374160442864589354883610434346713883755686534119119722867084621304106932751865323166155107968093451501312431382410630700725655263263913517262706878919831320912371942800719720433035471765715525536615612861759138787471528821460491134821626752628674756309405998388022941569284268348729956980258299114063484465694575216818728594810140988135596605389483906152043999785878973188852253190412870231803747823298545481283936561946589438290964920627001118361905620164909307257127096700537497031237161530989603845506522923697281217667339171757189154744894847122502596781722432252222312287609504217858677624164485774814221761324094797721937983834298009644394128570325000294506484178726599575571849064680052323756957944012270128788450464737705950253852228453396482156315401194532982029076544196126401805760646028676869089184216002011416535786249410707295582503575567137349771449175230144258350161626915840029497072395171930771004376636851910672665630373477003665476359410114229400672833151831105815411872938151993953810747042085818424807159097298414878971081641451713600415279603042049606679101542077494076822907537600305324597134198988355551881280002911540424294991283465764901671488426849729020240690139801180235048896729974179301063375940640054829984203012844107731050896880668722123634738626319159184377375847121372094686008198162533159367704722560526832311220661833899213964749912665060047498530938513501508948014523797744623000154450264942257901570767680211552436665671138850086158323010482735093738719949156836311763612676485379340378471216611525982101933466770004239522374668161651911016879010542120448537665392364443832117041875482025773083851435134249720336736423047972221559991675814384479002142601524294136598268255991539153141856290778139837309087405818625087174589878519228709685820433281486222920705341048705505863049803091734291566013835876564153374974617588748957315912495211497629131834604533711230071609844416297033467969836885922841961348271474241222527300848913914715324557447854505848219742457210644836324653740313169042691051360256313341568501748821741371068242420532034983162639009377621105376918525228176528184659655112074877514652694112884051998391038193675963976532435643485749176491003378958516840584757820218659912773202281101168753639641439941735727801920982195831137010816003599635931086932822334044573038328244561633565013372965755950030969235098364184967338025974639348076196658858840987299253071802289676486162166627090861689494690645853869297206065952826197518499794626215953594851541563865874056533640259016898088488622386818474494675926739966663656872961483229424456400569004952130700943460433052874895572094939704018621363359306993126944837215308337385925535070763383193830570231565804172585071746239545614875133438847045860167865610296932212882702176531028976404515640217831187499369741623594187515435585702250422022429008673975745206682916602323041884740541555157685564842652052581671931600227073301184196614684344932469733220003979381545532024298863139105626608802450176509420987429483508163718190091610574492196441577225406899104206648926902249589562321378457180251035079788546919477968965217474042180787901197303791712858125636948016891689610654232645803330090411349339399632771977742342712679613409558158888410599410896655312836247072356432133513745899942923089278470597353963084625136596721194676355925134981930037443523955606189741679974294914341751208688919198513860097732649478973597324123644884970835754991307193181298597776929303333476562604414620606961034613530215134705050524903775617376878609908690999296002944812183431547965443296687694099142285319411144546152143861172559245048987629044081825206291080284446498812031868420182710801078067121003319916138221066878106087254989135739805988552171154169576888881849131675027758227887626381780232877322341735400566952008744469549848170968231237586305168563143421965432639416625655248755478978122903123896327964823013943879750836180240378503923744239573154640205044875218645031495614922498727220737295093106836693533949273175279293609206381509890406650677978818675076994207411503746931239725356501640692813173951791347568536938632525721760474794138965850451489921300207966036581313965252087798218232656965274670831769188178024313377013916405531011316000770465430329061422495818760745068667714326429490863965207230481002819776119780375210646143670974124942969614775823927212566356617346441637412136402538112670338056781595722224670923723046460849054277193269685717206693591371720535937464360684580051540611801272362109459597095916982827312074005660649722321444748639982340547834185971066481381522638952521401353356179564501035247512286636739646740362444965720747520127020940491759919218435854464927454597338290701544382183365951572293101087272338828915495816371188280701957272914820408234077996257812716831034544469136529790486281096445599778035869086710560777046834575658121266988422482025397901678511696440291985598232071435225435966535162701130516411717416565023945230174300349224723579900069446236534552832517331319911845832030989562435211045079394216382896304692275872975855986895281491686859421215427224405490965429255890575952632319642967361180758891551241864845202350143358275850279278894246228468751785840190821392205335646787675114912378767897987812029330997553793480698440368106513513543941991394150260637940279621719978524837199674529609189414536445444070384318112073722523024923579718466693236237173356009381735202599632877484303951717305993970351369691167017477730826119616882055253189136293408194010931071944008328048930870740030555101788403805060413524758507703224324325358255685642512912318837372767062585983547336930865486708392246174880647089870871496504400462689549660283763418565825584702938819083676220123226560765874190549485035735710187083736274859489490591008376214847524438667963843814054659622579517775174526859584116171296799673366129154525776123225993474703026873186208578186682188801255969796507599728957725416571644275910948878619152350243556657844545849373163597254923146595032843558233669217420210932916066160235504646352715007129699821288346222979015894663633999300447392116534994288549634094101675381895471647245230231415373977551270842440711528667503775533596743889142745186965255953502882423258805156308365570345698841504605514585599340010541759070084483084571383963236264797947037986253784771804019237905146860818644909457751491865235270653866989714128869134958713263830059048880064238725996701011831072375684533650673486576666540559567096989085088012753144113493765845897926906935551648110780265516573478078556700929396552671917129024936892782854042174127511125699286813558648352781152101074534889008015838692422341178436804874659751663440587132164132780300327604071104077182454841767219744965793430754272808593704923977461809072975372477814496557534204962558558613558045627459981640886519761081075552787086903139802251599814010892816494039469808194723937395290321681260622505430065865673302685428169600845732096429581548868945550044034965567738818419916435833963240653304390766590255708719575393210361997777791811539241916661231367261820392294358680119089574873309512546080553945854478608194687316639848628091393631678965182243628651947456269144638552472569537268884051955968554734947163681562780634227996258776585770759852532007325445052071516463146764953722193209642948989248535964609824230959876190486843281644321658067760081130336262877675786965744914035418000151252777919766203999986801773606259687469376094577856530633939889986960905561949703106608908200911753124512901120344447911941194805923933258261060731385908892977297655522755142237064924200260357893104851271495416822319967404974431148161280319794619470562585517560082192158095413203097038381442934795778558189577016679578287483104705029578826301217985158408096571147847096579187319342663587882004461872332515738548011905645288945243576467593536010665055910274897697503843428327267141806737351111635300622167785628902827620612367895933540901506981559209601905392444175351334741987928983244508386125743466486883737799508135608630557066795749845500751898253048081452035070674664236337777134553890059590625597651359091265219268244548403236282640201360650818800079568228840959456278446905863693298963804087514870368835510166221412420287510100593875151521048902392405913918512117441908202680112730254446973721498120725078594708318173384089849219313798715269683439950762859939815493968389435242698313806259900611028257394335858927745777695582533171005143717281506235870906386231117131600556592876222584943774126945189375902521995492461782950542740227061219142861356495734347884094240468169498454136271479735172681892123874263215939096338460565593569332439847989063970093755098819115833552194351631552967024855266093348363636911826286075683278300337193003200366643838591162595781289491819656181386147222632852307999041253459641313583300555540955166291051138941592170208330652525598317364291067243222325758882195184587918433051027924469537895997836620788761327881234396753310696415871373315812910965966420533270125690213173277031987079497784012998613584777155049716598561709538920434421679259928271066662834560632442259784097767174840970362789688658777932075297296325745259460265132735104016710672206449485395647861619525038886603111224742344496271644734476351997846376836867399313865263045231191929142584674870220231093319844564169996255753920594804159374454955651652405013388541848035069346817997294913599775587245790782705009538508158590752487095833570753706460278914147504578022329470180811001553811764527915886003334729481828275019406568920037679825397425063292631362220504383759872908012141695400863546978005242759783518285128246212669566902349914838197953796239144598917007358313969618555946641372662237113806188307012787579821417862993575515500563207985919557960137792452550897007619628010149057815583629570200603775194620030193071764396566331918709948219288395399344355199830356238559212669997381378464865711122320985527916518619964526462121367014024733208429472487655835023067752585816151864670113528424023572699124790008358100244566163920589546685130688612883752796400825074991963402850950747006803896814344864557712760258172008557645763787300835506853174633199224963229285077566135788110481370367567530312775684557931698756407000653195884048807139155667413702746565188219056465140868732851722933381256434918737453088905136813277166254050178934340171447203304052998724731260446951360955091846045654507632230319123847243340099074345113975355607986768165212631670115436344986760219993628561932158507615328340567335905068575370990122972685799586047578609411418235776845905482313266306087533378816209767952676299133359684310365969816230458270020511330169867780172632831693341197829255310000468438785960536473541181511393817752277213328322758979534786162856258068313419483135945813373097581624763434744338151457382823883095957897492047912608823724151195656776991728286708579145805394328832976475406609049732874370438621761045888879723313340006420352882851868172814783035214444053994810858337960864258989252503214148053179737909105145416793762417066802223543826912831549839905235182219389011578612599554746691493059224682958266341917287894836880275028422958539965298963536118769305204979343692867032085377325989161975559372574977413222822530283126130897384942285187801606715699455394866445944582725185038372512889211493126769718491597087074898585314458927861271692232175946045463440218023989534998226671805550717959652747452194037374774967328625212575837433380649926026202292103486304693986392372777704829418624880598388020329097323959575740010783635591695807376197565304558177691018625086762685500032148210965201002280387104381837575571714330795202798201720248137360369231504679299112940502747067271370120567642692326367730052003936477069959353086888803339917371971102554795081586198439214726478915853289018743080005219817602309991088757111157244091347022203982510405416536861172547490590216578491086868566255056814674142163210615516015343082378396407432637095082216289192161195342225298380307142815544617623845300653987201477624326053782935899897947324553289725371126823360166310566870593812759072357674912524110569280677030684916688264279449120310905884080078644342250315136180228905528802765205445070458648365751254187892354605641256900286010826050637266303002453115878639019647560329076572141365057711647626178482968596380725133368012211480426246915784766119443386129705634069834993584255701252971356310510221044249147222227372771939555307072001285166183215344551822890475867544770462552906276432922059020571706927839485306282288580434949842106394248277166320093089949764721187186121698605380070870778522447468909174770063942170103585093951269012132403548719533934817296456696078684164342136449002969127325763824933901968303839525362267560839668259557288690026739348824050353282517735110106384153312949144303587670306188698184484227291872990804137729136489830016792996426807961074676925239082480380803826737435508502377483707935391384124976681959261519903640479992113050980270290639115496516721679769598014092925420269543103707558415048659734127573186413334642597744106493800466532029818219620631524420261530126740389481822340889294120967273042028690416027889229748047653762596894433750449914156341075999091779684361991016907692301716966637003819642948392826553353747028162314326867889311288340844380145263674570412231795314150306816214397435852989569054018116800056700029831494150969898770682341530773888615415373783250326478312982149195840938049821571468230032098728809707936937318528106746797861654219384711690975849448057938392401096214168450277845356856940151238461991745596646400433108301110494039851544884856968169872617496065199084617778505353812725016729952497720003014031480325247327303897773676924697194450786487648121921837078728096139699402601303769961197202779332328766985652226843625101646534173257859860247804584211023839298345472586634081972646119748054650544579580371312938384451207737945044487632897781216996684798188890130646042121587215502498125800051440679781355589016862341090314180821272452069904104416143692930604651691697413425633224079699449856354404628157486332051202471504854305272348449686723968717137886484647025304387723753593704410442282999097527877198402978810721161820003701895493753193213259128446416142225314417549178529362101448037100148019535197371449507663980821271198967767162664106848555831301943194093779982688853649562007456565116400548461254537215269060145193795617245013395707716282106516707763391238045265006328933840478912975117927610438333794653406637839601156808790549511623302934102427516244787577547959992712933283059357991929525796049041698624933541115564575610203911493776094955007668278770705646655637939008885670835703454287427501478916795586478155857239614907364889588450631319751853125923528117084660212975303864615473169258587601916222583568426212129513009181659050136522143824751847191372631044934633262571460792378447517023623832391752950742166866956373138265261259034866866399216828032835033483346870541804740169292283042875878844202400651771651196489100121343497316724860410338509350097037436694476392111807017545783931632614959514856549397751835924023946520653753981293796971349480555016142959929798696554279536092230926283269377771429409180554035912312792206563291776155245673936961247540037572597830325633304643514280730910229254892239119016237978966032014067563951690084828172373366735698248042156258224512608616041116464728855569951702565840086973896639622192549636677633827133543358726127858164176898185585387447429711571211214133004405347068876843737069815872472704534513473576516422536869616368348207832925140275752938171357579266309883230932468392105284598151309780293688662279650557588616103839061385016810782020221420249495689820933386101933158680879919302806233702667838520101665288428094977565170960009570394212956174147652288619676392706260024433779772755178576401891781063433810591067920686130206777469512751590471315432275467872659128370409219961554054630550558511050391720594981775605952963636135199006825236981010229153181207524578442326677865309715834478436560462884118276601462918251067987731821898331626019884757702786693579191348791268853323344153779424639188860547006887819126203356802711828134519266362295497463148548886768130482646886889612357986628818550700124433676504919317934932287557783002834349755934691494881999441669972628036790827210049276824781918234054362839545797263635105717300802586165757542805488699391379067007833322820572975506968248890199842391636633025153532720915026895048935437456825880039616343879925436816694432423498307029351578550056476792879687338009441957671716997154175670626896266385078595513795446268881707178331662044946706427287609285711175986330452957286729799356256272752045210602165068078524327799869894757391310765700415977349712229518135630323829764342618118232413649314875059469508678125644946134156602223301021575546040531527464874708979751257934540770130776129026365382652445171528470106209745021109211779333558762099388383681059710122180717073078977309018272079395130348522640595318521193370175546048612562708742703867380524811060504476637596243614553593326494446825876792002825322940456113036882718942263641183814416668440680928366993447075022352786251548531667918296673036137829717403404423497888299658124428200929034068139657526583500230828912229042802717608745988786646832700211700926759855457360032405890626284168848678997896597384897781086872341124667755420781353519517645088950373115737905603123378253640573931442995815354248094850115570068430224912784181648538360627279438000208739193438096660867451862786102464879606667852460793190511758429801708560364409293461237012639287694047351678112511765723144197905934789384930937351206396311103541854801305189081790564388345822285626792711031486064401262847897148231634062923167802000417080671489382093691747862248945722532935899669914397828312869065999426079655952664976327933364675293513351197058969947252545817472627081601624043203014604165338177048986261546552658457183535341907084947447953594608121239985480865268184689710466809216434538418706852709293274281175755294232234604087822542181520761940233228328052397208267873765507049112952968762383983200702845700469772357669295410837312485868630293688182211318249717866880760481117387310731810049114680828444402045868245384568292126296575234416929635741479843721710885808174547553822292457366345440648606807629677817478051840787202248913083142937175250071182046056545627685391104285263606152214930805894731634184594506107184975930584128604500825525846040100223850609516371984855259308008137136096121789960563436422801500210818451106587320829129212703470623039865758412745186901719329680707961302392183471897856925928918749881952404153335269765897875540791411892870982613064416124865187596648789267092522493892985976318064537459536517854505429209860534242052925497917065809371282964153021113506803026725954626449863293592764250890109291492019474915669431422247270190222287219938813644756315706094645589197202129725978497160023909624191283434764683672699021909142742845991755786664100884085643103165221919838883060387968032877529127290853434167620664401905430455626716716173733016832558925100949114241227748249936155146464017389562789417451931207714093506181128297265321146515211676814153887480641532950696235776066160176909747146967014961071096198496218434706888306315438159800821848151738171440311602826838532281626303497752435121610576483232287111634063258799626128693014247765155671596501077736911440828458967081699537676194102951032829738184181083301940202440490151204725146423024893392717958353229102986146820514843519395814588463038863333588646746755058777244925801404212787112390544809636518899342120042381017089684025042665951747581505024311985186974500064210569695891646059573256964496803637216516328239226929751309576955455562473275661661080703796488578929507995141928755988098874602634147005392909135293063741443948571824695296874845546376994425251761001116657853755339811869817864123303131975060293193451077318667676656208252644493068326301286361516178083574049840458023475983948162982221733288483485928617982485732766411514101253939027132429501454590353960977416571655089486766708802137919963749119905510954883502537416143522011129988594643780153758417663396301035286136686411300129805977031661864055562365085884805271479994686805180504398168505977070232312235812437580508169238270683769367652459604486981255196164791570993456801155683116447052690644584260909908034390182234031974534190919675502185714095790698313952667839141519242878457425310140890519787261362303898253309631883186388889082029114650537141971331178157532301264331673700389222940053593119483155863305258808860828928186231598220566587378333906585663991571227959353703885396993317945772769636775456630075230611887463518054666100843863915302326701278596971707463442689257116765448397717430868116862092502844871789392184357726733126008013627959348963876173313941982951061055618227944130939848661375126494149329762226171888382386606626842485026263619507466277952446155074339589237494955877253444384955588199181111180778615656496452250232551345269340718130077083763636304075018051188531486872260550015549421508291472918912935105971769866027715672092868043779722343726550142307336266158272167608772178013351797636456618991212447166848781610324159180369507565195874132155998902655982161879686431822266285113144233605066010605225423079476178514159671831445617170127764112836168287001321842558097561141408352237788137198581876542827671819397396356852942421535401623104108067153212208989437237662430432594304744859630260850078206639096111478707938506783613298179514282276371255670918253247924855192820031167243927194080133736311830114749501919812976509951973308835250006220950934431437370052359308476363785477986711755692517873277556941084621572989388586197428841643582446490167386154523992825965773055314922233439941304713963571070776513479688929637693605924403037785407885392402104695844792313297636189824870537200456721260886289867759635818528116955675394234095518406215906070919993539066583055184807745205254037123583646434408469984794135444070050779191846072688457943374287845984816922787526160100181040867738450187694736709283026232411921899472142103539043755872029022390169650802737643585282791363340744580896647397986807526288666996109298547167163984990694208188555735240416400420537809954052851261592838579169281500182893880855304129206743151466123883696347452934595356850171603434359044762634791678977278592523242278155556600346201589412536052044374770635057050038335844143219451066986865952471832061528906450794817377377638534143601681039314766975994874065254535540222400929152110440258739778307802142496614593324559429765547251264077244962832535473132653091649811131482397458466854872074745525004556152131343692647849718595866616668074905906586283560597312343576763718861831406470900855352215109670357883354611951997695410377723483787049686800650310913543685956038226955407555051139408784882581028776818833729309703671344182837632534541658412020473306866304878629711728667548766435016395568177766034060893109092040963674645983036411551118389960079748651244778713837047783391576962539343459860245350520988403453863907794901074154965059256982436101575302301982337197876178253173640513191574053936706613829599179526968470799743256457557080779539238980882666756807391457107969965092382810347573814887313251453284583349735708748494567311694337263666221843382598923616708014367695413977533849752529685287339901904621978507170818228114830446517113208872519795195933893189104272168988813986885654156047234367748176333244551515663435548497571098809851599553947065479362083023682125157164514608466946886058157729358243959821449922822154337426513421197490377426636787935188353263605247378739371112209883029761041403160535644837718590123093095487949373698716398465037441731355647106574989634375642369573219473767085369330324450925968341730392168266291278165611739890709392538999862672538451050577991664173361635357626057922696637014719434502339380492029886310259252626156309271631448073818582956861905258980238468955153900923435458789400068701638554270426886766135603950520819381429152650596487435449972591118430287016768454421651233358151148406077939445047666925898841122050500872253480082175062995174631791937554781468765307003853838619386085282657013696724843017068327154517313247235340654221197939370081281372473482077907601000603407461217266549056952975050361578435562007285558258726286835492450478999533482954327208333699628162066168221462366747752491169961147752679622711938269378434705552883370142923499678461147319750043691928087056069099834988580532709310094681358199931903490850129743311504616874979160268187384981464664573301783279008605259944047854514212906010371999645316770314951425558747561126385239487804709845174754361652328136915093871837171419385321176189065981070713422578075963080632359274359246946250470055198998316832296202453919935795143787270934418968532353845854269356029770065322279704615800392010823725364401354209928697801292533420957267210508941897818101587319306124964391405551133161419313905806756567027965636881381171989808800792445423788396294448549117674711733937312511735526898141735615889800758671012757114719821396228882721796479583190854795515741801041964907002050441744157273546581352924578533671869581757357104426681825683915302012051027637045807001638727265692496247120716932021039894143521904840237626425464667049352705685542296172372807477884548628970864449278125891962769300734573023865945844390121873599194323299604224947477208166082736453548613761259747245272603383175961959408433145787389301605253015539963506871133939285217960381496090673434577372614621533341655047871878685819224811218193494321004663104153126860022321915379987402208338017095529864950199149852016169093241267818536642507659925237511816340136117471751236689483192903606113946268856543205236380041155811888589466662059433678597286024243827946578608762076472257717441527600814933269179275013507588089398843481465739300066852129619280361739359445598253393509177845675823412737410652951626229514973456510873446912116837523160124815196158086895691777672452904807978374916361204673848338296447132999637287524328126929078823367132137961454590459086997485890365039349489620708261005919254869126221336111421065591429691294744739802427428972863623858968091425586188872264440941382631225412500299068204242135174052442254720723701568395210165409329785114702883492816429693014004777391562580839817247930418962132803345254526872185849099451495091746745625573888427397563122295879177666491554858081204920665282804465939732268443089776286732054118269720915518790335569066463837519005176540211632051961044902920556718298208276637586324749544367966094700699562052487089669605076699513383297955435376153084619147730060034306961463125330650373268200613789532286469446389222328737269408668500705585805236164215040735700499157113414398593834908318530219793851067080957323633656075303954440947815654143460842387148984001718806897473597198330315455243946637556197792006819174992620272199628741586305467587124878142840000858763301900677781121520642229674527672457669942784487058485361057101036000504128917797625408356749151440543555850275594547292404303764000158829065437117168943824372161706962694420664751118112529781277843235190855524707679339940432797191171780853974305721244231803714921644126851248701304019777238232513161358403640029510381104882559183938590739386017666104026930597960894782241636674528158547537508211566515254689090158916810680982537491695873873538014831071802593968605266643648367875606774847986069489268766167832684831835864717095358150865922855703407932248893943962176957428830519810135358388904788713160751831611970550768206391443982162803580068079503651633413474296794133322919433486390945473669203667595573790738015354207818836046166746918634534492973308489822665747902624040803916152608185851894962116850622052307926229976224194670216749666114129514472199827570537096009646608243541595027740145614062746371085588149473183143588134472204202286933256591943680620162566552447227695160286449832457396177065261814783502655911814830785124660951688296621628117224920736537270226267488945084055217819666056210197874220256698022876034181960491783306532132404286912002441823396285554352856574300274433517687165592233920806273081128801246059819401695008738820921053188777613741496223160250910797352142113034998840466177171936576001712495285613037337147581822413120325789415214396461730863364881852908946597088994386834289514668419130430516084773931673942510499743190397372815323152572431312378165246396785598186423806380383721313459347117953812931328447727298817657022841260986387424402356294002180609813676818800039427187480246298377045576211962428497631650762165050727465671883136301698491830624696799562198691328175907838859893127545957367782735256364540195095014892055902459808633243959755191649820644901962381591288408901733440064885973672303356198696524441293151572397914019704496341377900823005268687230140768120156401481088388370467992181382890055228933915509973409409416852257002714570361255836196896588258036413490202381350679493997498020070426761366780369514712355030655089447469908513194303683872294836542951269388281636374267000360256989013480076246332808724502803066857375214651086764166533196612423018112692579539017981382759526495363139202156780441492647133753148210355643429157223129156226748673151846510418731265888597813475126589177018669298454581245778961674035356409344441555388583229064192694689758986005294456963153933622321912336326211173182534428520684784633634243452259306702270744589824986334486989773580319341099794727383896770975905108075680752869288086042920565107366553229934228064649924134999500325891501790403351496665342760185363384111033416531174578064001573137526497819108381180930947007836510018779986725910305422935446707579528664507651877119827820788377633984662397799881335702913959126324584603028251137559169325081027903541690628079341350428120229794858937584986555173021809367161122493699633613977885901051136899096442774478802002436642059795030879151714212796499826422670803502901255931176418866442109297059626262626504866392400682110835713952386285599533137774736973267454197671987252428514409641920476411335327710164456990052929207162417654580057374736465810025740227359559048984064960244867402176423442230493780596335708456927474508116646912325735843857616095452344045646248218134634676680305589039674002224123524834063093738786900830815812841410924134827714507536995854132799292608840450082164047310695205701520194235078591885275162482188556030888311808850951038842029517798851715873606581922422723091420284191905755724646949944239153078708198477912795032950271750916890268073772869183670820126863999905308504617411865315300265264271268475075920953397013781450495369689856049650608157170102981663826154502847841704852917577733591432249920160630617861903845570288263457019343656587370562118804025980463033163724917155734708791681732434002411902227296057824833340177574434030471896427544676649600665259200296819226953989544325610595103083495726646990482065435312862660343395574281499114639969286129129877416126470390587048401987458414021617203705396250686588146300455642475743637689429130986576081436890818555541827328270834339817773989941218170235942600079843916841171201095580628195746171824479637562795144839833055957579768464398224542487889231778182467544647332358241145838523906807799494613063579716487435688257784772485965059345669016509826764799739616131005976797262824579169404245203465984780932443238434775277201580632118789299842899319609380738624801995377230272243764379666786818544136279743038523334804507415689629234528123114257666146060027797789498549164111545718644631468710057000264926027340853586674041210381152478495315182459528645817987253406326305351370971003551057952932663571295697698282699410946240504437019155696553235881326444382263082244624012242016292656791865733779205534645023548316953714044764421417234534393112893368617609069767647259648851556152548451622985612737077673785483332931514653750155105210846713678180866889416074299386117726516125424239333896199993431267286850273018265142872570215522804450246825284361065424867506898945031075278199424412615767967640426890454594401775973633332726672884516635705384729000612102852202379005343180709343632299452070651190417547482320595051086111198768907617006737509657459454298062152611478407700403349111338296428571625691056407755313179784163898855200691498861812676890015753721698109593816855963840271417297538968083632313662830899378206769893053116573399287158501021840377358613434166592265370521672874300907630545429507444220813163744248123969907746210536995516039362957391755425277630773661730259513195316760240639747202621364186176984465107713114655141317705800027954937140670266433202357501178329524751162217188107932558131301495558922417200073096295416190510659602772904975865978075165160683302722143494480602724064392003072989462339381376665059258134687102706178372487768669983670365588885304255500882736481222540787369109487132194081817640729076103528578000068616757346780958782092954067771304394930178901813619145531153155216680103467784610019437530903471396338478587937156333481505078724262700302960124992928119362553673929332060972135081396099131152915866943004248922243680426417596635486962096827820422340747637473387860943435707748435466265878759605404095008565199153902051619010398253700318142672936346840888383346386332115205567605469065655689977603263267237383160190002626780965428710887939207916099727873135553324456977615927277531572905431189864857716708854009628305765313843020071686644583947271777056687046293675151975687077927430487309537981860926253220474925475363665673304946657851278552751889203189730652916536185493816072553197451341623329418221149129354504901408740733034790318357088464753245122663320108653782976068512558854039336824860243323931522094076314427287972502536320760828803867673614512147097143199040032830554680332820262399134070029362632432259256447870817979466539609951517319167649963763393204837531869709705710442387521273804213662200409066752510133481679311416812900915998072291278244621430528306383572787270073671150484601291680704415142781930343351614340916004160550602750384529773740940674215961842260099897171586503053048732212472826897248811655019070769768540543073995631570381358982168067012546580156118100531113904133573042634869721236465790658871123160014780418371624407533638561884234965660750472966875515964694513819847718921326650072079556212928520464154131672665824348048033730385985610584637956240886029368758330227795596222916963230850935253253767750957133782886574073820017324883183852162344682882952580316896244106220173037482804230091893003615887005224690205707299383804140992916369487671635614424609815279626237453082791501964692867842874261422279242907264441829271902684540698743846404543335806257587545949592157853554384731902201738489724780158739805541956125998315000013338998543983175311740577570950188336489230501672325424983541563739409870927320335677344170975833022577423201889348582071019488830694006880755768019164686870807034012498105424771975054177948616127561254132851744913935655086484594271093689026833706291075145367130467088896648048123012360426434329992658285588397951338075920382598520880734091224809610966984963162756147044128722556406705035677513846863499993461411469936609977520720062945944877712026801011290437067277524916239288891108628340461194219778946363647091772316886355786165060117205539300978055758942623848912702022724377917258238766241368075638076451746686228200684995529953380668189977809463603230444232350651322264469718266741719960939572841136619296996522286795932368558305573986744349424721919860415520533208890387366179870977496859155764591137745564315366084664747621318799407384102652480775711441797700496658804577867759398166513723510522209094979172830634558874038543001782272445845167348347792134580642871348646682990061402905615260547136380910986701333357008999553510943412294162765817761255741628927458738504434788316069975579284793702375587394622984007951366588925738641699820513292757085209743713536760695119470031795417621157564623716332921052098752116277782828349759845067543078083854785152520288867849867861591032009729025003011198957948203620763791594103080496117507351571542570980776067244154592272167514684088979681420638686382093022515730547936772580015734853111459292622057663653494742145702070708294419513094222825037628894262794834452914167369228184598899869529708973654519670748115216110918939486064736062967253777709141598688749504625091249151965966240492055105768143328192244533862577688864334286977105289910655600748877212796191713071046145587621376764126207752632663924418332480173684224711737508922843001955188861524758537051841771868381246908805748258114840504049559107736362579679600611930581084522458903278513607742898066900665653948999606750331984551613857337857743362825884773664445359337673672796331190477855125940301109678009573937999224079917323723150268211187437968101196190866094394138735376996485335578414900641569932641464569009603676292006952238611797026301865615541034976346130882046699010535295050457695034150668172707033723620884924857272434740815325333154628929747832900837436397863030476034802626825671233786008001608105547048031233395731509810752352800035612435933103286523241614535374676537977662184452832537714975095040224440110987269243351342524523544554226351930323183901360013683764285323342464120811479236239394335046194570440483463919455138630244331706635676906178738481250131450831988783384347523375674294704443036162902134623026800144249040769897937976416376849655669066897034803687352872366868641299979012918064958416442191779351852166375080467752623886297268241713856361118561877357377030728118976826817760879106800392348488373797624086392946684830240455197846830805682315985561453920272017967581192362341245962560310001318053608329687965550375158732564497825728389644160439737942429334386678369109350175270858944861657280807493605297208513332654373864910862210327504793243985949396700736690655516309722525846952503786665053026192928439597703748505989694491160559834662142521214339510474408569807690199452296893069483683754924374973156432621601485713884749550037385981133634006769344378487217116408842355444437572294314115185790851459117729632951749553621203660379410709188777432310942115329257370167565143078071527353323615092534714525539414259866465625995575347416493024283284249946452103902322522899136842193940685983490754064624284237279192785345913812235028791087566884302361081061361000557851539790156053554456529753608299273747078578395009417265898414471566872198346188769016755041681931123182891789606206349703708780465750508273716648753166140976492108421540309445697265657383663892932260720511374074891161215809363198327246942578620556262393033819125887278910056944610013144082985936790134188342906546772526210136636623493363800011262565783777548717582677206482832507704697625114866795699495240548989161037339617881731898922243088956902099630881129854185485305974741212288607779912258915568055493637126252101669541354574774344363894768616617754986331679441314584759763459200040535939501266243656491599647693584774476127529584201337024784740024836952718052521628364775002150648286931027551640752697570514485248289193944628344720039698445528059448303318622088001763734457726137756132033112999567538321254572626971111775656628405375455062712013748599495584159251556433415194013059328766410361497662844893447780175055604052809813698195644650086860676884840534753593867548895128587408220752464171855855836289493906061775872754634980969712983625555875568507491735613978714941143819282573314766729501785979427131385605369789232198203806310276749641202887242826361342250762065367769455019325936115265257894598709115559615488573265903182458194782796277907576024761804976419255093475399902159044979145563629216248913975844579584732872625186735123554254793429103214537622665522510930628527067571087443790472570357816165558484478045048346254990818172690639552668770358069353947549838806167958481926821350562794246426856084616024131053598739979054359648714923511750176496560430761107736185564427708164813694442893438995720688969268962350756448493497782621576451253951253989174608527180140290220781629942481876362665612835286999801983123852906017336023878904133200910016742255090005418001090802414337355296878188210335190167362565157975619876975563865785113828251215888590455467261728801226384584780379763428544450800311732636056716771431083374808827254041716515074285799617110270685712397750126334542379480342595033694224774459210793624238042120613307259184385833199029403083222356395874602153529957184214800489132106693478054055618304354585972453142726142091862644784637858985558430551610981147359821795106774686482672774762579424400104043357789048854049728999116536394038455908423619547810065647005681762396115442070880557017602572724656968108808780352883154114811461440227591021375537457019199907363215479018110739310376451542484444077991007781901224035655022853267611327398499389145383094974436512381710074687968625919885682858084749407218437879058654650743865617629450804054011774893192270484898270819926619779075626791801444696114449182915642656246618658128246511298362868029154025497005301715471606946686623589661868641738642793360242729352759276952550886659638896445605767133392760976950463368704627664815114465529256420445862690974222573820916382343077672239358698041015311171815516468735436518657774962769377593393110534009508002667490043674209599246278400599791577369113018874666184403082147325975708142658164727399709672517164131525241411865321724267432126200399339406562344009199830719290928311589953978688096102380106700243635063004583360552348470891504341970366111159670292724749901045033739996390591852333350329566585647704188451624467400723931632720027466097823724713012617365137490534985541703536318388754174450373362196365484853976750647257518809695733323459749957347814095822124617366376943542367450168425719663378142849546765066744231399335351711503385812735616567819204925641927306163804130008125291567199022590774018052078440505718521586633866560063082181769154001638964537089073050312179663089048935644367467222825670578375537222091164571463961652397966692288125636202104093236990075145520630006540826664203234992664901509907583080458326124196808502371559323717716940686467698151922805102756211874070197320794631589186169680986394350559232039163385206720910015382805694559954471700411330204288595730585818796359083306615584509347387129070004458868644913736192062564386279488669623247715445470009558288764229207121204924142915407936437771936456755393255527900246447120378514019895331585169774963129699983956501441188412749190595839580152986102036070650638733509163790161862524344935483261319313407362736863338992985515565198693569839072218043366630780397120579778597313907720866409145700377479156274986838055682422249685737368232159587371788468756325928011157697531557627009466982362370779766799508627818044997864547854396092658115346774815560840629695773563335544659431933614554056451485250817726523697361726060129785935560454524215903834374538741398051794925697435031194337557095146238546585128781554456652774166062103490123978952900044075251711980482114931761701662795335314058938708261434615411244379241631135250589843901614501414861728336632471021720151957577688880124752062811634511156544635003425625326894700596769805128145286377287089955278517311992754583532997467106093405160330446600555969650349686068654348740811944418187040957833626584132887817355130877515972344131523291477213964912097355471215015247661841634490231301788216518305380920476698607741600134217397588539845547924655058995630015363421712774238681040389586239145524686470674132256963912209374463701126857379423467211879002328413766405171172698765603035117928555941638920162792074844197727632423414386558270082797486551049895075468246091632917999528881864432475072034269537801303053431964920428784211853399200715678569560055094417633650451382306930182130351620070504269531115417487549666917595616444380125435753631066476543676120939390797759522830219345821852315864210574423880664083906175214512510468846730827764608681318251416312013727514706193809300476152985042174453674789206820693227483456218392621804381161068041661761070509554480968140439256974621461471054809836580529464851607279409496866722618449472918598390033083106823794605721098036888641533844167064399227745631987729577713400606674340682901382171442310990767704502397630556184738798811963070059164942236473332424740542013632504112339688357328805571803903190823874462736110598978718781927082868504665143706670501215875030388814331077483240829779196730172115886307255520634821879214892247849118087813070776096569750156764247514978287141432105818646236800431639931466523047531402534815953232297890170935187312412889870350543156955073751944354996776477311780653590736208030050659599588585863555288143143727306619076164715189935379842478129730221110350915940306763852414035727699521431407634514777808927499826260262936687280844814535480133586731114977139360355579999028804424095186629024668194852211096178006486329738701524145670469050987108658280045611903248802737453718824550538998192177537162707031564632462165957948568350099239022862178502899876212077788946108711497640904398306646704889195668225953341025206841075068954886995775799524133738566276731421340852365687592992658637301495532979605567280138971582147231233957289150756997815334112106138030782550196874455750927338065531447186296231132286289903373232661482825837897158917966871083109353955805326049024804028312271940514896072729667020547532059763618828241629197820727728736086210819323820384227126334310832654801224976639817126968702595045227495634645558198571017515477377508050666356533295007226392786520504890556898154352622764367609966368938047737675811997948177652654674985618641712408405277958613755539612378312237869176674165724600155942440367678405954020594497009393187888173724404993113626163045513106630359758261300218288588658529678511550794034448266326704702142658209916918216563713529981656864782128259298000065185911592778905595372808480735025458850668647482234291151663931336027389799241162708059718778206049776725480106653265505141592230694919360450519470089397431819724149077507649711734447369211881048825054453376775143931509530743887299382527056586577788711603228230598162327944327748136003892915155830467330002326571731898073933511786918927450548505435276318756694249403455825075521882734149646518015731178668685953640113113599168611744584212424757196913166407264699662299810593066075336915676877276704049604370397816948130235472780717165365109266443136561575946839716694650630334963127425148780150071246688008189416237229232335695264464813830614081691180051568275161585343664214579293747886978380344622166242967892315722545368816531947112582784533970803155854421503277975125798531678567224842319478899914077281848555352958317914810155006704379435443909418010234837955636343314088876672721178542167088699790096966012160123912522390922888946989547837536054507594396963883833283952458283802819217245141601475766519088899767362792362758956665157715852639462237778841473891120637779042212111629606371022386876489231580753520053125334663037639955733762940928393587916382579604553781846065410332388435812434294988446243594905801276391584097728807410063839020934018687910425035276037439202507803852077370603556415469705482834048732819048685075843594694812905119112104460420074070652317301754118089965918544247195624213711749329217214887602175682429942735819747462411293199630522878632818729107879272924729306723806147014455477363996510350335330777797902242244887474323290111830791890153946112112459500125610818228417818402655990382385896537895483170052861498670535435344194885176117036298663290783003065442893242301378489665113542102348581485981733406598729871842473057506627985858051636242074709172740202738221021199778549621318409709794779272944284538785510925886062249879995713378744365775680059640416159166209840295964198507220443843695202831623840406900135074464520898755725300044937871538656245660693336679833354627877709200215925114058247736603229601030241223773554010809615892844820293204889768915954700225474742430513320239983222120158396233644041134871788770241124308835166213267611503279504689772302546575854576662371763144368786821138408959913637709940902653421974705260718296884949530220797282271735436712389295833092896096596165787518952943652393926741426289875071794434258226218666642644306887753878010312020110776558392696228903356273755084320873029633653874761726977866649734219056555354916824338181047970106442931776830752803201447386868518390681861208063105967627944504466100874026577788470889229121907170835263906110837798377094842783487194145940114639347594636706355021722926865020148046513035632339439253869837246776191021058185324816195246683595085297973920910173355309025291664968034347313710020015049616857071744745100250416734264831373510481310940466486985323904472082521291722999762483774905460749828618540709336043035586973242350734648603245392090288348108045409819354093286969718720058743223546379610628153294492285094738709990854511735796746632013702600215931462439396127436433372934741844865036899995335141170598971346148378001203077391641362498944001794244709707304843328092981878850251771751643413430807938626882977657163659156893324240759065036865690725865138010152717958595664032197613591042781529245581045384955291210110351554376362061454518036346613355504841015631283068422174675940107263698201679567681303966578880423035197588473881940342510741972149614312847370941988386096156606929271544997738094644464206491589738573551167047033511865704749582305734811858093617204542283475919167550123079383060282254327341027526297555800386929399011923282997104115907275459681404821731690704743304201071864800315697491834436927953609388652053640853286543169999020367972528937405142165641092548698603732097779933316804003098042854295551422339239762801501235725482586453995378219636140796112215558907286367696551159540372915860397793529831096041555816816598980963493200629287600370304181392890808507558461847205767113173991670876383499064436536008452372110698477497987098681528414418221631292802348986527742035966613841376080449139366982365096039733045015454479325124029611800980948351439697053894144245236396151075226878952960281309391610731779422867742780411061336413119827018811977173101848024868857884162518202048775685037742397785601570357029180109543632900917162516537875565935784512094441054060506554913233941923725422289732408961245683580987300079772938848922295277726116944840204272445034867570332028786526179789916505346716660478316515510784081495472615778635209749976827157947473083607389026943989281532668940565240394659327155030788806198075052495285738631140901465030538859261299370462284924192148472823284240344431230583841493825819773620087981016674098912793586998774385144405070885035681120798959498197408319252443989296781283547812050982992934115000356397514669109284360234334864752740426167188091536272870584618826015236901784806530990034733493427154926075484424850236618794369245713750611858198099074207198644016353717882697698652694030839473653222829064874778789503584989832118336842481451719177475960887662909912165605330358519993197176022823585413333728351067181126293224544897404976379934064598503366004735348580769879710359316555837427031331928737483617457132452161315480509982697628982381254638495360647292903121412222916313080003699337476657693450903304228977487948546946712278717976397268659458773745735159758171196727781595420774998819740905387026741944742781709803047153210070166245348826054529405933783234816943620184953096973154649529536071077996719796896005159829825830826515680233011915343016921133295877758759416413803482188954490313136945169513233033933269187949868194061419721327623689517416546763452996835391460903628274439922245065836482306684886116959886578091469535014363360849496190948861619421366258030579562186348472780854597758530487504308916887287467493772885742798432613141581485300002698184924403119674667119615618034527808580292340356680838579325413855749219935913882737113230277850528077760274510339614671622832511826690058263178374069205057049844174750842989305335578645684854759768716471611510712987778929275505655805480709043144342652773092073804424941329640138095050281738399066075966107775401016169115158763550015498007109891659804271794458903927883677594212897014963547448840991374622085144347708937767092699956293319553452205007690702082336560075071934065564406099277758688665645476265501892013960157160660121606293129840614693297157933085189314516229970115697820794899174362639491234707098077480590881986295456018339110694837970520467820806666085177054301987813328515889667108434050918629108197242825355306671932628678314189728062607578526780496533205672872043267068746240923539503155746401942353676989928257586393306125971792852164317723348804578796452330088991769493342519574860701838569917860347835926379031001864913887920968979178283847689164419739071645409072090292713508194288288728900838870837005733878107692779748933658210153086853932352666829550307530660320685616579500317104626893711884749017376788034817098543582725234909498041376174480200963197320408558897124371891975958667164099385755167802288586473265915028524480289570348918862030426918192956245957587949363899678059898441590434415761257979061103648176298030745818965330308308360421179249408082112595394294893957444471874565191665379243394510254745241474191824995651060445939008490577272599603458752204841731771101647729462930017733363781835345974404078222546177047072922698321998242345879776375339551081111623443486043571437572723679715383923748448142153123233898195001567291967784253206599978090438502345290647900104374585790816567584389897642092788511976548574624492649589651143306849952975586385658747521882277911608412183361103286217583349412560030763085204556999649021092228051177556837228322523358836302643928078107154056137031582898939326194193817544288379008616897136748205426747580235438527372365295711985300678711401377268990350628224918600367208025790871047038065340755468558970871927340624943315067190143491836972626625425265482109162156753449073515756131429110960782176148938176761161265005682223518012896128173060735601852058941245989912037858123830386160915735385789669631597405643457446781132396973296463662630787092334555434390725662321229348298536918638733136307828013377721433206601055585886600073709113982685589538831838827210423411696528762404927244153434929804305856650788342310262165649932200298964833190723892304129117337438158947756556049630054342682293312346757282459414486416724654664967492948659152482903691420174938240416236884421682250448195469747209517018185183138744942353174964955318853368464640181827574014169398303162437339054621853189351789061720060154195125727950034251719017024626642766756974168616932051098708435935918098010378362041420445507906851407896331512869287618322613923453572700970123573418339467678523217683816412045384901400269928815141028044648543372836633568009685408015750692048631018132434486885959754792261663491303614020515482535321321618735715538589607882561923082790498019295505631817332066560209368672657288870548727490156202036208889775718655700039156426305529826778709470847425926361993948212095800303969671130546933026625713672682238443050714769040955140734653680584596586348396672832683245018108007299744759603912404988704287866267565829866604143348549967449574461201603961420799715739116780352702695487436527509067020644313110292069814835295114135283297117834427560232026773125206029499318252584996250557951224200344537777892817614621485247920256570884437020976275937530136473291496211622403936787808557459566396036907491795058390347994540009333449157738951847461689448728267438119138908308802371176809830691743201863313403751310878285353710419607344237959322585674341108252691795402537745782258682019628512530078915735771616763002669001007619742999011595370406228881433664020637000872070909719056511328937400687095401418349233143216170870036936868853047981730960536175328427107087975513882959429706461422675227170365375325158383371378842377670353327492537148639842724129699580015437021491640774912602230101590482717536090183656608200343206882324028481053211386639083048507512241126579088648604770273959564579541443142748906397993040917325033925575268420882203257450812288526472040504341520698624816617785235112952741159669379773427114425016943488118017745518383190879585037600817246273599912944530907009382104091938532733428779994902999728109789232441650705158483346087162993736834792060603758667412425600205084375285442195956288847078819753413408519588425149432127773162084432073259276583862118352897675160820809257184947944246532943473144004184463431900118180679679782322967468993773050640794047926439129188501796091800018630935585090189013372772723517385113453093234960615864125944317375557633937039078867169030313956928616756640069230964638001924323234258793406664726709720904325748718460023699130465323283634513656059853651157299819621359036408043421664539049051535733635449002937751862669337525108186649052962356746862421901503058578063073153295937760637902371674260808783688982781546677388276735397851303241389518469156203843964658210254750963147324047464660535946195006980498422333571284814244455671944526802460417283123565345531032563444840939621897845541517957329008687382047933986410153301185036686876360849542165601658243717311367162862503906262267777130167660407772280658834977190685278910923620882680040708259842633366642965509808446955394714320459168786683852102648041344978942751162916686656820628743611898062620424611496317714216274768115698229536514875510094894534660831717778481556462197719461371065743086044053382710544958135792486728271388284591468863670215578380341552023039019574407973337590519954077991845643949033070102094883210271525919079375108276960571746769329401662331240018837109159481982658884568984055751792361421583080307225226859096293683022870499636833201491920474653941844678410465587051649215265300630624797884527330044491300580923569106016644535316437118526292275615607674897188502726080962231653972622925837089848079260205946858476628797656134642662183841777220211936297241957309715419500997368798825417438843302610809120291738987610383539498554770636427091899366966170885688624229926146550369683154641029472651611373638553217563114302529550343320498213233629802957090237381733772380966387664249986203630983901187578996989929421005964083691135480180392768146095342148941899049246129426637563872683045090104792573026161503943937778131907278796203043025546258929329686319785945970881655876156308075744442719646841643143812613501890424324439311017897614387881508136033140239869870271374780524538766634153730909752728022068931135689061138861037770544525210873579384552966198868875709798474799021800517607767845412179802481682217859441968357938484831366787533724616569432754627592922287951632361406800827670213820767732132223211482162826145796733273744781523139791416375292932008731428533576426980841103338486440100756998797027306230267365876043364187005685705170898847535213447213965361062776603676910764406781699753773594771317844737670344772439103343274879014993621312340557924657072554421623543793448356915166827813240161785259747259361356353814184398399248546224940126940664722188791279437941674138649737056791382500681669632054905984167484960571584393288933256843852467303437517108885714319448125325282153532353706679884551203814198593820266690851262351809985943053280938090059988241465333906616084293946637309655678503879476384956923227277203472016884227714686102602965506774747651836012793007145729360985602480794004134800508569321048913305692124506139325747484638377472310096167413505426355360534239495808447102709254229567320417185775263561041493746280399302321863308343038723646192596448954849301940720417209536645508487681594506554099965307613058073040118913522434209633901485817377036897793667440955522369856552216057236898912047296699466213471029350064492308670817974930311573904104750970517092395648920748437055781910103740412053401624149043745232849164834845545307163212392868300028139598608315450973195214114281105499465626341424731917928564883255909381667299810428209939204959994136774961638677048630789727259473889297508269170377199370142491580268718555020103238921550594208195799926619561110800947320734320737243457458283738804477317289751196135223820581818315725494211622044784051347979111077117428906705548807462091704106276052102418284263776545335941422320325013693440729882312391038533996550471082879486733386135250818809556532518257855519369268079377425699137599631009647420207376604502280667618551787892857647503622979363313869315659482732015387427234267775364361581361587616517170269067779515658937005907639775814104571701195796937171964915111947588996328122464362873058602950164784541955619604965645641123111580550982037865251351339948282596005353653663798823854963764598886883602140876314585592960313957081001273741223804823691419528353277763656840361148506655077030168768382208707378892191047067749806535585537279929638675091058354226090619842973369636464553303762794494627499626266670810630132080528217166932892575444352822114037476075255435909832043422823887797127860353950429064848477522385631090519079822236179906909099463618230080993658804745605916907108463213805513386846630407752634730634471726043015911558245809777651804336887799465290163160056354795176518705723070284544727364936215523634924942285741795297283782888828432237835995221554852834494834914068420626236447464250087888279079480138161245970519422472237920681598292955092332995562798895920493059800983268920113570361773957719331561598629675678701523995009410012786393803917566660105161380008408092860700487151300331181468407745484533024096077354012639512289156557792968802004441663293182541176628603236342521767761407049514282845761583603533062902423137937839102347688195480967917593677996383307107639237131749659639194942133988220970186655040532150190303200757178021735479822064946097386587387847264138632145362709217271371249340012516663457901804439659122489973454823586012583305565064664858096722156711038808432763400042857223516740754714192118392962316106608525943237748524557717228071604410126747108685171623683407980508280757920602111441719259875602950036186618590712114661364429295276090901279067078889149138124558949666542305433935675374997764248531344742435488172197197087439689539309795967695126370546484803898854106600207273622418061776359757256570781163092923571270634708497921481890965189321766113888446943497525350296101340484244188376738798096555028596026463270817494867653216688892321784281323648253997163864106936871268947551858921767440791782839514950521692109109734674856028495068653489901723423566495511620658573966774235506364031695701117009949095029776170810390809965384652811666248276016424511023525435641725267718138814310283148496065836272673160099625914129280526808575821821724904460648790791862102915942915746689896305315206385477675645754342893398204765946049433519800885689855877758031504824740872972267387244299532650623281785095986942473794464786980003051858537576048388667690006834331075872362388648367190770195943411706806078148518895698420373244841784184056861865722537211551398066472942788781898459275614341831738964374421731646884763312471282088764751336362063245631041392292532634986360113155483752707936840673876512640613120135254929365728592747365606441613071654941679099280301494595345677262926183307284027715945477580192468849998055547847692308428479700173744834616653248575760460398507647985732888898705949777756568563881393890590913431945184103082016885125842741620865761210858196123857138927403980170564550965860789551931455437871384769250039444756440008250429208065780293277228215560995199627224694079961661119247942818410866503317890535682434577447446316740590783817527443003248615051722728574882170937379408266690460403494417689627098864805648394435373699948447083345508164803152151823394440850554765914149921880193510753130716525563091374527339950364065099282584715675931303548433061109707496345196617030455026454213120039034176090898920151270264499539278848360216720061177852191012485845429777765493955865230970586359286331420717761837992299765542377587000375016077694123293638605119029674399950145810038240807047617360661171055779611299151050747110273447780796824458488785946840060060163599932522087850030297093294025782509907576890316153279814100543790390345013644357460114613121427428950092718703505521681305241041077112856696122606785222017747631969320592462514301285082165886391806131836404238445501987455975931055362717385916433196132376332983595397945104942652224817178711810900464206389866097537576277304641241396502107098653950160112905507216428735270369536650604655990521631713471061429018247938926222227430971293504896539699465607686132625629928030285649939545004564065094229975217893655991799345282661864379031643318123023496555178318701295732197956248737816146890743684492215809086822044396643502774320843548391246483623733793979542572865804444324661856082516770275090778335407790908550843905947987592279175964301308465649471848060617145396523445244659307467661226961621409970347454173550158004565014067855871512221963675703955796048393416493531116595601692699920787319015192731075417681728084090822784565795197577607461889958300695654557297950062235327386211667251797650905956881243451276650296499007493263542154491760331449279311223622947131834816037925507052372635558605064476388832036551539736863595948684802185089624693711617243633275538246225656479068606442847636497145460245092502979864457251674440069273355517162881253459823234927491971155391631367199255638239131859678267294177872909316827294320998961222484240617556504555445697806614652069486296105246171337678473200499840192858780818977375127960162191756371005864216073102537445982162804373890978051397526154328315353874647637095598674595077673997889980176914533440479832813946876277836837285267927910140117772181572168648204745993639733706709104919233614895905319674233160158897430186913909521647050174956707892725856487068184434921728894091326409400966028654539434120680627657994280327166323805782755415286045327557620109548008168790960522976009421152671916023229405815556012209908869774865864293402618491008183818429459005635421372019838510433369582820420263885952982209972675058449115923839019317861614723346274991115062240231070655111036393942798605639865687781714115686772041361863503100397953612049054718307347052259492273006126614321866792472036007091073643563946878259109192533811342589931127816915028223609803661860376959476172730208636992029048798924276628746060261578676458514275927222621059760472137752122278322838106446777863354104663710539229831261611759296683288779833774326541235068789588225183308048864648539719815862632302659036679690100724165278596735007298242641505222977640542596854124161121451067630894633566170350997496039874701753615179765314497273811269742856477010178787821500502830319557136393523271371150048545224117811584572704188578228038411914014530119351425598409749411572935352184046835755222639373918203662413665202823248017374625034618679082394380138601504957597416521852970107558958653455421003225898694415792065561750120728003735631176617753130970431932496842125209679631563086187406279596855919445422118194904369610748629712070882783601497256223930981492733097971681277126502499620939466107201225376313742267210386554811560383080671863979670733048895630911590865734383702909178057366558482156103813274184085694824462482938913632812216610705375648173533410163982407596494967241815885500684885304187210730377725228713790033774437850154644715086903899520272880735973589152484743753009489420338526840236618096741642620552871774603591316551196977527643373523403852283276203329993862024594187840040199377401438392734214686692147512722513121364574541451686566462863811494398719393235195077484584146158612464621318323469508320243591336761531518068248746404472961193963559756996030485068030065261744195022496687469647059251071784150070417797712792619500583925805809470471557709004895820656397394714693598038839558985630604274246046017377584598639320338693256085024278306752033137280563456315033551814092459562108555954354855233806132771130452374952488168266767568386936431822417954662079629652691916577013766833306205556720998299165823004848770771176533894294980131465107451107804605261957719311862615408563695496883798956132114031045058774230658358912434074433404743033146126574260499733789188821944770005565878028816486092221286108011847266957694675518288411346841874144153820299683138612861345748068073598194673458869752111504647524584475514958454374728824368187346351350029610220584732346440975541260131635492442654868048032385823303567804486902029365130586514322016013551496507643218548504229802894179094676834026126848262264483946280578424332093443846000700434092939473421714241160313129597476408742267794189275717828153131262123442522807678505851042205056336258877050744092883224020334259039478988558661533782189521101559439315765370740712144767504267929259201440370487783507729289173725805346975414232469007407759731201420153220298030670807798301947256925074379434626822754854119476221343000661211704372495483174718935001875807951122901971516859689752811605236262990181878685839933423696518566948410827061015560120963284872769446200826643450674985150895638988841184390299073493368716946970788406322323389281566850418678495182762856831779868692595481727190595491893201368853778229340907732921691035745084075091736121661809451729665168227318944450417443136480982633450970102599061076259790905009254243338265398902913469795129893799260356984295802692496614097187013557499288895104934925123426279376014594721165698447720538474601936838515367807838944428241876723123624366396450081804028470015915170338150774965516431195327095122787638185561117435104099850971044377482305023552550892198602481022067912898359203004022615676102225883812802423251409917216580408816536770338894781689960132607059781199116571909963604770739271027007183545695402254012636781670786433171517134950477589331023558759037052406915869818711732043887746473143920164745424255460869201587843246695989676689990794897789626811521371034462493255498911816931792094825123931782496251362826292099487362442725442645576029237142102121724673831144760845543492184089954605500168209889103365836395113789651544875713269786332130743027522775076628334012803884295445651887365217401788035705549502820257205681764894847588993112764242444681680952248520926406965181217232411304364805167354322035209443446968973336613691339726923785430677263424591665766319357621632330238799612842996702786163099540568844865803356996581391375873078442940850853582369184896557173351583120608441457658455685803032894998664614596862546665048645890400404280671702441223213113573075407121869440872557755567352136586549942211321745973313881857522074463464284680885399854947356012214899564185043278894954370424565299272449908747439614894000248778502311082931597834335932354989244240638860795196824732709710558073504298559121294809863665596867103758923975203564500166266718534909272102276639525834227572061406826010580427588317533006232993234864254253606531498904442643952787650138403192841318204395064355302002081966184803126274473249561979194648903092141479928154077403614535917985715152682670060854832731043829371826581225544825701998746077765863961701232270757151855683547255237495052038102287470735159765544398571330696204638464960616146989870711916614066373113993358751062053582659286482987962094216840719744861692961155649287124264564613302403434599041017463529086009237243361781486982630039618542901949700243098404331383622607702812902822616920732348114119739548373946029992892637809909840153064445424736094354902259150874589743649629970324473831191910041202642930766047412941240441478512194997186655993499810614276989360771858550125250419480068901012396857245147972963497037485064150448373609937510598530808137781930356588913083857638269490893190425730355539960510591317171158551867064382018262439641045954370732829287354843123099623788858083870857472118516013478968348176142821728278873637330816969444636564810527461680603232336873184112535470461444641733991317965494685235455814259245404854486212468127835752869808954772619662139107210886775693064540107358245962239026559871595785494139957998533427804485146162831503165854306396187416036281200212690360533487229609126212137488652448866111489036185361072253965322224148222386812957557149222323809967465384757196413129608525311498653834513105208237585125085953943540301260583877324236810380695858576710057389865265635291365090250330880548441422487741649278068357405899266590867168007735408071121594958708470725441539515560346777278529056170966989636771475803449115500116293311954535763370950455698246713758549188041377787550033198410884457787089351180514781737402552818471562937054937657784124744592085970586111619328343416999739613800637578127706976117396410438547628941457173559369055034212884205353003189342625603332856955340780463857884261940512401194566060027438176272676401460951769215923726752924791267911538858830962374801469834328167110558184157881729152180080571224864479346784415746861830703629914000027037904696094845388244402239561561076044479222230136738019186753100841615783868332190025282367265884555498235690386399522712756540678516220917482156593259866260060772530274676116581070837184460419189335179971183424211839261476706460472043090659947746720803868503719549917993784535550139805671239967876232932068466246710107630667685996563855021774923965509101234730201657554340237154521863533908496474146464558391500227553087918680771537819766923889233627302150276319646085784077314673070590278820485621437424055486917572066392779153635568660849595250285843292046767838409614043712598727579862258131594471768060758289536637058665695897198192844341334202867355124396265993320019808985519612426115294101162403023484246338250073502044577376749527045954214746649343840541697359297533841488415462587307994038121783735615573972979184748492700107290771040987149224183248562455439414123119526861219142245117814254098292288380816103010655151957586851046956647247960789446039750788539177816345818632115434693063431396399526051409449217509611525887471263405744980170288990789178612923369984964552258482924948944912363671696772392239017315435133182823043011006833439046717898354889073961362078265020883395503136677282104875886258983967648212665901585770640656478904986070076614527912969166564474677149459565625866549058511235882692634233399479166942073311626681114633438215243892419712270018291708735422025202551453906130689417571950406235981946932327785542073657981584497854764735829648580507894803616925521309617479274002246180357288385524210073634798136838534256376939511403210147779350178921095871338232808795569702169661606523154403469497919561475935624721797742265369108180786754787109807277282958532988120286835109145142658956336004987973900435696553456693047475389025935367137166616717961433968241450041961436341229273707220774783420199472655417584826494441771449275392724103480544082744485543473681894451457004370060393244653213092467477299140648604407255248895106495424911618377531672093840898562651352357599722339652737951384559589291489814195155248980808409095223244365731864908396230116115518125848335245242035395421643836865689277580684769390396333807812719340644537879713905265080058908065802656625062177772937021011239313645173013671109159771985861481364557590970373390330918406306568332871159063002170313163500656256328583995116113798676672133792310868794969914369382998848132526504312928811481523434523197566267202608718037172714830836363077641795422894488008298610075707896004116791785379290531146150873048406887251748262004802836810122757275551466933057033520868985592959836690648057983182029612936035638422116496476413012711169068554706376749770831430843721206421127819458088812391678700375294416724847887905696445955392781370983620881492010532538862524672333024199799097734511406565104862110856997416022298936155685990172541293209942116965014696584135045722740844946381126668578246094505823715621670754313139044915859932374859715378126076844404230171420968234447944023392350667933197939728517810605431821792595263316690217296301495384341080381930138644972455773246105433763475958524405163897624268202238368531611486703623985014078182339134120295825889660725316945575754230756162845092908696378776691231543847125863055662529251666320735067305538944470349780123343636406168889415237239097618710896078291582609370591786662329155677553434381956158086640308113175876087389687576444120766227434947657204060010728674127686724450021844603570094375371654951428267946406496616027713326024820744190057557106364054001582586133380836585690518687258009525280514725105675501839892651343346666894775187369625013978811992442681493247137715476129812830232638339735815116955633966860150252408569558490212491036357867454342784842472947503158604738039850950842568155873833360851787126709815291061665620618275044644055551956880942749849807325086694707822817109305810253217837395413113097751306490924010601315070449832484244222246848847375284956192743632727605494921784185192620301169455818147025627255113646681921713083274576593486263867300393525486089169446065342262765469324476259129517545091265228471327646134363645893999033344829589970448183567102573349758898172146294081785455296408425044423307313636014863031643556959661409897325953294928125201384733178070619061219276310530674584921135563432127900727724571879792647132127272934596415796651867606871589862357253749107916643699921907122291785281318354857090778884540830779103071647919942098101053501806245677181119184576390556591249038304042618217580957869033601781170528234734850911633449894988159581468021719883395420779062184176010307402138446713688810108488209267125750924415350730119835719720130765171685531647704241222332353652777175321336772555722529635268943017031714201069267528599541080698859881649963641554175331148220488990872126591238654657172994511589128152110840299780919716458260519420261385239310638516258167261909408130071762759324683357609417135860969298760046406861832773070315830649483907802488445318988497729979297264039151864180765903982082779398681900346125091080046053199148369795995527777355717282731066562480660727866852730400443201720745266263416494225638839396534837207555026966407882193655171506418209739962782260369345608864941737743609176822059972662805655459069093207756606509910956515668467046332642033378462963782193695647026218960820514101116112755301903119225648319112876774407486070035280377372327127253338199213415656338359624010048222645777093848786105490608677738688308568603441569393552271483100860045146254785824793868541958419232817024521943704637077316438784913512759601240497337902921871792791650424775492543868925792822267452405825241113614055129966885102970779440404205644636723877407510544705515325186148191941737137180138559676906827554865237387186640733044445959981979401521942211423759522462977807437723475941982202620730909138526099840361759740249373328432790640722324177275130627958200346849025939184935334419745376838117870760213909964359730954967980674756597503142773267968856202909229648666334471555849009027658449937522604706360666605251815587716080519368418594638231055460894162200903938320435328071463544493124297969196849726596768895346685047219488406488484486345559028159135770328448879800249041794320670847878026716619124827632185469184824053829723485536729419028646964934099537186148901068987253814752069713669909715231726250980895539587217047572228740296633362279480140742071675723218499246494825871288850176250810193786606900633173727933311794384581969865711784489586756031504252399566119588230973892525687670953185147392940502304790494250119230220597888495833529573162613348382436792946588840723842682259247012896775025090886233679603696801737379832116925223025959571850241661531101112017555919316898834781795163463369468614818969334553677938970891209648153441355915946558541512078698524099606277098151227232660846720586094168532131501781556567425498143242098934935758842843233248228147742392980215627684609702578499136945287729369681790869358631177197760920516181710761967409451521676424316888300868820975492007827486733231660110376875373009433330378792596579755496551810882830118102068416408366461577144187028973021562556766770775308872994581273797713082230745002297206299865552788147412387250548095142288698657421842092844008856995578296086227413171907843158045437880814838370025307880613410076947433222275307462713546034804383186638366750323922502205672912859059484006343728891302741144711485754567120226364227135344165066939705092369755188042701638996628175243941690175207279207234704515011662510095467273452985745436331072457878884512093066319409996140412543269998633474143923450839422354700068032025196577406814989227656459307072013008723621610725155432598334942922599416991598654506223999193047059057121827450246090470852490991782624913871910933584810046499163404663167049408738874505962654752506631691069913762917704259792838180033731517698504741150392278378065492111108836804063142641122030871455361954481251452667020591650584375732802752745969325139941303927518323400011960247509488802742107888511873968782253504558231713708329852674445544412757538083160468475053962449426734325316133582770246612613671981623543562331992798975788989774844478791136300644325206368015623947596283934040337781081878410624604375772175361160541077876090423255854426230592488311177258436705858382775996703519545677024357189724731045967854189672088410017077075984007523600118146864542722853075674875041644729402963025533611377276227289785244388169475501922102878045059082535418696326660535271167210011431696161945614281986672550751772685540045968421135426210902644226832638429953810871781004156564219950327585883899757829893920594780895246028487042292536448183815131694544446043382999399733205047248615681840487476978177432189213819012121970029177681662284248715601479623525338391830720673250042786260610662477274188915563746941928096050375135067916715011366378492256726163559888097581702002907699241896000372175964578409885268438604131294520208286824750843337054503293988110260951771323483111102827517642295091937777477931647249257032231707288783016284681748103223702709738873998883468615960986251576593167239453032667128741152447039982475279467929468933078567178164825295650562980564176327186836367575975584517829801443641940904565808147518732923666091199706199955573375532024897712457786833704653262236894066476887504868408986331150955615744394664262113967222459355718231028554594105647719935925167913284867497311708148580576320927267200054932287046006904079826416668405466300353404655969721662208429346826106689617685067354150640316010485407822518204853196645134691939972310397960155168039504743818694249977678431974249987234130395836690040138414482168748129675028699884224259408491031768589820994055621741263041858674502052400833024964708131759158434045028019657984876686329105750560901851480569249282653761966255955501077810219917218959097186943875174831448580325637614334933527540507428026822378634192699682010481023107526195642124943802614395439040453880035541680189831231809267554165062268609939249859578933548505962784023991291877227508993050800522163604399991824391062723213684766993912310443904626658440439106473912443033240569997212686327624684258518062922155738121326787964485701144823329686036056440455073652316099292827825862163618187768032157034154641245821817652670190878125928191584223155883054191043905663006342627903199442285909323535000449987903026534307180595330836280470757571402615021153006637414670510170178266349716783428250797906000870528609649510403159512234943651313491224315743906847784866136892197732040457195046275981559979519632371246311054468060909448879384166225774700647738025207406212446333465035219111756226035996850725061932736475055172089701942216876646954748880421775237279192918172562247522925656855216110508993676942823091087347338795973939092052323497420185408788195027014456212964242070558862618365368990184332478483082110607152592838231911344038673759123224102264291641090493461791084250486590686935497107070531357801931654514738070496353580622276482722628101559333218207069010754158593699001023842593993106934825070925534344604134915340179926296400800350393033012657326380408448665391947084691149917172499010643153718687827033066559099380928499201832897732389198562163327859871995548341733689383037636351000447839458895893540897829123002657891206466047739661031082834413528259015752148232493431836232322010713629711583461610416248729299818856591717557581622436722440997274357297594188365199717384145073101206356564960394023513302829268159533120436611655555780388512217097789158518744451244194308869373356084631399757227211998975497111799825988441849681651400020864938293380270802378681543975093101083957427483557010436128726720409479451215713532554551875311612902798889839791657872137930584160420861013175505369169173090255445869929226686644169660425503365545656217729405520040526115866388712725228915497098143095401731512331201606072055761111375866349970690366512431953280634267813643823658548004894609570086664876045006979160026748188433346756108453637321339821428568655362621618858999403249800779340938050514193752533977346448217585673150774031993471644568129204764006300921540793564478935924166908279258432702413600775028107731031573402315490259463924244667409316186999213432365637703612904857563390940621753823984350132054726489970971566191606214887865351031594935439244467983575954782414413564673720852300239531109648946061671830055708950469389377235825690891076344042485748498090968762449219979015824384690277550044953540717426206995047279141445399220150325381461247954433045324047921071740777561676556626053832851770478369584787335170015747638081965097861399685858129651262802844701464615796395646652748713346114678368866116825626468462040514187787771964637872993949852586316706339227051214941563827782548519980556659585105243711843000751020351153593565986807043769973474854099529914201124733390390582850350483279376771656982025537731200619355665056741501701103256402997992336404849340309724917043425443952968104999572689424200551684678982293776167790868357944437589492164335563245066769539740112940789516424586290231134843326294977080336018402615858392338413485089630550154435130268317626578771374305678999057136449784847402817253542129712773517695702709710309340138059122128660123506323167224254745018396227531967351468781814044042661888127309006316205087973731536558243557805560301421907297689346078055010593633078706333623557276574043852663800409316271839305527322181889573478907878741644565146895164026515141775286709112015411899775736514506951191233842968170532802456828289904673046234537582780065539743640599423300729149778546332635600159916350912382955941257202481252161859313621355979206691638119616103295274709682489883130977815485758479719034996829291836422752289541206214547520622311938263356067263617136013388940550052533408884789239359067860625680659297649219853985452542381008483239731749785586562783783988979011671119966322127768836988921508276784123852601704333394138702335949506047550563120955320001234321378180944857102876070324981485062568887590952877247558650552466889748816769890731642001659321559697246265174952192249131296089250696241229924495175577462830646997012765541070887677473504765283454784750763622412670222470276240016306756279574390267605557841185651291301814376335370808540444242333970719106999332596155996530600392951138468729377306452239264297203935474584921030140633851213350448775808273792796548075979821132188598949764030987144682510123249849544634921536703534917975977939738488075060905114146526969411982400797863073148319861572606714850098495679308888805866241565241200029344003667000523335929880370286697062922277385119274775369671313273354734077780320070189276247487025532345559099477384478789328612384299481615401703167599580693930250195246855096113219196736825838823681592427496417349392874084540115065789944119402496365912701141551938696159152102114992628159719580964494076125002392846284609642752528177466137647189603632540330781980307788666379498575792452447214577356895087202835790108345093799623455142276931153092378173640289054824359611387645357057957342653718352924608843310522616865308908857390416842597409923246451376520633328989117181377448018436234799929191543857661950605855035911663845352033291402516802247325884494500502277329920831345286727359289906576715951529447512803096070800149038572395886122777108028750182329639287014116213843988530409691582661280370905652543575171506542710191634032022709690528435879556576009686196749827186474216214965598195955184908970856067065559845333083113976061254098930158956954994329286907535345098362517220750693998501831616722110682984171660137998120533881017331904563889642097148390354426826906319475185508137538763494919486249019577588221794617958534183989717224159518396975171427804741672920511615169721556384857826334239174577097247209601119782260607414136097075438263796628404411543981195888455063365957606204522320435223601524409758837502563350701226460935398034229423803653897950007341101592774476071718881296381989220003557365705162511817082171007889674194424415540643712281999135599324668485314162309404575606627509656845763866271627996162850100173195030442397301447501254457545294447551963530882888572219867215476402151719755878961985566827311114326677411397710437235194814885717426431702795107824077020854104947868372458081365752104772629682438420380928540262492162467015861068971965673309379837510127712886788869696164977805865166502101781086336117975252071518128027769191401852586508098746229400994752453772915351772812282070395235667119165740445176834684084210477831853006843929353003353240431608221255608196525356918704150364498347684059801508835703381163187230057731460871939897841672011109869532419540999326301240320004036654664971637228394722912606424587655149803367133331271764705059053751049395282420258471897033102849427954259833188606136834318433689704690808920911735045524900349068618121031478231289641460940334675352300473998865903703068536705924294988660785211021921156892754340540101769696408341532134516930629274352353793292097602182964379984588736087894067995244926457306181965421773681823734374828271838852041340071345590681793271304389394906024686224980912817020848658073407164456974123670484047148688443168696400333953048947147057758510121991256865148348768164323000597892510957595172017466655256799781644468151087321893040817736369119093486606906456263270619670711617857692798315621185013765643975706270851281099267510575644926921934496856648833821613153339546987365728845382289553529720358740894380341432353146656365454389868069098632771884568262101161950841142347333958510429681321798810189385397050809479248558605466920266581452961305590448408337459568606874147616620613691826763136924972052925340613426881607761953840698213855755052648983544552616789675412897130439413070376368559864082096256147009950256901609300274642120728604224477108993261760810848451020745230904698086517590419853970593355883250159466562531869156533434159807249376443204028664962909195934718551828849910507055523581418965679003662260917585347489247737571694467569468701906039765531551147746830255995581253363496438924222328852435646755557345731643019562519038611416384892193828231252901828202125545817180276271019384796295596505059058293975860613514642252863668824153994016155756086940777356184843046151460193281034981747673979594762012659949884751097756693935288411422934639213810775623190428517507442594116678711016429812709639205775083412796225222226646835035864871501512470162461910270717046808090128857742727488418212094813215334076740455881096375125217369120696218438354373267943040212772993499013139744106969708480272431240174395119551844141910651580155976577034427462041105422676986791349827622958399460454149875436549319254267578524783526388404069392590154365132236310911199497198093687676367782630606255181398707912562167679340322639287000575179103127104514206699603927999681018448797319582257291498519680243526662390038276301084270740756215904231588790548135957740003110747115947593925339856360270193836030996653071424714201781379330376294012312498033231637095852804863213023558098203540985968875680754960017952970175931766409000851386508844164255540818554371513987522144518277282845269525130630055354380294838572095398925475625867483819184823060421624089484404134605073522164859216817773543456041701245736293645067282099831413400651447851919101601259980967209068103473290207766290107145613302251175962165087669231700624213108663700546089853157696660980156985745900985176964622145279254373704338953778602153142363549061019283179382943728038264497398518538218591215184309587052546097005246054337358136190188958197419633981492573451688350026702877650470855963537290747516277194049273433128852850142678487986411795716389671438764562099320308080576975574454429783085383528951799243810158863578195988935043992929648571000714952430146197048978752037832430969889216067454732474917609676933152080169865924999346279185647421896042956696817018667312610107262019914552641332812346760416319311761771635964917681093111304740423723206985923952401412165584594542563564297306067461177018664302208568184480390517521601821668314270807557377837310581577214494227280528568971334559952030758081739579300207336211671397727775281332429865685028034863703691932311423313096764829977734403451322277111931401541569095573327396122884663335843138549622274028277575106492030748651434200231919720054980239117129370531126484285423686285413716673406507680608125155571397231921224934694990757081660287573308961104551499170074942263750340403372553681115402191948378088889340858987424978745196517950268847842565389728744698442331737098462251189697716605901595780497493587915565046617547596830735990718477181713391252016411696666563190378982219920688167901380586331807807322908882121588302384828829057577947984525673552478684427382753818756125057311409846380530683343691779452173811455687625925663591696341456611730452735505241240013628412607249618564835391922914338211985528543164724127309577949822404610735813459906954204877526059217694033025398270792620656483186104312184582799476471278301582068284954998279475188428082558335307941240342559936692228156550714197909321299692362385134921563623149922723813260212574567858794339615870144107623256312053885694185677838861106895868194758339981822592914699903117012622033394858304128641695904387038779596398292889989450714145822619832583983144408932668242588068857089250103771878538843386614149079673132069987265863845466915700497101173628500961238616802391247324620384159823979608935004562490335645209392370786766062926981513269945980921604699983232247079896476035931972571370178147655649305023627872940752210320776262350015911575452908203816935391200360007938073915443318350436618412826003733482502830593770142497747490404068096460019741736143033747745468175149872957181610873453176352339035101071434577524630035732045851031632749718673514236810358265413630680732046641416730500236184689658602362212644773864928603846907931438709735648133887430171366317322393822783108231153305783164555959329964220031560932351237416980105918866763161196618640626929311518965380550288825862413680937904757464506411145778302659572443814835317018022372127125265996132706647169808823252083932051520760477367908506596757648312368347795474742907357336952531912525265394243968927596384442075626164052086450932558386058201879277843520885397293571629077204544928448521500185897221582905363002497724066900228697851151595166349259485277873033114443747988750653945285804967925997160520433338657487034897361081242079984119585963017795337377369648650360053048356480747857484165725801926374923922482745109132271943941127170867957210963883984088104177041599627118341578450246058874225060033083572658162420422694694249962859460236410248477283155564600364738094671335571020989877442897726420109855656934005778862189908605755947056280471895057938295371927677379826053746323618941771132053806562773375452085816590768800419162251078499360385346817178171424338241288072593934975644026072997433700556131915424780833611097541949937476189702455169579790279414534968283889661722421331035828328703123767230310637212162671296389067236994183184642554500539532123375959707794286623093655612261995118789882413572195386246997788549809152158563468178394158492020458365441302752948557804622244312134564476127522337038754355175079356462499525321887430419476499756269271003981706965157938778361117497586901354023081108721149559331068732599838639691639149059547071387425952287354233123604804488522027130258165651842879024886024699949318345242114558697463921012268829422262798843535475751175907393348262466871900234213400722066979159830623669508242867924225944533927226279188590263022298578894457755757707384260772956720201157419893256612512371196717800126273803957530332254040864854676060266664266730023979387471105807224422077852917466106433584717237046490123838306321033770850267660132979485054364129467403870799032822314144084683535349915375201063446087749940884423928230907081320647812107674593258278257994767907955221056391729188850183357499153075336677195955334718077648392670383928172584247169982461554993861600819624257381253389111607045992032447883842466812346028020593950734813077532030248111506108176939405239734859320946981588078528413388309067002107006977826200404653044378802548555897257883277101468405568464363174147154824931905640800187117696905057278910658411462065786984150158023511494234482900323642194006329805595973711249735160730771703700122268250221010712275276372334743050161214954123832879000056113487108819990811374748372713084025364901510394744905652924185282335133618000001219511437237545942104984588662157475939888945110729384920419617578170351176617972568634207666112293856860637464784922759682271169531046791451434800985622798493630458653356008983681195769860618458172987155640346565412890369949373109024111702404224518751761030953176591959538640746285484335384664671180479995538415368713977821351471788107922020989156147364732419038799119147057099140289707530807424644103766256575744069027036647018774742604529081664742405819172438718375670181907924731226203883049161665670188378084232002736910635354019707033673007698382700386160728868556308936006656905692455433602656983342126325122610320990614889384149498867084512816083224785334291875282364274611539768711290160359460250930994305845024627063363040936564014185209680646848924581622891562207750997935009420968835060454982594731548715791689016580362209997189313001199443058233023679256421509578882369493760091505557939711833806309182601202345088229485635349706140392611382083759849910935718249640832164281950281827198488536657587901021589272495352578362324478351684166331009204683839942934757990524747692001666068654441251894464058716110056117969158825930362210907466843907736467840656817803450045376021304031133574822637962790647822637537408277621354581853348612464608994691606692266256038037011635073173813128864699635332055912279655879672531920278629636388504119175457581041312625401044262309752378405972148463685025390613052424116279754205228601272291502344912841775742284207057953108712195281961970691026562831077945302641512580398122387797901195731891720774531920293157676712360586955688404381106125340723469300088015236585514593781958027063215256969502213319405219436402793363279128832679154019652153753923381488621066408674184762848659413175363448233197899988160191600667904297268747636949826321761700076660115562932758699662742001237415658496370734042204406006326042868848186650647607552964578218009810223092423643139343132171219399138628550595650748790389560995366573399858817726261741053156627125941002836548124331858625506241217458124564774753970256944257150445305642874163454496977043272363135683082391504934313770440016967643390717722051477012115293225735903885391297789768794741957117225322979389905064647851967594333140124889861874937768590855096775005179298431277386390484503412419551030714413651444454345604742345151980508180070540311331465876829511277984690886619009986886118400675318268731006302660552440719335736014666235357066913628461577895748150217990546559846257162935074036015016410596576580542854658339942659091135592436084376630583431251029555627324734876214378710673760384242070816435363097727511125706046549790937245767139076835292998044245894604705199172581662079895249973614063421653108734314819292521894977868658529766555792205308602510173584469476132096484529037993851037824036627819739305821104559510316468720589344097145948054517496109657250920495674726208719802285919307646792435659614201845641429631289726504719018559070980046229852664840520998577505033232263661102752763847536697866316553244648628197502986723384323230110846578667390666106025644333303012813777581832751660570580876916252380003050557467287160250778089940697862062603696833353929871650144160666851668259932543019943568413337676935166173300560321673482791029875631125645002802335896238919496849979540692176322405205041890966962585824549095782119761341425524476585542117957409251042590180746332812942030729276127778148029524247491291347095004499280419276697568641603097548365224228040534304560663427903173772599811902314697214243397131839098845111952417155454969601045001735610491840855934951667885560626393958640006198627197439849656885837241231002116311410601436441762235035863197461440431254747297810447081402867036054371712343960986642885462607533128411336080458871739757491891206979883498220888887466762428158764498922117657269802982363280134284235627143766528022086971763305757227667026634236407036549867588638682372955863794718834208419428108296837397128364001851679696684812654296853758274613465832353097568378642496469098799147225715438223907075086614520542185752062500189598527336442954620141094440359091329753911301943565144281611598960766817771488935514155504960226300856489165545157260117527359881082661623563749015398963278240435411940325549544879069735568359432876898870335917664200826258184429020356337252271736407846212495244421945249343556911847243365648049656852963428637318577791656991770072737837620997034655398383628631156711393890811214865911424142378999214347322451405860743765266097798981603850234736241936848013362732908455908269617837391724372687958583278693773789054649427130195237246792875500504191728895037251451614375685969524147194665452689970911866275118709964802435325568428681821677437575301813398577101175278945287113069276803953162160587108655087533194668915209478168404040387037363933503083883515098078200655807236313694267852427381166417320204490782916566353467057132612026690541713720016658689818823782938654946661645779639464202816110632163329054204195500386025250492723007434991765008682263739371188271049294643827571956720564302566994855761376998494457810207307716774721551354237538087509870074771868657703363126499233194883667640173668030095983262680734800741624881315694925890566472661728703684625141639047467836816333007770399546545475868234108725841227211397838280693453260167581112009252461983438873348582491781199046516239497928882126479305145052968591867338378098432842999974357907295152896248222206429223158297784485572531312376266110008069178051237782981899105934752035391477239429214670452641504762886835665148254630944511191398462166172789181458021435459009975778892990884051881075748466492160285304415098074883857315867984349984145277814967200276376755777118285526703867760124815428287149694473554080479337020114250241488111678125091836333457149111769318608551016204588771866200615440355758413879498969238929238750111127319876191637623496946634376631080824512232248548176969023649142475672040704455246978851280979928472191833061263849096214360741286071832651718515165960800362147409507850609757511536239923870688483727752692104921167023713941369644148232730739101322010840150434738398528347634822477429991407835818637817636084072891037632432621043810514343313600405177128553296221395941176644376774288323692768369836233488618368609659545161963971491849567130910242421134813829129165376998093206935363408282135218337888339064331658192387455606157560455751936353114355616553545970657631494936252928464724179296682402783246323975629029243136841212428731209099602884905936899220055112394093206626173764003110245088649012714714375106302165873912377959961603167209981077780052949602364976505998006653202629570448223543133262372781302092537395572758145643708273335303392393378959245803075069633650127536392817808616107761295542647533354728498790110440322077402172330555211613080120440706898287827066446781163928097941740664321450199779497687620479840560020841685764852320220398524696012296455470689370393912801889707114698308764481065974846390694032489182856591848573123187682325394334557657444317545519601334627849350803313604172411334903571077635308634535487695301729727761780885706366331619574330585199584646342358766460775626872010971409119238872464543289210707628621327460308124529376940088606390187176923372031538922434099047896381833146486333410432306985144899800798343400665913467719161223464260112454198922384803942410660311030280597022808038414478606283524163374867892356776573589408290381469810757680022990961714527748718667687458679173132547180916537845506172592913263594302004515194306680650017987647136746273990293214813877851723988490859088297567668905254633283499787771216001786541688399811219222373877946219169004217007832329022884599043030972999025568376143150046423399913998358116548424109567514619832695219533329358492615282526022327091674237409028100025918393672416553081695400356438929886525667728114254460777756943764074358365735427314669680706258138479118390735776670099183885181595317218000837632398655748680444085534947721850396215907757383614702404658503730335980523344180351604232267925410665399352440186775573565149754679497768994790610531727332406427218382283975913861360912087304996029339793390634418314513912900098588728480204654011518544416372479162244596185616319903828454299170821947562110775676058372015364598472271016220397298839727331578833331457384031743965497910787481640094813146478248852139226020308541543615480504032170471511243401767426589356813987030677234775414265079782826893334119600959737148521083882014400258193723304867945097155579818176651329940269126827686470838596589484216473623587100161065033082126773727035367792915896144979702640460693680408591674200465015838772316281121195886212757560403563800133930371015708123479168727311671777240659111377135295953238808920398966233266372403107310410722335691023548494209810753978710139407691835918964774173759892009015739524899278063628296738463865372513072688091903865999961511594984538557283562251462472569286360371424845576790683674656548083031927575751561724748175634669395710245917279062322162703153490823485690666893456307773990914903497260218638397764654858607077147993600716612898469159122737742977162550382079663412303532469602575379675758837863993455942120812302604701716632873251790323035324176026360116727059161286053738732077254261246456018525202660428082564774706941598753230239323269967602582756576738214475342370087072765206881241602412586786101622548896380262148418341654364925495687093915982013972714272709097225862894511576678835504371744153086152281549144058014941694238019990750271995366202020407621863546448442199648290774190944874809746267008232347999526203391489348961369723000483795487104271722668946923053261787152403322103470513953048141137399657036732772352022439603066078019751001615655132458584309628105441936003751579868199260774709344641275616600754738908109727605540602059913528306224571563777667133653367497012255264168994401211613158346487648311820566841214200663829736959399501567840642709287945667261498668975331771707863946595483154990107148993814270255290851830532238760595369753143082872847632195986233176766298421109206925545111457824571516071950822240586057330347007652106937075449020108869388405057474329379784559807636747381584624659316883905939154836632540083228397502284897435465655033435757376820156574341656768435628915674407138971283451477526730360769920246084653541649453172115596033458308630599857891641527765842951459980412104475359405304107509070467649597244564671815969759682850067884562249577479674710093157886396910624591523358758093965284719858049689011898916797886087703604777472175750367018695657770879577358141539908843314284685883152776646367623045061634873378385154185550199649479040995540471901608166357396401052372749794095165124852709667692722878271822179565273819338298879740048337368669332177300936786624915458603456820265873620167683704483366912383163492376818008691330969852247217432784870854382775315208735378933461833384983014666006191423183014694988886074330924850446734468291474468033586659389558844957837995625071579210150391625081079827718276552382515200159820211065446173842802214977893504836259174263070058052097205348633920091675130170916637628025478713316074429293457164877314806427392938208285429740934702865080464709955419866493648134393210977340111644027887035717145626994165929109257577430820617033099491651344983589640793375870931770247909082751008622501617537966051522706019346276424538326129748861686319648248081000756462433739806528516079174424520865844722301755853693172259472843504492902164984224452446505074638264093757841272974108669937105298104569917270089687550519703619786357900220994751997293093377893771909375944781375637209772814687874367435019007971134740090444025139469070986829144054333403334693502217091036544487229537941439223321654984942208426832593290591839799039076095855483177047921559278949273667369796595623553556684468847915189401353969236941101196701200861440116113505024774733599893239989430343553854673266839106830165372870035272389438269178152112237165612256701007975488092997566058405329467505359597808134822234321046130536181572493641429898447903997275260645638830189365732953734264810790041173417761963152426358899628046838037585738882549549891545103526065100383328509610309487651527931224262641563817306772923837635577719274187537150094081146428534814742394647579374801403213583370617917289022856183150450495067460814383201629803426526407325124557350616142816009024602509793120076763321658075694233721037161554338251898129262661532853465258444931817640351617054295691154084604300976559911433942122067407491405086044999299421426867229654334429391022517983055844326961282314015946332575524896224665126447116917268229220069506774068166105665382783848557896563179436519014645278632618213428281472656898776567681756485092607683025511235004852349886908059817611948070680807892639026938847866153291252346560287324833430266838526628483714534181418470501894686240269989559199819607125209593184911206950574496950202290964064501418562789138329003887982598103466011415116324869345096686183045811032297923042983925818984666820677599389612683596470772828262014722493086315063494199120204811661359887134627423183492973569061203341297621149111905536972019004353928566899673081183359268787758323811356658685608191475658715396791235349025480850342314748916689518882416313108572590279242646911883371089692082520484378911031581735732106945768619964579516414221253981612010872978133904063117398856361260766313208383032751165148755762530206823601403989468802402636855445512532834887282662777982527703985709805848974668830844756741115317958653951455332967928006799956365672454523726465392060331046905908820431563136118169498949089647194319990831007527122978391035528847082139445844101522157876510214468185773929053652818323088986269382240251104997220965943132031933169647600534335066363757145982597038240907159818304191551876567512283359525538078312041983868802277017697770416892226442923081684365700556128510339683062757433964264917172446599069419511979903997369142151270727579379726237366994410829642663161713476316721100672543952969887765940143317519787170506432341320893447411059591875024684938230142787203661276568343281530352086324508702036058294358094637874810654458179946837086031415642254895941831474154689096570110759775206362169787720810316283040168323429357982755697848097517858140079758013867906317396446156813914745335237352998803293459085067659252029412941955505120598777681931619114578547038308799244857465367169922233011737073754373547532791105119087583010328222440401948847727038601573250319695054567540685478162227630373038638405015747738543455938110709275879581820858231285768104869720895544572773096876405168102087064080443324326298675684660371909685274941642815478506079802553553321455337489797355316132422495848493192642381824488541921860123951436670584255019329990150349785041731223602547653789060080284054945076708212494267098218354313748063729560609505878388201012001151609290525970465270803685602528141432461686394480578549126408192833308230051621874620228933402584424246307485941227309276108899133455105408463457967621273470070031690856958378501461818567570322236016513075456644924171793027103119214809394317152632599587388519810537538562253436037719501182224748898829205714019759866343824411462737875457607033845542823745579781858559953978462468708795590974499986689358051125829089076315362522501642862796405622028837386344984780443141412575211856815328813604159097750774575290834558240171322183779398211779846769018230005606390583422532289092053413593774753849953690612411985107627311982942526866480583005700640467972023303410811058864396362027510731382631872095578038861936504697002906605171410774951037639353178258929771690300052396112611760570663375761822045516872897157418461221291894067089127525518974450905455609905350415925907638301386340517910060063313919880037695511916639629582161607561881193449732984569772514889341102204904173115362296352639620984834682203883905506517173754285483953860467241579830817612970457430924114579381572329934238101938564295773027824602438446879981926793158284428896517087149006131847099696871145533894328853091772126960598243230659483832752763218186356963266536532233469373495902759511383066761365155624349657462583446817070841363024146654425428684656272220854397218071170310340384376168007307646699971869765685694126875753711089653510972362706428881239183724032494466684508958996995727452182778632356024549794627581781103834210963057654160593886393990950192623807850708830973778890697095900079002682901043056231907504867606399911071668202237994571161573215066910182425364927379970323770781055312610358063731857945523561529653758760620827976312804397948264665880095128487354619404276206724232142656842299507443692437511073294344360604045073085861394451850179464344919120743106731714551715789701888361238899363627076279755320252220343616366880173469555461896235944479293265338702810501213663189860747999173184999460015355082210736289370925408357677138538647345417467705778931205978306585606560058010406385342072843709563368931701786647255083151009881788059209685246418918112182986457027121477475081754603374586014118765350116705887311918316377775823072226551408933239649490071709773976074606200254694249028098527849412024691504495692044866071273272826745513534499730699319047682642085053703894131625665368459978377987127201847075390328461994190344410700488272974400387720779025876121950862331789160258484642066342965449967623173328349152179234636964124938461006238967103249968483527760833386612629377598045009457342320375284792403274135080570663546622131155138899666263688916878215872164913978599099385580445255061862523150919256245519303438399907164151404619541335587960209194745470421615157882441598250461888496230817681458224217692485956444123440087265580724754221586441317686485484641316626248125135187107536464443567602586616356548740691387978294064804193685273747377750575509508213776319737473752303493271861268795575893825906097428190339965718447992035814590342644611687626474516916125494844850294788021643928064437057350667409683167710309711508951719992070327445331268336751980573630370547869502205592671165702208064156010704812548519562416127170441226763384415677981926004589322508272513949355127228836543023581718604703310954607612227912497990829281750963358415518432370449584850509881521276579309523995486463459628351595239200457654298361418807926818764375827085643186706650244778485068384225857322315330369540631995704536482606014050390374254519228028757605422408105499605463389411012330670531934544699756118629407095212816783853384931607507454784025635541206715449066009121114450161020458058084250096142797217739807143688017360539346371975614379712434538571796509632171807786932172112766162730359322066340618825237023839006699445013495786224750459428420379693439348561773427728191998180505948969475647435150541389746571486203970596587430073888509870353402316508418876796992553609598114373349344702103010968480804594551801469960240087830093147693737439655360844222283409007119376025101634022742862697467656267506476598754816574042786180928375857474063070794241212058756654191261322908550618947496646362133089462915285619594620909750267964285641513822503773789183511328088929118657023007766684573032183880859349296704950734681139035687474775096468374098998160640460216309058388376313411604394249449898327607785957344496247868214724751328996897576439448972725248152097730777566002992266891101276403399096623830343056863699273353929671696810816163384568961795789673518878886991862589707967915093424232627439083383399030960772726930171286371973786955564492294767454888974916122440974431825397806107384084278637453579011013487403899922524749547914403118190186344516537966721234502896238932289128358582690066588784670521558709177881876274037757173710110183793493867390532617972123798226168996668849209951422200782318186170659515688753996660369924547472922750827912381488364306263853979961466317038738903907463362640086844599946825935552642769188422303720144773791512202423886873780417042752313408944248632199773216137272267723768366562992935832172862136532814864393447220204545560388878046456442220913124850729198474140584512290530148967881068636279957447469654383984155637688989184227947420293151362034775174583877456061698434205901317282719882197839055817930660961515859149183824397127302183292377794412872872916626949585446736119889262070352918492488731225886592159731785624205065972581808983557126459229680941980185443516236052184152743489972103329282573335386558864451644169474117404706150853090407508636059146773681744423728717738893266449000582748088454508592937273446253518537614057127648019513690461233819319031967084316494792497453920931693377617906012869191907428588668225385251630332565699988380112450489221380135012512307135894850528149943548834266059515753388503014653606362170479422784708802711353984783817519612035980411066880448118032007092849958599022507693884367634459569370361516370082521913602011100565118028308285905128246360498874924554058940056872838803722446917796696102688528740860920060630663377070675236147714910408608001326228539199212088169979172666729351134714878895160068517605354290325350861269552381627584113717282794796491537990525459652774032392945452720285942490129719201306460140775879993473498498779844934350043412874647309908585771958890896179671137253829066477752528766438943387886522489290474075494724527947826007645116336625144416576272173442695758892729028895221498831775967303571640175173850154619808696776955632675004721631696377932641464183325351581301551143538714237781116509523304665944364858595852798332174094924944124029385773530299008939807216989389496147684012083572940085378719537928317842702622752108304828396329761936861309432971558638341637930747513145714942364770030404029535239704274819199020125331651775967408185953436272705350925430558454366333130061465052206988951867891564229224444186985739730195789248939278382360028466028528096349356419033905930672655911668243294483212507710072334765049792912867403812572988755603798067678058739855731431845693886285732712655469598818122015027394441079680795694805879096872330872578720790140070899664938262522174852427743250284571336169580614912051476515756024030064632680322130117387171304672292099579539826860951478767539454699366546125371445498489734823023418351895696113183601542774712768863586723772062570136538302887724255304333848743321030915126367405681831356802751888856064813628075466735747947009022815951609118554292261408983106808190502186101310553227320662113212553038873893110649363750856039299421818425530066440617224330529551911431047444244183680658859231139870409392440617324308034123218386163010700087639490585823256191179740928897308250592916397931572332089814385915627280522245866509358683449992331980355660228371344394004050311507152801788779556692241128256913418753897803778654588752481511761409884625606500949145101977186035735845992764433107443814691123908877593503381022720791458299341040329221402926237322035045901179668134626933527571308988139580397176448017969788744148866404368436950512416110605417635341775559393693307950153345328781684974924642585711990827362486360358125279750793365171136166022562623227263511160842282081665774329704935623624311547119861460345841052252866841607520384781089292978373706508022853945719345051274990593770861561661929592252106420405939812075525628873093107973205855601036524565625715777166060841974914660775227011485880022335150328347069350247359662749312855853433038300808829629653899077852588921569335831995486660731728974471714952843964139482809385967553458100359697431049570415625741715899914283421930223256280483444379781311590270583298963136537622829840641676833563705182807576175160409895129051528467583940507695404477836512641585361041614851525115837884812670591284836971323314618071868425233869588830889068011518126896831183684870370232587860541108637090462953075178720159239101941547026535027524432888173902664387298618069360206502250883864847815205543800498844995855119656531825265566345494159159698018654432102986322964867832326555628900659442549085266215492247911281723569263983672335575472254651139583308566005740898896134413859963024885492615290074814952540110679100017394002451891168410903901231094100821185082074157935754948813197037716479616084591254147287371798032989665995439180952989355541994996141065886449283748685932503551114176191951814400921719097293191759930965606475038157860333206264804783073266956669379847455570088844567957599058561214430393310279556408529027169319306633539958874485672826563764765963890107925351221034004055244403953630748777757332446994817067976209298188906227563681985780298431326333682644156383977350231890482114781749616157184808339430737018229160867404968870935989319096649396169147149528658143539997909090414532542865621912373077797723164842203770549475467281137095883519664391747546632829163315311157936304635240515283099015508413512380407541096830534294581961088499531437973319120259288035337374651309544656643846546110271851487676952804547358229252715145062029988507388179073620091659649433236890452722223488115296382794774154527656144142671880491804291153614533896847477713215778901238458200484777353486295931620250425848299278886381827826637454751137641175907794373440905722155725106726621781647024144518935024248090368339029960715207844197841701878973910879491392222006928384150704464610849573017034513702665795608771518352675674309936689667636966489859367871996900349152195295606728116079205776092224838922507957424920679359675617920775172378391293014426251299107465255514488545589533220427519073231869300951518525269757944615019888867787715502078772905526269992661045669032360809044594826381162894586984512700423446606740482615019622626997669710340513396717902184218648077080187883671177286273028956187300420304762013016012621321439565101957437230865472830862051232271407608803218538360111430297825231546600592050527889627959343121558339860333698717104991648996843448900265172711196047038658618946714967942485049801184068318037886894495103841130578316900447629020294469273642370588070243446198678848616241490008301478336195918005759093340975609875343900611146395344432214973019107844455320013987976133242270739861903579977870993809090899972678108987274544707852930127119644115637134308275294025316126416697996807296411213383037045820180780769645679152534762973010997088763811717957192428038963650570926956972533846314323232862617787363155919717692253904138084495143277446291141891596974237543623067000391744179708920031094355762404544286866690513864217466331631167085834444931449903204032723617697470870457581933841659449819499081378160776622038579100666519071295437421915311461993314099424073046115261858703896800577732009329993271515146972094019671340625866440896742946077604779521136882336298130045157718211104949167683452706236097605282819390069079230452384773748831416787930483735016362036301071984317867826908300262972729202477611144515140520190422186441569002845216505168581164296333171706166281404458403113799612387282614631004768995729827526448122782628590416636710799390859814776964332511768572540893513891292965299307815748599492586632579817610243120677944278375440678325903197050044295732995023321601248347291593011905313326671999911064804826204268283241537280002250193890819619814237818309338825290860044674696248810763287894738249049299620341773550377343534855201825868781738178463391906636400303620731746029089796070296956267927503971113969669686742733372944989716052756040013539806374157097890268794269885614597867777884946244430302077002373418907109295577297122589331665736159544125976511934045126555496313480621666110156532337184234162650829334024213798864850912353647968731600077317487208936435032332483308070800548056080255732003953869705730285538472525451918244971865893126591128986994870109335582706687172755023337782869860492006363406538198586166928692927315239794981323919587247778963589798956079246734216116322932617133100649445107719654378746982742610650043067764587695395874984726781379778716912940623840955508669974072621397280563707164251949886108203302435565852276238736696531866346257007738164951588716781715980813281215575700725561725270381979454595009523504873244288233836917397938777482326652814061867142553038151290567633283965167535207502662633524372144375122861728143543129810032607132408785490412956366815521401866011751695704930333010406357156265431933826121969216467516687478209042128489551396312684383459945332942813276520683717524869150064348991205187546940560957624426616711894334517931289168681225708410708719452094552986715255816464371864534783263414906365032353178939474709654244978935933880719956706859253729935040121652981351995069213462023813321201373042148801127687021214652636339510309777984591544080897923929293306327260874751285240748300301479656444152899428310669214653253246048754742575132907781093093169983466969200351983188979435727946902848765596548745530656955233140868274873119043404777276500442274572639187558141636984090506184793862080014776985907772588015932738428263797970193820004529798342261530829125933929674927665222457127300599817411195033191670849964174968721539417517155988983349083342338513276825463501534169091865412987515791998668157639359086903925518308614710744706034862339010166664033458553037426771961674310389426613607239805633667039284765302909986984517064313306615326223593819475826826946890868977694965146491587980488461396948228974228942196190983775894691865915862376504851724658762595749468250042655785614509822592010625326089613952439093958906765833415444805355669227587316410231056564613882007563908198681907655413065925450983602033692125428761558346079739013869217721490238560031346389259212081467458532188564735942272463123919708879427765414356102073874008960357465867112119731658437718917918172958138166783935547633081072663602271098791659429836748546936273660785049131448975686591299371741007102214558378071712785169130034825309296870384332487953855252338130618235039854000066438344996444501454968090689220213013185607775993436001209291560777092441885770182149099749085863692739825468651482962224954299804252731430644429611322341117402776710894614132208990857838044671840158168466375386628978137229681681850303108610430286147476941226570961500281000876900642988923700827446076970765750306035186093742660627609069333252171383696231622286477775850048169221976582539540508483520463491870658322176217737391441434782558148872258031123321589850796616410167661417336589072469388218661227172899639117784020820332345484529845922223527496927041700016068615915726415372359890197469160555400963853352895703336695404606887718519166684170015088959566261506489469642632028078467276075275431664779858915497050016839223093686022796533076920595197789881503936680419202852186328835230364460926335430608378033948609728584977019862797226272227404468676965396903516108477731645556706398771559953409775583704779552194338300099515005222614076725332789891557269671546922535668608197077849213123402657858891162988945252417116737485704740988128545358940147778827453788336921282024505653329514125569293193321365663877907176617382304828478147592811162130661195445053274637930775222460109224380230007187292948838524579256689436109967189911710941303985449873355551141674881251320861121101799693038841511403220652811962808158814781930892041520147071664503406349953739724391769592185678022665862876588911135761419326494308907456896983132183524220275191789683299725905780343988669599168273924816172367998830782504137223148971915476487913920383099256610443745085297683471304652041429854012812542684543318092440930637107696088639415537327061526205636458922267170422948586257837124306797880543164873486157996606862332872922573242368531661309969580842885364579647467132602147174302535849736248047988143599895071075021540034321360793016587136745461098967347805277974713742536641369672678444041650749059711669714491330530890342844386819512061735647010061844823809003679844587312686933144506462691473368832102192508577403264188583158534144410611217909850347348456853331824477260186083337136837664121001206969915823755565176299661448052780234906932257833189680614339121600121377984837749229203028652760335626198811002836686583550435743714746085492161131460708152357083269725811585273764466228104555809698958994091131025550498797972067896812812434960471371805871634946410764556804149804655244031088548211279394807647681170769308191348444937183667980812416747077569335238311444551403948359649832557291366395272155362514954819730088333182507056341196392428352394769568558548366043740189712655839397410823115711866838739394058163841180884162045991427227892754983518166320813593475207224990071727323643001794243893793431622752066464925268174984723169335135345455261565062813205721490271091091065908877586409220978935853479193230129615492064686764865549623029943345970716873648554418537903761843145905080981193521532483805253131559713428166344380581731468317669376962355448469754930129895138546925546731063029479920881576072847087593553090072105049985246533893205797090422276634638509865544268740455906577808425604240014359452650546021904991679245277829724486827479021205305430133072816847389156123363933824848208720153522984311440243708213642359123325588646582206939382007782109988384652821198655401962493461170072344461657235359735016031115924339855894948135393885493178236855064401231337558679197738838816576275595537563548067103746683424557612250418924861631643590175836248353996822238830910892008724680337104012006314347772378855318829378472488439313166093527040131769391198305300783365313220750919632982065607150288648965493261444640476367876880161321578019903754955974798548201498025676362356628458621036948020526488109703500646647375541844443723122817533914993499918717445330445114529841333618242446814817039410064139492712827150033582978725499521435271335535274171446718099212530113481907851724696667446377674562900663422490599618815142224749416320255584159462411199693507509731936709931548085481226762834234423184821321333473355072115638459487599844904717646877165444838528631871621978333397542360352950192726507248432244632598914819337440492622591343703815956087058518488276755460702428927681762552043983922320833138231118497653094268769325598044769517849715957175241301810444708261002344411985563228113555313376344637750143555232970931947439477620985192612261330617351004417358677149580578923262736926696570307756117044110801162427868267274682619893527973955377362508492016737676339822805451925305463903095489055948853156323791597868584173747978448582253461125614942711420466221135255129368362411856171546598584099881311568770147537910620536292296873006278367613866402739204158194599016283348090502430747639980646148423960267470067232851211678290241563856904776462384594796635175933895604216413152557469700339184099331241776770373433187459061830101980264131509102454377795578929805533757409643880584666912047798782352066089958891531905787944672671933940151319912419605943484200800688566407300432108667020109592512905099737842434905569113460363760395658831055099402445884942673311253358428008564673217168597064857547316057840827432750245988435278905854648338064710462172862597432198670455832486635301930292419812403095790404010300524669877322746888770436931668894463344206523980102653364980950311850582773619892255912402077939811562235097611331020625937280730550099310193699585099641718564898695626843771246378367691411962666560498277719037449147166530352646820096732255700187847291316897847280025732858254396487303590564140123568190968757415584075729632722361136372788431697653094848754102993861410071447865987591634657133286733464746721557565259518012619122927302700755473563881585579663973843298949832644435899480009656677865061833516089744843021811191151775073176147260233716583702787509658963562609251819902302447015345457890781856828177737970699594516209519135906872571617394841346428459164325744358577853655371652513128958960064524498588948888808178830928740500364900115322387167068121131038810248082596527172306046575868230616960200253136837402628710358265780173123471374003294243005926980748394930657842466778028547749602966127999398492997685075833269623092188901014760959905397795904338131505968802393953752063515092136742516547039769616736239205326710992360412208656529577127621563921047522615060348051943173535705255347722713946267963740826706944375649926730997441224895013213230865294974324162963252126178438113092258935201983700944186119811572657902989350266294002081262086246139362608512034432446495532718352539569667322971628016654887550338947830709439427776945733648502390514572312994135123045753744903659809587704107253008724630142362823390679771331579764321796698705885417245430372638254281332109808999163271364038601740696211876169356339639991760574993247773861200571229513316556103506110388152425543985568387547800651252368718714445386079425159884078953136437848688753586317688430542289466425715675511515972770220095523815081319465067326821143698303736600299592447969209835687236093481735637552657450594807277341625253092239434534483526181298683778061764298255300363028629119088969089746428429322611280008333422394620477277001239561768697339840471650903642395602695851956668168873415268162152291408318622391710218341788337544238209949853329165806119678175936511293821069831888034766286807323545156478604264993349725489404622359740647593923821114747005852280984807614634670809817836161048038714032431483246384720191057744327501573299393909709420345345021746688058667642603211638007923624020416312222154558725178709018841697885717204108061461232342211899917988838986635096855516003286658214371761295484511570840716060598639922375457851416008227179607490042015584550164731226281353701654357289041739262994697627424263947751563101872685716958583891748597909034749719552289710331171354913670685995118144169551347024151013969224743437539950713638073578069708448061272396349547502670170030287794332147951740176834671500805657155836004579871616655542973868394399003192042883379545664151714132715097451289338904455004272794778681747219594145829385617468525789581871505381116381862517449997713572199841498465044554689535932968576295029321532746528250491080952228654815646186831356132291849498316256213374444473046566154627351959219491005154329592381495426177558661719873504470091100325963638719293758793458353869677399616342648366399855932939493771096546873376156514260983138132508583265230072379098197531688145042236255865954091461633654056690622961926995362618645401159323896079423690409111247469086959632022631593138895406314831546918492904162144682165154625156332659587305556898497653748574338961769168228633629984302592080662838674450489363472727375671262800677447571540689883742954809060137696152346198381099144557822587698119463340097088888800215753318204162648273929298833201785823069429706973300514888301276389077046933261970978197895948427507402870631411973170002780312365156325616988996372774517986921469876006529717349464391965098715298005900892811219154295668766031185551239368149421784925515442949608966508086165350675522685786138391798886147687376408403697345318159511834984507537312747104986946627577322355077045570089380647069653829210429993010883215733841699047508375845336111338323351426297976562202407103500371002768053319230417341472913926822961853795536017038745750096033949821350249246592987522246011008420930613685138807916352778818635853780561655279288054463414033529733153924400119403738502946005654891198559470946417589635069272163706880998068402497960357185135703547487274066953935363621526731461140504530859975807354891785589769377805622054745208787362560638460415966950952931400159084463993232352604671695974654845468123398412312699422851414159098738173158893554577357392452148423972500361279048909004310923024926545270988355680623169244736935434455636712526779790777864095254381791976285263733887195860372012161038536589300013756725693085490858106082384905893391477572628782930952651289269793128436199100182940211912945667782226245626692794866406635376811538690663906770204526881583326356804796977360207803988038295709169348077786570060706231426932741901761714542892390164019909472049384331058765932354685835543572136641724617180603442431961456038956164585081178366908887396596508525484493401951767068435806754930869897315805530773166203151602489008469066824909084575159680985105947452157322792767736939053571895127015810885142503321187470364586268458386092869727808408601174635135994577143003852893718528185991077379834919383065072654573425004679230401964260746218785167726016353036160446113095165022522913072694516244027675098196609424150141156463875570337691856990891074132828802262544215645599079010734512409875336580659911250361051429453407775353621511249694066807027884999552636807242264073524074088257751550974318476544578519292515086439351605556279170220947522855626463343175727660766754047242242367721517765532583969946747096917141179973229556394024425474803937748357815890228563083173177678305446838070604494578928615410798387707474241409620202304716971966140135685254974670870710524747214648050823695122508656312961631501395077203130707513182046748697422144104726845868287542355879575174605870585512050667881001846747996174737406683413264579255526635070925461418719462533279433743766446242172284757275328934846324524768050295410754150261302179520238018688690295545207387313307750826941156872420003578453047689734815078386038305852571693258391248166442880641366415941156833760351848383302849913117141046165760097454163516891726660623935639116588093389669591489689241738991716243881689107333360708466569912654355347088367875750278217735487450040874566320112294716424914105987684548755337405685950292169217518728417086500832430539525631628915842630666046881682078289267294886999474273782644373023244448364829120669765642331834056208354255911441825936783157380653121546388774368189706473799009923474012187293800978582954560178618234190089995078632089720734657517188487757184789831825498256064510912897053773330627554337512401507863546847546059650908388836943899078699166427774233426435019668669292640215099297113081000989630200373024766589685566258013026379206772743935294338053492769496304543448018176015716509867006964934762104061802530097129042242951127475037504837128937115177440049865529699826109890920707807268405104217280861657347410362348785720304019862065183744234058038232181375920930459343846356826570780474950040969862503402914684222463290971481484992556916117951083167277784100245900443855759527331056553161469993727423741628735561101306387889338477710188810529547772427097616463430413360666337329148861731978894457428322147950257487342668928764220285143468852879708706973797726988216883972089135866886620655278804681986581452323323263687676134444627672491922724221478650846413445697864093509337146697554348982126784754043510385555552109348574726748191955290051510676097200515115204544707120720125693213444673013589000384970701276753400030226314492140920292774754951021876222241516959363743819906659656001138270841177160362222168250657559077785736032331756519267844162338996257210807360590034728499645958424553721242755205214569359693215795123148053059307719566677670784098059373513990322290034987471908127150089737913159882017250202140816291621499477733045426886707693337991606892650691608373360252181033249942796911885281761868923899116185813409387732516601656339881084875972236690608098343488020932708134430946852553373726856404984121278504784400711031306281337026361572664067657869605634326373172191957136318624740958143050006227566802516675845459730450258963961688135485100191840225694993556077068966403169063358626119747774469424898879166960018093246760929060264663390261095484510860256154340727884375573945946427086986278839637824902668350056130866305909752008669860730813458830082727608742806976468491401852626908367394271230573140425108330269492018253854264922539044819698823627261712503653386654070979693054974614797171742818010512683982661565465998064274447545856784458707443158589024930688275846988035787958116267826065480522802703901804239780640863103498254458434291330974103866390093783026491916794345003972996338714214055721092873188337727435186270193552664060775543107479537306910631573256207310723063911980008088007770656896748876986453470147820026336077545975874867355542853398509485117963776935503751322016151068708949782627272294880770834685001889443062669229061138434056668637298104749615103018610679586851579795731070399504909590866257305904709221904959600813625307825203223409994868085810176852310826363508880838450192408376942936004471486729951648058352252539987025127614122091206385431937217030665218691304781881316162484087803633925216119497258408854257091454483113098962794399255206249080588780127981692731695451239792714299671715236570362130802794934299009005832857433859208993073974693082517518552453226824914567172477310192549742424419118507987793218451695466343190525753154121826417290388496340426799087550962723912350529208588947268484188412851682983083706788557372939618458569629194723902498570189346570563995223531421447260128993274224643922257720317629809053885875703384391970712941385925878983626841232249926988057394530137860272170873785785957158734150026190106713270733126488430911559941180274685406269257506387726631423916110781003291285247679924169847996757213619012458300043393258104707677168904263820396315118278780711206048744351246400510371258311936009470005634775344669285138402467175427096075947281799637576747853196342042884369973187611215432415407026339485615026026507061469303886652390813541570067048664629043877088931859625945919767868867432883420729520961495607813601680136532763105275294211231685691753326697183018505647935458532595626873229547269411029347267089477319465692335315429549123342639349653259355214825756203862836587349507792467733797239002819133006339141297963746963486547758038516542499204996237288574768056886725787797976111007541023044683649831986834296277769833325571080951695814714044121147020703641541386855899927885167816037585703425022748031909444072751762889800203411284885901870389935099976108236872710708230679746761213013129821000145464314161601987183834420050665842852546038961131686541901773309542910718682528905003587679186517387710637442096457917240033884440843553556475344587203204793420121426856576663141372316774296492782137467281110001638109723608574935003232199767473881349199744552117648496052217070552837818210980223300438196262924614925710651438083034088191119465877904605631283086630751631938133584360669149784903912612823091282384215537188803840318747528305735226730142015293678981512538901620169738427012895603595128370563269213740730958532746984484633627858369925184556887009765296185584324904451157957231462993845939056190854386234729161199589921295450711493170757448261322940533538152907914123542872568223179407874247403983571775937783420355383584286491463063178694211324288957607945281585444000182306571082131122018924277751232091535913453482976390125360438253423143881841453074882313145544411618223800166067506416529867650490431033263925597746138799366028009755317986979349051872022717171034449651078505909315382762595289824393383790636327569066958380351008726906471439649534714582358359046175663559572017587414354909576752863660872265688406081864952447663780716621085343013244617059281316325845313050296284106147131232187430280699159136198404247859935543839169438842622571093181148605173768865923061786536932044364820570442918836657341537350762138860065418891741634418908409888616739655481491857460090593118271605203621426098168155510277616892938295344236645844632594689126579220843154580314550981393312566452369503664392055719364025481344916345183802375755382846712201101950159263060895105159878499126093819433971187531643394290740719095395094118004383412401906425610445737685524501775950099815686026608283462575900717930119212492736604268726320555643732701333469588037964142610534324670385903936130658985957081712696420090787554357414584896873756627056455962557407447919544437915168773108585643513630933582086918321616919514866862732165234883684823048157527870863740576434465173457171833788575093430385407379632793520430446951542598026837841766028463991714308757400750302675143611968785446048030212353548687757036418280816931696068341948368281615198943096563581849403982550509713505174684293465914973047791609181542473593013125682247184575091314046470950758781866113097198988495749508512442764220427520423538596164304133758414389186529778416304280764034056756235462279403616266655366295551753622657568181585984232596627266221330762843408471087107302889222011112882537003099391240827212156241204303580934616715512819696469947365138272372807718149327540089414388091995949686298876999431121450211782013143261857134368542749093245041141249987034260682028805276577238062836529939003765821096548830445643016951173087520946846918959208337036985430250951048127694243006449405629159008718178494358866400654080369282927673504365873687281042777147282363207976361641265709940487645594428593325463621808587137766981811597849253729470733548278515275925856951516778303316733240765360799596795172875148470887749979729385316288343353203529034143623720695104694167095062132901071153898084395865925915386402597248594747498635285984031236778660630486250748840397233764649218629465336194061360051951576605609968339205567953953672442778281343778029807557836321431756320089966293670818094773142175992789931833179405001609644631255013087059724930911047554361412183386462333526713169356920201024338396171245951992281578944305813799898380262266764023879110359619392155420258504628065154384410824731274465385213319666567342570544814614719740886961750078852799089483782289863990585022415802297043249138664078711439374011504808238174147129534921928913198857210044680584978913523174946663113571482690649895192766989368402295511409550896447271775512378919734252929824506078073889829183568316323072252324472023753331935707475162017317985327296514784488686723338579779080030268146915179466290748084553611942376705421017254945238886136496515944066860704542504609660701720009816342106851269530691700342551121367934389339267510346994223107482078198922093605918909625310890548428642599225305460406108021251199912802095679225857148437347449506985501176137578332306651601789065179796961980687157985739629202255564722730657589724553106770284866070314768968302102295899492930299395643159919639866597930206717269780391978793346725929242736496031979448381447049467457931237475245761675434667550009662394924299729377997690690001976441669922185826963312111647711199365387229360029715921103169008210512242971686470227270766154371151884156850640492169573298156956747126965980130230842273615622230143415476249125460839531764547721974031779540307682975796312479601829611868705798688703858824266400397264983532158556323106511546601456593257261566154615755047750975925865043723336145286942555773784382120679301675690432080653376398481331768555323259116354013564198360834266662752012402547054678210567400775971200103603947608450590609950352633679081918175870687282687439748724611688948073398502799678794404990224130944189497192321677205334864888126260497112068385252489288848187721269838924917342890779026205106219585258910047480810562489097496513694401284141448643077288941928901198900071899234068477279479263933664938597112357471816451389045822132992373150760859517103818961143760429244962927375721529526777354257738119187311046548668168960467656795198778807209900053163502339530653354931567077663806132266697247427761930122755809388084594744890911195482637080688760927778313199484458768648892721032495246078308295162166536648820135985907070962032236949240122613253549970731382807503445613651829478675412732485616959487324651146500917751583450469055400500141849908479319906234749650258751561556918377796433344144791340539035841257586562308306088776666336278657099732851742692974685665964079161711829234691891407910161574413028236311350428278554749636814708209382859280167425835523782833714357222480549152747321610355386284856758280565863081562897277436218565301506001642510910816405671565398528623811959753852356386877371866320953646954923563695945300437956529555159585013669008584186653504120463833601536815261933050276453409119651975176406010420864045505423997203614055590765479318876063406846882273081503038605892300780969378175942369770782802971955284350988678773602048563462415386664585053045792402789720614639811296118654268918660395948128965756220386222812471989685596689598685631046422438861283564115242976602953815756175844416612469207409073411577164451659154304807888535464133537734383960642558125490202874566426917047814346945021568512236031286700212472657492999306359535206658658974707606013304852609499701261137202728178420585025552085460196984820151339541222693670761911618338473821358550473245601167887866463076083376875500365063846042865651811423877492976716077778859476749395291890258960371080699576276784948563694692834023817471938275002000484428239758857922000270673511119513090090898341264488949345183955154715128658835759606982054079598236730359447182601553665071130015967575962278240260944002306600322815065785273122807188619557171499035114921617638466340932997380537145245609129461620032763719357160997798756355367771069686271314962733121010721573777531182883214371672952754272357110294838753069352161039391919586449505895624605359521466141338502017554176054757448878564985673911611414074489549575455269518738927948627507013212301653918223425634170156311744631185878181376020937146980835101921212041594925877400155244189496968931835367169175237186752619661140523013842416494988615792725668989300922608835455416864045747070565144803019742640775864199150921030477720753257755142845271779525621393751504000495928645793711497673476488013169402538530775149016567456336729928316438709094764841458234434167709217741330577897375640266210147997700156172789681044745385191086749576032945216161037385843851563542585862928187076842467067779900389286638596857462945383838134916723336992226645864913799581352071801338226194314155796281399816464435716775011357442876905806302428250047239487802321214109844700333106133828391842871293045481834977648470537000749449325519253622425821630619959302082374250948510891229662157660131805263970353159680586040590771103042103574724844509468096329660467899819679254126449228847446336792469136370409652106249013341917305450000774726313328207445579253998516821305898898430269360524864390311192774738134397149670044898687861845797890606652193202776863763799263806448242339984037005333454641942330167129620117933424888641080169144078465469593746104876524418789813352062119930698069708182391417404351845619024499684845788451830943179988667215193708398237717561950407365197911124357313143091698179055143242768299630822129525422503752148434207251794251829342243746675158485853670054740533063611528248601874143352969119621300581288023518943987107231686340987416750032048556281232151795113117230910680073360451290539826804315806060227082279847009396996698179521048551805683447981603457274467734194302377549993904845294149315117229053908584042221340942282651030288090618105026582693317361352063975595182552885283019167531543760900719604724479833996714638502335266530386440449495847210174819946802701173101730311658423216594150663709516807949805208075673086056890980636413543564383757918183891986448641772619236311665881719314959685236480634800309996262813274887741363779744216176646478543015569294545158363483837255738277303303775636984341012058080112078280122651643174250592000574241381989943176522108401555120386565380670232586220652302081068487138656851829524365584551767788599742556761540479822155541329510154675775865771641127815511737101808712348651531166116589764009765844197376720906472743526776324442602395018407126048338005563247561899925474183442388563663702111720912615117366044456737632321500139249275366366653441494274175836286713448479259164538301613627016460026162673280737396706481666010137236178589814953773075921209571487319392750729821170743530981298241563533422949741333672690352280063713198274008180974075003566374285791992489924926568973046563967373106315050595764019160861089725631468046008972291531492356769508799550363328688712024800508638013051123451649547292452119976797126895523883602892551729410040872140739906738036175957172621373605434306689873911770989480732767845974242947575215641475019427232507353472283667401486639443025402643215399169682113946740765688367686272900917694107222824446996442906611615712222326626527577673442026566037131568092667195121233834873364533116503080488736392215254885127283587021395798897797826550900244392732744147013920178812000511054758633686240491708046849546993195379901225801799045197331427897255128308246057972813945390748396819019976755719735409542541460258162179736923694516648302679490201489642433777984394840271364809452902330440086653353601460953612433385857405531864390351644746400313859072673336717204420558711034706456206841221593593672141305207557664603708739479730388781262068524488959159458418505755606775670387657185262310801906989626655151307052241461879493000532857104678027289137399554665263016271589253705756193818547532033427926283114783367154016430360951328773793162268933865515775945555661393844178327936792174739992320183599904706673811443806115563693579773152828082355367212260905460661800205661740455086435826824012342448453208021988218640592008788315493732519975410079429878648869465495273685593537934007893391445798397844171767644620368421872099538440804936558863931777915194874646756531225377905976658267501806718785841370817462497653158179471533577051597124108675858605910059506868708096058212259784917167433120845472663687947520367998854744182350568403378638651837192650137466151772019474560482406216816329695515067237438938512506384424456101504279114962833196115694057592780229372382418267331300781979378820068985921267256975842791649672217596190649372307121144556739129207629264996296743288754090424759018676844784883237606923107147895938429392318891974465053437522003419109887696603945198518771638246802632882321203831682983716594926685873896049562684874107421265557361293274937849321952877084292373740240152681667052111103537491631508745788969720292628992918302400785554846141944644328551997307315790331084510916491943312847770494534683773831901081059557422003058224046880833601046785440554603273498121720867565886289710628173801561269131803184968256098099424249901693022762269792661017983283072061887103541989877116881470774272527837381377777498019963865661451597091675009526483906817858681584951489366652066076485362772819945890240893680225658624472547864703953520687550496399752653916975800527804299700203121351419501612756718890172572965486496815683851611090831530332450620030064028201977468897934899272910167799014164946975464503990897413812828213597036046673725146510983527234412144793942916386492260167051456350830328138056930441159373041828821385879481219130337052153123550463352940130256915555089307171780380314644134162530745716511064808505684491265951177675374586095414727619746972486814581968242132928718955482117735170414957366199915677250195699151245275986039571092766586172001395039307430368942807988490961093277169411722764919712391897422110311246060254497044923653045631042353408004947130301754024999365248099429239012776581238052580839326188539641076203337262577126496804505086460909599686541604127755131264498158622647322439736114396985918554610392955900206019468649269529429492841961730846624260035220853723972121993089570528194420915352261010181258182372600347033689940838439956575280192181620955477142074424783493919111884710417931251942972689970735311019071839808419422009890723906075870461154252644043881064265217211213969171507091391948367870854529184117812484812903623541269397983326677006255164466294545150491705388818146571733737898116931503545774370659094142656949384919339710912987439348588638858565690521122789808086541346281806099175430884630928655810773702901129361255397155962656764931695115156043412892265193017600937979936192056086911181796389834951975714415504445434143527219065282383738379220082456869091676559713492607393655748129718018736425765321157926849331970150337263654853252411109405661342853740472233765601695564805985223939050154088186649344672416385599835536135979468736059189717330193221181794729475853129160044283181453559057432814131883020213533856631514250846973767744484230584090138345372062220720409224022808621592409783149002745609273498154689120152826519962235280551938090482312694116764849632187100153394551850772858847940017954896131016367057391638570455349074192931477375744822121416632295449435968654423897629608496794391298995661095441995085917931026081666745379442608495599986222226027190641324376019757900198763426138074285295322950347201187389966730701232214627888246601203632472263110075380018188155988523032788438929310038023703261881650436022016540561539407927633271083030193928141927253114794031493695388449294780621115476937396926919758006584276139973803573388470241607177435303313704808034601282342659215538210870399368916285481429077784539060762106211028698162386213444734804486607541481519345274896929310343439800321137207888898332522414382871650171760917059782919676345523582433124753060728980553907796270897758090005253958894150450503420056726160578391730010132030680774834415298996609145785361826142467759452953392274354983391196072785667723291334043519947331001726004711216661816188399052498352622666293023611076439777534050845204390075576898938257371723131622752596873315076408899924547737223918410208207399008195710996505248684421698009146601250932827779519226372161151084386806603606560947967152514731931034891038811898676113583561314349476808531461870237156275110593384215620779457440550298763030355521725437105526779018835711495495244135664548885087148566915236329805026962584101923194908422377022620125391510837307530287057041855515986658268468018126817573924025544328359506354585184288163918227534880633203505750538741619988554521784566949645621649452254813179728767042002981588925847200808876546648475471242586122932920955483895436007780411211017796221815318801973123351561743940844810320002219842043157282742519935727036589212854045662018176827872489293056901995165845384018860513195638815890163108002258198887232116577628921731404569022746658733919237659839957712124946032988900563310650480408416031631144912861278068194017913904088344367399206677583393529335791558025353168768962985750598037006419322306681705176380019998566611783945711008604119181241442417670777371937182827329004957361646258956163204093897757240295258346243825167808544473307053978657804238776028347199545695817946790091459931686623743456183895132899877710723723282428096792572215884996081647695833852085676883146763737975771519493809144397204667665165461102964344202262381377663012349047446231012722525200303879403322804722060555194327329586115549873731246009981701858617169088010143461315699710621721973444955712318621295326764285956993149540482571724755351776392772423009985304515006622703141952682108571633883840118042797951055669707347083746584061803959203632171944747305542076258459699119989670421606211119880561889419975806872808044064945658521921599788889646218399822068496051581862509753953742336754011726564500773847804507033227322321991416181978462352913823334214789037834271547438277155730518650132885127701435494346665774454390390945917256049667449269248077907703666680125972646856309583094068408567252017479906053978799676528207177240175170040298766601229784132771902110021177550635698670751834708198689785006278126228880892715145593874942046856342287483686311382479910468927625143954530428128797662253536578362060546480037361542286705973630799664829041075446645380969115388147721627154311353845941355858047336328200748539368001459809307850381349087695012153089830866553528284202923381830090140003957024449167560979045931337018878940099276966988374870261121528561975260962328488296149887211639766022620257935480520310499220948055874182633056617503120811115515552894059396702944786861022362427677204051934720531553770707812417696580932932500082649295358542561989818169118540983798474661761176293395604774228799875490424517270265397248304246927600966822717583492590681428988576296853486435264281203175463699092975800377312807922389294441099827288744255674074327537934524636016058780913650621297374576862604240299978162741137367364194233295617446961867107044892123217591751230705176690621771830053125156661623953423874109032000032176803991654525838005278667001810686103725032972198493896362186897237345578789586956236645830206330189320628037408924100103431907443378710880284582378429245692484643709411706744815584572656147094548974905265547658181506206293461366434663030679014207444079629885760392923081882923516059171516839186942566109668826191751572209107607988510369006313590247906009978127085331713500176640432682009892557119495719948988629085234808761517317539991614565493414341455726006972745660450778261095854911289497302747099178408499957455165024480858288470239989108224415711464292231059349278570935771644650396360283160125107406894651693184665795289286945616311078917387788979774466906943623810894129130296337106967651519443906072686951515520476260803705275087705177474749648346793475803499660668020409508726787918241879836664829450930913613781272108136549658900525760378130153240195175520711081768515526752611027083857810082316578158360313650925709719161532202297113997204621943621308997612071083206427460123053427713032461061082264510296619726689528896091009899261087437643844078271021934622041779589643845485171185036078102616702759569251429409494633850493645105234471689722136691646356092167193146444476479208847548296695964131293405674746485081518456186980304480429853992516259325209983477820829057559149075685135050869281962922428624654377475808544301017648001230697225912213985057122023912361607917489794967041415492329735648839725894282639107278970405564865024827526313692479357259680617402813126633993018944178529793309364354148793311399555593812178190634908853600111831489886535310222432622948321225058134532705124644795147327806228108523491687104857608214678679311917698308793432985462730400283623387036335703803445232884144248649258901346141875426392831284583870351887841873084041100298087320654992278095653779711981827523381881191779385684431215864761062213386594894718151129276789617091060842070798391491086617511194353624298309290296187538827171482732131744688982787808373697772911367049009098628837260735323065516171658478669248263519673972476500665664586614524632299552627203953474269922857142381236124361652796011431730205623532536129127569109527480404970123922670761445363758629079387254875543271659082472225417868472278679979195224604559251152282372216659346368241256054735502609866926031373419434698673015174058852366503581182856492333179523985967613598098807675523829587765611418204137351050233604267587641910310096015727514195558129193415713384742715641276021043270580414934524369201964558978911756448826330523659312581992276245317917636720976882058101065168101247369606321504957476355824812818733943996265161472697876486429341549363382966408402138902169132008437231716977282792518767609760678255871228618474238354596318261123871077058802483523588925144899515626780643963448394167162216593780395883127453283518144570249988162614447309839592583254003098959916096670663602262275459206634349149307336109613267638789202143029706708321944317730649316908971285174136849143934152683607126544362969910272263325633749156684947698745433628658275166597926713841260566709227546249834952072170818768395692581501650820980387967294335211708366449439806425944731638991318552477906018050378204496493717347772922920783892381662636213197874775065221337022020140923892820483508248463459864432235867038195289580093636938640477865720294216010505652221946359350407730344743885867987184440429074639133176120217103836784437295279100072265264278986804994130678323755305310892529744952025504435822599886373557712905390377277064249848630958841182871336067800958407605383566784848266566642941362396730681074553639374011570951765079552103965917250391240911739233267021364200112636999311556145698125705247518410471944520324953707037782082918205997388187013545559188827808769803878440983955508763537459995528992670483237494801713008668611898736635149330145570081384774819531319719929153264279615625948327441878141064649171539088133538442555919202916112051217073739596270901056599115645256564884589388056798254455377860867792868705846194599328024823132724378340391374925742062079679161782110106680151106067354980707794505788348682426723360661367466507238694879749288351967223646331261456220031556816868582525674285339071561444455490875171204302608876076298067941479899791898718722036881341433290013610971205078582947026259584660053574163956324466451650286751885259041333974033287908306898664591046416983177445684921595237740823623449054185791169231821193662040093907774163549223341880697206110208053781925505806060380142301985925801799456191736439160034790076555065622999044416673843795824119786489163178816852593897506330834670845828550865104786585008893801485770979464576229772417291460732114161483356152021169714087640021647724175276355743364454028339366781713959516815182250489033921192938947045206938162910968639755579695967151066321282248300690674370413346751897794820461225354233774936041877694375119198318244948460267195864905622861024834000818108860333808464866336026486471655468475078216827518300199579722431695873683713347187204097020814323639019016269631728385261615045289226875432411911297369325584264980541974053663091360738854412967002257858462372691152926768122179520703736699253491756760748832380671415900382262873013003611784164172623691528169543024683260727883297804568688684755318244124663553647003178101157188659892717413202476104687364507099889428877031415387211672114052519816873913540613090588840501088085332418228720250328661378617383139719755880553325230379539386151475601593003660076398129024192153688939367202256477189423192401752396356994537319560152559037574317827877459550764840832037032039473948567508492728950128665110635292244092434309312697599495083017913675883583070508889799731450056630830441116092197007000587573596405253539827870593720229225559771497681330350409346717811097169315173377657418867967192703929827192185696352661378278962146056991787346625764283983064217662135420166625605960944336524271646468259180143150743440169108922257374417801362403422847531683186285970015752437925780697894687017633551556360546680600784794075478979955074353333146215204048543564078519775820533362317087579392074125181800014755097114690727143414101259313657989032360088481513002587759658295908357811554217183193694281469340501670140793638501375851207562822024380029155355997965068022788679926295836712363755821450310990091169442711808593666211393705092069951305948539095875495779718519377683065772822734016465543810900787156129075903723560667803355435745469826610222442403282960119083229961233931373284254138757579209661560986088653167153952926389223382257278880977917099240223036283930759672948399602619641347997606256128496510101452235534128320992316136505069487212451008205895253371639279905864430776053283278776954454332967754461201705760197866677721542854746103508102501806115794327371354820248209353092422720277973481843306985207328160374407691508647797050045896629643018794715285330678746931114884962200158734922382693834163475613595774723520395153157644137021276531465278805073339446677269839631188147115927319936112681249164634279586753405143944199574273483018564467711049200590294824810308997133656625311410202440690468376000018040981355979011801806293886022778555021893841834131563965145274274680220007830985053802267013531513524165329020217636768076483259534809896057869267657490443819574148280076942026579765438885048907601210092433533314942741158322737407594510279662996291418763441177970680997769596888420085590455077772380690179097379199108190894543116077373044824940341893184694491072928797579962662475466578509823729430737332670865786844333909050874298864319564231657224435803548976735278823357549777571437130880991409043421863813895238045732763812029125013460059356386141552738935174056277735871460403804604400970211956519800713046063692587983670927310692459243711759532609761800215049014815201432163353980089131044129109457776877943671154240118065814891063652714537979419782960095878829388795484093416740460432824444369929198476711360534892216877308358497716769548033201749024914964189862386111676620065536888041784952260809052611144204763208583098609723397104154330930545400028720441949373808450230304559136376840420007428273526348757019667163123791791891225414763539580998630766903262517218827927213458877313214373938461962229098243436871709176501583611436120927250155289713773298717836963549414401727557295907510939293460422979390530946879888978570928056577584194871064191786807572218878823105055787406811388771656401729820951588778827073116841485568799879243159455591883181226754792407182668006722240723113760607580263679166261980798447565797317923657852163447837216979987534884873839635183803136269463011516234747814545484678273251799092982046489538298141252046872711000579611948230525665067980741815091759196301334634192278085759324268874623620879574263775262833545889483203680945278865698038950080856004119444120989761371688737432617987002334429995083460788298299607766343668517624768236864000791333252006724339495609457881971794309927682363468365951934705061658021144485468576736530233427395302806775096174181236547361513851566004538709411810547460341222452276404824775130646506376142573832673511490677122905470694306395451697069073694487451212533996248122633945466068313407571742783802787658369085192247152633272383905582730126610493407267710910245215734589892728553689964739627180282419454472071647642448047657150100562250304886547594652215613224245365021490651709924851859970759955478559289571037078231379614834494484046227033740882803135346222829366428117490535581400915947407409131559043661741357359962773899851061411512443852503446194259953951580407885085017819824537244990730412814986848643934822713789918160934158188717726731910674072531691825397272602161670933080567337602742994931015640605286655335987047427505743368594598647112302542838548301673820508713039128103065542629678330264466938271344024199388753910984415654808745076462867142350227156881145187286431826676693754612527428190037008395135252852578066565066969866421158762153566232111572908751553697014890418770269452633758340711821767202282349090249884587612579632847135108068931488038673267512246594250048194483565353747863015379931851758064802821972953250773840472709402950150132600244011917459475165432801909767907619543677366630467894392947886716302315809829541126816191728637568666077218359950350816970484084156753841464918820887014873291922434320470552432587779680834955243491553972205628524489004220215720929449793279846745678539991853773941576159992792286364967617739626650175515139542358854084891663935672853522341191561903445577319469084061527458487520783644380156999839752766445754134746980326302605746220180496568336327967852754327199750203614521021710697961082119091784356969969106739712980853359299833774988313037564743951567885395724575053449325847159908899815032417139968461670094462409940383364317621028298091110004103485596182715378413304418984793652848527595864983079425277120711179837211203321434614945780624058873238694385075430463782840166919517950549958162204318210854411249060709112999702696496249999735447502264870227655120167481616392946958047709303701225370492329299968595956465715788618226837835451530219309568620790951096021487877669325919560839614294890065023238694789915629759886836145860417783909202881791569296174873073223745807918557000316812282822157363317162264397286412356017213164511525890714766752216605927342333000709913098441587325249947139599660500212103938315333589071341453384441567984691916352168846108792082001345895314475164338931693321015098561287133870090252725923755929910585096325149940528955566428401756664885625393313705552535007506472179111590004687250291884863825075015188967005683931960343896059320707392920086600325804667762248645421310893918355415697159492431234600191154593095760280740343930876978214915126220583755020370431210106491797755978475491539781111761788148724138127429921838601089150113053852728920823556369748692780626463040089699858720056359472080548524056817607152117125254105539782978289224277625955096425078921981559704698978133590154225121307328446841903751773555164941688988785498319272877101665719541082405671968075109866016369351602358189922641574580710154655540717677108496516207661584773986151209230312350532714527389817975024507473733315658702960841443027830124249850812923407699925471336370613928774320510064041819378935642865314774356384813842770383618586326860071364789967789797955779625770550331360828694708615698751563214218266782449775044407553758227078021121666206962737908560047699194584905549306114516395860984783603245752219239011794382583129676226622671479686805556468513813624247328340563500478820357060066130627931351514442294969978857928470415874826720851824838927444849736799567105355956213950683368606897456755745836145921294720990091270412642768128288019236006270071329127503151459986906362599364020654807754199468678928160387678212537388124747980579596978256944005962432116510904831832966569965138258686238888336555649172259782554270417837468799601810249081042582887029385467455843384913062962966010606191235069363377612874638618325962170193977540858448593834511205274707687049258814420974176572650970313634256701913146683047433523509903148370673987425686594879590905790917283508831923314699217859052834721227016784302275834149740300581799202577235467803618993308112014230594133470943843148180901739439166281805731021453165334475898907319049448255626936968258872734137680068776045840589332480954089867516809370507318586079144105300258550824545140428657915090096695019042356591934507638793756275664357324760526826308669855312075372448043573988188215532745437762888801551330746556947961180096788701808259138350345771904088394518317726401042109548928944544412145759858875319164017005949343101735493293575570274327239261910645251440855445513627425714176054933275192244063218609256117771485918497995944859383772360377387735799940560525206645296672029027163879888471104818948034165966100915007419587252618248220658556904436565862027305094227882508897190022072654297130151116266885912440137169683291232493891037053991412853110557839346778481510761116150743985782619784596802778830683632654432851152706680973040204994184316561092161914730145120063651420866357479809925564862794627194640317550989975597808969160599590907144819346135209394553994208360874152747391167802206558595467247670405892679384636866682842032979046424603749271366962711221030597885890425162687808863765044752340076996328621977095090362702112624655659071843332709965389243167513310033614118110476706112357461244126602540475717705523166801479179217103955753245825913884013128112647156984992239115891697299764733573643471847601074091623083295054301637589176677799339425846190407687772497503805161917639781553837105558605509499283358041641368376616928370789150988484167920627054426509166736247560377569651186847693409136697824764462214162311580593705114466635591118668083329001263503799071895834579081473925766465184700309835179217807214972663986253276888045250794008132067683165648185388583000049408553689623907231610144862403284837515651754218806192220241874937887335227927336066265345648452958241288061536728443144948777339717841001932048429808439651919756994650574695779061534971036190031373538561423914787358452209553989754170768160359873428652585704722295541800008911593287333495717616637542379572839939008187735569661835831457106172873123368311318888565478335906922177439981848958488889052672756065268446937925606514476129032475212316755648760776603287829170362949774698252913378441025616886192303680268761200573793650578112652172053454002731570201811777330048465773211942378183113132766688904441375514200804936937300958736381050755470803927757131729885672671897396504110754143423268510299050968905773084734919505498390675671769309226108157701513012133847754168036636726394403674377525196933650666042415385648639849542111362028663327442186681147518590517991610433610370798475257838356194290136135678480059152620381686686351737178588905900096478721883627022162037809347521492478517497483873620681488084161146264082566307868444430341555526322647866133975737312822329411222144927717050425845032551257413609581749517307070310477027833796209787818937353493294990473905437701147254398673299386042587968723734771517223067171278887421303420306310418964076162611779845666978302035824536273372777720626469612756244066380714943135836021495736420909708884161489967244471331760561242918073243073063217575557091976209737143861252158779874485670338642301882270885865132582915280265352395230067922052139294289190553004462951283033335722009585146986450671581168020531263517489416557252783013772241170344686857163822288453115659022725987311005902151786451828654862574065216976724810637688687109906502001685385452572004394713381611724261976824149397746541411251949830411452445896243849292746346390079940105502534290373450372202566237707142142118745556860137754233600343661279776753871979942482577277220564833415283653172654946043853185928652105118592991670112129760721866336751447126183639665398304314248029552951509900428815563261860125177788988914927168364080932471669163588951075574607124082976851221088835432935358825714893831734678974341501194909824224240767100779025639462956348405245278185419933794754262726615740808965750590338739935948293870017016544188093555824472875708864324208237740835813426211336036128393605976194666956145262772132018217197094680631060323245409803858674691951934001084363803750759401259499089960657326434283263309123735940614613984701125239662363703658728066081415755531154699250559082923916877800241484993283052256633081550172145232288201626961358093943107320893116189472016703348790286964510106268505718525052154238977071010292213236032281774644552500519096151714308602938601047130576156607656374523977020977663281552623374156649923632492557227659626098637675417254308610491251477073479159269691759331414120749480475630491630160384851211695559450357876990572910588303146109854665038596671330287157419583614894375262068254556124011300615975706017340290669303649402639403207065020171605492609511666391565127368791883093906629055400305221593446248255220718757991246125543618789043249772916291399337558771545223232210439443158927167474051160015475282391970188463747578398534293747959250104461594184406788530522463274201981504466169874262637290409187484169462485833663068617493118217176973833651131510483929252129165030427075993196704285721052145681309134961417578674684439277300193053240188931114696886397829101994645710789192973922975940389352982766017647905722351575224099103832648997490140663626091494333656019248436766765384523748591517963726412898352314074356391059033581067471144996155491193988506001727608201128196780385526084304515710723584432657791763746226753072709539438636701271283760359119070021096961548412090192258120688278171552105291393819518742893441539724527032285644930659246198101871965622517592603764056291308414040933001724380008341795591103589923849086097478837151874861025747337631018367054274941276768201223912388763258631373864081378873255386119468320525800985133177855667417442821973008066389480902933764983048495393600166588713180132548974843936309206328901147294610325130008222330621352038251113061774013879004012802175093845172138390919764431254057453454186204600050704792352830060008613910908501000237994054917777489364737244800819974469411174723579284318279948111914996700481216149462288621791251679601473184006955307211548761149863775709003559003828688434047962514329361170724592564709763769616026887573986964415722577207535087769244429734630798857778650907331608803261488137140223811151412128171017189381038024587272377567006265933953985742978375246637652346667224320993718680920007948165895051726098767759729553778004922997099027031800324057989414918921104346632952866829569800914183894627439960141492157073453216371340859466554936807092610403508715971811852196417102051723982068180010825100332474185033172460357884596126123133748097837564163061928617227926560199112794402988288693429759363755309027173668370177998322744830241904935629504336046252710151157772890643337471819459418912410068417836003788389145088924945333865245812252165013290825614054370979510922522925380900175495183639347838820968867547738264444356866216835113558645651739377926896159516349172126122227451899397366469062585852752133786835759427187403358843464455854799355637630212317919482983494892162362933998851327249652794183777031775572874040945446865134952057159557420047371524614560299336528029181424311338827488779317536665159199602055938004488057446947780768737627013756857734127011202727719737957126729228957572732325291619872207307973731661664504399517686328675787178299774727105400417898753117747164230050579718597022997367121205189876667900436710052405415257366355142492429960704547589747632595061621478144808162278842742292020225470096089509897951277281765795810887546408211294665894603220645543204652715637377177675218830709591516871096136842179375484263023612148993811056031543150216301559224478208022177571285402040676344360089892025394590209447741319335313626275759073569153344648552158866666726964209393366931891842090472446601173491411243889198476455316685832078302307985129236607016781739561571472707429051219626203144983309140144416709251301892972501035181504635726818554347655617777025709268123167114552908040758933855208314111829706987998216649945262634426444061226549990488707621379927155873362791650982271675337623950215273582659794585582237725874375613878252809397963212568386343195373963136859617048676630076500131715932764459121790772775742648963621081564107613006186135963260146238890659018079449635510530188372075167248240241500031332921251205433670186674545323213919147742471204990125054694774057627265909641143105087757996481226295977780220492582290203698370007368732207047378361027475284595091744784819343064455920324913177915057147563348458625246087407820321947206322585527656511793653151975545027760007222410175048492347165578070584756455787970698412615592779284485784568760178386883897355362426201762401419267673985713015810855329047913773903854028016630174963436265480976224730772351990846146014601937537292985564200222645960261217923984946543672497524103510486684207197429757598014238459843979623180249746716519461246007182475957329359618510133954852615836070981380098876091518687334563599540650485009493090289496814734550851160223750677595145111542283282465660267116531126609872206989268983848865608529764994827612728163025104899654899902446660362697934415288003617525398190972483765003123167873666496878198655474876967618854294313252028363085172293007209684670901519537841371869138146935179950616026284076147300177241379371415549635820507328925981808590815873773588363844049348157455410936933536139188925869128186608789159709413016987786709297373226143516514426110772515492443897634171620523521502965032080788224629244931993115820658897560329803555910397059810414553640092533876446875798335139484574470520809256544979005312713419238826303396588170665181385250525783549349217673795079427645429418839823471827009152267091231588831407995204503682799129547435452614677981502305922335197055549473266083617778835530941455933369209206564278767052000954531685171820645243387714531621476016129323805032964166159847602263911472552229122250497144203820618137163009257883678258174712521816516876378681136630199973965946273759712326624855203921996046807864667780443912529814569260180494410421835272253527288066602284401298939788556025271647992166064204963196373185798709612424084319155901895759867331119785228277802015204130873829230448197619552895084472436455164874045313500275228745952400729124889301634953351597282083816449212542463253517005457350893497886968067988053077918030447219096627057810104558334647814029148077217705968943827128413437610566370085241861538906724994065473282930486511274262249998947613696288289571046530800759934962794141810490999392752325084674600390778263549175289816860384203102245236420150803883801584231725943751963560757308493477278041310771172309735742542600816268149248020848469983678684855214691749100725816068438280412331132049733924755189548016960955045000239543785713573672260761693373460062269881868535573986721119672734160001702238663536118511695579111443410002491125838212512108077265542797313840699432853623852248468822599873950971430069205870415190685662006181185917411785262558341693356533775560359048214541500018478821585993449020855190802999545742921897345724191034053379374268277801450337743778536296186398083505580776347899259304468306126649105268110419307192672225098552005918890124653705622734752895102170681778959105751455409496959911093940049975380757286948781121951839998610000606972829225350081095589406160584851344098816144804768217055682710680355484797220790167516778851601301534861315253229772902960631021448001414184925682699093073079268516133726612721267670248621153314139147171927283925630169895624494216035911305863122812393461081991917370703082563994273146004982442461302675611334338283783246895271200315943296006168157166883994105331298923568986870000904327309911858988956593147317804515719563684885201588711257976280918090915002410541124235611392056513175456319790319279737391371671567448645782363324571898753674538271961824054633559754825442159221806363804552733626459841246391007032860409669497031608346072715840168290657079568779863630626207143904217346978724609186010959196490954669393898080238138842465010215758810213385467596698615372595450650663954728403018365211234238382921669790010448163318155490984718744180806601335043174522038466262477332777880555101616196624326094365414482064082354541692514366277910668496886039247249331983308976262996785363004788854318387105799798011593070951323800291987278984515015104470867317765032029574080299793824833384501569289199388015189295302259499828954263194045214334642420042234967335009432852855786056183743976851959953562918015158615746555315129758342265771304204960849582260120357759791189220820223620408962137959705353079265245396569248916188117507138129308954352640814430983089929696776098219462919726856188046926129827083525084480781027959492020019880993991168793987601656456988494954018092053889622686874937217287054679659289713763187025323312879444546370688865881123344130856713458192190888296568335198921430079523973918531728215753175278933205754949669488696065060167724326922007835194712877154933786891710738227555253880806536543971575222053716769284312048287490011387177930137042724127450237194689134432558001825221584828925985916750853160832387898642103951820381708807294669934182109467674331056167203449127315897477085682076852025791425534639477870479748291581178482933599451592948018355817277462811513699654014505847387074627948052921482449865156751642071982067913938139965825459195316674876196914517408468231534307418978087355375968034264734987763412722183049893175970344569906097058944072466852538150895902317575002990373322915475020839641427664161584690423171744469674431915482841655001499453492747746901158618779224473481524507571118762787279627134103834147830381949503800275649245259988684312259759801827100263208104620405155810745923316449991725555939714658154821711638248405398008153690073271910034004731306839810187433922025721218277922285103597146031573381872158069838339168819510961308819849644699824463559017361740894288958728553478324795528439371129426509404855835038875634885069283854223941307132047282565509856185657844406841546452322381214567024842640739056078720858442046463948491889226018791060275433973244293228483446057917127727914612273011896995060922437717324877436580833315677771072694104143713816880826624623682370900291868464854153506696860805526837195553896000889076755135504103895056437749073921342909879182810254666356474630254794403226178169726199065343102684659805756709955150160666882394213734411044134224484520347310222258720844683789274749643989380435753171418804982086636514601165484325654315173938729304252342757484294123115951554151048613280720365472450776271732705650062320308181833283432113918162629230860982896941674920367835342952238539318591398054406160542604823137983587671782038622273550326915941601875645626233107223106765080946472766819519558918276203072935192938585710663293407345976909031309214564882430567231771302622527533408563730934534052568720594860911314268088108042474961984941781802539433286463545619506817723309209166880208809523267520714288852686587684068464979189457717877354544110087298838701512575588112535639291866526154836069206417559326656136877673047520551704865837818300046890968611439769070425452577294171748185138251778506087969785356405463377991869159986290486141672277454911704500269856564705504731038476371316234259338057344648591647678779529476499426030424290255819528071711998138640284278573433168374274580341113496389399330174276692778325338823337040815284973355253951781565654646118188852820751195764123183643090769902011184924189735595330691132552641554168464561221081255834783696856156431079159572334527009435871914285784308469633411630201310807436641613989207119460581482792969748389061193490149675727737401318939088122554454199340930169138763531695879845608182596546835604000720151225702747305097495054808830140445207024173195888290581882878511678496565871109740464520162768634511652595658960409524186974582206673534193816808878586667372228655280626606182139737529687826835407071128697101480330373020936817969621402398946714069577763664506667602422332110806298684229350501008204892130377196936904867301760861130668219228507982459614485276919395715201867893855515089046132050502195283635751792068603091130092013063680438051560519238648892295526205249196946233588009792715224185641813716790791468259521631603283235717226338824734271048077893904768410660754973266632681091322661161300942037490568938093701749989657174767301305510123122444227801407365702607674874332846560678002817024157729399207205603847416783494242672171773396841043649749748499867691535617288455689034107627118308475890012924346642345141360268740679258432665631327395935055065769882980821078601621139504241959053654691833914400910086157310556256186679546660643473511615558499869645464682601085601592611601091270268819683562073246512559394418204709408085242512559576616134801377606150867180380099856262342415938602307118150986624146059120667481680100434878388010893686853230403466317333782588564515949751570486335826209222564958390713612523442222727062961603858593858450818238217258624402423058948849226450748470496993757716741013315463708391995133019895233201940377673381753320193919230125153730386519306326246317016198743719070724107669796128740016338073276430345853971233722567923575045768544967480358014110099690917993214215554152795535169646997560190762849705510733246443261160172792845045753169087383149944561836409642451867404005762159464430586847788654069109762808224728448575771822999693949880902534757850047697847966392271300438296339577238382195741734612544236584899307181285365840850046151007025245095697619855662606790474720929783840498167367479410952764874105268776883437089991495309000140813482974279333692716824050040238524914249180121765107522047820105058694568581078525841803721004234031280031995980987148105703127562953308935458983972546188555228809764616985076395576375061793900075145840356761973251193776844483998372040087719601557790322396530948780439955416464615155966747122216477193533873618742769270904398235918574467794970326167456043285701592873486286928637973870511245806721648021133409046539271773987858086313515579072370617081725848565374757185378530688951202007412625213477055157623452348904321808721613186858613047706291650958792982702472828946572944712222461441785159526086206030859564614790318659644491811455553232530303186447249619379654674890589839434607376961409565642705444117789906024651698194543694883445970930147789898766921597647915554103090669730857998458262400151403951024349035948207734674142493995104965858596516971326146065044180730049484444943022058955779902231109829567839777512781216666747498235096106347909815332580525440076582384061894633612595796417879136026184850193474126341916711308851210773193651327932329158768896425616020660009591268697429564767521786677853611829688920019298741709107924416263376004282225622691380061584986166902151452381716367487884134474156301679096500835785942813136593902642405273031883543330207294332763009673693517704941842435476641758363754954643295429378103588017274656227305814717008367534231101491981067058743259599870940730447342386194935935361798930481346292155357670406474867514119434051240714760241469473472732850947174892221764989406144443642193202250760472867395089881157623330560589012270086786700902938090508373868323448231324487150131342257422704587414171393942910188244990345060725075210181533778087743211361173656230526933453415331444332771240964138435906738364760766134547583809665305165830147947009547044531065436867675172669965409082434773653640621878431394427959840779378333086960174579218423899060686320043098589182363883110546071224537616057670982241118742298040172008563530616652009798110621392992545301896580198151889907370002979969767490511837910753867972248476087739200835144385653093356237253090330374382601140606484275143173938586928717562202340349174680516226357622944103517567943417741633084724922599810571937240415826823651602039441051317985743530518927586180708589920939741708745507336892889963106431193954449657325791886743754039930044741926443956586387204714329775873554413181190378931123048778709650747168839956052165265163173733037177032971929244119635046710199990068579614633640682896769162771917491534913802486545294766019898646437408723397155511772657884127731609521033649419294719070526877923485537511268763842292711731806299996575209249181739349722974566234119551175745540561878311795925786668293776158979033512695522478202764845308224840677094532227595184881934176035349731059918004977966969991858300094933248547411516163562874157050956547714120545719552465859153596424425224268578578502177437806785210587437282478829821399848647770395546281039891630056714060139676947888722297657649468499466499528339323638464839207762601856706267887568010454147118351650964611344418863331364932270783903846215875110479494384552695469486320491135611451138530255118379789923990066853284861284644325620946246881563565457555130936975103299892957518499999865677145231315316456508271912102788927141856363838097476504627047205186270163825894236614036100611237213823527643344836501360090882172597977915168553370594319769798538850485378634771481155679844262858810068558175675661480929792348424646536253674449623554701691085715970525314076864396229433389051080067228787685003543985404502960214090199558894981688283444837099342686034281797695096300597801001920952583560694181028539335537090607049747048611253575092725088972397313699362156973671222682745036871398396125736602801894196530598612721023610895629677472155569901014996980658336174663794206817711742987818938024780803161740455759314028084323201071932588341625847273456967179169012289680772247272425185889273916736924597134840103146441503774732495169350813400514706998217581492029210243890799667449418014972250114550345748495883794477817885698942408795888881499499654725575411764748998958989311114868119143535626898149894176475881311640232816337339079521212386491100545265340165027639848400056147540943948261053655292564123551695766167661669441463739988112818492405761123477648322169542175980012101748642907688936495497034206006210903961311342191254244277532461816238500556047991885186100042204451735693565594966977037430336733452843435311223021947140005621662867040911582414578221564978956802728503160812194042658382483496233517385924693577408460728058817993290093495188132371391651467989170665869972570122247940753107149619485895781075803364938778547431875119492234975850444473242741412746503496230453622432090883121377565385797287499139382174543955756113366193617937382027811028424341619317407911988426825834942214414576041259894454965544309084713831284200553686843144021702777447610232099276808064588638544843220572576886108549330342842439107390764545745778824646696194167074272219372806112300639215178580570010770894920026980061483057012024741047906152844770893133613681649033019692494404240998352263313157265551863729460085370238142123694993858991988311793969981077228476335452684023558214267391027077386882738797196436694277274580153375387436656563539929399301769577596591011182355967134247286904599886963529720307596802443380421058919927783954171163078943532786115808273168052181561366714892436082844048820559173053208527680400222497066407210215964501920410995298568428150111307555819933133812297916157088873182671278207473064379480770530380676540341446099416009482473916950038353318444077318103406955439305258170306721751348890554638045209469654886317213849775614009565453824851066239918890355891909055919686673095435004617355464953323814917643761967949061356514023560537979358740718833647488371746059212525688780075886066162783907982858452385038981172047987889296996193240866284055586824182614924522827785941916150222501082242247832843372821827661630022983991680336028464873800375724090003312915145211524868583149159308790583932876314012772481793978536564921739571979400913559067520572017381894877081769992287562041273305796323148306048522587174573776185086495297086151455514682368808584339414589039429817114084061713510065057210512776603288229131079005587590405796119656902785668981356833567833633276737455625520349579740643540337516529924999874112384481228359025438185049685145212924164795901623044837708205507430270348123513328653022461373527469802151258768884550737482907521509306706480865297907093923774687881114417168692766207312571508237244298215221300876216869159211682839084673165838161161926809701783124844440615624570215534643870460409291270391075153711349105126579878330628912594976233788769502620739703755831924636673171114079673889395048953885462990188602245772199516166744943313039458942061465528347289056412007219524837493622949275807990524880052139401525761323417631767731753199074111622663940651684037649683923262398590025067500703245946502942548106461168906375889067665960834293473171162723965495122280114231821536793657232242807169159948803331468077235120210116730249923617382757616251845704991718969308726280756633405579391002455762307287505231691323510799474952736700025863220938682848185824646028638762746044985524464232925458335240126965661036006073815515518233039136048520303556726603989407018006733095504496730495171289224246327579398450262603597005568395985215165858052028400247843847250914183845562389450372508989460264443126242353802169101066579339948155989245262732188698064758850505179419470430355502380662880431764800272481203995597646494643960238320852252202578707240758706224132492000033040507031503266545294962460661967361975436090212517270057427551454995139461827771023373187376321020403966677626643640381450418171291773850582039455088139008073777713102459355774561076524270815446430570955700040729120540739983657013967413749502682745134765346081997774933809891546981997530577200400117986850454209013980360375377166149348185824328036807711656571750542474406290575039752996451931421257990928388694582390794033144294769982872492309370071855222417157774393623273104729811124305750986481473300177751670086736494783929304763589100604035179572415312887009246598442568319890505135846379782186557024161909624625712119211261818649880932509824011018898161042861388515943275429060004793724035656917232782321708702712232245705315888135493782836671743735760702509514031024084696618326666185049239195714002666759895487822656153194389114193686020426839525693735850828438520915654602491059916342381564973854652660221519166197151875755602241468871446463943940531404516975300003461503900188052144117326443695731957440419398343734509000046938236007096140803150556576350243277318224111459821868146251184164046077907849444756785969485064068980668845876987449749207946579172938480769718388221268902647594941799195072792856876600952645203028241614992393213212662800239725864403306283127877696631819061940092112028601404178235287641402750542339095212207339097186268004448934405365804447519297308488515426401743513026075964510018904635519623375320830630496832350601011867647503849280679592478779364529644446324189784316056479323949735955965770239169379944035325830698738781489896957745970975680822895525128658947497206830273749044680892244699528122659420367664028214125138228676032890741611139522179539064688678436285220871768085995768058295540763144650917060603455984363884743326151368005770225067178424902405429638313149472819477984847462880022185093574080168943372160859229823507668895585083173385616030182610926783004075906075749242254361371643041398931001358207207531050738020432224177087267172041050002542625025497139896230255724407923951845532574217039155605375418250248438615403602615799058554515257205878185762543602361804014919613042976574142643416622033376910071271127852854275927327990656255872270239016233657010318139457444515818692027748581047740032890177553753702337376159392680556604125572840444246619127930931423854911325504264086634194836845819235342232614702903857898913866144661589148039699248149283281960187551947852829665068031612971860475038466539820540557389345861461314637025839428932467734063712737533371742327413293635514310783869368202733022239586175240382078580285077335000365664644159672138102031538805050754153144747173187437922922731851041586684756982393639302480220509009936153846227277529807106783156506885007599626314759788560938675283536491581966344718368101200499401521653551918075326503805193093134014970997662523678033602948912611919449697982390068128058548511543017662834542133663929404389360866883121552200395344857975459036116292734787073501273649648805600062225102777884776615207704993611188392511461034942407261038892166328618549019842253403459432724698625298131196642994714716587734524055336369637872612106298484620206117680394505516194398678495091287128621504396048169492779503439803354715368377014658190903951500763318987651431531037080789280412822467416519810103249863964809903721507252038039825831352235154326387910361112552985605129387488133120519964978960694642491352393581812424940361834416255358535512556398339023162052151872642438097180333743269599380139137380764743076049107124896926074662484091654735330790510619481887847240539479029573836349476410023510581127207619579879457072641139150905200026268344672847197304699393101864724414481269492768065190830833938888692792276707293389952664939910253059850314972423842290175413075261306349488182987150442938010942020398894172243623705785663976547016239505374572621862545703173738339180900637494474529270240733614984467527952787489642021605345400339061408293454142567315859983510590041304067264722236007618254798098311285810099404494204390508539767724063326259844902985190736726329354450316416546520564657800214852368908825236680546993738551257674216649943760343414558098593819808562919511074662316420015009100189597894845496758017311008140221861428563728313100246023813284396129923370383334295206270482721073150837415846227692176035324946985277883033053298010583069669523343646170213733832959672130727075361221850861347573641997403382760865910009768718950458525509522831582880121426294725693039215623799673901076421834892054124993093812280468740978086082273922343306721503284453616808609020286923276659414699751875920423782018245881476798787334560754538766928924653870561866937588444202852948996254127433384295558694712935281876364148631700861421997535166730967874631072415940319120039745798804321641896580961940489410527940668084740700306989663143691870035854878630872136147260781843854060559319912112876055252514315130085363326646993212081562700474432631993118217332381136793529700669123089201177541962622343497714231636658394096213019245034787429000179164688977648377241111634681294364867820121255073402181902993392032126977210947240677698413470510622785142056277664126016753402932166394103584862649691959290090638321374543405723711128427045081436248018934597360752635557118995908204102855078222202319122534758869726363237521780385363178003540525087229365601916897998084330754626859305042525711615214799162683878522115832129521897424915651829584869230094516711896604571743764451532282593139824550584353870636170637887310696594430971292524597573007585885339419047435795942778177840678631134565683995279553279669288986050714770567749710931402165296935593514844976728767821051605788112845710203954340119697155561852944479826592666003612287131371427303656174881964254045216506852713321584214672852452958846000105479893060986289641811022140612834690929318604292998066496309654495221468764726239311016564820240054706539637392644354253392361025059401002050573242651305521033834960961638749817713652802396248248627217907577518215943037624446260173329180684812235851799409677885264886707959507631113315322343683055140444199950937456109850882632177989637037547434950830367818642809459860764654516935275856263191288467903909966451190192900040099929587811523903196610851171216475777082977983615008437173178160275539668426928512454116689624424531842043166107596389303141884128325176682220672958974398945980633964310170814027748894398681544262114801189887984783959198584245053319234276163182337470760131769787376233186421575643576767315694550049447320979621001853267200440403614018043293458667647589901335755624360408108660522958305510266373531258763161504827667959431491857782822243453052034215678539958299921885091474213919891062156121870091657801852878316008024328329944325071366257135765447146960036927037158058215400763754650816723313931972451182032399441831664938639060309813466922850337466265659058596664928283274984104335414628698210055896340488348037067810709310324126167420986793683966245428497122963677810893704137682367334261802778427307871165490822444406839814212913227145580144644974415968288014429472613717652635461560606965366826632552726779829092809746613623529976459548074513604565331177057407009060629451345452679138400105674946346533948790625316734708597742709535074907707318013462071425451713308484482052518915178382394627473969454349927794507450542598521381773182760720281034407462639089086363084613893917303018324587644914145288664917830578175964569755009834090548343229211715060418572190596124444661219814536720603522186102944279598774969007630554769236776019216691563320705813057737098024960000446844487346574164798024827305535230467758886292401035581195919984320232672520326162519889699133687944751141639261223504809110878432007334348034575175456644280070364653189642711819023072581247597694455124325882335232706877217607347732306822012553986227886682948612915279715978250412503001682822108174154905021179926319517126949088452315944972839993872529886862643376862582572797134028635676624301787713707254962984881039057308707062108850675822734747681394738989109189415408264832535444020302170647879519109419282053111368895199569329899253851083042037746506170720645238744013937357729265937163746484026323948083405693534941331162136552084447125293860403182757323646010751096442586881427263252980919400789205995988785617521471187057799126222868719874541592800897727344653791176188076796631597554987525233801392335426572589310635149407810823908492544045114893372445465291678345413147581632021400369990702626784657271569030759252939892578309458092227338609214334626257805756811930246265196704101055968068276492145589950489779743870555477031632596861282898721642398366170109191475970647472601636139971743711650336282570544062994206174024785964931146621338247173717261410189716316227650686253584709422247568108166394305473514053134868511447582784672836028723008536513100841727545881331412106495054977045075906423175268039311471886329974068764323317428093466387223784317927832379867436208794320679175478967780414269603514216907339363426702455053004807285347240774160767411349566877108695756340023281428846024191060363873113317148279093888762967907052957617014185098732805978297795276060735287598843900662707958467517490105944504893543929782217089807248025725845783711583826606939962858558069287713318849006919673373557771599721069044501177768893101055953422656484328835684588107031453948146311169392979237438848950026660040535802131008853417507408699972043216340843461859017912133634472251939090430441356227628192282813522913055434967870190474256157027177232329339206675934689081578109512096692634321198572021805846184580616347978180974161334323354766604317423321451163512619699151845864124480972303696471821782979215476908893260972094169352186258821634684625794788150336804586371517875713112641263660469177910464811642954646012694534476471262958535212635257343401215595919621220087883046475507422270372367768641413778691514301655027183560430790382476048664111552722946749171607907141300266303649777390670345045565908033968538742440768579999421622894532040744485822570271376769637201142537873899184281460172133462912543128732027088906329053317955346992156604355682147223317749500147372093739051167523238540481333588963439882615127911481274280111963627408063840767529381567964652688715582021113249490068643996118817501559977688262540410090657074110084587414498690654771946452932212016798303870005949640404579575642806993055783175623125631527051183273942672978123804681020271249930638252223023597422314488056014959885105891588782648839171903741067686443025996014491151628451622772342249572968074373653775270130564999247457552101971827700857738888845237160065677097842872333718209122142061072285118025872044075577269550932280363625864126257268307384255243712687479638623539061728346333838779354031444514771708653400527026507451222135073000195880988781649845428577139156385791221119123567393616113540693037373736929055803055971239754496496930567572390790588289331417991440698865818278787556787581525119227539429043814252927987168825350279192122373866424939072322703108390103617301946433645827588020253143756580697127360067647984570674641059766122025234423278527160005556525729892424351746087427209494841370247600074246876458796690622263575585007229474562092583723441634662586895526939727279878365602402410757925208700384377781280765863933924616798050443367921906874793656351263018141039713951513996328763649157233800722598824779298713669634762680996180355807533296077050464677270522864520017391791068149372604915517559898994698766714295024341495536328135029822473991135812422864822355370712222786586710720851968458939608932573311423013427093267144612937937587264951454978634274379313723531546727138936300082221721828409602263464068508771591158581832198392417185931246589617266710261782164956229267450415371803123574338348803368673189956538842266379864607026068586908492143592672806337715466142146389461629057858667542616351011965639966846862531140858951650792271011755201260739854249960229918643393564172581077192934360107489290048367175803038127265084047073398343114566771810578727515957863930027710409710938767116185875734426029818414239755632022445781168403380814580540380161789940047593706966025433667890165689665082805047256175714628657131638030756072353011287509236135351751858318516092656961011082811744426275595806340609326696781803867873041180410094776107446774706855756084085768723460972709298638938132615137113259268239132906843330238804554467393400411674682199061899901041149729471065552927990064030769168969599660637528729750720290364626804466889805614527441831277976382760512631796435170873593216823743515716218266925246387288045356318975245951332957434281414576246968680714487826655798873249072970243547607317723458766415439658604505554583404317295118740052869977523313335351061640082382236055243617154125453729450534388277161618361971735867928866098990553707763008698974965686518920817868895827874952182040239666981868618477547469957974193134518855431560889597693623261692849064950219560875452743090081585689149933587563223510681745711444916166890589434428125604499915593734642802360803658553749186559901290521447753009207746354094715853758850195359519145406741333104538735745397564195685769041948444743489982721752939023764298714769861391195090449855004848126480156842864818099453807520600836548444615264142485653614437933239982041398021275846567777907597803574651256267021017754227032392201177745688672117426710741867011970808644705064643616572560437291744301007297447813750669528241337661829333334671771963229898856634650547368719497011665134683674880660366011852726935910879243126240194013824824554034861781486515704885625425217203542962221004546677914757614249317886962547768645694822464240699329517003217417085529117088668998830991029336512453973845572440670706921000260057100474405679331089729453642287656892905157616062858399858396197702360392440156854101514364694011940463577887446580140638677927147458018564568713952400594819849336741425284676238172862670893467052699480729276864386659230650546882687342516707460421024519297369951218562068618060788529405982669083915195574772957062423138128979047191529971205569658557124852989285063356846994565909246777709900664018352686254809330073222495579559461161146272710943959225308812733033826065574900304881800049802503756114751395294921987872509720812320450449328873688393977417986977902417644207185508120067570582796753734972618429400275845739668835334304041686856001929121763816559613104727747975686290456056974836696703181277183089130836106886705109597195009989334647016452991717544715055713761541495539745501600535927035593207839789520955193639519609509727255238127179762082552115675536974646639195325773856143162549879246155870556174137773258817878987094587455676905455678541099674699686020937963322852050999931859188342457004942969543622828624213393077874124372691064204642388043531327653523896888727293741517755238504624688961160118667564231455079109130230455810227174262753890071715361539527963143329850620934427280338266507127324537529599973244601557731085656260638835330772767093103987158779593889737413611816066568336073820559454569663269400572856441230017160966868688267724793270476834485144431438881863694289111890491602264657082212401540221975260855335624341697628759719420343337497300509975094731260592167912596779038561472842137556328629333957131168284681550850745870874038697027874460089350982461257882153470367954214331436076547038238254344765958999928350890056169495565367855060877166893239736756206408521111024142406631329870549791712292376321200570763204194672806828197751854530239331107039055295283644447193156656019196587409035196791403403475521203266084539262171552208087229647455450589420064711537498075758516827081806509637031047545904972144342416928198083155979883355040759389933591437322259128917586240764432639040836509984696838757300888225103756277642412184928629899302724958886707350932706651397587612515397152353600893288185379057498926342064032914010082553673657142103786383286926779364602264973492806962350832265843490241955605294954453156290444644662181286468965299143363270602452945641645167946017982316120113323260643751356960159884308753016940676715517194048618282423702366780539271742746921022058682430165779404246259615989865857227203031658141969538214862797908890555747310904438475599591932216460370899962203148667225926698760116361760721716812236189156194164553192255733079349433995972418870047449580536392697082669830444275228949354244549917622838553629551018218704983916168654928827030573522673038820144393268433030142107173027525775963656310171068834645874632836127280704831174245748991156488465006459104066757874391225743990535778794156845635717162066832978541910733937471430139469557593515538406750823928162218941090133120613536506082273735805927009610080524093918029583947556497237343270579465420896683203300288222100863968140187969324737023635036290138971466345735323987424984753155839994497786967882298163569978759823743757299126266646037993881903270698156473096737120807941954448467449396267199154308661755753367767575251129738760187777056869798948699487671180280253040088714324461470642618579804667468626576986576415309303295337493445812117871173294767558168457628947631597993477020703475363891688520194826093706116246343988881312581290303510291366695250087869276704526451533509565142615174878047301211741383838233680776166402594024754094056552281661764802505598699756178375538828495320529815000119756027960417733257719146022323437349352235284252087731890507416601624282640433035487517598217127645096326872136065510911930739182300505111627614374047485992204740180012214916180793482273812567310929441325380468945099600611975832578480056786733105055444432656123806196843598318411669493609916164900840217076611161798530535507825133098600187514702112392793912052557835567846903384620718035914912026555840210135524414052725230620169029849668386824584987938696680325769676836367418913592064603234524000427049475729686479833952854433145803138134046306372019101457115299701195890695532457567563673681717159734787430815275690819565099442857965160061527642155721718985858332758953018462333390841593711609761153935514725348626022018284870567090819563884842414819759379584823055375898452684799521874694479207940811115484824255113383444455616944915117333747075559223910360836839278783981394971368525692909987989796605261646841195499085935916758621921569396811891828725109657489226915429673699429482138966303170773372906382538162041753553096034367816425496439041964044542883615563063092524340922148446959725652390762942777016853949183739627658398698217878308288309810077977419423273123434907758661845222143244576542922153720266121563371035937797499848884529641946747981513479643243702859355272800698864715546029726472967041134250845646898980106308501985829805317730429464508424674367831996849483720552620647580013328735247886051684775638357554014084611170372580564091687249833927069645928069379003753355622123223999273662491376019122097185899115965572662061429984888278334940127341801613591551543221054742689610306115861916047174847248906146397655840439711473996152586155486877836132843929932080536699069220828698557453210392465161626192234119276723766023508891436839671562634110384080464483696887811925891634671869234677301440994229947042443795603382640147937166561367958894767133230668401681088997730428733764610556889736480815924065563728668188373028339373002942511907315422020385487563487951614745532863784987608788708970731771969266912837439260880205048289788979300039975302339526823576154231354350500591521863022152777877837015070552274004050589631055539016637138840870262648453203307834626247007568470173210636406077216006828355189339335040537294195376744859184960920737460151964870057208714915726639259036129674869270799264751013782800064425543546443582566748819509956134742278141979258855940825645771820168436692434680802890072029098122745642671008382367566838276331431385153492247000810409172247800648659923813937212413184441813225587474329003252552744333813973146989044682736311902611756045135018139715586718030885515072841245738366607149910609564045382308195670982137043975249534185609201679022370628641163841552133840803591472271260071357705112849753381925729545620765187241881908865295438555856411660832359070117940500107784074691798247079327301257723349478377831037225323129396244715617652858521233041857114816530709130589251245415974992636332749383264944270580492995220612685534961607531561396680761287867733136469893299028868996194057670198107827352846512860355754369540152645615750770936936009324414851966136333297057826634334312481137411051453394179891293917616032220027486797682768939558964146970021251286966230478317294335825777785718690751925967284298341479604726796899061024133166215667735554156849719528140288071859901321559103189295277846677892425623981158745662505493261872081318418420242566334071385702513763706828558980507793128798283516337841067616317570879760564850908392985987883541414070931434493080437639662346229981260921303024242059604133300419914411351105496037842789187663975568724956597970075673037377648916719365546285203825960938251447851810266340276650876223573665362223812938755392196740344323455690621250084047438657180481031735704237972237200872620814484918093026674760438285398918693993041755418312976285011367836076752502558695933326634410774923231371745146053283796254010497441851914700346571406986486663469017918397724298256042116062395702917974617232197966115520542949627779853763992593298359755985561344324168655006869832610075268929622958148917564962256590237374666110277871081067819143032429673246882170510410097126208666959600992325173738962218993138353566537432967573133090094577447066014977414032163520100957580837022658037771938765470236258724349463468688009758417545477705915109679539430688569715495775262977149799931602539569977441829157772645913558755806404614405420814480264974260085374531166185898500779505842668472400219529343978301813392476109508510696145145228756473767628244936594572393365274356690575419103735339330823268087387221792365770166248072600032386854232792955219093530708913548829237027766252049179622336740888353719356998131239375751655477524702335956696899410715137860093840929439265383924221198853371861865327756418789504440267076407624613083432274111587117499904860457387039417536939399246670118360744472781629699723598646241767083420829657074937223448592621065826560928554390063969354154901162689717424162974735946524878667310009056983424786961054956848210438845095877826236055656425393972268247272639927527239082187135438573173042201645781471528721936354185699169691700647265183139652072356722140442404545221676200002642062754181602051241630598972372452570319993964127183045957333360560743342918290329916592888047992463141750403900295169055617537635092180674527175411071518327654857397803049146330501485478377701739071562249855096614210359628115989040220238715703086346743047611061802287045845631773724812650585820756714922953797569729031984464694236505256847126671275093182863057195713831559152352727870063913431364851777843840195992296247735121459219937046346608940742371402715721524310707269827900736446705130029529473062132407356953315040745727487295700982245667306339887889011087467049077307622465298897226721284009852773177438740690156795334985907395565254342923793153419032605561273542473525712299131432429305082210872329909963514789598246151732959141490405358626115872482257146265700904198157049900208711578769493835032610323677203095043568065438373058989263914204526975218364500215959799817971159946235840998923888265942708395514171415284266465766284573881587124609581888056593316604356309261932557823422316376042234816789641611050892191255609350891732815206514202719940388738683142702454879887342032956709267960784658069265387367944804807857595032798082477466083269674952681447275466698208975043141000179040357669400902334204452109149001512170453059832907999990556769213616369592741201070644356581710011045050846699729740054106463115077697671059389644448428504669792743509444558690414833797346371073549158584260256277624191089677059280564242632114691753522443626509530148864653656054237042779168826122112301199632025700995182067996524272487723381595702097863494847417663703953510646439282907177562131318056078061407541700125965055748704959786160549231152078011020090846825825978953056141566316215168813872550041920471330885056155097174363662487495049202789834088311436177303725347734409656023259206201921470911735493518887915479064598475432635250405764355252304688552944069822947173300882212533233981842825517840988571558785327830271614309920568262646046609098750232726554529522514212756714365410656329340673809797394037847671607393228152646780236435244583249266671729456430872087112659864887263129428056949697250686536928205835240781210652576483919313691321422581291221142398212008080397495283894784712064720240993442164203650891470459187455570571585961987994496210864675053992875166888981911795332014387034715921312069427176347153002933978572799519341394659791067517255325165029608345397354865105079717378971327994459434604010551595031852571458314250088505290492768462688119958629182513625130127235549088649894655530982372645306743442190163298173905065987270232693978524904770961578612199531555691689869020271341252588976062593139021167184929380320000705151498671809046633131213119154576486373858535600202770869799958721229536733072391181099030918106147504099504550298090415901635535452239384055482754382044977458723538584968369179101586387479078070332837369970612638831593968021157132301732008327892556414360547755121288211669049435976152080503317747387594477101648896842878193950696964344006359667460157444377512813226635134688597586896186336409132264486137918011142232259195490612830784291233970593065467909909242763807505839512377178426310545893536655854575342982843514687644540684935302663445933407024530653375714195324062981071506366280637774286596850661417217673511698604469662546092874427276482865847907858696240627909405080458612892940134525556593183215210399878492025801044846134206001023997301254151329998716612119720608466315707775945172431721519740144606006083492542952917880414701086916487844487129866183336662853221436729865915662635689632933153273107829281316764638902462032844076550615541353170451255666365907343962300326475717335172936478413152962170434376706366673716962877441040350027917721022546428305630786263630297780800725575257959099391481978930448964554662905478444200116411946375687003416343477796513888310453683080339818824745819566652004272326509171350244977444992381620884579829218783582444677460596523687209779981714115328879255478218650925425482769584012418820999515012094923690520866088827707426086878791145463204045821212302273635053098575592121866881194589521269582175934636165082918002378228424009292467313467167466029377361962584763259035194226613252508342147133861935051059455465746854641491691751144277537007729747385706806273679270747381569898270789342387530560456868389169557160436135362240827049289939355005904079571397253604927120027739376322783381691163641183566358727614425737887443050010291350426563162763372829566519889342285755730947472924317515112658181280745365450366158977235695083037805768661538684333581633949702812065867556090534733270121469742502413814882393534911506526437426719138861222186185866171839399179515270735390627844889198127696068763936009944009175836485973971160525541057840156863431275804801226483720407949818824469062600707057132309264299945921500071289014464729627658399934969310316407830120741413152432673093191386084358045384135232422677685444421022344994106590467792095278849786096799859632712112257761937444371585246579343642173808386788606631708254073785015060041554866381933476887035626408076078467510205614664405275939707970226620648880016172473164560200564488934132373762128841777730333563737837035782985418804048098277641354384417901354936080806014110438034793330230155678854165170532574999206281763124730282168405926254684903846203749127139863445854583603907783430209815770545059715478736196719156214843972099082749772055782370379072032710129939874416812666364298789200646726528534346073481510064012181216920090709557874089574105756838550320036834769324385524375356277731535365114802437948666713321892434294769895021171581191156656033402357910070136826096399854230721776789709405925434002394893569016276073079481903919275557264865761341620241454500766303672982823857010597363729958673421660376053611451097471151920913513486812400297886537182742499909763366102279547775802749395049642354326050438124397811260945459367877689462943390513287281879396441695419789725050859619975573977359820400281189869011535777695006417031918777126928663157201201938346827984201760967542244242301365394535476209203004806711502071393941250948460484284679516549483707979249852193104119184488414840210097891432427756867284013416570094758282571133601786863905318842150873527635761035530978178450666806784845479553936926782365486880289673937223339407909034104623375194881918783233141953459332223818493430814483665431829607667854041542303279992651699539587830069725589259105688753177993047104893954942998379670236539253919829562828163607090667445614517204571212249793988988346848960382746258812773377112257421656699837370284328204693399599417400774022661176132508265942997922252179139875679018412094866533490299887377280390165630831240640342825163799149141069192193680961933745603823788601691749909663699331279396586132031256277524036987397661202871276960061919200362846597868088365083570175532282456515572181407877986497867442845646010530222072670079218264862218333186909992967335996499195427050130198891571069743513779395282443212601349474680621657183632527620221606300137393659502890317654455845120267312981920365235424505726259546507214027106690707902195572069152657141525839257058566279164582689493940949836278830358713272460778916164597617738467230929224450344180117624479843987998882171699630190096112311816611736745405428088088902228517346906887969818525526882515801643576691393131961147533377789880063419521718077774342788089051069231136447529893714972742317608419808919380170509907611394457551744308232302031951342931189295156061153009953563783465954138520681520050760073556693742318848012603728485939505925489425824842695474053217009456297924803296524591734867128503132251963693097452919718020533667832779836246086987888339921490210369136794649744789750246896554968473201208116200349318715752781368792292250355378535992511663024242080805690619564628247318197814870640729088840716605481247059263471348505531225006697894100261318113200036679609397692982748814377371092261691234040477785259581061403747063458992832167669989973109030322463599281945301470677776192789659669369218687066054591326483179833173190790448461141890601839885529928838722702691585752804375475367831834762888762939927357347720159076112523051586425209702591802304200066678053727188965345016196316102260554119939282793430837855046079532471875701024395410734670630040377933555741338949764308103593851798226727278193481699148917127867618494600057059213817496210691815791664935397705452909173169334767771576104856013251213668821474442938404064743701891953248511974275819898625426230361116181754127897304618541141860463261069916390320037433347952090382605428477174837266337636203378012089694655209170049865092452336320749631625097448010916104494838884214351454498547550963827952205416215240723857103027963770642298217215763412992421659301121693865783705521127386926169146939960640224086128153884466781251884115028501499774836445949892300834306505883380485612480126009665474160433381901939188284716365407332393919581977977420962962372171101380340756062569759253923242290702002008786118120909260566665113157347338622519623875405893414704933576549851146637259317077484951118855428153338066635450571708926801835336351354903931156682132596447161842123241183893085579765989029200007279371117275159870922688152214518889572540611156722055697193534992003097226279518242757992428590925386149465284939854347836194003314557373306976241488586485354883708913911158554852756839049773490006459234625068880441131278554080701875498269432215490254861724917562511369771254648815182525689832982625346738730721968332175171675764013460725467726597722575586160717356394994487239892876948799289626196206436225124708272434542197100843920660942029928735704425268449776881097549427023498843563283840714165819195358829527156729384020776619210430293434649426747273061284799696868185143478739807128349604972846155534076248462808816575930689233158509781468745482973874300015529425093052101735318701008556550048634972295977436613813346710127980634246835299118755795672566766340806173195888792705848747549502601617438702073229523791092164017933642660702311727644126454687170630953954044323282044203701775669878025497106018269334170147238935881846514628747830390257406104171313329241151682419557875424413750755756133477572075757094560854937256527561552954690113031566382056885519907072301395273193820018778031930190382621008999717614349190865499842147407270870264571163192892111006136096096123948174590118589793263012281803124059451103173106208656555366867126079041950227649246397278630112325250605681408749799750465457473178991996013304887215815883370342057450983290753609385295223778551744880991094635572662305079556764629911649843704952624289742809919672933752017202443904337555849750688826597931179351664769663364652398872344277281076837938762503741343156045490347689132955353376167399268395859423321026280650484288032142720890349491105476608364860648654602016487832451011950389573623315114149560831445157495929633859446990176269530343116141622067262551011547766881807368786510596539802136801236902694519850849837467285487028247155397660766401277639903418226043026277030853213980659732114960959946859508209419513354081799685695240580368401663040080803635649253930890847965935895761708064197409935664569125081031661654016761909612163921848000044886613208001405745568172576359990600101453681394581348970222833630687005554479846772750637848318643350685867126295868776459008014457829459855255778330447497359703708456674003709909747695693196507510522727724454682599585803862965399038431456582084598941131381431357799832470786083071406357703076735512218779838536289745511759984815105240117653602818368935155584650409204350346257972269883925157109784701236912673059210647265293703361908950592731316697066531380360265522339667744446098054198073498288552036621118940720254468244373893434071946168582866905317871763159447096784750388392096572015101107906291109742320295045636234012253783223277905030098082385039946949007539109511500430672840315588589681035852187820134599366418099813885721088387601663898883740018319659861226512244922726030428631949140653457444158117430941842732827692834672770748016254422758421061617565242598944856561787004491839603848759947194666637132554831416563113519776505371619647623782374406879584178966188427169256010719169193002159508542319682921558218394576312282750212408920026935377767092739234963693756088986887836355239483090062466404664746791579079363986491854291582538364492404760083096300818441687470084312950045067870185379806967210511169547043472950990142338038708093073224106461792258774908280860490687499242873312104510192693076812933385943088770359326151740130861522584579560437855565274404927444685628758347689249474954346636478386521720047024495646809943072998397134186666540733226482308690293996271444360385804530904356654317640248163329869158183742644676058573001047768310208943933200341715226005028885906134021303648715430508870934707602295293174950128862314854933600089607173460450013659856541191794080530768574715201906463296837901906999539050012698438678805427876200357989072701609202822718810396340853917435007126851566537697140655028253977290459745534411146207204263475771669839595160097083607003115180363814127189036448168566878550936134495875963536132787768416731137989704382717218652867710255381554898584289917908995973643178606588367251074451513579079498476192212479604574101022485860322198868295234705706624503760416205721590586660241876052790469590258002476142926525131751137483711799002896993150344538057495634186635393385014352148933027825630372908997529242292384009869357093465363998732515375042091297176116945816312545082369560408324160295816049090683711372400771473309559574632835036680738906259823139152891573735675649023665715870324616374626772663455574747342335370376892380608501417613837859081704712837939293070072512216925892547016759181458388940754325643974754749495517285314002920721623591418463607739981280326251962745022592244243002493370883264698596342785547960640352867301025089600169141115700133880165714290863989043608135177141155572666707145522097452305397996378805832775285001192002424076581794719297913294189531408928610957832962285404875809557737104327904360760070843125134840368850547525876560799720633526626444318275178699487127865377744104277156382303210452668484231029161824234201055312190696102059568698743214876273007016315610985991939393737502165494755290956433892643896084524518436534764049341707855026741079476957348354293934701424005015989975655010758195806280757913695046394155443975563402666895916704471632559515793723611247002219743381522556854297934824241655836222237910296157473747650270179902830149630937362038527148568494743573755046732357076600521621387551228730415493608456129474074286503830746156409022088527012273398139737664378155520745525201833969939013604506688359226502781941104847017743967370598528143795294385621295218955446382792048231482411552993391367407602674221605126639376598310456091503751415221582566653320842909145970261796311985522301853837593934708023285020418926611188590175825153064565465966486344362971699466541009485003259719757848671455237814631623464825662113362420634052900084542972745792194926129509012450695029915900571148315625025433981221213211877258494822022015851291365559275094423479591395040185314186783062200239842743732453478575226868101802713904747818579133945890794720907084606855003012225343552999776807430441166186209314958617883601749644534115039778657813468819686853811004447041357393398150332707939441920947446615798232461626776983285560272868609572256731861225412433361536919275815204220831438212284315018738489926291504466184688458567380411397623561972081642905014396929773764846313510583177049603228101803179810175918321866231273795452566560177135834038664033312992216260985500434240858597208961924382975307200158456137219323071084377909583368348021795004706429198239090673210853309911874763220183065972756179668953155313439424662005290529002873509259955157592648798463289327619501702361316248968808233279718725143573119143503321937236019856874070392796996658717676305546680671880263372632384992558455576111583393525302938417938626723466936576620401365092777001356226941622514553840243709510217809857705368201423653724265516320706231921757934852183319833991390546523759294609641333863486111958459736773544490260816745895271551744138295373040917714166771541052749010576825377622323914130544103158140317365411349586899537136354717326099168854810532309306942565533390416862464717433171784729866646408472863823416186414473356862764192122048401827891448177724664804525927040943853153829576734067179238287358479598517332326437040944503614833397917837449654721086433524314525662202556927164128026874329412672742715896674350030473030140782532424790065199399773504472824406867045496539567249720814648988166725904521341021121406380398514127051611499854162629471309549091901645180014549411597271452939862856516464393866349362018311007639744381180038978332618049323621064124103776347585693632306444863210144137650466966631000782572171802214575824790355741819494339295579056570112148570951476439595190605995850441985526874313680174488075972186060549977627893247155113101760512221398723515925653095820060351150156501513641376220789846076094635384959716496834758383725136543169359604838772534168709542172305832714682522100520332811411681467565015128429825588451702239584688144463511672490993128720689893217701269008062313780032757552836371549718712079167346878132588025314743317434896522374593929742350535072439447333361875334451606083800516451463609234237518238265564048102591236238644526945113569778726933975491875018264686892159377364638530948020706086285113193630235375959907463623858765213094088638660625453920629663345726166289500245847946766033957862000689253415881934102557559691534027254640682610084100148914689482174163107140259188566236632837314265119159207030503628911492890548876688657530442834005129039831627522423537194907266187479913097004952996862225861257222637802025382415380384593593820416622052613990257880383154229067983993547552686198914541760164480533051147975430180769909932620474866742419215634274738707460353761241167828339381647674019992805957603558995848330778289276983252238853180192207904841232518088371527218507977528353058354478385559495843934495067088998169426948879491055847331216554436848982965650545503519779275635199716958324160468854865674219284668242289810322946851574617660783756656295803335258889325265044789286516929345569653446093038988882339089356015492738765019772136634572773221160704512051998135659664283086642634339638337627845431274465665563593411142745380499155284975053205285958553687751021257973790473244869204275758414472290933627440786284882267587253140723582693505432901225047518701827890581392137811525493537048437336828669557652103534859618928395795776131750154350828811121602053246394592511519594584553517387678536331373282345825266465129415983810888997086128807117453321127260513601896631515082734938997334103350712778379364690970920682754313502053066234450626819782729054289922987784484017632206603541436246097995218657465421099545933932243223085768769240429566401018671211759447400363811912459266114913889537066649974103817635718999681857548118226552534855952542618822053240212807377910907780438787094624839124774345304402421353775158906771573724195323289715497691284787393281927608328553720032173174822593569703205857514633870594139142655552946352234135605222983812671170351362924135399050709091806966940425655695153408717833171075162396145373638684258183728958354027207152819258497723527058124422744172038103334883180047223266830799202758689728448343935298167827809430398560792421171893504870855937246179546445285603805508938755521146695924023251390892558480533252969654156021488973644488192754666151402121003459357984595777609040534805766918753461517224064684456911456725505020815157332447127566886526660326932807941283246290239184599732483280673074276961915878805532655938749309834592957751089071790299385524332264081760524157925650106097953972261955710838749028342735864530798430666736159836805310156175428207541946852149663056556757414680910191029249325867494139271919930577793116070314482181256560124835750550980597964585947386939834910387800343953931174903884278225919740014825009296366970641601532540990398348319053994625181377454690957798787868082109670624055035302783438377831710534359983791775045605559112008593539961540748563094596123763788553909842769065103459656669998654781010205367325143891852571930288835366665049213293781625093204272154924270843782821221436562625100259215262029876387035115846189743359303088375568215140100213131518119999564385600201732500619128936975177985492079399732768240140857452208566465238767153078240269942004976760506382666667184815951201133647428845460105202081663170156700089496292342806583169934330815671027727741425079647426110933829112041882073978201401195562549613893236060957758282301746304958132067504500222732046303730351852455993117456863762223437282243512378216938388959154467884645882274840853835950338126872879417353747445763151889032373129058875600483973471546076650328161375988972989361171082887646934775227968562787889239772899361911437359874530771138777523377717232521324513822024855951852227855728068852535699964321595312573825548323290611942274965755981441928886429055198464186724652982245638005484101954499538854447090254670214489691843632432295432668953294757799114977906890600875309377268172799414852606088651700898456956322346086318095495218596931757818817143194243132996158849727531731485269776695572940284442459003944933873526657864479246962873942892633989914950095425021319124146094159663618898013296055172705462931903625064586568779460901202314080247956099439033357530407288569085262970386961297156618918482941249314775434646197871409288006017198363805595166042726832195327635321657323286195967784247553144100687340134025239167042726631386717358371694087037374247080080752099665134726788440667571495341282130218535590716186998708746384416659917440954417485026405633191066586754586385692895796964425837984550277793784391691627774463319413377034428064648998009198880865743055411225095870226931571164055317345619082484856816961356179319064383509147015170857172476524211031275550277704977438881016996899532861271671032529757565176551947986400802807595674718273558128779098622147036004786421559142891978475949701666695471466927155926923441592408648279199584747761654417002151142522208093693081119337172343751110310203869153086286463187187106121989267833709543875239284393531937901787925944472118383968299966300336193398354296002646844413449536799954944680133241088833696572960538208034437933215022660970307565952769709724755271063182107449587186362306139801793911902865265350154385263873401055756346855338360774883659884731867335075837937570909505855643579180476735071005807862832695800126307577407583633841839121156718520683748515846836718463248074149145330096114823980337004635511709866764449999313242063563323482385821747089261090168874512317004512309790056672794293982508557758690764185321808809606276512909608984741563541056377712008089183982816405035409993902819375830348601153403022008380441619369031738565506743672661708026964391466719481101106224457571207025421225917885740613731690051112960372734963139483819756795161663197975684533082597379706810542470779087960067692542063492084970129505334185072916068278479882055063891970620951549851293730009960881594365709184388498872021824213535182866138243625260656709235504920453634344699930700206903931980994673778144711949700594647386899399453113483239197119374863544819933768605520935746152962131375991733270715277946954815468406927154128794386323998541761709061982972147209648557329233811193826542956428027251250973755197611489302153914746657514495443087643148899084009186279913814625224299523425060790425287897144835544284009651350868714034774530398785892770233227698021029410831618123132672480754195561704850655305196009844427579428870568176843617365465007269834364630258066726505498908848663592051362070673028198263271833304926062644694027363974544826374136022306157568496995582570971451814791764816894321207896697302202618127956439714043344145298600911874822344664347259985644643915489594828482658280230681191623438570761290613637691154780352225428823590167492173608531482490293956182956632992145107994075433988630437799670281478135012992518887911703831423164846430143023654697336547135635613143340830534270768811238816460748658376110613813213014407231914272396867497877785069694281702793595391224544982520456281606605555439534331788950901801064360627099644223032071707661018511996518203312051884932030722007263046740090477660709409054585817384478358086822238755021044872393548127018513355248840876029414518759554800328841419164102895884112894998919569002893680298287725048204556195486637192839714369620882362144568022616872827978021986265963155262778369633143046757343930871058734554853111730061563543167087308680269702180633238231598403301048674020413894411167403286812650979513406492380874634221692799861010617501290316868675946872215702909964719178998928165640560853779943410887523125626593714410540675269523580506112620017726923093561706335921139472781521028775662283009155973806535955284016748936771333334076635084654172317680722158345389133477412684174494521422411733719861241437252802399938748978309661795585921364798063852407972719728751072309439635693832012548038846271894859826791552939876336760534489631688133163420846640210374436252302830428628169407481742149541203729108345316437727231804750413618710039413688400409846046866205386119912791660770869887774285283343203186161716824824017049611497917501882390400715666817989743370977847474153226556538599648146907681345378214269575235448368478089841257535732414008934723337698535708538389385191888610236753532093245228942786652752565530015615965040109825771386221148878160342938982286363204525708693146697343024482201359449112300271719805852028416759570582039191833504730105105249412825583598541085707820392049620818574999203250593190092643318302238071872245301817873412727542596087930737645008178394888323586556298405671923465702229376217513354260512286114321734082094338905287962351726908177489978503229350486031813860384345961265741465767419305822195332014367872658124471166546653675767887146221430137262354671171762510200960977857788848193317729928963156125688499782321608112894820998372674124263153816131715800524454519125461600864469210542530931473097854730883572784260261873947103724105182943704289633581967891314201957169276091873185041214883466760453643245321889571780596707394389403310048393746896805250964127001905668213836655276471748757491719317144915306140163215266075565766032032734587930233694649094064162915508804682316977933139049674326796743768896493373229158087191205002939688692819961732688111739754312980367021891512142394758737282038062272665356909521047015663844537075431510072435407538365421004424757804670432522259808117123113818290279178280386501569643845422728133317365263220793225075402655733303353836115701565292294452498444596054351001671083438004809805523840980739395573428577217294921797220097612496183450445666452058405760335421427981653548449860195239575878729020353269409785839836834445097331816614784490683082313187875120700612782106358105011593812813683932809023625992483645676570011808561313923437877097164796689081518248707404287700100869482955449883075312279414785060676933739134077133075398662302017248532525728391965136425714937470642508497292467139001013459036751716721491617002758848088222991457889615906408753322601895596779416943350436600781632639992791145213198909156890698983571873458204976926838824246325184118732056183526525235352778186853847279808197681339173406184586567929759828648709026602221756700448542349320628378387982448517387266014852924415597438368529121780847107903434194944149248178251602239903099947767751233612265634918972220320292765382139745792913778544671070301756667318795264124016790214370282777824159413006554950083686616313515122738990493810415975432473206774964250159616400768586397950556885643600186969162424153274298499045931491151146815871796039848952395116873129208554628736852829480613572809553119253488547243453357224486948345861041438169934071590428053017956829942331376514335340750923617871437419647812422813133129835325991182003303729796548717462532988270441081665719297690158652247917551633984246490793046073867339889362009234989728160440452736217012946156158076298246529696171858576408551766725491613467283982147191961317919030480659548297166424629654918974800792351136436736511561968111347596193264100593327152186304138096227351692737292894652724575112544879499537519640930955082154881878656927758920871150295982710834351796409230617738159108608942843556001314403028812518360770332712167132943886489867006955287017273761077090724480255018833801598238264558887896408161297212813196986758748924465078522863681089254913610560209333051563585520355601393103855411245319255884225582955648500514628816735963655564965129624299254690140560218468148104696041161078272969402164434076036962286823954401620354160768841406101730006283852264995305850881946031415728758965303020564046789087124046136248370006797448369607246887404039248115950038676932099116567586014085645315257847448325545233524964418320821403630568795745843781575701105075264000589008048231571581892315492203247355708292923038589731826279875472467367925700727730210726965853314944316171048335667487629864825983499587841041830450414245846940120484109309864940741495296347030442902992031403814341083250649285748052178481873058487062135601814907663207836461403404924240135435018423215624202325647138397580821641736537425140275107005414675207676241917048030062499413955755474395908559981985643265658853976900575100415689175647686796652687071293445929581078689796342447711649029206727111152813270538219746706638714498161617442794002817162885068517480010806551342526409348575933983403320858595819071630871982633793970566990933980655535540216062161345746255148868808343701824922254046571883495129121062836577100043679045633868264343191334610984617684888165609544383441495787235084783665492177126768345716408888722202491879536926468876541101861379280700231979308607648771924517918515085979289411043341991442569696182623505914781426828551721517070154965905038316884196078615438752784921259287051441892973039898168466905275797208583308593331165664941943515794583072411725648931936932561880495675027457725985402518573415126368211246344626645480553638103440659828996584162729104593067533561997125556271734775373206322276485825777990208677235445098841995553795869819672349080341048066844537807746767065843220419832068583739038823170329692718784919922945222881121960102778859611186566929507969752297791934754869453696493759669992344957317722284074145796350078191535308108809279292383686773272010074342559070662681243716108545656494411236637941964026774973037087444343159599530373715721468253664168637388214719181865617376330527328899859362713723866952011111315821896133511839003200075846693110360802182223982154920494739730113704404956730542021339388551202175672264057954944993932491918126173408084326424925210351096980499204830266121613965508972044273764386469669128982265230304672064081979322176034250002999434087123650689511413889090987417734357830002503841341060790729348119434449065024885996071732714637826600633057461169653695860553954194023238431838126974422890639685461111513952721862255453687271225383705102200157714654829286584522979867317220462340200573082655172621136179175819151378461727487533222173419225856793835796743595384020449993739676458754652445625656955518491234146023152859305256056416303467459903226855563854684442031899225578178349884928040941202566385368896647169543771367407695454365342318244109788426348207219016686343656308836931212195967475583317407355908980321909554066816512182194075515364939941794269659507438736801652102650705781252429018164090244075576000527346393036580845607097088335405914941667341883985486250989461694230333509005976139448762888578542215935247700413680763920575266379341807998505860194591375867447900984022211276251604733024454324344370399268160251332724241692979717232884057135640549421556338314686328275262246529032682945746134375293267581919766294923415637631935042155576696640525340049300855146310600087357077775387759299286799161341271759199392354083155630449372326123583006627527062447661062491557603171813493304100523882776309564245351867005353009581418987218982245308631089746828848193414464633664880175477140225883970098950685778680011044270060544465556845673533032664414606364636723238930199973730847017876760587714927494459640829658138450403870950163584054627359229637320711910930286949785080592218749807729205583149641788712225758075184388616060688799788875246339151470930478150028702295310720623315856024135432532827600519826204681848572904481776106017413305615361021064564176580316309228470937945912796939793884585552852104724481003417566061831542842734946254632187524448829906907455580518335431152863543816325966489958987349197786765347680769075186338930159993649378442485029854615816359536431113852229642381952201512320256955709027727754791681478216778174740593482094584918130092361146457357337195733003010677156495701839261132146730360618402163858746051418542692457968299983250724578323946352548912002903394908423062774941990661671144024405089081904506809132226230727696836975636099039261391970582702748285363887352883809913982963337038705814424362700069455501098902643660257753506380931537269565882926498813703880912381251686147746935688451117353328481522385040449064821074126136580646955807183578791678861297963773512537189360479352701401812947916138992786392100213493269196962779302850045560539859253114648366796431173530774961618153038494787609122898575907660312064308841354639900293207370440549744863784197235550421615283860883754156133035439923668119908198870716423029162729257589358971363893541676523861558650784882903900265274987464061875265241275094578348806592548465843120021836720971317406844554624173171755504416127442003153940822986843663248979023798637463916658393486203130585767640793876167205873643781885259726466819118389697036364719258672616087495860482565159408458818194985267656854120002066521680884884309656601621071491912240976892175220924138981293051592117380910707416113038158991422199284714303621356447122451158028769190553563017639790311572377514933334971669488393598612042716914783863130445442654890464833166125704187993496757134457054133289226188723725286060725705308095507619225757674049571508566773815950334707179641249026164169283232029406338898473409595110537052129114594556520734826865589631871110389344839821332318231625753660341140907634386357143689561767310723507604249511263539264864767835520408990273158069953863435610933775468437653035246536191598117022519195674230536976115020369555721888354803917669645707278486464018421948100227613083211164701096088824064443441299978860361963919152417121840118421592422723456343865911964949679382440843747863996996859941294513875806722773956211671810922561019116226232068397310115464195268672483687302422893567509858260832533532922449157027912976170001189946616745831425232556228621041539925836236968442275466803663132096547940609602362879663508153624823992180819906760351330713212711660742592370469952244216058244082079326095441532016034231912529332729699562140289409860728137960841237423124491351632159969884658568874669682017001729360573047801957309179966421809470425124484450817736957442663475905957939006889443777834019989650680011463219499048133103015348494746776128899834256503544120224532432572799628674446715383188953828322573095376517604902337921311704064023514139590653025914315409792660281793740234121176005945312856861665674013987086449087151580630635529097522547592801778957679684512113707006660270254979769531402376898820138154875228658078153999968693349287932435376892561469625467252429945897875982013917124795800272760132244367935171344883503382873187602537091194442234309404573989439433209826992490110749581888376749632295377579650767760080626232649255127650512632363538173332129125823103233756067074408828541715302934843706763056497853521674083949291076763030546131644306558755094511748633507080832079997399144663838439115198298277802905683629247051702625769037959155295947635117440190369459282269526075513235518514391555083558137159166538772337375595914397728533155225058232623560705151580316255872311773082662271968330696584103930414295240031933115604147047992019189921811326623748870783957142958659452677760974073386800218537808931826386276379094733627099284287459338634052110750247803327354215391473152609047456088693723458889078660359099193714334821652092113141036731681647674081707323815296283191325187950073278643595543778657277676220424602340536778157986946856022500063957662625060659963677126566051778935963699046718405180925002035147478190733681174363777021283646377748990505689969453872541555250441988867278398565059467565657990759593555675033373476266548741339124269907633923603700604884393607370755165537635579710159321701682501078470285592124293607600765877613729430716407085867847805679089130034784479533364908559393067220985739766796335258643595511110691211809360388611079169295245956160777629264182717846446571805111482285624502424488597307178839790408059277557047509210367971739753834938319196303285788706320098886113890033342280486012154947940440143506545898878341068485466249134404945402486859612175798737852193454059301838496660318088673148237075410809566350054370447756067993908026035384348450436156382821860277526836835877565562887633570633718762811094354263264260635350186166552985859780431096172282696061822957710341643626956902414805671303055163056698406578444200673005583979770702948496461901769176187030550284591629978730535901169321904493507926372406017367108695948808005015856568283883324514394510177424987583350669080218977962794998272994284092634307901239777884945374752613193180191579908886423987958346041745444497934687477521306747552528382968155807498598041052511314302727642407076256754482087155476926714158616653202612622867080381715667579670724327296602481268272669785368872104589946600119857682116274749696968319471572932302220260469158985204965143096072708302939398893016220713304841134812210936733211676165500914105473389163687362720789054869663294709619420704650637012287271599300001897939287788651951887410667773604129737540351666289438410016866095702070206682981658070454797961065155015474471121188420024117024859259736745586190834415879280356286670513595152481651717702836583644113975259712502460346049493001908674074259759392151624379375106679776171431364155699228545433062556364717540243956125455295150067256116263683750797103373716390591830301101490143453615492217012109458114059800563803268774397873745536814038458808801558733056848923487016098247881330039280712040420796693408859891435822428460369027479153200223112782266181225613183817052469097234701784394269982226397650097228191723839358617909578711366020148862500281442749067569696395865079129388977803637047844122755113733762988667089467870750948494741541179164842703441823057782752059285567308406575875482808745515917800526117630709490299063018170935561108165385114935592179347492765002570268824303958878892470685582850529917168660907610533659105510602668692348915212182329395491306018269309041547751018600638194519985922836223689453950560644588322037084470896592529509021977329818816822314688902974468372077085882229334649804525877803647867083840826923262430188823882439194558471345933054964928260902326128025732488250739508063397563402559516350679120889306193080987753158919274632092171686215401515602665044077732197846189455998766466700660447793813607719419207529127065803478040062609243883878179694888840531661700162770500785051917470292093867860229689556150364188447433852152481920969213085086648005946272636774378835741778565910635309050786483240059132725851349220072143353351212700859594700485473547868452069308803919203670074287846388202347690473309395260662537569296925080301159026003057512555316468643672615689278232545977658918348744201696679999902225933473543356285531299273417534181167599718010087072852905242143492077704307025072882151611588181225502926202566178024142015369161888904064540240943530988058018603226610577719057492873373721100292359602534778689437016991724053216259806991338334627469760332160114790539089833265668229515674951839929412705662093752305289694189439820248823999346099193796518857671956932731039640301857270605534133498503022150569424814376341226326039778449042902305172528455666074110358583353657932691494855696728901109762652407242845249492193393156029232694805189880876505407958451311981679563102387249603168200679036037547125858662679639785938052615714418435798097108975102537994273673880349731117618119978057115185740146972826270646670721168081055124221624704443671722432362555956147115078234034798793618962725746868699397088515066973561894628049023095365409297371082777427104555429742874151873566632212433676074924681677287631554641082766019483712212346139592352400475081328184398381412084824908450141148132753406760273000655754630404715260970980283686137870393892216233467819768402775580405046455246569349986642539013619747992229867235195767509629617286778131656388927506192316519328544840607121896505364167790570848121553034568023584842081626492929049689077952289586434498625466725233152526186468642232978995849218661940633405098065957810324723934835867886132395754605312106077243362815205107677869924291520876481102245545226992967933342589414800067519013731830987316200930226207891447722127972231433788333054903940253204164265605466667436870486847616236499749166125658028913308558923498251257881120660537471821618250105703883095679916772035583772964943832595731470439114347859575441954031173509103209619466536140539486296395667871971020493878254724936234535629639242145886940655205176172989748476436570061901376566953619355068458118320109263105116816330640745208144314637033037956195387655071430147804135521735066614718836258577120105079188799388345309406489984138688468375564933447580308011334946536676548897114323939354313599491421910580674088131343758520190405752039562080476066211034479689086092318408242447500208113386645966443564528783627003279977625078490877180862881115777246764168548950802135113951501489244188879155962042098731816642795766219072062528560521154780849586317412328077937983022152505885668823655946007037218160634107895680080512888867803281775082499489343639608448119318224681752132572272936892949382373579450588053224137364527125581611610496079298963683498606527644709412077265799834406440876719771906117370057220104197311484746765988284540458393402149136708404651126161530512389522321619022948468785240340670974537622899758926820678107518743632086397957718994117037511976886091216368743751999924338854988945862635639276461533357396839577824435479534512121652263542833186780764506590227302718368316231655921189852852235621263346570375641047856943943031474728904027554557574289921467913749314902568857136242703321519626044477797179667797435348096741895775961224563365246318099097983637536367748512956606798855056846740086010614597009499169826009491395363857470295070390079431399199137688882089253032714520302514401946115648980753993325068450186981221951523907493045428199628899008635464986718208570430699725362810833877747573097601197277019856133417980195006912117817140499090581602732964938412025024864729393599846618678559162145288493674055352130821112705830984790077163603026701401638548140504004267624561365839321714099008217346761622291326372724828797984017649548360496808594394436029900602054508256983990173611702383694198542959914327077892991150504297040773947195314815930008870244076276952712715570000993691319201664520003410491994048094154833691761486203451742646232505732209427836642940177060584181657806475774020807550083813408436665061705846771452437343862360183580521640959282458213724869267302991336438389045927764301167513612475994750550702997708708390936763186723387630154150788280595502013124990204438498819833049354554677657057560602763017775406362883040334757162511212939383792219886571072337047171077752919730692227005900149854890140570844273627613955510831086793037155663530806343509034586586297897519712045414552695672079857440359327685317355704528521660363236426694956744031104811462061572723534066753909157593445534226837791070037779361582877927997603028442064830611068514002549451942069264532956187993748045243312572020548524389182511473088139665228672560613668439071980895989778156990078191290201484085295186650279552149615074136912941085876265150237017529201683158991547161964530549830004323159518948778913080277677455869034729810237117383770251683565844939765456443713750369810860682201069140728725665502952438173149214657969432328137406490214335072069752753085438135563675704272224660342113903774347473942288049694207490307488067602546890976388055338734561872840448350729921478999749957859421821699687605845562388889383647629663403280278483841572339939789177157702937790964659251916237399917882032508170998574069355435953329113169836376446143258167297782051532159961565996059477786176850169731247871730649131809018743003394527279309282924746891813754466443746472001105409833511153229697670235713087012216029485396305834604327727257906775044326141641398071114755324267989298852834717952730595130450447348938828811554694313207584829573257235202256429232904077982648342936652395361521212401273666225979427026530361790357643084625912173915999913802901235888756140521913449074226090277516543982242266450265453206970539058751936102362003112796511719507206656394913805807843904492661933170428945342172507656814301978895482103706886922136957536931396410487477873256175251119795163172231627066864943536127296564710580689892911839483100644860225734922398081323649081484000864638044752194332558838780150566717847360551505915010890338408286510005403897469439462421952071940885399734623522888355303734082247480168335069938412290215885764501138097255750672115526475855360846020041962773943068521762619880231491741310696326724588351990711064603135590819051580463374239161427597933193191386174849005815733061049913500440189344477117187872724537226240400851258940175670624047073544518443591580724442706552588830450082579414209592210950956060134079849476258746137811595429159364126188416277207856016362549328244212445600710012373451863569578203548223641854351408423480315966336716943311489729962022029347351228853551041332710615665520366145232615262121483109571117969625986424345793682966232482043669073676934528083401183115348912239730392515591007146986475565649644459679735904331721224059479639734378884444983449589137350628164624109321885214033658476873416204369021529321127028257270180838320575500882154636516764479614816407191902791323865634287501101476400512275960155979417135273199207124786200708423400771455256097353628626164951092758554374068954976039189762949266837867190473333272808529449167755857626818795984204162242188158291474752633972083985913867376519726963458364373090219909368771531125156263904352045332700132567427582489586923008896712209746595271821784761043023283136651601739110436455570076948572535776214464668775256717142051716186832714072951624537866081658265428417982416092463332938991324284382747594027176368567693900651386162743381582782761211031205309950396222480723134617668552637294260940204924182516584158923074927987279555885115374176570845511179714123804969428631380438914023042825898987409854407127131474677580506416349874113413119898612167181365776252555294439435637448580004085734721241576704030998610954521458065767122483150574838390754796307066752038947935735378936080091832921754511269188246892807496002393543595290358422481404324777833512059432193104971609610908434673838636028858560138901951827439326435078685135718118651135840749266143647455868690174090765641172625836712000135073239169539848093027608861171511221317378229915711969272591816420362097607118253332807533079011729263218621970072125402177705502398553358836537133109587377448126148527705488957370744752606806665496518585359314907687104571180403672055266306929411005710813305426441883132325462812311246891839464315286641929314937455965740190159743511381446612370410477855697680364005896548504559819633874992492247024750536334312057139492250354480944030298086608354046717389757671245177242080256575218244363689742044775891085570717846734086676331508658265263482986957376425400834039581184315345216543704554654541297972564706679257644806028931129075934431709729424521342051121036483409745974529730681282744082050009451761917806354758578018076935424139354751179835350980081668426577403942009328831580652138870512726521694390363027903817067827104791550358553005450183077286948634800167910357533199997243165568870790703665171542023700876036984091652648974424611208288316288546258780295840846446738598373877014726255147814393285631352063045745507439725025157517479612293127272938038029938976511691795476039531553307771001331133583912250765148248164597085903244999952391742121894734728905139290240011744135143672930003050576659906644777678542135151148634479884494408658914202681847853028693848025941716563554914693676799640951539524874381114686385762449739447319486032328628364131255289131583596103164392194845169102703575942028520540802176744927414227885022421870104232465921816844146086189115032442348066789017782544995623432193475495041226890927443470548584880558471265223355831347036168131429057944089848665924467698960430216047876276188253395565627942037909254493623558043759869665417538980259568601669818983559560847559491349207269636555634817940274813278909587508144650606848441751865315013750452993070442623754459585342895204868692568310889484274153634953703606409326995763971677719573947361576858741120076228111176834046109556781415743582569803335462721675498963121680947691103282127578213130991472038797357427446245443083295944134114126388318671919528974961948641254731722803949756212477641928969935470355348726312845583426452428677904113610647275705593750166422494317141325622128983381643103055542884143595844898202620865912719875370129666173358446395134064778152936718571850348018265881879733142555960946466269064020057100319510749460650439747716849558246379298350310084326025251120883453784241802279309622280836736786930878198118845990369170269270132032833589943988246683031000947193921294425911627024182080794599110196504179620937595320253228245150133514262668619506623158867416070068097885056056273847020597176810259148943557974411152130151387828883283817804389201464845170411655521693907923689989151638626063514124738372651358158088767993854522170293484551739073923027515083051442029593643865426517025411595906825823228001460201905365016303995280919491068613788961803692547906154153590610779703148768579701216763310160703583640011347575191873170516061751689108423201612579632289692833512991246404308827504976795916112064456885382289535601594402909187878740196573281720107756138776593731497719249038700468446060541020941834069642401760913921197364514993731096026101713310980488467409195819556256477049694270748123073408140614178796938074808171125382719874296102929993396215797476123867512173605997140160593875106849096723974821139861634264217076981334928727486244269612524538078801548680804005594058713821390323803510125816713944048418101583291523860016953876962036026405615420278870230298072362268474641774533410241056498820610258570631281434032632135151636757006527451347083758736610996444733027653196608790212619195751430820690461943323366035374487561069424425257129374543444337043288629157206751175133107059228572522890776634314217657143972114321822012794480474235332898086131945630988859070228958325298689994583347525995551925886006502402077183316111378266254064648741175070504344428827606626472830748949142172871748094096455676091388487673452781230168963928671950107789600126599615839827539507250677965445717498368253929327746168412368268970513851958392621650212275779872423757408466344994765690043755857781943757502772229095615548800642063379804408443187968599740464316471308808644507473221682504168125375739365614765353647864339731964261305060503354295789641713833420450571959549534121100460206268192704267092119625429229295013583822925762875730342767473505445330839985934916979977489261994639264682305668288702704235945615078803695453678717053937861869103665372170675160405403517263378015259794849818095870591962558286017670002438727935150765364215132789550291375681391766441622441539993186223834497184943126001068151056082169927418458086904966074708687470756104992324641518776950360413682179136978871137230198870922134928474826820390471302129601278220820362662758834691825268620232221556685070993272524396705641408703186132280791239848616434063534751995588417389293313814060820978281507211542397137753265673420244578268718162444319457622993256606539091266024849563112126493149587861098532460612268962501295070663053158573180963503940079642674805497878719889383835721947790511701944278211365853005535192456241011683554810956104939142331259909951848647981481767847298216903270207031225228522816530920002140473946730381308425788139848075272437683716822527923380330034716302215234416163641671262627559708027364858501752712695314126016622503841469393824878194322108233254773579200712169060092836136434281930904550564414677495655605921184545151267429330338363920968840396427372818649634110579629505926029755207035400168675198107703479313165739807901660418326619343692645694467672050262914181258644806256626820652036840023791530940826068098133156550210022854959160441719711847208837751528945562443281117601690632557296155983774172421294318603881231731246834561062104386710359824077239020317258776482569310027881678018363740588521770935187748305382311536306991142891459920170210233578728035605991337081234330622665093990365605230445883879961924428513341968607206073998133593855089155805569202785952455972191196807796424271655166435919586979298408286241198374688236166889245207375336378836318340058092534986365357081359232960965568418266918389958379987380980025973160395675481770945354863782708974414824576091753256964944277426860234587927685941833841289167836612931535650172638934263555773436925487870940251882453479442749868157122352726640816432387192817294484191480610443083908367484167135740424615771771116750691569698752237106196038232384370595960527304078062625970792762027666042537536102638671378771357319563193328209177327573562148176463208478067568939722284845111003632773988978932354841096967810738210140622030773618575276648397726884413834007511412920310257307008394678285516332788881037470329464301569712785828637134508095804856146997583593382461325804110668880597038600350089056876063175958878127941862358295167735367787225985453999325381778592432932445905935159275017695770176647767593942794104194085091953635240839966034513428757415129069963417441641040068242998665176638998142324020623652939670742775519514398049494766577876028879574703155456449369836277060126552713959259840606775621562541938606841061067154592920312052737154890352931350336529047485752847552658725115143236615522288980882889992183763061334518368846360529174159579173821044334688887314538282804720189156397196803739056208428654613179406287862658921958914531430996846184122615424928311872092080994337205701819504104748041252345150198468883906826937663904170490272600035447062116613946962491198097492386385164437676337723255531561066340789697093348345361311316614153236862986886503454396559303701049240057544917989489722113534623283910338793585783179959791337565657699629750004746087900507704670344258995160264851556818339432838717786118743617689193920507947946411452648385502115702546163335954976785401573701709822176253918561082491500174847107102429009631416415082542216774941697506227026227457601530942699517577912032480475596888141728327108016874338373659079056600175943123396277756349636420624234070182560499256263660474900832858337491869890425324824868824455414060638532843028601559373471616522048354520114881730651755127973262988185647042733091656564517792002965761377618585773589644140212788691123303363427110199791051885041852624741818336274991719396767870475670689633313845130960747978110919329674635556669500008669554727117134350942619628796633983581479851591417082780530491914716769773030862958090184500749925902621026287685393073137097511876386561306634082106056191606291280408025078110985918721947382418765672366225465899052534313764081483193739529983708192171960625486153881833168202993127987058575036760244537388169513914692420160429724046864809733301262087211796642482268831451937748958220601978835549470602536693340810589381141443797911463161726984986253945734554570945890862306582726317860895741073381714167327970196146601566166046891981522552004602182708795500395356383959007514006614300507222178606626047182404076008444059403616363168961887959871951152378571594265003503345419280823802354618255672478672659393784054412266227903078245967965167449505662198514057773050706396586710128848380310290094576262575071632081495132356360970456595344112959502508857436162148030564219651964032022349157806901991718530595426338122368788585325545668106042698827621006101096190596337920184390656876785288958259478020511958257552723948714531611148842218829647099848682171925562300054277919044923431545680815471670846179861722140429770591114055368731480529552169564075346509091398808572966679195697125700906594212131593256302128515714051705070282202345339536885500899362512602580884099461948102660934131397203620546590250455410195464642105483961738239511216235270174644432928662325875777320507608606211589245777084067610333365245072780726664239656027132867102773261981663056596590160179942441995753272246852925686250799149009082295599648599145683112096814942993393866143472678372694996531098418646009102534295113568285895817408013913736562240019146423479597207774689311850682309900616761075117020658212037975034964545966883432595355074162950337512777040232112071604493546864607149124918523334316817313216012867373684388145103112686495971903029218024918435906397526900721323173570154185357410350101550121280129088259013358057867947322749962448674716854175386260129877219263016351561999236874947048446320657034530308133040747895954385431383590858806753143373448569938077059812376170707760582598201045361138950518216782959574311861673153081997886949833215281464328759201104476641179750073216932883886923921129512678410610301301958001647366072792835895983358992728687476075991947277012756039499952419224170206962923799569704048458364620069154985133009677945454871887718555824887707505928792102448548670866061151059887627146066631927216905871102269808052709203440181504787612646969258072872463442002183606014743726780400098009801521397931038349629917130063776653585447078131305300464618242780301333994613014260856669991794273807837284755996110695850786193656035390455169553786280936520998545817245042955769418480297180595561372429178468722030685979849866281214490591902906054382286712098965984447501240680342633110411755640135424906390499884817534844510489580097396131982542578169307182263440393863758768388604083678329404787400823743267205418342190803100794384223086952824713930977069229436778067115151507846968898848169482247717475279264946892246676178478411800219450737313534541100202504407677488328265117112793760714890645886060805841656987843324460444671635766953725078930451744747127737812256493024910362499179939566088039904036200195392404570343273333778314813265545852240564916073568776665599699049285370290046907059832018654662340818496160578427556917781739036280856457141866725565111990563489379230260082410864534543756935964164475486515557391851193186270476872170542784538435016201276817684984723523091978551601159248758675831290585967557686227641981404059285592287650760619215176594893099455038554285290037737984164099808154445622715103981990673908271626128585117448635399978029101633367007877618333158572683870886468635970641139657925742714702161108444514902224227908812038632104407300594783639621297977752179188395416743759815937028320783641345879771720911912139758493871876892822133632454771151103296115344812813003996315349966468114539662525853945149775577965304777758550989672731620440314501050363467880952051264846576095325385991713846170699625518004279619212498304879153074797512005537857104867648298889263549054802514186699334914106507564714228363719956006255976945030980550312262063830303370380017477297585817832394627586185541416473792162850685409116728156275887599913074861745420168769562107925813828505100008824432156029968396462300057145004385511832262011031605120088921068587269925134644814419617400364288110153211364268971248199053348818966681246538214105213150597046220013178226606238829437204828360258884802107617156538069986134883457274838823926678745919644871011507247846939444700996142091742849922139271617173135696876218946949599582817151345235229231883041878463537268560794831604047505052550627084722444477538606213554105394747214061130051768494030274274909429740158909209230603107384721926616361869767743265498280953049218741610037759643159431970494841313335556168301843350635264235765618959808017129886871419463809833085179137262493562926385608737598809007345356480418388924826024203002613502370673238191713861811273841890815507178619354562241826492489031182524364524646552328376905807801073232611759004631334919152215302496302337172395498265933563694145221362796925767757649259950328134580159733798642803829708639313231224566330853899104011371480776034270509872349253412985261505866213915215004031568745559145150551912288136706786266036735059364770309135144302221655904629668977331117977949943134903083889167084346565738177076989823917972838259230649593374266395653730548212942066328579481409378530698027412329954215081208530450162011242657776551001229383148432783176823359016763273249029942796271836914059166950799905016242471417384753656019461138443435902903035730648378450128726172722685019871830593545870908828837107948620182900021090532868802759492307738109343975260708631899943715186185178811163767435321042476078995105159142867109595865715192121017641261404766389619146658012391547976327742067274980267345142865977371882924569206193355088017706702405359984787469825525966773179988175905832932293811043842882122373728903915917334064033398050109848871427793229816629594502750651315859441339983589848101231773541299218560409165396652774749441954756703212501221127775744586909776470922962678233704794151949541070160659404078902969478408731504554296693529596338348959649314718583421831263378074045742182967021546399397314199795491025736611287864679362437530073314000341511193676247093081487811395871806574224285281877660499193501515290592024820452341916933454282699498220563820540392817800270896910140495506250065334579007140283932330232885263716533001723452717206607890961116122267050042381074412203789376809423125310823843596118357329297319482059603712936063111932621026912973378307223751627452529959263864574172724746124663054059479143474842600596929142997143065254899607843694429280638727920856638161705722741640487843617326164205339747703460578306213492776978263411707434911091282837607873257437648777253184162611332184683433989901379067879880379658884992988631094447332653467190701680402356843919108602342467860869210843655490112215359816554745086227269789272793557942913175641107524569589735464562179011398446765729254741815727332528727605070370447026701030087070808501947856522330868185804635117997039893221499043150993811346244922538778080468510721122938887794492727310422726687404747369147718456842971510618344891513642212634986622171794780848976289211240374982026346040626029720001482174240990484565203938467130592011874066401928155864919196410261246853020690038412220644929023339573415748380504696288614675715919426887074936507510809552913918889549065115629966146623713333555517489612276842971584463759995897965931413543516338576630911832905525613140517652756142425219790277916941098396495831639816616584287404877095991683140453862825136459345528580211153763820835367130953720542382082655543597563405720389496561391251088906114097740732323971843330361796618900946667860063905891376089811020749335698157811807094726441988442895496490876488752424733464279873743810241949228446461761864336212865036751154303380981922045955325342815608946308189085118902108785364963749636482389791534779806926296964137086717510962783468446876822574619756163820407113235817810769870256255367707533515923669967327358236538620571040485404759075316722093463256487529890095037356282575651214719551807356269459144190506323153488615111528509543243908973402619417813139399794164134869170755273754334555608651197592716344394941833494133420420424009765850451516776896840060228607975719851363587768172058472776128014086496222223270624145505580101740300858287136645402758564638704689888248038055715737708893667238051179361394623000449775100838187640228292022765895220970080118254500645663193087206874566753353420513380957152195071139242224255835294742892187711383618021187560915542890315408110744267686520616582959138860382444217825712656163361408892452485381498823032706598909929189982138865649903869949745374718611742903369504111687883142343850017661891748579418578313594934419399678536343672404690077349339799661181299196600100146277755077901785253275656041834513167204156094433089153435681129726246579329809041329778735475330269240453568987356061915311449644871455924665703756960089003382535582748584919272267761136411715219472862940958139891453865029318508152045354285496254993284145687648019492821610578194363260231698169362147224829052461260654002867816811139549874483473327504477310599243153296559198867213847772989345967638798749184307767486696117536958637090774472063537877340906686828481477338605881847489867564645987563997917131803141544845459427645748021544437540420595567266538782210210378457110167044779112115750777310737733172202307492687835467639827450114123654679337770314539272763249357987287736680306653473098897091474220159332230936168785179030323150343025833061087179819826997340213352319113967385692142125268827236463850429561645448298820978473216434500404793928605651129813571379254399758521348617395509404078023486497608029351543207054784085199611985570179816982385109677968427155500421168003256597269724556865401141100626236682384368400008481051336342542328566125277134609095362684302566519920314099309668108855314716866567888075304411908767439744019830894743413797534006286267954468425803729981418474719026445456485634681964808566073287019933927686843165494760221720621394519995554862767840548073552865646636168789983284580803977503877505437987747312347413427899752148314311655554424115707352523026505805107651254571543253271699819329579718872318213431615809310689021988162217234123654967215093750760850830596370403282880672684791173537209382820683491377096635346025470343663089932405626391213921235236245457904704246807758869447994476041963325120265332306245524114864344615349993174083036937438223205837321581076139752075777535010939786432398536788057740216669988080077808675575336198526302745231620082266656206990463089051482825402677834764517069078425337649563514131558411105824866187443982355144249134363830536085555234845774465841127839910246645434679290663205766993411167637070315263669386269102744304892173737583499632952327048069525881882356381004995854474063324091925739540469509613616123446115710748586925088873414259130633760933008424934514860381664611695042633110415927831390404441800740304732697332100285816082286480033832466352472508511617328681656549590333595286484179255510076233199966644885529208262502841561359875845681161224660958862284375628134690329229281319228154765774345070912948963557874524881363773843114279382321442033718093970890929040423242269222336711029890661131039734243266615015547927686008213177363040825820507894892186161727125303852850096687631325076334784357023065397145198784532656867980358814298408513259339518967418363597486301611948115194651931565105741385719736959846672205500757307958966985904673134728334730674077419365178952147820716407624077912683668017476837741775520244464350769765557251252454442614858506577153954164509293405910774897994972873799035947240984669118831759910254396226580538243961458201430971152887505421573113816264246915980077637530561505473656617261730850617228450209501596258620176950099108047751917967309408214898726972619839912471703317340528118940001801614163319750968785579135915618909386908531316760133530196131173207657694705870543405533002355776969949628181026857325378661132563106309676901588854988975022153838387999474220923549772513394727516735431577596397117787550988337752273339496848948213874767070312740533936072009954763484081748127715076050233392270018592700569866102443604771486161042242432572756062459530432836945040569317323457668675105329669656016973606687928335959001787233413490619813703178736489087366719278773624362838988755278513576860596100521094884421506377149766337813871856433043994445184079618742064768065596568249412640796613297664967974249196181619652794294421384608071492393333647797120110639419093633580625337095342422607686440372094181429198480588426630869824348971129617208497096067574148732579170981051614999298582068336038866700314394001932204742205362252523887420150743312681845881428353600973607887261863231617753541913374563555167134660674802911770651733323243008072234590531397765636213967927479706533388768814849662029201365009865571710082224005663502348878413660446864689518116609367879996081463107835945631177862095637031330642094391056479877172629723941052611037796175647078583905710371900008656799299747757608067848257959854346618050207868050591146277431382171325501480834802148796585236678458298709877244789091329876670332126828616249986891032032082010636880838542598554729776352472264612124827160399677776498550280630032534855767403493848390364864929694299868695238045296212684568439224460335302673855523435814362662657398086002952840666830482427508788442691881836347696168325476107333211034436829251569818870886345716970417235455380467222149390495242335322418531722385567940779810673047985657638446069715940755671026396478342357774915575149496355995670726979175939414815745124097094878958733749513835438169651415757431115866936489599300247945073164625056851370418450513263009782668353533616985139290661033935302943168228101501817117563183446966525422191669024105549390446118914091952982745573339751390462754013549296874345923468080877659372559081245604361705822209812710094236238796337999837184223229944087473550310075843876994414715676251131745136148831707674017276756906926128332471194029429912886443564402409781473194752286468840561565017090548282737152115322051320601953212618730245177902718223231411146547650236258222648005639769135881926095041327202540248638385549455999515835557063853809202534190088421758998868786788942837967680615733303240334359245886878220571637204018135804020944395982899656909172176630647561898426909323690394021833277072131952558173512780792890275415077595730817802414802382970457228972803097484365672784627776254750566188041024840166279262553888985927895955837205218230007430686363420073385861206112613023600831221637460496012146695224419310289110459783032646571621002705636961667325363266153481465118370326362586424540524090259360674197547727209750727111940416028296890525632740465779192329963054897512328743018158295581298920618348159652067250963210158057086511470663065339023800111131195311290787677222815950693473353975195756411984183671523479061800112445035436573137343308288850859796446699062104895873344336099647792778550976852480060059288960989093987839681446347006690867001410185111805415970153871349427832068212640502064153713767105623307995292858792689939888239920172731395161599704682009314423657407190448299436696876482103545669315293366996078807421083492354594605731897983684149720234543108298175780709716541532462921384482458560559521732663507453013025900667704459011124655138158737349291959145764186341692254713361013788326342799747662827704830961595038555656174079721697205822752505679895100185709310445163706267658410268164065165966325304243066160723543073121424294739619607641984266655948235548296534268154913154868177575934503397983086193622554603287758304711316234366185965518247773864603209844838367518789371321889606745049125913985044407640955254002337152801667421849031165812159338077113296944128317374200107949172400795741993355483210308725218605476278894009418639830354863810903586446829425297375467568261373430571891279002525949690421054171312667253476009053645859979065500557168986244151008085459641363883925327666221584394989908106151863922462136672008446704345257380425021820177232270374419572035205689145125054187027188082470777918522634936804269466955769699680197653653714830260930400084082041608207185221942291912248479041567865210951522443344109625573388518746749490592769126694657007689481712782722955876953908498185435576117180696623854949006578734169609001896661079875947214581073317302943164405787766913869461328380762593690565638754441669029465701482469966837797292015951638960265186028473715813893429157935251728289881622664455861850775179771340557684839817865020011529126305543662721423520197110876235158263669811760440914226647167400535430576194653767299167230879947830906592264077687465555995716830318812866853574872435937269546976235385001340403783889471012369772598524589271189951182088991276273527715269509043326340942215147288391350713174419880080663942271575574159765029336233846587133903579819044280606049062873827761094004221671374132209359002213637829534244105483746093587802090999074286797204083602738027598623150765149355363217691918329226995399673586022986521662775698005421530504041068344815733690166673972428715273594734190649471529923468656192513926734471948988796620271165275331784647345223516084440112873404597423724539658762232337428810447900690497186170411017775652420582127431272228610951667445428334994123325506811947256947518447548813756040406157140896525948329523731981489700962827459485303124902380913855924854000716251724759470809334688094768344532938175808944083758183562236678133566914426432047405015703588538878504893501677271296566024828529752535589655557956113011843694260214494462165496396745943370125645613317255466049807846361096599784972603771722763106895046790683536744325574237155419174694354012496723005132719217438162073073808609447010481968565981708065074531714783169680327660400056054285466700252453750815061813158284420640496313975981947888660890564489838401569677521653526922175270927623474331947211814705917268174882018272472925486176899430951350183822438120974268774714147397640550836652502143309069034222192073368548587593820294452663739537742253856946323621086749254602583617957259749626396151352460351006128922786303214714414002718070287106454578352804970091286817990842442501209836311449795087252035048543068400604183728019211969545793212464845233821399047546283817908643530594495481614342423541374138613291055568868662422123672173623535772639858212430771728492689507198842079726096080709241532635610854226796227667679435645615873588897112396401374914361968744042633026202258827858745590725432335440411063740587487838408603470866149174675699882263046468338427979541906806482314887276216021453674368852981150274096663777829342826239243478206290714779654048199646178115197798973019000349019675325389469100027584079426561483355624976856307832444235813194029186570905364620837629651292276449894485236569932037916477748698940181052182491593456948099234169970883721884954534159800621564856511700708069982641363493693567484888134917304670536348467919727359079016957516366249540868415680138791130236946450190118406780527950267559207823971009474204998397908930040469640886741341367129759018274205674146566447180314846577938621025504042600557760601720984979305261545626417026099259601500610135078773920568673001184114087129671712088910235490756587128764752052619102557678051305925285259744574460634929704133435055795343272401301690339720449083880131603686037047735428907747028547391299452894913864397085921793951951939402195891635166229736217423486123009704334930584384678399017321937729166539048980377094446474075498301071504924789369159144231977999286229124560112533793426975452329393066789145273765895670774337224365236391403943381423131400522570358357488059691100361074360480722888268922392849109179660083992658115087822717428046983623328515473101019602413705730840667436599190615287983074412975663074613523842981435157552861759839873003563899623067159011785306112773007331477802137549301723618271251124620943531103165336585815129272914845093610986547031785272875841168844620902647138450782179457281452428572333921062304798271050628871778257020377083851636793037411655948584205692245952860564254899580106606191127485902991192569870095914477564069633791519014398729432333506875762953873598632970869344004050746084934839104306817493293957047575775604187610071408610939357066461444811414657432921909231693342466140552912776929945782680848013754406919132263027978168444486373320281636737844130970868100484283839076809962079076260598534713610024981671305822550698393800567544082094143774390565579052999090819811778736312802953618629301326656324063341053409170376398597216143719589516284826762050577031449400088145514729789974466345477309786128165826643235984899518255852023863183930246503503142736930977635576376577404740147344093119526592401478184124729354912694677962892606029659959052044442803542056530715359318952290493283627197003667831850644647641143444515256833361892657734479655999626218532691035948327614139907382271532872313986178815336976240009449471359835907657668998494783089801065835551606398176738422329700451632514722772084087196683748469722925383845223636238098903775329193151199630840841300156976450500282303476795463244019804954561394452516802258860277356708007725362436073900797342054467417327544030252589323667189590079243986192100362302349649506568008384986135753893467444507416604556365843234601826536438311167074052987438227605339761796616267483288731642067565827453180434977417823704494915349763226595320092375554883139319035182843991160923438664807246422890454956419074681119639612197329139591725311836900387422914403606787600388270282606762307295074212273621499718006806368775469775458148201603034163440193026194972231264214029106171173312071329880885271089769764639807300852107755216774533448386869278385520547843478678471181143307440431401234070317659406543141889965228842653551860725775197102221286534550315181551288188389760680215225693274806522738901326219172032100050152572785376341858816736862472891529809432994508285867420256898633342699224807824779312528313162663066808645137592168607145237682986705791149518097228920989152566983503681301474353676808917419048338634259988267239923557919257586982786982564955627861411257902523380409609197461493605812840312851904196912211153098855448667401515148595474008981017711554112324542258653609377311829072856695327960651731612706255782508696347031516534376490224039728841471733785734462871827526552352589751627123918697161423279955878306960414010850141645866585982499145259620726338397733711087524738909437680795119198792070314802836958342107277926468859093028040413937985440474316582362250130969473264698464158814121242450497268899616807590705488502073672415671427282971916433198682801236841165515923876704215913281039467869621175828681222014556144832124601249428458724544559128908975490358660216308150612226249142905780746267938492037709978154745530910231258588927899160967999508026187656919463532313711936505609096905818944193119439459432120327980232296828522377088648027177365641300917458393763217613951497270909307408558218554204171642663195116783517774316066643157094598940407505416774533733508335299215086795891649418508998409378164327141300755796220442268151533309624436644761416565391220706623619655492798649628540918639735812564224218989776556408885526863572889320323971517808436692802359334132123909009140104468416987386446284377447510365026152747027003714864918314135642083967053229958206584386908728700312314783576193598684398823652152228093480121149871814157612008503073375368911404562680779600184798790544486574431525634154742319686404992598741490901740212368158127140186060355803882167533685729810535568075397906689427596384267330768661069422211647489222157581656268499047284929254811815936349382896629721884029228522787292904213176888917610618392445103197951446447520281791189945214789613986031651597706442362826036668100899664570234020647916672454642090768348701640921178068280156741800153997694814074443796859832002003218533321639246739440172104679992239242355833994304306311031818936381707235823696632874356929275287127978824106470213960638984841359923115331940181617253256407714174632996675364911328241313376613170594363378842167941615658584675804405900280133051886371676764275264305763028559320637890688949024951651130523676470684447334733608820098998405736887023720469822095081834813549597472863117696152831596207202832656016472960158012016909544501391758313634419592577159192966142953915882343929836814172083311744828184393243470455883900524617090432544958787859447633194375206688435234237893661521316421243281913386551825691391907981093700353156431299017192846724049274469785903165591917796222342988106677929005036298263721857592424786621474734954249374594754282525504912810303553576098441588830475851207524731757054287098876068523081487950544868520270613153915918227196785610278126987478476535241707263971535505883784592649275332256449624789055812622502266932877247638490596356744240716265759465135840037865286740293613424837830025344334140058307327509369732200342633741716358490691240938122290013585934313936029141454390737962270350605951455058889792493868242963236762985171448367084586975172830614483853699323142557316549611727741748782368164140876478795415192419355716559327779541411573054355739706229228493504516861538319664423150362231025243307935462390839227025876389594689603491556760908144824890871105057363685573315244768133552695374258946898392675226394742217797754167752811555554251452983585578475068842693393704791255020041043150008389001515288103768168445506827191304120959024635253148599926597387963246884957978049084372769580521101163431279891159481420580189206563417108444138469493743201687004837719572313100204618116217473230402145731750274143283068810704740865091286397592528545163563270534936723711619355194561129676554643602739266517208417296406721438544168526713322344509474638958392442874026686776196615541680467860770218024178759751997518945286161299633407474563143162990748652063800666366862917126553174265240583448021914443453304684492659189509178103358204272001294101253321836225686384132977367556630708514917776742098377541300354730130611118690231038775228571256816222569293397896943358849123722566876524328014940953976664008753510469426245054362570881032406496189355773308316207754387225050379554904904672823762291826494579038731482819935195538590076182700965985139495405220964741778499952724803026912333619847661132641695278893523781335718099752364940508628731234887021243186739027822233605707835136688729459334510244267217623200056685208629781390705322118524058048215029558686025416750707461073707117866650360944809083166005216077169362540877349236425731931070461132778792404166636175405611270474020667698382270167815147458458571396087028109787227662294067768576369280357743376542268526175576808099933247764098793248461907080773400284240188756045184194509182915374777369883219880862185011854710059610888722718430716424176000012794051125220044843505406092517082643707298489685220576782792686907755312839758066498177697217364855195233020973664176061664202238346357617144808346941912649051082887529688678218729335599769611952163945440724920305484787597036747854774349344712051393384331951961309234453281378050848807659609364769491734638697931068349846230162815766394159870337526070685335425658264031947559404586267272828730547899657219516550573940721385543129183101694335285498724339244500773116551126534899196223201950008476418006724729419812821604170304729803355308548235269362872626230233521897445908333087041814719594686867259148143159531912003406908850204083897908144244531726222504238189996004800035125798545031212130284209901202582274547318381676798231253191911579297218660807652787374148536704300276019320896330672751530123660318288259680236150421910465415727521790385676785688862123928408216497529081455068199636050779427484350108357515321992514339210770064686918809959299326098523029100981060613318434738019882760343470165001546805689946098811636760253182073081359799840803804081139191304355057124836549472819628502565280127554226419640244535623759476192725352491157511906581624059913985961056102439546595989569216848709799781010588528493433219080964996929190790684791345042003527313118318142679113178022872640142214796415829828324868478541846891610653341783301776102575083430159002145855047198408862330629625204859442022995457498948715343418477033805561040001514771300281597200190202639012010229850651173585773287915491673484560728810515968249890025120268658768038934044207705779938231303356959340066170141404568017473040805452144693353537178064630128323342664490413033837033703982377258337996766882512671848730446077162089650110480762386521056166705584703006635433967303163084144849594767149671577291982165702200740233298279142107089891247352579016747751909023823943790225166544986323964271931028143017294412182536154885971244432593236727949258629377652003321438487700501702677489372399685271508306530156143540343635552976283417864360669973311522580568907612098297718307209654099370029665555877776451100690344390628352303465463710485158401648415575393079619900969605346990531553197214211687308754077713043243002131603374865136797398739114067366565991053081026478484848487745655637284076321845161714393031101961117398883679367914238310483689906655551755632926010882283036947674247984508444488959501030184864140916662965456133687121304434058474360037460000161663389559884359817251732229418620991968957069210165022091489888590159409889138619484522405364682754790690069172711294407794018975387491944188259268987534216926710205612604390487095751719163589882536802071588245456274084713942278995737911724629218261743117372520449949823557749947474941004587837489073732006145749619627453800858648327739749615264487741849977023662598449756251180716026085843479209215505956792890947218341176321470467348115455080997813345342524666889031652813902189897481431608088380990964927277323146527699868140170830045249275558984433127327553940567985858975461385541285287843337083546021474531150991844240135880553943432492981497840957313103909944835216445078025984575968629887601311140335229099393755930754877871170550890365532135724402088507975916790455730248697372233725626874881525484398187065655815017110316425484872828071413298517849008973804022970866173282849183305571033310679540866755326386506884410978382838602063421146942521772078540016039619390300195932874041321166400903439314629128601584238802965730453678370698852367904971468358352792350370344559026921913125571600108435040197153776373541487064980093549853946844084079020331005844340190523662062964928513101711864750162417551699452447951236186889576681775218138273344532063028340245531842445537884567649257960139256131099008671321615301090276953983937437081199510461566182296109069261954065524782384185896694872771056523936415036480473833887288486027225691944110250998959351668316509915175317030477681323942913092347174706445418294919971098037550144760612884106724055657534452736127687539379626608377848210458252669550249779339508806669142566483319059585901283852617188340525855901481798264948026877074888447636592865375516177649665817508450613285555904812381684477642950059861170390152461225811546532088760285691647493139819233138280097561096487641133880409474704041050943251874290063987048113592131415576240010880885326173730434446838631062267716645449727213448940306851319535733878437649417778464985091095943207827284636628694003977477593499079887617007930532487924270512597322924883227455225778039194354401035958940533813862680841750123473935290168837375957761772116424599427470208470086213211587139397462445664569821089056098021604273353321746409829433978145078781370791156898864925025109153489423171954890417460668095727167085199484034744309402557347668778808218588901041501975441035815210755968507767117501573008893543993040735555972805062439919398365095464000259176108466389440370710670833936218095542485481859033700958835271977003445958699017559528259050403100102756054505101189115509807002847763034020313240900987393675808027433945965122031057949782891319561600270095970195416068327639755275533478408355970545800470656652441128722618961966177340030475978026012243707048870837106191128901848200898044613032180159779390789726676143231808929111317916940068924883219177188432029693199460065291295224352011054403183266912850753689530827826143791418982616760365238500227940484483442704064458984078878820709548595463347929230389247511994036458594735356409178404708983355662395593224602188061905825511127047968049963000956619612431863274734443342930703085629560818573476745239538048351724545073713736052701350989576051552955786188376893295745760280803868278425249822360633589522692017988826711518196201466020219634667232164653795768335655551448589230845175076232600697931167340794295298815884457839922112732367795294845533152080494359180942587579228291948844269324748380320865494145346016170476698358918394446967454186636066711530434852579932847640015034466565773125451048802363328128086431085570780613844605730480473458846301722264698565428193469661166116223404666165989451914370375927750207501849705503030859287699434818435302385491348541250735330145451659679042423683007265170422036787683468945350667748266920368520317340469440089090508775646457701051967179157184394731313261985851395869591079454025556715339518332435382900498296238446639679067438452600910126901429014328444006159184635841007122468478487747553641218155512348385420142687544772008544060041479106220398071836608339829589601714573090064994268910980240066867108439916665332156245390850438034807020025876016860823826433503330557090913078949825115207503277209672728285661067197229661864376488723665569174796693821213390606620492900851918491357398628872932209354052859838718953852604329319145882862166632637354760606783231239697479325988410700059014846868949284303000837474001541593528709225925940029912470333026713436756384204849264066188406330847453544230447090637433577805973017141600864656259780466066477912542335076948122141478291935023958799373167196481514961120876678890331843205106619656639352760491407713162623571270186663770918055494029676991186772531272744889336707280507972620277189145812915401250697136690143634528905354131463068209727181733086826527955858882649475217681704538502400954651216182190841121358474008738209214776401133913828929469548066677898065658127384827524887460950172880987162898606601948579811824227244230920117240027417071521554962989725429709782108452619793699941698929092394913356037596930733758817025005618073680472819024598884787714227138042433161900962447531225071589746704097328324071867690229768845840203986544844713815846648175319176913848307879767254723491538348074411084455042847559028443433868051645464531719798852705338516150350996087668725640539009468354803345321609699588940529684074299500101329478556626663721709217277445759022933431716689125401770062209498036441956924020211759751538698564571042782592281981931738366289673981414946716239792706925002309960688921889981740464776789649374199222309832237079377007679705669738676668590901360503049030154458326426780962875103319766746769206642622562956236846201179336236062474934610204205684544891724389248312110868237164795311483572614517011477966782128314291588385446610108212889995943064270858387194742395298769695217975011556382780105995601578775531505767844037752358825825044659774235855604478293565835505987329171085466618367772104493187456755150706830551522190804536949586654020716103404514465872206571242957448824015782375566765986321307788320627865339363721641515540553118990223436185165578074826878969828103874416649656930533345651089152548769979885832729914317458897924149848151731278899441097993704905530576095845104851544604400685234600006322612879773389889798031039316936073609502809006605979033389478843302302823668720366460711609440376461229692396611368674975480661617734860567488942513209592178261985020546572756816257948650592890433018276568037543367898886921616241736001488395650031972795640641892724418904336731400262314142112703999893136248300959362284097043140720230474477700200961105902342086642001563543719894529972763857822634608833014039020102222450328675474443913883564996105002271318425134927766089759894209102822471655242581076747493554399870639698776636722229483950616742246012268223839537568104463071714443317470783157618767767827065198648355396929753729340625266007633634614590329582623111561817265224473185346274764703387751194040212021631310801313322993447467299649732706025175641344263655579461631190221253492442508968604062134700665152978534245979691623679114329490568590609684600764680091090642099845320221593548713414297981117984645396736026167567422403967994421416019669741828237287899802785638471308576971492393651340715299572924083517051978113482968527566920017905968823826822075818130604000612835596829416234376801778957995321917665918874919776117491564580427347373390771606819416580345490044889056941023309257611907354468302589252061804243931092736971012984614124034695294557924670784978035788093575117523740351238433782463260529029588962591239928596481769937490691784343243662289613990759233670281382829987717191531133908673511275063464737923191457672380987715001396148966039435352448418118482993430316682301516070688881567258665636342799450225646488962056176767691846470600955912390013606463162026403491687301931669964956187030657171341017130115806255396308091092983819224089766508323495104870624023605443523408882093779642295756734655775085955279670703925722890977607182512219056384361866532625490987341357984229233037702165034341504750597036634414726440062875458575233077945234862762403060439137495795284553096045792442424775174098569679243699441830495766471947377829018082228613638269455445428233391975150934994743556110833261288732181556841514181467845213793669137299292271232598524760026791924700447488237293725108391872977571273729713997686660420238654385164747073107896178088121151987195470169520345077268650936581888369205720210978788190349458179996314874734918622669085273040797175041370314109236241474927395445783713998347595617394235524557402355554003433257517270906711271170515387827673287112988071940359324692014616772117394846919875484119007502992271280254339574080854061581055779376999006685339829927623661037554279195139712419534287854696561134195693527874091125665182436655524201335640350066654026367420512111373700206584200823972937327167766250722763772210325419941022481063079338786795304515761626289742383461291186099518544384679425406203130005617378053842327671428560373721399278913632231177435559564812000528094374372162120328369444391246133796937813683417003277274722324064781283785139801081750619434375588811855817097122523847106287289466535737210812649949945676269155460046315856933141080250132521114869553262974914550118076022715069549851644761333248357749544782126643406976707361684317392716712093269527798689464570146957524789338585589260995292341302098203087181451056395839610687472528560146636278730283466071665272204653314449260307097214145665287852901312269778857807634106084913186561184631691569606150911479039204616704734642203324927698843997829393037161497855715924531726869194549482248730157211436186233586436915807604376835877207422649634696394937351074623396209113497099928454292903277089382678624710015264505561384946266484098275361343699206262711772097803001426765608911623623142786951880577921021647183018038175819010596707080832380332990779546788963255158704595761379191607496247962245108053834612937546047361997438084673015195649040330943072717737816797396323234558687598779038808588164915018386139667666986894795635429469021578247210280615956452503704804526591861963032389287161625375153256903264555798287018783963807661314607602696910709262954179607657166329804165733239482096059122654285286516462139279764121330284568727883804049368425086565670041296308612649279968084439530032490853182856955823952902223047708763408313576379762279712574894300920586489004767445745391786414999755240002447773201965894843370084070060489083586711688315236570066430759883807814806525705314989073983203175256594165737057673283793946637680000437077955413948648180608104615524734554875237841143951905319544861118345984030315115821331744353968214303845277626634671995369031926277778646458805932719753097278599821778375172310663418026911073144407898541115943326744491469209674017365865026707913786113668383987279328692073280957003192382720899933538971496336764125025009212342209126385986146702320087166672692225896408924786763221067899588114813041368507263654854202467050242456503884639564360172934586021577028743375644038968212043378741270382146632471128044449721091622810712394091956356264355861699442841428843623976870503833940862204852403135724246755680887252871724254686463732404650762463831728431595740845583218599374435347395388819118470314035786304735049662576957658386272374555341060580225644883392945708024809481433748854191823795848264578399648264931497381794896784351297093117028066394612217113683132338720284756595175239075774009359144508771200941661658270406012126029996785512523988947787958759093068658692963267571713049052055276495307022293448149809860579274548532348834633962546609757827620894561199059188191419762815421814224906738301758318355165821122629197895544197420473942700392007955451002489507659657755032287745622824211972091299202794816756449133755153160829972732086884821017414498535837879755515331072502695169298362578052034026714637834078937810390655341931829013395875586353552411487099288710685326154018225739691462588399463063340314027084127048209670360472524228059125485054618717609770256656732680333489151268583839635158213300316391903649082401417033237988150387118960330203853244421615970113871036902129446363484116830284398309362146998229162622452783514933796556320377352552959628149327118739079327289375214507696892250230328947944448948680946100784282856771786289169166306838514907343841723862057468911524165341783673103416952495477837222924557565438500821352078624440800326071072890883355553472274050351369010827660872955065783469759242011316574061042524760403464293761659702735893002907191302061341444498574203136331991814328864446855856641192569851560158416740622893666961559648558311821946483687822325217383848871595440151537321177471681180229737575177647423254753127700392740316532063392662377019291009117216472051575704790718235133371122644342390809959300917107896652832588587117842872638495105193921268269508798647463599858179785349451897269665146669897417219700609001169037173231467140308269897831606121434038595687961498285195162736467645728308121275232755791893275420257241549210928835685411805476088735759846358308142624178705455933557352473464983490258895123409450461268381040955232095846972755267094368470783247767874621939103111386011441730985814566403117719492067922262099975537684700693294454960235639791768536387398008063578543980402281222906364664569189602074131098207664563372121857290587379173845582413564715109690541002603265822447628629169474950533582030336812712555923786720715075293597193444075995373020101050958931436467376600925802817284833799847474566404331121259502723802307085353765584900970097324629337822635580476749600441533135139007969258131086805184601321536560599613871289643664695306056817673789640136404470964316917016501156318758511217572134317677081568466221405821005822876396254471570919237638487653016020016641813923457700892559665283957823004074943225370875983445713835614573174431199185409822911730700734062692198406879596429912761420747850308160891901928109055397019117291024988151615468337384616206350490549794200899654999982645056293175085039402492056833563191606119820236141880565420533281140778781472852122030946194276774877332730746609387020706607061124607054600972421488722081354815354480019287613800080998098248148627692695469741240634117652810543821748390301544221875394246528934772206675421216945647430609020424435241577506210653761734985759942292607433967870909920723576273379208138854490374976159001441883689421581453473526321567995584079110274706124208184831134859581529017092097645191839732463495194539517917063735427142941800565394871617226708417154657025264094378129189829640461177700112430541113214758761757672935946329022196880617844153699478030392565230564937124509991383940541458891741364697775495811003738566157713111120642181985579462069474632913595352532713067611126416345341089160960550862222085305713501825032909108704891642229888338371745183049139585223118839361452360823971629423562697614167278257418018022752698284101076273524166852145411982992619296702426081773581959746523970420849496131384957570252203214647904836643616640856412615147000775000081062182422703606400363198661550980227973054329647786711210818377842495188144439954147542777451675770530987372765430295900486124771606128672408888808579603394646145531416382818200898776655831255888696531819155415557006348870249251782660839407911792604610996048155430953420057984263603715303862454003524976557704259807194443524031280092831372000934868638768455319203150518625428685645930733252623943525218724024410332708909385267157475791029274306111576412856647556398520194581417122131278547569986148676381816233454728087724811241593209134037736455578967324531886263658316004560694976607022060817685843596336812632017045475820740666928858222569892726216873759879657602079121096564751265255414531472604297731140815447816181981000568525658693699178099649348717020672439399562157649476232739690882588108336336046592331098264634778113379345994173046452347332391885427569512790369364270364522873752573070555388543134678876662656561592458087083168795045438863648211839529833357613849003168444238745186596773806832866937516833559050665264965732912011714438847338770477519040747864924269797352076402714246700960040962411902156560064640284459359369688159250022190309971915982557668342826512889866456938807141994960902091331397693293763977438091318568835939410270098760750749883408920106898865712977784377648529286571231530023445421763762528177801418824567324268517632518970979042108756391201179776984390105194419863950897230505925502541370113813573034636913937005571227820748676987866630851072838688252774370580891316685882899178167122125763290546898648352052039759184933583190723177414111970988831795739671554062488776893208062909068311278684008368352294785115616876274136124719907302854604223267214550983718873735799026602327875207870092583203913493320797110481527726643019464424122787771039705169285268501656388265938551372439073819342686325658947559287273765544131260776325062241221781395630354518753401876115069577837448617877337659321850833765670704145064349051727881795772883994682349487430439222996881299250370230623741045237524100541367423479489826497681734347969483628875585755406978629588751304000064083809960165728471416802824971032401108844078128953289805417832079643325749175034399035197527016893908504102121644312189414369797114775339340533130420179215659026251661842636602170227948677702516013170141137184181630584160694500817270294302017419105094313809047150567337940235381761153913199158319167782382153125690768450339502324958245952777189856605775719511455949221563774360011295578023137417056706478382044248890717507564142051039769367442052990294582237506225754699431217749976766802020294797526240520138130878586375656701060692153066035839714259675048855178363742248591839010649328450772729940587819154887547016884119607712318376156383331823130455640221015988933702601162713784373827722301275952527528731473703996753698870118064342488962626885739276830740945731322199808724487769182309010424490260202494860894610631412032665321741946359824771102707619531751300977343932648656556190826027706602906329110710409129297510824990577047020016723751348816375804684511584728194186082180439439804690654628733445481771141475430006981895810892863907357587945640522419261761894250039301216358642317080908739917157599746452297527403922087848155055496631911555406838645339473654116233629010005109393263454832772472889990471343521546654838009867028155460627802599505141032818140135472037949243886450469235007316986237952400996433558833769504383990447259394841934302127962534262418577852968585419228907118452407984066996413738009134393482462026435238396148791335422917816076762166887820957347586575017411141231828934727413235330169500746924914580761638625676391793674873746141146510480533717123657939193598921945235436177817219452523461352457561965718121149295494772107503935986244590614761921104468601437481815310354395718277225664453710115562021775320094400231093353057759339071861253717267419065143816856432547890703625051649504420999953625053151790029888962390424867455188290233619732286844867249299967114241935626431070325917981460417538843542249019452704433362641989639935898074145798422579638583807541865326797512054053929962156937359897399627342018034843067386301876148610690561919197169249542552185394593472570748059032472380289331542114814150995120631138506088302591633612710872317942237875748867920722734953691451599152024704347715827416638646407947613050253024552342617683964743833679259361782238983328861005496139466930529089847185952971595211892248715402389927437333008111937034090369332086483907332947678220771303002575915489107783818814732076650736741227859658986059818351712500285786057537622751314263276300668072030499439150487841587828855221324401656191969592482340246398908263388197606667169442373623245290321935997748491003220375963399413879306287819347967333292278736681324602053884224819911870471801448883096836973123903212379872633597471946847934860572460166137379240721743535642668117230077637097930473680429364121669650660893373212128019081546650536580600199352070409854652086121830857426697496309198872552647120352478030866519694700844507784633234211574124576380832480909622450514432008225747144600369172042638724792888974626173204132253801478172404364174623269263909178893692422380710640170170297977502547790210780988454183580865258531444331922326952426527097297125209028099915610003206088718889684622555599779184876918699040937472455159864846931959882739192553375477643012967474835668906996136619310011712067942303324657230104571775793480381171613171930429266881971679320755936429061563039840435369132977371314555651601636398684722929222482417373043120506436588361115766181056280160979666267629105650511392240579738221368754020341669860366249878322181561005633812320354856535372610686155720286501447089444407216865466855839746980170020936545239991250564118044999849639688665865801027286530711778103944209394506685168355555462296404810374556692901364862133558446614144835391162051230440702744625416714261098978539261728745512821019146966744150984609220180991195054795706754416864336604389843598748831627012269570325884129766336836031490028762844329338806745635889448948887217607643584460552304548847643441890361695069434815851329531104689719570534475074873436562761625037436645103163515530555430949449582739390342056088642799041367573988674981596469635497779488778769655906378489916038467489451545421602222860683120329767224612354252380717888070633902648409490643060873573490300414098277316889147522912660119055059374155723695605138141829284281452853140435823865847065040580701313824377052300677620090199110980747292031664716513924813700791530902468463048135348728967441317107763448155327191538027349249316895284466096535277264418185253363084954746673328612061475585528549931505955525248362228592906737120120466334574617996016538447703423987100509018596215147081615685184040158234221289714068593809051805679276398187268100687601666445258672694289859133921644261431071553668780961811280485065609522526101079291088286245102221983775272354298350757580155027617147711413369324218802410202200226789284694409157173949636738385848815514000763705501071513140587566447730080644677155380822034081365696170262132774489400517687806213486993500120304925144132754764801666366328283472110423767229465755531176320984903130974213136760869201754519297429102171491097309456657052536040147594598093038297268188048370194240274986702654454194787250534191537598288454205384220439459864271346685561362852757592277890372371276599425451062108151196588939319971325442234451646699179272926005803202196874853749455179776317169738371631322710448576920329241234927722398319068969845072594142084120070650432640591985463314267075886216353589605095521491489773183769962621617644685789433222242611957085512867162254743351782871930807827115218658535216753340318667590598944255720866160841823971990318074674973846310379888368571602800017325517926585985528180340807769209786288263054001308736130256399871189903222604059450404512932609242183313846519359115117516578451223332097464588676675462958974981619563969185903870950481994891456433153328307266111746127981307182857601812240257076153835547835998268630211660207529323724277989709920480718916178325065778741718267834097008976693573235962742027667551400921550059391914917361788784906101926236106921791696140700569928186594528786402896153966872962684371846479480054702108255880437017384966380007489276035941107069337227697666676308435084899175663236434153842179015123267797559833957737622180417104710343245425046385974646918282297117975647981569870037369135768971403995175585358127253916389163387539473491289920694844448230685270021361482888277299067250245539783861313444408042634743134948313483634836128229309261408117183225580018708339179974860683408297219204736840319665260812143930898838064836620662729224216235828180476832137056460312124692401243832319404121021783011830836610291312022416855813044519582435752517309262638218256290339959745998439542304532132249048327245549130957517755205931808478301115513600581285438999664649950015222265373539554878735301480149120601034904306548935711270500423687996122909872612636681351744861183871082707577930004175274133950409398174480135026140136519397490534557282075453449925471817078695278366882237934556440119608295544352469414647886143465434458395363139158287183204856267762822406962810418029678591715710802848425569756885273552563839582637405280237771207361235910599746602439550761810084723835576338177250594332900607082334521479469215271645158464163168604269585996143191553021279534534440748446661064895080578204526164210750036320310497162415458002739825272889502529158793311052377456634585794077775159553449369813126832291082296996261402178636784196344439136595740372403586369936180373052360282617557067129613658723290598656444292596197706729451346317906690817625056066425416942016450006947762295290941163991699169210040706010297862085520094727987662447567867170642194112020305487485959459467052089799573096832309816833559232039421725415611670570809833954054319722976157967677448163764766278522368329148552626966604716924032926278376911737367340909714032290147407853062180106014868099434259128929641881500128794619302450325108326969376632709191625655000691032185690878911145473258330594004813530245534019354977201194700601060545768027940414304614489605942918890082263433326228457293708516840487890380667941432891025819077044951898657718001155329900331193970660097765018305935761220166504927800330497225771409547714921426421426912565648768384822625420845680463911477241438944152161805380533242091957774121139217503837514896360705985727655271185300284608226065681408252829524741176239099468532570924776148771131102644528593346201553411295890146330394830501856425883858492641337426871279998259185968137248384450314899810314535639185150174365133957951317584187188098079569062433971373782459461054431323203608753162015815216028039576515070079444143219565327643347217550242703177973673214699770979380213931734249445939602505659829903453177345463387120217651702036058831341155067122925754509576622942966220671315627332272778367265849437370169097552900057995699858826346728616423579014438717019660402996280290667163413417595141931852409702009696890733776442234304025919002443013272727899538961572203560448676793699608695794825979664400463467016671504485984956349511670915575398327260074583392235723402190881602545033890914876202594095306741651257530501970723821624261526933550516228741608086312993577985462854458011770345772961662185335193350626070332945982209508457567101181734052570263440689087653774281514801405945237103836708209820529146376931586372021151211800492030575994187277101865598775535248904711006068960545009729836041512372199534417171137715772452270158373497571466247707869061867105856208080764877193842723332349228764874110974335511438111694101806972296325629660795560566227645092863522891721340333274355752054663178531562231675908568547599269755054352191270080009979152874177050286712024207777362572849490671152954815584924961114048096522771942117694788520795165387862234629757415853265359352183828042650689211811695138241259469217721308120123264149375173188906295528225415369846009331931572601441780206351243419034792979244478030342314573523270929684086351157608387842226987229988363094715596550869199762242171628302367439319723312584889870376858403551415797141390023753598021461946786326193931432150632639359928764700548870206454838909495963718952331364932243839661210033876712395283195659206110582945685811076134777930213052769865499910474258209552237623269058526738273363105922201203942789786390624200868452470487463338593783675508417095380544483177914086549216022816545003339664143853622163277692814196971845242756863951454173359137132886660590878836591806949171852116648868204178145920041581499236800037632839532854930237433089997899623483013280925963435320734058560608710705316905041077612532017075676013450571780026452937792133705867386240739830479811388878958172594911668970014785353385558993334932694324792813999757242407722054253207160741992051371968920686232565219137127190941641891416790741913723071871695044660378321712489351556957991184584910169643608223952273536362942552549367201883684170704201273854423086786269873164552063016334910022210991113853326311881765651192152947359137279918449360950331137586031973696450959762049543321246726260743332694747080390310049119849054485423297648946378086736820170033703568356355070024669241971472529645718414952683626635277861811280081143359544090246114175678906508358633947183363594838252536120380403851976378853654300830330585659635960584146117950397484173166912129723904472126930587808434749882409607015003236865945206979706136013704754131152853041881106428839041343149062438422978509374822169950011412116103911792509713972760707505884519829158764807514132779154739334178547030837852866888609253759497419512767032720089583430869127441650746847705582611939598333164645067815232908871272581316349743869836146992317696644970912424640662775853661341485294309691165846444806713895622235236665446285615618590865414631868796380347901363746887209700672183299142413450109264603453508355417712308549682431587570503416963702531352855844868030997229726377973633742562939826240238305995353104827718406589409922739367108567153674107092498199642395186135111835476821772779747820956245487110526567632531496774229847822187305686037158615126897706969536908644416037233077959373819950997426036953000223938032336637106962951149899273623159532073245919224588993455931270678880504163887749984599684434839119614173712282956219860904438181981714704180496322178808761145009897440135414523928368402392355578493085331804350095806965208550430813481004005138971463615298563526477490534268840078193993315530467176810533896363603254605937618372234867814169127478227592037547104992001380314540366242485403092213299660056080457494858942609151967325126503677608338534750050216340468570531542918667986620936440415295593327342253968074309847317797952208583006333763477217053460466750580010542373941968169500167907299370412540700150500269457929722202316676403139914294850508566717671728664623093451501920609349063671348772688572255564220554319195692989810238985390281878530200034816410440951630798396552814583523244401649919299899204427188712550119488700238669641760352008869525936663972489244356633643539942232853530907432939130135556257685086211563703818437982501966950139082304316921025018471231084553387809287869703624505367855027070606486983596269718371115358357343126858199209766293763362023747694115178664744320066817794799574119795421499926492321660830192006472598709235398741714713843836037577179885319946656798662543813946269543940724039302087985668603492737827635776945657037164074624354187587910202650330647717998187971508264005156033999837322566911793866291773003403805073523708572745101813589821327228857424443119893204709723294380987410551139532951199950632763519043192777177162592786892294344714118855387386530189793844870806282710088269162666209207104942543916589965281186048837461537458296672946664261315411138034532935833657780078061464608510946514856211716367906542199163134784839409365751951153106200761656875401753587357540733663449279713180349307053131238036376899941147025380069984100499651531941647623326887755010828862570814776528379790555185387097189876131408611801190117131655500395064969447001823745453789440270925326738443446992289554721211225180731666107980645909240734632926622989409535792673207265915745641816750284168676742452954251961935381042099051006873692429856368781909671375609878697171510960076412510817347075002906707254721812252157738921510982837748565517553458330054184527391699862184132393380961311446379906567412738203949862518955019518762424048259569570232520100620174769413975843779819901423474201366124923168065765055530130072413468308941961528551052362150683785959195234302152171108359926836273446467989275898863459181631784749912524239952606534211177180364017158343359513477249639819821929816756516428059794651609670430307186033105390090871653056911672028194492577594673716086943825761256549132572017692285531496589116871566961845573292521179284671568278352636603167116268552110153892314810663124526655028635001514770081010531223924602338985498550726028830272384241946900167648705919494887727708254983577400561823727628765984861811522283319225808883371479354368593556495259006515622230281506678056320386646848901607664819855235576351064943223139682375092044179633228601639182202035806728603214558545779780704687915301744263250244598521357221630706328466106486206447112165225188580333877699888489993510704272386792703537743497221492909572143452425043605063694134825713069757968447761907340785007060053479561942530458520774180064192631499767172752577954815183886714988678089915120917243769708733506962589193406496934229508965927830201715182647209668428919633657290175371298683847423889282149291974195099385411848443004205290526767341065073695559683712728785816334660867549129777940559291254016428598285539329010474935013479176722103868809297351824796666930358846260117028124351784068879010181254145842354682378309293346520380826856198665624339393374912432473688692086008452722730015351710144400919066223952438287135613098512317032487443908663412706374909986662396508232658171739621403898881099603088254773188318000344519478598806873007305956467043752866181798273000514409024902647416963886269672848574963655744070613760681649343668090814597847256350035126615037001805342109645146434766103447371255937419739094850530066200626509937453044280904992505033251251610983874957137100023450088396536889846595926102634492157126366456639974299394973139320911721011865296238973079445031174627654744032984990441261985584520374573478842362397061179942269137099267465718190286133967571144204738595833569759555596190803930205189817107289173067718591267481750508284456611055545692713849694052374503710297519147584214838868595610598592291301044544443457833697026641101464665957140146016534185636571780367625120615817451666291234058178792166155046138891690603867624088473917621852023230324572334577237340093294288059882176182437858610808690979806994967878507143636886238371884353466553926325417118684689498027446704422649209929640379503338458144185726205192113180448984731889373178461989216201588188147546330642132814193563078453181993904234808418145940546687559589738691088776473961545381713946772246305983124863888077133518777578582249983880359646621816995309843008934695643990257520886397103787664248221048288571254169292188434192383828198457138838471262321147252470856273375356761969069471117550031276096853702369277499445515026595028813188309264682538736340524105164343368981344300552887021679085441675332076564021127992160411572819764446053697593845199217783238725927695019868720014068949215349310063729604654153336829846756685976999736193093103629413925786250682832131532421211684183901041955133758645946664441532148435098950282506992219730788237274002190517866361168583721480536769641418527085657392606708160770828719229878438614147398743226556299547949985830065922311970456093013751333146099593617842800543455001019668572327355183589325664856560000630697137226474153652977452138636931437188045872502032987399115877574121343698080611275426281127330254598571905751630964758920616317515975690754668247607196866360921632844473463713268596893736560895992578067476250254429389146373185245298852471668367549861612030242857813771802688684001523114696027001952492025453038575881691236463494834077700193350509513975501398402768531290380087031509097575613986477156003017343942303157229778064133581181461525933528097026275826282554117956128672034728867355141226469463615577368682980985073402204707278927049684422229885138716967050477942013472158883144561314616515761526580304255266083452630446629108013689710848563491978098431475214138708917177257735152227748780706608289747062716104911339842100842443347406136307568140833997604413537231067528602485755344217070681378518163770898743346547932585365979459491208513468859663269959076044892184968513761796576210197867586277200499189574299178422823480559590052203161715639075604623986443859111138637962973157004683950547200551600611127130565232742535121539100212154271637969498835589916422284051271934153118015376837692264610520352052092801786090645731721931017940576147419704256967230269926671227308970586541888135169098380677634421330286054802481661798340120701624209415856906782080525723738713616645685307187465209617848374719005696769707580941256874682639038704363733849570971859211664468423506189918723790727548206892465727916007746691918235165226840195624672511179984610074485165981894508509730953619574153131447782684607642817992207700955833555531488018740786916323593780375065052464928098103251791457078957476998655358208411764926176505908267339203368081202250840001254230341087837550075690079828661023072286733646559403310257086979050067994911289456899752137569677914279278769555790864686994168597267840037321030142186677196468970645131257219309497319925317361485267989308078170302574184493969328149901092458235051779519735045628413041782636149817477215202455881788338192495152922555030239834253313540444978945764523604576921565329804571237195525648779661296587904171671069559567351367269978530493833710871804672499869577283150567171494473694514460878830576412636890436402075579652000726606840863398218908998281201082694767331158348085140222249854654461031395389653863479353971614888379273342087713113175740395818965245277620239897949309164436507172951080008939993713053167177564637440887841413605456261379930728750404173976994204514761412468248821261777663386885260897928436114563967541441775732718770384467905859400208952957997232198524999747908737645534594177526944915638617494094406912131569770401789196788998530658549507253933312473397374212391112316743138937864676596291684529593782049781314528094513265485497673275515451665817697863592640806169677669106188329721940560364343718462065044655862264833699672966434483602018056334625577648249303736042220948598816914578648166135280327861012046224335816757169287964391138125272381618330245545576940363742804202882973418200172602028558180995516079184829886864994594193379733544729653140747668801793648019249062502655399278272668643490780092300120845209501700188077024463100192021546375604767266429402909517266289664467453277818121499449511767490503365170020040464439093680095668148863076186170458245528460230895139938843357848620655867937172016249881076717372781186050764241000263243026756858874209563196283921462387780151811500785099856524439854544781745526099906153127818981041909256991362198398844358004419443107375740404597088611257898006560572099441637663817626072996437173626420714438158956466056394658331114983687124597659018529913213774825704373849907163736735267527810682489290779454588249675358019177314283565363138579180022675626319122467737133293123036858149649917366777357719064337417684127480327691038648514737459376123105388931240094601352273613870841415420224968382824740397183902489024163796980267435390139810632314040518449675929924245688667874372153730595826103418432416908741177407742954133056416689913670596144101109153218808786141410467866176166117374154223840522943899582477823281861857796302558673457165367559069908343025858663171527988476788358866021360201377975820104078852573300494075508440377454830346582866784230604356661507998283552687989731699240641628515068472389917445407217346623550439575944940710447503253242495506524327094463180566497178548839513900599969984820256675057702303445851051479144469891387091722588533349487499128091456472785527965014601928394887110088673147729076169391637295506479059361463600537948409563906312936551604857110153067453254251425023808158794110423123043918950216243576778328870956803146585553599866250354179996045833585971081008737314281802632370969040223434425736119507247445928523626390952268427057673221287718766328780832647375090129230756089324664555507210854755351596033148145339495301607045498764395960739929551160920485441803716428996150655976043955590430550709484569745088629421982331246619483559697286315245985167450323619875672590133120016944535992909605597646675107633914087258226709380891592030768415950166348951371552536150723741690116014312683406863827299678440856548715425871723953041895644050368687812262502167674640828714346396240193971238181152151027643974311046287837882897578942502539730272775543930866689178279116710981161004975418366281676501464620191581663621320413186754223428689816410120582061606928770300898600387133031495107987382685992133313878371694046900000251556389332905376200794722092212987064646236781260923985093085302359436720745839667109571636075691111759814077773393558313110777179941422864243825051042968320217524357151049389447276799044448412988882902805602706031399063144076431329834680688812312136757010880960292585093330123292615584631665792419897194953249836115464315199152848910693856821739020744425145002994245360677263458830219800608001752441870011750035004834674398998610248843419501983180093644781419194208914110695364399748906887765517830424341473329079287195256148522727770594460795953685971883226100633141336745872022464588067336949240249043912738701162564420295437869000578219665029690682991562800190848343319754020907808462350681574695831820545372801330723566944852902628937062813648478523119412664036433843757824306104764762232566274827461364823740213957428566845528908323224392905185544023008231556740626614915639831188182366623413545665521289382689918820970245754927764230594404207147530474164014991175939155772394820237612904037607869867228541441700378351761419297234405252309091955883622655750002862841056308445404124480348298856950579954778531005191444963876252603914378982986244016978943115172325690629632805387169803214146860428736621307803491618841951209982148186325189986640967320719036233758277513460417992191261678137410969956868923024991182932348789923086275124383501724758555205315174046433144827209712053546107183106209971345534218104435965955586086660961897097085085931510342116728117060606688921447573199786533376691869296269647342100771470584388984528799895531044036871366550010545551411972525831528402476677121399052379213035674621164145851892400468552247516646609958822391262940388908683457208637645639033597605113382838250511005328219063619572963746645354116454897320288954764930828220353982389949170917203367134604730683831303390755830270362767789393416341490786524767388096513126783174841955927750536361534251429541256312101330111166651317922198021202476013535344972564546385950579809208806953578699821002671083405246201230616148517309067604892669149224558842678335979327330947003983323477046613055667000236668713940415620508076138750702455230507518243085827074952222021568155382061324522327206747657453058021993449556318014560810655205878598279607955466146803713726596117475290450882032284370633107735638571279158986443349889789405988405135475645997079557519769050341681036477148295541501130106030101322014545704007712154809878685899255734622380170399872114130463231191790954795352277337799571245127777021189802914770297241348928937043773572022130077543013849553725783104303570100005373536692787563951990586224380388477552823550781722416850070850286960238935617750968704882413394297533296336344442753627057761837516157707566437551742474999757349770353327150575672099586307296639151369562487692602961591398682003099220401256582693142382222044226171673200354699180690176417668945823823070764616232410603145959986807011402036030874155335678519177463612121341071829126928123130694777953968810973349735625090166515288424744175082955269020434968376886300663623087807557601232856658936427409579681495990078423975868127392180128465999486064311671644347941386418723145699119837670600570065396579636163126791970854170269913742677693255609034968691284532907297335144244684706811203029443716827044565965699207907303443346196481392691932234576457987787797321502252631059040270699244333067091804233031884863243087760685895638998270304244363015715871452277312467152441185084149389845416219578252148888395457144487975097178069080412194729777567210556380941209353510860488294053084860555329311431418634310886914121847425966831098092023378176144475803416226103036913870520249775162554566571564531535642520676556210462741370252821664856853336731611859924737629914123007516816258854668672597202545735957791833774709065497047361876202379962460235190990168649837306170345041039516830565661205781666812747023033216989185480738937619680471740361676538529570642532047131594845280285087610415530812522700008691531939210295421361256366010374145691707768327235018120532916251984069558446554390811494063572588066826605741112908811945164053297953549339013632599372124303824348934074881905735598277180681159311497183892534642487825250513031380916200632887334030099327181528770159744525425292753413350345440558476377603814198367782655172761185662640080950150395987823764904146479291569941401546979922755840638401459903786271282623408219099800488673164231633431425720943119171167580962563725244481647960588797018336562816268575191831212865651567183362495455950354608669452624607205044898627818180908946585794095896166856459940519338144352826771531096602309553799244693852693929645235054611546587898585518093918392076153152353431005174104655210814873540944242290945124142255003350560655456614993210358119809330963266155687205203761207207072902690204544203129712985029911992031417923039211326968724379084220809464672716242638428082393936657461345395387693024792754949134756668029095767304961160195782368087278099683443485611357496255801791091748457869299779229500556172774280215507785650399888362618269603596320627079841890891194870128173363360805961352328328694914654310336168014998426267688815846214044492826829079516776640876715719598847983710206097418015869926634209433833176845349853109391689518485697083707010982780937464384414561410081322434089117923644577930158592851704449159236444032707906912537705809683143226014521275475226316900398484012780139739345864329481564707614041913196788321539020765376896065744048133674955760874682467359127564939947113192675295903380048874112168751569683648826760646888638740703306276001366408343794460433882755620976065167213113365606397013281909149814299440740057365356476784193598521960255432027834187380307906433658181635450213298529583850238465155795619901997950079055587073442764565882457655948617771908856215311319335567095869937738430632630132950607489469319895933781372710452298472308385251395766108602617668697001222646235038887575722171144958925596599426084192370542509632348427488741399897093734145788275128828800839896027966502914264287006664642414306360122757647420078601100843423203366845546412382101996563505697672438775709138017763571791757867153802944853440829032769917810989591638781233899008460755178586515458033186312890759212716068819547977438230146118058550559552923546694370952983459221480309556832272563938600590019722677287682722499873299199443887677086459515815151045252748309206814660124773659730221111112552034025496507368812421431031443343100155402087468289356580137173273323558090844252085411163204482137353459672509575346701089644339946821824988595827463256354392899018310361110192743628061472101987318005066480376582696612995699195486650237930498355765743394604816450149889511824303510933659577299700931226350903132576983388112094407734496061039745073087587839028555982565853074112248478260413047889106326730099311160446337129831917158023785417409575796432575869384716349777686878137877750531681876634395550334833571111300373928828757823652887425294756834851942569463004404812390854139326211332828832575168580657053621148917355679302613769944937171471897335294224976543835468635069779722773899933990074572812540438566132106634043061003626961608688205939446843193126177036651236857337449752549025192123542060325151122069589673885952242655498121259239899180894130703488711217480035099085769280977187485167449709914502716385411786835441412387764585381411860638191925941391276749293241404263644055883140039588292308673242678505314473298639092332989556971085638282057200120594027130065451097415323038992164830460567875701758467248053248143040064099791704439349411957390477847368623925820462207891935571949610551440870101364678794641524042764055911392015986434044407238440863871024452872809152771340911293592951786574384139661607765628954591930744020557835563588177891609146904022583504991562808052936155248066861180998025345162092051704777658076295719872457769254293184433000649037995093810877245595997809545627552096249616080422826448338320887706313599675150304524004240847539876449910479051730232739658954791831915631290197835885659667444611187972847835427686397894588590038035449789475117958904521074999749999725503885135678761823218527847576400915679669862695023951753461946204927688898716892927203295066268656195548933755176993605818520295760514700188900376170147334967547016150523519607949067343672640121916349179897620724796073239575361904408371504381719841476661148842112665614617566147196746556237050639737792007765266034090312094706670888935151227120577007118913539250719696678335855055428381946350774018113883543972429622672906570374504125604932644093653864430205448760328270694613678203218010819004796969005911581618142934756872779969781342234133976119924121853477196864565622908413668378364372209005006707690201771068491906080249842171788832867632352049020731823299802525696050185754497017852619569603562782517313612589842981587796520845580902323777573321462945285361686019325604217698627581881616434653446027707231606115446103975195291371016647773690188758400007388327209987747320509417858334625696904086936532651175479097142249724085697749427111062257850414393602313821434029948844275372269881048982730496338720664984845253652051281998894747850532966427628591506862329993086503301018880062107053508805252964819127357766202494747833552441446124319875065311144371319024625976259898233255792617634017088789477501321621613758640971375801969453245612698783088553638196110432237008772090936934269571898748487164057333515242071199545188622250412909012482902630012163162900954314210578676785576047195131345288196043118454524786104610841241586545991462620879648907794125262507837842176913723775084950436039848669544559067711335328537459490739991810903333145746371309407577098405420983735743003600244348079506276157759915739163603606673675767144480502673934182611099049410492548942112386135628897027643250796315466809458279462744280722299986403436980925726695744142400757138055705721637307453759197182517888443430792639741398610300912989224688835973466396476058892197427578229369349893498176371016355305737640960873886209718172160518108181562182869456253119286485141412402574832179044783434868633461791684967803528574115509190992247748183388065400253661123267652864753195943091059662557980933885488261226519019049395573764578717042122364307306345053744171897052773301286009848088422794817141619736701418943418744921305295764079976836556863320728546937950248014285973806984047360436618621842626321705228905465879728907462069512637077542353303991899492128212030844784089214409962736915742903247288861136258194526893750043998541676459992580907155196130543913493007554680596763633044315170897962952699794741229086680999997601434194844322647867336292813929662522104172689468698238780027499377060788429813268034135919559648681047302613614302426430994697829697138856442983427422449244540687602889641459656233995639163670424316441346566398289773573531236567980266582593913015978132971399274731687672824383948858680623306694279720203589118330148726004507416328485631991059285899573217989903647804713231912405141071426391358286268285577532348701625279316488865942940732391856135748333666738999040721323650574358690982882504782392061840558290089681713442782825074236184167233270540243547388481446690350830904127152539873105308737980852182564255496543005213203303551690352063163200714564940405780558029142288456050496012251079163844620777179400799522975161049718817814045150369125614957784894845870654575428619216296865610600125218242282539335326124893605488260987753490721225963865663921486655997906728715962951740570817741144640676709257220924697108011170066568054306241433512483822226906371845484052803075835257004294012833022433265777612629748081591374301265864530529256576913347957468536637894457152089671980922912591366024331852541312587471706063851791877451714744614211062801491487910615984094960681327226585749104617784171541141358608253096320757029589410117763358178368085177489662316658876864128208026131692313748138723002421507636578066787679794013952537518398318645792030391328091451901290474803392859016285674537450450240719695958144899479822941453688283043530761398917704341174034698885094541506925963503437884823494888211000658628586996766587155261147213739899144029761754851464705989377825067753372051801430401557696615292246423851280190282098553064422240314873672889753131050063571826889116188972121427611305973885696034946583468428396439819599373729430943968440265498750573126813091401592844931385924485554061128481976913792550990904070650641086583962460084326544647869322419213780171906007738301960454981171668809990353955948284760424125814411950399787936803776126579064442253480659069449074904493329408209237253026263932512260856188264463872251931019023046367414495966484345618779776974273448966744599864134686836596418302931451210739816257376446812050967347104568381514754475949776032996071187458498756176528758116299706087047526874414376604706038892312908643951084452343906337376470556423709854260460239439073788591995758286940302316622878049349200383207876626819677040951819446782133999217428197289810915066303433385135642719276609510178796993216207776701079637829173619049664388966256183078693262954484937628061708434574998611649791954062230586741418130938690701230996135513593222765575669978797838906750280498269406460597490295671774941511153805968568451380685382378059654314942260437606946657988800286018437569149986243834379220746445053440568047487469482942659555403570263456334788062939869533076548405751475520366176724832272150717001599713607500076615984090050122099314883192083535803949134063041849285461935161544050567127751984440149661351848427059017674550429025239041327258356091860897919899733340082089337086662246004300238009770208659509071596288510753103649152746179756619721626528898662561157369675248488732208678506906360428122037874005855350241726096337711499346415962172604571236084081994398208851176035680862923856416765239279967331370637335403553771394754006878047612602952310187997266784681030085483931088350738062416226791707167602723256424328481672016585166606377346381384499219424131900298251275185757806005594426919625252354251204744175584470132166901918890638013023898862477525811788371367797119361175935994213193619356331380906335954604064460082896770587388513708696391157712520261280773377507069608234012411932177381103198600602817078975560247916099830877538028847009789436163628537761925614863648755347671421346554988046856674543365019729504368853053276779605586490169470304694604984137704169489165102160381911771029944432645609241149876523586272359028041291834438523877581131606027578994688406360257821790550521551397091512760398963196178069773626487812146975629187672455753326362915532174045857034028752994799216363991103545086566736241294496970977509443845314674818541283929751265722542150760448568446633283941882471601156684604794797588650152050692843839409335209632745357990681747075020250748246925130499903749187838446346351424968446002655971398877990661304208391964367696569851449293214828436270079011896055491510479442516452898169955258083297913382603031576320435063066117466701802203184854389848803069305552265555099259220757697345657147877831182323837035722535708761312792533537097522039744293508856960620488374948995716798649981774537960617658472296403122164669812679931828387083550363082904822050069131011919830382105199147740639809801506118340506055398657404067252988050584808791776895547344892331478876698971837509826047297351385945240275784605582928868839611980084303182952492651245143032519073854722568550753905031828261447958626789788999844437202415796472220653010402328925838619425207830526661473851366926504309395199422112435537182050053772921757091586787454582740867560082102255063691724628884564525837400139449538372425012306266125311547004849410717289143771009577243566805564365138629957472251307076287171710281765627418208472007528926978945475494875774191423010741190833303113039565532529799679826907408467237869355400312218136239699852649795467738691996408262625533109100517406460286784999641133415109683631862961293409807092873407147360529406133713551110761440117361566949598648839690532866409710503259850654622301990622527479103662323116323458795945667617531790420167491603630522550665996523514458126633261409622566448928386414657183653136022313119001351365507896125936156881343849719551461623706023580028862424706790254520246480807965764056242618776070294024548160727018432797108289863355237403473385471052866503226460387727475035000455308936048456198931625530731246240515473506374217061794350335769451583946003670670047136231015490224677978630765531205292362007883061482244378472388322051500356463024778126806554589342481757502431125072923787404195781141434969779617031446395473292860849502924570571015279546509148362856329097324842136395753262435002527585047494002006940363864028955591940139905273180322854091259780348577970638087847139999721826376341543972079051894043632929849730121035758914274517551122497922959324686964479046741588780080529762181927626278695054690042470848709598354570120146283738430459955486132892559757667781406379836636874648152570737268358093982892100145536362075937548874706850790362336989508428204276541169415634861282335816563539227267758945918829069005261509473057941257288634771600572340119117240419888506694094612932926620227074791890045048401994102749230682177981902374251503352561942132416328733380590025546953156532157975733988976783194282940234827993788537646569860046183869384733944495750165581167836883046242717233323168253066371691693820065825350517700137459629334054516775807391772787935940006208944730843847599327418872316404085703760287728743825231946441374491912134169531517914476610768304766005459278035021593996810023088543736704960341533821873238474791495343867481209139531321044165693250418435446923642944977934733341508553030858352528380993768366192977114066430089361602084851967821447438959636809845745291118719361897524546127868108970866996490477022310050421723301001349497708649045527310277173631977544743774623740770356266965025068268086904268524417574113263178726729430916030929371745616250786193505490739017939200992365995403373176058806504602574087145043425527791833044126234639098296945401745982789942398047791714239105501430178749763403484121822876429779205325121433544332199590848214302442081268465708871841078059472521919132959777694137091610572412100228910528088679445806605775482757065096500723043592130922696995817535893312507079866163408126174307826104340854161679178658509446474215106713599169189384109140393372125547467478704926815031878524766374149268529550243821858001236406939083666203531664407602979857194517816381391758554074829908356782843390146123578515735220001193848053279185177017415503643889043526107003824386878823313162984234068601571504600389293329733363108631814425362986863118670025288190298852694231434261228960390854223616029749043244919328319324677442795739453173459579080343009760946728396480384024545799579929187588517871313313119750542497845937003399073891388722579119465445769007927979742052657839838458488776562178640988747929099972121755498451109067770815103005376651550984264400953652800457122510192329498659771460029047886689556823637037004588003981987748205203024640626658705333912839560371381872701109047314144197232006205252915456512730021878079009381892619657577941424268762010754821179622475278495466148511896028267734426123131588786145929024075522923833157839919665452940431221118044081433422700577539793669454230706639402408666429878365178153978275652040316414307781700586750471360789217609165288072191874351447340564906842334925663753629623439845853664411833023348272916779252055967771180433405189541335082671828904263691433609963165093510691100662954038040771261974183297495154558914883421007269426200552997911589596709009151369805722305451465419889872518904359212598607248376773067324293445379874599204505334146847624689141666345388252806298333124555635774997029821543922975001714745937973939576827456155765204307948432696601265613250961000367121991959878726078869702383001309678615866750979971131991686788497263565164125741871472672900663487107829189945437998325382602910356269319098211696084591832074252894967447563182098441540085945289947213492016458021793631846911575477556493447218680378380177141004132907427040990976122421957357448156893167969104331874047366570721770212294629739510879756852936813273889336993715754945260647510371833828775932186351121370461843614829222169342172991370484882667438997112422785840668272586766549357936030709909587691571082100445444334340358987805891371083092706006930865400875447418322105542009927570881333826287353234375169744160842237080366879404547896949274775104111998838651524603312855285092745302414071907532117493528168557763445583915043360039555355251117450236381287162122192460958509448018125928172329426602340182256671812145429655999879358142046426660985394232604822723463787371656373205784282469424325737700640244896168673650471643346985022375509970697375575272678939190582869051487464026101148206057834810638124250414340355447439411208409267187259277064693237858367824109461295894570584473472426760833807636006947592096000382764633372416342488568861112416442613666945793105325591479620116206532515523055232638399526333931789934086492219286815866281758428508242000280075783601586503925823073889171820689287391574881573196100474657843482485688342288913888228209283348897358756968374842680235728086637766458315003788976323374033773391202361770260690853755166564950189194638219422492910003282579690608369464527574286658613799100416510219878893986052402249901667036740486231533251979721671937623081932619770796494105710536421350263168710244863564550301635639937287413991953277677461022214247014496657103077113020598281471850944372251522272444050054297363693243223639264743117261684742421646790621670932541560546065310180899245452982854867477115266435873778612313268464341769481439382203962549169295743735352317546636336826783621336267078379985187219363560924718014709004956157018116125285672001379363290117532306455512796095091246114172867224353317269667467241802519019569478052653673770474598118578096015393439295424532447769664784985271890359519514065159377802826315623291529671879368455334895303553739300985905335644715096003261367757410023888855581380878061631779760027573142686194025437103034005319262264649004248075898109376249419779928321796837235621974183340075506424781873456434031211133965628548972440036671368360022735889280442129902107886560190368396489659724413135121381408656758681437583080973329689051719745209589077855630161150317653539594009101458887513351335519026811467180968801511390208524118597589926848183861447413607399273104860816786643051706641752472201883929723311206828480556927461812167844457920694667129231220659840671298913568230708956087615092907253152734646556394417982548893440136037621822045099720475808996319025812051541596573896231574921448579971927669406331418569432228538421932374903339985349186077212763806874531010785696281295103975601690745158388244444635919311738891628369061760421282358092325055869287230394426774414755974259313084667124609752041948224314443677970162670215962157684181116086559393240111884518895247110867656847910544577287486153804777658961585054269471862460512364874709452278131270547579511488404754545633369574419749595141552397586492427270661506534312176020469027545945274931825463614813158379565369649961685412799535120278783333984172348809436774812122514017967169384384937653062444207751462101766029421281945241759312658777991214999566443823553944244062640886872599158415123480700394157702359878913693443787568686540710281496310593816025603703037910593618997240677931195300229518612120155887712602427738733096540797754098643287446296088014631158692204239872251518120731540604215296541047015315278388462137477771146651557347972522873478228130737597556193341192686627445935680120996292122979772718001599759651998673189369338298259441709688722294627704945745097154854386764951879568571282880119670995301289005103604140009219077998937662719160975207572954345024376302853011448573668016089361807154285023708110481645089459800977548469341351515155663881649237543582814723527572300628078868240652401486154584819216680007907076249475699105815096319606689931850781390058217994651064631858523807113589933482234240778665670004840118919836754702879776259800284349522947468883593824336042007495285264275427423128816136301439966285646471748892097023311695141872490220648801708206039703246479632942702830375553542747867096644937378757441445738503104394285686297610850692733365722184624226705856911772472986072774927224036330787354822174453721740814513309336122166427427546777172295741107025527843935609391027510419503602903148490540082696418241503863049981234379371493708275137779755122232152106513345759829843723696809438514067949794175700514612440578417045553894843195283107443676459283907733201332604696504017844603717308350254312338149232315628501252534253550902292092200580791815361466633604749852442611274783136042914387444927848737900360266276816032142815882376552782233607429156051746219737558981477373676675564083512584796226229941336526338916862530674502859677949123903083901075633997965296429992672882921863958992085068884630045035453482784367538915999654904196361922497563531644589710883578482788872281695408318801665022506019406027486273557487423411445235607548372534667634691155290064793755637524222310799866229788629165819557601129649535913600204715265582798491104273184040517234882578674517072956083988775923717288101097241751229478732261099003114711414863316607672910713630665152667349036816605108274682102052817848272997371892184763077994870907826007279807453613865616972379236098539963377615565840848007824101491142957283546552908452537274055158963074144675650738424061126638164460142347951043997822758950889078396184604037951753782529708500789075709605681559595714639023361011733306313091026338555814725788321997099479924100917576923490828186700556712580014191530520596926938679743247831189107704056370390004143022516930277972801037756846470619941721118528340876578270296275452352092374196155671692601810858324441996550935124200342407289191604064276660776948700121994542577301188727710649276029670793132710933513334845387530057992714594516684222029143547312771079695266687043153211722112565219047637606622392281229504772782364251164601111644922283108885968285992232025986080177245164587238225387794253990663891602196938067662733558952653057799707321325739007668662947564298853148487758348249977806887444038902345214520236742590051527988845838062297085292077920907746732216543513361603194315580669313121674678091755806894956629973877795809644255250881560332951950447488424939196694118899614557444001446513096131505870451329242209039836036516847204848899734998966722407810211399451826497595932600241331085545084370145532809429336298312246078863082245105099962503525343662141670631461195990776036032916307805759279010262266160860766260384198179343929555118532139329644605377009852150056346878415981703869651802758428472120725382486382043992819812968224247203828536004230512896465388210970450440411002318055713443745436385817253823596653762421427071222738484256624450478342495512042982786882657360843108369617789255686904385576897428962963794968239433685642289311112980671318548010227109294098762923242502382847057329512062380444176949264541841367556978999426090292769228435279670451161237046709766947698139222495274737151035464773224081554030038039156287798590732005233932981496967063028228710028526517588899315984309702013327409303537628026713040217054811080737448739563309859494283678460247115680024048091071587518728383181300855407985971899936042741292861638111947963526247667052699771712730326899914284315110127843317585693507342641303987809677447831602480591140220953258222441733283480653534777546936726070197225131306566655387687484087868825776433894210219502081817605724183828940932906910757506566816354648199515354674887830729795291460993076742473941226597605937495086624443053126299638659103762051412446323283552711606702125886725358855500241325452043763358384339383310880444286446339239925913226649023634523078151334666487092127371125422742280343126265698871142010540624902077088382060401796305249792226672705542552915354529730900219209188042771398661076729176398123875489004430505499707905670115740896419021579666563071339391274750388415712478168205689100668317339868865230771539034618933225075755648671032637933107526266441700266469210408518361635315182879621235618565612612793866309285226087088027988323836005785807375445321923861642278729992896716685387724634242587417472531979674144170093209152558787360923974578957127128236736439598931065031446903060343332415749587547981085166148703275972340700074053046482709871650819003623560298338062851024061672373028359511866245083496539105810018822746503109111665321763812685610121523006400288801201765555002460995145869842592490215349862191992524125808400946409423081952345826579460910822718770097507273276199471245313662064315237417724299320715855190303648309177161524694542195104334507174547848484746257687573582401737574220959994340435219379324531161014969507814116677964547993438461814667552346880492554085728845142599545799744702529555464083455299044676747521027721433161027423989145871846539337370433520566212716939175464772009451418039005763788789362640076778080822569493442931545946295792629670232199802479908290668355396498416676704866221420996090995497747166385562843812638303176464018893481444547115955677136309377862800446781733074944744937542692189849859379992464771860425037232811757389216128351541320704923079576231845638060919633441540147641193352003430417273773128281955389244743775653016141751672206607315516430706266536801180977578901598136451542053984172004540731605139673586127570548578619588682182521820957719860088093814545328674074913096598790470044436334515999911731476824994128716924442282640841894895491045131399845060137777545308240094339980004111111755728652969026704162419520511887724776832328462962452313494579120738044150960962555292358542389809056353130837113788443800568429728723888240042716982963792713834333456111633892635238658850184415095659262689094294431477578937400422005671549692633697224114513958208976832795156728927143358993369971603083646794954384880758960370442997509567235684546747221798325899471833041753341699950146661820351223175625743683145148192851266475457811027496766879012514249740520082868306647569232497296900558267319987046911611299570130120009679111665986064378428662986469425877619646122473473117753011881604655250976737522437291223916307826110718813125096380303785881537370412525545353773600977381248618403928989545405135212143311474037050805325517105456020713364345218452577977004480356780598386505708792633599660844101339084519845440501175170594338891398764169120002114715309561240149065732467936674479173036759518055614027303975653532678204853921008995512281009635375827009593131125143397281202191579792297102703888928337881055124305230936076625270881401437520263195108437407746362740095892542046899556188471037268995863266377715863308193638882278834991627501985044820412011162623142142677559866100248830598341602659720859205885935424904136857619587138913005851961731775123885097192356953215368424901938707333865948185274450607013859927650912792554370445280179411705327399014053371687337975252220493082931746387926761938303797998903658011685155097011486639352728354874141143329490712395855424714901577972126791520569349174520965972536102374292034905073736901347892702028804179787862927599431111633368933027954748009311479778097817012120510361882616455926547965835007711188117405773125230913071611527495254860996642878343084621940925183656994464172478421090475979990934494656222296331197438479074031387896349260264708987315246184297610491626578265325738689470711183102883327303759238573031602697213882672003806431475465292844844018349155207166591440731373980270312316915996985522505110151103650782985952386965932848080197918666595874089504340188137039608075331516565429776810588778637209914554007172152679964114115573283987068585512427626915553997893128865812457499273433506511401258864490641800236549715003246246675395399388036379803574946497097557347749327116609618392231704920423352652961060211058304744083466721394322477167163247936853023818600444414842277489320454451368195885656845378624887640097405249953601212213771270611711502657567330828415781111179917154164600692094191747201092501292823809976616661117843738515024912839049667236433194712520601908459551484492779473574634493841767691769577026197780267682646519220973667127766887912588434203114593997516033421416758454422044252269445987412681667809959331815978984958062459107319119881093164047663103214413341953792145793453012565399796285298818028952793521033638712121860926962571429588528384856957869381346827612235120397883853107187420720998788697685493203880448696350272472184592747457776389738735108659027113425731581629101018828632174311304583494106365310181227233412854949589430829519088090037578807886227245309241284780899269975012009367677751278870624238554165691024740607464253846957254786060022609109106454618273581121419304108160919974616867647735467954535936198934192975968020252064354469327620309197359113854184675459602137100415639528460916565126932322952076650314340253582875919643823803333358146498853420679343187761654349890162295324277086295375597048954666191483523421427137760525061049047121142121127758262792177208587886286493656946158826513500398428696201011639433521131938056178982505854563492421237259817667115917001055418033843290189019272468957006227264970429433870789596139599640636815356022327225081833610308244592256915588034056881282247603818784145051297123891805271374030640458704317638370608508258249179271512224637907711994305918868513029987454304375091600943573669400583771535479343684565806893649698924962103184053543290456653796019324620466076837516677248949744022000501681038750359106666122683820157288454955788714559262211857565659163247355764163949769481035264926472255356424756502169086523643028022099434544547018979318467880655481755011591625003771881105221175319165077787400464336508202033355855224093001754754058647358121247591099695031910973417922634070286978551700561155518074390027904069342360728995545040446007361524922214720994103944305520005013014653493817403191068257392095997458976474271873542670985327910676749850485915997951474441713954093821589726326009531073298666812381275444004635761617441074983206755747725775412161202231279169115900579180807013269504501332106101993778055318045121519989796044329531931519986869816443390736004148134125730786603568017519220739232241602173443141403035209487437066703801272588865851672095833809416377725327583567552595805180610315211388286365067746923203683216390819577169277722720938938814079512927962233011942007692789377052419097173841656193937114136108734099200691625252413892315460521533052337243417254226611768968133591077678901946222937634434541688356616333291411191318339662487286827405967527419778322011928374842555600122315348996343798705925609429736095444432439971469951106199274222817226973220609361681804305907175310179763202223392579016015324941500503589058645421330746033899825606332670509559780528106683881064127311789089378980411295266088471131713145873852435853564385707838269862098509208038546275523296928846556811015659644622553255819916912770886414385075109576449012472636569075461788829594473977549079090846508380903559873290290235971021602548910363530085651817499062336993460508696125076073293227934484896544664247850589124138638800578786578144022823492399969631853499433306582284882341719347312488795297508864335084695852392923131191666124623967817707324594896826993595335319513479369328829088095940641800485959740954327788680675156303263496394909008399224882661359081869962627146242077083682555334591174488185212997478114404494383214257160910330621538934126812463079715156186310720653019218366859773473685066342699123656705795818591359129882380731609217129290071396400273923859023973203666559420274928830393790237930222354489442183976693544283319867269260728777207546430914253387144761207233406983604803218403958046405010955374284354677729760994652552448354876628301088459231646401226054443374346321422083178472357420504890373977527599524010808920443911931001348630304445931023658069232778421294964047773345266278808135769260482003962762885524310234028884866478399432847469159274214359523341141114249541170939874514404065870854016710408135230814024668516405702030261086110596798962465637758174816788193498710128203711606374323204117923963540139582141716525600412434260641251387631090021362814902300590523348154030719817349455639285419848253444360524484506102340394658662832470322315862338558143132859378355942777073838349303348341069846879015036080718368833993960916994487027372854960922276741234830178574481289396429595939352968963044617587670759478770048831465323203682950695385839059417450838945091863514783563376546411814498885937332833261724887299452643712484103603557226975757044373943390312338025057521184468827161488338285759900468506183495292814840298557113417645316632901622665261802661473872160422433049965967440198003198787185723471067433916607457150910574898298673736663363473255749454400292365249378300186453166622532964230045471894306507225161135530907336070464270146255048603791232169629887065561521617903507595875619344696575621837318189575438886643973643450304127060576727810667964019617319176974877461406158282588456950187011760254432489794982346260023227826959437728148258876998595804757249894640079889952307586921612508862642366184994989283032679048754843199982285863097980883212042469601793518470424145427695336557860384271309026855816933847922048586052584148027175920328904681493222697938246691870640796215387772022599366944109733453844374343219939030821024780484954309876679165440163238990609491838237172204229087771693789646925906177393303425847037179848728123762683483267594438161240654903704981164390835484598482509491729569683084873925201632914499473370483586895633423813229797292106078076604621896321726809347519975586469886609363216548520393196546609946296134364779038243258609304046281039529881375260722623820093201288264644064042183102002974520845347999365827916514220722020548455390492681795070159088181514812964702214514259747713038331012405271191213250174064559137704776662381898464574769528946576940950457978682896990223524250503881598034587638709413625173471420424516668441886478108664371979922667588645282771368839615330205808694016825583995939970600287236040717060138033821901009600429154922178179509919013222392313541902155095499018319421328176180509701066618093649823590128043154926200223058266340128475136678508441560487614412469247498980420036542552188648786268464790804346728186690984493565616448172310127994996493921116391563483319083007984203906667593445459605814921761202991551049811634153749661919312677199639276947778697583770400853115514286393072413244137298025389578654108074966108871263158495405722426502702378277350412053762535192702299539528950394303052863440251378080256615251046326177285001218429550170741906051800725434764132521413457038066187668101400549221746259097554806629382288899283715226643602977480621170284863743844721112424913201843517709145438072670154752184424736309198054748986693912109494869452709823040580168939057922363665968618692401081472187960989268907614045964957447539922653998015122438584434124570282947946102431555479141243812373597197070667363237491479000794893863496041748171243057719308769114504308151113638684623455555442182899068501988655171180147995247863904935742455631249573506935992287161481933116476110338224748159231840334794736133322753404284841439748495821304369822347103200152932266578246182690466700061827272811840268907178579811189733966548624338855962383843115330767263483431756564938888720547661009382759225173256234415069117011410932410992990190857944817002130787626315943933898357060579612303975900968996792502784663040852175337808286337386305338305488554467353220444633472810366606785425982767479441461382275375787990148328387666766162039627104994987911650589697630686714097855035853817588966157747772728350108467222204708360935828643606619752764507432362255445954070806661578405396749611102996262010457589955640612131479288233501146312860343993905580390367982569798013576233666913601156582848051254314276084497886707307719035339631782081826142012228665482889823371695054066601779543202891623279385058254807837195875456838585778863512690581544212242412261111747911353634472848072903350378412744357798015044622996690554077055298642820369108427063798810729335966090762723199724699277505882017312344074783812765450869360476494551607495683416531542502320185000153979868201035745964023615553324142250834756455972333163346816695114194945711962492563610614583443316096374494950184715348904569682905431528791118340957862988968775088265060866369464062424350676197850035820895369042190206172110502108403366372457224374063649457091834269531472950187199288853321943738967695390069858731816535824640256318593739178082148976492012226193126302692016884423022511143966841681822406098162719619066714062035026497574242688571410015704470104108959546275745775653562799627874383491416157184375580367486742023485998559918161147157015084191143535014993223013666360193933423694675919690749356760401486110354672992327026711846485496989689935228954023851123986288523695654025007507642004563221246726235615245060800685291141722043301076042142011643814966121950358411121823377629268904651171910292035406946978304359647995746969990838193861017163426286126715648491372417221647870460696887431354124020599025327390503037333039135553032093286540514931515507486823895999358964709911170560366939533463992225036496048919656286310828803658169196600161230401634499656697762415223506493114974492709284898830287168321979522009047272415230569056940538993488561040526070683196431954146755375892832735395193417998785750444679081837848896292017286028021627293134287038956229087019019005286705851385385082511985861801185541897382381345819186206332016664588743071631718516420014570655699763810842592899722174984182222858686036145059700076239865469644557078421770047344848711786344512450020149607482154592235679233799186443922948865774638738285569361928035533707486805080160699578269676910078607072168287637710734819101999789624471748914879415009806600695350473244165647554715820315270355293515834917453951413499569543186341321982787527994419021946326957586712986380378713650199308788782359342513263949104939407180431861382964633344187926735051229296672656772812483627464054440084925540336236353979726806715985607189438697102796284597297263230934813180271923243122220655123043846740478123715261850007212456018363899720023921992933566606572001968615946076299759605307510490706508380381032260850131523278741073474240264280822661897591331944573650175163368010071495487501859892726201597276060100411852544506861489146117776518436272922796062525094266965600046836998262098918365879574182911772738164397600634614147089127016113386315930601923093649383821132720596254900677385010785083087791672342828124887429489684741400324343521510054720403341658243665047547716790254479110042198742270583727818900849103198923671989866840008866560328746048818557597869587535533824201958304743171627636718147660372297486246951111416231000134398798500185974493391211121769944142987105861024658015391167140310661344795493177213443788444528055699386303805178139405363005043738832324566996777171521548904163073757556644798573082264925610025251143046778941933681805110233209797791150053355681682664850956238923361472693807032394083883882438887020733861121544307761792512164097399519107721978708219913720503335723388257014682834169333330153029434625774132593675219151902794177620269752070061612371293243491215823693157101742600670398311995237692175898310913105373144278356826961719821275802364253494019031652030254243780298602017883307204656913377314436760117745684757191041356027652096889108508390545672467113603431695314468499348049707565673188839110308897616605409647934934166766743585378428571684467663893172336435015748456431250317379926911373197704401894292887150252307402056184812616444082265054715091271885307819681417853202757281912450245535044136770915025483609423723762517572754324772842839725937940155129023749195846848165325256570135129321469494274912504092587037225813602329251183729426577049888193519038546141499550844427594771851974774902271870581359317324722684556505100420187053129226157242433627483779988868291742846726573578760005904539972696577374800793328178283616287341411816218772669440343539619151729049450955429530049564981446411805131265094453056193120001017616580208437397305953862609934199970789393552309975196925511997828224570290742043195344571385370737097148734657773907961556240424607119284005884828490512446861436096094566454801051269939173110548042413386549271298183625002037360516879077927602226890804910898119100249706511037540433830457859196833092398715667444726998061126363531098138144168901082288067239649766641273405000404650480050848650419411677186861261161339437101571531933682854161135479845709265937209280124472722673673617308973857821147037009999506123750782554721278898919929828223814276014702658709269808568345200281269491307626169019157244053603691027609180962224731792414789747020421209270572086118944009770682401440358001919315973226729801174142333829331985504943092940867353589745885214287597139044310549193868725579326909228416801648460302075876412277014921530391905231215208285087418918814327708707607302177598074109217686253951092608329050719996701029975177154760635532624295235712664778413752524868218742424166326554713121846911664602585342758154089450705640635821191351376470440744027898455634615148070118479512922091995185062004420310638930972065711323503330030035062604077336770186252737642709594869509096295548844182783687691600381473924260733945780530817015143072515365152364791149952917245606749253874825723384967794348686482170767116714998269320271238853797605847359527764490093374972240354273214209380604020686818951041586235277569223706815103496900064582397346132541665893365052989074303126760618006708272145902432642364668727018052005056859697108441929147955621039895339576592800706303436542454535563101562338911591880130721934551210612170588183281520678617624528567305794618794109776819312437316478734566100436014633657351479559091011231321239106343834426958866493365163347943410101512052058070476052582734471143478798078472484127763528223073378697063411052803743734455581684118313318544877861747329351086930722612840212138333763992776947890220719217134759511905110142582507456950156768730525622262965888494631525017036673082959655903771545610517520772322614056455995250574500670632565573185425830530070140257973854947942345950569886305306099743129440735131723080439820314308961191764726597751232918163473922785049173334949078608511431327172861196530415977500161980236592433635601734221610804558029766909248693481213291504921689213091690705430386457349001133126332845024904066184812351248274763654755573091565462381286317639935425823835621597282930583191369709688859170310826500401652634630874208072089408508391533205083176485605416492943064531695034698754430573144324805834215788722542942582749990450645605290394359094218480385934394242363243528653424997844462238651448971598351983927893431192065420582228575129918025141868046577702916733337939397576936395912915251225404865600792787380696319570186012242669080608085723890753309088866241933067872700673841232609119999148350503827686076428409115741755148255668573770227736077414304908492993885901273880391897595432227205711579206363001401985934696799148224090761506706886886224989998303887593948351938473515619878049906017179700433675952238797993385777525437867145949360285338776229202412417035399155265830773295762382527017260648849560514901377367301322997965599745866886515565150530905025202537702213308380304957406984609897406607328925617243156578708035794586531271741955853767710269253857498794202390051263335731596890112465491140658646179595529622527484829539206684292108375435021928330910078622200279096147680230805660896080554089692223574416822630104051549183165055771044396229773578075462746467688836758369686016005608181518981506411681407028251112250646792211867953297650655139501696504542011384841149412875070267044270431752562471012961555009428822654110997372957810236716176114545226930416755216721150541677487579546626200491677907475165092755224871180344330591143407148268935730558918402598625505970175724614925486578311659103929044780018294827297762061416153587648416913836232422970250991267905425496319267698998758528956990799077920356246570989366915850421419164679658947301509333836413051550526223319995297856101651097951091821102420394267692885712908021577389886334997052677257442252662697959167932762703727527983215300134451582682424739153992557504568313788025339473904821224148904755403152538584886345139760592928733319683778099692248186990614506234188401192526164541430845261356622389581778796986989558650376541158488833601117269977770537262660286570978013057720825514414694238729158322720500507489369344104010653998959871566426322128989632162313212140174531431983778475000903482897451069676647019583900663241502090734138575038511514716754378945758898104950888886609659539497562490836099704480000965076753145552246003733280680397324756888419689307941016288638233065609894112102309134335765746195253984643435734487652535402014555111521902072044256024292005612320700453541392001045948937476907762033093410667524783054731307000976104414382753463375206154800066765885008015421027056139345870609360273462864849599565770450049112476113801071450265328677526127417738034883642061554965271178739120623466606449831066772888737016439963088436288908739583810386923760428118405540327021749749904239415184995211428568906384173751197212987828147382735874257011970014663683535968982033391798310388160574736457138762485243690220286557443588804334460797239870644538996105589651488266223499825582769568507868430031410141875098355799614511645560622164423011728966404848488829327490418540732303068143254635972535666722928823636563175278580024484242704139433006570706964707758623472214511519714598941587696946979917041848831064401410815070682263920395348217547017114738642089954916698495936483319361282363864268358132697424157399099358984354920979134062890836648083976982784108191766032455294938276070991172047628921729060085106232750901153638515219529756474711604583783986114217112662953487449229738286368147880349680058393342325405757591080377074746940243884622540134805165639755934288626827512353831410873203170862926964715652467401795753288654089980587843515791930980029867675043945274115444855214607938051969932411114221497314262908628219153908670652512321587707732329515291980340772932582426095113727645622841540342893493396718157274681373711580572159470177560106859917457855906661762254993008707637809005509850232512409558210864713982702326239465074475670329177511762956263661855072990292146073418136816473667642440388940613655833300938708762005436320403225650677162288577430509763663980939345910984432715470710320802871444468825623045745638139630352742352581354507429081819175786199388966837116165185186581096479695379234721652023455040630035439406065820989985827041831322501358188392098833549461664546164682157600599067317008003771876191736016766463262837027760696238245979425097278393944409539211798839003715657839008222581894992366679162175234906942806855010998235553925783233034758625683253791088685342505103975344360872017317089236003864236308013134113236671287666434743872766211858342640214627526075403704827323552469599967489265250317265623420588163635946468314531488231551742422547491006166788215819678759750341602691019294953757843294643511898189079782785108070185416994533663666340127050259046981802869597007361857130969565700027426327287332921264202691254538893064904080897902206658161803302805604484795774855363841752420896857929017160127745319094501345042757177076845866344113420832010658764126333799547944813395405657391598563155376525244406133327184722552042712667688956508159613981150997094840733217237640151076888289064349699346372555478813822940144665285702813868022477367050298809397399075917103141272600226411397040240983706273636156247515477152414405340955625128602853169306541218117821091850076143491925666421054498597980382840583054391317506601883673342010717171901264890668554417225658476988687060117526936204691959290712697693104184939719699669863764491478021622871898996739509189423821741244360682016286165678236562071019198452690091901200400243859703647751708990653399730491075806648273625016344909519679451815895210645650654817546943446573152658954202786090697093125578777538605585992785086791774525006401470206792538435633144503342907326419663352704571126396940966633525232263243595684696104025961092662433012511922494868188933784433923246395629993477425604671686841505574571661865520400158670327601795797573113577355810946918164067690759215018376399745495051836829070815155411863960025662694341023613262502214308202958390508534121545207674532144219604807253204390160571831967977408547519050027535256819178762016034937983542292792163965782164269278904741448837337058497348347283929698073372785967815681077063175699657551712081047937272051148889330442245185989661056307582311141353905646503347526003408290252869339487248932808582854180297480289013384251696438389899005874025128490385775533290539076955458056580030346845783027298095031838139682238888388433949932600141764600448390525828418212396106535944035102004873296093036311805015395946514893728249055016674427809457934379517228725752634676751635346619278649600576733235477449159138145316481473118470891712691078758549234923999964771206732873296076501693380955372401835379550788783273011650597032433515149061557626931706421240170006735351659370341148614270514041136973987247044244910966756546425137096161671488278353920794309842635876290146270512290749928456670054302732662786176921901079722766845848775023649980966413169683871872875635581805010314869208021341869858417140878868707960010029611132473055190486937689956783562719634250567942474237932137244349690443699486986100537929586398781487314168127443125373256977312027137634379461456239996769093900920715398751415620656204653928765518392740364053726871051483560014828276553179391496229056328724273042921616341066222651225286174379246043522378930793951403668225741530032950087700390298920600359596686038541734910044048188357739966923218223725863658304898646718491802979503972077256694536516554651768657553258432328082129863655598697254956103815487821851247669949853353897442886446246418778099057193341074442104358948521267234481881550606728798805764585774511563147287369496188282546372016977893763760901249790066865953353525901372201841488756248383702997704592425004524228626131610122827816633376942523730308796013278629228214632676859749897396226310260481506978468316384832834420257169339318105011743661687348353313456777302380468702128068235168801822822202451981929793799290654140793083450201774169160457797251910340102315804163986707899132458811875501582759830477379654993536348599463202292512800582342112231117150209316432051569535976295961654005803592999066144231286786366589785326335802415589389021056279926755339484673286015885433324866046368373285111157220954387067910554800635352677670889679300611276680122218554106836199144130127193021803830180572970761032879067993804081775321905285221690302049849244378891738702249187742240793213272114244782299108841185866059700130593923511980288822897454524873300491447789494701443021252598975042683311827751205582681806540895503468586541745370125674372287664231939952991156544315390433320081968550450310199094826781394894904602913447944168130092587650021390114615146930435220350303238228887432389818192623628076616048959854109433923876267389970842600091551965357916465087679588479357752328806326780491838643338923490422153793436786830742694325530951025509732217083758009383472901321602608562130436439149113764191537821747534351233061597007926701952102593111651460269580620796939985256877702502476893037729110588521903540645910809708481686763280308695322495823919877275590106754196089905162117564905078287558078038234144735500362575562081804334954594236334624726816646692490486799282001728622409285705873788933526926889113907925150934410946417039778738533843475215477273311788369822497325852546073696176624767934927509454275715918762398106596967139891163901412219389174298702459404989847834366241863831606981097429098219669593696420468129847100096896607216069526241682172458231712542643641579894230051182283715224064445913267717765792094490143952328951446024900946525281161063657094504495998358105815251154217578430989395484398878953643312635124773968801959990316997067368028062521996963956742931094178132467273177921255226451000680267518610806941389074824520668819390693473664969035520618389375084981849178603743313128480711683431179236146591625622543772170007545246818067746068165878391123997568657388878294984513465833985920564896780654863279531997665881692907818773951399640396080365775592843492587698399555185177903003470052122035842874998986988800519460798534481918931486184126663576869961549971322436360071918241795000982094205339125550805520513508875331684933311991374841235253281740636687366943073277560506810900965536051077377340425433161039271772331573658380187399809930250909716161572896506858046655231306172299745983756541624106827481403638720018819972026581362601068568548458925726554464643897860767628004582625076115519844505894645110522760126642182654336128996093443226214034262291286166540833444514665863301579678178925062584721872172083381888022965887841478206966072933823226791548009869789896838171147498676026711790860422751662451980236715845428232262323041114441847458280509320951012501962535912541443065429935527868914459354403892088761608172956500997597183026817299310862447669626030993856965330601679465144468453470955294429431748828653956850129133691093471122844328807181452073828848001050729350009309617389117514764186260710239301543888310948316071426835120613434318629640019520626530024604050971311860691024591390234948116036377613345320281214195157385827119373251051325348996970142977799313154455361568160520537235139416164845822152487027781280691655088840683180873827053386690358835156066149098743985811043664049589328298545389399540250592700575703560331965686077531026480555680376226215792226780377157702103621995033799668472984471843407944119722024612190943043363852759715511434516456178697066232223333312582265555491026581873209871746260113947157003619211783588592219084005055925830157774368622321376005676257181251164170136420095694315184101923802867917449506175154211146945301293119673026434504749588943298709952543382826737987325620588318671272997176562930236608318066440479208734166470662368263704775862635947867061883335494675926424911935482500610476337987812113966047287830635040999488167755070256064182775267205774647933871314593309096383178665891181888810848175770551727748899808696128408469292469298218475123872915950568584134200355682249683654318185101490958587637593786809297766166385421482825934248980019340868755100973865411587580259174357088410940760662944029053435634986885146626204493908439722395365747241149377797267471162533169483870184701861165859909987618792217189480839683440338203116411202041690691974624752756155723261037728619062086583327483866255753680689807881862775564587415716467109006885960153098725656819452575741445956668150634147057672998371734644392595856109485343126601056090392436990845134628897963897940639618507295474714242170453156134132071414849056489958395864101076983478778330807238099269256332966205297009269785815124483020863591804011979210162608935400790536224033811791781830199027494061500859256168136557178692065394811407654136522889480097304262142722741475554125528102267294474571441805166268165090026704612322754043339684177695203634100266198570071425643430150250517465869876899034794456986424168734979057504322920852572853478857025577387426808423650356507137206608006502216058037384740385496785389190997866925308377072322010676585256425142799038605869106764414151137842664683968710424558758438731170539834656045218787192144293398734742702446359980395877747608843275999494338710996263197765344346418300021038212874076124192160852019039451949573947193025242766009144396599111160886551840297605917232697740316268545523536775146788007943116788981869740954069243447419829291928558941111156564655235560972495549978438156599452772057126540706346216504650715317986218547166222502181112200151126772675712967635880584045827549340179389683789365415185837053202558726524740346438028370043683546810297206859399287644588316692547253455106383314124017046886205406985657871623167986954057080321457667069154578319246427039005303980706827286673966083208979255732500039271502555113198714221254268765864081388487653058324454743222302540133878726698127817461000968793339127522146376323700703009174336786260845532866879430224672169097486874459793812436761839363958521089026408057356759525010303249495769594309128814360484595311488240829122271868386895668654597510913174858229255341660090761442808110410416466136268988306059522100396561084189384984004744723503780764717348516163544694755895225719370479669254956453345281505273272480166517239102425505029484142595782937238944489075331548108841120080098671285215108384152818872833181818373133985790646896158278804827873311988632480198945641646737577894223999464040052331988589278302836200533532431061307340612725147952628415238618745903255653681844663337531108167722685127040514085707993707886909816886024218220973254285466324369203922872745809616959475296010335902390700381895154764541469933735528694179661394872307119813252600847775455644662179869327651289381077018707010004191085332574973369228903520604079710191005707813232961456089979810786927470825187753444714844283902021970505986404746581996316367639824226335988270766479731722122686935294944422914500343927469808414704692500257436625501497437622002799397063776822789797792366639839598165108345806847846505323894740340407031368269890005080829606142452691442379634934647473156006570595126551783758888248527529938867663204112344723050862249665580662234173003986221436842365235321382479071026533337570015670797576385476289269087844714880080630995501221282803082873165626814282502341258090735182251440404180116390083991615529043418139226817924288783600759375607504953483206510845434305356936439723958692456269776564867715208396968547113528788317156069949660841038015567252878774109207380386438463236754919560505919354701512713598104716440434524170983218320323984909043930185234213435610718323300373568016181445667983238076849847513012928742397146815085330942362461164489701918816481937374989389101985417009760052655030472091806810046479466737096636595901539853859931626507000163674031034886981081118198222509827639596370762930011323220819401522502214535472138802668882010062713043067677232611300784312874591845098057382870195498509002669262382159056846182284710869849723498002449040056772656786662589381862681211475923993219992238297222193634361575149857726338274669557176793841310458102530243333308279492367058561196956354061069446722908546219774973698368259601991117359901844161428793233292561446249242573171109300268083375774512463628076661680536210873910800870627398724022984919109598292187115058666226803143839192643868338595989345672465226971241392402366064068709939965394051340598589596563403836133745696597083989030960267422036301487485253756477106607497188274223494074947372965822534112065424148571803132761893378898482129298439155128989898210228351761979593403581450443503408914243742614915413184878381080230711744577740359463611519547854411670881993013481600181453376558978932185875916423726685752318744215128144356003921441418097223099979655998786917439254473064551948357117182872803087237304170083811604808017670565240764275360743091670907400026465881945233306317757575192425486959510279008363900828304201640287785975369677621467690301805556386247760423477129767680365100145325508379197123184985707471261819389427281556862667297415758028667605811029371018377519763791043794905636738785709580758881951587046200808106869676502630381656363660629643009059490353799456295923773218708156760203785181808446561564923359089144182190326852839264415555309096611756045417997210810495627359457131134501772594595145163481931806995036185686287901788797517376623588962712927230470357556613653737064405732289183295946179155371880761905313917689063142075458972591280716188558261549195642611851753084303450455435661258482664686725941490312661784495376961674631442316912539795123236706958974086870681101005400692036560434773902567475032316264095577990713335798741046904185993654224234255673592813977179142895177091468514123101122532318322117214282639850806937399487804824464984795374094233985784898171373596664518702513358207314629132799072585045153770380728457804735306099714775712027052031230505674417556107276671698837625778957965487673166740900771814786863452362290968882665853488395472433118259331660820561323968681023186320630931442125747755540566272819530169388072631543253240370328703473398942552396919466290886362804408814658925843575591524628703544888719805673266903720579474010880794374691971808189934428346454830660339152340872201920895713179845990041249299512199427222025466209457718314796667941580151282672813609518714695143958217366733620461346684819938328872860992463188596835414772388019792174882176181194098745815457743354748325208790499031243298029386063358830811533941480373928405763329199541671681967286881583445611087039804541600255161759045984701872086128672303969191256674460354125248179245594711029854897781245189336449398316615189063447030351486456700863915887797788330854953510568180830641869215541693489271210815080044913997823267574847930100388483434332508628741814397440388393101994820760418197617052372935622865372761006974272827723852243841421546942865385978186713650832942764413359650596091588322388976770111665285202121590544695646644513814470163191265938900955245495250565198438887147597998304538861410699569368737544963664770014251689398613170513066676177613502182536307891936389896848422393254432326605794888523731544282691906147508561438604355132202279651173644884153231415695343704759331964010285265610148403559890986193152578898810940587805623962209479381565451729633619116045231172273296173855882696540506039903507856001570984140184042857833016127522720765612260886475618003513557027815844467506128821012412975890610941519766262115923018128982758143433724984793210835333147800699630043738619033196889301214926939801962974998130325299860416804705714109250629182150782288648275548762556054287719836702210712103188990348783292694174709095512809954609096111367507169139066029433968644104263764233091657303818949235893873025935795640166065171801185006526832866286513167546821683860517154924205673470968855514137702339491665846145785433645393923829059716234365690257737706151195261672766292211576612400623776763660408163956345763816365193644115109362507982792570484391945177968580725390849379410442388104501506901146646763081406131256030245183230892954068952325794121414985694958446702258518804645534795607776578538555560551052242014861263263101506579580041792656595109573487656725979984170376403115700837921118390807020964159967064642562520322465974887608622863442496304501952332849764855773539499878448001353766448012662319621706187184921182654955267297944918098223567498127323837282405536493941484177514807257657256114548279204811876053353991960713425794303406842672830243535164177394418412134908527938737500860876889853848715021074448456988129417988611005929895586847743910591442847986790243742884748260580849370152604806603417680606382736339100817639334716714108383815991668794437539850508600878575000400877193467661069637522493081563439198631187144516101114005068756997708299584779371911443645480669935592407554947044142634892000398544713953671128048010780274144733210782115613181553170661336506443914984257091754116138445986998912900384019590470759387227319207325311306261493180928429872432551328466234727761575917154773350677753157927565050160753228850962145745219728912493240467552220048109144128755048147422681288520242048798896245660711171161333766761620772369778161255048278105374869868231748137899079052657985943128573555104613686655046710151140901768927173456778029845684816434824091224368084162315890460579263658247835321687258284052615158685954659587453495354198475036463271771845057116024774759150399287570294377577581129145626916851928786223960196997462871403299513078328993993950279028655205954444281639872110553896658104684633856651602905879003286116037970746273130120780794981789732981726227347337484893020305651604612754302098925004325705401060570347562623861876771303034437793973381470113082028337779749350626157830869012861942068329151112754811892627982520898488604508831680369629308844445382813492683061731572007967572347115872154583394121803301196326938608163426298723565480760298030858520055541498153068141993477524730517639034841343152943170729405789254593476018838136427504172047370324808407322789218667746358058639110018232562194631040904112874340453851446229660515346775085926790839577916059607625113437391897439429026888367180956865783737605748916441604341453053231992767225581932736670458258141194102142507181997639333046001384759642380987145357082901855508665243546835775586775081162072807343388169428093415621692758605068196798291804509960760372910496484199745743608749186880042329681918762924480943500954283750682871410632639327284873026850686046873410851104744677864565150362451097546976656058182994820472537702085434439228618648114674751884076537396846629104013430645394769755487683011345801147827298813183533368284390792478960230755594505409976336389693366124475571141814186016400450568183255433248974952143386434884857148711563826845225337212383239947667357069489308363667461287222354390257946219785566274412086102368298002046141540057381887025498132998338070900823000382233904291398038136519634346543419849716245026337472525370800520009771126400224986974476765336886858140458442747084380928629932822544608146099840868829042302618272992763187487315047411068920343625459023812038295610843153277559396306443547234153185444815519243875092997890718466046258853144541862136685904391496752094049340030031993230101169579744502452450942265706341208138454482018740985821388238421447302187644689279426679068697676235893836150384488299452065994906762502750937066274641473242019492982300590017512554695637579760881320600922987022865107480426196860128561913735514380584819332932164689632193725249573499865769298632427660135208264243341082221949384045947708363741106199586483158723151531642178471598806713968909295333067322583080984639135561809661398000575362794379339462872268039946130981949718732695112024919716299890869666296579230041567563295452913737238231870626024527876486676652510689762860554244274087185062113428532667810604675112724216766644825977113673974088248349021157032288822180130159170095726698578807690751515304200115344745374506169816462368207985372920127593298211903332373546548025885135913703238736099116899548840163804912575050295309874914388610413721802200536681517665507938159365835469326737607276664072272488422050682516796802534876084238672875772952515595555784860972675376237841010822745897209013797396417230326494978200451779971401989270700215741469079494241931392878754655692358615545290476026078858410022622274278723035213605251111369171649122096565527379827683469623747155957346510350630140264107836141207907187232959145722431353401192696069012270070824452261757059158552577435407767906545257448693412284198190286516439659995143157010522416503472192643253017728750650375500142560883179264122432586815380047089621306387965493851933761322645995749033601640622755156561507757169609503192544590195694092496728883155770220302353886844872637253330729684585640067369011548350291698249684316625617447427695301088120457139115580146292928162005240035882529695068545602199555534547161395927402153382748656996446364887932227369310086988899089991152765537200361992683996978786529018063100294106384157822304578635739553013303506317467030855088540618782199075469909151616710710583534055887668778402669350145216091811723139453894935948091218909399187830420692401583292172464458239498287513556396609647726794522897764097157728031069913513989401393131095776327350939832281301561796870533521798523636189062345133579921522715274204132360547432831447414804891882775417387611809232730965319391280714571406997308633569107465007214744456167892627403267087299228122475135169433086188595075677343515272241846325662896024080167501637899155074951642988034453764870383523072468825373096592882825314700620525283491127225095487970148769000043781359491710553624954846213321356260915869302783208666600991175069061543879049443397480476145418772631539884337543432070306924595456035367124326028775827331881166447523347248031741455404973580760987960755246708334626028876172095178899124360217426752617019724280042047263791083884489125643641876689775132146838206724090623055536430152465096974322827694368804243429771579943063079089108486238247750063699123178642073052229415149793789350672911360701073589950625544729529356368721394971045999370068908742439618594562444528660512876306056965523091204818624768353390739066552154724281833359800634636402282155529815794777498643682259142094517898780894343708124725784586813843731699416968103575102791738167607085553972529129821158279843868391868326263110579763575151442056109466171042360463589026441413012868613244910307493979010184218711430250836700268138931593365471233047394964091998354408535623662265146087822841185792733655014641669529006053915006318416965958637353509618313931215653321570297497813838015504224958045922130808182833609673297855746852010938824199079110092779027413869268723030085587166368277032229821082518328520889603366598121011957613989234380715984673096325049807075783376153908789749498629382170765235342379975627323638174122272577972418158378755903635845661566261968716523746143839723497733926266360695455679923732581119575633793355058861429106662981056596191910748644461018153361469111741040040679712977778378548994637289466523377324329484598336568525128678808115087673955929627507480158609253726136003046603910919810101489223422646586518216400185105416012303548587873592291803461681223578239842296133675055214112761133813439647997840718309003289697646223814449899355496384662740560396612214110993485305359377965062786963804996924285578053835181791338322513927782237663138288995544725963161948267495443410604079446661502387983265581777791586813925840963427316259355581028956257199928045499761235541694465934764614536048794780596301652609494130276917322533658284787211125519503516966688370927018284271792033837182771429609753493628637247405220149610068709501777306907586182787837376053110258006674399683364329967998416136680949619716518997215365625315373048372532683186658095977905424060338423949921000718659523022115037756052597684620839670754310063844733701632287564075753709444601448245667185248665419036654834429043448661242825106052934651943536232147185745822361546590798807645483042639165142295426758406462937890218390091329333853457521106462468886871466600866568682938748522708549143937239819148118288049007917970296556685439290540522494441106428149960738651412910519484867465081220392918328555697980314320681648841593050219645084163236603779384791404939619216800440808374596812224408292214250458562249450491863316178136626812255470400405723963819778065882689027686862019055555049294926876191768156610906108537904580669194239936542735228725693498551341677942510763496829275887137380196359279106009578792618066010610148695224078344952489261023412416053683442951472193789122078555840812634741363421104422378156469625901070065117281672742026387763717340508256712220366470520940981526317667711393153298151672488477598963402211028215528724577201187278751052828933822972348041390973798051712150614141418404888475758450115765604778638304376738975880500095496004262580335280575258554831571229560475816336867919745653744853942145647165691548520383855839555608370628034638567776090652008968571794552984101168282391586930201982243303238481239372579061514501956613162209992055652470786209448358255625990899969597056429738190182883850270099143788701920385562095729131461601368361732183175474048370704642920105497835843001072500393624389574204138827323977248524879158532604942699106185635104310250001761634517536602074788008919982872515270260360104229244221112113840199599935918249430381303413770250946659875138999450763353142199520256843278297917988444772580245919537291109802917365817216712775608964181190969861005864684799424416482763527591268176811080156120658490254583853900074414002197245302050927398121324989516246813436352152098240235812450477227826197806851955652249400081048642541187177789018377451808967052352162738714986107275369647391032802982909135307766820949826008878829221665547277801501568454332575823788570252591814255936089758185820848377998406390473993850044960475133711526078900001584326613652243652663875098477012925938353369436244918711921833709601764016575525959485105954734741109109630213486211073218246901740688502028346601396510399163986523074734195727411102509904127233002948236896789751422249144030724859669323650535867252776855799429877320732070900947992409425650616796808281063119444435971070948853651379053969480722753051267306200716328974363617415791043941609323579748786133489484416165793857522111447771913101650561161149198096709116385792314031840523485411113693849013646290895088438958811520324360082411640209321232936172192675822316137999557381365472444721482342815600755512733573661441648941261923083956859774538839303258097384564443210851634937798138466585644560611585758176085987174334634303617508254986456021635573159122267026212970997933059439983848633009922430438154172111922691818165239490732023442327456065576536482319698666828726689494064518641218870954375586702992908724494701023956363051860791314586974569857079824861505398050312759146505635670458935170250492406350667189701752902654185923953326998970932517895771175768959826034224593429932438841337241875574620486395937712199272523697761588588387543915934820143306265073494406090552787607798095059673330878348067570785018485861816404475925387529405639926681495060697147669272875771728049227341888035667092752625485316608608929976974714301660512570317568226153468544691654575529690288179584081891457299587828701544049951987206195987518821105196216532295201813332922220878932002679991922021633986945245156557467941392639959803447801501380680888026998528887021082785659942490836623787898483148464218657273649302295251901070777229562837171123675198671037062718129235139787646746789394127112473894047655724328189839212115957931453670694219630302645937807169443575554879685274885552759003406231899082040932705864554686447488601343511761424016735491697775066028504140416407369603626976982168311366638914290166746993440436965908282970768243507939888955884515116741852032194848248121461327014581293142294654880006237564264937191978694672477050292141689172224436397551157702191379614740859173953820241198171824598039812290257669110712581341094788842063563693370657395032332525737529122981053219140077123646215346428409360180361070915996161133583872764042509027468421087837529456078969658855665576317361233464265512630444138385138421535465349267317692572906750573732690032948352357905575563419780676709766683470827029407082924831844475498847776520185657847738706525304636034168771509559481301807384340356542510875018472007194824913533514475578191642439793511022572947125404077769717940006563188938441766798788294685985615494991473703792296180868484420288619438595967568392359284104560703547484013114829818409992433511385451846485621543249371490331597670834649964235509818442766785676755238717866309284447272521706254350187057690993923153857485923113344162024969693701630015125887728607801764623657794669327123470409103491714192002034312810656704140966961298367048789457304396614145138666029509179385884512730025508422289612048387906622706462348001009893284634813870671222895448415622212983067824230024213732148012483097904854052035212169592024702655508228626824168934317792006222672061651174367841642683959266241596382807280229702710552788864609745569447600831110908179895318117364027991393037634420937923240675650891884349592557971742337955389928048069765972203030856028497425915961993230975259322275317433108706932834906839635030001210377388914959679426573906842917024699831819173569262986999138736016206992660394695071078255595502676382688280507444327771369696292749260676169300042713677842360993095310945240691300151797781282243238320309837633313018266200384428733085889246358538194338625732849982529316599449058349441581081399382260938272154056487858740846553483512901422902585706747951054280528406357707155966233968592986929909629804851700269379709362518411984907840105580813178154481376680735902068525887136325863814129105703033352072429404248594971206011739996852360435919897227258393768826889430722350846409542029171079499896813321111154804181801791729569658369498293862908873319517975814391753432447089206691065388146381333418168220779994662331755374779123578434249978020006987036756173176498582181068642111035847111233083062814268475545440764432156398417371111645499551266916264862557019198714466660862353334942437465393809515953025551274884875939889106462873113776365091909271723082125096842151721163548576492447203693836546228080088155186245299239506882935108132099914837621388322259919584265172107320244321644749292820468538496762168241935657498114638030701482700279418658686005696491474076709923560745648221005544607851785393654140165801719419941497497711753959619316131609813614020272672988644925307842342527977410820225453596733168109504842115876543040213252580219567189676527972729123684899702224720130381953427397615397310350394186620757916961288360548727685025147864464605969662926701093335483560413286714665951014981577817650962139109065568931309169877462156446990690124833158013515640276344943339366528554823583518456186758117997851171641997136966856978720851809477317745901550230832210406322417656743435756332661040479619845367192859081286123059850153443345323718151507264906640151212023265034462213483731714459690791058892569650407381377960921014087068249113841818324511724986305485669262188960089741642386077133471044470167179697550681566346584900436114749424745832006489936989838579934988280125087451701482014986423287513707465948665705108971918580192284060135495556062600674493086481959204481302360587193704662960625294796360443390462411421857547124829101169834678238034832821767777561642439626572959753238863383137961320481313414562051898481323114480510371538203152908316527369548011344965684950623026858782280348831830352852917604369860861955286899499170644966249928378419508417090025340646571297236141126132016848231713786349964621554640209536400082734402569839041975262323558203321014567378305013491784205670619471374447806123186530386577191041160686410459224330897530480141928232550828307785969219271285812971867467700519283197512596593691789070116490378600535156657979472310810638151439322147705515645498118178073120389858850935332077323081588535259126261988382779233117545671004277382272481106037601838616472373760386484377468312889685587071069114844805040566193708832614076132620114201205816990059501882615852012247575995714023361254057635229738696420750661587998596064108455648838385350748655815808562592643319036452420095557314576305632649020028711507154802125850385633151278218211298375759147935752371783952711255558287174741176475555584340254926341393293719295569055120737804814671440306892041464787676167220747162824347131433401935197452329630041955630859953267979028884868248587249241129935266272384524040352787764744192836853145693047985273249716392400263779502399096628455602453533320227200715633973361564643917105539716840692528576310527655320120455116188692292989003582520155122051058880630657787799805042938942965619705132476089042962418077144810376273376678648514929346139204777940991208057994569825674768894042018445822767485109359721706721479882465462039879062247631935266039258294328499512616149848475020158516970037773572270325702270034389334464421576062686199747243689012152445455016337724155978121605239305241501984244675628069406884157805530940047948211832071606903968598139054804590658298220975899132009363232171256056271902438077790786851824998007520762541029930894731160955990629710906339846229076122548906858088564637174254288546899611294737177977868644950542598957983815309349112933814815874785677390327377488687982159718861124653748828694610129031386277962045038416721333891800948086889738988258376812060046592184785390285062263530762071748966825532139283786159610446798656973989746823563467841364040382645973245608854083818108999392795838319808747924399665095992725530581053720687098321892135156660287077611603648869584966332938322480942836440182555537184731664011819136088343149387828806464939266053604619977650021944148034227365113220943405942301331384638833070379624271950271901507334825337780490270129574279206179471415650154661456883772106354520375449047821423406529185348050318382300569275084184215699289322996596127686864451869356997716276493714614770346951903445561854276817917454356143983307416582125938021299802608081308200956585763716215388967879671470204958195984971403426355720251283705018117898292255709417234442547979003598023666385370846004664042589994516617267554741861033151554157570160676953281227809631161139627909307049716837352100190202787949878819672622645138959154656764307938296754226750552476602999842344896363461164031316566019174588606644790540305135794053101313512798179037526173456561526312238375843489310396138040809049840342628248432454566162733927630055509660644347715265074915075220007243761588364615575016574913229404829880484185071288902995671625410775758579515141428004159792928566229750984024867098886550496733062077790535796060136649811980964161537925928838416424625582674992348063841515040733318440261019558685840019081288578202086420969629057996732062176341438271677558554345726926749349041150162132472608132018402421716124771694462053738593861726595965893341033428433144754303657282516242259915884901015461919080532274669542193202325779897602500971432465545263648736944010013148191438905711285129943585241550920663183541970392842777269780356746260052203927119042898076546007557753130606480296528652912478747815919807737858925806503472785093658922994236517277879792962101324788111867989908233364887089440465643533650666115473734402655919343749175272249382167102392165143496071027461340575348852683028537492865941919006337585821591467505154475900559822100605198792357107770561548869097929689326597925338528660536271738741881149502528437802579128108616862137469323821804870843216234205170273674807586092373998820902838789219174219019374814608449074242587481611132529454602666798792717926543114684235353538749650447961981498183704434043547508304456879841565292386696676297709042538970026357275737660434174527843820572985281596450552204388100662146220910931222943333037456315523872395572423351286410720121083413849149172584609355432887886456214096336672749814988138676632661399011915163244914388018583194793549166955394801437145863535321705887905127675297949862371399263679018693265753129411020450606827002753630071879086047261337748272835364250317498465818843840279189745304555963751036568115260503045365663509631611358770070821860990312879216344677007907487729492642560491124709127511492588437672578352533514487502758202870216390429037169453730518749796740571525525357964745190651021923006434081118020607425229544721260769501661648833072726027124752882066094550327025082971722133760198853520746867359000778481728501047031004167801506099234051492932394036490657864202914945459231468900172590169709801442992521917499899794937552649709594144905237740442103909564565164507757362482991395061845972219455115051669853045301618497659775866929292084486387355283576064219223891910792082266129612906728795341057938786534099825582534396075253552599818242929623031096160520334845460296996880425770918215923965075558638263427830610468996097174883565475651321401580567056028432656035278981419435260088665064160421033874876032911685076943541461131953799827726721500386220238582396328289323353883612201834371944392270892905515489005576765659290985356025814791922033735447330143389842926261222174279345131278640815134577659123240782771531683532748930716783162942476906213061507433278880030640419014770924541188465415320312042450020992996363911915954717762746397722761002243985550632218635129238384152819126960834860636748207031414051882353653486477008905294417145834777123414318532807118571139591863236732979898806307984996734120742553134198615537894403353717902989712731349736349103467018473044191885614567542168973233130212965901889636886578726311746121560786177077030839936779834696787352919015513263163985298860613726923985450283245536099709284607444429446954446522746888744564670180509605904883936127987648264861817427748417382369152308976383411531698811356128293765170830186934709050629672190980695296716209618954289910062294817176440496602349363679709805420464167573830551482092036182001212082246527684202259835998243727847336103811214468505166900788906604077681043623461122847973320887246214598586104179345601806500170742121755972816182519045022222864121017864608164816282164073000619174018189892459207177193249852520819149195700931842074389556688601251236117239877688339602450853611694682208373741863131890062456462716622334331146467893855754135809794011219296588597487299474833130813126706776162919007149279200586220168706013546329739435268493689415677766068429446408681559350283675823324658204644997032837721502198836166166024437131454744652514172324012878092495899420023152187595278213590154529288007203617972721332287355071847692892622741547243423528939067624512255616370304371074091568548056472267044402219502613439295659440906544181416906538085552787744599562267755368019243333553679541219346492181292294086343656638227918812192632605307583071375032189200828373502890103587895347150799944689584735663866280995722737571889356039646245604578428886088892323181936689135147053120687413096071658186346192300539245051644054286622999885290813735820164581792252118932447521663071785588622128803461717248601174825637873199459302633187127469796197708398906556058704232130704475018389555029803789902142016076671525425693598228345767836059987177855956446268614456097908944647904659698479260906564269850319980555473659759063975167072295959671327022942818835564888418609658812293801779205633570383819220398186364562077524948798753389727554909175461810643742535584751371529075241414862447616040954404580648219403609944778037339319172838427309485245735236904962589765727624171327317390013794441559127269126580238354879564390114008291268862277411785841837382701409646787215103587830268757424068249853948271458342504389178383285509855856394480288462198884435165968156544182550873264338929782517970431035288230821268678510434705322763591985082412214537993910941159967410214509771180413980046887740774338680223572646531231275506398500183429723538405693896684799389315045329930674300833797034924853813397101023878826184654197407932946655346156700897368563591373492144862375597744075846526922394079205593269614771577980497048000910112136434706649297511280898376178472116559209284117156948485133870967165417445914808582313873727541115300225308999887725103056439305534949907694358980287756291340929280136842517234946861940113399985604096662825568210652363481272218303654659848475326783047646160839471250884445351979468030962684012204324175177292027945724575580404789985865622635254693629732843522682729768059497843486113807515074240761825048071655647614891361392516092693043616017302255723618770729111643627331797908755917808091385961568500757060032418143945111672768401030334956049803066158122014659129336017539660945813919527231074077010233764802869876062573152055126863467399789994755525514137385397653116347672933864587689385530914025320236008833026425878621219405962673803568690466325994831866757756077190552571913441372541146154467558449836653061192745105898024123186931563130019591894255965551766928464345795384181874948634464612431284921206323701502977079213102995676697927120289035187698978993775959717983758571122015298455129195993926886751113777683057374452494729084336384034212335639473735663768954355893681358602959368798970921482562154411459143448729592477600858815130986864599029973766101088256461510693467056016711676904545662427910786719608491690175643819103797784942199501255846025864465701507512687046650479170059498752350110021975337111771916750833839074213068652295010485381990057411965249820050137428529618199619478149882975612232463026454240254023611640287263373057570557293571885367032232932440179963886713981817881889916414636865996161242462307107786029927569350466293817590998273033965121981271422244737784760947714305583670896858384647612250544196918878712131212985356120048118642168166267258690053595902564894862062570167195509819982287596010793070466266919192949187425934344282296976288173687322697777875420043502430921263490315485836396125188368030488805405991971785528841384217739427272888819709385149371445118994768400921263594539560806489530029781536617335677045716909050826676440918003215095374038025901559965321520532152734764483708259691637456205547874372274329380283934784913185002305270974254353122208893152035058224755641465923404449008688449034051258248274812474558696631411890568923031598230311976950520106417046529104896979656584452298325432208779064394347050586441927694005485679554265413307143739970696466756123083906698033522958971580761748170890187772310238017286436842801930013614325173516498940977727747781914545554482757327067945277450575682677292587079518614130818525696244632349267540949465160666802431787464081205827100670307942106560073235738479820262070736422055971297582572905025470172187833898611319953546710090885171532799459499823847355176687974269843188698264712006497104165742628265351789384040249427424476022845369981844720909380023385722426991035597354554557538465002597244555576613254935767699228835615790184962631937515558951949481867739093423844371097189252120262060226659846343255938023576315620353048333638131321208540731544390883250460311169305230621306131237538906499168166989702142678839042591771111480666915771259869903841401471481023767226357505154898069186874064382890546647268515282032798412950542014436770957725033520560924135503534137797812035422681968560056065508020723743347830886269492609201121808404235839710741193637741285231839904027192990291067325864586632984083921426833761508087102568454219119962247033771234553225293875732454970070952552055548426643427481197304319388690579926464932364771826774734609693398940163224973835039093402321903345896035869423878746567036706890584917210310178000089219797324230440509917166389738534353441040516432835695227810374980354777652109418312004387040749501259589820634012910538964681404189056676278163351218875367744108533580188826779273893387471405747064523356375082924381111636948156730833270305625631775487703924417398812418844078738882067422889301012928873552046513513403308410491905365411867191073188835035903426264052294268563016275355739414944660846235654147752612395070372068676418357101222977231538775877304559896451744576600515351421551437037347880996673695718603362166491499267416798694122968696701712090310482638061126533352828407599801739600090303749223458527661221235088062723846902911115708738091869668808205352760506318614347918466864930628533648855216407928830719413177291430188171860152520118043744409323236663160284763719203135927150023363369712262564331893817744433262704010043078578832218628813087235575350269485203812154787654366283691557402596928226298213574908070236707733609362674716143427588380291443471621081655762198040873722238454758344009736040068521537682704128270023936573929290683664246292121051435593004786582347916134485687825570507006741264015488702230723948442444998278139988717021342226319287522085026668596400784971053928207543967573592555230527683984384393276355481190184969109978515095952013165834925795173700447555984761364935116237372997606245253706481156370506598545327042419922500158797279521481765208649891314336241030739367112743159432188255738379057213208970576658683831845015044979170794224800961816292742353356307119357413217472031833569937142976400124957668663344379878759311797195468782689997656785898122319446513719794105248502898696900512731295267862058080846881098564850130049744662227973138454432910393557948093850692790106545456068696064446524743395989359258059554340626239567272758023652997088757348924445319712247980101494222037343548144566341243016924483574010826512445781992507852219470654526939535973938261317431803219530537340972440445464742914592016018746772735772002136014276986396721041134017407805506097272621333548810198033504536798833491543682873061084842057339108465201965178694486222778306451322767801536770119955969051554767339165451462282638535495898136609297187542447157693576933792059992309700920739747437697929491555842184639725903197802570604025681748885241250649180569607847533991612957578820313314843359002794332044939748976403851584226117091771276815284065067768332019668663928647612155138063003696394662036040604607499918168294829471132096109827960633778724089601082917289408288016675418917965861801580066269681775316846426768137550195348587871709744316483966741987529078612736808440003344316261922266319640847936762109427614489241929032792235974983236877513821540970414149227708163183558345774002958866826495722481240360567693426065779326270201681059594522840590318836658647756751529201395323049226815928750528954975701242141818503747034604474285663834688589067195463995330408496840864581918441408091715009225698176037705776514338564772480903243216158053838090742269740335088531728098486206101819691507058573447912100752523074747104533739925774768029608039883380576739064361662385817633954155928634965428272566571426520118530580160337882533652362908680225050412516420149477552543737205209357408511597505067063931384163807187817626245436088742327705443551582085856979607692721655074241245117313083984905224627195456873887990076662758633274438218641939481730615210518897162919381255903274020843198120481403087703402350040293067647299947048481495285399313047873299270764127317241417429148502844088112341549167037994582402392130751479541986538927369167733191196337784146309335394965573497770533991269893763699177124372314770087033978532174685387673544108045806372916445006118470229370092731166585900003047177365554477324940616788657213442937638247515004036762652196510383809502378751842047806603490173887141204697550000716333488610253457102078511139382555003405396544813351445992719673922499054409142555741289244986508386850135913917125951619264189939275323701103331546183157032159000676772999408866673417918265290571176546616076878878987384203197172638783134668265630210227202312164897853617152826417162141029548243548657847813229177664115197579353245883405042649567817780077413533039650326472395539297449284512366387785344881111096823354822760703640375524481473566946489562747202237276146804592328961529658198395706050626562705980370412370184696568546121124021359829320240316906059088301780224649004945707051314124208257552249795439938396356719851480013694124637325910438043598548374258738084505270851678803260090837204588389655932950416043267447729912697409496417774311849640941119377215980164450981315730018323180423175058077093420086211269052686028798653078749010570040334480967330204724544369883812008883226600099067800352806036375067325181681427378322699604780216435521809059022117034248655958302037788412114586149886886313790941767370930935787428225758078817675825644475739776479102700006111479432820421036601405832445733765723090163631356331065000317757117499248704950340826544506087615251805488431477634328679570340931576616416484256414126051326001229982062307696578989269025074640680598859764906380595318514353488342598887711342325945305266732093068891422391462249570906870700860810645405308964959593224763734979679856034966331582317354782818390933186035428429364773760436271108827915534570883643425712162972636459259984182316087333693665313900751690565146459897003398767914610471721972810550098800406730295891138602375538326624312873319624215240339903410693799770081340105634657819501922276975258641919470908405185921819382990957727261772559240285597513490734022042375583338578644113515200781297166519687585116348470214473510945946856823989786972688469695278293295142362439465418071444484901897461588290615411561690268209650315916601734259726885569135347743364543356599854238084880106468279385790138930418723082716422881650493933094726454541497590804456470108827531780921846212607016380919158544860119155320814079686190316142714398024866141700307984206185299295510091491709327640769525825512544524787444239469158867554882443242154539102517163296686160348239743700973176857872797606325989545276269099407100548325513801398703973531075068852384234420129280800054484189953864119135424124932621447242430932275275550985312027102038046713484454334085714407375698109209320678181638811783667650962936592608137188805879863285020819218268651686601489932962637073392012795134949787532290336536466944298335442150915108511769836173961759471481101968146248349421975377736966567859037976309527132392908625060996998292276744729585577959235048003233337370587209309956203482630990202042307097751480168005172537549402371908390923292307008582758636074673381359774579425846018947463909499036625977245385977552590215248768374137954614060085229619836675501208711357505175062799680088398358629461942206133893044571289928701607550818853895705083907016964360222426225521144012112078982143640875714406988800023618816810007993138527591273925129208635828511918365873764169303507791373366672144924979337109501751743812299343820583218165852800599964774153973094713136643948386724596339165557346706414656217864424876167852626273314071578879260474684219772030784074037287287123161239859849382193270502578281514734552810988487380478981776406434557786938291826136058594118549935577397397914293670111924999926803604629336314860523521607725480218818461335435734646111706836151069504505645850157362346619902023163316171769315890857067632674950144291613000935643694633166230852167047268482950920435908807676694589788069386456473373205860328020219865877050637988391915802869008977407048283001999555635040542773371013770264016444153170161386871615199461521235440944997117176575206276663100268948494731945103299173056449839391172107783824656564812315726524044069276792766679720002811945590638673744956683099726424566175586689838672630855387664722101597803301263966096401141045797915535683282638503927739944982201314509230375994498799639139809219382751596215104320624014086148292025756950154497390489374114208814267158125462385109268102986263956770936462473700590503027546807933166246442419857315771124639275880194506302236035462452660091483978595799155872447241532698414445299723900705082290838028028459452310611420559221950141280623285706426461778140104425326565516219953500487390411223049072731288975343395573247368046391886125557068518279792997942865260352628907675144543896795685229210727748703046649601056596921033232302338490552008234346772591383211351237801252502719759149864204221666099574984670334478839969999789774867807151736641119996706087453681658443049904502418162423737234701074328334160890173383399847823100007084904304426390718621011855675619579059182874303592940534892517042729016107207048094832599622256939759424299553404226570881597211941754398048741352076165143448706324478585613271400383439139262508357396533635686019353752226512469572992465346596988595007168412270559563633164780031022672244065989906534120738966507598065713095235432136101769605108571079772604148870849557455731577696789987015207038096643155446124672901581916996650336520295276379272681812479462711832392351369696604197888464687592266843343037186899081544765519693703551816746870372229760574844835175901363613285101830986037074926461441458236593889000459006424897456493985178512516854151456826531057367825048595034631047570092195833951717690611301776522676226805555497427548626012015344611541986758747726950891203298811561252884503085918860147710316399464391449470332817552250535989625918643530393561016476490615625227799475943418200993991709708666111070132576483126200223298870374618437633728745928752912363747155049901114271559883107948083456692033743909974393698543742935526060675881571746178635079657014284885064980480706204386972421416491985662542432127223904524569854405659073996686258423214253905472345468138348569565042156119562517191663239317431860807390294946939119185425876757888077617580211461563716943732575865992399535492359892270656754791242274337752758727349790654756434601599761678606633851887422895049703243853248692510507210820976179507291979431561945681850130530905266692451799026740921323720795009170664572637834337730179065373253366637353582815539226936137466901376850804315794724648704566505532579226875902749018516788965684682936084463587967995848796109167994075187656712054581731179394874273927170132396534968202454324180112603587537282729526587564879918220587241311900883399534580071870498256170823901800129533100113595118719414710601306780883023752974373512917172617124844752578922888714184782332938805029562881180837158151150641834589775457451655347532450676407987235729417246840732596991684355196087761913563482105601767468446659724431918808058308080750007719206832868899781985447170412185612044842883572456614310927463020269133360300463921862720438181894401459925626653361955333242959827176008470962709911655443859574899321521939472307569514544197907960003427459621275263125738683263957831597335562981746600106136209983049575961148756557356639685731568326187253931679452018602544519030137740959554391573873892536411093936673835169354896848030236497584554495276135237969967918674253405102701176075157846940742663884554257535616017482647231403825811059861891939168020351904983771486537487883286541700680834601257687612069329409944896214878217704257147154209039806869334802987180208729800273823627393202790539708683510319786717291096560752429892156512668877666455413512500657395229705597614387703391253339259291784639832439303833453649087235378431572793028204606510657954566853358718677978601764556617141272769970030093821591370093041959345289608009875017387371379408254597469618556844692008380605134286411423084004964567974871332641113086646920913514554619086525823405895997328390212990585838026684884126575364708426391262301945606497260298434383321682488602287209965693635887128763975815653189470436417179536700923412620028804341201302108760524381229532907489568347948470600967212115321045255939625130612697363463366006610317588831790633215495433331071892633964796557091664961559684154946116571480183729220848340514562172359517337335776379616998098223204543567523828473271936507257353177411624831204063876051055454927080780046662826667515627925401658406500612756459588975833853167011030086829540517112713402202631741946895057238286920975621557512961078539033614726282155876768681949093120351572887314689126423090362078233830109150252953202957935768901225221914062692079768156622152438338843329506841149103910507069892321374747223732796631881266512623320949046742866059922154491704075618406284340945620704591767175114001617129372724517986627149481133190161482828102676956693226553739848285172689994121966978898174803460147048245334189655687017364839051586423672523203275819067067377195924006697975040800646671350451901124876493651600884439736055349366238522474036261334443110708296733841623709619757788347036257037681226463162420681761676362052745146150690458392453154760933486927277527790422290067906897738246925318442136152271353391866463839530974032130381229875373720089767876483828841425262460354678972681300620635113480014791697048907761337988472366134460853109607475517211170193042145438597068971934800346597919533276362689963501179408903319421646778460709439859981546710820211272594577451584937626339847082143021541333062806587045505238115749166717518552916292001260562097592312297195252298057421883577600977005938667610565546301008207969079697099224535033609068591404323186584124654583938473154550672358095478039833979802124418188425187926255957280038608209525409081326413933870455557942039887906543288535998527069338880242118298783023709710375055509414506212820540375769316211549139194576070438429020351448833325537751566732084400703871822918876168577937199259188352538065548961228067635863759417759132193636910054315552213988064324691611334321744813778148066940771048160520661061598682676914491480077595342385622176560297842097756897388821074283147057439578306176347922461189929242999796570250145067367520055650936566618213426229865033075031753952481442641659774011996596928861746109847457626286181596792144830137829150036121914863863005515995736666885950109109550812000026369860378324403198183019454125377799538223483659514967433344840013923968068733314000937950024342845541921591884868557533348077113570377332518876922296200030825520224421883525154595178373096658890137172709949663401045080284421130869607517124788698615495262940249450257063245145511421087080338793369572397901111507918123226020831255677234137903777460564656484059529295410997766881302998473822636476651500022268618233193571813481647096718687162696076487313994208150742702806183431327266993855328746203720186939321946991269477958135365578386231612378693878754207607285348465390882553735347729110027750988023212344070425526360655206709521676915444003564375743359709832893329228315933459249139590630491613969382389223043470800512195540038364069129242429632311984122642577017373762639247051096696435846804428580531737960928834765921157938711693402083625531903780482639498142028586875283939257907298887900159328246188644668125139304007111444428388327243963956759855624096579317602391760948362870603962289733178880344451152576377377251451149039613865015005558520315590698323275567571341210154604123191689042705792657838405503302577066082838617685992288790357532118517797529425537499609919408274586248182468834229138577758709871792795082333493360042983657613356868560094526963279195620044014914167033362240694549462317040881617342019995918544339833217019248692551513930523332688250327622732528090248570833713772736835904376703903369397312624779509662638040747612379656155224361892237648327699132776378265304978857113790780590171042443230980863788806012119854364509947063727548208548609130283965419714754042268288331761224426610918994227893939624013121175223329219480447428415266578885721736405036728378378384747005550335571799489103197602297428702391540651134949938394530062780122128883913214231863649018011708398351240430509453748165552410077072325491639150920752617508634685180425080719952227735955308811893305371191921557796232049224595291501487959208098273643694855224123464026116224371786632735636089289371148827392937053324512897260722837882183864084954815849237505139258655231624720817913067554224764192534152465049442951305687000841478927656946737600331718596279028452809859156650462541994480471788198215397600309480845667154379573260039570310048796482460743192934615135892273293268224129631928942284075829655189973672531548751878963517957132416129004614577932102213230950740444781775779361154622483758854294869094888180549580308314180223291283796607251255522963831607640074768508257265568164033700146626910904617897779493872201062963058093535082451820043259229780019676933967270255593371591336989299013930141309206195141621832031850093905459623938826678354696118294829619117699152713977645901601502773988875579359760908622342509167160532057315025208540111539966409953411905965170413549006346020513596569210078912668738366137823698906038719685908693954185983128611955331249378745794732524338350449678519286835981241703454628742677698621172839736489191105788818402545301926438900500233073779320489517048356172088935286683694890887009864190178373041864261300845067287997737518479946963826613931820301647235679364396389571568209560330631070471580151740722014873823326783192861801515974657711916713050067776250441340314331857712221337990545361789997591386741608012289776735921947641063695392969760446413505335382688273356247276695504519844150661479110057794593485439249485282631694814695236713624373613326411377045528725792606434202612508168052457056735071926216588890170290747739135154308516438625635803202986001027114580361338413642597324684869191167499591438696189078268051883261425436796838679766603744030878686362558129072023159854919641905017498570895758456213552491307968764836047931923693176280669875190406524296033523069592687636040715240367231656020270357785791749330917464376444959202478600939080430845661572611325771887602864970763029681128951788444021171190105399237747069490989705563198450036976811993662947663009770291739722369136820938520067211947132319821303352929802732683770415816900019978344302174838340835574535882386315565395045828084079317665310440485866945630947784884050367784828416751507781320434152919988800287381133804082716665112270683894408858760616065525049985945231347876201598031371366708427799729086271955257365955671027864642471583962401600514917992241733795756032832738422172533212604585871645251761508606895006980690480972882967030628640559567591149543465477365838450772803436738233671043799804220707760283646637655560973598475924111327015046331154916144891826265998625919003559695117603404984938686837171963781532043968079704116972035320827302062009581369979999538412890597665397829713396239857113513352827561263050707452646466844092957746097181044850439693775743038296383428594888918979412087472124153829802289178334157382756543028677692010795738147531896060553772710427268862342738991788096567251895824840817635586819540850840768335054260333011959679860260610392763379690547606742419308633453880886171922283604010297937650083830875210457088441724013712207644411866051618369785720315089494071697631568949878748463637616473513641164680920064297117181317810675175332039635887555674257960897530951062678240090248080062394660964742918599381204272257402498729730817159597063953975618377201645112046426202655632953303818150339985659457483147324778278789191869383814283720277506159492206084656561816398677198567172112012117397334572529339397943922008918292647902025849479455534399533116469199813588427967984136111835141858124951190403770965938764991194195240014324333668517704489332148010477872874367108686101555697246016690765893966592361499359578002176524272824295423248839726487733731875637369803406130405718579207193387488802546082882483941704621500537773518217877897451977349000950927782161779346098556991422543274151631158962309170966986639744648733414995957121093402933597448398605066697798273779098598686680273976537529967072633064781913623350914605961954184249619803351257317183696049271126252672795371162827207230142106578806436038421076566910340786123978575626252827681077347597983852057976155842529073592585764370181667713449447348920250151839928350101795352762614242135078340846933221814506315400388316475253479642768659512873192909304147115009739741624416224242138511180664161099749545383080769453537606101972757990997633223901789529298602352724816018269630423835320075273761303697285756737573474258403767730888722586084302147007878627622377133539635384092063102444226439825707759366862198294488230038327602518578529205918223312532967559336617176195439299346980456293397450777642434391095277229876194016371600035622622359356618788136207382590304214254053202710747222656373243884392865728310298179503238248026734186647569557545273041345622864229780259566481510463822441019309861956814036832121226925172649508668694821778416202505510886675956590926298635529558312775921264056497724940399057812019152883024916940349578056944394392663778487817793284271573301604907428951096999283742772541946737198411806854509225729841671692661638901113076851024733766333896770948739507145394687705987792188175692872789277905960945009448600808264143885151498388786891762460207636695511801963786344337628831511637299828367675329197339604762313011922974698443483583086529347089050219152275921860495910480051985034623188968401593241641952270113694102467504569494102961282177856598743067393408833391404054535926465569280347981452580058560600884703039363032331509448986959625232787617970722045250187039635445628294545612741296941284233300863080000922616937239624707804370496512180532372960555810296716420579494817618770365702735118524402757996235632533840520597125295828792242999737119772194793598531097740005795119991706841364526480304989290855905769640715530013764869286543040720214950644204578725559224957933081690756929571577859178278266284592197910012235708215507712714278262888074984964437860045461355449579184079243876856325055496333988952252084236087859936802095999141550994406471099200389399990034803085083949674672847078252855961703563188403163398577088310793851441963223374923306669256142260540384028199028307377889781177172899134677748827707361368219987764381666972706177256035390453626847794741798182812077990295717282853433944728249598801918472402340277988364988084235040998128252856685779929886186239628090666425066770961086066615986571166029319443942639239467746897761822406501786307503974542201293175151262865053181358509827335935829511789696121771102570788345200402869899167796752692916919666002274188639055613990223518042642223209280157897787435707789241610761826262711276705417064707510809535748351420588702885460845759270233219129981649108820335750230229692269755317866439825990077708230802406026505352834507432971007598512025084844169707145192014291118780207084757162561949537609624804618690886314755770809449010248524468527867681054217547473946635344796566252044999687538274373115059354448112552134208399513996078859607658773971109395469241106884435981810780383608538063326900288628087417266535560995665371318457721745704093656658620932344583555028376423299124338450975554191996477729864880336468953683792777698488188986629087483748440267348045255111318804649128417459936313237500938305312129046833895491943237718351101934938589292082917413450925447810353894753848406896372710287451420350158483575176719916371322361200862733776572029935938296897694225352759136477256866590532363396380171940574343078054850808449325641808626657840441012067151832048689061620273335929213261790666809288253113825963030563632566880514739758915595922621726381882428905378018714218815574236224774197281695533446790095793758121560678834577445286254427259725767560949270320959042350250704701187234299214814721045154578004186052585637945425638836210683534082744919995360033188704887136194202756659724717210301632751085275801791401553555083801721690152844839476444833718793123901242879089707979169345076165266622530406800416476212138839345015927964207923601068591264171590984542465923828130564493327598855835085443360430210661570937939674263055452113131605287530144102947599395970734479205093771606165087623598809729473319583509389489289557181587844624142794774495361892466851887293856912985740826165738146112171739471511610515148223009892818591067221293576583673504503591271273795788405490773540863520164476950192091407428844681323185630408895962440020551851314486218028103219580888826219590773482465102131743838905429395796227017126781241580512556555091541221346710383845260671059259003659250093120739691524816235571045890927237776625791086596538912492689568181378065441782791447857098677280272175040041740961869544209945199077748038152828181832008102510026510344061514290521946934868429053489941206598252054597009768395317809232432936282543631123264083014441333306126058174554657187192419105195524842036519719978053051351479838340159053495471646793453875249906530678126362797126645461143767085255562515727582328474516607823580469738703772564768811777479902800803485547160458795804873639874919646611650426579836078323131099961083270858180539162520958670719195723642886854220091833291473717454451634547431440382339234625738096735601752752878471980282543714712308155945138980071960524169965756044314582699963023901308973019331807135327055821043811377058000569591022077040505768958677522156275631573611962698865097437777628296429521850842668265384153790090976266972802165082408913903811614717758023099979736153283543573912833146409480602956011737984314821337508749245530797769904064863029262178795363323975482648669803226934980031571850407267346081216454069424472958639266383419880157687155790807226827254824305548341986968032988222109557191886473117670341630221815516855365567271349628445788242638775942402862954435456706393017035369652507800017453489144022235459325792024894251665997502921015431360069901233829483400968971291916732408620378818281567419092249428272518966480852496755475933092272904715476951404837379388753425433904737337346192683296629745657901365662965245561893407905467882412895580713217167690343210540176094588511626370975987634188721928760426972130233584693511455870063019442593573894389688630476641926506486962769244297601700230238027793957950545155623696508890956084147345621264603581306793507586529912313174042698793762864878473169255873258137775927640860985493979406801204859670339923919685348709811076318364308914342600008453803612898315713202408973849754238047816573035808192429287842667920394367088179365687650765788902712117827352262533431465847224002092415544471197274484278270865625456503606677430902314230279586126229892288125248936225274811473630371262727446483027839891853724237846792696795621654736897488932567098932038137698702963728911463177329008177842603261281811362348492749331355123991854891833356917952434641306748758006033221269488278149780096284135951901410640381520599810240700912101380831842179985297877427996509155716008371967342312965561268733736042712122666099821504342292317058623735607317417586185907802523380194067562773625564138100801135545498472275705180898448564862063855845025970844330962902700633021011157265316527843153654455172781225788993435986193047115679586955114894964792218818782567760235867046824779131807423367632182122163761473243575409332932874811503445179722977943887210022141472524281240624763025613481928305475410009165675968658230037631467412177055520934219147229364655809312035534287466669604643985078781259165671015416358409219874541237815674757512936114875035043506595680024021879099156300030557564125418626244039180448973852647821504710259959194448213595473080984884244006357448338000859682080709673653293828806699316183036481788768377758577474389841579022858224347272573439927678285481692689193168855798051623449024907719804102918790613618788040418439532062414551679727778339477654663214048805280502465360607791271548222538189785380055615879755959120362204186919411210618843842175012095487874297830022549878936915142190940447196565919250505372151997568916442740984413737614991376925320953782781764411250141041930505549044255610748261755310388039618316369099262453029398003238990451020117280161075491311334706519389371016258334284677896915236072837193780317264209976424872710182371656269743906595053883054594605803589677932907341449599625738384372681105962137755470288388411478603294640698627069429956436921790699981864082235298731530925693015721252046806748824592974268892337604039724604696037082425032118824885535083790340784206825802086487685249347962377953216300001656460637429952827612322803093941810225675967829311888173826848527305893757264282341580779869030403996402249292219147085611751919584528692553800351760414309407189054575895307587790534791261870535248626001912103752584493421533904004902682293758893032369131110040432726516285004788957667972916906048275048282515819965302454502559844734164021282086661809908850901333349436205311683548918523803238120283723093859140269940347743140175571284850994730467915164881503355944437911749245023362046800339699141655796535117811274707712097551368620372524945593073564705757454309719418156293914251976366520385950111083036319229277162329167590440914697159293626489019932035996966888754792262642918255499924246692291332566308612226070585104224108471893353147097330029488268616099201709954943578716971717372999529959746593310269169664540102077847589141717247935171426410049086547681847104428530919670001653373281546916610039710481267780861659454081765996724091153485198749855439393346053898428276962823180402843298682387853539715962731129171864342433525008507856914198876696511898073315834662835578738693984950231376247454189006767233810765584228996745895828347416287861623633552212444779221993058462245962733009310043632211176103631048022225740222899660713827525860507997358645526350838123471321277978054120556766960581411079291875345532019007192746268067544397530356677958860704119077502255217652780362016015265720587622141526867391303493834225506028076521256572260778556534554036618366251335685199771881310646060177507564217414535713463562284940341274902910771853778219862343631628965046902953521013575573604795051786390393497315486293297618833248251385036568386723653776891301403506799862718416864526226842537094885644319520700661748036210041730925671737500178640691915530649646078818888124870284377721767304276942008446999497307935866404906099963480243859459895208849375138445180960898491006257431691534990378589545976729916028771555940060135195636828155653777031076239711543648171725322280795426058536266552621920268737906126830670144497902928213569301587859618590985234928187288459475988273386666918175433510029273327408489291924898103078302635502214912791125708716674570971309219578412904514572148760781816162205900920085557949226939219260895885900182927820802070854256167522865778127496196204947227052887012796358228764774388472032710662535198154781248170797978006751233379655253277228371723370110197133328934915181118848142984269689733249257507273373728053385159569897245336240276867075281098528655392148951167040556165709661121135391091837393456681249311894102417600533054190065932357760222683364039019131740695486277821944812594225843574896528742981103593810275770678996584933156929095778417719886130269382600683832218764407530086698675064050739852831368388122246435284226920754738695707926621560606292656095522972858799739143113206240507245486514262075195193130632938352895203651276646581666280690869980318481114101194883487994781830389057511645124070890336029859616350973470057702226070092620704952484178879350827556691899636338297779760170699626081227312863512003341008792030579665736185569891367464944349802402009354435415067250434738004043412993523608462000036279365209121857991550556235109115547167792751980198344307832376187349379955188215537963093985246801910130316611903161675086601496744006421920366347807508086221587065970845965472693416277101074199969425977070787844513692475947203787259548712371165886356073166632609963383171491939441950578608296370687906141975386661798560983080803025189475281880993799480201255130173793120878005856172482927388500428911782125618127623839983765895924964306851487394111446335211908051552665334997495801313776795611979159086312527522669993825957633473361196264585858533689156176240289753846934695759278481184852163283268554252023849084956382284195811828751691325892815645937544494119052627546328640542474233488369673655707713179264511043586067452400882749451961680583429312181902518286347349182914327273767990746032821510111505953871041719800876164783233506271803639741649627702019096071929219780119175858802220339186690941392489914288714921355491406698665351270059259959318215998380444017121004117498252248833544889836292956819615885165345882396649171179882021027029751595462275870320526936709422287614798783667891852463830051564569637212311710085420793023349818785138094783044063748143219320680502907953505622842834620280490622849896251700417207093544098123002388835586806803751740713632236546899503428597924971817711028091716271843884844013614163457464226534644041947858394188423958228448053866406227499394847677453122314881624581111944051309583879221624997015510330535757649771489256195309130775166331293478468539171977668334218102076641843081144199628445914632962405981308564503240527712706894308587744993843231093506149501866899528165215021017832291308528186175878797616034916571784444289313891106288562575641187673544277971092005752173016927344791586127807074508374334367974868411507725165743712626068393737230485655939511790038072318511806664974779913893039990259341442168378543227326952730806191594035223100071215595183121370058674560479262700404738963363787034389610143204639610594715432185237017722846564149945767373838654259899205407721590200863034708968811624897399818530589645976238807168381101216940340080305626651603939590940404290892791848699767833681122712491215575238013973928997173338368763536078212246738769459501474461651725793272467243885584866500358353931846372194147283001880761346294875951657828802883422013308381098358228527896713518643727195916908649137768656097094686680338900451783464316162248725320138016437725241682547191673332187954707655926729575159520691288889600025930587381160142820689847597490359087133152426208612660789857234010724150846402794568400944928415830600768250242749304766284684936360413348613365543111410494969140285381284854479115449472048299013528733228679131345868212120657996974547748472312663503699498818677131908441252196230261320015072058403531270834999584616766955528992004721100197568562676802583709811593950328257193140335349613526057361837740314219775322131786284194868825449886368158534380454843037462791957615275520022110233361545234639791208863284168314770013023212838024838047271988062533039796008575383953765944835210903404512370677633470406374118947440235374339610935322790324084376637033182123994712286766245180468036994741571245451078606991608288832204330381294351286595498398813814963461530455705911498278341470895380495348316553246325350735795771338173259093134666392832676347036329533504698603411309526863104382897696791905349745281097380820469021956464277234679945748708679256369083396985256247591977939078829450794849707249314699256635956055125847186087453225896110238644152354464223289060932472722657460827702853954698199513940161801073796688657397291363006833026183112145031886737590929218071966455998796761270181320600971287210692208584159840295522427044227036006249171417345940218012844535917585255803786068448221056602905247573797327662288170558865205175639441812566121618683605212280464183731694157381755627807299614322006893190790767340258418974106117266756484354866225495703785335461218704926253246238213812541452430678915311240086069806797463831984997816541211292715083465039958496424895141125252160205248994396168942908325231310372776329598537587243737146155189411691013500081460808835115643888347729849025870872677872290769460807166979243351289884834264207467675405554345558690937325916867287327555419379857920294923894546128801123396282998554720543988437290964563028926482679767862476250156109506009290934294267571641841519643213384877266697192865778488537528927473462911431006829268255686609271468481559439312649630520343757576138969320874026315746533740135445745448322536985766178407667145236134492212241687915570146029462951540868573541779090252705268011566383222463380802061759549783508359849026573424952691197128170591530428866913560662111710194092860923999946921137325327462490628196437324466457693831076358003201640152665023225785491284790110356212201039241278760920417553836349457085622089219087204239153820445055073761344740958726191870254720841141097528839697827396328412237502365161286665890195412505350268300760914054411506185235470661387526863441386648229549493527329276804474760657747158033197225608139038729246597827349697472063606381995240969656849821351567772309743341442507752793534272477120364161781118178543893702892730919438757669106727821114771426075556974959160632616320445655520107981720595403482971483828996181683285342057433114411174075774413786086063677683466451316053999674790684959980544034531717701982903652922283017848339200617598558179010928871644563720813062234100796653760806338795870341158322292970816857875610328757992986376545646866297454350977979181495344601288226490310092250884789408156214636444536978626902417384107874383555468341668483049465750776720679308015273115650909018109811585192287635054492719748654852523517719608620746481791816832576993977279100872411730464996019551125040804696609887481222582872557790431271443229447043126402813515496995152009070965143936164459189307447372454698434618711313090141982302026607213983466632929660202219910348077186845408490218308999823125568693449943745724865452789998482437106748891385868606356760418681885818992459291149501470152418452417978817255218061090159938533909676394033065583114447889603889929569490592958028181717464222789303373260769501107915611698074795789955061650683421349720384465105672613145603048551572236662881886481388546089476306079544579875848786615208241939587290129808973651262154849211248984357523333763180633533125927084340075740306714647698599813635956128574075266410974151039742135032365033201719151882319936287444349729319023828898508312080361204229680728540909189573020450461947460516362367311610042797851636721513672453812658927810785319414122090807447193686758119555371835081549256738352105219534479893816303028732585013265777595379250496917158177703799649387171479874907142699260843732224701554774630409826453923262717288753254168548162685296632992718299959384593409209192248468669662384194438082627551133270805774568313254967997081277586761673978663999064905164849073019351756154209363001928410868818600900020215155204581515376571181791619124998736713912310895059937623022627451466134645056845108443033939806355734522144019138142097721458221892613336007034336152266700153311207717953655761579831547607691234496825141042116110526098890608101838388639932670213069618767198933190560103309048259320132820948956965636777343797955007769804711591085852449385099773506972271375317228969202498272263103087030302354320737301902818206661258618336534545588764579212242825518520832212680262243151858077974650756507788446804619746436927600057240544448026522035514870420688678033936407161517319346775625357590748068758903524114607078174051784510113473217124412048652023870808773942478641883956689597392361171183779769491875749158539385454374994691720289551501643021376799103302650437935679426804164218195966735956030765873694970261587438194069418127880263931834103856071187323327401603526987082489341219231580561593955323379140921190290663108653975212339125215688592684041514072796987684200692044041232966285670267565233729342665827494860013433835181740697894453475929192411734545292006543680393091814964052884799520086743932248540239004783746146668881088801891327747751894679273480797799179237587809927129604866228021294590908517781943225493526185273960334191582200471067022588399154266506356484339889176763176466625216168988522574511175736958315772628632951546701754120947348012962845750943507679670509372891622403576431434622179862525250346086745827834299270530988158782945712794086542869375553782246081830748560471123796986195114017472674091824709901233765992148477774448136215255758269264128961435964268261635582583095618129134253294052617154059593712822653608027149625359378808636423178542405887911231823664164369650337568643642932874518019359624758325086723695418412193345922766296077843101172897180714888472064822667688970728420234277221453470310101617005708762696265798993476911776386569536689402340711671215023255719071222968955607018846613041781526096443098007048835040916774973020063274331519415206525046332882727430803561587233058112668819669546697343523118709400560864320472641936712259547324028982402957057115105084293285475572730955221176480565997541753681749821136301454901961388740706489533477213425507014269317720645887535337025970573220219018072381233628405745646316127515785626354358140905888352438386934254928819106993516944811138711020215138190629970156018465635403149676539422456746341987398758469599494685013848075642024232526559001255865886718576853507070838268148050851862504890319986409708951787527422538610599931878623468048792777110780345726604255562420447859804230347856585596109537490824553423063318460833905399603387293644189147102631531757605137510552073297001958794263588841673033886886595205370790997621817189065845825527861718414599156044999318267044157923565361000843305465479158561710523571642987434533345588507015451074729953005251661604857456504900808512727622684031185016655308608560071540531824154736212964861619571887768571167886490134925307967368629745620957704969077051735049351281722289538246686133415227574404267291578184510080695164857150804846918539703523779908981242159990925838280063162913622251831034079817626642236658757336825869891762033626710319870376335695979763262904269523536964693408063379169144373096532576710087436530686571019449985866663867799554989736798855907568460773716950347527821809194592302065564472293755050776713751398402465981424431120477384714605782238133548340362865851821850291395911789668635159410955217458468800380492924877265033153495568867452717206986008295004958473296121389529641707047514982969849910856437618464865117828698351417348110908092324629689140618439310041452923334276640263406085018911677173219433899049056537470303176961815219414840631484651985519232221102474396770841953702610368232096944653542478639911027199364239527335661310814837563516973175125280185941891575732197096228529465943543237244080151801428923782800748755147268063234263914431294334402278667455244500369463731877458176431100126893685129956846208551872166251033734074803610730484341292905295375448292186849643449505645514159348300402437223534322002723114483546037878863821016653036662962311292348148952997167636175092272365151416856504285014483658234561248454062480549017599664802314911910810306992835794586504898792043073360626801963664555091539914917828448893667178419108011734922223029959074932026811468369228094040230223598767734319103894358304354087551825513866216013052395250272881270054320365298172367479955994531985563588844275677561052357569151792818262591503223019333496327669372864120694889138238780815101431610123522050956582181368726988219692228907633568682228057147335915133197706700585362244022580322386349545713938650069555174785740396436705597920992516612596808092137312674492787678678693437345147385958843908741321072271690963015168405730348513464317904336928650894533873977721807121005111485845472525122188965021381542769041259808222416787420263674026352647762955662621877629717465728680824630524116722465963373241127558715386556869532959191835359335988713539513034702229557043660634740553628552433035337456342591440874676868014050595247968051826596221032702052283965650477133031607018784038384204277772149268807956495701068957677326503421887871212669508757535136471436533329807108673226113285344349639070477828340361287203265774306416573393964157681253664208129195600089293539817180491232286538672221376903785321027755745218166901848947005979368162563522047803393973470002072743758699682180201585828175724966287332146651860836254529086230052958224613959574908121144326060850733628827933099595089269666776000917227347209515382654537059146432382615062063062513149408246862983282630390405346051544772067294640388030598761158423795490617340499381705732781389858251845625520367909930067667545607247710703156809053556843262441189449697391063622600464001630227947526411211008938411602589151366150585333135118464122155114022251016765491129017674801913406927651829810206378935017090139356858877958858413761017327247250416323822147423321940777728234852597141632710773104246683560315018942271643408344404163004808988045912030633081016275127757982759374603352755307208480924910585290203959911012019529640577013518219987015780283237076684097515826909743055639331192250091862143690840964579825735727122277208230002341881796753412321094912120468603079543386074496076298304238766530929931195306299742489971849736513534574818478801802986157251682671907910507755034490657991616745417718783715336328998204478554140415479397076530748799203657974107968528017434571908715793281554671820212034602455148311213517957606853165621781499365900371866691419251147697136263192653301089937826941271394921771255095147247864994433580345536150426745517952665872660710803704036945820826098516856497775425712643346936220607787888466155804665341638878138303044387374979853358153174875643142731420383858000921984422170988320083217801648574258816593098636519973003570676647947658732866808636849012904124464751184052214973230352703197195953931446431430184994151300930484412825358318043038272056837325504335989819613021525050930277006921323441193941457862613994164195729463750600318338360843968986698391710261838697076052631836860911677926515089809672213348777912567329352983541748533874145657628034779566235155957520109900595867514405807432740735165927942593236395717964251623503423356140447395817632519280209987618187015923208715818383256252562526349553668802252738390901883931480188584636737492816282076823191154545231197564128104187910182482885674754057150639672566087886986332570890321657312672979369913945288326325681553265839664696379863276236860529623978532461780473520148318703182070642875155559499812594800959299118739472544308003694616388009195018230934167333260233393047719063719533930248991784050737545746435897507996671999460059525088063797112626837534918161380833063415200685072558264154684325186564268648080842426184190283895674235162810639725328880627216017308426275503023026405519564369277477277563260940962199421001644734484579113130249501727923159212838763283537482218790604908316900838014407386690472069997303566688096942621529896040265366874502444494165130848036217049789035957361032245281755417662615718622478411485423626419184391708101722824378193185927377549468229165647798568617875409294772800792953562313235904724444750145676531194489978043536548323286875838524378664652475583761207414276520389989830592817797766747186256265624343412116873339445228950315822557774297604209576983312102449821262002376272158778088502754470991068840047554993847875493676229535886505809978160645001208584172003768209813722519667461684898713076781692601305156921458438203991444716033222842276443730603366580553836245344500963217274549273412325937539832148902742334673572217451334691471252658625239883275548221067003604638870128719884015505960542663247738335741159133876647416890338328234339085377374584946897165910658476275674692541743683004934973569688414382853050356095524091866297582252724284679006532516874971085254953438032937078011930968584577088010623830093844215948986842247990473865177246547862749466800751460938971368526061973886283899693182885024657407967710809735290172710322846613763949909665655783933339725402840243013423093342791090514219391213551625979136045937992568038301994929238807822820852017894130806073436573004289229504294157689313445046568589376130235722047225464182699247620042457828639114664856000915663478111161967690418969203075490748244202119794530913270450025690297715246952828017330588707739683616755557267223838961386837420131328830151895066015092854486804214510457326136889384167600652173626972540301984517591471687565042254690502555007793640049546202460873260732945198522482907110629241141459249722682321507453212818130436505360720195374651988182947051461445672088709941135440281106538601232654328433391688493036603148673520684317663479215021956238404154152474038934243034710913383139633637471928362590371260594093200897525434013134993988392739071558626108764379599283706311977247840960778232704401666157242814581250956325390806244300127829677186247079470773974468608054343473370026673581972660665931687338078961144863413230127592382788114395673985431433805115961804500334839377727959693151340486436474573415333782249207444819476947136564138295186076945407998212700528992061239428170005026835229125593807944083092757988112264169158427931320021618289219557448898799588612605240108283923297609244431024881657819408833436363172655081060806650073236988607831462176464707361911569584246940079522671649133003965426211716497702992781390009513490327346365551450720231887262919975991188242808300274046018287947878349626442345389944165401324777287568826841977591448445104140941590941738245266760614481975172869702595362321022659980940370927123716853426809048610752148185578273383140969212073311230445483326364374329176017000261800216419354665275551646560473021368041989962844899861049489524821465821600289297383322804366698281587581121173789176814609364807634073269269118268028128409318184321349774056023725722403101413781343164109747223549866179299733140998840490873256279756534473447829035159314457956531589094451470216008087145233573578136571338677014994266465435120941761580081901698313932437332529227409330960805987885550862546617045175916070631134699408819890939920402489406266049885970257253844358389342161967503497014849956108517560571689394976111561534151094500961729632782111472632677663693073554431012253436774750918155926903183938396672011348496001135271439749464378667394313986888579093728431967155807998566572719535487759330773205490703099808079812065371172947630675404507260449200067600391611958688033812417054826846070829680239416216112271339503867563436090388190968340596700097010482972626643669387873925170957043861781403121486824882277588206587326572927760230661489250390086638365882795340317470828286118029281972904737474886096605387102432826736736241514961556525855465589748108636972264832596988443050106396118038134810476884451752890632840914630659174581870737336923978209593110503755252927090077455269662539070503113418808698219177519153463208215979971092293145453182823071743514143375168330979178120230091502987240032015314766041063051964535669514348929227016437868497257237597507623474013460566611945257223329785862699386165151408254769912259257186143594047083032441164726962364407166318259988908407417583554715339324341869777699628885917507636368678763310756060291507625241963137120643408917875602535478945149585718970651985392378326283908814334732662487502103527291602526688636541217517928456650585565453484460365267892089780992300236480940241634726890680742321003165416566845671390988014194888296416110561563389546734198863492413316508714249272048153067205254426554288305908493315292672160880967883771962791046229494350532615572435430626243870404300164988571642444342296711868699242610491905404354435994757759471002318053470090284472950564196133901105480871986808632972708245982177664784229833309918322198791827424151805302416417800954570738254481722161518546241075828411277822948008746906578880219111258131954869884559365631603083602534211827812836555694890796701887271801966552756502080807059893881144042083095635270343272308193673741305934980307852760082917928336386576462388886143333587384269970987074907332952951550578886852123752500641285761117219270156031162674050264925387458052096552748632978753437086760525465651820704223315617158219715174057974393561227912953423505654378681822760584157411778966669347389026304902929550276098784625244767126426112526368739832812762750447858652024877808402286505264430856963339106166499606434818261927092560813009373832490841075961954334641262065277393041818587470844131179738921681493920310420173688367820509191222412714635670738382455202357788359506106121701915107768369455135810993159907868993440572631891139790623658639763963622055576429711488183055330380389900129502512323680687326442173281581564735599435381599176873698651643833972418420953055943471374807200966284508216197161744489020350651663688919767785856633489594885547201142074455958470232229879564102437855174668423252263216186435350927936784029385757413738200516754547851434181166428889891055145837282206222287879365290845216957906728349849941885120441582066757356946341010587941592798112075757558996107681937963644429318946997189427384698049585487750244148127410395396080316124458953761652173446733290997269954064933550074785275981339351796157211889928476605457039193144238234841406892901118718596712652717190236383692064487600875823193586999663547978789485131745480029769620207370302480184020534461966221392175048904881381172149151532287013582805333441382511826191126856696864565542700373655660135141986302204320144041845727998967450075233153662238671252462246056949932676780999234646016359782144185812710953111756147287092515725806740918287051281401465212395139521763889286921966487837951720167996459417523372948473194406985059662600769323203830821862315071798514766436370538357789122145796660289957899243985841379598009722054327342883350292187898589265929926965239633559862088818852623277126161943098580613286632677020261518916410286693410674892590498994183875124571364089268873240689751721616328740911900395094363059358991412752845261857643328918096894473762400239096047722529501648895296581421221031353406985230521465664096898902663291252805367105679653204864148431905661660209667197539639285880823130094295113814173919353646412364345459569428902146167363100025873976362193529202974985922190534020853992231810591326302968423290418439998229132656172984660876475664382211644126424304345686294584457607675229570829850308967752890612232420858080901252886471349047168057964606822660045904034161624413694616750523144078393901213408966856906294616552891152411885761198192134752478517302354961374807856391933339543217111626823155984070848653488796888401918221410894213406931565669273358836945254663586641597476002784762162487766859052271763391386011399934983001247352285316330544640194177680091791745594983952249968095625315326475249047624497947323128024334755268001972036650209100386427457259063395217128932499342259542347857408779943917979591784669956635205860964617747713698405142350579572025956280894198086261979850824954730333317155910882933357887084185574143361865897154032525648954676208865043050650535004919496392594157829955917619124819183243843667237553811901225628846306372058956781423061902664876750811145243106459492718236588885173520549927836686516568511902492025878410465377554959060680541951284511786859876130433864241219869454458028630225484067404084274038295416727739148524136282356157358457737608438318359816952057430111808132172405872995414380907068997209121088288569847925510663540948099410096996319294811360829407084774677808758478633336257907428481603792228505027895470595886456378797128219134910691612055630238804373346785194841268759465464080733337353939438676138546113906079312370441400978155730761887419472374887935455880492746226931291937676824124975386938651961262987373956946637646834997489544923484558018150057284964567786811335582491543626772160206655747545169277345286530432285666286198290780106077795151308269923228940831390426396328657890984534339618442387398910075359904420959773749521642696388414854431039538533446818347186278533369096372802209745539087222686710101847948384023197968018894938051236320704978142871995176557848610609629185340589530068296445923842878563757892678269688442881661156208707681624447893080105170580260182911812701509446505733835274056393932000916072109383110299762502497274322297910979017062744670774785393891148592958526810428661128542061852124495471867536077739127547411947795458246491845167521489535071579196688177161490720284956966906366084614473267774195624023633775269134584722105413293772119448770527058426072335090681012681228919213932066267483772169318933575676995601900314030696517921426520168958933474646711751010836715173366268063900561923925025233307387471195879539746449250460576433874167651677655996688072365510088220862856914981379932978021884911867703457218035502080796572212619746682408029341634422200995414613890183875853179384921085451317521500952798157917088506077643763300394605414965903531692180956302869019205617812042047969885983883520422809007527288795284382840205551702231314820955414641283459297860589751851790794958513939553133751955597562652498471285580429834010858259303028954871566007386932792036329672219357195193793909250711522922291828058046896227488991403160868226882856545360819374434324979245464285796558258933943239905141148132328860840463483658960971296025726883908906525624938120041860815470518698672332409614849953272174909425004042004678757335084045707194909924919852269217078613421942769043630113633039334395506988775781417256972969651232093620095916479255045062420910071813397728576801701015961946881104856180758572283719331145831737721132012051835212935994335348037424081620055808871464283236415757582217962194822064021443151949826515900627483221533457864858135049044952152272615992564674630922395948809066121999014156052857068583112209448328413463012445885352659515036022612498125011727735773861653483802843091079083704463306012981820655257610643866263477299464737262779035283635848527510120281873193520136054434741178566107905734327410024798677850928676683888150596696561782661882385557592109571983813331871585923200795981786854246606699317228677975249960121040347260201927908644383995260089949908372432251583658541228504019096143886501055958048324635359582185034186546092306534585805821019458610151177461173102519960930172457320591965269937612196021111350831343619580979321992378217329925395268704115582749475774373795161231624857736430216895205859766325106776517336083509514999222476268196246420617801539998609396112135658808051731470931265094339225282445673997419040510356914445593275177503843782569490567075635348245128647620438487523909206868751727927237104674943387024680864369165340374592070976878463896370988924697173049498228200053342263066352179104663153310177601725150601156140939874534669895425788898710293507122451450351104906815940598131087058949873456418194821681764290246025647048165782959092974580221781835858011622999881561978326417257878445198080294632836823472477223820351945089431790076482827466581299858422463174654280057982303286673570608745838235458673019751238941798762764431937055136464914883216006931970674586236896110200945962553138625461819612109013006476332434867847723723681127353556446763536454635722133151537351982158185123664494636036167772761220199237278058284585105138064660185220128154050739128192810976693828678900978124020024334413997243944823814010052177109890014147218154754880705917159554036986815978702616715066575677543564601217736252034689705465317667278332745988206392009325779913428125703264720374508182773536437309771104898951684778108985410722098940134736012446621850435694765739136823183683598477944135499225524476713417701781668529422531115544943012423344922133535199220082538931420870558873496234525247197397570450702016131896801740043263523144996425214425787393918922848451636267118065320469776583664689309070855141833230068150480008678768941589642425224594940136256449241781916595439187939099231657021689490196080416720740058699751846846248830311039949820766578879076135004657509346631331349085360244281138752976721518797612954234807255235125942159742315088574167106917307750390063636248688314126913099447785490184128878321598233424998145047042626625164339887524237802524648157326050940895873626227343309582607311603412760899744964308356854171552091543971421081597684804607995211539465198328367869026266563118645154000212836971797790347940276058678466762966107978739294386041811953045602451619452972010475072638509105506031912015884359657374969880066746283957644967013482497400566854826147678054512045961467993368550227993662199094307211778864736985156914610346959330330739751699078370707651411590381858512462406878704943084055679839862787036089601123269140989750885261742446049575509444917002885128413484760341944044127435949698913195084361517898693863453196496955621579725765405698029497677305317965307202650351773971414054619422615644504644392545276213129874093473678567862970226433236546315849500585555012203640563575480524216065996568005238821792166753487120162115069304344839152772566732708494621302725577897350303636516996817836236437763493034594065382930208280540999998858436079269315516929285332004223347676274261217901249787580384007621208587830684595530235335871456135524702529666863701316242554382736011760798051070004821171968053177056941796215031682040679248253997423121714149088109682057627409759039393407176358587228954556234349152707053520967071850873403697825880072582445151677784885525987745957722767397013169061434116693185024467593424804785948920144554978773988726001037665295543150657893031342236929992133094188443997894256017963135401479883158806592704614694186643729451435666207607371801336831332519880298031809091088151100097201615133753258457630356935363088130074562893943689549203041175756240229783186847190600423569575936532335636074583320818498222740757220795862628143122208784917682020906847568780837389699496393185863131940447435075420011301825410329151027182532948877214613240947727226040400356056911864257167466208045820445177166301736661268929814302969751796495025083135744249930777067772555257173698633277419502498409730634863367960183087919495508512154637165533708350333491790387672495727360266787445553966358949899085781544456453345987680155927852537739302626184704399184048935771456916801952737973354217928197665772364200279983184499247862531568975095594832552314358797510509675126215960228527459137831536546968551900162344450260978249538517414601874605817421971175919397523477587347132421677729318855702368552081441787531248826697860857697009682801596359004158890359831135967390835654031044113517443685700681213220705437929661615402740897922425488825146781496109575534307709538503150991717418643152755287536693075895873507872246000839360607615436581508090330371469124384433749675324331426899655265837737936407446429690224691510242976856313236796790184910861021657621160628251325208434555631551711408342812905592011390684361316934855217680151353454774451151787340368553329894794466539950542436574984805307723244544187539963593418300597857585112494314029582167245668114088192526878321579577517722722804774654021374072326059559046850745201856035560641459233980247588120758564395317964570105436234806996262264101714628368759133626761059569253525732510154496502860228026130365489819550920384425294048428506001330794592904440376616592664637583810989806936775386416432789847915676007343808062955783627996315227596707553443783687839912201630006179850526644226721813993861361019141744795271468638124179354555363702374845400530750839963991014728190374840953666831567931876824473631145577214575885834092065296126797683792478080782025239169967545766600781700705104990386976999851736491942872550718426650346665311252972432510871059416255815634713267688810207562716365060541008843489973051394919325611781433335303422181265265610224133465039934672426451624675865911219347869619629188331369280298283205715286735124140565592207204372129970565649319106600881250796305682543993082153306010799356822048472212521225043033718735017089675845145886983514863755162655273450034276874965335169777145330401052841099208544411971848325821040544091814722356883102159680036592740418401792266253602558457039015794118150635135887607894105262278121666113703641745747716438311657323801382807571872555601384190191157721390920591894846144518267850449375794745356532812008890837710904346854852113624394521380941457497355224265082323747869179787659830742125893594595648078125778387325197833422570919558324085211258550768324192435902261090204467770426829898772655109129757033412004469516999580796178967932438699043191755045587760970274470456500758150243988185965873234283430850300359101524009076277664063128399800944125292245486046745075180850316834558391747247164528719823434054092550610576042249096239264172430632474522314248212719173091095876452953839794516423115134160323946830880172240417005974706721580712859432689503629127735369002424032879253649088421330164904835613685728700324007451061671329383755508422676186468282596979307806423794547350977881053593544663924610019074190682315339077122783864947153034151190426197231426751393231215676680085155501230845279681546507764601821556829049690957688236969283990456471345656271529554481393069688901043128972514083870705790759586026729921401896747844029668855243087586580628991838639155435573456083249050320398234408135029035954129262885386488840997336373596313780851857695000918760774813609511923149076252591299954978032454238635330611902286245955923936153086283304428012775390609067283167157516119454194527825471081465713889007418810637390102189951824552676629610997632963459333756194903128091828275239905663481116735105995864925847039402141344251325042029742258815051248169319675930947368597577796038930673623012749224597585909338407303663445949596799648699223208592133531412808510322183556803875313168517755874410612098246208319674317475076569908140849407622665175915903753911889171499854948773242418005033616691840455875136594912338987116224642319499950592136705516213073458536705988118583698130360138560056078466905563751422098697166727864618079247770809918101816966613173669613776302010639250673022915853027202939446316213049948805425620194653495235236976946862127627846999335670974702111612498197203583620693423029949507898995737910818513495624795371410470442847464946527689698552618069686483862709198223235570698626171406222508533855742383869625663526590144688890513313532224558292346094290362660462600327721083893947231107936366291966687042129155726184713236855501928985020744963248940977946831756694416737830576437300255166004002987210791377117077300496869002551953794884646826510628919665148189956422012998789068584593158280865066507132777957387027843838708813761866705104210191807654064475436797226264123402534936880949467072882029578530574843815531643716595137635692525299552035441248914503605641986761279381560351550058717305856318596870335960184718923001154164112307633043338938771856203992424837406058482049865504043735565320456540511490989410241710402965017656452839581553377943530679242602132616182318711988073788142701939864162813508016451738878003791147536443191045553527051731491993406128368912556473489072406947357216516703384870438800825136678789429592534639195388669994990356900008356407662423160735050083092186736175250309046493872790429498630671720046778293550707761401533121948152553704448258795513628027389417578551480956832601753141788834335952533683309548808283995524680047191224812432647957597720066132921503414710949999528516882329596689094371706612600635809564501343967530498644368177807485393891715571890052206581682611962766940950217281517050221397568877790622958444952042214734046971563556570143535331326899029620456410032772676978856880877243553451295637288372244439981867254619169355456437712234616164768347198616330648471169397166115561787315659842752595329587749488956904974681988267446401773045496193721501252734629580933022839556756282128201099873007420395669844134515773410326740114366728556384490186086613286477968229321360122336355011816294430147580079472527152709822256803152372130538999895624335619068859873538716879168349099582006621845063625915833868856632513967432529835338595660640389873587828033079121198580731291945399185232070156314915705870621607919110277913502535134796071451067663923637562613329469680640883502496621728233762036259341801545682828717453636998885820692383719284822042621270606676527101701266976528114711945275955817323937364210092435218483987497439626509338936798822952394274983533897846244464834447699976848359919207577571902338026828642444745133589158363577258338253644256994334195279407229480952858089579105919954471553126334883032501579228599348100107440360289606834027673937661501342572011435792897355824197853699201167923767816363527003931028383012244184701210448186194770816283012019388936769156562660375538704763068758478284129424974295056098672658754862683759210620600394310417934456746089258806405865581378879903242540620751658130173956990874678910203355846621445832705993607578702874089397746499681720540615049438064813444781599863208050465458625105667102150814887013774522778768843187544310946367214132849088132523816017257865273076620781587979005756159032922333678404249934205214298500748297767350432288674220339585835679332174373085539993192406066520654555742839244178415438059054320986885849145540870474740313880466572073231997396997072010081717334148284539175027692685607877201066499587401648456277473889067764261449187950430003093339252143343048848026030041180365140883025756309946010017650098885447689611596190263830196272033871219251714073650660209759967783318168936964753370514571914971749678716977336451202259279131083537513400368383407433040549655323491187467190070448846289267694464101523413605601628391340644647299954337578885466142092409665057262630497494998072633337755184293131374419761098107438959710088662472958911233938889816541691019080261221948639227477974758142290484601800752793772540585193225415937860377351292914347143105792372025881525522117846779127083659536680869004703931713461909474536054914615675752359636235097364764610727813484066734874071386083975971595930506235497563658380701418081015379421363724974965010681192422527206642606020684927286654662772164037494286425285079800239274918616067010898608929931989616760674296314239327787671880239223286174254385983188867145578585421295159102201260617840119416969775501436614677048957907019250607441987082925744885092107469123103735317095491674402552418425392367055367822228053063087900419094848382496360490732596909464825711712489298591621143186748426657194618172514910509541135016383237284825760820881137803834933309691079415364523991164194028454587943387165146865085013109563440604560647459776685692939643778438609736735447274275720991861512835222023274537474420467930179188488939526503699245525380519970713972441398196244231990602902561454902474313541886861055648593963913379855929642561543073582297390894743025471003228290164260959640552172083570388807756545881542971021650632755785999752476948093193293288258444812970421800382756301727922533813514076438122736142974130450259372977750565591698638326918877904731477425545795148764239865023378376630751553747213667527959853378514796615118152715893262203700314837584421595671446834531167242179777028030165120944812783498394944217032000842486196739735021726826116825091946068713846463670056503253460675348163204107615518040702707307477644270571090610067530974424141891877878815264416793025703317097694751275441510016313387790467905432655858573023972231332869779181642101445929699808775620158263735709558158739132357760366400275398906752922941039721509983782000591619131640024452440970975666882283833787360198673298386334297717628813665436080765526207402474454727167891497426133211661330145603421483057598130742370691760961379245039430260396232370345635917901258907317474593054095007837012481937718355763117559122796187898322261947826821156231928394815026604652446000786891295322848050677527802650885366517071600989867052179064657847674815198630883199394863864481317705173754406318487099002475703616822773046144361088040057830279546084781392417855209014102461128014901281177094910810322778494268432235304995394604783390816699424865587412387353578191159596924965374587285486480603056694282170762838458351189569976086176070681198045040425395348461745521945467348481259172738995019897165001189992688594424855175567216038881106377577258782283751702754603096301812688383073914612950427064611732067557051739257336332966072685730034059957093473020218682625855183365718100114020186427803767741812072942861318609706003117454400593555544462287365000779036996751777581732897279190498152868775728761337846580523902980397683543550068800555980203482852522324381887784966864540919091979892661079710729097676881118840483069331878892529971839781712951208103269765178828236634673335753096112464621860243524963089309872595056571123635525820294096596505329961952094692673555768428899490097482568679773931541885588355557807934573892063767365787994862118222581953153586210119707840869615997637556069308747857957482256765852965478794966409159673301176355190013931204834297473211504488299230086560581634138661496135962046659314035129474121369464326769658654074758577464708233009672033787051898790100076609444738569849813602951230425446561120064897158027115436864664615079115731166244941544230901557190032410292786440518473484702043195059748448574218638319211464981887306368028768708149585653065101820032716644687270256962417404450710469225519758984064992584147209640974729042107738999010490452056745844638099683727927120175511884768141637153067600829397431142939309769747171288275961202114793230064170233385486250566073467833859786503455463046735630683955860612851917863339548193299030588475055520191487906712635716297891267013547635170194718212967424214971428585376036025173620305332916479838929438830454427213371372731695512462612523605476359408750638203846872979437311219672136510729665423663147513798174212355565253570030646280520740861881224417467775366369882729089213147089532818802226015726038201547865002911971017866003832919562612352668849231170981853478200192820997411136547867597388471841891863619612664814823091365474103603386335807253739620361577794324379457870648522057555757538235960179450642137135088981372392708205878676249242883920779176537689047750319623473502858399454690101872478169124834824953596387664069231478603783660597330743460808075287350999056746150489256912309510217609371077450586744102455500136473454740631580560333475325421947468040885741771366899242024915229062310556108344547003749215987044307994793804836711195328674734279801863029445311880772777916346641818606257178548624914826652856716708240319733055636447351769237919020992395580167501073765202587289167646291495326941520584922391008560423505177415700985612889977858160332016613480126784355515087070674850554290580961700386586538244062624605175901736648741439657059184784422210877020256297653932780174043096065835546148890069882607032114678253592495077361947920888177575193521151478863149124926041359223326681813577326208437523345465035113348944182532742988887390055562267701108562393165576736481774994824369523470460723844161260198742562937344861216141769872102899703288244978871074432962338672734228366429553425543555286708950960327780652138552699157080430792372621085079484212720536706806635202480812517140603843686721855312213226899269446215832402209741878644064727412720472983776737970688192889207651452314829847693259606282278167003986147459680419545151678494950564550172042739505444149744234145654592319359507527746511709337111958188294607132801973828640511317188398316542694724538331950411418635048263258146435949520186126430975524779705261872700960612132840564739075380754779182794286833188331764809884311587111974964427893466526777130436458046262869208138479622856301344312885450771432930717695853157047737110609096126610599909469643537812294730600840310693675877620356285823902642472937129283953205467719265357051137515653655363417622347663299193959464465201561890846062225806654098686597022188397635268252180320952371870904138044812425064612720104142413153719519362419928294048068112359469420494202065261461811682668629027025621714506653064313631470214771462215030802016988546269541710776022416808636545543644826696545551290557580608590251738967145698763765952976626927953058150716434269923160270245412174192406974817000320722777983194028183462625934455984669332715304537128830855148016328959290788379157964860418320315906875174355790734236244818459537288257675955978621541885931497599294530638091956687624708293038607606660515646827489303519637671317665490884360743495893724899636560715723900058056615350901621777986402111052931935175495820289078689597103769730344542215428059951686408027515107854508933275253631761134741833962994875022231949373149148775116176232087936710628276912072083756035762514607833398826619918215335989596488482215247444680518299722888786130800424876646529747085725115271614152302947584025634646797365053090069295620148460771413075630251484698185818949564370406566577032354131459402576941287790478126805215517614747279988146079489002949679191168520847255090962629154468900069805530769356297107430016818963787267785685768798398116287426738287747872875044435017201816234280375014119052464563436702020658828556431553772934540101699200949936403850640967046635639814380253470422702060559437385591734306832357961064501469328976855007562022899119527138862409175037077810360005736462440326883429349349533874207224539339432137615825030809661275269660315370524192988339311061332002534045876537383682508795540292271885571848316343101410768606730688529741359433496203250387135923029087333266360365360299754579128989620840194304194261207763920104499880408480491580088133932258817317474217021123981715730547667345627665167112274589699806178762249480084601491753547895687134784308034881441912759724164327501570496757342925125107624284945450901289697393962930056898017918681308519979152361284462886882388447176334609121802800997164092618796592083457185102254379115481645719470439139031790267155395470530382356461975368041054611750404829223734093711077511291598783567463128375582606212306840397780771345211792493964609309297062752046929015422927165868516530389798911844454901911172203459172696398988260230742267871997198386627377457372299125076640069244897939939116301866763818281914395621673137108571390649007886313708448074662024082214002964192020941443102424430596630305252260060310194839724900037391774795069725758191193617504489714065676615716959661681627613285441568250872642692497351510738583104751183899281074446564578274827954415324925396293695178945702096388372678607685794610016567038341517201767123790924836403575811270929691118241982536814927188487121613273494250014120367656938010937818879176320584799575529282491257071771810202803378231348194980579980893368373135424602256177785681106474914445671108658323347785290950704453373146090778292293150089821996112695213794046179963608516373064878867655971033985146715081258764790335960656446937765804287089227451525538926775093122687495853847383808052059545739610676026902499183906144147296836439925996197125929079833285920066567762949292875591566073143742562196080346050378219494784423300635095946671563037527247154293993473485456647659762428574533974565495522365060522123703344770830503731850188927500261160591906975474653731070163133103119901178750234257735855229530280180489752267473071848645006001193835306751820685314486050410178149683917017744165971871389123019408704106838813487450341393906928287214630482513251578593227379498506665620668130147393673093697377099730672470291132207169735256992840973874089445666749708797504309083715118408995576147981794935473534988859530562355655644228600904655918847121035870539339573249732610233865772885494701903251639104261575103888333981223200120623987818877959720584072372259193885283851079441804316965783921436583979017081698587850705121631498546722719141697162112318684029829493598189856744344960949226849791449309580237258622326778007151478320544373493968249160215532223474547036069262176623083705618870807360605087889494586610477652626717127658158045503393323695376459037895638017916297101857161888388082233002706933113198337600192516784921111507625414849851416578696055049240147051045722650401945403008038137546645872053423688644313662964506991185578080381983524579949689933879147077996223732452096125539512983222258614897703287844428576795916868050950660217486477910649933831622529431401193838038154026969920346012729976297246665962565755255679663702405605788573242365340971258882501787965776830590235586828011864167598192123325811422949823934409169281843535538509898662240911470631196834477058941475222874634147810005796625413410499390666286053042369318241735842259061255114314616714100219699114263797297761870463694425550114139158721350203579907659014931377833943379109175617273381138031496177942192181540603430045843065938133729751652626246277308095936574375114328028454845401179229519406323194132629749668855787257407011020482885845525994025695782868326650795361503199527491428031852590824271803409888869746218884317999734924012264290521922653863144281949330106800508034084480183341859120543040640360573100989661024939632020059005574338300415247874795078944629670820558652161016044975813466078500257427820253345097971973964144239640216684532657910696458837262826383126698041871509647643584512366028396019547039672970670300877780304178991785958631657249904474171911126662931756877789266675350326218892430003066310896128672661362098092026932799726249268938037710076144169083911599539413152918440925573224093074057548404028378988460928342382871103027665624599865600212293980381797446099193013675733194097238295284237920649663326978583028705882156031776941355876316923461079540570459993647550842048590446855753451454235705461702676248222706043952682956684665787985998763205538759029036685162165115517543505197067217496485664851078078436860271701307943327153380301951582339535581754503258419785796850458640319096736149481034039979259515152781959086794935322776078220493004777694839730243952793087400329057730175592907461053623972792766955175710625211558067526926590375677809154898947662221525991347779722508208262707086662934916966016545199274004142643278564515713613106847128266333859127243151938524667873272195964938430613068384292111493671014249853648286173680761979156275423403654361502510017323354663454204905120154762139062844479618802641342386022183307836450720591082752023015821806094830697713496410632197573030028146989516592519697901193703032859783527920448197667591679271693109995949578743365945216180159709608569741055068773304144918753191443766564285901343557867001722448852069306863459872916965423839294161309246497102091826474313682294101865026007114921155578879585825018639629455574369955795913803783120439234595168304751344482790663474735024977090080969008465675791348581675853648787006101190600005261477355217642547660164813610637633633312721537847203820315025719779727059912512084079423712131470492923373970736648444862678142582558696580016800693288208408323358087531792125296163895586755577088207689772369755371152305199553827795694045559657044694441605261954446236727590627688189483474319240157015396343406839130357169765668986743172685752279979322209735025993159641480359675283750633653825895881209711043654352070095900290389233261521955584932630474452401084154847363704140151758060138431257104264584719048445787544346657042199677197907039051645214543094283054888463086384095624301507510803383824963834428703725270269258738485021219681982109213027828887611330929575471622114785535072057924503754951241194500666624724403925509210942019509121954256297776942709299073379519377686682499218574678280787566733903216024415994132304064227668622795977125803281956600784286762079355855692659205034060888228523031287363196984531722489373435111559716681974034268636171387571571312705249031502118729322278934944588219661855796433149516987828702236119566801415903250946310155019678477636454041204816853759275768924656257652312153390831737793749229546035594167899055710199547031452750485916963782545053765570791517257585614023567907491812408741176000773250887513674581731007040078928057840187579668858562426086164421244452011366589317264239924312462692772014473902340245148922456836122597524144771922258152448571230828792096360045323570526041038314319338538264758228144727302620504269787391220093017847104903345336884588868701199114422624293977195040267490835389130326284649932424279222122050169527153219646817562710305325595283352670856292777558840549827957989187228148057079107976468033678696643730496416024093161484152572674539574378453033185066111405771630802331840694329148949083632926251012559272539542848417394412678622803925476712197986227221911511725203299685676346058169396257028753273005467444347332255262440623275879023766155297260829506258006175649580224239502206834992508259868217338650253301458906700997443947454289884004963841182329272448560526687132934070256708268751455043655524014896607557895192212522644509562028832643569446071266714261433418754114163446679803945572461358915156881285163123775414944099832899335513741240154207115176753429942084839851303436897857325452666883290874586094821806423954938582931477429202610744755780433122055733082152746616806787802683923842246344850293901933727369864175194289139298790297522762280905186427274355216226039640026919389263413961366582230580738097594680251228940151936933117977223516097357958660241148651027216886285491324003853667803119726682345291455264528436258960074986414888888174040455227408688749478490014810656818702044202326545521483259962367819177138327229856015793640433218569163409302919285635227299365503970485674818428567252432928235670360963954719613126796185565014630169920052468388410980733683278372765979332235618714102766378833941560979453564581048856156881917375904465955324713542279664872224623992563657050261133037309019951045800372993212580986553431625311425606267183503527096886986122795851999491400963899411606816916618794243892884330151843220950214723449221778971282116386077807311327970558719842600439119360799496124774415266120976591886135308857229594441246547116676554067184238334705895750451621867669377180512987542295593059519036598484338835864165449442337363296652247502229591924751887022432438747497918821419191859072036013232232317098302354991370578630820684838045397984662760966477886664735550047226777027067120485001644617971637076164203909651403421402488579079176440194559015121604250199536337814372451531096927660262432238587552915858400612229362981725008637634665089017531370521018682993283702655697677821407553979876512147917341395943862947373107185175347321430006456463397484461465755230670603712139661754645102282386527209021069399473764500934282426548351720402864293542984003321476020967560529053837516808795286545914268510719338577810872351421333262253126321562254449634182521638699215132303730880068610234857913959111526271757216306102653317620168198473180961342981616759577107788096822386463130786351857793973946628235843970449840398091822901115990312592223063126445410721492992120613184220182748162846698023044741352667800642833144653497538415991929713035361352552232335099213796225801187848632167825287041949368362467519254114283192096688129117162314644851646945641137987252457051918930711614254371613124308220509301570415925481375457930779771294142656435652122620865505882670642959715446619227323622302856594608677494684392135372258066032392567166064298131941827257078669824843556808360086148475078282784783795502208739739657443762928056561684416078349976051902049800675660174892519505871621397209975777113349000108519742983333539416790957643535671521934225157661731824110642875779548515754455321742370879511999744274886524772704061767739757539360542223509991570964882390336614223101828120167411492075754107919183461887515926616966875219396793219632768241865203873038792756526263852065807642026746767620302678619582205619889834280738371328643449824682538286640669535474522816238563427297814010373016422367322547856146982056903049460387281893265672778721145557853810772821352664126289924895647550050577054860774693497107008584363819368532483262664788645945636193131597704458574498112032130731174628372981566719630640813849405894797264097163342241467028647790913621083171896233969652168828166562639533423158324230701378101438584157987002954805991392671127258684608713614635350716793669014029208214724472488255419986944003181792891126570439088445924725019780128853705985765162789625703444366506094673204125297544060783850903321811977280254069627144517410373017493841813745012993166099119340145311183875062612700788312726118626218933014328076596094098550888064362227334959046477700742638963571773529752541908664000110483046459598840147845749188148131434963675411795869466465951763182869690231049948558502111865999166045890806277668844725266602334468057763980473095087455217576906921110540100655996085864713724350387448946732218906049345894672996818585934226418431784183512789051303659644313015340312365201868220013540810741455410467122807729623754203828176245795380153127675915728472466472917137783210693923327388519558682179154872610774502471062206212684654129467002758138546679681217274238574615040350917582554901434269259857364740304551814516848131148492407046976275771598796198587121291925810315415227043667857974975430565594117257422887676131419474167347285872798648073968716202296291315689679105349337486392291975414807482254793070098246227703350469718304823690051917886758991642064331395707794333595694196073031101928314117149169009515778161901784063826779254497993045111377513932357123478210830727496037737717704260090106441978336874599017062735279630838868109142707833139028893722931860928235250869816699618657142259945543018135933398895297607276273601915374515933080534965991420370108188279320623381354269498134773365265231167951539107368663240807150687402235171684049426860727599330823898305596291524273110300294546635089994717909954812213151346286020594429879183796575532010105364336277189628478227332460667405012337521786156032628402717405358417804644485507378485483495967490418544329377982604043083888930716498227023137479709696670173194838262711603647678194128609178347016620670546820374995398034943150805850730841478079816436953066098666716584972914587176686011048839335653910410116702193009718604590339221329236474243458565930153998956169571694981350983692394527043246170983197128757085389922103350918788395192983213305435651905046099621422192115439744671275192355015273396497941914680156974280477615234195094825189840034959595453382996043250419424926712084633662703774658945050794171118301104626060871792262552799409654419102978830345300326104617681826753730247484025804030422443834238872048989266110095709509631231082732486005778041480059940417473567232985679013728925270386501230288082470389351210921159112210748220755044623626509956629372964571694985361435761766836809885041152543559720347501934110942670451406723606987173276799553929377961981943197837756058367556691578311269250275273889512655655006401932922226224324119570123765995668549877844758593378784046883173157478622009952877037423098040300113804027440474311711395577246925335622985076990081968767929165968666908978895135376254240994628219924018247663860893137514021174677952201686984965557992767538862268594691212266819323606758868301465767956233159690864985808607928509445465393666835940220708046471918380198072406099639217421382517840545433544864160927103661357477896703227051150953882192101292836258787444831370095357337019134605517441157230565342904338347132503125818835614744469707381229628431908420947852761031617695700394343729234572717360609655052164865866554777798069663865184378573212388351673354389237999730196645479014798373763913918983890850921614032895303554233821428579404814702790333275434698503741576816815153695851090404762916389524045866051356988446609330574863841851265826041358309275220705836718371039342714995645539905315805191117514092171035667337948040094234607660603558139758546840303066784132890383957498577046799967921445375680790515374567552756707138259774247522318623136560509187582067470026807192636290454009695565597689773030633883456058872566477800304685943471199828224065394000560808357199384014104062548937917739077792573127404240619743956434554162790929884030753670208660285099657242932303430588382518604824137498025580983930158937025263078372781743045316961704064810544017575310033925687342493074018340731383397739857534090493206751476969333765026755181056231943158553536256494163893185047307340186710714123352763852436874993960722525770903113190760527231749784882406140489248775062650008823789160906031024297568946920969245550682294974383513759824806134814510867089676453946751694894968303218213468577579171990070222019728813611971818871414669184328103298953587554798631798187599120732021784373951972474310792646753840255040848505040021878599981602648708119431202456761923241169758177914876350793934857032217068452499646613121542454787236506578122204251358647330187913956375655657839369937692931959919083537843900985721074110507794900242207034655361665087219349007878645528419459940571351959345844086876824953483806161829764575217837023083602705403838713657537755287849391831314110593499562463527910248989292092788691142973675735858500768794881621124849631755203216401866489203544805408351507651166879336315903721510008539653695148743129785825179867790831776261736125478657034875381678947813242539015815446213154638340528857910023952533333570974644143178627770601120845047191993133387984112216696842279731888056093562581339978235140186070458583970936707510172988416690446728596536271460272687736028966935703097476318466312840227777365598054664861784685628471460502939864557934682515343737227869651021313315234601097174526385421829012478060094684287566133594244120997535463387931881511799648326509620258337067466067639258378224579930869169309164316990585993359063358013955808082072505253538365406348136605015830851232155446199542033527736651496801530396332749692862996914429106934337388179644216318114382788938009080467198919872900348835580938908558868010932506542165136424932801035942707314717835211034368816415064679603424045228289066288674399612958041867367658071801543907211539228543188866756522533680991132223121489673521572407697526247315896820954160791900713468639732322768555503779327903677863173429331412278827752361708035371326329705413427109337344681386444201921877676621716237441984377245729293509252599913051248587853713027372125901335257557184117935925525114422324040682999587965360129154767859372748554147544871515044683763035956526234231794559861146309591746027246651010589341579218744206555676489193961232120104752297021161479027865993449941883180615532444991169854850603454911630719714839690401985887379879205321227606251816752133397026654440473304790659522959293467433459452683855552384026732985439632108439341009647777354897929397304958307374036903592853030793099737757235827996329962149452864131958224542630289292697880723478048980487289582303244654102335336360971017227440002711220651056928239949984585002532280493508977548420279364571479702535199294277239088155617792666947857749980673516460335175451843079849201156965525081188133667033843530884389057386951471194259641554480396767514605270201897589623886149867097548473927203939209311507446811781492240556571997381438810195651679691751708433950739222601268441901329978712761779395978687582450744202204770575925839745247375569638180646687413669434817523734777196072245076923459643783013131106401841422106940303379182541162650554007514518305140437347759219217239754049332703624228369485104818502581508475430033071358223051038055421521690432138194414251054949847711312736788407443210053245844297306389807986021158073306242332210428036848571137267431479100395168409981438538356572415185231030168920318252204493381282292096645317715652339986093646373829252625777032316962448724949405724484070534899039636942270965883006600599404794366280038174725903069139134367827240257328021998110260674317337081271468523650871208828631191957517652017278257045971090911863074104687904178075089743609472586351670981010603962439318788290169657694068584738801734236263040968059830060756677234944365587739355974391766107116858207042707052750814551417761223860471487691010347300185394344043955404268464185458616138162718686387934855998769138022060421483265804699965444850952931323501550776674075969854525466022814249876229335747647169148608985208694610746238086497768902568059859445329367418999955824492662987042776463701266034514392477748404655578535507742965294027328615770092366479258136440998073941083555060115251436031594027112257908944626573342729155893935789973488613751846919486529382295918455835006235591241605449522236267738108831528545633667383126153591156852630069508300532536218494401545580918710963133871313077955200530724738022994556460772459524442185029553635813878227810299542985891408933695247701852093766808949088494325562907894354672770985763183427308416626834920767311050857180851414757063305018325774400034231136311078318692735260919624502834144635779002524877488950174593566069620344882644366022354980899580872725449013686038977673359259428180253286130944986497852913933463010665010774461004034718052545435810292385052470837691455435817224504252756432757081729250521851217673896037747673761618066488716761329122833219349320493806286484540048630810909916659649015349676895869342099149540131318663538287154383827219964258639111644776911426855385927013909834981149379511593369825759289329083213420816764247407235328735771151995617416001606857455387291432532817733500016820418976714838887011450969589847450122510212062970108009933522496844831876286259643468783291725295052798937883265907233035346325534112434109595718995380276957351620011272044435965607857366021993892708605026494695923088431044151526954238382630894437958861624920790387469500226069161501234968135434021857841485690444272424054933004328517286022537630749095260341575442930161669045640719887328830543634282460951326500453517526878109235633459629251729416633341944277790238770264928972474659354200284562127229994311431836401140869027471545500868888352993728646386657696244961258369594943906590779265041757165652943233070822337288122113699341773105026941322409691577922832790995424946711769456115202481217726022266106981969421766099013669336865907947002337630252635156276955288472103936188276468495359329382936616821707852863234425754161268952101553750732172484064051783144249111305184350175319376865007962774289382299507809274797264074952065974948266388139275269883703719695453781176592597980349063599151802488566809349006924432821419127356061053335800884358132799701442524042213488562732175222607738908111756117465354676072660419054073081143228176848545668259422240217992989170208317743133735346820506555135990119985118146826718768038451574307277531772630918436354033312280993823797974709741950868584760929836068263901398411557297818722694018079118858026858856978858584141255856271816834257162686638990875638435650739340549310806066766828749519129611952994549003057560930164180829596077940049070382060847229438635728577900391858943684105757292343361774308806961611795911398475447091406595796197803360226626163165305257519711404384503444054677284778847256216534820185739784881871436364325650315450177259798100567007190447635474406475637613668314027161471385452472815718122764780691204470977468826131869366279427500401653566530861770490921833784496719999431202141789971968913612675927744784805208867406259020826496713779004449513889528576796185307605894926177015441633414112510874396791799752841065609480302853717646508220058675169982449233334896014772913393332571625567205323399092819455099800458274450940005654431686712412134309640093535588733543142935112448865843176283327713689075230931596353557427514921805295506894140216130203285518237571572581329049269847443567440697335309284370260676163605834134088720133158069304904550219341882013619310857795773362731784915222746082852145813655207061187951798222513556062028649406686014504869649150254659490549495375595417906463732265640786236604617914436101754649582968635731730778786030231388423919530417553269117009704835096201472572973100924207136262205147204078921441879025335797930579760668113809780549817051721334726697750454098016493235507307129766000102869153633622355604106422269935223025436732289731401895124152808861119317882131245324334054438498637207374355602139784632863282624484481275446981682642044958868986525209760118079848144070190753922317440916435076789411194597581614912403253162430609842124502652823600809870884963964946798880442964627937722282695763064421410821321333670288067549885348273211402052728802602574136598296690156331792142100413063199091593516742461503306271248598060831046961801899554053794057445679566618158975088071472162153655051877763041831484685486067029635227352013955804371470155428175610187480895699242341728088392136824631239611678175249806361179956317849701634644047374258424775437076484988231319646896595778972992535226905820743743895780888228617855747106387905294304521154524008672365876193719644719044855593860977363180464853782598327338737593143513823073513829792328016021816140911362130739194189394547204215869005768187924226929290120979926169183285734853575303770352862804798964979255312520071998318591338028352921804845275515546520452764591172003017550257506129905530522536525145672323654258803820891809321229431440232854574700022143876105175042705757250027931278840723216858789355409046588705065599016919901750540638997891297076201384728733049195163891922158350380610651757486013345089806984393553459522679683735788577322008700853032183653263532217058985337411626374019759013053413951736807798793438763722796132220764905860932709852075378514841294105228427887795422014785619009239809847915292816126466383588398611252527372120705015060534554759134454714913387046163150249704497757339274812701833652741151613200407744572937459208901347901361309494683845187470648871513833708744412730066199138817719480896183258778028307102501953781033307852462178384136697015222399840864688243874979322761328248165197188017493247870305347669473458164670651074021856657240043617972764387058064345759004963991438193938944542129725989174272529394444113305306970953632117345651845671164878810226276515504633306214570990860027467609613354155449535452038454347138953778513910603848806574241183042177651425982602171635500692234576230592116148281891039406130447252534145916114991326476991582573282642797038590761267623111742907913013940976641718333523142998283162664897640154242906658496100723391457930058410000750425396493097326975667769840957075144184522304683530468150033893822677800603204654975482349343197601916325762487504373587523727798726693092239478040623249082750048953265270636067111229650116347659869295357668451241671276669118607786274845437160166090604051290317005662610632086897328611965731002147316201602158038818779691475233191296381167199546864074759617352340356154313337389307563209686501980198043263797971924921702014231119736600025029476840347289696022157541813719062487633445050702914252517351539261834100724022755741272168605663971253980404343918670023556983528548415020769829941556388355377174211116229610323423992182553292751188713983813932474556780723408099686283458927412812966693546118204395902765865496833400981744172741319591256023110639547762385114284782041373191337576714123006720767371594418625798483805653096248883807922750826227986949751328046373089963429740281336261244096568481520843038482477616057204338173021852790192126537928776471097555024743610991308288623082474537888345356434634870632267358846254708624819235238778807735391748615041907066505606844640235221353143965388162116552772284057187032965838500950536417933965533053031586080613288176959370687915014486605841329630945739049647390938264838345889386827002488838840355821710701096234495515958077874419175910642145895132729570431110863190589428119588376723530053732122863352465327865994648895900133650422585970937333178607804977220855956392908520120744345927363480847809774322530997207743539236011462526772576249481048885445330815669493325111172407050663506824548079751391982018568425283971491930013403000033497701080389719418231449847299204900302309649685732598075573302408854386240595133725967949888362466260917867768266102444038844549081719896031082845971302500899572033727777718963763957473854727292334950471745986583696221234722697665051064230277497463632484798445893359455704613295841185861564110115731966748684853255558444290345118521800538188410048884023543838488763743947229350930630496252966541371926849969497301598970123046621061411511509573852899574180658863910991266982881537622509840044487240467282854276067986503952833390520582263524704565791830961740810532943620871826624823210245616206970321917684836817212842323705803209862672156437174290315339238727106028740724317320872880977002910844198827803136549231926879418694908829546919256459951983316337212032120944620297453072245319652539833956096284268751358999769286166883054790163593517565523680984463705723014727022591993975742936736257024222889798035699152523054577113114207085885489058160604264597266702020828608760979272378939010911557471705666398898184921161006532922367168366481317222030751912617298883683805799496558402007600645532979608531976122270357545835213174880049657846747849010428955391947653374345163802290707389625389215623561121914616448257214522637914089124673806590060773273286648409016339548258614015280296550830547433226578339011772311874771899965725027042001314876603715957610548769370382398330309254729273588162725761864956267708397719374409657837095024403329459564773281715855278291996501996515269375783517733413978240084395513013766116818122758448803422719634591876079078697240369601136384051162044426005422381846264733091326613365992562323423663090568660300478436021676692832987903407461363598393392848235438971327247297710680875326382712360631003947893423692421780456338155477739702807555765442705578728546701814291803958497678441628720874134810969945117445397464299983973199683677474974937255096876958967527029456149197542933656435535119789310970309481525638541297862397652818666078297424734610826488375602154307284463350175278677955217462468834291364331944164024590609071233901561255291680286498157010837386320734816060293440285968369550700011032523918752633180626178703111986096642444798821173849899634271330475469973495964924768156971044087798433272685523585100368321151173376644020391023660507953616975900859270142236152825746312421099084824857779916191543979439913096317861206020073816271932992570660574855898199203377978625804943213538447460723414922716134358252125743946687730406937659514340288003425974894949774176639439568003588113089624734372141011456580273987537730203405911027432196330777894234807076272510092991472194537167472661615206735371113665346152629852339123231228280450704417326676543639693925836622349454633566640027854926144674716834413254909103081924632713140067766977403685224134979932680733758977720029620725040087994082270591863995946353006733058057024017031251800616566666160683722895013006952404922543231188068261871310241525306921371182441498968699961494200223421219656776784028351501128769233649633277456077237286047943818439701283905514542531696473276423865287816023639843209736414079311980469404022883194320605089600724167561303826854166740997514694244707072560183057375961026564798365244444526131162032468856415753793792395024901949894969416380121890582403031056681970588990616178172405505712477323775547144547898299065499650474567091693088187576411376390751018686551063392998299773958280163333389873705320612646161016662743614727624292347196038710775236156391255670762343184715937389285524371953933033981198662072134630116070233305213838151575559350152338249856127824858606310990637229630074109089623970994229149402193773826487756421143644162615442932062585138989639680714031099961528681423307709955478172729975645482918745037275197447630327573647863472546727782948703042282659259866775517977475528050897638396407924112650796674364434952733001553571831992582195222230594866723194204209332515362080434700963412521265214965264418694953602189064764556900090493562283392904161700720738721713857369192496321553935094780171266037812173065141866987716313884083537456495734480335213984700019209078678596792159101349125488469837900892788439572365461022791621608116027028699864661920755570935348223723672230639382635779500794652478899125860814328582214837992486087856369719529237913848300897385978011938091190523965095971774498379539089199667954628618875542813158237128587240820994694884908913932450070026541815544256335647354745738426906084975364576885973642659831136066372475716989950547911306861153333228781333105491078237947874559940509618123553987347377680345956773762475531391261353753422488236353302459367288266056350292351400254689559790750733817812172684168513508318190693993584863870877590438820557618139449289958672796368566895820431752637197341480267869713230855298029143798547567992569642592015020743848145578975652034832144954040340410757900037159980569065892077060895324759936708623920145786885495909229257992913306518210623355690985836868703190623857298864343346702380382825374656769535745755222620403456222377491755141648586927236599348426682793521143453853002167680356219577996982424673324994129251736143405386504698112862465872293473273426231166635235813025765414257588246930483015273537863701356517063713241765584726853436782280596251207758965772510718895196127794199327942845826589790426100121128796791835936594427050566085700969479965346658340060276004301575561851315667018280600690609087454055889143969003236986329873355805765997324465113556125509061794248814224239274265166436166316316434085228754847847347919975338308950758023271394238562532854548016970279692502791785183711497765832180639683264791381533519675258177585545980170271374272848756398543687853413382427894385048166229413236423469802881735549550806206403657752287933393214631552257327712709707222895695245621765782990378316581945052654049940805961578690706606519449299483039200542002671950389907689800054945721189538430082516575701239693652611661807932206535660422118826771558502553513244590073220181297442292980261720870675182380338409672789117931239906054041765412005231415721669118771800099699016054841092522501455971026016819665249294840616423382278301504508372729356717827943308318534473925795553841541492022842954328698760314262241540090345590984148034511275819614649439446593227321621664739012338180800419407999881075635204646568248600032030769840580323579981664574667002162066572369938547060221460473872343367198042976609900681650956494746769769698013673403484001439168324161137034746466461485904330212078490739342959154247857119286184917547345699948606087405835584243487158031251309156967428615139452404321777557380852323661841541545992695443801506863855349175570621899218097745743163556972969187406054620821670537511863359331187360628742097384334873635546816795913835691008454649722278704894248082282631308191356606058795340846683674870837102953274570637733663371061782018389511056168869870817938233980896710638680835857650319777064657671845104318944155462354953312825422835479509233412034494081828310985555053084267803899654312266849057487660356172735061167721723848597013442630288884277212009760001836551191477870178854548887460658082487184159964606736594946601191235256732758107254455099712286068186353890935501868521869553957334091763824044762865988883243094587286712505944879176237509380767080536913826274662294116692968579077516078854103907638914706755213656543260126351268398602548141506686548562559661806855532186856375346235932910221511143234739092331356031040508306701621218721706923027210329655236594272972542811041481122911391606912928791411132060805128860948213769062850634510665558101412554187356655752866682277795188735882448877621891820537246101217104764733682783949776888294128199371634061863404054596455052609059157523797730642695661246214746780036470915425389685116858685186741482997869703494470622943403420989846570196428699418088194585736995448729405061756250940703390148778415092801713129289017243482460918314230003057434097213653372600281777748408895687980344179234385809574070532112392035798644284457013364830163113013973831466264620924985062533749871869045873147467202671511654382008257224241608620897775838381116016651576755977491398743157492110545946691698616406055467585037054990298330906415345488444651914816237209210390461516455576557086449930375968339611321407662241561550818269063846995343742019172747168302911991534169303054628337067031046471609044448329335665489759556036987312412669044180600208680245864601023811971675555839503221094397773320400653463166207017838287912767141058415238130003756489668131138174388503042259393030963619819705308319308980317351189128104963483247508253857680444548880604522092336794975261597059670864508580361735512990997007179139837733088344273151485852319744729727693206805894685573444068973079336550884737512543168009126832338820693897784876330607578387397623164375340494138963176512133552977061747957423648096725385548268200198279606357773649902995747337715163494099103791048711009715039009052807338097880127863402515984681702013887538134104094896315677408775906209209094600690884822519802057773560213491429617873029937334784421807150661812546000598405891339785104321742391059060758281324909058604212205898356678435540375122355847604005404371649703048663991156032042190378766191835669763063507341792245134707280435890921727107479664803079709960937523685272403972112723560502224894731533276279036180270761573063508600433802293946683624797365251072915123246131089127242529877871507356219542150644234782050897601230409079214651638513830845416835848038547216247169451513351767629740446876243452922894811193440469576300476302163074961388860592678740434759356453540358913607985795867896682915086892581603890741740537860602703954752805191117656232073675570245954997054410771266944395643967829433807839274450976861483795683511161959242991142939590995940019776050091081391936922696066772626660924697245487841437934375955011540292193347258688864538288335246101389774654096555388303028895355202151323238589854187822509916925397913765029603087430151044332078476431363276788414841961120105060837609085619593207458392594178006541114899952346010285554460139814645291766679957368439544788472807306521136006143468813322283133102508603036861351536692361498328317810637461177138600894125962309562220885597653384573778372137772242704196024129810949513809420708017814681471459640580270489961408176866259516240094034944876679559515373038986597802322082488855723714498655902676041157386160048644189014157464668312252022030835508817883893536385171623819045796025035120752259487507336729330437313093180131294915101725078297982956681568697735065269273444380123524392814499362568621759260634678159400646134406350908494384503085416894635074264067700654435094880244665204695708747031350910193581155102451555496815884073596447426231072365475043336712757325006935848644459266054865812648534392103635047710626130939380960921812901094490833251071619402043797448087177224980440059373184297454734958618743516589615436444497562421332888904276538714163659685785637266556219581174814954411492753601693921255697880800890224922874780346104585298891025960871918819918417696757865083936556341475615110432631733386929459866200126504022552588747550283302331324280031920654836629941313764606259792616578562315766426257849084570766537251200068370198210132955791857232818324720436381648467501045987381997038255722862204887659751210449340113053818879910139799243090564982761438524199567313687506228465652904423951426203367895941236742945865705107525075636127198831218994445376558744086836994227209390582702795047923428525626026006921394257193559699392971023933826467301806140229332954580108289493084530949600434580707757104568867788632798242449793933531331525712619572371166289377995847115040271002100446294452754562185103870705263326764072502127651958395276897482366593674761625320868877207206324738715394240851034990575075303419650359558444413228988446454461417432485321756459820101935845224532674004420667930432359094772822795744298432334237632989234774322594999987858443840439782643264891579779904497068126984959727461545476356566177538972334205155907029313990199618860218535602877218945753529200639388070461039415346947410616196032323147213849431221220694652499231547892026832390778897425808118776292978682518819971659965791355969212852713220880309106948514381681682331368356145046601031977185077992513963198505937092486832790409946840146193710491609790882519115336696663314220155815349143493597135673535202168805654973905055709134381805751375032688335308412584509555805504737532177799523654033808457902395001465949441628890218180179428631912291947603709294261994251099270532611350582317518110131327427150487994028819184887919620870911061487885612911120685095702250652264467874423320044033947522629189798315003852894115421550345316416582589905492987986035957438342662913208903622216221653799686175392238548193569980749038722329903948377857742517563670016404504105615617044449112594437246223084289680054741788582757270394804454944012741546963743801733264019832856983071512113375719986396515511118402980766174215664121020460456033997022038601618205786441179852198162751173780870379529899397455380251375364502564623151329468123794244886488357514285771247323682480871729276361380252691156167519207855208100439516382963088200955405433426820981303841983636030199943641999151889769557456983268617058852204157543514580828111089751152601030104643358751751877601239597354400739102213899239279003716830856630239724622731658235056518496176708588548894450141929116606198140398912050583458183275940100143761987675585257379260772187952660112185580895554155885452435733518431872117900119913511908014503144561183593069800591902698323421455307480317594149942395612726732882517129935855073661609586670446805098217249322277998439263033847653434257171132503058617428282881224580355962530583374083529492468585617772002282911685470813386328216776701460984806458533672629253285901360853629468403928558624871117710395810254143964165535381881392277018473411779701099430555156445055147784631281177428686177767742752697554527450319047727735100647228207179313505528562465580517075129609500262905000429503206260475442527762645988767933363578652009421146883656457877033016407657006271730158694583794224123524064199833369833066590093566366226703451576875026351901230079649956799114669456185020007503329776887994765905240211576926320961087369594743240921276455126330223538627869704876065719902091581882077977428265455615382057209661990548347208043570167442988529847467725576137264640605369267636850881834110789019786516323049105994961463182607983249567240509737938473484230031779593891295200669042530242618724548703754206242840451862396763940883722509773037639663798597372334263488414569274832839968685669882897506269536270626251374504440192015427516808426396610549231220143312971124771984409506799488765507034550811935486062592647019981909928345255600827876876938952452447218741017841258672250415662341785711857721283474470397830699106261509218563358670296327159524105686892243473833796286688197558805058067866533167941905096918956471129080503019428082652245780318978619363050726496913910965912641708844941717844189228535420511584549176743986955912703108224009206726167946316308932309609666127293882038650010682878687805804485987319896060894152241743513316265431762976432541677529651419238350425193881922240014067143422087008596994150486703907394425583249791318352956926356043313412358711080307803752366049293001145150509981765994125267290711542880018224548414314346247916721970741036604726477504384481149681434241723763833979949179713508327049979111307637111615744351696703602199994801118565990563567983450984059863281212731248311892740663504637453031717840307043623667607902590663630283716029614480891107264162532554719010194154868248097242771913703944663583912523412253042907359559490858704004285210664404155243331472084675187303129798554262093378597378007737381750951129854544410929891777969639445132147419060768291345248943410425924043048797050196354346205905733355753603040211474304750162753151034121264076990120260388309716633254059131610307845015004968679723767744728248945659686356780492023218081674738902528695197046688644231880176020434822739812901381586594716617500897871569195216182786720113624019690103149558677032637324577854155906919528413945262465998649766376188452337869792961749609487451546910760711012727968217384147952794351557702900749315476388628992533003699112965193990105564364159986818530397712521569731230066406979848471569922084608305222574309605424160281443723663188133154465630448889607328348506231035941961290055258568627587661685576457745490090732748503719302909053640193681963076087453113008252128916080328141961983575854163750323983915452124314422055442694133342884965502249550734227434468110323505607682832046679753304296313564666843022210742453495873934574815279189153597589927660041556660897700579897938799872274008947535946163484929268861581564153708422938557958428310309634454446165603252493974123678897619872800987266572991396929577321387260516791947190189955907090038249596241684052575552611693844388557104587279760258718819283269637383474389824333277591128330266437686040518696131689467092835979397029157197628401729168251304495420188239195151607554721665923501499116564186376120125601400055736884215967408051359428725555091213070735812510914451670969777844758448398301678763541022989153859101608059628774373278672845418216791694456402393740470439977251378491557888667412773738400903873333319949596054528003549452257773976456173667690254680811724867000349848593398635767312488335818504172575809679120513914267377244576290055637628989353143434302739615327498923500971645013318973885622456174615330626856239266667379230103908880089495522056207891828590088279540805070691987795382004807577384431711189176053574512482331547713762327816668829749631781164289320193955862722520200942859085647463837607703591141097031884786661164377752265231591200717330114602191470915187786468004689727987682078663410267397862162488486310912894738981198960235392098673449406747229771318345449593845759780990360794543576957358891367576591546989880766932752527263812123424370350228469023610382363766703109821814574298104682852186487715356976743290788050410650988243142967579875230100633096682570035005449721453905084761918151422105010204783924763715226594537530778922863982311597938891403112226056493530262875443607606850102519144551573472372613269684183967359704858548595212512585824360383576867255440944511769762980844939037515747455586306868331620784599675167007895758676779159771080635089385726707299215799697965521635487678865241722009505799099310599009159178603443616942183855208289432378023847250972724884035194956134558300506917804859740009100050677065824514842762377925762580880529945054184656344479021236416157596850127653737620737187412294977193495454001907218818133331594858411029557184774458684022440706944377919733026497147412879810140175287440068788322676457682158752280196131999597080120080953830368363470359879257532292325465221338930201099078700406605896092609438609699227339729013406561840235883635634490561014440229309025299006747290370142118179136692264212749331494183037972858480095201603190072553121873973240660568662417452181616793377182042290150397786116894315484502761951489281744760157939221252875486183986914997483021487179340244032844853540784162417129968209805672832477829422612660351279366179934829194712340429663866902324482735915016689256600545514509155367181355964369318025757614807026395657109063019793623549764625010037230516041038715915702919544849123887154909753391705994705070171117541697056925827924775414775608304227137003863844074888423365152184081727942887692444954584765236651111582214171650522756356412544300183365065318124867760866610397806018335110593252612475950806860563935097385005088202598524138650736048617045501702101881026162858532418541374893435223183446273872761233563061772333828468925344637235615168444889404036607055547626386064834552067560044410412482604492341849228964250875897152069051875067606706091572217813228045114149370145637073559147588886531477777580707829434116418904275360542941536823511672312388959348736957468194293224699937783879249977671782711654048550536000444519549369615016645035069433835772919315622123570085185002224119204295792468942579654055459412773171974100833258348414218337044223535853528417743289926758444761891517915316318380725561825157546723854364478156429810329598829459265623983931610314382907213908227185277549754631561304689948182495722844279084343412729592673438856375595447407021036634515550484905393466570011049983885785918326250895807441459856028296838955701106040838647769731467650229557181407577899647397678649326874114272080552102732916810240791810517472958541460321236139749232814156121003631039352914813069665413169017759004218831668953686951850233250814818485912697117670638235035185706396139616685367224730871793748615304762210019129797347213889349151839128395820643892108475333870552292514880441540598329127933736378813167226536852377933801583921222638064250294456049324112735933484593295078381114215431305287671667787815774074402529298313817649721518416278206724120127548958433631916469560094887613274917493887311114658100978757827043632015301571496107809998504564479346546481494705155692826912280171913799234993928090138046128212686789282570171982241970351128421494983683141002983441410556706471540585643673343861766251801716123293337157502220832205764320527878645316842250121098900851989928064035351750162170881234868599552012871809468040203684956144733298464162406803675984448670842900827161237151827582835184523812008891162320908222471201227518337336529705149898174629298947679757715252144622967083417149981185816229132311051393403433536602430912544600891865622093393274603812161949776930984828856026894675528251783130424074735597504839300509978124995908739339638347710020059317475611481255268325708106909982361838596937781885729321667320659200980642770986483457905537002113195243566158050001871241518680269441412806576035679019545218564898566966108261060825994404478853121121604896308876497489536923505070583316512765801002005329441871317152362663670126202831568609723930382883466501053031266259520936101945677223286919390461746690397623133512044701968175732701990678237720686510321889059636478882060432454742243284895094120004042146401141286189530082060325280332557248468867882934495384381405575959290120879665349593347895958843561994304806332610510968621867131298515365754391617715623518633823923893060636128555044419080725780787150829860317538384604292899964430198143849235304336641598020532413319089596840691975318232376935779585427368444294526721602743315771337580654955415768926162683089084169098849831392278453394048935799855464305475381835265516368081582432987157913087993108769547389086324692481437097833470572608991184891114014496171145218918489087376113198939537408770335810296028260471248973299868507731624819363829825248070944027336107846135847480778253753598582516268906135828846195837849029192072641408993333545352150471528236932150866232140960700510965054953781772759757774211933202265351856055457068705745406433504736788207063304030021714216983444907251773539540203651435160880002360562920575240260977566964548216905381323495574543963044649569062698508216192693571280419769063390625151231926076752776106087481841507146850620314013123713849581443498267254191085855655133667783454500117745536208550115345859227273834242188284367662257088045818708496410423073764205308565027832425840941915215296659071170315366100536572591462908806551953089395426245116540949180598176079199009116268758719821998156355010871026703074804051860117218921356996870313154485833999147686641040850172098621728584109462304929449897849935318697984604397286049017061340624631877603566455688925513443414038938823658012604619350838798313928379209375674525580985438476100498795356666735485500488264154359783920051304071763947241511637924192143187853152160116425566877185071871079557981633610642422639271069512486340447868787570179468965663612161902315456299296672725895157836328985171556795870359771760067968289245559902785166519768507386202823871734606352438503265317799987620247218718972480373780891261717489193864731530221634564548141148775590585897994561715698214092757494230629317250597783921897183591991318105077573380742209402665774559814447182211823628084507559783489731914342950182520771381590831010879188477884691303600231108384159424571080474042480358699410927067767509094459458074451842846935309333734135367657625176570287706239007931190056404484561763295803315997120151846279412612598359120404872882686444137707440021769347122145476663729080056724732552838399933120365942887924118490501554169462346801339277138714965568121556002196083426222674404694538334878434922139890281048382917157987061087409898481256285315703009187235467829946718391977581135042698389859328629512778674895831999591090944713691171807783344309942476295150414476737552490850545603639472166138380345535583764660514693900030342611786653905610235740816226678135951571234937177243649826318488260403442792972337247659175206813559950854674602508264346429412194244466237640574544191567192247019937683578507242851931571769409484029231350523946076018934395337807174372715386614706282545449744184451874087911544215822095292990428702502258008403707870112479243256005351674138586107102053810822095908003445530045079130716145638669585042422338567992795524383555851845099124577332877230761082686094977575511735088845603390740555418227717120889311763339427916982104191675945373220221509082023939699764382070734973598468756729743363546200908312778528464186373484721010805645076731575813617898195413079365158319248085246369584729397977280885720791168565799265651383373355763717718546196089662052351400591790289895804750879019170067481713612015078380094154119661785446574179364929264645616567103147638983237582036973647475406464307096620440132953203137488271484452967855668268409724807043015419049019048740429478747856681222096057635945030255335971916684521143168782339744951859506272309323190786290307152379085107340456978851962515467844380385720135830247385589382525432427409855995810298545262377146473606468807071906927097082589166399091137197571206228367311269573619022130318852163498614100680380806672993547394437821253521008339935844752119909794225752652719699070631691367241958759060072538483163816776544080205476387385569186627841279083437398888214333855392342930459340932126627614470530153497387480096416151476523719187660494455913580585640840586192435037103614176701689075598003864738876594251912999899067799480156336836452107092953342207425940296846885573062928615266674260743411511171904010929307027033282089394615364232864755144633585269788994184282842810492174049517920340876158242091469982886419815729075655701139726184088367055175754723375207326478393434411517654309307504378825257930725583207289687080579439254919220294371985904598383892408734982833322689440271102661146720513850077402871383233389966416229055063641192188835102845494607501199497097780855760550832585145135196821203937097585042158181674827621896378508756836159124474215057875374804208602865028668415961266427139551880523547305427931738265183384207924699769857756096884950950609127453907940345475538838987458830940861370799025996273404510732349148277623338464058131949636762905592160901974113234732029589176940926445729343106942700841753560601402054338999162698199352414516661025525012581622517600938489562385803957929182526091556548936694263984298218976321961022371694426586759408140613601586816679342521871583511425211398495066115440373583474840065385532165678496179153521172798322048083782324749073934334265012880742744178168270477322077354782824719359202977808377478693038392466573333288942985952492997429433598723478781445386061203049256449883395762083739032484230826272616197673089029603654756828234447616178174963075471347787318984685347344265584216461757615847791895629677789093454768383219791192541587034402629126883274151211848294033805526059594252033308400155734771647937644844405757705586891564042499662312728325353815482171168858670694720766290454060938186565152198385903172837790817384883860644884638999333716283642836683631630920112400286025107254920776052570074781730216971932298669260614475388330206699216181781828875568980487223847426138418285871091731406871601048714117380705479596996016657910580752595418425265833476603895736841134230152402323949824808503640044060393812154305055255597932569934641481344986916008044743738199801820214077322331418376177804807885463328123226346333789313002855373646556220685207908544074986398754532850139518860212789617869163206033116156192444904376184827268264667427035432579244106330796171136378016174851860166114584593321964274405530763473129706372597403339013216983251437657238487960868126779293174233576933889242360695079885531033626419203680957325134617451636303006923867180167576280427024807915323026280605786372584884529582244914572978230545657623385483055565495814059674667740441384621187997848980725357183177716963028835517946502038196326046243920937502565407320983726480155491837598719450941455126939165644175984494606192388237360788808134828471064445652038186881651291816381366246680159294337689302866075610906378019035855065930598489836326380949276332855341637661778617344664910489167666386000261743379624974500552498618877292132030541100119430039689647042298722145844572275107109820240653901518415204278181772948744939716991240108058452515223261004062946915567715111623612319516325489710727653487975821745060241016704283963972548391934093073114294940747024887353008411742844511872129899498924315069264582054729318705558692431210684838205275025472420611104364943085783828061789501887979916161382676671739976105153071981250749307137997786443575190126080819062810495788558550759063065672394471324628319866971006348747825965271425537023998038395545938197381577218182177496684494555078308107400892463157428525449303178366891248055748994874677838730581766386468269304163727731932218267203291600219400640863975069259217367403029947952722345564059144025837681332888155271113618439804113292471394374269492831356150169745955726346558070705464579515632282119268465597362612721085620266979049949231919201364224125154403923282320120070058521520136724304486972653902777403751671608481377745495909965161471093489144752801464890292476613850174740663869377760939163837485269075439507394536671368553139152831976188214110691803102545239523850126280320235103232245172655657671180892863306967327636147288131991856692898660382376620707954155640514240383034165588835836107897630244241575972890303955826428928070369996584451336192664931747425787820312839288296615527369896251228411862171544033416552071152809201641724155468503181808083651007372308889669138587020412335472766836610700601518425618298737552785739144165916720512192526771619065100291260131537085546499439909282813505813771983299452962488965253952958276536682274813695800404083169483417763562519242025041098110217091106816225520258353479590314510547011573554916379680757054481915859176031624661487350157207835365035019875837721222462457841055745564443207332879978113283881192310729192216274550294607632203486198304032698249627247217444215024372894515124246920757120706947880664817445294593539529302796666601104086057075568422205964005737617575296780294203430097844239753056108481611134505669867813184192500553989295602823301565697887667338031203466091179269223081266717861242200647226374164465158366541911317492811882458171742270342533557554950142320163259512055574174378524386308767184869837517663517483308637006396566643829964564492490519164015555460288728259432721431754629608815999454913789007246721892497833787723769061685459070601584959461244021676413028646097217163311359542052234639711912265423244777435529885100047267284679324405171054401962091813320032247351935139682640245020126290763820169615152132236275881177692244471715851237155174641112683003213099402174782489976638384587906676433975100018707149409390211238421364238176210296746024712227975767369461052038548476504498585719790248552646740605246639407543980205501895826475466037135261813465340255908190403396066772520241450056361602114964323328504507258005036610284035720006213226401909786032034536703215836220558260170197390143589268543404693598752587684907635002796318315950735241524808536522820376212529583694965478386873105650197864576454817337167343742737294704106148623692078918983744592087585147115293013860156115530047175052760899979215890952103571599427781185469583112789116885864749217385951145015050393408296666630893753446059642620055967869861783917265658895774941939280093217974782674076914661819280685379262751674768918002865475717359136549854760773184128555949650219297606983856200051682626515901484610048724869766654067814968771951145583412350726660118897106562976277598381943115206314809446387941684339650855990908907307898598342341177876571955855063957701981600920241470563626251832590448912741090408991619176246694052203837578295554217520308841827811147436404300628560661204761219292019771594206977286122149614833595413929146125279227352944279410017362292950290561935846141946591137581344557309483091574492512295176126639666761261891256505550450758086676659567149450989719617611183124423479979019509404297540668126732962555225202152515053157135615422159186398232517965184148244218597283257866545352941366193733479856291179388763735033360484300218542930869017268430731854433102872496237080368429723027082697655705862160636107461335560977075273050281224963284162492312611544693577797567970653115756462304058000937601084833952684427963862002478206240898526356659988035763867230424022609222235584942140946981458202432464851655876431310296222525512996598466774353983671310312051484073636872010965844705018573747500658551986022912510221309330290284954163578456352584223096115780283041256816603043914002509418570685459330097877666963831432349083948059293733750636687030689384176950120918263450405788805562567024051399582219086612511420075976052056358396603843834969535474848765945818149013933626612132589657252977970539270651472025594606113695607647582104574109449154292777300939922756447646473108073553076724156692551444438224141071401631872374968999433452192770107835425945630765502644833932342747823557727827409280881868477183558294470908189726897399093583776371298413772072520400127572186243036107587571219646074392989100137604587638343252724331337988963514011791177317726006398036722082908151898231462274366845496314331978918921771377518789517716746749090848392715742334101761828480301828459991993632919664942175490504506537080181441254883473871517003489512392984059098960581413431690274972575319253521430588514607815480951270752588133457398716408703744629859734451089579114665617958872812380690697080468696642873899766427654405564995257802005117006585278164742948722459872946745705385422719037439136920208521799053429368008769541354103891517654685127473076736409583196628780990435210017469976871454893295984888052351405687301940026511010130656263012715440772581159488014867856100220100630747424156619415300693389409344905409535579213871921367238076477119880670089164720724250225053397787323193627254148190447133703814898518099141708661664359538305238919251266646422937338777332017678422335606750604367318018460683552207124621003353412397245556826803548407135310319995188074400751762080578109424829275810927008015141176337759988259169387396981515277125137541576766547250769821573998609702834452243877133365829461049359999790422661967609101403863431531448110033836296477718645989361969855569357206235634524048254316077873025058197019343502747403884076464445864423834809412741587151468706354470036731646285079020456152015185601492083027694191402886251126164353018638971944814480878382267523335707735484615990423682220263519734332137211673816287224873677375649069349036179902993357779655476454830574300486558178701011476751233426376218688389149752160592578522069337174614910948108003974157067438444737897157825637531145892483344568879415611714963580679481631848733362188721476321615683276326349449934816127727587122309822897995235605425160356353741194421882947145486848084183461164584957834025819729069899643695133291105682532570864088090792656754284954354351401897967952912890214167184969877297924553987018409682413524638436792090165480145088922559815681029620091646338115305368815923125228636488219184405064223726581223284603757104239264060317216907321513350643383202727433028842715937899260926587260887480144076301836641719806886319747947191072613822590576140705872638067941336172662181838337841540857920798637253899052870241876125433540711890104267680184648691289978957505087682209771166744780420044672506691871071194320833251397873085137221865045797670694972113003644766650292135919799526933667431889567006171962280979178913722224515384511638795728656541833541382307945737443643327516400789138111552402455337380298453726557876915270425520294265918181346963811998414293030506958073729070043580738125649833060374412243570447413430403817350428972957388289169971890867069477760780677472190764386133700044836154047716255064526340247828808289819212792876796885694885067780292368199968877381032715460952302014505571647124354504917251045611350759324143399961588245121681449185678845157542861455989935278715307965136246345089376597460876185398989773510654046746507049032039624987120082055357949941293411559533630486304608061735345479178676665924698885463105971848234921981274635047827034636168832531976388010083742659628557064139313228702831069120052683769914855637179472744462288661726689976081662145571124271467757803879011974042549182039848101449512919057145743996483222621758322578544087225188745416785722451239152504242036077090756946491461941961842190009138710595552776734251271587984772969926241637903402239084375830187922477980013116288880229651352509589691572493932159350615251774298944532587921072492918892026668332042047689146595920628132813202760050250597664068558428762038965032917944852062639641482493098103275060809170530352425379576761991565874697962298876125155604666686822703417446482289583999021962619534804147270408915323147904799885188555688558820577452831760213574283745645978006675663516739537698525062027725184663985069471523655057200333670434628404757983135809200485624933926602343279700499381988225638496702808107642802329837739032733781433394145055994874434887103481519443279267938965811866156168362217608859002350625821526351608909176058022430416378132063868385494439019313175978962711772078462012786543933797127883810619131045608770967492195448785293178968736623946468930937316603974394979064288194312000977221003962593876340728782556069559768166776285686620318360356633719975470450160777706135636855115282666757410703985110642052294663592693244370186539884773163038252067578472027302064525416049050102733874215248726899097476134576701009293629554761432041014583334974617861809473843043971722576606621280080735545603279976577200643671647790011706417548403140297566132147366571787323862302361097337448505618342513335162489071205917119402051909020142423160893920816799783187759338989437619460526501361222628057385449445150796692331134211426061559886276562074313913668441193566820344336046932660299021117220662589719692341779591508099719392290100015212382402050477505965884970286297214573869620007034999862047235088074946898451787160504271417629999655764340540508104180982272499020291586471876749202671145224866334168422220756068135496623518366803430377486762016652585564079995536742071751260873808527647144599764929592952135608753149693218221681135659652700041071464476836416278835912856607694102859955693300574223361088410242552358791599981119600885260986968509749073275538527981075120570861748549520346271692329915408859593494535204410676520402244283799420468044959562087930408921424321615386935153277203137149050547902202130525978258772755681238611894797488171661828484020338659057642250514331258922003844926415066864875244329895269607792114910043975197391065671484946347716988300156115575790040794522059732874913815986760314876890570770615128361635200849445655760891028331520035001407648580799668404029156370063397042108583691745911459951057943589136916391419139201638765420495636478838904086665650893048388701292931996922050294465482594677151559819941937244837409538851838915906881101973568202250015171758248747375416295752561226095437180829146893394137800050955436884836656755381766898454081707900157270527048160641026532301453744106224060211421323677140558243882574909967297928222767783342955546745575739278005250005629878052695743424881489720438030418326553691183723658445586271739730100199113863540110712219835544683508323403703538329108153677192669982637541371861363929849890097847873586018246496992208705908304995214302403658261109880447839417190380469239198191988748956272046021878198387800914747058651199602229620302460273359656791583701671566213673502883786213004713014715038390010381860095579322252880084536635900167398497792736781169731509636467622033110689990097599624523974265949052222614556871238625941137697427201253913565840645955654259936984634764129754282877892977952862381362384943285922892272133427812508633746747304374472305623739930913647044924593423731779672683992475418507297320083368801736753330533230275031390129087111382999948885265460948354119349425406500261468736097524207472195177586822630049947399850058754614134804344796961046984860357171113266688520075700608398301402235558929451498307369652497089524176536200472118871709935810584690471891135412763629742439920752164795170869654044963948444887239631359973701552606695008869770330477091463464043318192444681822077524603784520228246840432309490729360191088353285138302025077626801218278130826984076705070187544647714743995125750221142491800294547948272357813278566694685590890557693619935342798590387162531440659498099552930340003577329134755460588591336248856771579727901592460951677886207623205326976685847618771955410625957211871770440558516033871284119369823279976922164994753868803149488309913504667287933529347103324170403463806588531138704122841017652468503345001971109234976640017051432658990445912285110806990814106283579073156499419610669949122046196604914346871268754042947860119292338980531495325108378886229827038962668099809132276027771823733947269123451939639723803139122427097952525120758229404872689748668479689663842918144437062512970346061069514160569367425705835346232996481220964969339908123447397699556477161501535938956533250345123145431623933452367431666294565616552541897208097294417747896640035554553256394278610549098453529892784503149324042788537879107280646978319623298169362112080558086320620039200142567769851591767417065501737683220389611373306442166976937283186541924611411661514124153776685312260835077955422705554234984881901493255444861771911861164345763572018065810633398832240200124677998416073392620590539130427330872592683098311601602712427868188329998725576722985296483551353937303161404469022471101936584990770187363795615114954241897341323756922856351394324748363099709440797352995436925269848980179557448409342711058648367532362443552057160165217662957277072748505616677348572601890095735915628120780924142013765401727864433628683669266292601608209850481332666088949415382595745059976760245667720459210508306601682437473119777202423345002902077089713430493877976458994344302350201731945711650522842297396950498376285247576458515533950011816855895673632197336538331267822567106003526669210825860264750854001539588091249595876524397954082950761381565455517550277861107727838343742919315359730738702062005572470014578587697829113982768303864353680094204360799667324220592431395449568031238006160781317912570102780765653058871796346547916199657347394902515892001813744636213695353928168159938705449735793083542042721823344333378571075785030615699051105550100940954806393987971983896122528646336454157909853729973680188833287665824937757350659030776084331774289857992374227292057745097440781367042633918010371679878014004094856327130762027490154242619227924109172223251521137249948006270920792968489855388115675638673115632506408179553060796102320836744341976929056523252580486771487437608891286612918092191345384575127504397057163536583534296916540265455347657951948419238277857271275443788458902890171451800916783789425693642136955609482959729072009072196909701146582499360162799993530530180696424976748403648860569711410658901199948150653284155395941815334835023974075228312084111803160336043783047295134623029880032689008067973706350873018592845522173457547275535408894552010364799072814271389813060347825394070850145663355001667380296168549922425634571560752964380482998277115923780312822863955520328221522906533647727122387311064546873573710982758258204760410017298894595227298590515408592425638837916853800527014164675182750502090163416413372023065077707896805318753949069709072447972232119361046446261404022192192727476673540229569541259348886624427390884879617527154489543490314398641061376004174082153415422153036683101095818112907973363510647158398021608913276544240483794226869187219978570581512449320927053385181361120417010317464729610811991231376323464089902784310643410225894296347701288226502922464401519445895573999411789345318690159435525965920733387616764935957924405583047649633294903160679476532123007167437634338166547827859306772181220210071376741337045449207599952055690970101309012877718281105143151327116074294823992658365619881020179439303310474118242142120700575526875676879921003973665993711337743810900210500602082672725699594350714493985491890819710162388254815757072224294014449704604224816065680303768005815613833112528981582405314079068348682198556870462042227845645424902056358072794555361476044055767564563866352398219986436970165642727863591850688104935760381880845146341026827756878189538295193303671522581206560449034159277975772151876877546516581860199764516507534361211400704226024279807434246873185293386850550714468301013494590193497211073286939714260354154078316309257279590421883930798984789287066491756746768309101241605406101392007790688914413930899879229522480109979078819655649920868372853415148070674818296296360649304420643405106510691008138432273225677068196159998178926918439552411572853060939801712520578370178801545028026867491555551799920607529151556564211906984793288642014132988218018195872211681095554692493126920990198480525623007979789825733875986292889012060860113553652550070835645941513792291149582362976844397925723073717990545075073567146342269914808871855475486881673330342430503762856760198988587965093031482559918180497868911901443787077087748698254935573237045990091741562035218745649198971913542826461207602674911611929700543410579049814285202998131362825181572443389641402694567656716758245131094731917226508596374776822035476256016044604807498764393557268763017626418053701994689034507357782811573046846224604529171003354784953244135101073639604166794121184648951623751937433657830274581262125584072639652567897722355146642570067925243908034364976561719366785799460880712159466338314192148235103058216052832774070280711725744726735772769740126134142270323408478852567688570397109600480508723803697720014059017547374471994978362733562490799337652073246298241596251776992491100379201725674376158680520957231786357059701836237612856327104793362529413784552022958476002414376850302197787227664731550569694660421958871913831149299168753453822797638962731146630856117562288667592158456928339606153633978750025216866189143308334149786510291981482634456821447203796535339302505924609687937696137803872476721160598270513028237993318954043348645898269789709964602284369776810658171414088379344513179036570542235323205080900689494027316882767171474991960799384771439825567530498356032177390507964223770015033418476742273850166714960263005917300486768739417998014968265013727511127602951040222955660298550306399720384029157278791153811932299359573671121946669936786722691900419882996250719623385872059232605996791238688180647168294760630832285934369722202505707251924992157490886338971530403886372085904327932743445554322648923950421369398854392350914559869178091766317018184910506974944217978166408281776346979753819511599936025941037197487601877791052768626085064796607240738416433645723613317999914054799239647367422060332585579282686358636585749343170477997131909106513423188326651864025478763832421113448322920996740672648754438257253703895867455520832051877440342023835912620698039302825800300315665363508711986284867481681237697108894696239363805201778294415134188335411521419443901604269144551442029613257742794339183655283032961758072740018796914565952555735364113373502324434851088676152869327791870876733899970046306731261560758344848145109992099324729082387392812858224686682313506786081280419429485317230352407792615351282584303478009102350368781608621587337545934062096936009452514054985039795781766131276405078573155015794125218211961649004564509138222648115102813168413674490970658468310227188184414549551743732123837289689185968663961348937710183226426679245848486255374700681504943795706532681858446994315843505044142653062323965822171877871541591176262678167547189163601695963489285975405943176164916540711433950656914705036395171123256529069946256770474561774976626927026840112263381351853652424833313457274944878187146705773011362779804270167690739062104442988140391201820849814432486794086024042240546614053367358394376670575330415964489970899935436367067378265246918137352028277127257228259924927455220375337916755487486123297552321707569972145265628909892867203735998999090311841604062470608686533095502494553425946716578660958481991784465779469833805194335968683428401653187042109871819259899738833377105642712749312238060506978063138236944238839699788974973836548232321334992739180183458165672120051138041026251904251280073075906467570093170182210402001328587331746621409116705409372810663945860959933190938853653816666409828465152019427432049208343608885979433264166455943951739414561204003196667720167639131843901187132071636570534877825102349134698016314107772666081441684892869634558842151129738737914343397869616551748023606614214566123968136571207022403584753792631707301274310716921001707298385162129211895721675905720293341625085993357569406719719464690873980138658125974229605116475627791920777037803331381359860599559733568095196283329531876139279953511212585351451207118953928079766050528876510481301525881010323592088536116668719352280245078009751083380617560430845612697862003037168990711983396436463840940584528372135052919270841621319706783965358358868466985254324391026153692351567520705471073419002316644787224518636427434915413054325546774543689880279063639223572426733366571981679088737576177656912672875915909294024628291757022388162644190543251840812850877115294256126054025795770300997326432783628115274599575111667723960137399683375973063473393165868205420783218261544615936727976631897857735341251702412536116074977376232083171022767430436296215056751579554599497461777867816107494046986752075606651803799924754774668931707129654323482689621919079429677125605720260249744687302886848431698189375404551426421615634157267849790247042515072637277371662043805353200396913864238033593902228651971130453648357092565789076609037016617072577668651980360747014966786795089973638845381154359018111386134499505040510278685808413281695635340558647637254840275804677039322235841127702831620684768190914289158634899249157951082787826674077031599506872970655555855626019649708952413484273574924912831552884846627657809368346565335358171895906218618405936798098252927854596509446780347927181879822059799352170120592016022854360967377096027932661187831824516578277342944800944064655241652302844064483458498694709827676834700814924446241882455261630218289711606302398746754395033629402433558776404308331456487967403694235281512187742583075773157838542866847146026761590739751909436081361268757687146728816344110608455718428400376932548905866271036827843852606181764452409209086033307458583741125469316240039201538792952803866310291869541577999654994370027985596931438928698902664265447554085034768517774371852314083834374856523774912547721809106179049177136526236579877076305574128331110174515951927278484414914549134471799050407160605769426938333430271184575450337098310251406862869359152236743026468033641321127099404694543865793287567445722133122341245148848433305817840171189835244084028242227969203834968327456314294571666980141508613142494628636832006695765706677690723290028530113401211354516928406382280951517008695878162355384573729561353656414407201484524964878375868933906132561953313664691572735344587852990405252765059864000617447281654824129943469444277606441672966215767040076213522692580131680088836276117553176117147418139546727715889141296823444326765521825983584521745051017219326396434047564777764598290695592678615074346240987159514374898570647064348324954943545952252383165615779289587392503221059576896826637001338743870633437675607949155533186328271446508030205559273421721487747479617898957019064532428034132265746975488474705486385674004640402183399074897371860430227490792793434518033189012666333933542196728326053431197369984474902145151630190291852174249636471781809165705203022223854458123695986587990120466021632730412082854795932266855189760262316507018597765757939386674569884293873522454959417924224445095164102604765763353800901663318282545927228767798066540280478552209584371784897850397396073182909423751859719978733328335738662143603862236705473783070318800363068583166656607880103104367902574428400336305546035685703188836059210629737787664172388084466449888570203820079314251233540736940977270711367392130258332346008519994453461201530725323256745960169805058704472042379992643302890849739197427627130108256202874076688109314026020283010249258598890337911965402724364667594804938212196517475160807895658712611732167413033992819978536005294015178409494131496818043702151338980471732879109398159309634600619175355621895828566246365714637631823412441798006905111170568747061807556226811982899469873009968076369618942920295712133985027422540304748293164087331030960258342091919292354918697156026240350567410804824614031637332102740975388986465480576946275313975098173353189418132547458958783092493572868749688150473809261384326909367327984592013330036549856673137395709976364518669802833646048522160671410452395002900544791146682876084987437798421426965496787079887998530508789207459748248345685282873324080147118512316035681371839459869147056248046103118587281793922092772243435276604052228763734022071723907205252220460095624822716788730994521014065582077291878475830998759670117684923680850183976540356719832819702126496671607085554078572148894517717849285045386617655178844270801953205265399979204035976249823374693203279757858879690861167572515842175078514661140070859099779245192059935058850550669877849778604471933801768099113415758178364878992759382869929511199111272897096467281041468582130383052391950114622937568655831874581580016322659500870116137777471748786327354740025398383576291088846873683005980707635846783766460184562603170685714362087716983425648622450107479457423437611811248669492806277216316803788620056129347381748038539438906888135388484694790872298659636146694817518005159382227077236469097472764517302671893302319749860756063218465586368497224264541303754541835086291736379206792150411488329455433130617983811773384747671537253429847424853102057844897286142044142779911327989522878621499386694784835265384223645536118162072666943062103606319081560234188664878585147758962094004464281667091304467147773303882215298034033163219183910293437263467541475467088938380699440272472319657801691680753356594971119313097164452556967477594218323505750280822500460329042324579495933176733572887601409505262381343133950198977448194660640421106770125992596442725810647182836080023324637776794556162674997638254043081101526826791442445325962448574089224826951093244787021735539148998014005907584101324393616931964173441717826933740443891197636775396632463544166667055151807604252998325379914783855046924323318427571602209557109113304239782676598104829064602772595215030418670319696712987474395692931641989201746899153969583487931506681072224277742014520670876737415143874098658164996344887200167215048459604308355946120395899942505557579610997319389626808112573367006117203207213356317322916097833015326276101114708410387834692092737277996609832890486366789737203991542033395008185530997591230059291096696728068586321523930977241243630879033730261368189424625472592577280917802046789812707121231206820732700930785991668341718536420725160088147415316118528396569158227103725460765199940828669245128591246283053869960042878194190067739256961439283022526572078244709935081002787346292479124671392495938516767572166852735671570614365606373475986136678303927337186418783069562782157248122638668982515939274597583900430333236046242135939879213811578485888384541050152838781936227176052964655934689847418664008171227113499897848940692941721100972400130302980410885509750529713411916062959009487963477742622010931619740760088708182978750087012991137968681685672532401674354681914649791442130209440252063510796783442283790409768062429347145566722249982922511343719741716861768125613708296450364798066405355978320308452052779656491827310872655550707003978254493241171800608593327182235969910868349823697352182868600080476943782582556856189865368802263544054625054001990106171825486801208023997890236775555344690101912717162958092961482313282758207432945210381703966375288250698254327001463281192272814294125475236904676294416333910987063780762330199118283465537116151808320861491879683388095689467844420136324840365026867102114517731980301933468816198759722454526609832864619570177742461210989219107009732630302203653096219809248973120446363917514874135625246751996611606143242853738663916467380586594265129126381519386137650889804361655224811168092069134874624873434767732852119437375436017218930727013632538265758302366112799161862252421838335827244131779498460325002519754023985633485441904473572702127615718981198417946813641750032499569874625470994047828282219574179400497904198775355725203884377330667029767315648366677309024465374477286862065081159243701461525995795733404919771782457329600646142541695804014890448462523183097489838434185159347902825636936048659360138532381207733546735634115877904110613207018624241841938499792722220645077241208017086119742193628947674107119331826179412162835107751528694075888302272931498453750136872448655908908885495590561581999626144103328194877533600700348419912157227372428277078483513727295633155930100032465417792202866908531031251749817359887944092287379362053430207514978414188044336480278979688199869750641654512913050899781565094746753936502140973415524089860267187723501592037214985085102698460229280390529775903955329844385134089955609252758502027862517733621135328594378813572122753741461595298627037196634943030833957698412106289757324712343221774037516518233870067521537241097102127846660046174653114933493599153182373889209777054864043536904440286461211466023555069932611430895451787213905949931807081004953577082068093111205305443153525580546706009655059155617930050171488520757129784233026669890843870917653533191811735497044577059742930969792247805641843089710555947444273743555006717605183136604286083840046661993096994857618757078206786322840873121364463176120376637259575335889028979554967587664553387051161551971019353463327826629143498040802844723439907106174831433389777629497188018225903881574025389367493524318059805923964733286010551046949920016593251851237955218745272181201447984442645478782966195194651298800328385463267532041392515400374477970876887125893661380205460840988209219038769333036748145894577560606775137922445915196628474489677704830491579355372106279460002132222716880062004527409848389134032542675099356811326920696603203727931622089264443314222441415608063910885717047488793468744939458806723462216862022467881782685643923696321787783216509141495427524296334149779469489980440662113017431160450350183135820553950316971770728215882287267279516790787193784538820565800531549260682248326381535661822926407501939460135374145232502135061951419973844976188741742516944749626523187801921189066582329399469373259168327271625162926123777257042388515624925179946275113528391647892642153581667574741111811838094084557591844532458136219599830695563711975807514834562412809646019194341545873175356537735179466025304059597046268944955054967741677952920520612925946973757748982906637561633700263642932063442759259371715422452021862982008025573648049366066671329804083699536744804824506172225389793850852825373026862784493795633900270588815833263425698667768994698127562336251832032192149048797791736966660453529927219266329745369982087432426699127994511407015338556193350435017994271244161549138961738589635941400927948621336219713450231844826096352837237301858084352727704410609505370884720745816643081705915666588343461783797860870015597277725651702818321464692879094613387766891804674653931196357557196427191547737328949623634002925879232856698782264921906645634502101348382447048094662456445101101789484843214965162830492504603287613116605579985556716111291217827844997921177814578033470445517336526902529497936065039566077100522869073828026843321227653509868013371834631350004985937834225442906735769925783080095143992864094548719090920655367453232896869395781420620923906335843238711037286447112250391638062393385082297506094583858508288937806671345069282673108348073046686931958788818015688287670502324216091056642717581189339676867704681993558728023840945241207807649377755171976275144747192625541846932996055998209754085861123671316682529134169898336074277268631940973612131633679297223216849381947681539478374343568000323377434030188815506008889169145092183313343048859006929126676765680201218007682363788177702557354783043116269738247517459668740088701221400416107136495661763996065623040204195820670170292798724985733349808691546673957567814117896756463834921082709651198342899559834473459753327261238655666431858314631481940206889451022239367073959819930656775860697526443485094739355571574125787292318523474678165575400023900721727064849520852960272215381899236586131604783572835960131506386751808002003284034530696715983145959549195111735555140311965120254306794896976241680923493579321462631062130667479980868150029039434219847688957131993316690282954235922570541171989748130196173453477729243650253314578131326542458046762200555739462640159700991697630454996362281905909318142556403246349895743553623460884539203021205669831322370241789653268961484825023596701158801507668028241849200693689790088808686385472461551336930158692741817894812123869163741507945571714203340008460358971623849583453248531842404176295693550951054220075822306520163909628590141020434157644958728720252247120177990878132475423306808570592653068640104069425636463917253931507379518859998020487661590277682774382576159294852399476857284207599523341279439309634134243662306373748227725512918098415066538648090056718609082698221054982062468899451024937375526832534455328093694205062617909471578326253208570238040148004809881247893879447644584401386583925034733682151647781517722976765802638037304772420208826957757689529137591518825017343272432326947682250414739131593281468735923286497347376610161256751168227124357926253222183067268783909408895847647136453232018596276778353679763886502287615882811625161655997146115630752287306858498434254395990752815890692953836005169443987808044518188586066273452522276819679933170393289365888029353374691586592847625198831847212075410229575123198848154247784110650662196199336308087903792125043741231070214222339992982163035539627744718685638633815487875966409533662463765093346929110831101728272022531303317580773817070217414034720763334704091731104427720625497715191594572322546871290480641974734879749074457409525455163356099415941318018169213216410800083157376287736460263124362653436775180325343353884931474391624434704370079156970397230781517177413856890673231794276616702298993472054101554501710265073432056609803361795738984561901252800395477690859134441937827939706726852705230511143735338607476869632279245611698730942833218598060329140619431351448564650048231483551959110613887952631219725267274224245174168494514979680729926896962681262173035064951688277091628268926520548925919878097959384332709559139480420589925370552253058399510099711705516955188992700425117946410215132069063067515942699557552812762827253683917090510199022927753499545119270913192173973998404091878030327620465095632073430536907014433658085708965833904829463461306133821973773540605354344126541683235691870972552461001646122342658829252533080926136028588140270662854500793419260954138039902497838688243135020280849835658780317888652817076302293149366547266723272161200523718726473946365200832361317243473088000377513975518264680943541153063661064252306023586619207650915960065856665139983725866718218932424181426047646084177290329452613022681128278173683458097320141643270793554246800010806903872876252516534865073593195901197978730907457292707100365378989535417491480197055502285709406606241941543500409705666168352286724452433233347463205709208264291669707255624046986225928506663061964831260313909119212581764434210023841282618488951929792325466995661801025701401983199224317900927862268923986687523336322643612125012998578617069778421256409501310377134801099209862835307446084494121014304695253449284367981266547402854042628210890769450303259882137429422194458811623642543707571391828296775865156431406901736931630853621795660011986924557599355824680301357726066741345364401934158330382346675997303651422566470560946874644457020961694433007799375363002223622746760780629258247659754191749123392434261084061085284318961136910938438638896279326999629180162732580496521410067047202440391011179399510882514011574545413481654153687128728859435517056190258705487968829857075186598950665073925483822245264313615465865884308559874453184123185365703392216691138557823150159335132617334107949915027428016626869377271235172910237771985960098866955621644045335035061568663706477255215113404109371508702610150945724631203402896011871314146740685075832787213959584876628688004640920119650831199739325873206822712699447075705772039139253541137224215277314659788273157773628860655608555391869229076989064217298982285164334605107170612968596798113489239064959253214256998033832547598966423112181683547046638409684602053958579604692124160060497034438598006255600066973262187644330951436313842487599188633384505607382734544702854310681833737332730204999646477544186910302505045533159059555814433514169430903834758326054858304847932032819255985463516259058915213937277642861268858479830065502437023815947946184584936675909721318406268734122299710531400003049249213861680695794518359791212957590036289991408814587788180303206063490111572150534303331046550390605371733789625993595026622118119969694871589347993797269391225417278282717608096995497688745984958999466718710415074236604605362242342920926386731635053907807347974228632069146066562130713384604667554023954403229722721521980572722736674586691533263304047879858104116146565530771446005559372408503710205773019453789440782109210615487737849310039149272021122816492482639973636779663925191401014519989153044678857242154831415525585057523935840413766826229351103008171122618959202547444504212465320688339816941089425376097558619432114075849125170767167461442243680889196391433239757881611878247834380528661467626781714063662560888977749539616705426209190280325133479162118602693016081672205347780940806603756395543566450813477883738130289509177116588949138639252565734794345966263731939278086268012035319782966011176130201773453068765798164492795230146542508126952213857143670927125335702272142517290456088670392337096927360721252199356946112645568468697560513661219021815121801079649521370995511206846138713772195222998664592084456109372132810914470147288971143460234879536322321998086374507003991063144713257035560259568757447654747560230999591196225575596162451915581349413341587469958079780225223227498597288116594098778273807312062551208895464036627645266114415853320064326652642744166943605295778128152926601229887539274074800187747533995299073954636241921193931081664036657400385348251567743793292970160565876683183000924929096971054392615717791798156493178041408583341106342482938897673635505321335472628945417778232390795723803218078528013576802714365465219328097475268311734120949235785238239108601806729132968121410833719237340748218608551057934314599985676229487273663670346965096706098628616227838636196913873891784805119879307453594136161192393435794204676214409643133336261439033157771769419192958374434335953264145267312597599376086406514031744964595589360811580690866729720274068649591312039335723002399448860389528710136983303397603079561450846328880119890521026977981844863069279397957139806587641257286542848894887588719969446937822803587256964373790686495673961093999097711481364272526282814116148708145185730415397071845716758610386815547504235134460100091988102294873210376847318945413364331085966204276899339113208509658500377087230568840658981181218349368946436986939644202288244436656330848504725741919910420092712464144861043027683297166626713696339136129672807454730226632781617536809395201301578032562845134119076606502542399249865329071030944333402453097270737897449945213948291305396015012997231188996921560373603273830327271003034687464207100952569109431947148376249940157811705049601139610350891675189406764903003592959219905308431796590793221953196517696576467297910378594277379832201692291874370935105599131757373510293695596155773119256853431112997764182057442306365435783359792698970381708293850047789258524666160565026691058103844375105613480455044978288017387609384473003712632006294324908695298274078411336181041400666628214775875021246903051479554257967524888573047416157360138219355370726725111434795289645539474851883017255328042086945217732970241336569699652231424956817435863740468095583209932608630364639573248238986025045818119660343535714468455532983722147627885725876531312515914809823164289861943987562671516903523632379706857858385870855477953948297059419993956749015789229749013601054750995854198892625450558184305228559904302195012833958817806997434435338263556852195781652093791745204154023030103024876890855427664466898810048408106692417597535481652594024015586549055124636660057345499408757259333759161316742214028582014259305387130663720979068353233135447425094713997142795507105528326134617003502341617051210660081916308343781824279828890127291526074064153838683123832292051974272245750226361060353474181404028584454559016900893591514027194891325105655994071289200773259275816108763874645922441523010534946245454033900854111617891762046187505686257628903560973352933415184609113879140062646718066165171039150104615939955614539602063668513120684659615935669912251159745523816373194676436599528500709881703085522873238808142834621721354614378630735797269161910637366496808187266055576373938148580257192931010316879899057826373830880407914377031841290969957422211264387510243776577432941722340694650592286212132389204444376062149369996825258713562652349307771426416764943823459846019844391512207878181220936193422562883921185867785544642967337129349987655606397269544487533088681838465194595219797317102187105855567299937048518791533145123944043497747516096038887807444052581867438721199866751924464121069306083445492384592067508480843772575207637810807421433600632614109066884561387190014594718940615365987756281938925350590316285247184116985002346122860414266619469419987479043546192840191118953882675609607324761874835998751409306910338979201034727440545879615733652181050720521652542169064626641138246598538855699495975612133690135641694750278933657076578161548700219760460085487126023106165792154660628618338239449079786596514348104924721648077864336001561752928280369679900441000718950821692179040740566514794573892316600521691850148436577783679022224576596368985396197464925819661696906675284735377248228804786266812682154452262160751591465577737601657489171565917563076153432427030647629966014108647919888560264267244157102434259377343414142307945877757917967660318328152203874794775906619889879543159375264470489567044190077839096284200299432590069065127500040211224961669398518986864817442052036125525964325420444825482912185711018663287491128479009162494956263052680875663183589664356773909045553234649470724119871472310307277100721033772263948520679986752921479479279915180739503393451257241182097288508325914305140057550506334071072082934911226362260738605775734394975443713851533536478961228575998943473315001693530068912820955515230243118850013004375593690418000387582867245366449352416803541318253483882086632588714988861974703639994344217626959953800778614228013935285121467741284830740250507209795672765119403952342363909342439473638171277391354894212721729831984209676785963805467501142095626181654162161581748072507854439062504880370964963436754495137848949296509614147410332880889616307290902699105879958294720960533734235505113252625217681881856492690406033096215151094054554211701344475219990362611497338439475143980176008856772126139700483733876311035378170983369644231964727648805621007903735972638474619724448721707896409073242277513417254140115877666533554864831837938021629085016037182024038823156212191171129973582672657184877090542227825749605044050713350443941455729556448001778810111409286024789980807185684788764629419104463998051808971686878194524335778129719406560708505596901053589838801448507465850922160378452881682148601775751647702676644540179728752206874137606914710564648958688104921329415509271310304685919161302459883834358723065279485987007567715871526208626547925284336009202268554791451843120087056706886369526096515163360098329599566088651446174034911896782038987375518251305528630762335972439925505751359365741671506121161790513950223537554897164159674976730158267741845219885845646399505155101545339619304667042325207322249102280417988693841627036072462187969068986329905876270343810382306883332609265955965499530856232959392816971374024221003508822844648769558355477075880713120901748791661837310058117386404167625979370425758458345766157597792724902796731875523435740428946115333097150815320711220363815744318439957905550114448467651354186110899062832198535860994387945067347614547203033378384247743881930206902049854598384688553223180568546726921822201983486376679628196814056870296976521730089021711200563585232732825024446087883864603345149992449974186982576068669768996038230411424314848821922918032642874789891093025950313505717634661777127408074993697473048260621187367931636238478467305610684988902321948589388890946709600996581917454024192690189201064524095153391845551340152369843066394698916913446038208250048620745947642434891385725097012437207340857024978888651553229345338850029227365616233602745607259522920714155230202830450586557979090465334952494173266797312965907182781486573148499840703164711836186939052189460477573581073742308696141729368767064961820087517912443562345177982314466676600345095914230084168383139830462710138043600439498316168772282402626774914346384289918265704047580856845627941740330980923650236605547608646558600179726140122444908770684791682901603713862769174316311840909328875074356903328435394541811600226516659741328147526564537547979204782497287371084299579783691666014933363881987940825996891237080238123544094942010804331356401543780395192418363497383945358403680298695932225331225206685363391399933037074537372449279429781005182441192722670414004875038238527945023933157462636556879213519873470406996423169093490828824160659372268326792333428297938596995018696002645618668445511005545758402957169371156958648528233380469429185176601982809252027181156968531621841303107107324582884437427513931633247540047612985706814968134697384863670025306780285257715202589547185955027974062754076742772439495681255709260332478498616998790146520376250542457784737085480520770257165443118737194613875597708554904863873440789092533596838449330059874324129099235911370737695799417685099926021571273615102305646149460892950854410190004308453345636297848238238607765717827760726039323646232662481181505073988402554024142156601010219994419217642922703501375133097950053371342287176227553235681336767524798921489188386437110696073652777523508846740743067755595352857088375073321162871674897354634014271379012367049732836969129410509789428869617508046534132274767742047948943738725267601439075070605049605975874434536992262323817332149221080974982225513267523325500719478329547943428852245840401191023912454961693875599181493360167657690711426532881279220268933299685270228396369236458646596873666986622533828194583667810976801169373652370624712725716047465774138624069365057295736557314352048712342044755957747795953034757829180010862003112535924910383095426412327897085160378156667893974527075355914462567833884091314591230856715708317477984671214699924343734798579613865223179823506764280671261302997273815382246064227184523107553691651818664925044323255758513844285902466067448165605302623567940507148799706166016697215766967552224062872667803979099599056986942372427141512503495418113812805197790371102625109609337366871223295365954029761812485376306438784547477435252157762579006621688601482736331399662441805919008759821588556768191750885016236444640081333253543827506647694292732363516081908057048463573122127568959352167058540614896923753347777317815795097033711317769068545446097501545035816745139435748786305789991601539013310415901004112565713247018424419145238861365310501272312126318986166668890611372785285100829077099694480298973558998463998428925241829059916319091829577761777001416599019826770082860061935937909535098772116094452676784698284899839040399492829752540639465460055606020942213870709318206987584452419312667128592695467511300964105344671582818588617703436630582354711959157984934738270950182113812226777711168238434634440868480829640802345285401512529612728283604296318885239732797012332180654915667618050288019706546920792364758365258039109193095376601561709403411777644258375179091987113537504442674212573418692311956740685298037135744577129689613299379098293359118423688674591332724218814648051440433637440385177514699432194206259596700601390773507167544770178203051928950895554762523444189704002929731747578563122093497499507077157883238342627950341914533897536576156938186714418359410427890077723375399090565490302195865768399964718991164100780895671344557394176772571771147705176538378875491330579056375652554499035594924875130251633639584641037719700622096868106724948596327375831982991427548763249113014563356100356510512136632545527015949066470699516991054988699198620292147533615609412602530823451196396477500220614434285509057787205660808510407117604524847090871531977802459053486080344626218968067746983165295414674713851461414268469098523036401934986823781790329468719463439944209695485230390299648656038843913621380926289426409545652222914572829599401955876576293385797485369014509392474687787756853433060763860500956343467943142878988332393102728364820569948898005859884225478016723944537345079861735023297731179108390490613672125872896510977447368760432100010746403919924125554109387435374427042480580570267978430300853826261984153189542061769180060885192298040670903566717297603352739557127579025246721889902709367389054390666868399667457819369564611225285600159579236794533465905430059782394717325781255106489840297028295688776336384103053122938031879821752866869107134388992258738840049942254284880675171750284148678440238926831455820667306094763643971667926931562076735068782784918315095346692279588732007229547861191386950450233930654041057377475953533500949855065321974294923777646857481475520916424615021160413080406873051912673449620787944685502232880952720980948012969346226496373045988000160556337484736001646456033375117905566718112318656985372670740433437814476489364829101292561735625514446460980054858648476386696999783415885666824437553593385408002266421104013772446576992221521297688491463546535694708140479411611717352547516362981708603372082071716293922501596903239047496335206410230094632113751247379518650091916389163360578606069624891446855284696429029287620497868573077514940541869987217927467855211565071828979457721827190613494002117206406384708272185365199062913777772285681230193644214165384060928456637856298952181475703060627763592148824839766309220037374515238536948934189630164260925116522027503981593250719858167422716662170008699641951025810193603487308930085269938032015720188466086461627425321511444276683998778454463575933587165711723002912022845466576022701461559426008971674751908493111241792625615709061318015217493947498707235697007488129887607575027009390571478401203881163100602130297363746970217977546039654564159972569108847490343830744506545847475903569686352512578859929839819643978192990811351601506989928990430224530911926565619896710173291266341392688667974740527670683274424136672311215210472972044056785333968940561909775695872773603323344507297272273510554584714511594845233001356996423557259278593502378295302804834383176302728167123019561849312327623637217323869925240852021216757822301710539576736191614330397864032336108929354306087556396879064932475123095501200677262166860867009843268686407191890182711307642798104121841111016237587032372572136717726347237149677920458053626700427048914498148227219969383518143377095373523900869189790942317800086651325597251373619215837384195134775400855521082943834391748949385303478366747836480912978380974593227393058467776326488250670259044299109638128492043729736924690840767964851705553082615855366219250566932261301002764217986585243471295307745541875287409476149383307158407634711274928450895524411191701332507277853883099915935944794991637166061126342268458572258301243281848398373084271082661308019781539682742997417729841077688260918114622293918967931271653621714617518653463752360811819072534159365996869498058717415184806449597640388691068172976867627911586352697156748626745890792356606318866827000706423485097646243568774827941237109314435986336820927666930239953204173955314012513465992237879915390314226216351768419314493156203990981888523843148306903209776251666733248935631480616891594954531450663099872466569442166442985708236110474241776735882872683912141080799158059688088493132374605893224195878954562157008384618206085031649390174253922099030798177516545062844760592835476743413626332845437510682955556437291554337339444241141547434883975295780431617464298072344485297115505119416332423424339970689738510137341483017209541039137289614912513064505341590173849803730582055067554390148534327029822017995002955100280544569977111787801826471338640239153074204669491045271354869780602295315683810336238109667415093316442058144947731731679991889340907357916083033286040416657348886137628069533274748868184523426298127788465504472117521821908039549947065784730162779638234422005423640931619632762342611903699656455038184446141512612058209041067696689956406621495077281306911579386907463611079080788366235413382993898715636740903297999078001056705232806785044764637986705167516876683488199079955449514849044089365218812322474112867910267718270468003534785399366753792259583388029512297560947627702965686167650298355565340405427013794163096061772020178505578306735825834196493079420576275878481233838039699255269907357872740054768321059629195377735235626963937113662721277487155988251594859980750051337860509118229729586160668482781750031062306356395811854422169094526863933298832449604071031160378945631074042544192291963755435687767039554715702814852646914085365330149431790128723486039797700748351387930781057640882815363909853695939151001593426661513613280625821883919571833828009361907464964973620379806663537065866057913238496927020103560785503632885501724041988002305129568643819956640011614764106935152676145619982724451558625347589246415713570059654613481262270062654491174900853889842696700060855623014215339368876134851713265587553047925358882070805461140180498540993523885754744486659075959702401119907862057745602163152796841122454424776162383097335185762220269422637031291357590175733807334825348947978687922889511872245689484926769302151972704705860314771613651230650396690476816491744137192987852063263418291604716768728789682415291297249121152037082728106228752231555875030330121869951152554696241051591674394435544867676229490236150079137395431984547799585028708169075725174073250619431411095106578910284871790514742348326851295662876268627463837611362159753889957867358460780874204114361818422909199207827985492899044466438013942537674826317124318829783581885197213339350030525338983780227963526072759635666427742166321906195713165275340572480979180176449491351496829098920924302880294241122978551269049033159583540484795085250949999075871042747555295428891953060712680121389310261032397996084366310663204159648250480294270946778993825948591296013529566815315563142578040604356479838507024944610430220681480958574334062995203941519381537356945236735440816547590512527419846159362193124420236019839022678632213366459676166991344301970626447161672665943519093193765293207695759909355265240808680309027378518818141722455337071338401709148234052680373342194467008620504749970695235727586104063439529552935585449884330822350265771335750748455955688290120265513510733556043920104833748662966613509724666737581285086834659644004864725861550255110671484062233848225900349824624391936928599125793216069919303952350244273218836318937238259647437528560935982066987462758647054519637869649467324722401730851538679092014349681112864439656251057206506867971757385466713797750233532531955547297226677927131576731634700698636566575734249542981741999351222066289994552477725078984391244353189149781830734604520120426464909716839188569152724736451498765807384192176547163711628924601779873361948246158422752016703222847964970054589421167482216817797780608134240409678981227150267663888538593513429499966847645198303359583042292065575444093441071212969097513467778791410157134578402223723693473466784797592286919795000659856592539163262662857882165483674749442187806294856995021511844677679379330262755408505943214309920575065668539034600647267613791909333102010734843229294699461329636722110429836871144355154093021664596632927481006630171896170584844208286271745265610905757006692453200932286068913387972536950557939909583493822774155123765004572908852404414317180817557219172867685417709440891227703037661895137207353833601456192673213076845533308696760816070174667718085620102132265036267830126097405013929945832208909155231765264890955105228430360119499915111454265043019391229814511785985721637451711930558042908771564964714255294549338449680154389849998953520300918657258402605631689320940493160811055624077385495879273765161981205609099449139586410240833057647698631418429964669534973442403503298833406284188446490125807599268173971456897104014311356640522537164850541853036276727313025604385503407875431416704210867959131276844794109934090147844086931129596649327476837790594493372385687691495065973104721864356852715524711871892201523206930485046337989545431185499070139285982109877166680325567998083026440915922830894211387368065883073585055360298091482598337492101416632806975616747438470213046263237728257837642359103821271785764811942593870609320577164896580699806674569218179917615314890114646377120349686222131926648175041984197888380287340346675340848262319270307463600616625944555332011248698479186199909279855223769606146885485583656307464922225398782498743688248675143111720648038503096442424023970566483314221053152817868191619225108117871294324443650531895790774946243085827713118265599625677902625803746075633951190255869230760602987930995706101434142491759679922104065266741140058007705507684257266422077358619068968157330113661870080890028976795972620159921533018201146784668920392411600924922269622001043158348385240996000604233864830018963225013148157434141778884665672644628152721612656223895287527859754011104407806826804937074515194408428496966916398807290149423570252158346973216525225282504423220182537960403693055682377394891297746498542076491135794204396455104540930593708234988772853289663428609212937491243448374630183413726818319543512013391031761153500685511491066080462745602304998549779634561179294172684378137083440410460923035248018855611573366353018129716112020015427974708960235306214298570924139759739861863843914604444272274933586483690065618064890033541377598935220465291315212412617889700151279217942511416954616122043786382283219999095205692066351349819094813440590520832662251794169606114025992182573920875991774716960910968674453776628833915698076867496292322726641449132355559891367447729911963336856913184729864956939715969639967249550860400167401550329665073791336208898703900703443268343435472287490576933856008142071076861130466103283733606503689316243359098724693990662851765293265694088641173553029363040221875056250727098754943118652901122753749254539545875969680068602162995201886563108802122796529252703826439058470871130437584386464816218371533273594188929519499616373475809470509547909990986533799337181644725704411154441202121662097481253781279831114841706144472302343930293541348749658019940822130802322968128336599578255603249762684334760091917150116937268738590645571534339540409817973235229974160605102107030237277462141080208312279351530246837357498740632430157784826605643093246662804709275380933925902292669791152442690629247648820558476277991680440018289979577746933024397586094423207834063930708368597833344239544735085995790011804093006200218918668936823242722318480715500232183551047637087424981517901964217904230569662945916403732120558051792090962004337520188054340418485876592406243877893918125315552277734092186173556324325348355261762944022284161106395474541889144429764960303091031014564296480085574968278192306212071218862010771547072796317479929722873952578318507166375712586805354457488903527173989646047267926596473081333831176747774854910927776721925350153520110685639018419083825016678569201017283163607546372227822485061030637533907610037444746239647634627773534428228188427135081328950397589153469162968220783136278885929335150098050887127599500490737161114486552555426270076309346785428033457405705759465685077897699522397683122747488986454678045232577301915930704991687203907940377288151675657930146411485593473949968761566246646279347857919036514388259075577088277324116612404282132691179608301107689498120370788543548013304806650912775478812037532655081550460825147760276690772200084398607275687900764397343571174512512179191088935720557452411368583252572723340078666664249366821225870796819076878174255120061726689916896346344098678818441569593887739802840331533979114616262203075532336689521893925287612785170587278723570872550654166942890126434111809210684207333774228364872412255013028258623961864436646525422644388635235813201951093518205184168465931698905656676416700124848459615376276775268526952778432230435821689792683085095066144686511562283972517309709617656698516994025008028914399855922937032119353024307930253298895826051422680722812577805141279755363619252263368472214736012041601732501287653124932257297340809896093219792345977194993822792695105444589077505884925408288060804286503552328461571640290826208316931835948774752181191854420470294729209859786251469003122308950325371132895575589437699553532706796845243252226429974181428799838689173965377815277285877016485458836852877436670980577214222212391378263501817939005472636328001702410973537936542866253414931156152085324005149139436026314631267709831726867239371711858946147388885500528635672965777722427099386364856382352097368573394433663350039040566333092284334671426609054383190928211301061144965482595917412991069707075967584291320193338730525464546350313761576555625879820010888425490419891983100927060411351880697365469908268891012563800734830720247493475984321154504566150549442062100838791813638261739119059616312071531035312578280346685997500320910966783258523429201270740051599884956844316533809888926959796994087039166961647117415314769013759768120029697963031581244624681553663244282889357927523650397593365026567202095167652088426849357661389926233629651083039288147928556333671781290811241875064251075741509593332797567029020816021299331984038167868054768372974312664386716369512305590487322148452021001189333446533913247010754643642336919530099556898246701729717445077260526750141844234090569107330552700382985064839192884329604641772612902050446450813218630662430644299266459634234524849957147068719010435321005788863953088848113687935263708416762584110544089981810544435322150481661711355617597082029491760123457899615272948539754511172233761464631807920112040820575090342528324930287366035349014382906778601814300130703549619069670736301879986084762252513961659905853661701825013799488586972230796553730683846818569781178812420602786730470663087599967192489153290920185417670459011442770671489203355335297985285588986037942995231624631091469484335433025669814098923498997696718254289103027982775418902765319381481688176827873663703893842372777291618388420002183650754337052159630602662955293221482707342684641820008314526123634063322364128073806353504446563948567699819389512771254372935021924933033178042593823006567357966292027464047339925348215033486775931283901647735955792517771821067874904206680195195430216841003542616887915874970510793208178126805448461895290707991414369221838821664655593435909738481030699815803101265299930673833941621560448992908750356114113404608301619271534210471550228477451079567328085067045843689617941274806917502189195716636887316887214764982768820521356839985926478126954657333299983939040265625695777340148493893776569930401240897250600333218240084175825659649647486831090767098097286947507264169277363230267501495294192881226466682495267869839201478907917634758195266823661068861531727246826756019372245611915597280533541337756119646485900457752712316044849618834354757956034276184165949693325828871342955208635796916201021002890855545375984555713920242805029229209630862631173491895763460791494850525453888953336891040958918779669579011048765597123586231344542176821566877282662156211306215877912800288594427494527660218414212834868120386782878652703648789155228699383813509214188954977184662826877545352227396157931367219845266271184297432741378387339313393286222081043739643922198374688736987407644802672251534728669083631235899668975572880527596689765986281269976753452328916806976369492205877500944296998123250093611577609393243798757910506283624934627934271259216865344906473295677301429263732788857800219831486283504616266635957391981519723769935250981404124943377862934320803863010246117794743571510309312030996163684246457778517780887330563474038535047774470361875783915250229721106397569038637041416672694735773929647670438229244141180610839628044800638871636083269099553584070953654284961611335166020015667287797508961021604668660824021998221948621964413946392412900755601434111918222436027191960710675534931338594222568393061216138736544373114703114007806894399084937321301804023160166285590889770863626842003641110823333523557575953997193735310057062118393379687837346388767888675377955262082289687670454180590655620825447610884678175885889658605971066117980748724603327269068686878170458361536037158592922462018260212020137118173856294166238926916204036344973841705070635988541308503820944809762581716569356300998295172351575951938276416826445545623875484803844658576128376750463037280738432901923118444750327842718165150530748178202945148224402689173204177937225543045672952056005417248461756030636996821747305221145380930913912353483094159122608429101026368351251201411900591413176492128606368777887098647701320940377075243724909809445219687152694102615142025247660331673235122275030042730168197406130721621816331642677956049935401757319270873096226936975997748540182334959019910583755663702871243492012117181945381702115051355897074607164782020681430860032839665535812560457487760611982734059444306240733268370110470648768568577958105765390792230490223973088759541311589832401567682046876945740095864092277463599376408329773869644484294714950126262357071059693478056757422827262917372224465141786856171260151121819759726030935225428395112404550666267094961371673199993852570278858586901097126619814584944807256004749802203938585189470625972116474187047341540083182717541864663440007844548777739421329935256566856061555825352092737058833747063719577959256227726428711345975448187697210061848100826077531249393780156627774996974957296165308925106740155775350233523614459661563088185416841280476360257189270747080987220815504740652806984853604913367667441945790356191074305013622477093009151233114919517921318618068179996494724901897618805006536682923207566167934910496840225641186523193042254020983270647048275760104864233799238942089270680267840137463741600450577359428247249048514603997532685301170715694380355568075040722660710926080542313232214415748956764236418174364029036033778642077834421013104618876048965756486447011700370888129227763984002163146691520848766439319266328662786754979989973504405021277669702095918869562142532091325273998511291156501126120618534242902011128863892090328555689249680378305568901648403929315531303268462162215815151859273485544366754540360035306695531460179424825229077497578259645920275505527425518595524043664527360527157496522185404642311877612252760186664698124553453907101153119327515939250339993187381030426063578080483937490669786014744950612706550891066367564960566410558767960887921267558145337374920134507462816715205321531188502417106229089056862727711400202665413210942546654190531225672828523943235225430643331139326780027216002145491006511027644058434167253533550990401866388313796744633654386477188817516411714278300863442161613886874946023591986063885148860206062953012614802679866157885789398114711008687789388687020667567885290276813056241522101761766776601694460623540094410043207918299912686394118215366728330814400178045445346397438273992571232228337997367190719471828349008744159282558108106695175802581891389357669755055723543638587279110050148173607312515892248224831984146614149120858659706756932477193343655667610485607065247786455351117652266837298137330045487917573055399158081037606453967607951794977435444896778888681862049141845833827372181735392197650755094730932269208346596680537299596621884940856127451263171694419426603806708258790955805946905608272555395319741852491154533851489013574911378045208755842593876715596339369082132641261609567772591199571486413227727955276552921968770240319434372090844643288271009676608222075106008896736461622589508863826348279946734612573684783551000916398997187861578103449074430831201523741361581494104466307460007717441628260596773569123731121223837788444500490328042477894306009524974969924836830366876609424682481691045392553625361435880530521503995048335576938912804947658508217318880361060957220265558226095337304921716547922140413409934921102208074242447742180510142649421853676864600823495981597831470131225197704949511451258124583234717497153284519540901314442010425915276586704239659532719448846453748453108512860676326888889214607574094488128444131211602185614610760422452106155402373228524652322396737486024436250407872263291026427692041418037762682080652834147400717700858179401630911763463954636774648339161210441669257208438329265422632242667013445867307666617192928307831285306399789929683667250076522047058085647580063457440757001043091275919247760378759721137022643501454244984707061903793186265665082362419880781159942987088849768055658360324110158819699268581955443993674016568125853958841748621931990198440868464735209051592224971271588971196162650633563909987100861277222296945292561355262588088914355815415006488934190179463368637391348793521617379504163499700236053893947014160980663757261373327493968221034534813239345786781225280238872273723854337658226019117201556738879463889857999151866432395038178502925843580633751169124634917541390841234099813178733388727773252912404260255021377035100208838917982951094893999861904335153902537124120235657370246611834974437324602525823145684642422406205677709408017136959316446529490430738458574464363342693197959113083191758343735996911444422874802637526425962932093155029701887375199910964162506898037878070793229347563143991387656548821052847453865315734875438717889064873694581944790478330293349065663912303134715717036421814580686656246897010012052145469965770392156378992331727313879680517350780441435751499288497938610733971642489822268256702165322491898799148810857416066120643880716004596506385770673918003595582576646076906257626812293917733908478119241582879156598043453140421795201059556057517507251212676829747198481334594932625345273800403841014449050366158977498548069033610013154017793354444465634092985156986482137258057348938557711780641101704208375320440646310994475132919013542221740634690286891703407914521300096698025894631406822237958693540150526787787497814285402011225909867695277081576022672858541635925142436807210714882518889972889969320754771674559357626168032477083162034799144763375914304776594183329220380387859848781792542696038065386982557027299841451200454600848987437109032230392543146644038016242277416857005154433357904528577213455552091088586803982067872669439623823266721454240697234075077429979540428965979824725497289096677610886367187816960775900763351933376064888482875732087386694283359929010896357745627612716039520383295129342478761465095946482414341184619359788559049116291623051675091508351072106544820827359281034454597891141560306363196650733362765535674879328077239294562473458209009375752840843799133290571855636978969273219555410936730485148055781406355657553527873969335280968750578282182524804483607753133341891346325749854079928653029759702435999620085577845954531048725013851758189458496958804347250418109246170141365985423987969105995485266959243234928103426078268816521434696361732058194974200763469605273195828131613244222492676167634994136917969361790081439434189297991636571691946657337324131247908209020760939556747060656606901253785088263033908545842433860511729767216429771389473523986810750227834350050519992331742463372644727880206068795087375417782469527831203325121759686248859441072918868755031360952618074318880629330215513486673007535209547602790944802928882962396945333769616851240091954332785624706080255368968647074899054790896257530256881855721587035995159503189112589061700844791925484162677738387508926532507275602491879657833077598805273516038098493685620565828754708233012859225342561877436973684633294749670476191115233545085020805240648244908084062802074456723482326532692322822037919503823025999982514687420388829846222636453233612656088689720112528019489418548043935060415699377013092389671688417571255149329187133327092505243162747434962287142345394565148207230613136473655740522750027318765512059244349762865847288755358953465177336642596062261661670370199510468855351314607745341198832564920134164598264975109934052375165487786571684238095799689862669739861416754552561052182482627721315646431130304253343351036090873001436708698872718655387621802743147790664026713473681068464928250157997815839427606239324228622531529474218787064398046509221275480076265489274081218610372693924123873308949643420173901994278708345336823878218818320383219703530174738457826163055833277449376845954915370937755480573140950712740579778110335527111917025086262320937970647774359145955340223027785284405489276473390445898863778494957758798947656734238751541234620123484021464230451358483111300148702366158162831630952399066663749059460691287316101205571742513624688303610683451417664551276471226287983269436345102193688671211174335057015022105463568307679291443286032762920488130474435576208620569046611999822515140829158431601819903030343545739493392831789550106889934975005536825221958192061594415355501045416622356171878090435612281334101922104423253614006830554627458660098282975736803496894386201696059723080688517546686529227448717807576573211552661029497089577132302648992877875790413401157995653390860681321889474226598006119258491399542539423244248413113299630173849677959772953885083468697782799861194829150115953970502524679096196702656582165097863321382811255513687855061608142374269834528848122292658034971246757535353783995160315081975344573551134733491199026662110845544572025641833997947207920475855660450653166117582263399817686007330079626656426246271158158111155525366815201435220064285791351273525798656736218717494732367888991357250903194102034750743462170696528588158867153994850828441617253295233980352282823597961915324911648796079698346130315215255251388435228751134026589255272651224505505404724056175065086842626923045671155249977058413593678454164210362486124487391868728229568379913055892181765708992288898198050711063585046687635652537552152113251739193905873595383100033247978115826059726808236695938330645969636179158550089298011708892696815349966414294149090318873060062554849838818098066830477372652340893803702060454118007267162143887092942932760116415480238991857018281489159322299122660598841935603575161632879843940396847001856810353191058818020758586337283017357217761383408483941891516869830894606824729350377789038791180757117672951502294366113539948256424031694675814368052874546604674428391418492160405208351859606012109063234188641487270749994535168499143718886406071623498376203385788156565857117083666269941491552919717562609497407709632227922650372804002775552512864928736453144593314898748925097770132606217724537800369215817231264288042032175773275229411993297361280256492743728485003975841378025943161738715387698812754003592447360159842095560151135016865132426179534627520568565096743624063881952152742644905265554113029186680392796436018449440805774658639966140268705942563263820630060843298667026321451240379221866429519840301811378077942084758461366212786175010481561131033489694246147466523942441471701818551683495032272201905638815614050094229863693367142769905074016577791054040131110514921014867419639026075639042004557041195529785488118652943394296600307629617420197651799999435369824400754593642668258988427426894991681679070298082287252876237281923638471244691769824093787754231090715254320997663831161372626518045394201732200289941307077489971845268227012122336226321928047555863329718568468855648647678558367603182615319961082710898946605484304819927819127938467226790563270974499836022809244671919599745380025092982183348740379376066113848400004810988401335217638237686683761823404800830743012490335531187877755417004207914600744181902117015704747102054716936151252340315278392004760146702619224983967119551293700916846307743762017305698524579047148524254485020215881760630714941267891423557164264823740555883496940166073437060869067547051875599571162327227255068083012915222714450015810540029166017310891525749396696723020463214908766909836398430607467983598498367284580463296383029931394502865018307236064243448289966548535223007390002030762004038661820396853710678711965245953439381959243648700790303356929211278576213483572962954617484267932641116923046124125376300187627872869379965444498720503153233881939169122807586200090290582659055128811442192666166415591801250182166473008240692272515652323713483941256443216106196645450956097645048720523725776481284013204780854091200362385376080805718637661118741601210794273015411618696880837978967497626141551302668960095125368785578418181015936757382241063536348131952053009896222215242800796596121256367545860811235804812062664919053516021405433072215141030432923909617739881027354385797283365972694241751750144781126685815100024515010670794186061338142908014655837522292088721603506978039444957701752334012111214928261370782297106649440315499031571815710362722152644403358098555109713987494810457719922781645706677088929665908823461874952126561189118187705351015191407591886253942670657656853659482275021056308967384815304978349080572778021081915969799355925635842448647709235117711916435126476639622538283401764029507270579222600370316172838732690056606981148539003850202629340940906146350778132924585752869912090014582814005554570182445537666885693446859812383613523583136108571881739268259539762298334885685804699569453817025871808450995193645616263791758272287314154951039157172571764544120702154526859864932873982126017657732773834477317786691608471693944084538248763772617990645062479795003080816478053179367511618127052025334514064329812104713103582420486772936241491374472507828011970607530362486482464588117845710627161043601220127199543703708851725231052743135429663015682774500957098095175050612265565512511883712741183785433895142075051735852812334529897723385280829999202245728019314349672004301732272814637559744215636223052529286096650504684949567749350869640322478845847729109934777673526959917613526818133985705096811713265763434031465754474554805237539732343860110402083960729316702522397541144743270879411204212480696217054982164794096116599764041296909572652892584377816677965732074595851879653004895040848402283150960051193557179771229615951418852011899585657769912665289258835899586357457598626716856921491325195615841536814111237007889301778035190367215845583770986429834257416544933565331030446528860371252634736589830835930169149632641883589032895479734564163308828424640607985976440981964331542305212782702344808670259277784869029604788097543658715254533620720087269013172666137047458363573598872819327968150650463971200911540922891565939310935877787556058906301909759758713914676367258975620830865308965385339300853351855829600290308143087551995182491269131583994959159656125353038674213702448738615703613226696867876337508904878160673731616613407507414355254149917475605954968949139746358331021421945880582755831687130361588626821975563512568449484297482711576085187613188190898136282978325092024860707271484616160257582295065948477897016833778331813430419636403205732996546055218832243268905961250468722659951671186573892295328526358636795590420556305668942432954507030344999024005480426545791584995680744670428667481795985549305380201787202810779453547660309274940500536412730496316145910763625336853457182599189793651564598418243358238072177974185433677209745356643425157932688176776295770957362177208293303179454981090671143752721667941131489941394934633866611242564443592159564587493476695193322319016290760968850138392744192675171564417227594561102306249447102225076245102579195067042200387654910955156972019958229752674621641537547979354440843558830068862761939768519628571051496905465963656232501301261780627569400443294885508527756302767350534172748971439993693630900402997583825218006813604247723016409436448052490856090326367712131003326118002088123403439985863743018724678122303995633750099258350012885279025102851449720111948899902788555629155485960030991922595039666223271205072604247790866116988994916434365602851909212881601125924606273015530819286005514490129418152746525379857713804267312019327211860149356722812243053512076311249800116904201262158252117321886714458306665699652518489989420191392359756415764486910976079679406728773771515089772950487988531513700551749563480004586633424022584666129685596242797781746260680313656040746701962084231921312110602325969508445517449379137109497873375718007764609920648394560547753646168034720586882954537857266357615618006507085925376238290821529121811144748236484517311983959683083963928477380643512748121974672083849737581812924443468313158938034602186110017839518795032826125331613505156475819792029814194136717267955671455140378473926891135780024053446980923647960661625662220180242561198173527606981854460214852284840445547055950448581652072126356972118626803407204273807722795529517858674269184309280432240694014231799382122089617336069856220962930986238658779124421833883984490520777784911702861270702332571098528497445288484630009251351266550949916206227652920733918827690946254961601365961467751488972566403330262563312998259271706319844802559419932297038552816852357917999602157475116729188427384748282469963402324125535173332780736455793347199445727889156310582870316610012296440973093735984186892240860904286060419839898575704532438050628216963822320908764919016444295837527086358849090759914796843843271127503602261609041761592549230351987957245536797991881401130596186962330607225936789233061942368124298458310045036471086494859550518757226130030698275138086545686934411894794087558456182326641757175668539859593432164284287169579623671183117318191187314343747806712253441677531406889385617677662285173020053081513449744137892217218978010477717541448838084059570753199214020035859645102011486924150592917498079807217572697031458327176179722117225145660780531340584085580027745347563451558577283362516774386820598872559973100336179714804757978037640151210537137593174872156792088152033430481726954153431532120780339602023812094453007407985001623842698462912975335394061718027152790227427572106944950683362667735657107736446163800799945316583100153273894220214465577149481848482563772770647892817157275472093555194938995986326885634630457987767529809100806991869417874514960345613625363926299975567691341565474371040791553798521685693070422745233561277334712746303506374609107996967504483486154032037425910367870544554663466988031001231374042394697347815860754270373149458293222855017420514334855399231066241839914460921983284203894480066440256570206678677555117226070596744975205898836893565242622955905854921044603710158282053202043723788913536723969908000215138576796475876865857543472356405350161421477775137721512689901600029910573604471224095377832201543139870542437283708574373405739759702279544814639179673231818449959172319654445699639181059772941673077654621131040079354516983193478807141358112916213629388260736668203368653676205739275842103433737743955770392937075148450804781801390299293630756475453428211015915037828832116830210747656972987891213722778603019774215718402700102125268923776554891095026422561395577687050008476462077647783864590862986280943112222966182073993439774744412290867886923757436606985783421935971811457432748718194660336104828090721614327757689789509537597604243217091501758425839855917774776545032525876471515837075579509200056875230426781786640992977388011080310716584059376674746366970830658908983892472003150550523145579880249595435374964628742647959437399546422607548934296943015277304291801995921633800737904495552647731408887419959118765547737971612993549494039875194699358287301630901569837762649399362767156900125684705995372134183112412411859163411339852355083892776314208441846653354506564373614491377887760509771149812625528641223402094417918149299101184102102670340334166793477755119099101153243414858825069802068477281482710418320098682005812025158996176525540913661864684129819079519409905216048846681417439199693190970169915684007219562581224488503676231299821956345805807191375567691345080302705008868950948606199453077095388396893003198178980289469411200322610578901148790994857562126886509781277095960562250678305161772581928429079027058154420552535585117641401573773169440693004544736282875023974761365097737102075559179826633576238711018542890870577238335602839318186788691828865193014989634651004511892705429221842699255615729674464038891148712869376386456640220402533071042138604914216873167411820088769685449003489872134181526014838134524569343701396354838455959155141771860615501595676612696130727480103937783954505175885126955681945182526762540980752182583091762691404597684895365887054827741542003055036512399301016638289134741618398982971107133195905766349679977276210164957350808760601672956473141829021097617522849315802790521955860314931481343583489023019567863602145861175803812536965925039238798306660578383503189448191264629005143956627122499217896552491073336690738647084830608614572433705859906911327948259353544737692017048948890744230922329937615936597998669987359615365517231590372582145267110944041828870154577582470981600433007459979253389298274812094918684538733635022017337429714138725325834212829408914840219569845232739692211333810001328045906309188841383015188182951216318547167381586863141981480550904904409739013785811561413263905721088312811206565506277597837843119394987458444581835456531942403534011987243751339483168475052855397597794141547778722081901353963781970339960307190023214130395701719214531774703443562196219090446040638354999771410148284318549728323285923252614279686599385731355887494185815737487639040342634540056225773895341854685141580397932115623820534749889398487280275794047318935325048241880360935608778825626530997779069644214141216388685101783785997519313709175429136630310153009998729046960358593470236668781587143035595057810921504483557284964693206065091939598247530380360357502845397214591394285966781481182351999207705749642895089562782026377528673930278906849408538974514665035638016682832333901170700321708059167047884861141124709809673524788039122786658131186211056346331863164692075792153539922875986483099947435099097604944276879008817223628597673087452333207782315316817532836139321443775815461621847944931661966333025933679023974784186618840246157858947292741989127021757871053955815458700344434290151400737718763056392794125259980929541123774940229432087381150453587607278601324380718278501925397025032051966710155086482797087840043476571616622059369691927238075885282919644685611058382942281658026286997536342608026816499627502008793309506018517867942211108710390785394339808953079964465817313901944569942454369453331773672886303738146264255649984561413360095326561201749368428389699229040545719340485908504433677861684339888593919938237518834190875970443077922746448511710619390916445226233794631538207857076359017140180034726082499973214587893975965103340295074310340753489712239814398293754505939432151012054380610984733770706206183739851759451765391271917317028819723757075395350172933687329974763184009602555210341610869582735530100127658668532380356257136275740394907659937822687860595683082200056610598037796085156249946850540185979751925641093712896007324969041980075039876623343160614411239997401393649894283314682858096931003540029280964318239134363716657128068891568849712363917567461034113081502367498264588379673013056770563931883801158719446893643918778733698411288976010551308078506511233463444515043017981314619348901551646517014005488184242023419029534652862907618696507928409764657702100587175112446999337404583278116739318978771720575010390630733023301501831611731595564211014965173139108536813279429633418198097998759856849475914999401583822102025693344231582772885456195928964895309808307602190005057388163721097581504708579596676781489772415076918266343199385649486449692830078226433431597981232694953431065450057182576832545243512636916315896976480258564041732702896587417261306869669756413999352680664397319613125657125545579151328556331917859616964894801143017389946604319277385795543710235324229964043137539574195519842902074785635629028627578657287629882794230422945236617786544699933297545101272473338171343789165358168898157344767478584803356449856612883578425453095972654009114158846104090597123573329199077270528132072813673713305932584260328872791611949389959018521135958818327871642362053113436450164457135605289951537052762566203127826656543262815684303725459430649602025178486142252530033126147244152803491603496711084931769781545845844115361588901203528735435072884197885180840419271356430166680584285625821753826780349571787866077897574563947123256699179129251839592454023617420554787303378716522940403663364631394196017108115790369818776020076475010729044286719673665587392428359702076843280786112600840180202705785321462762542364619629639776014200689765988112321893996744748042463930696561101809279103578838836280634661464433380255310816055262703253910929351122078374362986409830207545588667671078796810217681616124127634917724151696734311746167132179936463949788829910475406779122870763672613894513120317880779251796476320063500831238155901234051198624062602413195832903515703905868793395399759200568773774389712949408564998699997126938863663938446148277892445368942352639511078299804039834606149036373270736120571731962689829774373511932953274883526744728638031972274365066804755826947374601649828090325728532919691743813955388842073996451277546467251262991921785194140581965495565028921307156175204215865834949904208455394348201128911646763839640544085050641131638145332924120810581217950245531767629983431647868758675873597768797834645786629595539418221288138196100935720614737853523151423208955145084342872199981705970909845859688938405453012411286968337267342613993648164234166743984004713476808543742352197237530818151151108959484938847619176928809552926896832675602758849217596729228148489855352229646442454910678980688475165637041590586581749560613843672922516297880666370135280542068825746397775856876874426372595510401211916935998427712279441724095672930068240946778710987070690633548019905597993433414059373024547274410538755544437007043183013504711190575388295139213669080924886652852111847801042124873951449280755555706122416068030717054883011545393725741035862176321540575162588123348465024953429924340755315075097441824182024816322279781076318987164535930319326302462202869272794194566868864891920894916309887786095485171635270043010444093369578217545115661256025088607172953083301822295700423053271273447388885006606936607674104449616724783913787294646285477353039358414726138765925379876209047903925351484114045853418156026511731457049739108493359371686915635150436706914827243521053490168408370455406941285124739004475063746503843984415026226991904519051474272174433979914543996405541012642353219167988766420131558659499978309846768604005099773785086466796137673259921596934592470891898335864540035647711782244100647632477073544472892551455262475407547957958860676731044320051434290285485585769700823424342433129876723665148659928538978971489026647652064133677010455169587536442087057018668933246900688646133094754758628766208754294090078639584697427809571717541416577102797105194832940007905656552805607404798137803359344594261769332831389474037505780875472591044564218193184979386570052717590172588737423779363846755167471255424680686196826983952843498115789211112666299763464368022158824237695801605116360643970387166805752417658762874168564625587901192074450635105250565501709339739232162189951955968326170906078552744344659380131466166429322909643080024670176304163527529307576334876947648797687556177575115430404384387131642958698864401784897212023003218759497379221527062341248861275726527104282026755164243398168884454632878020194621646072877477358434682969338615812559113176277530276530892572481763751423844682223598665770431589088347758612011043778879791068986863067869406687747613811182800609881314714985002631826677030911580062143483206718506301105101869932582670487276793929923220918832129734183215318836883766372726264529126399673809153916066892437078158524051658510465364969946371497880829665341382183484322546684528538901015568039471734477844061715128382797187944645700311124348970061812424242109164754499158752862216615473795659544681226975075153100167872824948054867719650793368760181202890225414479819844937848496490744390981630604853195804535490793775414861980289320513055767604333440662586910206193762749561310451924590472999431597635805212747286485292945817798993471199798626360430738812659751154962097491032796932072013216774764067646305315345512514690510418015871226036895114509995336521959542770562205439188733483076182841310698718246014383514544183152458477711010756440109896723855793954234673321718461377631527032383561900433093176161687801473904369646791856400023910314093739220967056443808486020476369840116927554918154554673608888796214395279668673823578378873659423579076095824123288846061577562798396929253952718743054680354706845897401673938964104407796386431914155335823340403110618416059549221737400277860938265471903411121314914858743771952620956121967028221105168766517503425690849704151452168039034625305120532576863682690277958497411862634746392129531181529582738509599014263419978231863946978624815759586603648654802982933437576999302740217548967623652487113812933869767153768060002300720984409531143835183604041315380406215551825624437019831424001570451341185990742000745891256904031306988318274170967735077474911092805807560868903028498167748187107392251475645836793916039194917567553574352556054721535281119600214390910604594324541416246155841871212332591703974413885542511199478600813823895510274747005145756802571124146197333392956653334026822375663102439569081035937393215006065069512985301475120891119537663621917207141433108029055121311920293408720527964018763480143509713595129453032885346884811535962966607022666269161742635791143059835573748193956445011057596418871055184277021351702926156784940023481410742032905546765114541869125544774526747284762600427947659440463841163660786878889183683961292453082579095323625103669179216832700580530357988754094864998481624363899466501904842228022699677227404967505774621402234544323596139005012814082866314788950183365382955103205626885758402878124804058535720498938008446309447267489918777473730550830895392557233814833585141626510890241244222351438534223105239281099150284580746479013288466383470761183546855814503616981551504251365444781447246252309851541321998637869825205226100407150891092330012733168380488777659802611723918556810835885189173889412942138051960985813363976446387721699779141269336074708799862567729763706123715887577512297259259890859620242260921936658668705130587563494623524813184021211973734394860628344644046168400209340106756486730189691652786673650061029227226885864408709617666296547593046631835897496230842843321241718977138757098272022670611694580203812918931871088392472884355456211630525014469115472557236372772389473094926772816034743744237923223083968210876772721712610900768779754974651638227391544392820497180507649346158674848122112850200525121387903897877854862038716763951508124550778542795056943054540661641196422583304844548875262975065071159034968043076021662016238944710017819361932513341647477099141137802619245409487160382676984551855833963407066433630029649669440230011266872726099653337893464254336499099114361794603406114008456283208937476155768438771214936264339928922205455056682080516589049577790536684331645097263963402014898723127328565554783537092518121886609792995216545139450040884057990694855907314936911208439056351352358230464508090610666354813751539117023867261668397275136217887299721051004356636151058721068204720739045017000698014093360944088085073149267902433260909522009675708405437279632724568880753323688438622664893056780411104457524754080383069211393613501080613933324366898678423976380853249530073201141749564947790643174136366852053230097216562850575958942277782111883746528201079064114691470970559838140579886745956061433637859945278377306465483368081547336433908401712166263074963835907113658223897677991763116660238413013912561506110111618696647156362178586798158719727575001202967610423491610910005862091960183886021339620256774640012531919621721645628588630739319652944033557914466993177137223983069679064832833611324725273401923955422717895790052689879929410509380756176191134295327413354442742661726495000355648840540043607828008581248052926667105777264512822972562541639108977428347812681316475870193646424244393920723945424084116281469176835959151976640610952726199479802160021524892354305645480760394795494018899484357480640892255118342737864922249812137283347898125926078104740372376370562691227835422949194097899906524696809945196961356375618869635210750491375500505375955577221148907079627221711657961935937592739077347055247127026380302309904131718744265584815172070513058615933162360350161648007687032768184821894815941910733584955656443253987391801709832593390314158655802207565113859770315462031756536228496744895054453661506742626449716069606330005518508967248396133014637604715579350570884044140643512820022877359757805681375390093308632504119067358611163756622200644843135096350949415358157101449634316302969366082574443356185183770410223201611149946526889611853716468066779318015063555481488387253698055271096836567124301592935004135042918096773526666330394959842843359801390267841467678986878832382372075101144864043090329553487402648638848183380585381254675795890899947277181599041440304903944787494925659222676735698400227097376038438901912426815273527835606880570418578846454853187277771096435033714025818452384559096400909846348635050184464240168433342578267715873487074328531133184597491354289282899063689019717794147730844879235088843889799634001640324169114732097864969134812527697449646140836418439784019229289302711787722092952189435132924244235373090997077552665856942376135624744263771998139371681355841339671536761214042199621422615894799149248757819680518281473024438585119771433685019145467052322615200969494667227105120332633125493907408572969570297531407479318254303323736509460566389904841300580984755797016171057477563690995796322071586921941907918452384502009100888296151302030135532742767850976967600504372571917100622476906543152384705984560658087924201373606793947392208230694852182533705316107263877326696661732101958486403127775158256866898106290291266723279359387165976906289376505130511162514250015418804021477517502617596788370823020483133251016596535078603236540196457848708458468686070328606210079926038773623090166099507323503440777018062504677157239996008968453631907669057379323207933572612488788168096191922843335573091604721577646675507373562622817242055739263339169336908211478382918170629777507233334493036216482659138990517422185101971643515047911390332472898280899932758296719333528774395091999063496882307045200753887433415866600875726540240806049339173770264642088699748934655283535556629965746127806125667758040567288312068486088947105421431234150695184145058080698945791301509581193317185588783491406610295459164387984760732324297815216510138612156270774976321345161035813253691431272565140134852643474456617224068593684711150058291407094214576977720331517241389214831659536320498418345080955042264508564857898068782515950840573621206551895194417162567231697336281820986258501521297388740121108791666079304912654383327728580204839604383568958995271576409920931916130161127824481357094729875438885193939364419805099068459972290373782452992974635284132346332249953351353008518558811368740843353678166423924560191749667231624654188188145316804192241865400526202843093414312422279218583448222622715783752167071665237848565382695884001646802545925852425289755265970660159530029591851745703587242749046802800191373625914858386715502447384372436158958045117893212755932908234908669294626271330792328860240757685414566939043549599687350055579921951918712659176567753271399213552450246745183621537171382753788748084470220191348590485200696860351840190129920862197520804866655721965652547526716659741671916356604658835053676326395866052507985254517408438675806518959978788642203227321680117235849377286264147208668766378642214836421845102699897914412237584675052081968677497539125144196069820854137649922006920487573143325988826430686109018824247960751442396337193218468039028884407905512883120422826140946954977447846762062403141640874281708298355996527637056033757162605355323638347652702276818768941467562266238134070074116278807930912314476502053431093114362637290603995213972513856045507504847051141732899109149559589450683921224041748159789585845753287152572944427020152706564085195045150581765396853863080311504253519688964434607197667663428639403468791788240254487630025666061061874362248091617699086038927594285516489388633279390321013151980473778359016113034907902637385463221320142400110249299549327993179133530816272169802350090556643101135700301180767996598681939927902224582901564264227917179792702588980608646338990733138319926096702353447091919987797925440426976274206758940164963732145052024141321175603714147441357953864264001100905469423462666348002914262109717244848940760156543786412164542995460478540153750565596409021351173103491610717530795787646735881450165020551223101691015442933186216755661506597241860220958685974543368978593425058717383169394014501093200755650510655913350756957417434900301701139290596084162875864821812725431483553712581826068530700878290281610136145501675557989208040200027734833138293913503742818871168907946029276352567941371218986001763521563356134107904789622456010638468025051476956931342903603363979925553761253012701850311976364265048627655853477001573026446822339757018811553097371067101079488456693762857605073819397800755612604568503999684981419766164788231608207653286332386475272228003068344402935910437724973030254948769958994490112455170412324551377103056478539753748774552934643459010298064518796157086310251695617220440688161929300230949055837633967148918945951381028684898301870994238341387663688435854298656149821186692018565620984475421710495093625546223981091280854709117087546880549027583618636666976462258935967086225732999180627940836663885070028498609348766960442137801681854086301175515613073085052671043245706910252668411886613082900111438105611653944666972955875218283683014777551178214693938406302131922442357879824911566635463637533356929935008599601591147741823316037903871908082700070673906808287100344072269444106285788399894446874833181850973081743096609674357859835756077912507512711309749373869373943351810263981284329775457546846292898631623559724748502782130023782019265163738466999863323032196243854268830862006170325909474529877255853592579232709534737330751811257178249876228681221202262764825628359155482782163750904888121771036777596644911269317402758284280816906274254739586413466539086700000245400760875778034533503487767503132401017173594778483946367393017837071841904035330899422443171533421301382363285389815005440632913289172510585569774252300011395723135085469532377165946851986042732794017259506705051608271011015567625165252066070830203005332664107302661746404226109955554151949897964691929982352474087268937354450863081962125737942017328663578156252156178577284965431740615758740723129996906001720765857023267951272189058605119558177424737042459850782539142430717419284032715116708193664923494289795270454031998048610603035484936573165413630397852766216760422722175594457557935929027499109750756942646032862591289758246783427174351723713581006671493082951483413040766805404317348179340573230959479256859573997679182623883513445059357609150452983950259289658555341462546582228172071471220057467837690441432004415437252854807727811495916355631535607100940589797946745498027135216454974750829147560296105983337975401155259746504592438556018096989244704106667708058097910416348875858263107782546106719669218154209428054622482716199036450204015409920000084971735820040819203321221604596888999805751341512219016406822029590907249872704771663111378673235087398563948149367418882728416271607367784813749694725850708642197054659577312394678473347192687599441875203226738667304556777518037438314597348736338632043586948760992459941967375167780717246427861999284101216940577023479665576732698328094219112098719204743194593276087619009635919182004276432857210849470293215103951133293215935281105484262670187216645604485323969443628853444973444202997096334315469764894936447497141397131729314877545993627408139933759220320095951008829888402750423383501112275310544853039965641542786877072047359330302097479095977022337437773051345961107090495062674313062311954246470922101237062083951897164853712097710828250621614756178841926566927628015721555094296446040508370278349889801931385833062982034335628167805997698252807213177922251399632008567172477660442284675511726385377818212921963983102482132772825520166449299820949803489759213370637203315278427367773162698847856083871493391395270064806967622150716092879491729546935367446089255786844322722872681305483893516638460795878461301797424520795782717528208659890959376120801774890385033890737637145267242896698395456539340565684137502379303208818566301719536674860497205181677947704135171890093330834349546286699689490813372015205645717583000353518765938055109586560084883657523368824806653468357963808384296547057679067143163807268449972753888060702585444151635226096087939495906251692203450233888318027028978194041777577789959973730003159781602598105204169075762668294050372525685897847033110424865332714461241764677623255295912191924291366090138541763477124840396835844974285778520196571312387627401397208355933491137148174151166351856621255589626495984825276155419988798693680487569880430996525353895297058193035336374702928391496521827073996811313586843119024360486864894860581690604632959055025941671008555534329784260674496438494229626759643394864953655810957127609542089858678810604507665996613937805076440028789214947127703956235138234799115496160842340890549407216821404109079483463550991535880709134832979887688430074575211853064770785821796173777870777304990366885940010166667317981572774201197133784062368396342844289024844460396189621791598478762659542345387791923584021326500803992402301761236154159581705360194375470443910416973757672432525671101309713514876502402380106870706017268607071323597628365599562127376207927914886168469711843721707442997406511539330953936266384657863765274158317899342608542812534252150606213337850120629329965902351983033455480161394646071818449583295485670326209282821149751275843906093132958751362637654930423474143783309506269093123618057833761491944544722718701085472522237929930689805381907149552257313350016936740515516956527587649939884136470273144447656827728856720242433036946198712091895643287737420055844991267353497034792873481844604586557538334474773103041483436791035307463589466438708185216242189171882869114966505646505843413375827574263107287099079091126394159611969269290372411512104690667580044858110363953392715732877537047840087528373579347866499508954511302364545022366065073538963776941562356085976885795701980798707547965531145230588305271534098827524163780985703248568774967024620019534786755831788906525839266406155238964030386529424666115278132586771939244155570476062850681531679921977500970575638298011783958126001548612552748769302962421816380048492688917851481166506391899293841118040275406824416287142998589527840166087122531781085776860142342447562134781115849587936524736639301004899465411169542760223060940287750612701167394781779303235736911126654985462898125530726836036402483497695444906408068637429730786851312130836260841376535068090433184244884389178598807612422308312815977797916659308193795854587679799054454934257933667615472459829196263148528952486269205375114264762398404697530061727206572265384859612283842266863553152130438698163842393598966981650518153637227291928565395691888476991028918565333915156400151749838976218111323583365236874442474898104247450178611600579859661887788505145454951899240985940853005470761874298432347887904235419251898637648566485606683452097227826017201598683795348287933926472056839991363765825361078785980041670581602187188940326106761387559909992130796835585934394028695799458607480508821130917088467998531056785905456317646744295788587431748420290272102468799597216274040738337166806497350808341820195640735595372405763802387586810617730224081655518788115100927314368275217677893037482498515526597715358344105791488170807623152445088066975295824226041879803229720080559098293779527211512550817683082349701818370541815748316985170372583934195520947629008269268198304131038529007829754419934747325470023905338854478221750963052418441039638130681433387972986111826258930911632641825865408914462086069570828325254288246371447482431867225109861508255206126557434942506267431854004324284101307918261837549296258056252793785444014383197078741601779539624090957266726214366485837543358098285537912370102027724343513088615128774283464357151804773106306083479754410081245779126794133507922573693378424638104576028538963084684875845451946122375421369966331271181282618362092533168385717210896180321004298941352459332176866013602471402690443264116930946941000606155479430685841905691437143793316107681650979195507300492504754587503348804537926749738591424900399246116361585889231303541087338003523041907914313751736486057213318208232389105742690577870986096566425065728333904987943730794908638242701785874581719633225958619440369275179312614879704721860313193853130459729487909761910755833943007539422747928430643485691971309779919666425878018196882106805634947246435549107983069943530466820092857713373722587452990307344960367201273813327016585966543433495578260131957060604770568140065083333021925050268554282994323524233352955654592935331521219265343067116591825186066480141445630268003078701802904116739784130438753455193151320454157347562851141246663348794081948135262149355376178547953715319806152701200473845749699431948139000647545023726733491018368443531501853377452843954891536625415754565754135104323978466817564885608656222628207851494473738425862710001182215105229325887537390556044076742405226500052264908263460879978706468219053961496279933257295937236589175986456946003565936753214286591875308980983642795451131005248887362244205266595255708540186251687731882502926986554784594051916922608099337947205955198843925104792778769640168705815833693439339640215456406490509423420134520409829588282839635950389534838975431575031937742715235290794753088744934886573440116007122054529807817442892934507255442652140290731393676371473096498818067398701796452051045405731384132924092497012782382690123795743993078648686138950332702886853806456427445808370248317458630665061892570425285719119905786924332695476323315573438602880997724797867313777867991720666180763074714189177399881244655287567474773915652752702308204461394528307117826429485446426654160481104782847120347971602184406506216906038452203424698970183225811218931934121121134050199363817479756074994560784554061703474632482950546104381863875637667184860027697445093913322162062617159104303412054476729686457509286165319228378856644294127413002663634223103776814796502188587590169498437843891860587871556835974834359135010608966066821383571667213546984542341884101308132888778189813284975540157769015144299469698876191654813848376766622502393669608420571801756348910580752046145711971924669209834714945712511868498699293017225405566022801542192207744470388745927808524988914788398884468285352522946311733729829008923788428448943597160821597143411702787399942744662338212065163729308199314105300990702870443523657861347169924613998817423063939035456865621988091311835471234404381871336064177807035231034337292050715977051241178042241084218408412555497392422951639334501428807047192904165980682936519475415313025906125114371884489838381797182268746353746070353420679730632258516614093089360813364565883422790102706782484616847902085436030241763203693086916682355602942198783560565306598627451925710517378357411592059588015892356339612825161425335486200149171998643009475864978340977359355671517670363029074477965837061753529531941102275269370900580755027537002870016837577172256638442940534029086341039233812339223461498702553090303972576216742723421034868334360934549615210918864265683467418712683081192093341490155227065378545052679802901006092592304425699192724522518217536119623312379197066797148966939294554096845890985846347091537274804808464680283577609077141724993734147446314188303981053739861984840992661341259952926207927368579532066457882177257611715962381753757502412265711039367973304712264516042276052379858385203087710192301031657884513822938833081477335076814661139052557029182797626855637850252225724585252564425127075074980016915772273983975132942932153330112801645737315644215882957104540260672202901777714005013123439678448067733013732988244840865724519873223969649708177524923076163702076576680186309874699564099860099810533639160258930172876213627997909959306619310871182825124186148142503160239667193363612464477830820014645323522581272947149686773552501837860797642569834875197463770272032785659056697075783257442084581609355025107210711013482818128597863451756390510660491650715477475308733457636016258990659570122521658572274676870190772659519502652263729562722328626134902503051620767166146727832932082424699059392193155512530552494847623435991896276367758075079087508613454821051162075600148503079297415752472734958450282517090101200347596769321928431603360501804082340540248599787351757992771205246743216290152021023851364547112279578489907045838820658282639496287963675778474946348807174845419526286103361815855165293559955298967944891884315353999593291196561428677694143853176227746366387952247490213601087200157192074594889886129467768833283922937087499457443152645969911905168031537941454235945355330834446748193251778071679905364392427878209848896436216136102715915484838565141342625247047114778542534672720990877785592618646744906993132606856759746447175806384334145302891363284498791404513103032455113567242491907332624127726194265252322837660860662173130221469199109893540708916688667388058873994569884833554393697552118295502000679257543413561623686975553339455731153929499998007260994107805185731986458061914849463683187003953964771892919945878347396842108828201184590400988735257258805924008062523730115632035262025989485943275750091462420247032523405734038323606872413223140659135366919180111176902754851290819084793081978869114513223394035977663618332374518671922305016220783510016268789887028048157942215219869777153240513003664953693317806091288692039658024480925763471383302891516257655849479636925183604146584214094289052797510152660921343855328259341132056883173727434226656200815706775736685068807861397879735975761512066291817341428991824352837726977555725678797337632270799686525483799812035546964262150753723585241270133598120298396112360919213685275199260578895177941458754721629721914313094869154373485254505334690057106315633777096008941543615209237512323448365475003353888364807061408114610106886222085262466914872743701048502459792439493959628185194603738151191232040831175616534623760711922643941028247100974991996252127965168934783884392831606126544760411362971394781020424308051051934405541402573279516875693921783596097287536471931180895550226822162791090205972626160996539342320186026092488604830410099858600183894595566938542170354039743300783345583259615824352624161879740413967552526893865304363128507807359381171655656218900865104709181052907751748909112633902639852283187390465252135310046351880574082320434747128182652946004072294226798023501905248328696934232692929400106135556871742446275030432033939703928333727814476285173940921781585265282834104158287316870935173782454349586816197133436849571859379759032686133390154178575757246946802967222675185737631846514396783532139742723640706528851504303934559931357515719992880419682904378940962762442708869044128454500651101101406611048914984760808271244057822247081336873479750953339095408471726984066760410955977873930177973694804191624351392740881067767104070397958123145140201539356665943675386018602013475180586481474700867076008411275545311054724186019349130692237865752513032615208253385913519596377243327068060658983531273655180076972700695630936917245120530971215134795503190968194500500830314718133563419973414825423541124186417327342331860430565925708426078807075690191484444750108135497201141165417948346537871088872828462233529460634847915331222462696043736166284154784484601067504407996213406203363152571846266386214952861775191135337987295390459400798074425616162816388737435834026709085016304501057169235794693822836608500641359429406035610592307744244827501634632248142145783191965444640048133847769913718950607799507203420381854930464010806966933736989377473235526934257250715276250892630706438999795259468481638119782341303628398163637527406235560634086658499001338393112345042353507131489588842159642779686607719925591361307386656435456936658173351009552575905741994601557699514111811005045912734009636429657805640117755046100954829207006840821988162017854108242358858466945336782599875896702712064868694458262416702328428156309716488102982678577565637903435114741132257053810507032799044178832556928980045930739329297040988289423362097910601697126493962892440440817785679174898860512579224937198181678741024120706844994155338140269972035792065762364110099088811569061048282607604021292141160866529611165920036616737857459695468577171224168426763169215337856778812242748790305869338428439368449701799164524624666078157411247530999391131207365063130437489326070855328123754693271444544290128835898537601056036135431718873491477408812881908348564879870455683521260156356876920712633826665329033916319659601993515717497309364455876889031307464078247618258126256850921597088889177102752619711487136534537082890910238077869205982043107290490826663390555882982006469542567750851003776483785771989169825349770103189767182578652902242441328485064320696359864659554406269238511810903451592791473081733468349774660315533798349165700745023048247459674564440741612597123560035267496566976528341233477885600880876399456556486201198181845163648825778378225830491208442273445812756945494529886987249156468393739668824537550186010235202502318783223994362806562256294482893028882482245282448053414952898718035652008148037426487640506015737156809247516095094400718499584946207047150762686684775856716758824701827704283361182986113293274384071992874482327392987771949287994809089390018148752500587294323734489354956725723483064486322915646363142425514497270018246814210922578067722470840886770170281267614391173079564442112025336939435567110262754332481484303471078072040830330281146138927775212967390805635476576741735127012982836519037655173842475746649814732254420112301930542217312774317676107330345508158816790143011171065290428733626711953693165556261366429123638446028580197163201795828308562903399596362769990451814834338942132492545548431323983919601186578752827410618039001285271276611539391371506982073721813801214532077057645933016952542215469253246511939730257442818604208898694877348924651560323947726551537397849416825770258525847645571658466762883706471797223961327771944298265933581414650711504636308700346083891264652149802614051245495039851186315246663912330223122975325792752235876655119560814651479229164413181115419471133148443242443144444663659968225907760024991186317600889423409694477116867484094089187520648354391040365431718186150768320193858017518718351170152809452053674623908672012197831985625580398926848470528779364280899235702711673614214179701533387283339083462825164509069837372521767139883213070507853777825537553190538779660994170467600928989596334783909228705035312423991466379373693915635956859665476800839567949580771445327063321382181089022146114616529971210227711790166799735003439854068856990220371369679654593239446469953525177689436509716015733605952676060894897697930841233764633301017723342533424095117405886781510317789228980744357309146529018442978991370063295982700927025977611126542057318622904161346643771410431153917820591206570337636539651151267563192907251303657396346186966459645872743155366256989144866218296933399540322591098835769090585670226250925733096129225140050723214508585326960068309335465182999319512298454813624735871348167992015731618575325493659271697039282773782389270284698090729934558726728523515232724922874220996758246954862055097635647520821716552191298871749873720933417430322835112272374797518412693778227620114189808397440861952629534568213366543501722581055882462161630584863784755086668726457307898690204467823250527806330367295419543444045640929710649027802691295313815767314280154339884191593288768206360658239256363772393464215431819107514598321953026633768344781498331959576002054190356767804950306435212059203146372640761157171440968808221482237561249458925789560210725841080273676476902188136535193802675198346807869532884894648617312120857794568575854681225335511536100814629532120812873369711040093746335913958781606199403635500826690872714052238069531735771755472384715700291827857129202122540417069823232040299599112361790554514760959725283052806412105447869253972404771339138581241087599820941700535340704143177630818177540164407563980177199001001987675324316496316824786124585249442766042656392497294449828166302404096693908017853282956040020968991974400383018954802501164305986913221854071387719609284613803834269176393848318493308567670302778367763703602033171122376717484301973389501692588087632114457582374836171918875762251754023385460874829333154265710522639355311222569301637381070555537918184955796240892503658138597285887297951766673435349177983621637531639562455335719820586251374378378654420875916298447225310343103126991712779026288221134671754674159096475368524521456451886197509945573595095489858329506105156206832413701744660086933205748117416952438970404608180126311610003522465206039973638732922867915723776697367602265867699267124810662246152880728247380957756787431875039622314082035964212628229768935520166716469276940183452929176381207262835566107261908917900039396485599768792990396146218690659424634644147358336000913823108682280621043749239373621911016864076974655021990482741877488417178468817477553675789255294164351954136541371699091927171514928935871041339292120095838774450495436509240315210642843645990419774508299049350745109519583019269664469181048356140681037761041795886218389874644241370220489744971149482136081093398019345027669840924165738372971600772312790782600370223490269885315715999288262132680105789963051184070602650908379450786283187218938224740889700725515658119289022348973599440938064674162684693107863657270272378032279341584311283303116533992849192554102343256466651655567603907954409198485895425498219643407161990350839021955957027267505514803373506574866631369614849324663385480876692278638725339421720157092203194499142182324808324738331412501571682719161157983443703828733674045240861413083824801137801764305462661929110692311152752620382271543239812414848210014990704038595879522088930797258732949439670669058141881641453924695799418702839906195130437254995350106101640620249943788473702564088908939135057502371973020946554739681040836656165963341673007708384453835283950972886987760919826021425534573271232566123317125709676862510357100406581767005547137075666586786333767845960814304176806534197795407673552017053067209072172916695407253837738047852941575358712242872974405285599875742437515421264324196019187647322573674459081803685818069135152651072381096428391375839980573186694435534810971142309290495184394482243225674959432896009589052036031495483893938270464246770363404374659364410484844350830329974133032115462781816985788645005529938851814051450483820392957511517950324885815978422915997184970493715603056557483165070423447960286823194185281433557153223971114492068105077548159637395784895067563356612385823695150098849804156627278220343307868057968684513627936677302592136185303398928031590729120823062499589988800144874764371947286849575428675276623633644187323273565646263254611601726442577199308386632403821901843470955437150007421316442952523347943267729929414545517333157194010677694361479581143715300507322487191910211157533177390508731363446839199217675618351167487635645223189172037489710027126079457016961162854519959423057071876380198126293349442967431135155011812588114902975923701800600858442922823317933413974203445059246462281033008600865415844994798000333910420060898227098218494988988933741425590852536012996866651449981074300760794225464348947633656659085916256018308133927370159364522337604598295851178021340207354365198727028357388173774666570821896319414373758074823258463386045035891967324627694782808809974356625904158335955018033871089353641900605688433365807047898108262031001632194082952515503443059199907659712521606121422714568110243734124138019615665784780922523036786063784766485565163878307970443895266130698310146218692437669083731898578732149207156007530878253733187545638969638166083764652933940954807049208854454173296700940621344866277862953722093876326775807518167352116200114496907036502481800766105034885261511380169103789432378657138259372305349419618204578498976631098133893909108113538601410379678996354390294795604741536140005937343746795622647798930051852400012908386745242303413688781906729908193567785242502468363519954371995196143144691558835407943010129346099710862119770938479601683427879933243316967402641130519061552820639290090797785868198258711134193872489811895832397596948492527229331617540686232716690667048515861243358983801467705615945242194241003870752631111471166655232587770416837386730350542645249206649854935864961345191661432506439400388401568043892130310813563630561211469138126613752345879114161226254371846584891355571361345207844351352748915337029889107034244081071657641302718483292443724832863728347610198351862707145805542061175489425152455408447260392394784208808140124132509091927830429743664741842138356057144657107003333671550839674780238858420393801820452728404557928839249354416054062460379466804642618984530750340122441413316091154825334482418389574652926263741428982957121635309118978066531266334618899358653472295221204135893691597310152420457367679524812163171032958856057487741156631331486728971091849689971990183804069257621467026017021704969223495481599510735282193529135471359647776151053014042180696680508503374457488320429885185715341852904400528839932410296263497744837312600880768564692586871028298171673995164378353230477787241407703532803996709608242394627541910072299859110448781630776559698114744213098246876549408749918671154453641656650409981455621158661347422621505062019901757334460836686137435088700960821625583857364570020964068121372676843503642187413517388365310900564407339566518302426369385206869491726702051648258052664239739745925740805808291832547112344049935653275789720506693495077312435177648928307805633901113213385755856695508411366328886242242128527371436489748519235353490692398253017313076322266785813350422878372964416436336295515376410442379177972940470507716587131185551798245437926014743119393607227499461310833407777951739924399225112038122023291192685461337614273785809134591238528646821428317694929367122592898999182730796410858830563252411975511396309009588755939545711783217158337647820101537546999930677200695630973849726327218846900173741020931944191486273335027144375387972925843642725303969532192804979420408798498969934158583960560155286309896611996220725975516086970797483522431047657149482185301030392791433069891252757678855719290420746380213513667169220038465505006317592799635840040003452866303862347071437202739169835507942021817245750400884066704545924371205037024740378556755814882912897982407943280633267557774497289378292772899741000349258676357090777117489554481553694483725661078714653328010619614187759863452991711940400941712529691712716436917439589240738570500240545730896702105997063646687258373341080265826775756341163965134002659419701614794868626466451318940025915448461519442246418720818988118899863311351901688119057227843996454999132020237302273847786012265573317364530438336903894764937098685052233801900939646614061754228911316071788253640082588988453750558124998580143030126855541674041338303182117574790149130918959407881891011405051976222670813225226923717170687743752334871964964355687910468550755378338673258434923047373516534967478589901862962135996193462545333025744937211715003951261994720328932522835358495903589191830966295485926722619170007888595781644261602200762224821061155717243406348834589002938300042958642212450036773979661841238953454144665998501325552360515405804113681613728658849396383059828268854637645091765418313349640935159218574580980287512072718755652849732095794252966186439831338030787911615775038093673176886594441042616502712777672401069026845951952956630285065509610780734205857418999099800499503626019866025138645366069238816775210908463343792358848378549812641322531883751168433516141786586695041090632137193747001691901004146706810670975124959183296106148772345421465418134346141552298402641073416690548332965058822430507066117041917186833606042664310365902365815847282997349363134988603259553229834533793654743938705061388389982257448572906328179170757361481030788106994369546900460838643810220318847293696611409389667331438131214637162638596379841090456147803488619954666360901139037554157811854176786350460744995342365916682226973109446855508928469905433553047877775237481846419173511988770908902556692932655273509195651641694864415142527963519362120813267531001271216842908650165884212373366696201659644266652774343181706572719057841793341958619552273480856072874120017649609378391955266066828176023689558783959126353493424648520558012271706869031148126751124765703763284794804108450029191140256782260692293049653730875895675181313971604807556998218549442487157126910401125542709174929645242126987953203589061407420481412699711016938184564179817328304441319563373040296771284573826229765550406887712809383943664829479679141300501690006708064958493106831201193234893838294123812935473486748094333280073976924986558772367636570075806916676163785267849669921246562470213521953695073866257444557884957499376711450163107237768181956463186940902929910057491526996383851388580853923056914935372609252627443798888119084352516035839747621964682839017000151773591746278794033372186185271975292833840943453758783001101274363697724931565562241497762345867151306079372667491870436820719387205239162111089269453167691827491306450469658936058577313888977272899575975613599246616799605749693574738532012284161510838494081929561587194017917905208788731940621521463689658281974822847775237000027794572429539033990036405310724887135929022664538129781396677757775262947745680976326331162332405689201612663649613508963637743453650457985114692165286681924595943950532474400485499202796974475820341168320592801387987603076085439454236589944798702191122936137816277641275213378678509275959900406667114431672082802132808506803086529527009457939144866297381509208758967620056424607825788626553875202589173678003104375972376011073870492156221900870396058417811310588498238913135746838728771266720981422539065748795166682784560216661692583885977104238390617953538354629682712894105384737691670987275737185311987398266332813830204128666131801594921321416189976984157436434948259595840536427390162666260916030515451686920784864460860556596005660260707477049337288754536512155340518964025782792121178029604578306032537512814906411021807964552876571161789761739072556163656158770674607922246799480137613543738076430191370152542231932625206295752108737831058615514829727613963923262313853190036318087241494559136161095171103506379431385412419039182682579436073291311379717944859598983088874654598930140682431778851692083842137562186291475592554368066802622691118167795869375742011232062537443793094833550752220965433583253790547826007811604262125982520007055399945578001481763931691434032594688572739315686932283815009426093625926851076677238077795566422650664040558066868339656815711276644867881038969879312728977739886184006009720945213283099294959243929409196777817718231273796762118048880850310109712567284792179538135395180707795036654292821717688283730883431918321644688239924053614330967041997891056425031795405026350484796881784238681938887342396276342477893919077300621533993286892720961692848802539479936539197461810701797187090300338946008834646490859920435600275972731700407788017952715280040789937887034105638900176735311275008882081931866874491154537383804523425145406762419189872851569345757389620793021090236092849912020055973635092665307042595062770304265934027063943388295195636788435701778877414838469198418222752687128907434277531433323634672365803167427897285584567972053090989457075827349063414948997322157319890290217643269149360718865559722053334921996574202565937551292953128191663755669451268203086700398587816648871616347480094297883864123635239306649686236174757579534539393690796254571291929590231079769929039237452693460721746894253168143773734168261079129030413098653194075318815051579098934016749249131297858158132524544865528970083099288559611877599303071676570524009833804342127981469696154404024284597321956919364765682420214903436932596141030884223915234245766060907738379673047916345706429304604539678656824781094583610340385561978975047511238126310364932689801261227240355216247860713737736594514808412260195473873215746769714244699187820042311186411865998155570226165040329854010827950766625267485453664763281435686740986721228300343305942029247234134730340527310055249713044722885373599780145261215374455753716806655533983966768954820865598846937236629352604139197528262900552603157294946671537836350327059584300381550144980587228719270560627775712481802090697977109565699313329480567052257450836358693437986701340988387823551824842128140609111394534054327377813622307216888137862230326873259120127886158015879463911464855664401066690285743166602824020329059564887408730855935634849915467276223245356646474684382140592402920875405571035893026062377780370075226077420722631998343606847585475192818227506228779124859410469227673468884520179276790133307232265240278206879770525648818910620390373653731063094012018424325004010590400024239150768077800849771886183499253187551260082610432592678913874225020121471003678534233316137301183129629494990662634254307313458616294298675606416172684427653115852324629364261753086881959279267200682043505022476564830787274334376007877164416429679735701504713887079124836601451957534017790125480835006384808383288709211132686667017229908635806933386130183291157397366883823343342047041566611802448935225510666959025784676170786323875491038401511762981405752059761313883388704130031989231067692599373667217389829512842869207606780534273388250311986432332636030983402795477482733120885414593621912283503940609291896184698426545987534671332191727026482345877335762364001263027230937182929375102750886097326765570207909877339590734928224746694417801608687376353914372441020643631316025976398224479033303175474688768779192841621669338294823391349037576937516063218195309016653597673251180124628917593194494089598602014735875969168501264561175259356526540633627314549350710497764928099337044742264457346693477099829946337009462834361503881544658647252102148466428257444648970043101349150740428497783434660090632115580326264603616231629121287468675875499341283364885673159292929217107598091234041611577921730074644999573799745719613490324374942950465384388322586330779660311404617170054546000756628419885495478900882092989357392621881038328709104534386370400561665145734148032029995617092425912733456794844778724058255132939259705820419525852294819519659346133623420499778732105226291288160513079618933770091965342223265675998387822754759141223067260152876357162283203022699218275505829005291300785198031198734365809782198940407975653620126359015049248876770801981634042954929351528369548367094201566417946684258654837468588702014438611427842781183459613711559533546700384192002308540774603033633446748992307240033327336363128948611312595176953615747922094592632187079305307687831807327673017748720078113288907140548239587051129315462568494564441763869737288673857513820325417482175690344749154652917124738901393642301108366845060832790896571937667024361344982482160177227272477106757664053486814651001033559808476459558753377461139200608119015039393632284073821046367265173668079095302301960849903995783244043579695091851215860075529833964459622305040703197106218516761014587741801259400792357384453625697157013073806446584296355857815192042439332814377295516765117872878242032534938817214113031475720091000130811861348655052632992124393939695813082768505166663267242547488515414683386906891259092378846011368088839168769539233468163957845685812187395814769109428511195989739018358321492281047374220826581846991715780827465046427798080530939832084096089343986414226754203042404814655032324589906081708316654269870282303375979893426943956159747588405297115803705296491776865858646165742682886510332379086572886531094203809064677523891340011621114126165446959392835154974590498367680995631352563643558142211174230528906851117250900332526053652229799356405738021244405137765668144695994864726621912767090582330016433310155271619983961554998312298961761169350082301178153796476959805329186627673860791152444745526621700433016513813129379839420988635417249644464097375332581715652461595245480305903857850122724801766573403492020492191974862064049440136443891268507542240005526292027174604623985886210942282235990057155928322118831071481949532362185008315509371733967428226356964916540799269299091010205544112990210823417411914315780351713244780981585403164732856315213044331422559319825354525497616402636582590661573736788715589130501251452747372576966384100056545762627813840850313594337815446069542536519603132150805043522732536475485072037445645241507433785750459984612469009822535211042034540226708031840462196637137714669422715034301507205842637088925424588943180216042569148820595565713528567290876275875253676267825333448705744348620333743008557322938844705384698056912352067230109258462719425441309580642570684239236757970374334489233306406708166708020661867759408952101896971816939002139385445961806837082047540434343792643776829245132099850234999408814245770172887770874359935034817800849981443468387356737836982091271289493989997229501483526920974096699507635486561206955862287181348983434828487254675054900073001446254514450025382095208359001278716245897623784807011625504485443439290831789532370621194990588664597290456943119456018388115948934542292564264922934970936630431699984222818427956404146118948865652492951396406362821479088900635144921330048735599583487194998969550975160628486651999741909467420407535882265073046853802514351472815291468656632896537136402117162322408774240110567953781148243791670837324761407290346741240684395866546141766187099876224442819400961741405429190816768141733573097533068028017531740499027823544320856609137009085887889302635221216718013016512328114178105304148218925841151520318907646012154591894308975152925554596457116840550855439651633615203252420571187232438506375555077178754808603131357872664346572546448342633849646868087860016298650602488539670665703760955585529971344411274221666671601022276076722305364930424768744141921774233403092747662198274260612696534584466466073034701335442540431664299901918148341452292538957242350242435082302842802569780622976369611301513012675848588859262039316343504704371314940859200719554116818038474208242906796737607462859482387573461617416967618939015762054238969983375477031470635216354517691844361271436593302595980076918357435851409021645697830890526109736059524688873765280454752329107828959696959246298657157684963082268226702845993571604854958799101387159964405881667121405139382330367093034697693130235449380995825867075437146426509780324418213850130372374155564670873138829395555210278833080084588783355142904543503257734584281411621746297164765625411494062899838949683946119181236807346837114641912451444991362706660978581876962379334141155546437222866853060296572891015294046922033639008295309113381257331289021211285121167815857531220562347594172989043279690064790672007792761945574563415794291923036663488017714399756227565611710418565889667055662580690859619844465854618306378860796829596483512880241906099789581765838627398439650192990835433521133467697049863904673974336872020705686918928450180760384612936420716167726127662502526423585802119675442842575223834798534767522099720168137960473287312821570137477281650403612097711270484849892903077215418329839040850117153702188775459676954176601648473994571410037429450679961020713827333413967820630400339512438470182267832072082508773401280040142834533515185101774811071446364554667603888149871307535426181027363524501188930748717661500264899571765496285206936234772360224218321349003198141320045057141754534530828753575391251056604752294010180773631975502789025097991611708718264271845403894754750756701212576556397631611768730969903804195178000257617685321195464683630570176722988951515731685972196228081012869868288993600887974166859835060404981258254380467541424945102744266309710835719111393034427789475992232588188681130597854299357643694091758739563377027314281834626701227813566041873254697527251204826967048602262122117217907919268479238387160283231375366062848302169158322680370572940358016829261692672809562069692359321040808673754636464494593032134469348138244653877054453216193451552204475268414351013108747251600125349226130841593454536535246162384510775919710784403430458937162762610507528889556231406163442719206570515233034057026990642329728495195301949168701664208599486222186385511967715942813226856400181178513122965748222164863219850712446065409482003872320493998904440424853307280893809626687720418042990950877572164126731872433770545381307873978478271040302583902555932543290847898563234410599461336413305979176987955120758874359733404310077887878682675651847030894051072227149937894849083300427725553281764556146456573942574242191893824837278672001855526985308059080493337205682515330406330319990440336911651958739999578654790166916271079966001856488431261432104540738769067053824686783724728433271157787197582747952126816194631503958042123817542414468481825681047416658771844375342895521558837656734626462003802964030653951276728489111635825241836664681470416539130418911666757391240843175312602729974537411359705740510373213567667264184523031816866711628883240467888070988153860105301648653278521652544097941270096104894123491328706313110765434094721068022543516035848770571001180966322386864061525337965715703654004215413351968051838828963028225290611253666904349958940806759155485358686444710008003495204265315952646219148012963821673566700752151868946570962603762011116701153812828191883590434234744805530075857719780921792885305878740986765046381044986425502375635361725347304367301085407448369663783821477705063690557804966478645576594401328691524240844928415096024384204316835966803112994563718434407640351318590041513654889376446841850986094033304321493956129518788704599529570805159603840093653290662158644279744957434636238299709965752648017591912351030135836379595275703527814528398822709406961963603375343657901236178851778495883069945450042055925222394677746834262091687118200013667399318855503926076697032452597485663832491762271725555986402761519767256235759865404555465228123903987859211108843502470307197187364311606096923623605226308105466640951892602577059619479243722375622795920061565720848250778659725185219530943974548926539585775123820124385967249578619463185801801350413401445057544128308725229638840216116969350584090508929661944800270653277870898918013898840222869858966043165128619685066293311801289264697942713443019910763015333228756844282194636713003611164396693459852555761325539355147113958191509586838902634980246343693336608863284871633449099865737628391950115878538795337341084722523201908254791099181222878826570382956395026423323176123300455797152022758768964693877828668897355556996679285985872200344819093552890011339156282170988178553272471331332591592387747868446714391985746388231604326799000473188521688157541290021240535894569426596962021864162873830149663356309831977565783131672137974922396997358051803220556716041967392615641075763390938302693476489550895280396349377926246277464356693898017008371255837372264072602508620052656795648161273409808323527778274656560905470030495972499117947580621951808945104586151045568155018097732163154746896115969273245536432458795265647214855526668479770573377331627205973097653619660595794402136472654453639386518393174166230427524506456771805888923875944060788261764910663214633245880672170727283118392391185559139229702294829591398733060686412163623958194243017449189992448884579911342402934753564413749477595041959734575435649813477618178003849917630752721883423905581328768813118594779654675758365272993785127044987195053829219202170533036712840562418103900819203135088540580033008011053247545847614613276266106653392576811206267320185240076768344616991479123359117029771895755885697659837205417719944380580806403935893160914585344351866862242515708932548695303799620975233571789955722807439696431396498464045812432928478663668404421985624456674227610795074329495806726214033560461039514326195500897130581805356618322920407780617519612495872593293485343826146562568156727188903411772630231114608992826822939219528329905145004829274624457911045654541104441717603970553158972465103083182677329241742561778849169140143898916129731931906076369921123705851042975982977885716717882601816484004084811266333713467240677194614306630630840904276278187547272013649905321517768107256962411511637448187117752891058370324588180058560343907129484983527644267148084395712515862295898374339519118430361205976988676644432025900435925190708281589806436620770915195390684342298013363507110198648284183011399321106843228922504085505009816363770641000727435263133028258599437870050616198847811957537368079116122157851112950793763103664369136476494669959202974531602454803257946879181844691136332507255402281335826073136047097908048527699837308716717678818986295384589644224421266636703001104446179707148014480790373046931295607066227604013580453523763381691756437494317065739558978427905722469160062657422730415413603408726439222052568587988307376041506232113064430904640845370681447121490056452061325585028536886677282850901203965067372288715253248650916993052496598528576990929987463815172402533187096184762252835096050182274410922361374992348446556866355294750517891283231132508234281647571388729576949271902140294347738213515030856220376240009895075913432789780454717071020690036427674457871481635350268895790843138004634076243313159965262851163901305429128399902862192706479048582470660080519928930627701913181877545598858341099886221351999989430480247468781944747155381761684963539444064659082271822731666999979722234482637417972367558757713365676082942814851317118905871631657801940037084112835806836261608614799945172459399337706233487965928084904140441394352820909599371242532658688363190831140980953869315326671078947711675966028250197187540268545412997208116603510834861806661697721882658444583953269134822998266060112164703953071647303132670891796816469942866454514131697428287129752776739313420875622669832855758067426386101184951064968708651894263778307554600315552497755193715156613042195715821898534849844698057405784207416112171031281118779174900397637384222605013045455665164154045553475277579813137000278994388789400791392635628006471994649309772616278585949952476322480929944289549691505071319229863787187866509876448318001785528529470987227299921470080258049503965089739753443857446970753700647791164266062447066116163340801293882548687248098755612810288773395353619634600956812403962778012053485866782932250529366445662622296597434328304946204416472876763308417160155738338065179176735911647037882211256409498077822652312081812527555275634861540406616872856176743765865907566883466327394300815510710284461249197254758745869918846835604316749254448685022622067191567860144460609655797405227089831537091889437933642058838081524259919962014636376190463622052808019724523193553207661115986388268942806561601707678003038629438139273813149238233248900290807149485121157115531256731563835953264212787645049304620351376126061926106459022241738550073789893235010763993294284960132700609667362297940724852858145721845553221355451271857466704410265095606398132851409387454169708082976841937858664129542133671495663782148762799053572325166330729963580629738340827923874878693290907821429951117545798174627375486363844504408617879969701709074798779007902624475088476405631696256535376461318073987969606925456271934944296115828348657821614367487287240594576513004504310908737378672952286911685674913608855217836465886087158599319105932258032635058733540184734015136424787909859231129067584613300396774350215465591766019365269834702030346123467655511104770147970613821822841748360562674100122715476006316487450895964356730051681070441545809899394163621767711233257779918321084203856820045037893027114837597937821491426413386550114924087395521795009442317842058868984499984530415294636242757382960327653398562973566921539210258621686393939548759104265799956986130069217806549733681916856724183393008099963291333031907675151366571581622960013206386264598178240862978968452703871683329066798060264740101693841681816302325659243817911483866029052578147011649057883578608155840327447440256132696528255665806627247903558442662970297553153139862808717664740065841126131618692945839867523496586281351627432682607299484507970718680623378713188934331083572226145871532254509869702944655221056476548885402981293795729761207878466855321767956877293975458569282095503501194880881385877679800368463866673820444422041941685247613111985615911798712294543506069024686672161092043714225926144426086945328292984284605745482380566424118791798795785620446364971228774084878038611555545635541909074431643160420117793706841922763000001110565029869963830733108188376339363352788845734854569416123590939532487082040625645501363868660139217351936049918997086036785009783031403362244728467103961959481759745689556913362206238530142440377832630217843730052288072669764747541108874637635715956820246042351459045394462278491644160033729819628667011165060480566933149345577256517682173925683335898873317072304505336354607966224207666747998582439873709653935267775000607597280001446293830972649132389937823868051036621143578202689398637410587471518878327430199545685980801983050963738899897922769577652136373393879427334563863816792576123725262167892000232110155608632562073629502591837254048857797495596485747615780563549479602187726112211402914850169589660706382779141562606038022235721371870919385458630618808132215809429784987487835965908037912518432622544664871932196144235323458760503416625455212536560342518064524761755938057625761337965908753850909959197592396498298507676506489060222132801317132919518177911834925537667058922500354551726650232364517237973211698409549706022068214987386329667094921822572439577315980825317758586804599697547804049343632448661435442682326452368831254622847953808104451126475482061088063591844276065673867867681079614476638935736935809572313005831883720877670627159832244348445158339953122619974605944136612076650655957517468322600649651543490117886785242464612578132860169347828622153823046239541592636559015485116383735685482088762506422056292055515345484241932300790672196567220429052140551322498679636372887681489984342790628930018045589742006589729291046635354272806587131986015495539031229645521159077894344428977022536254596952260506173939934109225028236322963211237823721350531589859237189265731262093125136563062501986082081307656439365672346774178760390960065235933140529484494295341709323069585214449977236708261551592745881643693765463129717257042919269429226427040850743554957595330899697820439930917921919377518209043065412320857985236230752214370616777084352606426140491101685530264907597680952981266663123094339929717952487626327205397391948334843565856066102324527225396827011376783725108046769378089501092194723625085000443270605329820917083637206316031683377609012139025843810577019954594734179699129540913145129848880822854673258168242239072781330007931479202823304070340786389322771459385766110529285023683070633418200271969431865418135607763292192878378921813035362522616675597611773424826703250741633016975627517546514754801642654427759118860142887121891873967157705311387192490423335556216467497040130729087128765876720335967166049444745648327978745110247274244455048534760358317646540975952652842327345347472759309017786352323631314342930678560668273599474247956117060395814833562870835459991189688072915013902734922519134069077097351088886646091020382846880018503064857755790511091402857576413830197693023870897916735520449935370917933132546530722553538609702642960489985476492030957384558896299131237747036502475469013521134180963870924040154580323692619526522589359925013090102616891746656154515023798539497404730156164557849740963135935856659415814101133498539339610647591753053144975903926024681495148726327610160911721765441859403074029423757573638652493950315549242479251660844019206189315098246345416022923547788946243154714678933315320990621730353681088963347647353873812296362790454565213732043926122306845423396671947955094803613384973376635958753353070369516472761715900852397280251858328857289932077670216486311361865746260344924896672452221183361159479333858818861435732997542346567932855692906126686212712174809184085406445188938046866502416698337980803795427887774745616799436049804448712396551002945337478805833494633786633685878434269518478164867307110027694129361613388037984183816575300992737168824816866093216174790632107996957627515883561312451978010956239625470826630056892556369404981154271545193675041363847281878909181000854175566806142424551313503237769842468350982052669469637647674069457685710071402615725582153319171497147555778679626904472237195317589917479135814085683238059223988084124446609958829047326061332446948447181507131806199077470772921966717486655222286191502183446319196548824318897500577442039358002073420102267483069890529294430527137888357418974791710296351294013672456605173353269564545011668400583429158063140753531797834671189642503786899254959556861331672620671427530922201276279500487710982096787336050595038260864498116677590422565306968361994902302569728780614113288006401548665481414228865458216220705053436755706367384305387941118535633486107246604205540615265054574860331988383106991890159295769891311116323562479932559879226874105839589721674136424228305962298671570116339798343285118400698018070195473739947129451753450998698404079083353055380180196151377360841616764901243000397042276483389380307903568244439771013980542328058787463122731579324265195236511597913531601839454497515948415916963280490394772820353641007293377773402780055398935216942029543042044460741348267876057969332884545493630541871975330010233748940958361282060967770778056265223248811385779087894035694156051060960651560505567064819065923588986976613295754331798706959654742878670279924760794904408758706030586568037487012270014972670682990019423415202379921883702570568942328437011380157418658249969146735273117396769597362243953680460908951490450201742282917587445773692644852642966491316473665611951382024602352273176577124125140661134115149080900848856831285203723704400909347183293070118650652877569484130564328881605030854847823581318530572266845956365781724693514300948711275080978960333624424042822618428209194757559315967953850534976969825856490862369596117791346082130847096663937666331576200247407288837657672157493201212370308935383856995320065678903865156185671650369491477178796456113723380138118462390962567131720688100431412182603747881494086026801993354985737872981601110154303484796414155669382903071098384116274439360277147733810482523430405236687013731946429002339424864982212257725694553187770878960042478159345473353115469667314346215012981809767905238768235417424104577817246950706996299606521447695354660166770677840183952168547331367322792717212629268272947400699828959416782376173513729654655320702074210428919696647199561779345468367467291320560937324635487054591383267767289448319027880664461562703429973246049628505039874601090994934833835914020338475653510458449926558631431739687311897350008550723699960071872763647685323484144980025498152511066509698373784574133619481994697681459530905360653495731085983776884961467222667074119045346224532943704274947457634216144866141097500882227507217660684053299640511034809328515906575623984533834899099722138547400820368846686621685653450356648748505889596555485599026552425670460629165423027703093764786061790990838184309494938054262822336276807588319078299075470550664697552305608482116640988696267362673550530807674716957646664924253978151637184565199956880937252610345006215904016996460415708766938267110532109190352992531245934957418732775173592705063783714792877856414850301697554047425955785531224679616571361140864356630695292670895393951092866032345648330661244499584139002919556409468957973141595545130517015470080156819705385864144207140796034188793334050362469185604670582478905807708774940155683938958943005893103442260908284961462351565337419261644405603975012145669117037071796115755323153114157749302039993919030855865412254270797686541249471441403414596717467081791436244209893459111528887904921144555894598403295790555907642160599463614666493513561312760383240955986416778539088018578211137431207922471429324305541469204786185825545320900359645546577216332577032588321230827056074374001746980560388821195190702034387857554610360880249185011587165638195546752614142922698586074266330869311381111637141253401707787375960242229485191535704717275326637753708669901616967537384950243187551036518740083213444387283006704869846711577086686278120993426378003514653015021674474238424849248810274230196864022292476897601122467478021014835877469909915647581561705158312350863101965264651253790670492752113896928358224602989820093373368803925870430277899920449326160361989601836876488822061725465596259836825399299816618976586529760251879242928265487784758070122800951047242138048503713650417863831031687990995130736941371266357556943242745115071139506215275416283379700143458505508070114409184390741056643892964884701818789970306067733824806916370338232007980536136761864104541422322602358496278173117591030541077014665559748027028214328265205162217910294671337595084845858680179668140648852293840153434990350913098152788871659702123968592831180600725031483691656109112016419772315113449562770477788538058213944850936876397064345136602667442240881056428432518467362869447226219798224828616000709802582476395792439433293056178416109897670958150892419530640880566104719370028546960835767736208011294074472728471249396098357555693275290200031752302435680492164950393860223201812003565328120011077614322833553285216508974937429472996025716679299192054200982796465198171530831776794073579475742111690633912858678147388954051005344017739794851998378509331354762195731809605513932689995238771193013281325745556612471362259202471158481030157047845255451642264891366055525313623333673068276960518129014239669817912507813300989506499718254743169207939295459118766928976206313185117712969392515133645807317936576927290096930379092371130338200834756619476684686605369903756664528796093754559271829349721012063914613492585773069677994076056380045472915538782689638995183661695705913190617185684075873416983397309446705217988120909057560823957150383494846689991360849129777512680651356928976208851319933990676043805231155945439690220320827420981945957876135370346243969137711084406501911710420757468981979517709759851908218235867398331936502165221475107027986595830036046924363206787143236372924300101634117693403478667934105229705391077787700471307711686948924943213307304653555158335905637494810107772434827133121174436397431947636847799314340220353990014945750713346633090663700446313899223500700126167297279203822262410466696918972870439263563637070040469082444231292904299430223779662711889866900171977310663580612670924735426420998163761042854090555559763473390254253857427403770287265292193392125986457761628446505462486271115657058525595397064473894165612831235939098567110436473642186511624260538201644499952789202358902814364255690324190277017847097371068735165340052351686513687039334367210550803661028190730559217061792974484403206257604307516696143555220586572656675409512575063749069916077466860515577388694434778774877512805859238936880014747215508693029929960546226040957485639838131098029192242691736013875191796000315661055661956582653774655835471552554189247819291768851347552265265992733498886552846926255478078755907916874252766358452896786583886664421832551254811596199606329516741786888710246156696404632495811994144941584579890221218239966309727549604138681152970739837297319274333794203065698010402427455164518740245329968227675391451682275107557625468898501047485352076290669543238555573993372895815147971361159650667759562369928359423061098437114001299309064551158585714404490985081261353896839706012563320448844722882929525977145411443100485645822357568781225769305546164793435330402381702198804741432293657311883900481356732171354946355413989368839544902150295641931508319608544752746380350678994842166887040695813543250224653841979547795083887168377521929678466916692279114904262195094315183105087003433414034463089773581965449711371867100639232471229880533363345244224961784960223180706630496538153759593227044858245658660028758563155376282385892507489094566395199962356753815524634557975521106583102856312193495868911100995054745473381814243079139326473101780763248374315686857817765598842913346587546367866193799452376521087405259101388647720802377699832638749562850244459626952205509246355798550977128286667173529177232499044442816694613779960922291233625912698260302164715976000738078518665358252016882258217922386745188231878608375265992826750296124098974360083578430266573340563800588861886783555178735916328477774929777929896343697031510728589581607904977614946536325860390583897411147817825934271876814143595803260404376110977349425389239436696015113945307999472179742024910976936653856360903536365363940157739991392655877463806915664979602229032835958973102646933335872924990344358258861926185621042377832244038100917755192453807718373295557771103875638433040382836856410505603974553821072769872222333288551599680801308391697730256062966824345269493134617420034698771982357382657991665653731563213841680602888641009665906904845746145495737905060089702521218506470751512636737101887858641723063333302756954411733865252695567391396759408708222035173749929840628899905362410176313978727144717663827797375509123328612875994867105726998037586829976310121722200366882922484348104174880597048631665146961021701068546759474858600633947812357931977109766963922074496045565188993827946525817929476754301234697858390203985817231061224561745658073502973780157022904175475045179899460086355962638113630653031134740635113312410722958799998832034042380551144155673178443162995622580055041669335320466553075552038049906942938320464397124481846058183344088417206194839404275228826685504134058386961827665381059322337230636965581331612014066770598485717381714971763044658341974261867266549285321310172534169570696994716023415386418833016117418936349496980487220801748898363213610915372240750826698678733579855187959232761720409293235594924078910848174152093994722226796650007032357031351942945293703710168830800854201133387111994265072789098184829835381019659503593576580508719838289420330632875140615191601683348677637141889259800773736652576749267442809500133750451070257192974120721055756933717341979018871663209160085943953483751191417438359777383712424018146757313261748970784689204969924592493009050198040115571457686624719170927126632649584860395481001263177380978957571338435996635897182408294087851326763134522505926522410969326292372229081562376765376535176288759819346145347902376182837129402398088164084467155854074157384143592075671012830611144604500590443657422481396494050202804957595446387975302188047446835301520160989704330580898639295547388876001113868237246127559691372920741407348302415432098044371819849266612274842918913554742147156528902844910203837834818327566208304442360403033583258527033893741210066062425823383214029614834138578690869161602129512522761257627060290149292911192693820862499682243684276959201804141392756755336567960693044496821809588250520631756695017365396735428901892313354959685426231929136717941897991202953781745291114635316173466951389406401825292219627398644503081993073621296072153896021400044528567504389572221468350415720767899163282238881944669098760136719141032689834170553832872033057977078530249676097996116877709537481244432858092206949768531396343350062621363276922874607359449477543812234843049065570181472259124848497647108164254432395416500615177755362975571580435803169374250992488174521667355764738597851265513452893876805967277242822262463803522917889341037392461257330857878925053184393135317932293367760342233165965696901108259636838779404879544820115305551590006212663122168554618056120054060642819107081745394156262395311685004541580080555633071822675924733424301334017738715099893634906390994756243584269620207334155649353981783637002862831156732845571702644871980555198426589572014301140981006889691084226513883402694054548821859497127980782704948241066606115959236518088317596818815357415698325945221952038765020235056817653158047473242669680590921706359241732931611146124736525755761171167475768046273293904037731512977457297475433932950593953114047312755146521336941589398520908094894411599576955840769593316563165315823610425792143667477124680238032536498585846977224976487341291006792494985114523798925503443435417480978439715802030267707826492656762223535630700044036168080056771079669524584113796758864194835260192302793487416750188277453914645200290303748388220291104654754423478584439408153985094272385700908945761024945683246953038551910267983536701313736388953649367702320991797020287438731366852482970715267333950208384777363726055834580113598060656329423153146530372262200790893936742018726307573734052403616604689170046070628405461205656355319142623768356942265513200812496012456816325635023780988642857309256004514297079056382036066457083614682025676647923012287876407976390499974013517950380377483703534570606369824309352399769790589286222268057735926521431651774007177219145030094089109301037354729177329021575459075207033858872897691423178251217551909206415777800908848706870169797207218703656331704053498630795550600251100179403712422704225485148534067187634860221416476442876111872690745124589541086408820039492139074161092590419529699581696394774919288426992040194894505362485111173840088911614897519388377925546841210959134312769294407966807105576562210095964150113375744557014084358972446267520288595767465406448323593195527761596222075607244233024711328304302528436285637278446926878896944657954005792119216563327849128176904269775780066829522673886963131440983206528579111665228266352174180630390304125048659874633273498051313573576420258498181374195241516641651291693512567829578114697874171575178778207007560420580559897901527311910574786608353788256564693346728513682417920084452346872333968387293337841827898286633043861099684924966523157792053792174343479539683286457758306233999728000635988415977036340304280500299705304488898159812802527566219884252067781631875827316439053605311857748287726943447806787883352428308469432400971131996658228341931003815154122905104949281247223249818952200417469434468350066833033525756906576833998306274744787392362594663507328207365602961578746074481523535087011908002595984111363222863981379002939160672581735170675229436318276512494297263496773221679393486398964646734856792325368917393067573342588705518715272364641121180056022289943561000282860163111325202803410079876642916040686324381756464210835172826523054481161078423747036622318658038454032758568309446189446332072649174176359667674918482244901757974775459904313759666566721787559789300956913099558267510660183728693937289800465833919720444340483823225977263375429835484978167491655944544022215005289879843392974595498071035098855511112234470819679714715122100679341586276157354445095738145485770663400903606492302550692697422576024638176765919899264512834033688301233335782406710274306821000759740111343210319628923358577869387252197962398840773472331208923776811584681966366817093078665050566353437954739586463147987863743130073630796450929310941929755321544271538920211725231158132564632454537553656090509916479334543803242407709090997029303723182816194877833743845932911063993475637138198032577728283720043003507240776807101701891149365280170960146656923762675585943633728235946410805210715439110506778157859923459404296723742560861644603118799588360158460449996780567619022426960225487031116659499104140222813794087669609249099318848170136040803646320838245054865498872183648139184414163005628841242468112658186171464358896495897936234369441514094987560136931999112898128976627979361635728183731241926785709223375830699460318379136284761669988314433647095673561331585309574551070708725475940764976753143011365755927927722351893828559909953169811028371064635751628955064212867596848800515487777530174963919338481576303144484177068675315704256420965146884287882101783091598207742924149137998674094559470322722258332140560801745081959938129335974459526748631405578324707593263403066739905341119873081845816402105731241569964538793260707116296255918116584174834701766357868217234086192198715260943781791846537144944806337600527461758415371256780215083810529419525650721010260436935460925135477554491728372801007447873132800481156457167386755263551012348116059289546439764316412257313908625619492815201161700261525702622806359411733441947301118733274813133433475875367668072722345707963368443867043595304009684650962731825649574561608048327965997214124423939110613999239773302473339028067348596455416830860982351020792709213401182085662434709226147208330568972177407620438401851289385111558798704473888461568823183812980269538994879014824761911765934282027037045050089470760859919520995591398905263367693022907318240972954102668852496642438049578250184893614465492247284359655840982973813298596113320048327285254214731040188290645930023086966292911797139895723035457231030740114582530993162120107576505935825715918828508009753207507463115133592934770374301585706480704212249898846111041674269619862222568364086304604392135297614900427069822874063119959820598733811630688401960115083127179325916714011790016994446383150233906728431780357570194731430439621891979680948055844390208332513389151386747015193566102428019235665734767308720918948922006399460919173951308806397672223366272898010399516526601369708650517601631194439497688351540763641525930913207718384314570243497068920423704160896214842622429570421540484343051409902677066421304683413550273453809180598394047858075813256574069218096616858924938051631508995138177216575592080062881239337824693852679265441381208265727777715954565905886775263423921962119112659387877483435467598742657046936067632494051069737099077460926576857464452557552636436413873838390378261712336997923680763649841280842388542714534055577292756756992815357428227568858585281654925062075754743550182098027593759385729216514599020981657075706016975860946534541129830817433915017060044953265168308088735035446396807686982583135758137083458183493854567524401874261354278028657149769272825127549218872182037338926578738134828432219451901143798335967221689244297199947229379278733433560631435455526598605083605291646285280077599837691958236150541248464365095043849429965999052244639196445491755672482671097886656496777101586616877174268816771892989931478006081487621359100630948215724659102881758270580175526382863230508817073993761423209001081671516662025655029231111875617701820045173654651966445434371904254623340168750659970701582166112837014602662091864619521367139024004085830656233326013096451336926860774972779269551937044152856297185101367062905597605987831716266388634726585284585268901608620876955624940120926019156771790843812438319534159636815481313580015769281779471964478723624241252310050963522886554062117326936518342549295240986782333793478785620269596220763680929714806263424453416230101678771887689413360957508439126133995625891101563848716859079400728046276812361237272711425079462793794047510169660293281430428171001703852644909561493579537089887231853885234529624342238295440488900619924134886041859104726453900244267463022357319829773418126064978338979291100508143433208619482624728766684791220472005358712029082414270741460075666316006715492634535052529878548971626405094630305634509063758796717024014356249632278668246389144039047679301714946585729907010008032754937387959001222609221676058589472923092156900589202815100582794140999478436191384588763641481144142620333484491625509618527967071395753860471854466176122594525585078944521773935349221334822228017881386284518323527128704456375216110941071142455609257656185953993749022451618707268952373787424950792356876881871966310826156506986305605488422562201586692714899824849021934512788113396689756255041911793997235978421663150742132515828263769438028446042910167309275488050254441920467061367210868275647086133930166472510094742875964524078606507977024781752315144732493777410613478201542775231437377938872603625787934598935281645891770255869213283047705836765221505669901915328907494530790816048859292348900453050606050951540422016417904649532835498765957047319113117726917552187942109962665738071167235868024887728721789610813135352626280410795882511848683910152920108420376323398698969676853059914863938411822125345550120112865465523646771968437855935808993883111006271253783389476000981690926023553315824691905292858373331228718657853419467390417262237834638339947715781067214232244876281494716495556936222951697083769311201635851587542958621641904921949590295024941766143993910539989437999425829480203165707230071143935270515461148916062812292258736746669996064653868532156206114476362082593546679285759089660544793721621844545741638677758954716547422660127453754985594493621985554762924074657227051910052521257035373944293897301413906773873031763890698414217937430016435297796479776574910042886572482110681326375351721386068192713629139342006379595103783781099448982031166868420490436242099827241824927016935048227153031794112517336823786670964133587399128437733030826276246985740191469977155367480732741925669425931559100615833749735274989215461920397527487139999967969533880055300055999638781031408569343158229954953570097495899004249812317960820327828508396027017726868156949129615484207508338425859430270469954541825380620651525329586254786894750476361552430931824824976154554174498809717885375666078912090246879382546443489372258826775793931772308354688762973171129849160368406751994863345373887946907974524625557564650833001951760321036668338569592811943715535775753851326803446318890291822581946540317840381248434991204150072085403625286162288309158484525745560705163164871433151748838702053151980315031023299835095605805532120815448380072194173903055419900171383538303495236836273717367736798844567544011094102889571016617696016417089217071840854631189042258897382579448867625507343134417929325850679457822438870357971015990758264301007228425965394381151750001119309208800052070291374974142827673693871742625321295440670652632278697658744858105289828282614127333312996736339772205415614794519011206862442508101475809068409246022204582455583550073204589135938551502619034042074713872967194903496134028187342969451239041980283717542016144643468719743621235509050267666896632797954002135860200470609491333235286116659656047176632726396182484033984897157784964349823779245160050235745049524641929328971018320367684010770042641081835549045587602961492519907095299219020884117838244345964229499732254746123009392139567141725098420926772923764016544111625320601589704899394635531035501336478336211188447776743821553654550717945670842016347356451374224151581882482996110145147190625427197447308651012219823699939034681949907015989739662518183057100941517090273968863912010645057750617638645481732258953477016787327622976222034758143807118116560426183926301828008831318108584387418083503704760691394286503494073813091968947241615138862225849709631903848639841380708718827459081910094760785809908742699869733278618575140019107028294088969674764715481699005847375183111094387615862649728026486767493360201185820281519683136035578130586496578546920821487233310472039846832486088559650485681996574817965325382186486586446912491500067681538573017999570554514972105879183211835845145081946416596134124581249746962142528170103209219369916483329340247710219561334648048757693411787989765793226829120957155151035056938829784204170848827336309771137825218603703345725728508289162205220151396941039427761955213002060561726323060772504282136450683819501837672106098153297689904780112571990236853600959525325612825707467203155435357630006453643732535855765705818393877807993858484325485694257408015100130140720067779247114631221927157305907112026722539159954970459339666831337891822117934143565398970772324195716877637003238539520103512071553737464873961589185430479172936167359920922999184407857240860660313582585443929346749719580883850993185321808773651717700297674062280455637622789107431735223850562935055694004990722455026502155763398170884546027130762960643141904809715429024344327109422628443694719393646552420436165715366191644792846058967755732894528019723144819209369765768671645853822696208025873578909628817799118825883446957426898099190641913062761974213058031637117033214184403224864084155998662917124201225231825658635301644742005927435519284490187883408395568629157224948304830239069074159932710088523792611930340427230498742823909000198005449744969367571671248164074604127786635264003353613662206348345433722143840739923922163074567490552037036863770266024853198348676044493951105263592174906617940738978857504881517541815428245991805482765473307393557093355851000129052857152591282104509823149511195207857812501311684429505759981859451477323232324782400543819330821656684017989281559464120655180601062280463407375102584245586455616582329279159175156288204662161709582890694660881359226579102339757822490119821781311275260429058852368840320484625093621016314730205977477487444303357249466215319195029906877187568077476150245830776883544167468207100694763662705754738348705043115023906403500975351149196499115265245698988614706969809933356330451431729026550784312736709811827763889384648393821179110451163241423748371186487735693554543077685656776054883031509077431458534286976307255558032733882719799576909671956119240340105695436929486790689303676276726014173460184084653488791565939292813495691932616874404650539198862754230895726302766076929681411684870925908269852958635335882912317320932920520311036814589412423578570978105355899155289640292970805151951065792367638251160943358892920034030448819583347589823258435204977159923105312418250513524072047058099272547766324811879636601722289720069023591545811552886607302601669693671109572640785514880477309881942332095780294925390925996792286693454252522120325757980189131884178716298237765367545966445263126142276605239515474118692367532367771612187323063160745482487446735210162157399913404589373878862718220688685663352752533874596505338989023605247481208113016291977528079049629099581114096967345461182390149380425880837975505964123848236940453800738464253043393079883235586802512353037790902289321690210437230071248289236558542709412414834482939708194740602399439854480651067927611426444792829235533673833125828185170678954230651125188780523793450410695725278849815101033110461113349706746198368674538073670152383617223950581791174575319551922622651509863680575147112921745403802207225200147970022927593312442003432738387398427099428107712794014365644626673413155754874392869150181145895180381225422877350819006652886769476391216831285623731587574653512932645317232542523182567715420641388105754995066808045948327348424071010614873029788784026175722425955170277599371124266891887143629802310277084230305114508928177075090349902684823089446838511151457126381851901245687208147999344541045920840063044644331212028632684273180043290118907534672771421337335234743447100719173870813304693683137017185607126622591352870294038656526310907382944414239262500683069938688161819646009397650877260485012896251345864805708370110154355893190525296622477249338613125990319843002896071389257403197805837895994749712602827777176868242902064506497914569449666931812834149846114223123524029080723843274319776879716753649129736762457371474933440524833031876874750102919085017553988730941613341875149211616386132817346995956592897388219650975929689292286453701443302287386709089858017853149312206397939928361816712107677777796361850572846744780948211307644374384881533693792497282632249309274424075548758168333412597435037987119196290548795450326771227035227872873537125938067727209479978083977572733912808251001860874152256937400101127399211557655788305314225713197803791721409295527270273087972855538830972700430962366035881558050077577502221603075422254236265140725379972079772002318046844043196491487852510744706531135411576494099016889818361377512268378274961146482581401733515346343418294615054207879086071820015053331990571169265392637415948189005023198668197667172922465265692766069872810705358070517548986507545658762819314500878761323278166823733335949529086476924544427733093405088962087411228061170185019188225843747149519178631839262493705099034887626691336267463059426184218360449559736563293416582214323975887705572061781712151075129556131573083719126394674773595860865142732152786498649694438867396908774063708097298574901778475568304500511429965610269033098684754279394649728298663826476826282303833010063227237715648614594086429588626717215921968939115474661818363683367675456006662974521096548998624087421048554646444453050749296677236573842800470769694451157916825820619423430599838904304659250044638858921753382948207357688692312316197844513684427029698337951068344511218131045259063492034260054030505052389302403492033593364249288649345370106251992685011352994587223982937128865133852178549385052690225527648394879081858360298565611549723138013217324402861691068912755970632140614870926628519130673566513051635406205436777632141828578865409147579196888000775590837948116702254294401111056607051567682529370584875708056467040247260146813895460058511139010760429265867200086716148230989982081575496277872834203022227047581684873105042994239070712772246466760297316192698813416266652402540876920969380738021636064607794373371876353866945062804099020594945007040280569747931968337643498368632495791916542520319666296762618276519893622791948663244734966381482151292085081500922942507934728012888120160851260512327026935606072839020005155674343619335745747695157044607108907880355618493371655991611164118149041068434452518703452372929626159127414915910578305802730783654927296917071147750550555019812925762029274263726922430033030056150054579791367732210892242503710807611292490533884659045720194169764623523123084245173005666508576723045555930065205475908523552337610226808601290839109542022168745341548767269512706963152935576602349061892619286730537205605555229480398456246833673775280933297843267297919009666416518228601808409400343570732835863812444279681283243823838359794824578812339209722226677880873183635220363739858916904635376563323968084682015645459728256979854859408087627863193142702793314490525329848695210850014917370112347396901441635862726981875970698571930902149823512760177758374369829842402721917211344775720905901539669462923214729060871215074010724719972940873348303774823723411780593512273578151185232252663123158786524993342282465666341420052623586328131780245276128026920533141127346005225570839725561028330518153226684919323087725167547486862353658043779050625721720330238890582416604421385474474325550057273672738446554291581124020359643447868670372772778422538083522894385482787065557422221162730159580142645615639195951296359214929847869197956062922821993400204960458883923939961324231295635038165435404896881280728458039847703278650582808312133480372200530338512533389714935297555579994619607150507441946084398728085423644937924677329136097957805624310406392619163409626160955396145460954832025353843622066806027623359598169018350589623827668653749218004383478686986900354219656774908249933380832895089989348380040372577097569652473553597767271309328639694190774236919174640120421366147004570879104292625504199552827645674739288301105820872216828916772321755001062142777303556207627677956577498205455927008758707662038738614835811932372969889205722002734958543013361374808254088861976361655989469974502267632526804044410992957856304594753627748241543795257130857605800987528849158977798703229823877565343029781355823133124493419192396973372203088642152839962022986470493401350773941767488338956629594227748725335602441312457349418769926573496843235405247977313227009661265361210870177678529568264810352590817295110779626116032068379925940546959705666159722621485338896409187662176267289347913525334303660662932338246174177222115565906753497470708321385293084833206489143880238203588033505130792839272657994202456653168309686349462928990931541434248594225794455078368723415004711213534600123600856837767060242549703439690981498438253050230265440586707966312741020621840799927588436329465786876230100603013230735335776689126048131391892443614173497698346495226657742546089033412733446265459840555115049762768237232675606037278390563152750383465091301834005663700021623227785181161773626174733442545927928219618704122425406187856594246175921419099641788939453484231818197956021072287884314207811343899151902200518171567317595060220306885224351257767887965326963699403209178347099167961742922213716867951017126621541234824125677001492839994328312802334250413916306714775024279217551080036847148573029664503974627377175383470055319417485396803888729785300629985465736000490387876694780948809124904884990279274148964573857241720458966594850520948783105774406665622956738591504643726447409824073791078882747811703872728297124570858232894578481169588033534704684676998098950475605337569259962098467777394484381311101661555025314694583031100143840548156559259223212777473784672038105338293062973318825519099325694111462315109814968131747467597541059482174482173550877629831448096466714328355173796400289911978176432265876121334163621590243580519320174503496566230437432004438221934481576190422928055306276786698381590091379430460148489720713537815850771917348787579943567195531917705699835232748575008868300121716890340557331513474581804208339392032718509440503840555352173684481930608739711794503038499833035918622917915605960698271722520834799366903171397200108419405826923358069497138723120450077694556739649482115433785744576816038782105591686789380219811034467558735739237284060448825078641480043414498536239980449888591246637526414308813718493414920598342043915955950153350422958770910815416324942275394348416973454600046152347964961571698224694800522634551062088785185132033418816538625484177957315218653087076462055256971450855215873572258631556095398179368645291697095420955403007028190538879111560496488887607461856621881480322434549339492872660795141182968911183737784512471263645094470216215978580400124531064742338304406025970966318610648457126296169798435359702776961063997412518010188696739275718113539410692401708842971177824918075989647589887517629107946794203230307435310750220278892009552289391799589060723984898467586998609712320397363372568258726462769697832868463886316151627721120779472471859765038939150016365185506706209966144900150456488114083592404448858182784366172148017644917757040564454252334109901908304395490639396409399081131468892234081766950685315084785096016081975576412625082329432383834782580277997554529502321764595496776234548358889329292192453691232997260823269793077889117361191284790674927880724070706133818461461929709737373036142923373303033544507463174202147986802901843085340100304894790467091568981513634737220810355772514689776596345151343319758737411242759053241935806002201694846094618378274615312935757089479839802376748689058585628767307402636578272700030630929509685584864432569595356428837829823892179492707796522781303547029061145343083892302941776140161388272063011860537604978412511574821701686954630936024559227311439501719115811496663147704479071350121322729936250126270356616558037663513346975490707127832601033245656990631093590060713398737052902268725121994111662642454887397625031401514262541807385315117284005458296871856505120044440006526752622790431829182376974433095095466418442633901649407227751674359558615358879948311438398272529861535583329142762024169782076772993498220034154174368049136659146612924394886796537880612752917301504612259065622472497771973260445310138406269060534606186719253057791513505378363668274413005022403092623766879876806693169412832863203459265625923270596872610996110641170623847678201939561205673277404674464149137413189283003436128559653009676734873479339194764832199646563592150727299467945580391621180223140304145264814788832154275231520037106579235041611769240450849208333424910072915234878219779357560444486695099111961425268901406672138508965669467290001639221463015612558791163014387137686262899143829022266147174134277903494809248916767694739419851806294553474276612388864952365801166527373412170294066745378107024576653832286918147589676611380381334118724504425408419574923584230918998812317725599086642806310474355987619445270080042396917883943102803021360736756068168188681526195238807205488272697305543592792514617799950721140147179375289214384382082594999580123715211549889016440931643809086158807129982737013708856059646031761447576919245941753164602148326272479373842128681928167904341943309362861062592449871516048270745209618835454366447000652036681877183184390948192068785606372621333805221874644804020961708642145067070140349210366620652489686280803028344560148298883576686604815071922618095458520544456605987363254217378786764984688924304508300950972020932238921976302699933043502710967393575997696108431268840537731435225859469753251384227586355587925096362727066847032237036293269149763286184162042888002486509487051653440543037734551970026853369684788686190362370161018973842670558785416314888100269141739493847304889505474377191875587924896889631401677024940337716868953910850622493787244733223616755569494446606150046744925771880793210859425036925127338055151680314091752845863958005223924099522850098237750569971344043664705906265909919321419438698058537773624346017916496320585951662916077790677875270907934706828567809997388129309750621550208397981632361628176814056268368318065105292655826451144835685702352384965030200378208768124770458560892785482616312028151951623996272191136862730134967093744275788594098672111634022892155079894295151980718962550078421217128938084421005138275199233283650954219709792657742720300761241403902728588756680505524837728130082053159936083471497563319696434292103313967538413502753032606453040329797185450087800976064153201834761668554042362077729321545234777460702218019499204564353780910355410829713683979905758136535611482860809432496098697975214014455093350543065340714611299429600709769786844599971028021819013486705985152593635076605047832695795234970588046486167419842012214350511206920366632950725063661019894777035369669482343001921689844823746019859753967755916424927376678951169022504819787701579995654857805764611345494081766777512587754898802892753478373982612004443871698857730988568908028843976764411847846186995185006017725590838093519110804942678515513449313163091857932413245852327116227135476511487439924360458505956776159207476204875528227962369893212030453340971868853516008006929051722704010953017123683412700880620216834164137393536338581149883990959037877778832712398138762643698255248694865577479037158380866450214361877164295932581774545949441946139396561169058816095568195332452288271193365231890238649759357460582000745548419693772884716631265244171553114982748310790085869553261491953330133272558862143558711245243683626053150313709616949791739039364957037693348957048859180674449987861174734081422463844560062585025199295585751942569786619406170143838238587527011530550927877187634842314379021347536278170441067544916486524099848848240421334074053117650611978887757646539304396661770374419635875349075792609656714855352023366493387000071031017573317076493364677046226878715343862193111695262506899858756795847769576226577759997018399537999446628717419947249217233710217289765941382665207925927312141148693080903493546868422546753103830542467800788074513085668656634024914733932109255640392975678550399155153366386419897994689060397306034654707352248917788896154130520271888511038501713967617221919420966939549248226431444291803690758476592412640439196635162915079555426401921862835684531679963083057982966801830417411844141662107669789971358371712593598658827324084011128308286235887631768309180223837782746142086227317206395190329653389337781254816446556906909454959290386344604349503313217576159835812943201733749754298977112726689484106518630538074918455717658972609781565941916189812136467762614165893777543041922119960481630561576112594957452480364241079250730975890507834667818917825727969815185659976697331591042636791594694213285335662775487517179978825628215290286271798366361606214008234860407839737557557539881139405209485845199293136252936932530609255906997007673781394805101304384126776705412682553307521023311203064790403150099679006699901732442365633699865807567130409777433154326570182055920550840487367812103929026380618280199083607949395772676256981106878811268818781083627391449423238144200494154767264265277991767457742374825229172155206262221261571055018983771676194453756852606134795833801870767053266699253289650307384905927735670252012727693934400485837208886586812269937356195958407273724676718761972574078609979712943839513448278787521863349621643438915930952417986706419329137852771136798949817058061355449375228645377584221827569449967195696119631962191652817459534183667766977148718344975615717109191064189757121241171120751869016123746748599231152139674645500718456629250696510892989818597964203284091823133896411529222369156672874525043505698962727097780017205332016142121498260550653818690723932628759247394216696487127760953282192985898507080559649969456564992623645214889246972407284903958846026795451883464573900994203308849867049535199446204354934178328457033213270269574470586284027093070672547618485028367138408939354300787440909721370037891987518866266270244164341495948536204964051965253247291137180601962158239648766476864268571082258786095353787770723996421687693065239871376573721043426025866484193381717003735896772636181618271570156395407332627167291957855970192612185233616290866609675258688406296080638701539596554229365492214219824624653662731952562095617288171381410220328854418801888887221424140453703053785282028074047561852835804458270087119865267709841323032790318336391230512903709933155616594057911639411749987437938649530445138670299042199984053007865190399361261888494463046609216760265631268959178389327017603674890025959907047047208186895573704589627277118193526529170931467325943329388911961981657247377213328890707618453561597726931281998091808622983551006147748948453015399851392042155065720642454055991507700547237696738712315209694333033160271372616381294774102984725066850591886861198874803271779735544445009481963322791226713808251089049829117680589234447708819146127533593834087479926248414262440813451638465113836337298013634295078057381354860252085683424397778656024744105263970276247292293369678310227636495179672331866440096767401013526647047567215145165050791492890714677389404510845646952729544049874370791196763723409810486422103964024822744249197747488351638630446026981943382953794128668826139367558392151786934301723118079798950280360025114562010058358097448862553364112424279124085707509197083588622066788553846798717901861759709347769542290264234331813510702101937038456494145384391881212532698941168402648607386617780345419989302858711167273789982981771813245362973165772350242932956110710713100121840057941167820013256451705509900631845439781138603299480691131174686005438936951798733134572068539967034304549564829017479235367705776609673776858370528805487759614947552224045420096549359994096733550107346726293751419817546094825372505373565908526625759148904661578343260121574444731041336874880785732285334469436090425187081196724036675197965118117613857166470101567667100123295642285002944047807597201092183995556365461950974188656210078742167904947597784906963225475779431989918133930223092421149782453336867015119961666245474542959002368913552833079541722989480281515261959546126948051084397474938140202949861553353708279465247827192171431500913332667317850983613473584728826969622245740828458166407998261313116794931474854294183358402113366653955059710094510248900579620938375492918493367571364575771452220440442661105534699663626695191488796233975747112732579791887598614867083442576828075423837303173034806150856282621526340928353468102821867643716745939063742094121193341367905284536500681790154166693425759843221920272792945658735005728816050977629194387737469874591040575601969644942167715934452268136470501811204809109966158867769339441496219241537027401079490596644879473865912840219403232134279006610764174162068431125725783952586320997287916756022053635286232944940068389943717156660722427034879824239763704822857287507571269390277397962959198528752690893353283677889444761479535695048102879910784614448168968411417937670016343998219820759601425274716122662245341752262267826145435721595326028069677509453133066289257075973053083947456270401587491974751607151749493090364764327852693597983583655770242999835905342672804037534363773625017948320472725891896805142910064554291647758943268945021668166126765340124729597853804682758915553866325361198536646949138343957574028930960987857554208592544021956571267679165925210506670448212960879293687300419977086118760337924468978508674560164213103876077724207899246780513865963970386487645856314817033509128310533919503171325662834147993758128477783556042534851588742768062993536142460816873504957561120883453670002244437006608096366689428348836616506052228114370459876813571066176100466367436015976806098198305160035942286301196190718433516019898852643335256793774180826835653701705898814454986296064034584857290449983541475738872816392089459647214422551606338465525407519065442501978515553343838233108518591380946689543137296423402829640636205391900229982204662791755659169236634598886009246983731144911201088026579623774897182694944807550625253148153079612215535739704603468445708877391911926937269784851490313696646193109404935410896564189069875328828996096742929883671225039314007520146185952627977850343290196839346637745232618632109342218406747219821377100334475896376070465410988904815507603666369408007520443395156057540085514337048650629946384448108970355078578403696690440811105342638508078313894708300706631662494952748817772173053762021131546929475744758662582132674488365401966582319212342766946848135456989126572092053228303298149803689605908242654799792593458060269002262264642165485543544772008362156787296612311627562826122990783920222313233173308201301175728008675453055950641536875374563678866756925929001249465842357684196707236519956689914895123189354415289974237403281556614522566772693492996563686655341467788635348724912084547353159591018866071850250061543081606828048380090876878029831213235926815927482080391771179242253731611291258263161192115883485412233160676032398798313663260683157228125492552714557524833115665073547177805266758253996067306489651041804830873042853930049623312041764257634048328664025502224850688336648721004059551293971377999214868485900821557763064396016408922113483319799677625864336472116614139533614012710198877267687675513511734039196253095256096272935772467789151330503730852773976939632657109919458338197163619159401126277566844548247110054973964520080847205759708313847188315406680952886768123754520603574665727896534105258420797013899067945062417960298357164981731221430477870665597563874839914073376021311412200016702135010320997503385603967569030293421032988480925318951875972988207547795748200390738141797049910074978283621880411505245806061276395365418575041340289269679488058045322559625947088605090454053643061706984826997753357695461420508847349432983468663195050610465552629266169457778521474959316372291639225312113491678811649174625564259337860351977978288503696220460725023171980757305910152108469085000893287023649650317341268326192918477952606578319740790689956378470210611776002666180182148016549095855272926905214937940800289606809394498726950923066237001544860526184187565482709078317951979050426906584444636311319060310358361481886870918512622262462532908082627383510750040498745117254356235260881684977340397079343018023350043738906866323675243905441697799723277229442774557656134745314988458081642575011855264330849156548942063418753082463310957084103102824310380530151756916427639872202656819619534547732983613829932571243849317126535062709351044298954413747112344695164821950576797155141798126548541256473035505759311862347068022481464887487659485132201598034444061284295587087933845845895145003768388611641023624909910430054940944394733561564305239722126617288476515281006144844185466803533857545643931151855855357861829298766846539959542829427401367281694168873466936623930145148082883421095968087038215085449941713447620067793360506917644154563827080508164816041290926311890154515693269288342070239556133971768920417029283969547585880138143008278248191183372860968711449257998911605621886622273252034518077333309903203730299208966535682556255247302342207869446419377227441921454646676890146717925144778239040691538640466294926739921960683969697309591705955540526622122595390919639663581253920488913565449046440345484392986831534597010097736499063898220728215157511211032064137311682662620925247601338276329407524104321047209554200191355613911137132602615631320737321266726122647938781898368371898588540647776523793926881345666612862511100692863255543761296468984309238972021780073387297134228362990437114488080706775447547215530648960568710057812056168847991237614817630519088259881646283932718170597449254172542829606791978714550975752979225047721977013059807769242844537554615073290939363723620219718809835714289655407005127708576159646998348326019011533092577954656521277818525508522797797384029851632390417847484607735212960447832982511039249635830158363398977006767997443058963929124308914088179964348210347824736183739462054685960865159576798091708883444066417634221397161185613330923773782392032552070829184316354822562988503198518412082443780092408090748371405885080979800066306030051117043006321598789345382277220442386344446029824732789826672234355968845847585480517053922808377629192980905848623951349541604704917280319597516630558374309731790555834474559716619393246322168226564506112781658982627246704885501364131467878230246385224619077092445367732422276391568142043401852601914710893531798962808797798155120897679403310349592901709231307962117677652648810402848468222526261621042924377764539023206016300700758669801754525324939303545067069824772785138451682530772874377632426821922863148946394156835612500103966861600174213061453883799534966439704375767863903736871876370006691508423863184608863447280836727857903273004503882304088279456691291048021713509110116836908839073374672416003342121435304366937440962901980826291224881483278041945171021910267013284707362265345946766698008202092856021977973006927686750539073670663068259070354045019274927720280431925855417697351952458780028555308402320159880540276373864985869982633796755930322591925705816227067066338765072297502579794208268804694814131593444237538068299390071295381694857870814403322894095271361138379440466065724159613201348709387370405087750915795895386230212820124114698422105993412583168029635773390309713855352163831450904913940199932031919653158547370308339789941638371057289671923094956419585521933223143928777035581536635520995791769313745577858148439976601195933181954826819436868558804070559330929933183602456404719669659608915968242875598744349742632306299891137413096040451754403925929542753194351664917857331355624619773563014424867913308307344268495365214208042876571609444759412181001066011967473921686523953363758863728607117446412846365828609596575577573138499542025032091565294438477068401312913084123992950846593675001449375199886217434979632085622225386008056677009440366391502502469827597956384207560233139667285418645739903037476115078738542677651223820528379214010806355130301907546093879553567977652784884218912530677364741762429111317226835292946146467789190469199931932908158707265985634246801864470051610356694173295606347959334055676471215887902571835543007758404859239894459655106561866290570574727662985321890801184380354702733460707894316680137152107304595905841141252814051211311192733463937508679421027879826023778799969786713782841787803447820184804298662755578752067422847935687285192144307865321316546106564996943635300464843332068443193321024212730847975226259834078258757334470593439762609568071433317313124368332926198447002602299146651435248944778114155664626776355044384360904567113623006132073855228550041977687340640231044728315380863434895779331844598639940859864524798357371537531549245035143587570544384029952036778170888276164046051454221004160305664150859587667046594725083880609863846605023230503820531955716963771938411664623457856859255383072931553191296973148729087756120675483400734064423109439673849999912693893341933944412118621491117879935901883857663238291905349774183623882923435558364121520965575841373275690145126197579584630503898381110461502208730647864625380941206142974623023332311926082927911242375934594240277672975559199884394841395713468683600840968842488056354433138887327142138242694305347029000325254930485627243160057084488037950981927957224701147379572182016306557051428776733330677552493088344762055630837358475270663851817145955653708329849182857762450734649569002750677772909184441232104381587762678428225376638688101896959902940298912599527519619949259632633991678269116684402792394788689411212257414126127544378871432154524770879926723401568845577635309208666648108898221851361442471295807088122481013278663951134194602983716176803295335004797507779605904022320466356316871846837267549556952883948010000519516012978510704183873173500004649444773516378285313949781267994278878748658974973415938234714732906386942508017941344368031629800082146383286970667863376889502828040633585772947215043383790109366418733604558657260351438465179294986722385009138354608471135848522780852620665113188897437738334493854612997704460339977026781523520216955772002145981368016202751697072525001603414409886290358268737591360140625409883078823553369048671942447442406024560569912206352792793334379298605690555672694579251369687068481968181344132597285746711575726709770686435346346450989521605460658125855085333736770887880738639797220465806072167007571240063556729885879823097253334796557156136276917568346206718805068985198075639534547318097911369480032156480553826494846896564196126274242895536245195482873949445709455949957747417947438044201898663608600298583141270988960122937037241342310802647482714597114262156956037748493377599679012754652241283679587959297271043536214397614319686925393071023418688470683162309462395041498605076415534041383250307449771024030698559051899908085383310399004299364351711478941987598562942587002834204572106242847518884914124204331752129769849993074881231622187856944248760622239114864848396658771862395887776424117525303388566769588239731932389810567121448935692645224891091726219514642221814386784523417151809503942854786603927736140601153569829364354473904073559257221007377228384686628563106969808668311834125078246282145669422227142739909010018749883851428110227021922775885845262529592256967521490221539886686281622736374684785248073053849435219802932735413547967146690394292071088222956551219338402286662686985337615559955494227627217169029842188203709738169063071679537644176137255189993733792925798096984827311813128097746852559297231501980390900357353860984784967239519693426669727366430461489706975200314966460151406770999474375642539735355461775019179847723299544319189521074661472299147602902302579791496192399143123675248117596234200672379111946203281841519356795097805597157448351048811144889214974724848641961851457659996383692718087621347645420963343428463093313683404885464682346778881561212773363243632014727324221996088623625135834292095768375143927444555885523846233800363841340428377398007523222452532457933691861138203340445228928807966915747578987664515987125459911801031120894382919712538300825105368681790787791455849828902608461521407043137962232497225980965881955843522277214989307089748392878376220695456022651570318368194135499448024707575616757665623196364589640057534893730365033308525465225267295270002291358828293182017963877275831554698425232008085781197744865670678800166088311612300171125628940300377585297705633010864418001834927925889516379923267207725285933425978568681186377455611970021451912741542651302389586721284336408186029134999203901864810847379746753582218058997600262569187458102023575152718406385625722634812414524521893455093689199121683180123555028763939977781297327785290908756866843900890849532268476942590529999639691319594166131955598102214222342101169180748999990985856554950961134575815857395992137957505941377398267079739550146140543437047431130094749522742007933093684867980255075150891369300840956442664202947125533750686833175595465932087385651199030151113099122459490435665521783210900001520826442798411724540378262780254978168115204398945254572179479161821793021454447072838555086876442438361037442848662062075594650396061657775180637472479944351894978188899524886424378827923694827755183508888035450230462286654017722037921099368223860177973828150181338151341984719934502244461475616321440803383320232184078126875774697604271901845011365528231887125781809395008387965458106310472820104424206833908199508892720895542350736386171377024156606158022982637570806818419758969274535486410974971941458477353620949007169701734858675987291780945933319576500691866518670197306697945250908884594131214838753030512360541415621433552832371513430240013750424716300271367282712907698595027972599160034043224390299262236720917258029574574765071647210545799681196983794074851005606765003920701047882292148588802014993890422388494954507046682072351329313439165002650670151532389362516828046092711646671334235500826957700292681685704620112241754182953887646641850562579747072391688510782442844825754641390003918178436436365923269644010406736765362269453917700103020548267680944097538250835325054513987807594233557432905491760080424957638112275638772757855312126746809739857546503813773558082500404443282803522019003121170625694510792154319131724370097652582036422742578227628955970173065224445092360412189984183574662133955997343975714363250208580313920884708864468251424511179941848705387833130694593302744387433981801889600832044154775398796698918715681759509035758063112808240165295161130324247728798424538508210459253353225199629020318960497008561674404373778073249860672924164643811859661277246968362086323734080507678280050366648419523787893078136613112508440226147434517330601003532680379122294940504896796821664404202174749782390662684068546277828347241896504072614555399718743913488197483067625107740699189274167462743306276768059087848281493822734794229475356008451446174423011329988667928450999469346254591812809348968044138479173966753504942818924784095833046000898777695027954131980277042652483164130767890895294243055572021812135993049819941912378369258056785346200321159543522869254387027038563194116497924374433070082830119057054549963201982526268065491861320005439938937794665499904964274764904243445784209532978022463629488158247422624989353269246463144496878595059883504951264714277949153603102036970981968029635464169199148558367624822551433499250711886025258633894715652089333262360350168593585563296283779144626630232745225216769717453257469933523424427067440554696577557648799874849370340796236410927827877947570461969322520077810947487116484455147191007149733783143081919862361510142878132509312238782834130182042564211171706689490018216810102805783050739801457514614437145586680565239527928025292925998801886094507925426446495124503015104684399425182558920579855291715444120970784405964342250480982078443643111032993742529604575225280124990531648617851568747074903198417673096781249436596493303411709582596720185494279999207434009471097042156047125755126822071505597614131026566501282195597278966469143875152978104323802793309080071269989360609273722556201245592221991870018150634262389526766304715518508930503851172533529301961109940264102253552439309318676012322833624428448690328043328062906457882420062122851776753031585730832522880488646739722861783400006319940172607442106745022955995573891665601941488619584044744192970402639710198134083134543626999868110958315100665795524241173375143832452733377144825373475402408412032817659355428410341872054071623358955441917465492032226613397818272628591507846186032223688075552971701686229181285805310881221776915429388498842982193187821979617515273206904968206031536798883082990544724402162177685153801210199923094639314165983881445787651517894461015421483902856012477575388768724197817883193907857232908345637853823626260535040292456022175792127736381511699538657657248829053130453110619635241928873707978143914944383145298992741881117871526706351685362842674340867398919897330730721903522211200683422497559813437595599874042653047734692978978833046337965953040442595588274235644353540326089137599205181834401925943624807431770704036958118781450091842715403564231188405166870360474030646673275731307902918973343511002840855556033184268956718901319328792269931539683926833808951310318458710288033492297404868782226860337693361186095487728707259480759127616531998255810264222869018117290679440652684277660193627306623829702062013670979012464582715787790347387748502761098562922744439440929167803807344048770357565915704476593613500728101099151580105160162830715677003920140715278753139938176365409470465162926382288693815432447750309526359937394276185729744359789899779669883262361082406323425718772083411406681252352871966276831087151140362644260924155206489151312001666396238494523586891490475988128812157696097765849179929451135028142658421608609003170950502435875475277027313713256885938712864274378064823102598776848973513713106553998968146895142489000577635510967892549374751507718102848267325922817123629096245850484613227448739920680217604540952875786426099706909185800275066557665633260269252308176100480128357348987222745552618337815299010198117442617708467467284359404321467282142575604470951784062392569604842919390670719699186990790342531468963590135166203186797923011251078958457572356036211280186823938874972687235079739419214988573195357637643685176690631767302543977458286385544532545448182376584428773187613824421194603936968149585506091321237235161396406730626553581240858456229983695894673267630118017211093470899262763921044532416801001642007423899227198966048819496070239756613226971929694448054329300716106681869160089949342994723531134414536740428146532439865522947560817215972964400076716540966373526617261224853529238081710053228447959896712497147219104731728379177072316508876152631563697458333752475512625490290178965932059933902787996653221669316365877455037389234411190484945655541495366321284872576922151790218837493906575270398396062117070362748496166885893289346660900936426448738522072784247725133629334816860779453038702876533486193706068459009952008352022959563122323237478550795490558235527521472988961939470945160657983031926513300275247906803533205667431473651515171227250142471161596239613213350794974308914385975114878661577007625107322883743416009208437573848494723358051341679376241492724322548515101237820253212346571832896526786068700128083034879179665057351882583103352124835255182997200011695265302391943863958937726578710827512560427729715844703764672264308573155894051609313700618523008258206289761196804299636536758756498085171429955122887199789020810454299092314646769593454952237059338458268649332420638623190384148138397601787735914592118976375457348679426103246187869423000229249582139097356654160681989097689499109161086244045728362000954395184586516833195826674181453251979543332522305563499772162919785848331834591285520705398097571248720958332747062028149355420303941473278881942935509182103119787937577786782815137565114010385314152738959051519787003799999923204401931828190507032162566450669835700738224550161890603704407061813787742518567846960876785150580546781230659991276667118974948877297929258513948766587984725987305870104732668488927655281421158223950245247197635901631379924299995509381937099480354436007817127215157502496163521663118788698013290954361069106937114373400172727991335587993370711735900145270220198661133874936496405498243849220781324122681062694366927820867232773078457431215706629846346538168490358824776624959688122946979771778092986507156582469418950505826719242260923704798420715937242279564842978845796665421308001855410068219919595071132676756824852984461872178698909102437021378771196033110584293575250963208157609398814515289463488215699332250447368828710670795882657869282919788783231421342288431785125536408931393476934208025963517946105665052552179638827405912762391664940115802852671130669889749133853148096331741760726472591554399459374204091850610914282964419683161653702280613951231738759391754118420226772446182579416097138793852563817482486960251517975029467309097128267531339706362354519565529173005278495574574187245556311903688206927566229274769260327734474138804456685068004102957413536327345774291535119543061673165070288080959919354752173655154698925473406277568132463947708508756147258031116462303594279782808023111557126326872764040984439537013111862232139967767820921253895182910318103018776198621556476777383208948633497341881214047671020492821719841495065144945326006126082146795526720634031606456948685930010315609114984853219300040973389007031426166989508450630708497021870982437612928144065008040750090299781777842252547035166373239187669388905994132775924239329531399770685713031854566613652187088591196490502546268234195755112342636662733497775552316970627025645985982018839116290193565478203170623908174153077895636680207863945046782868148772205681129729631198355672273044193441333298806584031658843622649321958294705922808875541242649295716038227877938238147662058631851988455444546997666819584843244884446745933685380641997269671410185408368848405696280064635031933094996767664926260507472259548519322511347889766740927899394924053486821000148719302676067213108428977722436468652363365873608604254142840958419209034388851060107554684561628574825581581064062248011276717956746090475811558182940871165104997349406647459254213671104896458868401627649247087251543734366460578069170858246929172934659658150293649907151914560266014052612625236301055430994088072905960464231430075130161105290318823834529643387401501852025343085372225540797479206978609633688486046212289722329595602118336153792022650276575446959789903844857878410390097287810527344337190242380465279211271906621322985893421178642024739702740619336646925483408884602131186060339658747207647189404691325526565781412629791917024660527524010757478092988244863347478164993712930964142165640970702053240925821069984046962412771472276505664227604866469266797895873474349209475269260279046282728849491461916273952759907286981939841702104482024437071584747779497103747645396718975262328481123123590095996387579777460708505001657954227803068351786220027013902298619047805744207039055429474016685135884379885268244454539143587836030371912102657127561660812376240246654116762407174464141854001069324092446947194866035181219538501024087498126501938924859906198222033832555766558195208163266354769425481681982424078278951167377696036307515904583607061325288868165590471937464739339552445591855540683500967659602113350242408269147570011631763574357811387947035575070013382985745837198044682333597739970909783690016682777802405987220203228209273111103838730452019152481012877538389467054653645726438107151111952478287905275048183084983901556931930688956740938763728452589808364221561249024332756527773336506740592389068621510722752253849902054297443839335312451038556483521890822391648664475714106531490551503317094148858722656920941602990549853154752559945169289557463124137197991524986765924356911518811014060207409071778933822775015073265079006461333187081927452164097854986655323375183982933248087236569020683258652996048969858576521951938879089113859229473252869207512656559189177659247558142138110284360812926646120066284219327286826605111303647752353275544467230159944770230238688577748211635837366246086319339286193147143211077738053139539766653329464700579208036811737815327928598566672684651840297165065866415773979596814522517644452142982633268716364877954173058047058301659531390719161286305822744773134268852562792342591777090466877391061655946274970739867087214165175730206874281067745979318411820490590163180997532757214748898966843919280731164452737810479721427776820460971794490376426394261859371730761505091712156442995952708497300491519382707942489824556466482751562962945225791470079899087079681865080373776949716527424587050682423604715210649922970636127449439015893848588419367020865112449891951644337011256829096854135676215353493813653227048102886568607508687410480561131083449817592631204515484156620995535088554055508950513246041492949258624353738611958954618991933538250177782106654073528625298717281652753471671124706365646709017078773009165690159165485115989951110254118669882786316417050732937280947791467257391619152847613829924795503752017686585680795529518440445117437351235445657479768180738419347217434036646946112170002696668751144356409591979987173738349393928500008584477439939394940704717715958241929924188465715202646893666880081073255905036093053792591300210645958178762843617664826031494178117116898514214002573917119073337678140536662607422447729667465162606796825287144031870538027892443712286079486874603443636560422746160116635188333964042424519828202780861762960595565819800222528098713031831610990033960186519522988966974512939257807807782516968722875502368814956866050011545318304033152053231840805085548288731290993092050863964156074532166317564231976615942773281849042281579118244744602704620128569020301614828392701254272701342580432344652672472993410369152446956871554357246801074117629096619258864587988513789325264538233553713024417790664508272786582118618150712445543306865500227972915139472159524100557020381319508648703651280277644445560134086307359308807636342927835010804801836288145243737251922187328114199660229237006087576630976482801480503328978335779040233711463685132104058361573727064386292764811447570742417530811658128358050388377859555916015402459901795674798881735994482322696583498928938569235854988254913633328985979071399088597227269766925676370511408313419233971033443982310733764644782983585676233462950351807165164233097435913548977761378564705523545703385588898169363603668667901092114364477518204454973020242148977403430256674733813015257055873716131193042374928022641785900500218532945017644935961785833302831960170287245251955392660977358818170395193428468115667168194330061153744863904222250193994224595726780867879848926176535249223285677673456680969382226429747806483623449489643703459854783865939722310441667853395662816426631101004881564612115860401205012965431449605290336081985180586831102755757533561462253602088830326342931648371190922306172981938376294894918042914196893986084519437069309573542051010137363687007097801174181620850019262201082435011970478811483604673418903718052011554391229200361152756795724012901446081186227274448654030949835013556207026601836803483860923003594464203471946351350265962385375351220096195592794420939132781778893108347318881600710367587504078166941915975564447277488486178021888357321021272029667563497897510924440539656634965151515053962535060114273708088982811810445163023286891242125412132409653497628223291212989376804989332597944062156330833951364009289576092950173065300498605049413559223731408216616973866408239093124938090303736832759730844200374961437395820550779278895975040703654955466423115204963149288435182186473639527951693135825745982849519537331160427402800205167603213156845944212936236610822100270162440972291598728524870839392912220182966507331542081851332071955375295205115862345103995249044943236398941008552181588402476976743303095650489581454648700560028382900141117775311713883166890220233074958984826954688397062038182391180423750256006365511248468811244092905250122659536501060174763237864069872217502296734463405736351808421145472344762027102337616974014541429327002126605078832552781704463405846982904016887227410316417616380952590724240727286214127939483546052404302155732318048929643584515734121279422343487425678096640163158935544423816012842880394396600807707515512571360123341089967866632416185707361396148958335077518227463892116246070973954298253618367298054561483341565688429315815126675294270979486383444160392870299527409394981134951536739896486799551076350946146482935875060388005404265677150025829182077466565771646892315614365416443157294385973330927253194117411707718568385176134971046942443930273654723154317132665590226668395777194666382669898392549385911795900713316600182001422461393769247998120582262400949683254790035848582608840877272384188272150968068974540240199827325708226489692901094411380798256866523927830070951455379521843610527486752830598218616374852511549960070441591009907578039933159550139312235738390174476794816515560896698215588167917647995466064174782107467425026340068330349656400139020064489116843358420714528925842182049596702943198091944821643878274542030234763332096882763114345092789243998680149271133825001971985399663326993793162549890108644217084842205010223999854800757897455580753214330226810478648066238268166683916056368127315656093398770104997224578239567744737239734460957830969893693788473317477930152505074968711302064514292637138391610653387866377061756762868694514724349210274730881957612721280902664279979088278916933095652535368190818528570740819301186300564185743029910874204987914992105392967969656791502343179471426824926998949415633310101015047971435436419682815310675102261766348890308335397153444400103813512886773354023954433685973585435008174821102830847870393725242556639589392118728261557188993513694416687178406771756553577766257057805687662154901180158157247961922171583215068730197677411310027805813812169835958042832118510025570015247668601295642726820167997275482325830462233733536244341558283135307125849334700944515012575020513032080451152029729980452700831671509285027755034181361145218766949598836689600805380527453153391956830654060281734926818506368306383854241221545095220466023820508224564202465711833307433216273914877971851644042523667704760167527921690318832756469695828013707045743853976301887112947679360846704976293343860476720280931539625106881784487072911143818444466728591845025135750642202098628323417079428968616203438054016881109953977640559866844677724705504141894071999917417977709963900558384797523846950588185880904184536081273737572487078982011795701445545636682440012244330336516396170022436877378683652513707284305627216199379705843256736705491902797971852828506443696942008822655977330084162489937308020422397605227979964299289580563957754985699276031292014552855014425368731471046326444991430282621699652313273352731263574538253347330049739642950598853096457399480119528815638037972480965655700312793628895594820907323573319852396182647161864817234329270115526774435957973003792821788395205216159150309600541912043205572177482762062836891662363755074385526070146794987585863094403768091484644872955660068111077493850278194404093180443728369874286131165807978227771916207055785416868579615349981049092601306504192646000741583008196965277136583910762033407778770415426601991709886356191902330577706941362946383513953356346297179339385058305742717445165442158579204301420304013562924872624953491945341020186070025058990338083579971409798358278928976026101622848019792559557247624265195964057651818004481408117353534246786812613430701997779544363387911333645050252320760440486205270638318939986187347065825503486324440323199982098099556126643198324009266196842019493377642462365344337192287253804558785286669716034972162417070804360946014400756767676674549975135831382064044515495337754303440330141157397562804028025493570328539218030413371021097999168513033753022742964175888427221301943527507631092517070316164661862203135228036610157899671668901697405477952347218823252639360847193162121055240484449949256786641177951345240386353555658562227085936415915595746174266426282534622214617351403426646685582024417104358404137190229619971527902261354016900819336873035349577575037854360457396685193569442281275038650903519143741962946089856274757871350091176080040621857985211937358882856918169244219953149396818986999430400687638371457733799718373752534590916034662363483197033008214696467757765060021835798534084874167911860963819958158900847986574842362595193266066832252329042866187913708680797497488096298079231918633728663704805146922758059439129720809445800459179844531587965433815613482525533422165794193214763040955465940248762999813617520216560419196759279134618119870859997481072661283780161569557471306147686804499872273824528224619045770319919024298108533858965827535765534983933497739365678348747702173396735807862713626559265907098195057550806088680784774041387284113865036009458377506569571042883141924206533451486040439002825437372064395095222609050709732486765663723465237770230063962926510964039239410213171236007898102465194683627627132447015317202847113976112085221854675735314814454214965872166969747190344770460749346249577757898503266743860707464654343001102215392433005091011709892598102073444295154568790036647673860218469143328352521243490870305624896249006767563535672963645980094667904461698128223916411728911567745979234129253643493777253437144298044881196234860167655246466851324330972896634458368122400480517536200349807790538667637672210923446121145317821527103129988810266264621164991916492471148132319613147745341436430522238790180943618605364275326911639988600690878468489445227408076073490479834378028930060701264314426325213602371659280330778542335256226394025397439737761946794324490474101491646790184965854327562833275255330634700373678950264449280492416067150740740324453434453524866585744325349991519075209687018018525192944423671838445913639314426692278813831779921871048104755575788094958154915776989658882313746951244036388350083555456097311971074415726033639711873998004148380264339314420254065761709082512624392729005306331557017844640344888039997903578257167779469682259218978502480164032086539115219537099382844501098966086380179715565603398336418971870687868500826032103674799562340982098015510605441965450497648325857553099608411554332774794733466113462800635574038733937811765060296810501640440754814956744776048314603356537161485656662870648840347518727642401859496010680959723303206576821465551659437709041866662594592085245708219022803099014560709895282076430405968152549292931757252486169182662809123528142894108127001923355378428059724664307785170062670105738483675926650477037877587299388682299460868354615346929155704551997809727215940845613409500250788859386558774518341104480301349629730270218169528017717008812914887763440290621231382661289053082062978734623282372845585937961804600202667773934629936052170671409879739845421824419941398512590129208477633435451339041493706744909643205671057057975999333140215573654281936540929937969624139569832279243926420724187209801530256772586617178445902650184867912877378878679558637249988924460069178397213885373289429852425225370222620096152001551483903105019126897378481688272395413270560673258674243776732703110849995747381238285367863646322007901217383568933262321395511304169589128509860822099095859385637079573517512385934618714327057618660094657409900150090334796645661612086434583106851670778602582856797192896980102557645616776658594417148725518308146176224615511904470969389520748057707500942585086259613748941643600576038616620032420629542419964878453350523556602519436915309139443947971923587854317404367334711488294627310206025358858813715340618890722497469824461593009256874939770644785577680130580798447055735495099302342915988955298810412751431938302909974237885793062065405801259133121394819304494125246747787497768155027929922017615000617215583625346402245260774739866005207046188493151538343730307092417524107691521054359722756954847302330190181122941965136693150304292761475307636982559678344329601129997164161565022921244650646987346127634880110413603139329047658376718383040527604121966111053126441684678717763679323610009504382640049936014052799137387089245174556684412430686139729949153048542257589923596846211270962703022326135796161421070886111885456596922712676467706601338256854967350326088886390245202755951872106975433311040611156707149240773967279122345118447305088417208050614845425862152895229988158949888069250536348772953067783136936182683410309286592583782298214303237810396535059153035863856771689259312286843663560229007000497141863310380418853819205155262658668280107430026233863820258930187381556771809421255634368191223043248858335075910833064639984941623420503605679379883188701169544541130120400519989932872744228366848375294319349815736831367483530555183754198849836241567943293288239040648091878743133700749970356576687242487979963921967238751227254153852246052844599227311517668653978529833657602523300060693652504896086256756665945586943653332689165079058546403911006971906117833566279998255966009239908487294161899564518035884484665682440367488841151078506654873803878377740687835994133721777478917090263615031856742353872058038499230627673393061436149052112987998992368710557252844683535482084929361612681922194063213988823067624989435486633763361448226838103865036546035675404587693553118560484330729313883567443941254860561847374465092395987508952323848034203105284597153050266228467272243419069496360998271402341593556562434731833915834282330712173434538918755235690086270707194749480307835915613817721518111054633209014768028436614458443472161293340995644375013707881889160469569935606456133429464503651079941974279446400125591582224047506836045063954071726807440988770749103958552086990160681047876007263645530774905697373432601129852539319822058632693603316348163564721094264127340546990411985954878684915069889216962801554842499399089312122827267977621649273886174227414475705888584771418076267447915179484835444258204420255693175940595946653372934729888749619362961865196054810728937455685473722837463760808380971948118962475104978780273635862897280948852034050553505623845807552656288085794206776834897229779776747391028567780849594314012551073120866446990033708724577022666346787256882123635337421708320461202675404254343515563682562340357331048562139963185433129993149607863540446235885774467411471557087018753740312530441146282269453044197863262702127830345864813013646551779935105156885538021615434282657647985963611532070053950431463314969839388155787072764839814612018507221308176645994633263427158045421094169310258763649568629982330438846093660844685583804710100173058938441930992066030209401195701907877154982364249974123753165998046937926946124938974531707656709517606407576746240366988585400698155794714101786150140046999907183028860838376988056350638259233141936075402584014521358581398900312744921887454220532784199964806768983507552724429818858553963169097541412407412040970116870918238306547591827749889716341461819424133875488711361020144846759943716061750111061844000975587921541913090768019948596586582971641460719960156555762500182220800066598312775906920525070640348234854002649672440179096947671977185409456699222991098321131074003380405749979746381713281465523962179747674249034335632025029265299548524682852141366976389666563192993041590612847228436899852711791791349443138073802985213994212048729476202628098946988277840203780859183574035864147179496509128034537483985141844576075670512484631913070866169470689259203914574165244663948094431721143685558063958816413519279194988256051744101560277042102428713969534044329787571442785581672702595207343462282160270944100591638184610295216524716731333774675039835034914819074217193517861657547924421293107674818001575567514253924606089973161678909958862704961428339885302893969143216571561651652895894876159374706581699827386139516662408657646021057228259359374740311092848038076976330421663147441918036426488507793675058583039264294207954008044720024021130591422335469190692000314692220517190007541066862875019715749370353011624754502132748799745984470508461975431988798777208578122764834204192005704480534357271438268511834540000631412595466995617080489323857600792802356032231812247402346194143269283016843603803712757749960467690420275102814731610921134695140523562726420768869173190563614129697431904450049940635917519756672194953114495257674897161924066594097787874470396182329672764447950935877708996429377157842720824934301139140084440019561094967457663191429099392683002077292961783164290447978065608870540945097805401165189214124194902044263041829165648854548628195974272154102315001473681641001412172504385127841001194028927102210663033513637732047196148256711773929287543447191930277838798688837852718039604669986733353186275755067560984941319959684976230506215361310762806091254112029393603560246711744543392792384150737459919727796540734750368846896857917920362600452334138000450860591773908616694440907738765217091827868515216206013960949389884635483421724869355303807505753531653334467707563438712317998590258851471546882849749234684866465113328746456101274174435949903337158059294161909672397626098635368336405973518549868919320394365780789565690847338544202590405627211391640838665945026000811545939373651135974175463852400808605973640818817334783593577839034645171610568081462099378145444642260230750348733408572268315922346753386912183927648539249855130386990787488461316202927003041275659055143168478840035267199224157538327571214024927899304214168278174656005822003964006151916311447977061058153937939818627156520148974632002343842384488969634687909400546743641517034961841957032424069447817737780385491979080037275889996080443821739268791690338544387437096525261584594335600216321527612933163089860768754212405569908522245301182236160656963649513114312804566068277631738093249785284949678350173768638310831102544624346124937459254846428953262774169338873139077763379292029598326188605646514824424435124729889750115001151876056095964236823453656930396529907890592012237236389940805990547607344036449583732196771962720311605304530354756110221988183601778053887210277109338813081625457813878014137141363106954132878685236256486530070284552144293073084018249313676648914156935857542472543372204679919805600493806837473625323795900558308174967760897176722516791848493307727112004434731048426338160299484620219280161809295581475086291090351156334821591092819622708914517941020262511487450786754875050331758192147819685564500965953937414273267951114781672081719199381527525440434485311151413545858263967790028192936547686167122143081031735901500335513447104167977756959833397286818842978311520134145516429582540822545212522778441948468748755331475847131789596336040617982707143084678169250146255634642018954541775537858532062020092147275021432204094835619327784114715128488465317573595161547002704528800750604545980781414444888561722183075687210399431147366300494758816836889970297243018124256605350462671258878653321733698886114991404556243719241581111830643614253541879049329850870694365109197009974476810205753052425851631910481468117847127944615864385577315030856393719958712285742445969835268607427113619627438660534052090271664855885019483261930127944845796954994046906097183091116569183904216265728503622471429676919749894394335037247229143880046496156455955214032673946249427910304191255225697985436408773668107253317625696146418326609936209041759554312562209513879111404160303830281172397881707592553172422859495675598273958926431463231689830369575458201909563723462979527184482773578836571743296114338565629541015707383716269182105538012839187503943983046919045988269430864367413311813783496613040010617447175031846341556954374291489861477876622661262709667734301945180133544475207120082534905481056227900281411424585841131104750841093764091572065001719868879449433118970923942649245541715984047880526322842886837268360388405863830646388844708507714571892734207773106134126156891357548827511048361855069819411453195951895958429801476402687480377569601944261411066993176353550612176776904789556536126125682602095562245327770356441450231935177059946433613637468039272766429939333828414167557722669063252837605059578853363244272565848683475856947560544582045027847960072931516801902826036225204258383317175180952402608820798558052637311069801432749025074117243153266044228835614685696225576404107358563911056178328432194107874160055952999960598240284849240397429078542405920580657893792121761599230329952408349758223859296770847825106903313236713801186102475244796784100782158089427736510356319146354352919027025822521706269355813456393562310212290900835528537534176500018192219806531387917178328601419512297010742493551820689421930927887184615417921282853505669099318232030052022071789944087714225662169898630949192066414561177629401613978051647236308108347339530852099566804633822161136227308697450868981270285234524830440116566999912751234240607087045105883824167431442273474995442229069678773740371880101257443723039978586982197508574521391621352818464190843413565900402979073865161551432799581726083684097582754136607810151979469245285794895252825360083473436299731640362418218220545336371099148073963167801621928596057282184806569172375636014448246619171508123531269700712787235360452476195666621017915008921451211723851791636570895940960513079427811406481063782244499938849510213009322543340915838338799080232899332324483819656066116308559559008278422384282245082552124388711052060584100815110154447173735582010279076859323191777850519168058290952631194438099210196503779220921263401559820344263375657733495829169212235921292307264026682439891478742317848672990522524765603511520149839581410063394316926217760381149628075654414918020235046128895069156146235847887971319179102603145312984622917503098698523345388708178637439776723770645852243589784938263154485739747714202220217908853582987887137779481018488943703437627030019204305215556400731650296530240097674091860782618858312135982964168525964029346285979886379779542381010132883814163066301537730087581772971335469238184692015955678141725757468823202538595395079278445070367562345671318649560043023774807822720157597046927212975391030775642056180904386864761101946351936547600802525753034842374388224855617047887609410137353957922174062706642605961111820865164747496949463566159031015702959478810140632454587710341798619793014563243181643363112705034138863746091038991839888906273425970248983215233175556042644159890488683665919460581769793233882430109049037788143474065823743345131789070662585163851512494313540927978335252658995425879768842444027444040774418204085398304347254209319858354669468745635865507628745815268047445314593008268399032365743002502465889271099910425032571276135873473601400565765270581442525581602812108523355968691479112858171562639328216807144876673680073543626258044030699180902306386102307380730916220260140315107393561484395736288690130465889034492571102169244116937646133061846619433331473960816351338810871075253731027653458301761601906484511498909015471176451377154834864773398253689557710809063979546934698046637347246732588025982957258540708451290491797648049066268084967803291562151249470478797701166376533428157204323109968800086238470650115864842817301321208648469076968039642760440758993541050067832123504850158817811464115541386304864247416742830913758760619320845093695850119102571194036766229016103630855183415518142296371816912740111249795626698327005907500163311612271552511423102548998661064886286205248167125133341451399919740742553750086297332122146783753327298355114758598600714631419034234027400692951496396181159480724583435680906071817619973128951366075433876201018607028174607561953654682434476806026396417521931831726337004276364415397885037681746183588408341384907761905994364527954290367520610664451304527664665439055129619030898653497101300437621831215082130950471596265865824226245660327496440122641836450926580446591192477962168511663920926842150067085114645118428822051088165332348194376485225426548246461638168359672886158710306521286187420815642635497152262823334590001052892627387041198009708985266184331700627999951720042794338481071045242261766826227507979191674869264401884968701614612526115310153656037171986236074059503360955045764747305767191997847126100988325006044219713153773953901908177425704088322795440504464520394819698694465368902024666316160721923585352440062641135647425263888425997469332878162731076298385773321129870774210254979384416167665564983795504645526948879775123904699167277919021018304455050384659922161710262404658144183380290420618266389635876658259882590628726761233719440960046379605158872510209639803036394107984504538808483909782505943248755712326144635946991134486801569119040966858830393905702995782786642267294290113918408597481066742321779107972483456028434835178583866667840334644040253680281346735126219690024217280447049733317806249564928169353834071758400286100597505365867760587331992922370573848411256850755508118375475124330979753336454775340286462134578902203022228309189597643404758181834877876473793224645877443799665205236949415116901093221377648029944531762384686484403634035536570266553985403597215071949154751802520656109491085259985259544466151121358974389059870614554638041580282939600733324942159243994385923665646493038197655325679813309290026387000761000217159950392902462849271075253764143642363474196776915643999056924467840078106174147270499054863883683876005690068186169040211179954696713100556222618262918099400880940170599843552363398865062912999450976822722250632984206637397388144943085137068322007642234843334607387899963724875247851196757275553809497513611845552164706552749189809468291152103430259337786097151046971167029655780173829091387859630691605945184883622693318841573820151404566716253624501005504729148213383932712522118751602312250324643399517841822389261035706601084049101758466824346555909682663953053528781059110988584757410693278846506212153174971435777117832004916971460973586308585387803998074986448891671409821530599811292736654967670695376819232328005754934626788473042788507819593680816129962282973156879517387159935265621597764807519679832107872525948346565693455217484232878194392552511051061782554808571641300515127899582361079396360639208900394923390874968837203494905268707366438506715705240807782182975502791454567908555862712972430706389184663887443431875339409317951699878922111867709080854920710283040265407098611483981843894928660024600971147666089308192590907979576278981870848232937112469851361888185820028818043358021007696705421343231968339544057022844844016771925632877772417672908471395921740056313092330797193719935206459066646101944615340015413153511853435410418709161951754477515458934472751613702442964033348995320098969168496736585624568735313241855977900108689464906389801806798958803499121288020645576300980401322877609573438852142616179781313497498790742994832409456266111428487704341029666535304233754537848190887047902143465910714853733313785723003729512152038674002625586358694665405064455241658113156683469683974774507541582388696386977805544092685210334070648025630510217232767809203530312349810211759064479979164922687258823743452147202665836248057223352090071968708933002198459728735009436756255287928030330068579627021404428298168047189427645669342967353820801609766422149331145918225017778927287417635880839981682251156784069823724103972557387815133180674500494149548687944664155856626883372523367205858237813724205616161992092426847998542894244787147921344319436519292578061127052231340148412074853221380628604671729933492130938517545425176986349065023643420711918559766887410421371444053749973279483032914255132416390260922869228015755664813338181492314841416310059034478620593767776713969664107710873671923180468187964840237573454763174684337820732381723098780414700291391688573997513959332492695096862644930188731906186732293976667010409687212055278186896629904503458710693467732802817722748028475892706294023215334133208609108483933437215001215119162334463137859661911282084051406040263806387034850812914387345656851915362978675616161738435173803743199950515953238923645852429304948030073999491401542438738648411719683492848097255793723875032033712725033116188529059879173482794860353208364809220889660971576330184409008472984013822761997198205843693233210343182612099525296617809030233482670583489318363589215909063185972521403700153392686140698565141502322897650585141151761302138998121986813073620267463489971310813978724606257662712725076446221155829966465514180635052960123354106448341976522873157092601545031502049684792932966874266535167984347472745805970789844519122516555669216808861038856349356403424313677377877116582696124184699966966042669776072867901823476810331898057480319205231021488255581135096689434009656666644976207523022594650737069905942604385669917622361071319244076453860392549143469740609261161602226897546237366167509483415029409677553789498618939772193411541180219093512753642482187684219026881009270027691401000303359191283451720305950727784079666084730944768425916628640846667168935472794825625866070654546717589797909255655591262124250255190674647557267390470170988201580881295715032191230857774448243217229991679618555830394509954440658490747829318327717096845589075870835655972390127130508270419331605710781012937348037426275428305797482960559553307323496111993247838604419629028622624816628732966872255061950669247897150663835509597919998794165524083129803111844491307229059085566646226139694456538650141603023168670938736918336702601506534109839407799371820580603897029924389512960382198260583852489632359031883653040031306927766989348326775985919824771435797886138191440595958765819176729864896112913178512330279977210205068431673695172072001662404642104751108077395184343461933999811960646379532659476844166606825800271785764674574076605468469485108369176214469490646535371548066274691512365607626845420507965951863734419923449740175791801476368066241941854218834436178967822435561406915718591904839933920516392736042632954200001009966085662668782209485726402787870334021278926501139611492211822871612703046946731687403605033257903954398759538104078017406645049935096358346402846168546320170326829637117281081179870634208140368957073925332074491215733215155875233217504964367391712772090292957927845051476731058944123993535019937409468736414279015443747023302898711494614911855420126293685982220116166240514871154420045827668920854058740466869918338361243851592324989828529394729978609852076542589163616680617697544652730032206322323916253445301454639390112278029404766860625482994172248562297995439891475045150697442041047558206015967691951950504579127909635077969272460342698461421710484325577665345592176061569366417874261151955794677163890131120808418652360567672630094691171982291471817881474681065409530726796360825828419796718739791595489322729582064187407922610326765748497617008607380800813849339789391133855536683941060586601164860991724086371394445084362940578272935145896768132965617701051929850058350570913066501808425390127194554053711132710846371573075495604642434240566377308184941111089800242523512345263953241999012570943639501606918032997707057757610428559724430811737946185803748499992064171842053374153278932262211613087443392097634619912649517879707148668818078747984179134291341799857979524521488986080058896703240775273401935440545136916866485463162328166569736620389100010188231975266797185799503370147622800691797907050703344508071594399521109896808423685299767806529226804743264393494519252606236750100932526034930266108420995338538902092645275942113478219738135150834327687344485859899641009870106102209920137724934799127559156142240224382202859109080585438452046052015844923349333165126759601147871274465667054889235602787116438302678359255755062708797332291095924760919857602018488995976410810792712569513804641110188378586609387963562858033570614394779935249582105397807807750986729673936926718351089174725705898270138924882760630104630150824089195642108431970942410195236551072488868194942176033940133097355106072686088843830500392665927194398922016215839189627469042749827916980940155389993966886950055462230487628975344779998933448019134263436266714314535784687248068583702659307975413077283147046488339631206065235620567921929866672709538545381647498754066472868406717181436934109647376194971459409286026301459309601519390614186583503241065260735160858574459387645100372074001621678320738840016016962363632321928623181326810095184178644835008076990851636924751884248324614228202239917562206088882336508738639940751636104688462104110079318629492819283041255291732308372178753429074692633083189862687591249429871727631720880002310921523587415377074383881172760583214568279158849923141001198297889033255952891394198111179867250818136683877521190145191148761986169496120992665396962720828444055592139218502854573999698531215497271859535002666040918286783221370924999818095169104588888604224290409035994215689310916434739270750890352117868285884891636814202290907364831923063948034985783260868392249190009312524466292716456010528102848754060074900143855365691417111804251827017245997871990111837704656110962208369555497603805748717189495107040095375361094313410737653438353077774695772827986449661037461549544690175698171070615606581365174093878565239204071055987916829783345192344868690535972205536282812855523579967429267544052571498986770985887038660382313658326279839440995032731309442031988053354932481177593110533280461529847678294842048123167127050619224855724972915743317307757358865124490898495061466162666222188398548866759362076747029627331190769905924175146981553736748087427648444823628432571892818068976448570357865711349519371852078562304365141871631106603957868325611060467149589558208746533420531450926604568150126984172123905483395335191071616779566443055857537528531320511001868422145399420248474511034348141323854914155662050073156551881330068552411548513783992978375631784613312703141889569572576615129337134879099422404823181805537045732307400741019758971762037539131212979052885717957846671512283085658815376437934744763852105072116438736190312924749211689858845967159591797334526746255298539408425773107021110087546915901516083496520117237174052986442061836352477407708086312144580770407151860952298604645702303109505048273258515278310308149203918469293675648069266762694346134197088027169737365128539449234489468460462909723549433541590152696289779989628073535374604820587870118957664841768471311335562625300511835933616514606958362508216161893836085313989329925688572482049319967576303328082538552101304205087422281848110719676993818794719820334042299758417421824759799550873361374670534294054927471398233086847481066680501213648322347820420956549371169117402917000907299120117485305238110876044453613247373024116025294622127314398503800634471253376637770989521766228937026876288960349717900907653572610657816119617325817909211156969463529162531474815345278380710375273945822392480229029855751183653820685647944520540631304039206450012589678317697480956154573732797128591930946518979531061402337687836205190616318369330674541731012078916193968323940872468506800607142964859068890316897182799616217291207000501832070772822410988876130985258532695664752591472287200491926888782729907926605465993937731289999178595398046474317394585932343496530404012457335455851068201915255245421136931101109340745588312353286455723910820398734807565809758627688963472385049406978863652080110285277513198180318017512090214563810935780739772119108131856401473935839105522169786089841962772850088502271612458477072465132752897794029084021409648522670779094202850537628906877390606357923947788489797740050739790929708914452747508567751344180177798579029546277631828799525720433433543533905874453107206607216172129309274291213747525620874585099815075092250131997008711759383936051724330711012841441621078625739465702035301313636909955096731800414145565097609858173511122444915627289457749745751139837596045866293884460720126753271350352197463826801063146022159500003335414940070714795248921791225093594380004304506531508136161338789033503398818345841071006068445938567288260368542154171112445352755313217499781277345252724604542766577894381749531548841667833268745509325858774894276865341703805072980948769981245026734942246600890739388815026579962109378618073460260717611666002037749844314318672399825553783790063002425264309861018710637497808996781604267022748841649542550273922100791548006798686784487799521859282891633617070029839622438443058926836569782160340701801878636174606796918053186824442161684217957483895853004706189144107397600456055276581411824411428100744251866069016209116179412026829482681929183549681755364721622611095256077027178015755446924414066686788741049199653244403919230792727534058902371167109958738682642516235319492698199809173411323590535047329973565442954101453384452633511187526118277486783564451381263433486251419298461047040648669770950085700720005740736660469059995169958103717673891379519683950528820222914932950930936775201100696445529895102552428926994681717019490567649880690911390214028071371860883163408880439977139696337165479264860935597925951206267465666346409215273426655080378363163541006786279135677612894395792632946166358528240978019268016133625883865697631305369097184660355564437677185810837160259497872321079925099371951707387071289079459304595145710363772962587724925182265672718243222952666758227747826312785151251046797703832614060577696269168635042319516291645325737325923597558100626691956279485755925193505373332053666340473286234069395852196298995164677962603922207319775530331818217908878613618635839318508194739143422846331976837073890509444027550171593709960325168558265334125769730995051881361102632392099033463026163038882862413302578654608644531214565818027766106507228194793609412410895334456207053658586789238411514147935322622409082117052088449711700934657803713079537093112166879325243359490723199539143844448194761363914884810123474537414969447539727161958468778505956512351273839581731616444509673757434287710157075700793809929417455814720762394092831451629594422936774063914790364556501748988906726604252662821924507757467370174298695213598568076597534297685925293926110808884810731878927993713554726558162772772911503481589552771307635404873316846243831514852132463117116132561450254600807776621136317142098955911899079287344259295665512163940468041739696980514816922730559723733884196374346677923590998942996198529401999518457152229077486214272353722322723137741579419943719834715157710582816537521911986239821690490035607462506209620895061257761525916950815407021492142139336493296818321126088492152023668092223960223065372065118154410166249464625500628982170768932776267903201028216044706765643413153829294522430257990327114570807622679990229746676145557147033254338024415233839232063866271653288858103685943754595887927542085392103373090921111773099362407001773392929225142729725140817693384890891636193436871167738352530329922006702470195118978801332417385217594887688089592861206242460658867232258138650792416627269193372462735968439375866865139530799311156922086066377511815085979485230888405030936615571348226147145780365246991965038320571313332627210863857235304727051169714315887539131581560955261895915123896203766743847151113671594958531000530770750606323912414247875605030078837604445169723638928289684665245760848317390098863650423659021479286388812380248075615099457553056626766864950002200990531276695840187892526698985429655632801269406177612490738267407994442737230315166791249890919799293711165784822532172248650806440006155520814211034733795000166970181570861239788199091340172526479160192325593132148733665459917445733564556520044816721487075427141314587831793503108465134951758466068291658933986376443114401470075927758920098177119162730690658072831551794355761179440288899983518716486791028398908797338533140507625171018604793547911335405891076817517194043163221218184838702184307409666630402462199725043216715430168465406019275107939197456182395250487355629890328475365588178306376618508185323619532927133868896104901991472689078062990221053346193116090547125376006902427520908434675021083448213474025368041013784801217334133346350002345836249384521590469216412523676636586769527656480471723548381089959301519109720273758383526751875376093331695685942768850488125834098243868725396456145878096136686246659167407514182238297531792457504499375176698099959325562063769504479690468216378997162483673007122383920480969269906884487001323159235574440919997922182907710819570749172554167905879599731976518447605227764887069232734006271557578241504973403039323069152914085964083578199216242207191874200481712576012712547159347495191500292344982572260486964900636856529415578991425510703206256492803555461189250597766214103757656893258950362535360725931497378615725026597927976322546916651550030908063872081144540908041987407009624598463305214942745900341558542214763216710012217787885860646271828967630116093134500748507626701289068606071311578133257981432451163330841911415800514677609552342520893090946231324609920354777632760726875826883933554679345218351098569410139633071465175087590429462118709829514261938729232894344942704595034308316435851228059390301651743588413599697412004565335323648565086522241401046631740157727718262538040115458354522021402435217971646004135106693464901884854379615468152814822902020042283778664405974571822501683893650503604613282425359374904580546115279461537200947258065577674943669159239137171291040834053660439669962352755371236347542191335149807859182964616749087424092135938844137536803986823298224824144070516702118864320840963418475664325196780021908848975238596125635592611019453942517507614715001430807889442633839126465760315585721246198330797603788014163085846108631907720551552146797545128726840060257379479333687994626295638862501546167825194137419090671607410069244030567455259855047639129878448028818893596112508192100805092699950707698329814820890559446969673768216348250679264719186038572020052317207019944260847686083142976737689354683019052828489814160163579262951130993975706499379651024732176436165957090509386859264885220826372019582091376113475382983954427365269917224967868053401001080258763925119561654749479147339606858831859774552773929855353619864555306749204413549258364685913031499450030868213046256994732891953027069995824199510508404431624338945932182019743804612679295339748453908204966664573148930012713196837226399431424034821818553940617670738699503489297356233605221140368386105402365904173981239862339129014834449677009992844069194072608400338495116551365108486983231495828485708383477778240139885919684067257189830529660378143124791799680979476569992299160018140961910430447458937065848763722567844809618367798935723098172874584144792285673352006626672780448422645262142263441596953767532329584202752141998369190021716224165952340087042706112033227593741277899631636827569841996280274211385078315259580501361071021432164996172902917211424978734814782862427736031206301244564743243381824666060489980463038244787667575782795398074953634882642687819718690875247681967637742098450239663824352202053824952150723217427290733252181340404535345579797176535955165852870543457690720734719038033943022171670899575846307727272720717289119988770764676371713831309073756580252261982517629603832642757503011011181492021495131980833704017806265738555093107399329670280767906058879570145008077698950738041579605922661894261723328071294170413640761030536863619427046001362562464232837898262011667529906420311560328294606209859012901837385699752767540256296214886340876999808732837018599367032654396391927149426700781293459785472961992631043530779506645367629746395381880725317819519203165857355008967122059409834946635120620979971751776400200106808125111235368943321128802130601743191246738127447717076509358949718231166840749591627979439071074617477740709796954808041738811386381612321929924629931871650736889330879399066520976366971857916339192230175873249775663351488838408186299126508175258999895467090979977777164009558867622267248300438120828096122426496961372073456003668743698623132331646537495070286248957010950890270821092047323441046552727379353252119107342758695914979433231204581040345550194490500242630768875663140165301697080608985334522112983232297941840859728955168917713742295881089872481733427641998861921751505267216430793824201918412092382846123170879918358733049505867293408656927002375780261817153982128481349132027819304223832925489171866101815838215951081250429787425450960721181500147323326960125113621577531794083397021163533514894693091351401554458352169274703216890756027580844733458457149225913434261485731260092665300021888712287844697856236185149287986906721604976579547395752788427759407110202301764957076976518420093718195852712803514116163803111019872655557783022119698804796913505223714603389614097046109460636931802605527684115734480939720624951308086822961805550953904389558208479626181250316986122062151714786029439639222447738365657688886701651512747008931548556498232818676056164050625519242334925583957027146711037782502687976150315831561234073055525943210686672122470866453982997543398149914985898179532944547835463007865382242937592762038970751079859204818727855635985308621291389529135017997645555243770966395107588424210060538653965501408274787159728645641681081973835480104928313028565826404894547701474378430189283426790285658909739223294310225816629945550196749147716707338968454510925400199068396567713549730242132902185841431442540508498076268112385314892137523685490586809864565405761398398224282984739612807511312299788726193410467685796564236693384061647826539428755865575460775458599229100520877031533766238426705137756286604140892382501513816263455228137375831336077569552018564704882430571349843810468238981723131920944991150781022758592339316024148990270689228224964878653817840033219658442396709774226692983750402548568904664723978961665576870770371169548438302405354073363334246427446517027371794693181423055557459150462693432757825987491527476894281238181169959615912545483252881816604292876824020295169982467550263637307799266358544456267745854476285892690683508411773652647637948177072879446132269013870253207893848481546430399180112691626226377425123408228076124459961319700001952576673527912449106476984336206773812090443193692315841317589362709358099039307757954010817648693001621248187902806467789184108676473462535870572391846355274491145766740637069191112061479564550490673092030044747218687980850584369605392082058417497300299527655454428315575668608972467060841146126613961759019656786271219912230166006426997849499594861743834520703870132033785113873052019107456650198553071553905451535994951796126775746538483026123901839058338740502738650200293117438637318556899676825025658031740157343406672079259085904447843231800098471539360674092808934464390548599069481343479651045098645776902625715773336117797387842797007550371146816193591004841373846945774083093957092938338361894816997182276290809008062922869460389233172140214995896656984173706430144007345944330794835252022774285829452531998448046814753312535276644889793568182754284838205463955435675838599208731112020107642545780527195039953699642611949777666274394777985794306696467049946249138958144543806354074109142917667055608538790238256504345299246827618629467160560849749031241472749259999766221499057666133495021645851688891647371234918891341045063057166353683137870730682700677377842523460911964873635926499670975343097117600829872137641451016059581316052005213956768834207755517747733238020460916731914915809833157969740844821414870213186039211451028783738133722120211254765387232780931629467442088132005883939154076979448596448914715300653683120346302526599490864215631600073096093196631014786452982978886777872271809114358358635394869688606738043045550952562324529560146129930461002173875221058366318965122849098165814479084176958171752382696538506652028635883921253854003824327876587371099905234998656546262955365578712819228497166077150996359303708808784807770471174753768181326179795177006204568120031575921819517107822039313333900535976510491047214709474639360059728806220688766461732281989399651227842101441391635859923265309674168700260828045146559081014463493088448977819730597176562792255593261538465244704022469533495762571146928256531981531673844173053453250465813093325828230627475326524120788128709234119432573018678236764362905585665700893799778630181826267883993508758242227678813094117243540183579616485994237838011023662908877268371329637651941347646797714547093773858914236623723009766950347509370031355807203544269383982299801315215759124872359276857404477325491693870881223569752458414611846569092914461201616714617536064706670446189240165752522623434400202762172288787608216949701231637878555824610796284885868355364798787648757150218025583851381347998675030573770315348801492346889157119732461312336835711179308909186397223450091596525988483341087693008692058462065304529964821476946392022567635610082924147523149333375599482720804742859355290421501103156432169208497715279179770816126658997223247232630747643766272235046195976741302115416420475161705457257786949144084748781950701912575346914826647458752527399996859679896619780877413908022631647711599486906531635686796846855232637057943600950438936566716033777247760157116560234812803649400316813460837287576609100825470040676782847413839806372908084619845778475351740447145691136023641646761192859901199568922783149244024211730658218263186630080792143631314310020153091233655053602158825608058924122565810616568888469748385615761135366128453328530886663604271474463111521362042997161484856226679390192384829614089869473108778145119581791795731901510159148627901812457954438860800318632692732830157126139482228595767842013682856266159413447358768394698385613246279746959429724457284344294738474725731922444661085270993308392094735208239963768839215457288296904284588175346685155751958545550127856906041321159412969216556629339615311330435978629090808730402877259765197417089576572684208545299706823305034678006124793283347313603942268108210682766220912312650179669216297193670036541264399209993349635004880679827642249128490295414074687622396110568321257875060629415583983537110051119837586266444143250374223791166449987110472127258390012828954132139963675250964436985488328101246831688404002759722611872141764964468711835025667865412887015505855901513686640013356378166903777669793900127584156410101152637251752916794972948372445722491053551614027527500549020132132597623139499423744643361368759723270132253817948132553507247646028484656887155816054960032671747654119476602766721894857612956961459537571203664181454743969430301902566009037172112636240070069416314105004544118478951659276941588251415169259906621364075983645989127637113367583951293970713029430056461561049024312545744765818763250257484735566063172109077189527397345468141729287340647816124835807913180951782275027515784105350471778740196455177203337142027252377860716056573604670437229095117822322066869765474790708173353710407844905740575975294962215446038687841524320745123323874827916132672405582459709620109320431839270819940928306272967730182390498366004784223418177016013517468816512576209058922009560713951645895447608759021031480896385186251659208102785465492425913727382562903707689555690793812366394816685729571481296589377479967646707414062621353259970243323317187968295596127199014079082711849595707074780493620998451212053711480391339880766346632986110106151431924510549423114147883500378608984449776552517348033870270168868308783372762737328810086855979742617713784426818600335155067659142369463622024291473253185941692081264639471900807789825803028838937557273793277807557553858022096472668308453514645668459242597743107115893199730033590140648674879752840053722088633487319169150534336663753212556754885897723438665611834573500431346522113629323069434184215856628737991153900380853825831626708807626547719159086041453581079036885245044355596453042325671905097536624871064752710986950567314535885856411159263951177970220085438202060598704293507861970490545360760999338925008331312429399841193506341753021766087584024977894891058467899911630536293275719070274696123106045148247683725778048221146603293506850736865353560846047517335494463385677372303228074425939333931929823042018022860739040984283346311070690496161098755362309384722498768978174581981951900105341805283196341109481042666130338192335251033866932249589930189699268283099279176356762635542738319147510134701528837415725632598370402492378770557642157496597812758714330336817187103342263846186574162647711953676345938076650401363806573881479187221457062038163363685811477236880972412736176974274820665433245932160681594390771513851532710690235779792936848210650184360548278851029378889467000946932225977078201473431462791906114188889042725755537862190749505178866044741907176601119648103765911163595040454434159271580941623659346347941674870274564021742572301264355427818986086463061910519565628328938839860713464184836991189376950799908568807892511931200143474949304462803745936236548746020218276480800197602214418467048365810494137954097165333811377675793777345775167427306564284272361350944636842030659120625941109480460725810316760637098372009300863547654770465466882841239772361304969521313265365209684744411366574130741021785232822388320064697641528816272462502952200732909939263923862669898425997672675036374931481732605663371236097408808488444789036866451111503640293241951081859477712742725227715297686541183070911580457291350090488682346226997624888691890159500496760118849541642956128585355948066957738561172298964927842980389108386178291017802964120987279070610861924848250331702526812584576744860455926699963104587566159199888876168684370039036836370319924030280910298774669244100090220471630565813301731882195489581199606574557658900413231971202290379266900463574182586567039955839844875215488579270976565629925096110982388850660198056182130158790234852025833885602777066198726996095633025785357255166580460063470539988533478271531180727515132360213715935975907438298634728897929247732046046240409889467075117297222603128197052963581944997621414877822555530846379648677755512253783784138942346370205354723855692299672753359974683792596577740690627798022622716436284783354199245861407544924210746865689437771659227923437829588349774190652900630663800539765160966395329308266178983676240879728217162064652542167954730161408167344003945807743100032160045073414562094434483985090626123611822592181652784418227267650073574104450375553962914156329956645850927115879996816776176551234738773632422057078010485943058335110325244208488698763578386380453447332539700931707510524421693077825924063283042032112431597026411425787611764959953214192686777932514985115024897047569550835495441344315056850115119511452794370782757387099306255114355234864383495745582594948508424087373034560053528156865963948126481351476172314504982762475370823566264109740773624846014871473500868952385105445048750756818992500044433132892745723101148700669452580167103747053811951825871925302543172776838769496638469916915396760112374867942306608153183653398871726099022007697058463728967485017089246003769403493368851631581743691569259670667492626935816066282716383303351247973334641682170773764099711553890252633506505454035809435174029090602610668372404527459149413878879321128404956905183365129450338159569162520675207067383303591937616034909579293839788884020555231342530002362443626312375265085369255216417377549784990893884534710051211528483239173189533591033424005390523500400833677204852924816830859919097678609553234637253764793410822730300646253865488211083193292617685165787820375882809116296935431914800026854998600959867783496793708121512015746940231819092200340929442188846945617391115004959177757016213588374965946397301615358662426078067670617553425584317329766962657563291420326974081301791292118095149777542523030277543385099001204010534818198869093447946947650442347692169220083944858311929939951126252859425881983438774688662886640144133335082609155395903364044096503766239013326315432396737295918471218568711231920573776517175116437931367587389189158445721080964129049764801859522407460135885908137770134449354785510190303822233960368113010013657686022299905975843168512566925967758029202239451360660933500617889878626602656861879429484772491167874329563141566539256554883956513801395199550073931925924909038572271516333107124423709403630680645634560450143015188676210910198016203539547922563812065930556827955636063003564722538817034459814347318143542903771445834625380949174286079937371273107034112136914986848727635706719941960889031846824236388680720867271822037425092415193602830635228123506301248788433421311852613992162943197009812001168425453591915960447347848825843044700836560033338537813646808201349288933509002379362288432049499648796708224752855879443699768494313834414176676682159940423911769617785937266075535719858640326835556077431463498290822532863895108502556664588355074821898723300748826155495898103537607615768083297351711090444127409461992026870140729961431077995786085696736469490360515564538542532284032145140041192507947107849722759892383013226820945629732663497431947752137029867395066097210774037293771273058732590440927688849836618821843876816168008382248212916555116602940774815809550201851101223722479734939282504874565384149951943163037018054886819342438213002312846781157542709165901821414432261412377807469276546068239629819980173509059121781997714840353542490918463594120327593999133163836495893141646056886899507841832626508646752219785286668767409047385417238303238470748448407972503864459997023298248368496011601812207054969631697661349485835234733630514304950645013587551265406273455020501813269661716443375966088134923488727294088024318416244768588909079135590274292524151139788526074446175865855590201582865611571125886771452920497024838322586865814632813018875254453274355205564404521376015904227413373502645071044873274619318762375810304083060749473828153655144637068763794269171054142883283480470326138903882266257001052609490995583225261889489389091430723304291895513770912451408619985340477685250713773921724831393248881592589010365956815404125519528680608623827831746080766041324574141993819351607410810403628310090450122863772630884100242669180779069770377960258607469996802517701522646409233133695265976565473368483520775632605131062669137964478983453106547409230470622047878118358315802648472075569205644305122180273459335359877469537507498862369173952433799887601492938655425623964858243469204525198085423933394795606030548351579211671450011343132832307231801517538751634755536102452801605108551138434669624318211943721940387403313129179630290010454874397552765198769356902966527056527929628265247574097278027540189823380900626498333865147429578148255341116082470760998539745592651770121188716530393324979911635437265192169622436130167919225211797092173738583852649544153883419996158026143968687827780928330651137246095005504929257831492840199016137505266552032394214274030617782690907393837630864028603795455877366856322126911321873680115942309050267913368719649677015609588828734014112679726207671119825460087892396004830296073870907173208428603490540832306653356157805345239232877463003723068256408960593734276640349396486862514553953505160070453905445823782688795845179529263903821085840297788885780354850192341436175224079898089886960002422434063042885941961243820245699540988958777112885596108552578667330318968460308670514223706508240085493300725238841281847328426959983892490015904572857370658491730096462023015455824123131685374425496654847105662787261825851015467946372048231631234527857053099360497287853901477198713035956214076305188990974252111225089508836097960120527270044767024898334840535022212692616336750177177717975739129010235011593349959793435832548590237521985845327405889476739166455620542325749327123312380836480173093933399196205050739347018383854443746214371219292162414589159160940423234840807767401716309934638510447919460811055828660546664755534380545723576727727461573859091728865842931123074104068451684571299721975237728387019806354012168501482370355836932157720250201579363207978957963133544854008118005169835766097822921115284526975236216451980683186148018036002822319226284136305487611471385241872353318848814766360500384538127952809299416136055409276059842809721137202223072391581974633706519943514238354025761082617558947104413980837918041858562104596334509558309929566210365487910807878660880773524879361674882690907028906295330275302970793868986536386380424717252337047262300805902205204702995242369362127480968137792688872084532650178604771126800900660695396610084096043368667042386114689788518211241107242612411744474021436250935168104059338261150620821528464324860376613024241262856163183745734220052638749138850876549901366042580604282557012093683378787902407153135086489648737203980647432707631171093195650420132586644230328743759090511345346597338946468154076473046926755425709094928386268155134285911925804606105200810476217421705170616180798660451370953636665615933351126180308888514184276563027598195951525010644906841096015272844617738213324828578136588281240866745500238407371879334073021097687727785976652977251638568907040922055637621621037668450028968035535408204678912087909031876301377542866560110495002402519569087409670022821287981456478857839726620559158077670875754062899046596128200777179237875580214144289699272856637932912166332107898860444489677098865903090976775205844986817382777400842058963700333346129937256584857928118908248416295723426038135936594519775165853938416457994864118325725167218628514173789242261566889334951023195604172311619037456097879349565395195840482672537955880701746867342355172885977360282264686850973254882042006596370367801145298312289718061147040856962837861443837186139565844108089322234169432282002776536175550154652869456165796063987969285044751034035220950795292692514151247513071739878767037895846877699661644991632962060177776622153800834160053272839030352564770087958765833972387250276103148849520674472820742527976416845904460784553955559771477990627700723490862319198116120289828862164301391892733717910847821295633116964434889439518287016240522624636922233777879848082558483524875715112912913363953962406610365219228050180438558869768665408989678833026319177907850368394099102254100892533380742305783295100103966313332004604759244075958968496133608873438498403482125670659075461075708404247820842216518932929363266025398612725115118941242696255598522956691314857399276999580371328940665740342811501376278766015269584578856814357507851777898674925109600983653423043309161781848433483180959719343493932038711200481659591186305599178773195303734103124788151957766570896740745906454526502942331848777955931836037146072898831258203016536122962658774782774702562863473653629624993888303144645524553117343003417261649749004338350859556301083232200629103185811072887223550088074926079327767406208762066031306307243130434500867442243046056813831785006411695494244871491142976145301298806877977905991775277643186291219998928955999351668848612492569159600456253736897452977553109906197050105294698563309029738024536783341572757596583540111969009654829456318911516194954304755759994756445226991324762581532824618872181983318450023815919570134828323634554361469128141072229446446755011556934137818760919617447432917066518077858530357284052357790008150318063065435167979456311654270215361033368530414167092956448522439395913855710407752342862356280551656487071617150284769516292252891052990865447001891530441365121801240265713377307950802566080872061168816596815102875990090972880030068027104657799336397613570460286901539293887436015832188382424036261221381588373422482498197497285115801291775638177746294609473404704917461065547902560955235307110133916087330458010005087121064345517892395497826446819127319165268388865799708993974160352055826542432477843107896789431920634716416210003685368166811653995460027259647132438168244791977269851011346690457330492240076106026875610020656058835351295093480618944835886402345973141845222762116990101679541996395600960687084318408033869429518673400498001165791827530252793901661691161640360931819101950035953151904350803007990296105449628612364739363450206273813625582882971948480265347312511074246854815031510518742755148224504023555694178070656939641196615552761270758863880222204133412192151542838974630189820698706259000305292511170564552122577526406781332792722031758089463567633888184148631513751281829995205438495904945836604443322522461487899154997520445090372584415684051469237159255610025361464378867439587192078043595463477829251497900752231010034773493666136694351246294479558887421369930025161260465614518854686119939332246506163380037149722723969815581090665473575642801983025904941491820273116016880784703828258326704375587556599000794528371735509499298029263264875394272872377869872357821726569128593057244208394373887875479159768901387435230468016648092793265440630009855241571913931139238334898608057511383979874362102764245065946877808859812964894899486315151177036500479226123796251815150903896666950237719985796638377219173904353394223136799947706738830065505276792143038534936610955254011943238005052070747375295327978348171650657859677607695060821945348511472340326357732115730691363473312449285974558533152156840157094003564494841860375310872904080050232489687645221717951368223591651923821081423730195022661595640296087119342681737930917947210677315183107012589065647536611816725257747284636500160429839953971112505240711805815429543114430232853838299985553161323129253011649407432300437788054597244244905585273501853463161847567103253229007010986551942397073545625904370898962144791402299157357574341729887049506237180844202537979566047971585005803518451522470698090843520303283023258672771185364070248479064396628227011402637739485600183603925778277317404512339758125028321685220765609041933251996813803925276451649296088221788735509355217828511447847550121227442133561066517375112356263784625589998102380052480194320364854272313303298011550006662366734199131660703375876814557427983616605897718083678785119594036875189019821150291773249002088466514231094890605242295491133173129459885967359626266690721681729348178107522237895274555105822421968261673871888466454647348546410440795779105741154182423246358759286911279965623017912054315352778120877552438510644924596392170181520732096917188254546513107802867921174288707289061428075444738640395510965516897070507073327118629040780992850770178292613952294198057409022293352901604510272499856555024767324307632229597227012280102191563105592333551074537060058901544933181455195536188875188742667080321052560849964498821823295750174881746524073330375520391265264710053333555986745699562191212568398280125781495930667689120944688989724484943630821144318269313634090698583224143509746113927967067757058128889283205188078714226763669886473880390872505652657080313266926669053928633930322637142564686381146158689265653128658213214895678159235155967866916597175750034353458519214424735110549579967078685618856076735871400548916399912307538193371063890817516412734724204326244171308036023584316976411868840503919244546412234213539811307500684228322465365363788001806740279819073744303719375120951414305185519696141568561468255791052690438608389692629505144404202871377025698851320159771713980187366356714413476713431216381935520356276956185070613487354783839026657290169967600943086098057199994144211857560490098612350367080742966323730655509466217189252515096024469446780292876909377585214748695837931921966651246129031987693287531735368699562126447905476304590430815237918912378409766695785964218427332763997050277486558157816805856036598697870642897526077794475652656010641163160431913544744633969067068078707392295014962922677803248013430351537330431221609803943111632227823563134834349285199988753498275153282349317382679468961005256024473906024318483070834765645177281334238495623101977353477062884566575230582501179611268862790982541788212769186076213010597986675485230428326169258081082688947799481972847583552286095657242139885591105726492952637775538687115142453580430207450876181174276512706164802464163877859812643705937367681366275594820819595300598411888301149721401739889616088801933368987909596772576120300196073518470707249711232311550337940958095523214073381010841068775740542475126397019866495567558630850240580306770041683871989626332094572905257435788100747478555662420655367397315478807417475728070962415390295543369496907078848465145568409251525067941624525409067891180845071112611757216030904387235497816199002395143915978218910463652004029574200510991864513471021592666330979059406096932800257862580551213017925920038810640780480538827862452423358077708715823103295553154097707825850023381075485922863867788318998972599144340387596603546623281105450218645810091338807072657988770926249717256392358981541680687742844321211962197823489734687921248429699716534376080163160278139613435256544996202638395375481540957015862040529123134858581801593907580997958067856129722636931350223509355963455018935591702790983883335743564057197264173427472999868408432094076622453764958956755622290409305716112616973888723005991767777098514685496924409991658577711206000910102210646306702027906882656589065107085240265626407592382381506266829699239220995453875803108099105971333655833134172319222024852842633283117072117344088123536519852127683683296671568207057197278369275899246079134418069648452626971674546367954557051046867329369069130924051374991010415429597063270183785691024185523925721277455947152821931438186387169656087213300729208413084382231945440083225655525140401758669061287700853635027585861588811907578473535074507906960303383973319913823278956697202474196551765366268776240558511324371204611861982522261215481396637781862365502937650938618767378772334056933022939699177989536250955381618576234936115673047838699424459047236751630363636857041294161578553662085681286333937204736513641251616421358522022045420809250053524591900483031671852054451753688980619963081582179324629321004179179797646528112533584451405988707709758300485817645287629680761461432246917188154052230674255811004754881029825665061934446653490372651737342431567445995773640934213907952419546271420317067858145648613717456324690396443523091937169356906682292835115541383630990710392467748731043724076984529408684288459946016115603323824928671946120593319503314046003998926224224576128126667086084050731248220518422541967893321825795370267887226211260565834483641155125153033403396381096512593002635076521995880715408578512951483123801887982999738876289857889376867589506663994962338552338696302251216619390342770625251158266435565708847427705588207892729464282150135929898936368354200503846658738717053293664682810924732201647187459706454999162934734147335596559606727111165216671979144432441161796699102778170246856201669940923671036991887740595877106659460019261808077920950231189068019605838587820969304149210201665219308366333524381645075889252693602611671830095844557245660552956388052022175840716580170289648100264476736712011603311226289374307351644923769046156404061629943497555316197907262716256207790946600385335513208173803301078724615534396042133850991489421201138480706140923690719244993884545828433460279316066911818974815146033154771676072197443159983231056088218448142643727908952501206859505124533983219465485080519984294216811068088146248398110379466732265228314181685593477662346556091551529023627335792662599770742381009621534558772499665445960253641782356284838551874430609318029811358824671732031919158389363240969114446944374017943535142662795019131045089551801190348248659764609904347600862175570731486728821976826723194988409411660093126068402098971835409898034569436576097742815224136170046818753421812112363131163139589262365995091570191523570679397988919410982996560427897320579882573246859443974464093495883948456030140683060821547251057147114616120286753298813283814360280211028825931635458226207416160913596606531766606928530772001572101364072189025855590423416564348026982992961153513881912309510067036871009085228193805037984217112747273446914346712996135619827554684492929191849598711131108118675372900054535387368863455932915176832367561617109811424202352802022657686559169462980008118408690041851017204284209663275181511151325334247051355222086798351143881267738371750326090399142975849446519716999466919207995701569819449275653421691912787131737544262493631591573448647052212121311521686130129516151281416854815331020051750180379646105872225609685266964598097223155987276819983314068382794089686292238970658212376441358090707432381531661795491016643677593644031585774608811753991543064542135783403695963515476560872471316620429526445721233526212601074086440748893758129810318546423631865940579223809520522219953988608761639850837822723907480552213398114031804016660877451433245119948060637739666766492982804419413480707747954014228735792315390171968486270137959921000824557477972528887665163379993417126612770903075045998527203871401169197944537016421120555197678187010392988256952852913212394838000529914286723249993506947936924345070097616110891521634471158525792335096295155826041802760099953438330812057449065391102320489219494238830846097967512154369829393230233562561856081532593571162513433167895006032339601569733890769221329073267604357557629327423355443182111890415044123742174012490474031215625108990052282584481448100831313577790922961424486021183271275637928479547592813498049190567211717719326757994278598324158663105223452053911094528434762735389818935952012754801572822387912340031264157641470294282595412058239355118717388929458913522038426415255227138110425552417038612350226424964864359735396084241384200638923930797696578275668858663255961250328626176841545892465417903045296158041251648618977641256515499710477716518027239919539327528238410414565561843215789170733355666595409186867909562313124713541551316667038183654975743275618487745611812553707037393767820919963659885858177309092186390579815042129122843158154768488796584669433335936710470559905948748917315729561150519316830158781691935792910572355047872022570912619908344106573709955409666751162948425178112720786186633147719998465403975706581386880045268170289270143121352665594780195198932955012154056616491714498620300130867301693201187935270485584120387600389143489169512534468570607756158797197964361369891964811089444272771297556780080667761111550679291643207755301502515593451717350832800790341266771423727777954493273755772469669016646916713013585966263991234989477327002069543031620970034763823308969517516704805357728776387337545974169223766101307658888313333635294344897332306137360324090831176755511946254425348581930657840529433888429514659343739817110366595772879031543922916030670721943446360013830096081202832588822128160504649909426524768557055943420926026495123101119221573371212064050465089571807844843281716425335464280283789572279594350084552231835967848594710417690321712692808406915881214138270854516668291838240490028259853318378434965266355285087626025910549894205531744119956057253624598349987817890459348557494002275166891538238194898484943601244959086185856510890543064036751203255002579973317025789772878671308552888628474101298717597711679487220900506891270938702539020969583015199559778282502656567712418348389739915192324662567776026088991209670506078634562556466324625782484605742380863749962898478517593339896336423270048158060089589220136936811641776135789412117145890418122709532457319053323974785935439561538410005090661141314956942988218566590075329662122700930528737102383966423282492123111483063765534338644275735591728463842945068525939867774494187228774754362249846750141944007537753672466842530317613679105493593880526400999185404931671399057603665745616089519488224836109763570831079532866585590670316909982424635649070326041028331553551866573826301688600907130582023700720203804684205102667461318485399210156461687005768713121022228567975607616408114047779987892892060240501153715815923343769456124393164267161688080526683196890007091820198346056893835154585038503071829690930234191483333399978453047700769876469428499489025810501748900351114853386898654890989807478729298940936037202711235601564928334575619037843002970335724653344384325746789406224754838697360928952676375784743575329481967759119145004411617780307067915894034449513757813770581184787181636597495084476668933844089233938698389273278786407816443108487469381754788831359342778779816217491867922271519305330443910193471590985139102476319050976157098784296709801151338040958058593551486605527621117872113613687425882599508878460751555395417438867723154779081185809338156995209360770633734766376652324445459915882746731932551954376708427584605717072569459807656709198288676028055175003922710905208568825055857099909303269226583073827921135075214457494074544180693178971355409722097018847895221274216695206766557001707798005975212543527911851687802273948736682447930506406951418573854429983087522446885127165542151319061296377969587671760206095938614887684189242629306369044661678648130260016326216897725336208441496704318340266041607778516780182461683521318278759943312399442135593364184039027852033257138947812362585862014323753891767756056188627113543576502404015320368556810633071017172246014237717915116056256158982858889643269942562976265019273861869380829220081558893261629964291560707967220798524779571538828123417864804702601443857663786351502465551617977874810595732903094273523727069345270516841970491809932171755334108722297215843596240484243815505930931374875310404170146809970886237606679299054332291780597083691143420294244317532647716775179333691979176848915474225644542543774297314266699646223774148984954412285576765117203176127720612776581536395836275046481980052350098238331523086100471664579732561545626457440314399153863694253644622979860611016889702836414367190069173874767934812364860496828504517352714692022846920291063250024302247537579724260408257707037199299138959105016493573607962762129088843763181789860515768828228562518597879760458761203919420089671613676138034897024231101998871307077759549750657748556051537248943187463030567547838057181787810754545936118487314709913276304684004648242125849105905748054924388170386767338911951032112518025102955457765883337737541282571176476325511171762277247432269413490359441226137939145067510741000656045741166051759662485741979429675476296213952259291359524469907659859320326102560142195547991554637045563333635405013410612117369337150463195819191197027343607099921644107659529182532451396317775260687434845203011296833325311483703790739327856589107250541392144830143705409385600946443358155566196799692202550347560902039470216795458486228163785322531876785204860609989286709984528373105860185629350704153807174881875031850772198739951566244035662590802492258765644241044347151148745819536341750753252507104951716280022341478567585430090197257148781365899309961511126448457931509043548585764891869790713343255353866471897687794971192327251384340287689605783276266300059386038013727384042264989258871812581747098653716021552565307387767976668071314978237764435901317785950063646062258932239223348432100226594812502364203986990049376455737671184279409161692081827189675886950049645819440688351185105906118272187035189035021496890020808313072454066533021411343245555393967441535413324754175811681537631843061672061059700609080982452623450009534441988016001878810134336265730281163005967191387712825791946167643316030096425052452671302887053923895158596661504358939483183889521098638473503275580810676930040305547022162459972584398160943417373081647671611890597770625478463096841530650510822612296662578151237148400848582438446968000302829261620384990185632304437817748422882462504651219145476731695499773605775519344958345019707631833458657074594278403079662054844957977889102647974570862492810042166939220997642713609861795620962401207641769034614495953954919189713515635037856506459593241643414086690169289459237155595707615967650507590080055400332815497243406919347654092882672185088445116995074619478026048245777769250589149767779204976923398857761061343563049942232825292789757871654607548365106519066525711768680904175169774268018394125721240637362614724272918102091173814962298978559144124443894537147247355315214465278009998567759495957411918722763637621121877597476034828960798970055939621976323978631596021414951517301793770385122408845029965752898126725363080030809586767867113754217189317493163016315988965571106361406716812600088528552039523142352272223367059238685125186541219404513478564353629495585279959733004454900221157589768639538150013336671166187351365572360094251732736576967387984831776721204738551524421413514781277389242761786084708502841978482425301425643208097294587810361024717375807118434390787317171751953746184448196444327326396372202810870365316102374254688495465485872441091784453740157675707737803923663655818702831372846461388517783727528655744427486486437822205117644915357503872620822776479182206986185691773595367724245826837544534387434098055333782603704041253662180374942042533381184256815919777230341029880590988765001923119033114129196898447768299335318828597418386880580945377399967741038416883137175332889801302853979912320278863745598317284781538061139387842774711900915075944009183174296876097377633439103790334792763755351976646894804545001274195092635882630677784037936482469697880798908660437474127593081351503849975762725644971276148829594313199178510884626868161022995876448281985932044032219170592101617728775179477751911595247888410946282228468179522418729298484202774118886379582883322429414716570902943655009587024182879093544573170922588608703339322979583779102343982537495193455538000574738113208827286991388220730182851369414528866079044022953634539184446525214531236220776732817913637440617968543854278559740993383602603958854712751343002388062392711237046977700617532427027750019044298882742349562813792279101367833830175388126779222007966074635643694917736747190151779388430112421958982805513668926425321628536644846039482561867776923564414309265165821054816958297542525139943924657461996290821387127656007118062988127508665630019547961078879621064671246341430969583228702318841490217857044561492979922369441107347073856040435177744575375448474800727383558203041837011550701343975609036161309267440471304137335868504970840780120995209824809907852689440489433869567821437287409534063565874459421514593875666879613894617604325684712096510695835990947676023541769308781206158293380071520564645750205491697718516424469928729971807951053917499393264954848515559344351113813054360294434998850267111896114102221351079654551535539291660548251292406915092048974066039201897241114812602019355371163248818423904058041977128967422565959003450369331342183436005879269023847866482928524527133512760481930812555562885657997477457640013603027085108969297101519478963402857050403034892442639691824091029237275470081683832523810460134068674334441616908724043722794328478767544739412510173575293472772395855226177814287723543509361444758555284036819313155092015125232150118616018524163242162138085883583237921213260045859084301609972972108799967964327380918064182151479450833323737378930991693501673049465273285152117896047504973319279295913386910284935576336733268423148389717159215651236763926237882207963485070488680984122691996817136232227642689574311043645173448323619434578768529484894932958867043412058934499658480929119594297149837102426248410848063466347959459918254650498860284026075743746529640613242485851390431454473730620112833402745621592654201157796681757933758856777028454094789429530629400263033134712553970593458934912035330543417756950768086572941281714277054898693744738807251098593597655172745904419306037107260497664222929851645242203382930383020821446202600567065806338817146290788477647956761183494089296401887905096028863833709353471013920343020528329886031737313279900771056531467684568320060198250543046314780757060898275104064633956456241252240971309807392732977153552239297382629031962439840197577209141180591245627277259718315566411440402830252829612611585154203594036551262874173011788358058629775392565539384933241341244814140406515178314908871629340672158971236420262330073982124700866767006084405083827584078704324278905723799162786900894424234709230152829466442097096555735480355379799081996397530606668857154425982566003551695577937329945247768106002378707144140797231706935791341173094327530473678658923492625904831864240842516770140926741411738419769101807439351976814485289583569601744276580861440037340082989462917854412301668326836704638581918318603023379953904570331511201967405860912743396299037366839835057714891282757583887383606704744258886759894873042901092214108881431803373152405318595801683569829018596529436033677159700608952615838617757325833011004917662499992099428736966125904367104352012215348802471891175221896738979854487615400041506237642776025082159403768323357427295050937698373132146789760693004805805082379112851682782887799767509452421837716077365952074914357799474019867985582200163876876592771689142871189051480378272703202899111747165706466476363697577011685464414072681635208845938728985632397402132242757999915962883311231790612330763012548743011395612587733698204616625500531366445571207534906070296654076620913117646430991142565827335918180044191010530320338548270600892251564152149623549854742227560952122016136211165747696714254372386410778899398795343712281186386168761888501720421138587264327199947378186686515373398478365902946000539653001588539490344526631588686030641558704628220962018423744226471079514507637320220999015568523789874383348894175945494229411675529995501126167488633767920073548936957070998308756839311695852920248946841147095620147513041549432699424292996379170982131301721776068441446922676740555402729896392171654633485438960235875032845532757867900784971684951847262684719956735773824971194100799048735860519889312860377986054791315040847295402306741033830505337446633792752250678360172487612182362100369910616519167236479043299032401036676552102788752361012917159061163939779325993840693163940208128510547968763026701732294886154844101234654189499545112019936866324275162102381060640825737759197801433334634533392513949093760565964665537458430984821801843160329436507569230927741841434136014676824794252789534731708530153429995891205515059814921450183274057362793922715345650325199970815616426117238606853248529627972395285107329700613442406332685210184136367429350289554369946060885070556074221251248253705640912462294894088411436726385013989168840305658839226452602077569513849391926769420561484550494563894683236924395455717940775274731122262848099084847524237177133150564511706595923426468163827181364387797644033922282113230486664669212276345272924650722568014993953421453887781602774185991211727348472048894762821231364893867112559779760148036314655358827665484996654261987983872455041448657908126985948605504429631141500840547699779568342304281261531335420812704591850224377995631593290723267553874432239578350579538282167145939403359943551180968333327220687344175801883217711007239993401470525936017624899639743866552407325017816009798239187988555522119018290668311398040081483146362762963889532455416512036456348446382071207066506635840189495432218709263219493104795299899381954123491890529359539029839725758302741285970574367396227912044851555432152426968300329450116956009380347249794577451555055332457670263539930437198507603428811877170371252383222988902525361730960388641989714018632670507884714491638343748542456909490646763645242384040254865567522182102104049198014297298403417003731292722252048206743643669529251145273331459696397750746780373209749857552525697164876128329569634013898863480489340857826240606969361084907119593602710888017931299392322313574527384596020438756045082544336342363843771417889681378263574455745562517053358486766627184296205931156446904654410028892376267656076185286301895930786232201232122626091377811221390085870234119367030930925963554215493145329019007721809392078315225243695619321669916781533671253527880849833549349866444335598722510043029306560424511113401582401914751176182279905935359652971998589010451975427872409791168856030116955041900369719165163813610636428252923741583486401436967432310997759672986624386859031728626366267401175008475127518870214951459741597057184564818134760787859159533152367680349480199131806982861213606545878938077365828665568704964428125747242391065789970755989042692243246707184021112721439781926378151716345129548905189120284316336701627681774114787938081036109183836976346066279143190010752684185065809946341448178210277371561635801242821065001310199660892231634520444438565991303820921940190658002242615755136208480992435946932623582880309905967851101692735528436736961349053836134224540957692562852679772419996274544122950988994740608491635700264440459819314901896293867476524898657473147160722940472624106838705153749453537300338953600690833896394403681142213861106857394938160967333608524739029299328059769516627447874670857260247553268618790407817781817719933378754176841560299082162700267883465673402997732504634503234433808234887516970798320259599821678703789289258813750413915368023436295748315604208017492668110086788742824468337055342743475475483382563905076145139444923270419443973847800213747846510942955355798638279259146992373778602753249112525801882752241115819134091371595447614371861797287066865255154361161497047079279445451720409714622299952743372602257727946293195751767241201213397174802084121318165057488354438519508278052414005987706486202966934233278440665596747641670861649714442882337301347678157571132408749038222351495734028956669812904694876598974822193916582011549440094720127975771860203015763704769616892343278992928998906993371023815726685773257311396038852813397458002447263951680919294100074494765441714606101837411809671351794608533564489425452757528777615318717647683712331302593941282040132000142841212296479116043710586774194941196639886866512114486389816279705641792117599976137475993079579665612883310551369434675373021097653757189359245751470548164294100801596353417890470221992587646701440800201541657131543921300062287330468776891407271431133747569366652165781542948201012963527138372794809308375118676198266389533619768166231203852330317424943392272380847995158599594650321399994018335680763647515756465408745363779480669656232850779741162847737201746584561744885097749924830543783721661598617382435904002824929589537582327937125288130551897575923252260681357219131770455643818397286291933142631539284289247710333252692610650608774716920574535971976948220282647323141099686416789870921327350712069252694561325394851858948592803328255083992346120454275115212954211110418841228274546889694821191430309925709176256581636823933767501606548125996664195026961666767403133463573795972329277516336769440816934207596783800019343068395646975105791368986036341066311939685597613908007364064233027289616613296312194469415587779121430964803808967801333216159276319857970837871156534960407393543760074803222867224222893576486303742596791736578867015874989069671501123997349668633207294534976500160498627239477991674173108594831148507702852792210200962417323960565665070322631707963591851639862201283957437480622391610553547439099279161247706634824134992759769124392720240206808136451803942994112783072358494038085812261308647684824413326238233905094976955879857564512704009522000359771989487409758018102639655641300460096132934276937555283767007263060320086602083405443928373240807005439815070361277171569062050053965933382117852692837244430411556975000797145952872351889395006856267717651834361566221046049113881949062706047338260598829618474770858325249895281646554953330182675384431261461059150052050558112780017582519133463635115890344242224581755091110893630366778187590632471403290978714017285677277939905679396426497290965291908833095254393272403160582269291314991458233962080438316475377902310933994106379305534261104498093437230341125464717595608022047960276709274928138881844532063055659176223741468896397189954664659138065448240725751310542192679607860336104633697902164230398360302524347782911970597509664023290531303896073658662374469203765508751746296666255820470742458409945245551532086782384702900883111657657926916439858551385504126791713663400658354963214354067456856238982831801218070940185626006200764042092597106851840009405841901279713080279589646392522954475542254428225974861489162252775901445834269297111409575630751776424531377609523602323988852491212761031784872827650538258539693677471709027384792170330420189121812248452919977513057005772656524547910957706668449822470363625927689512654330756026544911287802607018098571134686216923246767707510913687344604562709495698415967547269190615057029242480270065082234897105614278411810227151717402826080033733332731136814482027963527905656979011432652041373481861606846128536556750199559520131222684113546925418572444220156527797653683823886215983498370422465784850977267795592200450499567985297627471269794690408202863843357504882511235555230784042545792171264757968630515861315301728831110010705506436764882048194035754562822294380180777957356238265449104758685896609685677790713177577689035923161838760597022467733643189768155991616614496905480597446740755584465644176810015229928237617820788726074850287461580973063060634027171153268887757151043966469168087169974752843815582677319174152150074344357293564175951696117556146939002265091404815447121306474022094384375707712100772729204770576446267853791332447660135604601941136021115846228439203131199546104017303333388473313629916639692363031833922523604345419213583610491144290297184501918212269600035332105394137863140220257590307533764484618328744949071499522002550935445295044380614212830488946476984084428938495211336829575911616339602656867016568199351462918881322233661332264707737410062338432275682273676664357324870912191359317477078998157413978051796256899855063982001180447446851948137123689506280144117647145836870616890981825699084260658790442242552632864395499984804491668507579761648069083529510900912870078531537157146572418981921234144376320379968725309298759302274848673768656683626665110469019369659749194357587771210003215732516511441906960954512772750819944644156534193782495795089930003891530179951845075756920792800027651261898039237275381135041540184980398908921962266230871838696975091841449810719204715988671043744598270948013155933893394044475338815841533266932572492824516148814687744164247625175252334271127502867289930057932205881530716779666933243513326654406824771947212516957167298761952321511072189364420505569876810744811290014661461988142435503048473462184487634488594910760979013100390454180314308581736099784863699284294399011839122479654799107384002555983467068719784352388884549594749118675197401246678036381037039798649295426646577727955044222595864676344240386374599708808475687724659342374653020785601834654954883139021279466089087782038930744592973901193954096921875594117693925687385693882035462065650493335977419864381675508939230400192980149821738126779302482413894220747126939111070681619029538947042351116968578765465191088777572195112275786093025359436220131349173951771135707241354175259557553814187059054476755693045413480827122362472164622894578210213438922246676428948676592289623738024615320123254938375188942842050505479165945868958059914525528451286075656807458139103127260378783358442688895342305388609413643483420695810418217960582507615136685891003589346061614173837195370716787866146666824234852813244315404673597914754242719741887961620047474355007610432390777287097617154596397910346014049276944502379364411515940823321502429651257568295836759998216977539527670990767315325360097458891848517390035444372917294067115222138779977643998247642867410083532252710958024785443903455456452399078746780335506825597459488269289665424348407670273492019214263340683719544042475640995165641672717395941133719126630191640605615592231862712187901969865968474181704907358335131904902053959524048779788363678951726441577803943455056054937242187792665395075707968675305694141673864624644785297614167477158907506502423172019451862332068650181569125359872319805521892750299870571715165299495993384919664892686755749693535022431680493643512621039485814774190450439952540242227885837912458314926644339498043734731394022008388615407790392896061971441042381358711979767969057270551592201891737406767924904095962836235426363038726061490371677434769890387207139141627803442149574226884916517948630393772284071465191868012443316275523801018728719130195003068799130390745313259470785190487014267961644162884378327387753041796507202852911783908118086269533770607408046224800680254051081959146887454804671358890491077350912044346646804527831184787212633843674044044944511284645908997178868785058307435442834155101165082010614816025474034491687784463243446044833845556581771746861052327300835112754061438078976942863752879606176669097906519457970302204250214176406971411306699957128665217500634096715175738071236646566941594405866312923153451385668958429468589433200071791432100362441127147784544937486417904289828906496179797825667583296660477150915855473626568332691174143834990462362499744428450031612969703467162729514170204929747916978774362645883459696446700698641849207851899823528307124666362183484622249441832577850119538749897535372406309304983771884691989959118213199163710945869849033513737166283486343327528747344668401450206872155670865749428770844791452345858617351620580268264139154694605649555767403858660131361853568882833520927321939905238191007774552803562385344179567985322263395760325874842890445865331255550073821785270295434618199289350868604040199100720555580058180905868961140979741607493861976234368042803582259680016970452602054185063141352393839913372608570428222298775561332286810926165134666848008038841343625119445860101833055993371728545099580657154213529400415357534564659843943261227858016858142080552524598171822394008244050621244826189162896789579162947194443603909142272030490553625018960033432243967659940359461878497623636348809720387672212342841648374109054718075747997141047154249091614955014643458319464658309879995354423331102455977211065515424865331200620905347911517937617601327773625630036599222509178085454811362710683767050229900576968962713184631633137663238635268603435611194506667467616580063224399160348860359645284243461069968093901080788774911986047468872385357174231042321656509674866087618363626421153336584249300760372322220927958922211338390931459227814265333338464723028218647163806064214849575871268696916824971234479204301596301101015243304734210934624424331315659778994161660793209232917870258256455973788966181302055294191835257183716265651414640436255210116160178787057592304986390417328079925321729646595315196075311377549880258297653871161795071573092986202992839900570842589254511736407696103257949660941285867803120288547999851827446584136652341423609096318463196239093684557769156629070776952505554214824130884958074556578638775743906500776859443728475216313824558565501794522852395466193037799230716452602464929965770317752087954562389481029291110219928715499804048173801116988248551198743938847890785248541376796609985234844386221519270110184360848253164582180453774720147847712062007794039527627764014302807321092663412750741498784393803344645854106141488814498064823744887277033310862279350866239649555621558850575879260968989023981349622662405226870083493953057421635850914735691176355729140392370344941027307399350098938050510528358151043739942953095610726184012372206411071610041132071347412861568139506786890293587680784968048756604299477642783995048526250967555615402764623082566308987022818566526629050390111092795766836089884109966837693975038893739436479240505153430594968365248089066941548188077644738423493104638204803799699845632989432550403949815048863744522531924436555813257036585986030127180131722988392321035427324403242385946468947594685707582595848911258108569505550564652595240558588589740380945682744124060926931479416949999437331600023555221785158335683923368940745222645855585140519167072227174339060580810686702255952594627246161410237875016959216140153120212884359024556996416077248963829862549475382482821172154289386079566390590217481626814422683042333215266786329785593926040326732561844902509267272377839306550364112252693135308336997903101221847711278729147904213480595031033657712527714882726877766420709675956785836268914206657939881671847775673048845138005004826093691795409293745798527349052972435713409244715081652900313669653097954960598835339107516261631019367354951596958139490129594788277490986828067863487432316043897463163248854248581136157390099789447788646846515663261288546593235233935673197735331943601528258217431474445071829528878265260953660224943426963812339797959186983907621389627469222222895849008032023625124440649497811639478397466264264533579832205475168262740337084806248560625480477334511618653897964052230695486078722978125244443159326760834949148798507799995366771499053492157079962229773202360227278308580550208321187053689684420446878771196509808988946692694150289229458927809314666388629625326313511227563609965187071943151730630229904500544373565835971605677066272711804353899440744485244511402450963467520062554551505381104810180440748790423246178164804180713569268664229489061796039608811472029972489831595508095098235084246027359661705989585484377151895542629263231305467918420043642710631264157983801772854936733893656123537398569726725929276876259701111554815306779264474783876084106049270109106718543605154123625617843463160979409881153285458731009557699930874272495949610666826755768126093186585682811222808685327071899184439386754330555082451254810672717129861041262080669951778133587173320577916823485509557613018274644134157761244328168055235182342272631719000836036167425544054918505270625047305914399819414968126850560872442155813457472944286366574332754725986308133171727821782423757458012112638372626029782851102449956821175828224673548351754766991247436119134026949786239903184739835730460543012543992751088771984194624259332705628738405542910131234248510929472270076320618772402227973004549817278324857260095283128483698131874861351638158685101257786734049626510415055543125916676044418555008521879757175448078662529788403616223352590185304661102401819116711367816908671913374206724725866049521068765209477804561579734906035191151937378061844475700039466175357704302071358837467116453438207873856687592756982326836038173209239491400542120014031866846248016313264092382322344202579562434903351858148575991880422844444800101775545511554756245420377672636297659805683169879397540232677541418108804447955418759025836282515025313850532169640653590881910408915128199957207796657236095044275653729971560906569567666234248673508768852570687172733058481132057566202548819239724360842712149400561074276844139907628653728811547475101314321487939126560731445920954606329725626682457968575197106489001698373924534813700764836721120798259419052077765304385005714393373369442965060543391225777107060342664707893998360337342063529453474517880883884435543312497822693400237522829305157687798575600604708708042377465357005925413334764675617193018415277140129160578226012764426663321379712895140391303438623040495614833738513531294024013469879066663422348925921546952778768455195654073840159372558675372206839434746355679476196670833414583895134802514918474311659871048494726070957868468404453681517988075128422072459899846800847087298128012757683115592645019152620820319269001184259729072766639570103773151309298730997914089218611293008860660555282509674488359930172929335081100935564244716957218251123456432082135852729031079140268533258876120983494486323981512366552154773911331593774926411678487147132273407102576640952766545064535317499006438434651887700187190340224752493223523738022613242572284226848917262961856054731875437649694414488520285323409484453054137403642857503415365372451391527531304672048610541072670561374609658527742095477525226194255937513924110800231660218288028803094024106801497459863143477126995916295933255279722385162898787976473574081431423299447414646604242241540278642938887794517330393449788291066612094653448498443642747039204147742496586134631973798606195371468789319415700819946299425818814877215443723487126251581054192534826547853471699674557512590922426860043821835323947548466069457748518779918824286464209568671943520507068392535889615468500217904281886801245150593783180702568050637950021776167996984682231383725381436034460408728425005567372933351316035926221802323808991579381971427048435808987767045038429832135823033635749417626494384671681595427939873759193372976864364082445560235515731318560488354353897905370655759317655756408262077584591658746948643065800988132274292621944498290650874501510920590251931010923237126066953518138978612829784591641590727649860030179029563189888601027588993308707854428194537535230997368274939412589858767359176735291977451263726369152139314886658950743489895189056613512561898015792938167389063543840470445449128876274864906311540091430661441685367804060868921935436572214282919246560654964823561656676822419666670892045716735946031378487827843001791132167961780929131869952776909311262476183754827586412637035947478407543186351730912891122614834709733779371668680763136151225756962737550969414041120233341630431178896041594170483878337061751685543043304303555348663352897873167534750485331083290296699529712486290927935962842516833327676062458088904914659132406019163666042564387088811211287985352197408374373036057280209281257787880182040038939381021370395235848422807742222839227979606727353711723952328405056404092363894146855117034043999126341304682135313773581298466045499628128061947864660368259260110409186533851612310496885678827205956970711672311615383786799691778944943428045504036820748632087009273764845150476843709120201033707217164826392307020436232216101846053255877832434906676020696613775931076586415414782412738164220339883354783615838615924991073744538647651310324313704580433088602327785838372472946663777397403890981125641648048943963349751468173506681125093123580982991121812647875734672004894387909189748224442789333416575735507787947936816380947582146157180795222486605055374629643341865911771519953304960927653322814137651570471960973525146538716621274679451114376947299808301046821870365316133985298402726106850196572206243484307082527768687282008918197704340384288048391084388089436759185687122267937659476367131870346981949518306283197118363788630136455859738868060125395369837894216918967062852696809350491348142609442900545838023133428977488237506286911635385290980097890689665797373285363918370755394858975073767757077600873348128418348345124083613423110243733922341725194718176123027986920980946831861642199975290196931307880493377732533189429682295510605426158913426242617268617609562855085694219718567969603025195209534656017742259521351642365055761343438324859113957947137172080459332147474553980850391261434123645818135273060926868335336255601977870511526181215180806700024196555886583713461205812819248310846972409792569595396745148205723595115594538763444611008708505370120502171129561100847585787570649293172989910711064472342334529023231028452914407678120778253489803974201935171916129067968270355082573338545288554349616218443063792983390754805868922208759463928057540723360188868047429592620224527844877284203321782662955252453436655663757664539662439305511370954814115324761995762361525495354181616912554271033214998168206945298186573953431436679672899377794879284151406246162307549861090078567838164227326023792708277723267931144492804996233007764757695444094780854341881507945297738696915765247257448631109737577657436277138277814076481893328402890926728346091851314208402345838929623038514294083973786144268106687009015456804325569897697262314317424669355643149598343072085990959568826557517229179258264876822411497589844577557621177738288998263528063395159919005424422888595296763980931175132360763129933274140233052254094152110632936194511038138622188415270675103356723639813057243127760066781607932150600995387164039501311909904434145188496058696306312538859288795092090720514965180018220057080510233831749687833516833246201131797069703186691339228539104059000990695311520277338746304748676493659188932072355942589245436865582956546773465613869368426549807026993958982047664998086436410463586928398017552352112255705022216334201400244826820573414903557163566418505363784712840169552335255401294573484943425485718883011821106433472889787243990722463595379131793262516368383430067448963069206444752358484778319905145169658035330827705956146851255238972233135650566378275631020027349508850152053878219023189251815100308528188706537415186003339615434853009004643365401927409053373967499889820539380764137720408956871315536369808452833966461587658658199885782155659097516864681049936115786511289832052418839277729007630090550665761281215360385042305217570185458557679315501518669861993767742494208497762957224928937229508979709554756362330468395294396150663332832357639446224358183721422193907990807232660156380925724621566283713058406780331238314089523253654722551466948354014229613752475969671742536077534712640401064841084808379763775215871370617079155942176865335834815770401265001895329428847480770416747974678169490560113426454195451869515239823345322744565372698064035109921961418872480259838588201267137641155119689727895281637914086341803648106979637038166042157693178311390316633325119106132007347495340082493240572821493413061522985404520999108808858957591595812215104006153025547634790328049340740385191674139476125593627988653012223690305091199544151318405644827215126006022182237466197457158180442312559342107637087081714418151064656518249448347068895348774587786470959974199519930040043877675649452691909550193934185484389080381245116499846069899657549991696340509667736812074487742999487478450069248534544502027367479827629711881635057449869836628635530078112076481459436689466283677500704414955141666974208588282195392996461501703520987740206059405624468709997263195230445862035309756576643760460765691812789728782295715662716156504360458167857451666621338288340054869501732908485481557700994682955378899994032738173004908246469740003107396631384230726778860019065273234823038507588576272922144551996225854576904782014852703507591209681704053269457512133366956752565992383271259436148348544911994465401256369809611962162083148944695673273171578624283798344455332229633632465606883846874767346883223333875578112578132775269639262922966751270655520187739600334532799041922963307359922455381483140173566946469868593713057541593615499624559325996772038722756780053281095648495790538985400143769171609421417609544189250233159357833558467526952997882387650785107008027164295211608082711187538220231323127019781757683697370967249798701385578085499905514412569876116017336223332327370867753139983837779790369606046290551438048000858787018374779803792422199368071442916284630602506126162257619045238130928310862336163763866496415207487423915408959114526281492409270334981563008693315270977043733055004119332312651427303565015393779760845689541643247877374227269570958713887354824592701665870416342839400844787964905215861700133193630105776553223691344454370027340641822597228277750192339767934380229752163182434157960543307158050937263336148080693564473133805118062389408383107751873177486484188843877024633881512987102295545422622173963281890505173559973548703036874649851642056696250631386461129547582890559215178464806552214054483133381871374826175359736857798229201989682115015598028644185021099564155667422705087242298855749154706518049656515823660321244015026223736886962412430255298043349976299846957212354516798230268696370393109089185716096561157197478921372837692525964816401407565320518265544494983839341546529471171743689617056231060580388949203608064687920554258946119725140015284005649690586428383358183656825172489250900724391789645538373442799008150994410376503281158439595510041814764938370220252433041432194116922203923037911101780235715057681052611280982734563604188912133092819211554091062944776433832020673446337751315086802923940455604611917348490990193700375454199682489461846274683665210805121964010893777432275147628901556060677658020999424810696563137838369768189244697092131952438333433125318337566922974654745076508498092241647291272487360097327035455696153434217418703005620160600245501538838797290042448428024891972935998521353558539966257297497560722527994986861152424626286292381827954949259235684832468438035789728606828119704039793737877897103491604462031020068692057264470838444707312476080100307218186310721224878656156976850545969923460695850227148500301961870011717440774291530232718597582946875295764709133557358740395147862984228592795059530719867218674178339361793048772867848355609734142961588201111570319545823440651742073017624296161870691312540425265758130946179358075326850205500523061271326334581253485653661537507194622174867075109999555909580766233370642027463739888622615266292709867762512000964383331561747968836451306051810026226455688646469603113385630760314008125398826194138990905744480919017977561328902550171949026033111296994029593574483300561132917488309717885319051776997466132857442127019936063502378895641841528945283005202284285287631154619201140928884754364386719341246279110632906423926816586336449692445938242314509132561623593160846098698498603947810832523697034900218231750650716297154766408059446241098897913516955112495756770065707087141730876498218981228097421972528026458322423752399436351719495220962592895408564947255003084175731241124478386829254829422646101826472080811191417540403481764714438749615282208658435392816618796805601365295409554629286403010141044302694020985818389484447957023957134060595506011496559178206037417642456961671168838075076754165130676447007659247039674729909754499441257234422652446504373249038606031687577016436291056699744927714195631450522747117862576248546531495971101074384516285716257423637363662155087343686797053517679941477916705332219994216096127533522961743091095162763156226880957697902086004256262796549766776690942707784725400879171024986297677077448910999223569951025548768543296059676236335690134272023130859793294621050704791232419973715672263434769261114906298666398067957606833388840521829790000831119774148965003595566919565649399302044383236023640062683902398769515773130252036448611724195951133670275907155284494097516772305262915560920766430988989912076809113967986054158413187260199246997330211172669844529009152540423457689045913217381315531848172302091219832485603399331399997434492291470179185397950014146091139178580495456322406667067391198502450787784920137132472966300074510790078217501935577134379649363013118941561445867735296538566383281963381078340125773292711426396326734835371148017036571674525474202683923659400542037224841977593846167992835999512196954942699909982468579350727008475858337981868421261494263316985283528957805799092084761294710452961146031069568856175676125223192758975660709302469036834826888831959095488359681233258400100761686163010199285316158035523820451116273794521140094482643808749769025787197219409017977001666516458725794343858875976289461829183913319927831681461250838996711556902035078008830711237570803355360447713000425696003371705772934085252622706691811733658198786133579191071546125611548775394592097576758536813504070165212827998539458515425861061179013663172816272970537026898545727973668736581543207483430105903573065882828873842333215199395491418551328979981331812716233846197350643890208127584976713621657299564960688246817285449397548402974003402355103268706326057300751261259135343195605411722727885857267503036595590137736899821862123071801863362521228262873366588165581268685707562388217065741621167330368862860326567908657058092311157414910974873553039323807274139304462993198164936542958119878455299251419913110682013999461518793372759463921714157378735776664666789300362222701169305135577571842331685451967052786237049135710529329325655755660261293426407686309208313814092963029191218208865521867917473940240690785848201216040757648069151666535690603605709418096854353320985458320679570194772217313077229589597960767360352505477797826975045263117579614765641225560301119542266683857254555975839128870102368055514772426819086707152314807925980051364729642797778305131865807442721620366829184726833575135633074415743155693403353745254706899807722437147550769390447107302373997792055143224076138718947197643778504144433931583164458642716476949119499509942802254107524340686208626617277475681771180098010487535801560812859057759918860263299855158613863935953277227307140601039732798277426794763617630400773522367121465373523116165766594058158250009790822434835814349319118557615599596241939818860604495155369469004521417882196224237663940004881308212362867067065867535460958264938501351081528979898223661281727457074955323277396341957156284824821673944106887673389863459036550837929586830712627947558955761178625002669711421569447803062331623148844120181516807742496205561222366954375339588200237957855239300875721715998776085180005266171254891781044101060818543047241386705442576606757378947514773156337886604603323643646869410321473325543619933019042491105749703615632557408265361490746477066723819797513555430357776536444915805624351067764064612277308476649745010138789577790765157768235302940713306374988779649946250982024067009615560109117895373547024752060230030884137770868318169983643498053883680027699864291272758687147383320883750700966108457769673508977577323827032550119746637440851136272123454773644424376333588392234232127849926900539611627415985832336058374963056075019710417110411314212516082342322197015991299789205347453336270315784971467402805196325140958337791265180959391812331826132528073536700487044177674165136284039932976852861963908758245981831335020704936504913153063554683204542407220159388460789245347753515350697311612475553992049641559515177462636123120691337810476305482101249077843739367330224366605947748922523945177979793120781401104965697198656651515365494269839921760440391794556742869902458413953066963986362113855962971531045162989590813180376823544338492132116058288265720729347524976740870513900663009579643008080563013249906295140344227229322165681295675013729686661658779319496706820875931200150962230575371540422407167505067005045969636750588456303400757699844115374787997922332276391679742457594526083025549585434277863435063415627390238203397228909245988536457923894012110554238901928197479863305798005824297903532580664257968781379321796442191759217806894553825504165702497901932212128787434484043436157032892563073628393430342727522913387263522939878092468526406126452241897281701960277505080403998955877790374866333458485630915754750004263608862723165604367756576543090528573489344461995150203709196361306054596122667874944173996421088071041160176133631888403602602161202797322102986019215829018265373823940101604744911970868713229852169918881229151362552234123781104275994940984473587396775899228371067401913580982048063254018347627869972650692099602895607963095792470735391785224611333977972632140637123308868176743475825594496997501974664647772830118202207681344999350247483589153568238553239414417034840645482624906309514191613319251595150609566623230208199490472862397248487699967764457147224509731784424805695902086327939911981260265120388574314889531335431512909607936580538451399118380667416363345010516090575018471284204857962099668421370396503297272110741935358262298374685873357510098231137465606796813871594464733053042377203543300513091477569714480470128464660743524514107795291110471419279319604448112558140536046715577407538208480585790607479289187637119301829403475059055153065705949878162366307304834033206665157878680933613798165561954754525979938642656169647823290544765187498157957173884191273110518859986982827464116452470946479194458063110958028548675158447038610238551749387790492756497371813088214074268442244190001490579114920373916344232858887107521854983765558846168251535934704701079393866027564071126886720907117368297556415233569577231386580974866150873904608891028813069436803317945842208006010710478766763591598930531568789540397346190786683400956669154720671113913926886762247421370992531658706812830477698572827338937156901962578182588009701726580285539463507025918676592578932454256374705764683170668143132013265740617876793488767163031596320554779776872151725479783399765090212517694560688508278166555627941536283158007038111267954535124817666188584992879683585649390392062954075981960446303364756674070573330349620674985058493718026551259331153009833883342023484886030997854828217348057797842808312695555045543354105911508015479470394492577941088015003745086137166601338547367889576269170263399526930802130667934208639153635781103847190230786589908824876132350599406830770813832056053039816854191309241212190932301488949955788604030650036792070235371628345662147624672280035330473410768329866500290608641729092854708279071210614628914756157991515752832616242883137265633995517890364011848315779688509099093533668737835207147834378822738496509268443875844428759070984632511538618390635979278998732354350232336301348279743813460559565166229669044470610282416045498294331471948128477048951895348794477145005554730668024606731229639676433832967502015402721451038844860671289812328663302022583759930877635726831638633814462919283521380477443016557844626458729815762545836117383388436504825213357362910839964864152534180430223834647748682612025352994251488276310111724090820910927701156603811857565773809722092358551737018075398651504798038718059859704332226383590145002519581817066200265493366176059029430183363479061369307529518827700322743433501894243799972048395094112403638732894456511489141537375911833201624491486383722616589391102533986910676389850778021231997568657725187550906567058656262156171514999709438639432374726846286468184586089821659143647523085385272114445621156474892979582008507717140131156835322425565234883887651496914023544326677631780559038943594408545659189846056418681745931472278785203909678907583931442253563438083023540440283044048743733375198333627689387856547666882496782299479244915122565918322418138324855307435229028356176547714275117410635231568905850314277313293486515627904086326668109000479012913680926203028863591552362945682089815069402063716205138774108952368572927182004978519556436462310133243621850109896344498421081932698671868902349308443613365029021717404483973223054766163096583942935166907424924402992356449508498718540391620409999609921423682215209663992679076258649308695980331031599048721409742363884120740035613164067649398899362197322947883820114468495092343839297409645613226757325327168534947437311619512683292425977967671955136231035304810690378942746114958163700966981093060916161939609158242659689948355795443007811027334325168240292582550802351551997756934896513053853308502106598635530425069685386193661749871560016717374028463360024063200636606882281016725520223106199048414395936634053912382524808435482463190992219855168967328472267038952734030795568678976662769440305508993685642277107033663292347226632057568130371382126861699688957268871732170055548913956626713159197186934841767000140197208180714674634301571607448244693377882685636464355276703035342964253060290497456497997133809815998237809989671291597015235642693512568712379881672817426289871274508823624183965994814641216787963668346336890128589705455783100140208500202483847443184436693424077429920417377541919563351826231789011286937697227308283382195385781456368219136255107517938710912864471846612116290828925857572393191861192474694232776855210040259252400009268505216869680899340495797928869835863994539006558824880280828863674228211934781036048787875532388258789186460424147448824686862098675597003892769075811997678797854962044898405320411885585865000139724154862614246506945523023780363227589108989671116296394129341827715375180577672564285894326806786246169994697777049340644781773679924599590960858291629671981302178071327128530730934432114504168214326223891110802423304945345129376667479657957044855069810439933855908714728916167638398717073343211734787180176951441659405427900771412471868850037713289029601716267863572077487143575167095354063425431115966953372902428467274130703289471422284255278302525561327598746927579603133838746854854423833675047215942774988171994214677590793327952381305311628546582475807314178722063172392026555875419488191951166133651599442544224845201039882923976520032370286667450763587079798851369845794174572038978694625169362807918203892026312865017127873788512182998469357936419895323325854124062419807685704379836815305552750674292447637490454152779104816687343834731744809483033278268372644173737538121488005591282027608931976544530343485705140817453360772134401273574385865917283028146326052622978083313309248233485759067937272271219919313774363470175086706882997351680741080063009157407359214463656944038354483458522031815799483339468613593509088208993860603479341925103109941507270341801757628573327776193298095007501666372994638332413955026031617990336090685126460979514497210108290327426532847355831425884964057880060713196781898980792205976642765166350103876626231760886404426314061299297269568490704774843824333417304587835377884432642708464695335461226306550917508865434099454965106998712035257808004885789687407075816777898995021166146763597696995993238051185953762705800562377439553993535236410649851713044871720760966235377711180415192676769393330411930343978700512325103680807668760261121589182071487133741014132482900876339214102188108227652902764417756521258305385371011801243729113866997828766083895765137504909501086012644790553318303870122744937824752718996276979185808466207214198871809738463240647165858750563633985536247025117267322196845426684904833465914465357055031489786461527264745818631323642577784982999449101194878112164048807942508875747055513848629986359015016656614520864028995911408789670413956247525481616479915509873782686558020128877898195618615285454354990554898063701283116165917741461951589518836665165111144601700207964025549479840528500376215603441844687252208714837174255323063996458093035609202718123498464627560177281654717838095731193767360376145445138972804438602647029272330752217463560252774562047980328477839514061887171333551184539174597941064315522712064796857806251173026588207300684307299182359971519795227306959940033167446281103863001377693886780862401453682422103358305298050806775165948393162867492312093333872883735085397679301507971227647253432922508465073585181518303723953821755142430035130287163279232465621303609637179564011492656509704139795197523818365605288323299282699951297165359177276676974926332597304277572122296800712235089748489448501358440754360692368418715023002631678811120270348477467714514172223726703515074645332457284352518596745004636341910438026635497547277644221025002071212252131859747811056098976858786400408562394332335515851813974799063026138507738638859978156316218596865537211533382962071145793874184526083397975750822545678465619029075290008611686137577347884672925235700875752564991457984524387177241376029168387878147846616920610912530803592012202369949944906900383879267497630348348488188193834807523074701772453139304635090845189327899677300608574769169251970595953570400467074869209095153149051527681940805627991313117728869664400335149234163104883656295278879824214717408701311082605097304553938431935665822095485746120421814099364774645680479875076978800945559981594841092556624303184631062253553145112918634390743470294208509656901071942701324245679171808050896797821504611659230952165831086685928222366781715283524409999364173920990484017811527103576359081859162481962817840505779434897763844083264874833786750474099600603089499827432052240285479106755827196535379308505174178633972151036655337204952765767763684677884602082558486624280070408057949266757412678495242434276201492032024092427654977018385643661016844445860079606851949865539316057690399579162927018243896038848436545894276887199874931911813207323387844929019201745708136195531273733351177052462439182730414247152101486762548926360428069151394259275277691081488934005472597962527278559450823465450536306736000127672013644394239411561281578022031245535548417956646070924467453096593943717763829452012921245898674075505020468046568503980257709735120657905336315066282583578129791363983324854282843791427188381920432813285025040157871568361851012559802696568574927628196951104455214472908132887207627336435042661308382389489445124177559645489325900199747950783079402881420790104422847525429708066962798892805034867995896571503040721649456139327746631846162718607665277730634120287865232643094634011668761843500183770376810815888217720917086836542465417626981514077392102403431005147701905122403947395912967047677902654902200781832083838384540257372765968095607375654464190256049407117961197027977756036758812190825842854306647403919899732675786225725245357076946024704836770275539709991617258309426352501162938177913395699646993059852053706016397099313327320563953890086626228110134867021580659472987456478611435943107253730128808016667858173959177914937294907798547898714726430864580780719959350020931519137790772668200648848624693608940653008306912502351264309051754799325752269712201730384358067546957647185420789904566589850604027197109411047604327583731155408488643062317451159798025742547521681619212437494742243130488662873144935383435792009285307183797760975204291573516824519695509926734560649927527353901072559016341551140916975388526151835897627297446019482909679142345022722570768468120746643949811276314324857696014380681961223422818099170807775416070857404622904014627064061120879068982013532036953850640333226675199916182089472542394163435416638169198304580962818760753274961960006329020859395199085756424507707026717833947810788181932288808265121687172000067316799064168747547365280756445188351267031041262779916374041073396966268082261702736554919522655804014576900136587231450255558486593083480755477645772045112763906324123273929729956517466006859880109631331453334557618725353696305551434713365298190913157342300302150088103029523993161459391463631559488789799531069434296526060690325315461323021213427095861762842585261723469937800893464079643955806633431990686604591447057003782890971570370426125228885731856265758039232210932666490844621635985571636155096074919078203901917235922499280103177834872249738080923208124458544295728086391287513501545514827736474522217015653922214071618136602237309993967052588235875120872279043148700838728948190262950741927803848560886581846881710593285856166736333266967098775463436550288674675103679822563639722196251117486902148330429240566820876093112610978012390405500139294471769348598646121002682816820874110946708068216756939163462348165325724721512596790278529249928521403513949566441307255586438127835215421870181651941690597464520280032063905309419400224228198358478275718944942902779794126181066668533042235080271864578794647261352245268143052350753807866009624392167971171219245414941300878656130556575883059549072573225994307575905837948979920972421465043872777811324358621717679988656620000487015197483210271688389611357549402662384125725515086839903194669260897673000801073381430847074591877055608886661804997619564450593586328012198038310360348834886173865026907232735201417084397520200450497382122060404219417411609550318605470820905948673244755113040106718811836850166671804243420291937787585969401379276308427015916286598850438238973416438530456898431292794178397207361069250142090281868887587504287828009934339178842714984473998315117967055684496226959261543285015902440221301812250041902266239541623496884381556005311514253455102375616149752937897015270634658139941077449729936424405193156432673756318980143005217097534944742777189778238340247732866415891123575445235215572505242105748278437157567192682848921576837224635909423887742538346815473333628471553422086351139970399558517597244387799225017043425968116404961284031185237427796858227479398841536668517153610659735369742289398031106695365671021125397823048990858810751648958841536549779478242901912047433814962045670118479282922336797670663508499085335140440629516643724035930599835055760696747828106174597887017294749002146627963191004184128084738471933633399369683739227712555778614079720900208316166627085287868108157251269483319968245195347954747360952498806231494910007858153730770548545019502820800942495999460208329186697556149577298788889749575151832694740237266138157929080266125226628418713203098223071226620940307418566985197980066845380739472989072959245415173501167304941666363717063817919703468961190841738669420886009232974961796312614147601299923233508291579841501870028728029789134157409164898158323262934546343963206189602084477149208586165518891191085580974926255930129542134694448979075478507953701618567463894154632191332877053926699349462953843915346095008936713812974919629331559509548248873505393166284632063286183837710074390648700845155768404559643193709319007421282278916065613630241013563352133198895317917592386093959245451698102332477202547481748390972388358041750735378751800453028019468288144027831257575015838738578478225464642764046739849358016314812723211340894800911639512376990990676348352143711466561444064730834313857255521448953406569339810861891726648191834828759387257823227873262095533841965818400483534233967664591681734184125150437194220602478841902864729473922296676849433015078376774520072821611549115634753555463460689781281133537773932912504745478513193667257179145147724844948553482966064386635707669230955999689315026924823062654288060957571731763259437432082810363942845540326589727010827836504595506245958364923813138202638755939839371630911483854729052333788650746540222574613737520093994508434073828230065216239124251289822857069995124882096144961184085732178448897721552736627861104120835415331395914559275679371915320509011847001650524235582109102792086110025115793666696365347319870653989002023410647080538955855756013346480851493999487810361766091676373306977514444647059543515647271046483985125834242741450141041035137543221114436780213478554370126246752194088811844871540811873335571026077175838524342309861710436832869809245694524494337124527591763102711814663339624577262482035147369962706166380212826990102974830629697432904837007385860506464579931346979654279585951833185324592249874519103842599906841105575308939257344963267680237417936715454447684464872662472561688329662053552732923435401147739691972214475820598111895335591998687423625832101449207557494425191618734971444630182517633269873901023155682955017081092614906088425631438050129980844796468756507555235084563432439856277934195187488536552048333919258602526028932048432208343339745041681782608969457380342365680415445394428336780886401055366022725604110258571425599813815665870724107149479030893805815603212803236223593752900155534203401662359212610241227715466521282498466726777110598896544776254464137964817821674100207442072210485974572029464773545858336519403592527733868024138537624917155249302276058431519761568721461320439244129313255439354273802681400494753607219777786171600839163546847441695817255810344567460864640390653321946905300023818294245186722871257785856303317097634458204840114147760158241026127940827773473711261286920927538781750684761213334335755755606948412424695681884983440751176404550136450745503750670652731359033171573164179409063742045520188368123945098105334865379306354191558702157482798696197402035550841786215980360815124644857980980594834719119721980230211993180808229724008762967346631695373795936341617788730202673440292863192866733944771258736041842368440081326172577117184616887088884581709191702306320960651474706688223369249793375340611584130672789618635878113658539479813169832917663051158781232845617662196507541385646005367231681902035883514673444844427849941215869397366651049319316514000801325788543996689139830291800790932571699348853147149007201663905354970980768237486691273253277359163914418606211564444254445946332520846077288725459837876906591995970922387443156840980815491331237653517497456208623890439973246022721304640376848493561404687264769716519317669079597503373766235085108600926094911967985256352531089130206601989355325633328460724645690909541734358743172212602405764741229638004298039715377257989243913856036899539159352348819111770844451755488786798526927604528057531454124558603920386175553515007048898525418903192853403934528455725531297717061844883432489796903785094281329932051600715340279904538117235756160785509264804600835187460834636043791899752010282135800644936157895628839604095324410341773079421807384817679500741297954521719511500637813078650464645603271016912426980108296145526026292751818784794190176857078556066861962424139305990412332595489918248499862097107457326014680832698690321540284052453485858129905485411778462557800430822497192346105755278038393958345323204684174697072731455770240227077085808958818667145248790400751904344904713030864163252748199335574021511670329883383367170393218294118218075473182929459390427598125211144996799182764910214555300254808464612660242166932739076610728436408732500576832164239257373409662707376984824664834828907677998148059683291353790379608079255303152999204958574867924946314912265954101623076341776533601224413134432255359326938434030497912968760105901529796559622885207186858534366278376887565273291429524340513186265813545905682984537539522621542268647358242958992023517328280411514327029664177689130390623079729255919877715120952864920215713060560523750262145718332437546024889175177975217690473269871856706826473894052503460637759105970029619860290357196098558140941278537550008042223478050475320886469179024531004339085955457462339875240281297228588264486092004933804419959733096583046176803064407832520805703255969494077906289823856325651436035831535598059502111929690938072098894862824266685667486282575532371648511454676677174854146581345069669840391586079910659458446203912373495094841782878854452667950557197420287474782115435175309296666669937951770313274005545633347936446453073496041545314980990077932073993634868401140592171892663843157572922820294972924336928103674957941909193436331844147307247453429201287864485601464579383042271111474897906289174821687679362118649356639832720603689065924877986292924005974721056350464024016636868709135841561472096878937331474014664792858177000081550746774742928991066753526126307431178123068258796367401655527816864594082939155311182753988110083049114002736006732520310187640808836983451626635638751580263183753005473609787757819899522987582781774121551828515865925290510134642292337851061447231046516595339461418359321532300782517207306120554845726231059735952053012437946761276182499329273172107474716817597939972402671161151290703581171950579970194173539404940879528297104515762717056674454875427209197678507734894338810873380248106999822758063007760125158579234297355769692667832128707073698553720718417890362535292935962948742898584950344941945606357601128220300884277551125827547857817276059192761442139320575865730178459619454280377150391914722618477303645425036356566594464925814332369457627664613353823556742485719801560724262992109735795312852362447129500557403229499577303016344029187381160462301364254784222292576422913431121666394633577979871444459844249990240192121316097632342144202970838069868589645957301356966093031178240239718352643127388837581228057552656430219123350083392986145174286349655208528426594434391719520346457324679798138944812504881903600595040643969070501654079540753018760616032193005465900959662167174048333969023927500858500232591074577842199539897362827019769614059538713251246413311489052867762743455084865472921541674326802377219986374145008865784126548640459369766829776723380189421563316212046735236201147642474161052723780809986327850979397000289507189562105094679826231044756486003786453512122758992801169360484571935548715571963466971134639370052275300817079783705970373592130480423271989731859799638665034677559218724979948968702686640526163049372235230779086627378770856125811678147803105448361121793749532718832230464371557912591505437737828657891848954104722564248770666111736873128667278682618195793018668243517829846982792434324183556347141935121131761838654370682583195106485567056556253141709827369201010362071152266715030791267057404838848389045559874896206202656194498112326337543065387823090871510268310543116406823103981452248751355869856471904600394163732821235590173380036901331338113023195728600989202556396563998471250571153591450858130219704160629645373558623535619882266757694951904682050693451148006502069341618995763059235376120632431672769328734700899491185043067538869432554512796369534689099356040262555727215310375677897985450243247976506650441539517579403529864021461554330300748474853645736885207837921274214196628589850919933685285882914570871824494527532817522574768402615370196593110420221307048835161606572182595779885679793784273172317507512801261583206793853302511540530744333566390301458084386384005649143044031695349414204946272318719093384519570338723583841659355187734637011285597097332659428125282803095898977075127229239966253536109605138931511575959354499280020494583843734046473387374962472421994075304168131875789774336397961191779728459833380335907796918322216127967874145958569074730711685225843145265652613768792117340079491951361759073751855225203046115249904884843720832623357415950215384370179571934989671345805262052141144660360658937411853704688687006320263283613696727749605412348402041606743843399743216099187638945317811638271740228675588872340110026736525288376564657872796063218164358892418119482038795409697213383587268601168810957921214399871298160288259000023361460158497298766428872648855372506018285065317235968629193885284827911425210772292508671302558269922208098400288815492193982848888590860815320655236472412951538765781702403372427495873605966099349712364772883282426890481506672916044551067062030619450365367281308338645144501738688251232794915740029196800710567000263495664525719270787846940123415364067771903547358703111932045891530588074781450732775862946749707053398762152290798077191774441284825350141116793516565901373170463845927145195985110519400105526026993955517553264568003283250686516096621324615665410398713789815821955123355584233426029485991337242860435670654038184572078871016281791482280952591705086730476135199745051575550005708948015090247484755121890479788186915614724655463360490940884806541496083062798594652514066068482038676029250948569335647395886417065243184087182735664982747375556425387173105869783087853459969040788653094563244250679990863946767770994675845999673036261344927415891381396373459908095884479178637927664376534736026542100213462326926263157461301422379264058581352302081960859934130200689303800739469752604673323345870330954908470953026923830401081429430418881576655354706497867525787530273049111811457364627005352398131670201119132573775754060265436922747024442505557403794263225099594127821649685211055398322292083566793326169803743950631025653861065821952004317281859873407740712327437702992435318167022380696796996723450087057768414218871168463076826063469115236031055902919414825384450839154727301162427440643541860617259112138302858279214785739580751968003740798524249666384844282330521218015065064881256510522946037596302912043094556143801962114039901771365126828339777434875673589742125598529782853796112783418927110837607100122413575807495778806947940567598471238544123148927939800665440167656350589783330249548011518922808045879889687427481224838322345038786071266195110211416098801934718736829411241408710357321612432967325211853638896135450301635730901191944083530789027482129585924209703703246368656876298164788541974707943391167823747103916391363095438417075000005927704909081996559108901430585018808363631068513416075816272979338071644461689885820412320521620655675947243639445434216758651298661395368931651147144360245918605069318693958901008516271505366549356084832094737790471788581239387552746834346126215891922311016536786588820258037097317479370374218752555611215286694761812828242870767582583356235828314574168640089557825143253987179682163858468828646539905607590078988463594046542605778920883600073987486999956372741373674403898972528963265804498861364234187228205516631536457942647501622370027502138832007462238271537661869591459452853668111275293137057314874050054454184000374139566019767539338144067070755054410177613434384608491888629127874128283065897753163612182402466480077692473535542266019858935195225997451520488795194148761874051610562765242578097937245549686147428520039580339798370250390162891421372568035067907411342186066968946324324438665292262424959892165737846448937996165531011506787348008795874255718840618627094469538109697579709351558084528586288832375022212440239325185860727386225136475400024861010899605742732743761949651508110058213835097685197684230018002473591264860076707205956300435909161060070670740805196760943543678081697198865529035128695230026030542731083510782852810514761744454006041698723444595925231231926838151998409069062155502225254004998263762192858048395176169158253755890179782606435551761751801796776861649507832075967530824308601659210314302855949314973107581358627926828947806042131199295249182296871818613883788139511331729069399297062571908078659453228804783866222961098297010162623830895564696440961039084246893802009362946711408286281033651316019923396090824261914762601906214693433124857447063539343532267886833038897280970278361511729074518608381117236341838185283185764584000008224569736251686386159757894116311401239375619592033587896886386668394514651902767977008368596112568479796410406604899428780452355341576018131433161756687352397415915471138691746085811357976742492049169732384713416812023571140194275408834435156821091168075433593634881012024321858904388519541726725129409829090819947607499476626484387815353665135884955970616435265646677655104486100684913352100487522773937175915755497789533803375583341333940235211334324330951457926713025127904252286273494234191278575495295257842506369251370744033188325008202125185422634821781395178651184352970012124177269816799563522976729170061790539364888559013972096452805386261047832101828462496507481531788622412728474641770265357607829706293811634375307569133192872965812817170895286851668970308346850729500314169049500175450057151831726117882601136815856078897965066178020769449439956108614311896609707102634697765104800934119216408707704008734289334195817111724157866526510385879627088147726826464326093382279021522965374308244428707434370724672896094148960280965759605908325776557488335533466995830955465305303284158336612867291733681421961067788440503457111597305862752572418336345576432695012218933127735660681982417741580658696980929207212588363102450609953104642378420553419729264070502487866329508434186360382978144363251381807700899515352503512665957773407040362523789566528902216921036794758467916240005899623305839761499307840537108402945177563183229787209264366129559032732727795976634354048728766214747764520601664489820897489134929338516203982213581683995377192593164417501466578486064180005055906759105962558342338968448843429011236788312399712475073997023580890104690185099176852997374325980109242491774988559099925190897106527459090351251999935623813499920162458541256177452217432136195851565093494666354196062847882393334424552562921715009831514320889769889448403101614057340597911860809253189469742207072657318543080114696449578528867019058138892232757369562845834763699409643190469422632002265275290761989151775291712582646228871862694241100021855122321759631098493243171198132062550165243270216345852452278696745145898412359201458726743739683021122818097470460659375549746258890390062232517055024521559477809898360054962244085318726098662977632794383291180045880210247918021939973571365439882111663721978692608557203350013787430694848720452680327004308318794021100191552317919231866833622193919150245307875248779481438728108537618300719081019892704518124153616857548765453006447768152838815887448189666048114564955111718427928973554884686596837399820157827666240867061145424453612291778401930725669584973191932465395573640031240294370885963460107136179021428323516967435746079989658510561133780545316605874802960243275261567408869836717756337780887061572830742972604052549513725451172313770655881352326592201088586795613137583138248358491490352467882597924910142994537013195965153624056531570676516326316002296128581611117937204837409710701364743307554305556858214311244356858321491516896079275479495399212172723212415864752728734892200250543621021940792492532049165345474207594318472524166851078341810410015721389331326962728823299463481428752799483342576637934369950416040487669699047899070540462896416032276403380116039387532054791773685711689594775427943405643385414875773078639154826211377624224931728044261770594742154571776318398027241925116949429941218916831274803497575878341657830594199174168080419581641516618089329070979432951240577465198665626812025590410050427872207510222505997514066113457479696317417012341054739825590348067852733093824533106027098581807837650739613388541524302669274022699474445239238323448002288356801408755274977078529317829371219310103651023435582002414416778293107421578514833125452579995114156724232414111999687063090113196563181750975731232808038457834050152605826331989167677718820967950989763406799000519431866560425371542501891687233507285189703138112203408626261868943064832608329504392450825053732640285100258353455110797005097087287893001071243455419678703983785613988856409709267023378042872239118811544934491176304794831725782372375106392329922157825460988049583884476745372434426577052171689440310231702894682690360741061964927662555004100830727976549176053652930038627413474561109887124899645713188628484834538360705016327970185591284606153634721607444456164925976461631502190639013691185194377883259281709865531461341746327330728895856240299328711711764476846901000018572301588991232956905044716462515031084681945220776768228709272725031896677696745781329024229759502769482792627309246714552767868512727724381328581990516904299151676974884573768477406408448455160790669871789966924047584256961832446063852566397457773355828615304053237937220738701336495477632052280258564463805215406539968730053863475659455102902668787274802207366308686667243358604181155460800855795233640733663332960193963824424850786309165554257433119086921042696146579350076241075726438541534869148431031409238287747048107069345364645358155020205828132646665662558363872201176191334854394330798752052269473063862861718688133313116297856377878442959249524371089810850810909815480168846545159377423625967932023329007295845475501839057300678584132893112404251732787522831563313145563829141747417054255722600164028715857357684712841178638868392833188194919782419708658718505068166903540096462361778317528686014905862574268834781636232536209376606749606795409980070327395028608728949342446693706847678445849674538643324491600175893316855573965862326617181104413549313506173817196018833597466781727311865052080338728054687045202198712003734732288947290284246855668379037437019931832839257848072384012099825369679853927793762798085139140770673395332451622242097582629076975415073484321137065031175310313021427792931598683388806724687258489034552241942744136533207626910806420314863851253654491075244253408927588437152484264056574855053235417581117462249532753778358820846965588953876320673752107098630066968862224598047083877496419214902759845992867327849571270920897668720235769954089505764646463735201341730052936878898103480666958458004677005366686905745068163059167153385480621308161869334457297499190358868067792331008275789991516322340767868340615272183929160184378814968734978537240824812436115578184553066400316180597469028285661707271504830567664956656025282673237516108926379824409124463353713317429233629965658015478914617269101247153982249197815271896072345209581253107905492114896629744684040945601558602189972299419569888415968560836903093002620229729793884013077879561176471909199580599586939489951198152884003037795930494807515227169169405450692802487463851432327213855881845359901519765072686043146585259917322818378082213541602426702351560937852524930040611891229784264666824295856885650956332128293986944493290667268720916204656079363939102484464464984337124980120393648333869756385233569367026578810518574463001115044244181355346371422864294053950624912949437928268669132090112102824060646970421392338804774538586863098172315752271580902327569586669745009042179138458928455035034312594670276753942591501197778752133795382850322935587715732168603739692465639606521054372361357960194781998466020913821822399694093408646098400209864061225847608945480958275526629847277071485728575338111007477813974949233739323379585591953694204632362736756463264413448314099409040194066091461623151558325331917225307709346471407161157675669074626667249588003848140277094495324579294383005131071105083254951123926611804398756356526979843662222792747233910991444174206622237523031840036216704034791116972713607931056541735349499148978795695047016643958869649592107263544849043137965222987706262728171377080111278610153482979935909466312561052401395404588991362852671319769137481012018612146071144047504582711267134604477950050245225339518621957569239070354639326648531537520372130913176146924985986948345093951718022059281601398563718932971277939091876017930461462652643059938733581146258380971247865590148480973284940348972870291313099190396607510272528443992930813682145959471454775831914351354829392119939582602564937133327700207716918566253093312813414518841521577539409326798054098260771533586761968444339931186179476697533968818055376851728069542349533416681089045389004693847697599538163056883889145867932841211393938212228717600632930586326547401869173860308877516292854624292004083494103113862027275810450743685774407847250730145359177762244210645275331686512836550165769361410407488608699130538022804611755540009998600078488619571137287946572493531022247651917724709067268825317162488970492623100936529332726722376033082291051080229888992779416254452359360724996862149220559816628964966871337486130991917216237996472137222360711406575816065271353517622198753873391872622371892422761348135788869878911100327661214284444161742372191603588935183256420269527912522426556753615479368951525245264294128912404187926350608044988256573758357885611213858362892748668741225469563037173374784876786173110198292689752397822202932989758682199706681759706199957688695718971083349346371629006415078737206868707790971123510954406125172730221003062294434176587901919032088255715447879480360599098389836933830462251178305851440145547529968057050464550232459736934049960858103098900376238026982992940125276381590155989657999402490209249937296706339282288881042451336756601039100818358199277841709974091361345487181508930371524202022627951487606971310542468048584467122288496105732552024271500580811944678133245893872375461920210640658121783627165266808758728403532258149728824434432245498173574141208297896453328284861251753323595842299177378089772769500923186898461359424764914357047834101337433931132211851923646327795254664156226053716924119382917123364975765705978660587284923368633326953935418527746723309130305640523940080652325903134128555300800155445116656366710925617667213015880190136581856036036468153727416030002378797745012788877323200277546851699316963946551302178879609657368937923691488280456502256230621674274865857722079689686790434804298726562598061661378094589642082952396436408117478504482846601596673933672553401301190539517781123495012824567870717895021873808202458627149607498841071905366539695336633511413245372544648343944607728249842637566096275830983984383793391642992895676727924081138531428414672023132165959711732147358595049776029238748887905879800158475158925697986946568479307809768718455045740299789672947510365126622802164579568305146134484252169859291099296751371394703801284887004960221050166367293647227214795186675383609502072625362160222191984473645105737095889982480415529789339813474160902732397362119718476076135756866492967761444821330155450251092847114882069159959166854585214547489265942436680121173770344655215045980424633166216518238715652858554542571268138752678717929384124981589002260314855377670241797669122979527564564335793357329000173861434499182107055650163765675229946411387572919219641053258397085223192774223672916467285173075822865000551683266686877085007024518221043222956785861016812447321855030358321449807270043404055182066475129445766812535973366708736183519984618607197712750884280632801160490243382693020769702926321549718218546711599964341947755454933380150121233185704356035207859975854885244755173355686445046473325328558002976262682407748424004874848488858859024065345534672514757681373250548996039963259220435651152873695865882732895014788610064089004577855142032535980642891720013515363533175071227265369695141235663908115097992057874195869011900018948341455358662339160735699533015900963061053236912435912543108569884886752666770208039043333320239069501091550775192070649014818314542216761584612054860045107555729762130980152726083154231967997717488693652692744713789729534347952514750322820481624603500807218858546258719827163116504196974155540056644492650241181448119237564993336121945982262918941829928381071349022695175811596856581133885317781022282821280625345997216508582786051122882886544869151824308825274865371983594353314364612197920155735017087247531580813486526644764250121429801283418838225804823666606656066139330400811125263204122299053290462879051882080559227935920401396223553145177954557287309689969858708718331652503525676726712082945067365237153112259664407434297449660209404870004026686745322806560343957847027858297950514070018233828894210388075835761980005170171100930959535834384223605790947164404146212748052644199905902335771398561551893457095881895728383242990641815343887445229954702483552091749187171089942741298524548114644535974163039655974170907863315026380018173016103214809367272001055825167274211154593167032038888102891862319341376852473248844076999380647893740450126451189833889244736708815994628448311565407883025251004695170978482043836101981767563911519000559784641520422480882536947837284060140657371324924778758620116590869033565553561628204703967081902104445716849470448867259768855017804231631512230054605010692403323901776220874927472800345430430032269154535677370299906557507055376342274277681799629037564766244205309722651332906495383645748113418498186355245804559135336506554543413393514504086587930305952446544499797225040834744774636850255704099092617391754684615212603311312123238090893752290979126153641467309275399392907180648947215636790471139054646796774435653800436581093885586228629333649884037119333049322982005085935923869359614348884206442288252140074273296929871980592575272928545559814571976840281465515657697160989527326439763004128017248602839237039538233897799732105353085167670711473366192933379671473265282314179352353438439811115146563924006828014443179197177671050391898638917056146515634367728557568819110974896584925907068158034799140272171522837354645565105659365688343895996856207815461077728165206801519437093393789274847138561710250219255925174780060175188036183252064260449634945214740284841312044741302093551450542402900156378851090789117200038180808973377188371840544616513229801411285976153311713178658183586639380992352044119198753740970854662889876218504185822421849280371878205034867406197963915037855552318057752580399805694705920325471907869302685537119093974223449371752401189105052272930650529232910807720396765362514941448656235141664594657827403597587007119869402213080486471446170155447893144283124539509957638489078551377709409840071892079148852161278829270639027365010714759582819016191258687340278696259454943695291943981979617186284135392523751643948001573550234119410696111428338988700967236031369784770113377216427550484377021355212353604753944101789716772707726170485502358436649791216085437063804899574467512171782024801220663974650877107773185220394960546358832841445908435181937550021764757459689936350568048949803085491332914929289770885216417156763850733605674353467061985505059868070637452106176129752129805345094967892807958753094350540311084785775262640939440787209576745888187512336228034156288530220495962128634434774042906330072163982483764188224390239078011708317263558676594066358288915172600640366316274333795230572243029419244900232601709666347494574000272279100319895885854295202840569798005075105856879100488721209205908358049389110335994734995972467570959524257237754050751559251703938945487110119005943918478878229177039430883955625610730570570658136230246697517017213588314481991922702309041220817541115272030082326444556475695409297252692822015951397677472866990578812210425143011028400710023789650810271874102728537209424235022551136763355297421662742116438087643629147322837104329067379328805726450954846339342044482728702276110796455462580310156498344206974617539370374007556316502829837761487869809595594192982870717286846136570160737278699996228951710563838870264414282739747488178248626472700988886755763899511920577455039645162730000007575737777712675747429280505121052140081230050876002004105422162482986975135423357921885106598622860821129974506144170423432745926297189444075498402794122036252935062786510320718847558071391529721849237591746667482011761591905682823191574105644186647658033509182415658919309276378833243432822174235598434807934367233480552971731835082078059401715319141193319557395785585463121886102142346474419092584711097908093817438108734240316240416075276531907074852317550258042629922066879377738308679124531724191168619292794741146450399742277032218002946602195149514431618975144725303706164603704746388649606832619437034235929731132992067235945881320837601908387185719852758370005788531801680165854940276012471923660585153689332450156622005751948747428279354711375078434435522734343640837163789574242370961345284242804974650487370187547362549044762898509614085885550387882136126124104599753834703634154778780244520249571518675227879143361981620848292992335413799390280168726610641284138725152906388151572812251956674974679399490262426722351794706130848825333912843464117912818113003704723970791811660244365023628804115225994589929634228163374447757302940248952393097363691716237903890601799639212885101743007309468395380280580268180378303266886295811006734742649536358663804667291380301580554650428783705242101788086291936692672747369733941639499546584300441663769267353816336241277989212997243729204921598642245227375771674734829030252030963433301351337168973940207147356233209231399478223114631083892798853010574357215597529567035473700640674197081449934995492831407346049317680133786726086616933684213415053208414523914647942935232666812930623599285417932239982542468383348110082948345469656338194160242758988186511197930251320616592573231419276880914121496370316085813547688334965972801906027364531129643406039588440916439148426135115484062200431110021891734673206410463691721871313511239822192971612907424708759036775432006398532607525271952366084103469949685103175137487476902559581146453612728394401431314139502207512500468299310999404168765644056760371826280232824174228943215774893305850792902155797283667146232522062697823384995375760797497772726258587065544753515111589257111561128770254487389534811730376032822500055409480625507762360486613427083119951198200684960863083751154972476464996700556234144288971878460971423671778910181407094184255326149876430792666396422027296155380934107419265019385598909221984196205757933502635118261258457600595726359813694681474449416168164618019043933824137099859401175988686125209025129198559309191857229847081741089506822522632292975418462938305346240956647563148064875347055094458985248337192653667729039571813204326173046487852604199590538206650411459150087727583423286203886376085069547878962440244942676727590271004955453260365621546429113467008806829675885683374587962191893297922204675699825854456907800946595090826095110410428699432252804853731210967674668653229787824176384642452019439094938827872708956309424838797714980266191974013942942091918524505408693072633876460564198313089644957014460082415252914736674614548337631375568039146500505405386804693491639567344742955015523333148490768261447907799441224472891204819344833422963040908456124144187156585857344686551147582793422794749694692326562830254151911148699276075936797944519861143629462929798155228327281796348544912095363027428847148238069269016467893531213019373503629577494233416054800800554133906539476302169899444999184168310037552211312108024185663930305332474720949692851291879068464489170526647058772675155541889357904973002163401617635113768890555288932238359613255226091789005264227125284511905723195212811951539941542027093200210216503361404803443607881142416628434624226083916504056273276169407311542605633281782814389110243541960848529809603186510178901325984002357911729722908780733547199130520559468244742294192094875274213411727324433541959726182851729225717784486952685976825331902927581547497096686256720565351924622553999472838264333032235188248774115318717902431632025806209474012359367495973214586250341740946176228091244332024921717231426944049476458005421952048576994311092471035192272814424883367314805415321318994766611143877147072068245059870399625853762691976343933241882367291802344040002395634862162513969750353598295614607111574112170284429659971910072332668493954948917730471150009938599505182142262226612374190255645346461979805908477917271184749951604828248174701844470955690733384132427908967630693454393259925308673289186884554532681927629134752654352037339262787042009755578039082752915758144561049896820214310611476360892552321890742308695625555665557042143938568739092765183021284896056752495393636686786158271355732369333751756131001861587812056600010409005412875829220915419009856900472872667551403402882742536041235176781264373627152709286731779443503250105498696350281191489706668956284682753983496117037767275917021827153237800310174204890103046974329143055608559293067763252719994755866577083197401443833416636308993031818305368077215996922501020206397417516156482251455600855582691514617432830767937263175295651000404272685677298131326285773065817168457170989519817881436435614037345239619873729359125257785322244007557089162147975289336837459055326226765937287990162870738667994487730284974009119890829685513214730973756348324850979873459081495740288105670445929167272710604188896752881831051479835979115527327599925627490488844814117105045444240389995392357153235174147595984327080249932229534144113666808483636137543643560906172894728714792404059325907363232325889307128843834642101126537516751348682813177060132709559494371342343664096337503297841300158471576055259017255090840828437870194869467294805425424558621120194706669518128703807271084448308990886807966033455532583694630538339247763719920260462190625245104394004545326252444955459088410791628153583972557696946767605151219434679247073409333679236292658182467320107113852187312005023593816960140848697092595432165534199625856378662686624473912111819482912622739029509299696947008891751122307900846847186783586684718022304486385211029972435449483944299601044146895948170907438470893346300727193114870369925537120205127267038923186989857456267271104138450546632519295915057909015809538542236421939372254823164431359366012841616052096265591665669542077804221651405168942600738770067071859909851858641492903365998688387451889901348118907179880253692933330841832256389745641290453858058738489971730543942087315643702758092613971387911241286371707850279998199191309538565599557746237339583234288894884731285426998636144885342503813109303526792156744358213433312973691976759139387616228317870449183292989215487421335457282306446788381665257621184592342827839715202750514346254084450448519222940445660274802748883607380849597628926963660929516737839225648174979766709528806639125790197887516146487540284943175708897122321532183101724155542518253799208242167722987999206839816714748573266458154159014002358421012558830031936280802737123181963279373864485571693600693006900167821882099804047639300590088604116397349425758675095544439286980284180420755585613831358368243317198743043634454973062751359772026595077911437960419495660502836357239890124536930009586261154861087358552585026361580537412752666923700205308430769056258180005678896899257422798721239698775633044438713842663436965486302875324301445597763147499815422162363506494938104901333080323172771304166387024378183272327683506927178463345545152458218061944387136869855535185268987279346517990397031096409964750449875065451921896136841334509365088748650989491584074567243117440417143938753900585547524168974659794899931232488224804945201034527514130889210200718514254220790272020311108329719768826399775246372524382106469961853292046782203190572184829619661339634532452238256252851954665011103368928636244785431157656406439980032937411595409897781554342781814704865119782269563356242573803168160950322772265666218201525205558541047971965803230321231113313330830324860263853532017550521881361498379705568472436940008651626178713102535803713576980120467139732441749280757645180919492494999164255400702657731630344479401552999126871022694619129738358122093654513286464021653560417869779465187828075358303247940586021412968979157795652633661840421470995128327349056099357508875787955801125342393228397612017507353684399556620872633469860871429308572920320499601851215058070116418939332989940329059196685319009905431109115856369575728713186861220532426724970960227565286715978444120475581419244097473875934095406429247268212529538793279287296316952087149821749656330180043595667823612964650741851599253315716482371014136923223208928959110063765798095764306653682205061144605005355687724113436680745972045157602497598946891091704948442102647854726746438933362967667374278035194949638513204304653514130887345434831649371077559648527851410074098909965622367410443718412152983642436604448208478844723920338293095615975788576855266421303332723934242884797241365804690952156329638213434168453277124490786456429723444955531275502629579549484187591448732420433389649071138529003146952986075785166263993608447026914644137114177095429790524418424451906403224440863040601664292878445526849927314282147688551507266123014816009369736102266641309941348293601473367385202540297472342035901210025083008089142778378168095056090170523219947339683122973356653900547996396563079481014051335122267028077031795359109688099939304861356904797147665312033697829764404793336347320198118670357649953559252913337609440304561411249053512774037516972032478513623258420172442779761745236139240232942627376099247246558375836627146453158199781850453679521200360459433299257041283145103223764594803525762829818039277990802163450775336812245474595871855003571193974778258451150116846495042135087048355666583451283226092627085790495553128206439417759883648336101979468998172376595443899209318973150934897043239035249855186583362147097880204518265945714004531121446147708872624090651196188718017825339935824586104204244692662098536652269041352871773980641563723246568725620084047499337093609077235550518447583799219320939767257329960633133136985551947942752579986109059508695954477783990105874123806908954080386506873317733885450292399209153821421607591802473108410813774501176458912644591825160724963268688134986334426863572531302216653036361967405920780848264658357548940592013794069711847388379296665975786653759243631436250919861258013112414980763202184641979913108607144609534678295572154224530650329720311836290527039139421657274345550252627247367888162156145912750152070176037190376264436703856093246250155681707535335605711067914302502065294334310960051487164904414580267004258720616995578977222379367378911166411134466419127920838719366432287770916322019681129317774115587660233354728976281259588778598543951084919286740579131861974047525518788379357629834694868955266572097387600820801812936134151646587815001594325820828295595115478360230829326597228147707284067780450164204905917502322223384185776093096344169222378249126886541877123876425794825518159640105396589414348443724294270902687819146292612080259654282521429577940999500518407306643935510449653113431425926912182041437569533417315959802643822043536711118065877077616927619267513662789265850605393706300497081976209534396958427428713906885094073608597259959529613931117733445725675274654309625354720405343584070065775617315914208729873936032947272551138735329669227668439251948205372454571124426673387153980198319999491547124591910269077399504799117795302875432052176252092709962563588201243611513604769148887773721320079243169744792113475002367981643673978306396419438950639208249524878162095499129203368856853015711993383370186646636589444596677310425473826750231253411421386251584691290238677886599183476491176115892396963574337993731674578238044209312182870861050334484753608348207138071907765342081960752836759493202565984181544495257277849006837559270980132138595901225574228408398681057274891288884565083407956486949566723302613737897669202502561673805846673792354253268812085534713104462273953824259166930030165559237320448658474959736037326261252572908443373476854344418886308633799516423851795280491423304720420409251274473561686371628853065997094127881593769602111357267545855383646559404740172698623807610890882059036080282899384228732787511651703286345769976324065736892079626006710121853578605452263667804568783846727862344384698282311814237857884838338169019662408574773485980423972478355154101153954846534887439983331064134221190474204956968086779304450296186969662323711478311674872123556333599366543015781318813790177724607013423365268373766762323796726319659728018131572985838784249817805194603169079313729583669218884239397503012373778565559042578551829253114580253581509424796559123096256363964430212556427705065767002309288447126030799730550740142932722579454017742854454453017907343178030479435519658863931099565965690941432496356660531417595282376105011973028386567148494514986335286735557555584799135999873892136669787968327615029729259983990291891994003788725590900249573603979956601401600893074731328239694746473513417705645539702278309714298427947187085433025258478620170005463199993843549473733168550421494095615389824157689089960738478677867946857943072404205276148692248512224255241897881692126652828479449759982840311107481329610860304839475665166616129123570579731876329092783311948137513017265533481093568652183319974075997904878675190328920633004657934045440165462973442863578255824995347321375965762612442837044407172406768079473446210140124214492149670862522549818398501040151497913193473521688753553164184407398631068673108345080795696399524865996080680483552315588374292416674862757712641478392132113433199747447152115258626081096952239233896382827465373632545475697879021614959272225435425808775195229020992718956047457498696154189233584890389019195583524437420034534741166408134127394761140226569942610474024099395181506166090300075980423230919956951168667569073537846793597502581528143563397442180132699887142512886870822681974399629151036141665097709789571526704645919467201714283193010126677946491259411447245416204735677773830444312093086558956327208514832506864790712836907691943088199796109334750385500503764165349775802053786553385775291208178800282342061480403712330740950158498871773036424273355170840781258687891174073188384805772576783440900601415504078161752972553377870174163214863795704805569082122090053045783184535066354816645970750010089301459763522161996724611537857430115688026892476491169302263480722767239442360412643379703154892999592146868962067878125682094164821481427151619197356856611916121483095256553426756217148695960328415765858238059607776330094985861259586371252162800460234269484514370263217673435906489608055090227324723937055799490724996075144684650280683852577981457250859846634185302415752663666017584790692125936109682307549179076171315286634331942367388983158889081216785577739783470894781792133946079762404937029582159406540919060154644487853560113843900963402235872171256912440448526080306556272292780461783202935032815433964294817555765207417576892303552052091172071210797878146174342337889963057043963641363232888037828858459456450860597221451431520480573675726018773339445318645701656237089257763158703708407412950137321623246867939167995371946130893929170082636782200858759708630143627437494246347762588657886067137839638073537724299135725163316976857430277376238833948973381828833169621081706495816065751752584422582352599290867736159718408800328186612921630513817492510086272900540205196693801912403201687675054911445457725310472112126394468670025913899730797126507459513940357011478687989484575068926705315209675355120183564928362915126845300704966922768909067485138425615189629668801263809530392751217281737883734882438320096846353252914967335100656130157822035830052110151019427377887493137770636105387205597284699544934154639094590401540080745177212341034472019036793214680168430144050237500835991298124125967936878729122928991115569473227252496084344411996833031001717617947946228307120189910665112419942390778518779771260306470317653731701886501553000372020983190147636226387370593449037082456391082758433956330114464050688141750613019687694402727523639178447456982268768951450741759706950020108230918567577036382112725847907198270414836164927830661988285868178362364732327672421279184446935515995360745086909454540305370170697841685110182205647897171873434644098763889478981743270551603110278204119810885692227113162835717290697549990675511191685113626264250495600837671671437096838611370732746606665362837176957219316008630551361166920828519021592128021283238089224966562698859268472411459490327463709241491247740995520804425408826348977052512584510974616790386329038502149022904322321013219481566062336462752137240189052995959149133396821645985825556749375414871338020053544302972371401827589504435102756124106505236833893669848580397302142533420904952620479457023734495108622690718173260528866723140470429197441207967840867082774339316717523137158659150080357369952986768788430689949233355970874271351198590205712916247481416449914536630797270528513926383840583083997645266653164596111500121109698572776229030463126248403120355973431174053260664918150388021610041697251385327765695972990374751579932032788986620448358205627876365086162577526688856499118401682463811161013533405518197385838381748275320759582603507545312847466604369844768728498603977331055778656546304467261227914870268408224937959684811740330207853233621533091110090736150476777943509711949437355373871601613409426861211267598329617170338338200134507316081452183939811417957931713326132097175946072207843944766603015323504259408124916713662456024982319483961767676352092120295723553822998197267298366923317275191846770255959172337507573777875489827367635375241415945807369522061729022461842926772936522664622372966030939193957329331094735041674834013018116728765335501616837642946213563778588633723037924739792717117083510433318836596399745377328943876827746336827281108154414920876385562320318657873982668698029011082575253474704971503770734160061084992064496805234655545605539785744421610482286793343820229903004877589417752660616873394681119119882547195799557450631448023736043839670466375129758258421297613459602542556894849199567263289208926606717406946940971208758005540582809129883823470393190470637832241686347191915018553280259021035429636170157892906680902266635198193219438631822211435251427370611843837374626927666611821089200079231725567714307248391278332947494874303591296369444410539170668199410110781915076698202608130735039338660853236521922728949422144281394399906373490153734191035354430025806151945772453581131095642126702308477976205348170056793586422446852038123264792912473120740508192768890032887781068399672964443719615880625721682387091566417478346160821321481842331628049320165931415396255790151917443374004778537427240477301892653462442646363491700404236022221257735114077679979261638701916552626056171008592891887378599066427719909307292200424483520574760432702857097698835997681618471299572738075556652423311466692368252686752561224009633728420125254809500018525150100682255283991256908570916801500663170477917363536863822403371351251427862506014136761518933905553766099111913196949422228252829491822510529390820777466499150262551565826028095238271144595086320427157359687655192609318080104195189765769814636570516018343228085179730279910610276161151045272612531022525361584000448778543199361662626614482419507769059689006173660284052332931980226809636042815082593698526955150265992830888898029920245664139910092288778776809000098722420724644261909790104860723546658860027685096711137527802937400048193977981765613562340712985384698041696749591022469737794111340451027462778714196215264663853121351290425865306617883825827403874225981214407384102880981354008602052468286763584860163439967897478910665111749566419504303076797794801524138269259006268351123837742920544751739079354711898775373207446367156395119780199892175733602503059914812185210812690490497811064202170795541641030080735238320617353149366075919899833623377881254756223346786968094061057460944127423331374533625631326063864726449982324056798386558255844817153611963380059470230873236128543639637496475512058184380997566125514933930372605966231355260705615733482043124166325878572767712044954184364261083665700469409364453125152794694579516080741903848694268917502462773061559408170894925209574219987166605700749784070367806444672196129529038149505567401399403410356933891370720065620722261841497729992177816780563420521629085723377764579518663037901930296022185578904052537700816389066260915274358933579924904425309203765346809402236677055523306936765129001169223284292281981416735483583520631827138413283384640086484511581807979234468322841028404476955761595796055004178511077730377639922360274353389528865066541146229028808299360635982715900024779956277008884689010047542887727074168205086323301674831317299463899444030251002906827003159200322033280978129115855759692827439175523759355505380217610389549868286642206643480713017417638976525144589167037975140201212619569868337700246519411722931181897411081221128450133360468395579561799214878230036063000763649645689907132140536997041089377791997692024825445709691893563371006305640430259858020586296681141479918844263744800399359345906226508241735352089060856805772055588471278640333915542431686611539726207555538376562562947626241118788370594672506699937145517615603635003181190202757206210834169418404969220865256739945000268569308086850703299120150033616832340619548907971017595279446304546989055318714267093417391575377248732278424309280582615487735514157955289820412251379863187237177387732201220989081122721358417532882941485093824433983692033010402997669490485911447865285367461109939458209438941874463724520551107850105076660874456910172093457165343428393081901370750567383145938402331836689186978481815919425473736672858593423682971025202221564774522664203473857829665980402476955647599779994532940836479716809108604745904240632615067913328035012144977649992608768959211236762403009075011231655358285083448303949935193456012561054122394285261430627550693075064435002782207388419268520174224937190629531342340272059488286361837174731559806314792873557116282253224898009060886491312063504171353960537925762781449125243935839118896764878452429415769677924994183906057597760961543840377034999428023640884004888089172946691963247553838014994833183273973309399468796063463794974234728688181080553418020363158782337860252182755127240551232830730130428799660730145556135741493529144352745016113189627603643960971305090972006921781214348444115686916142612271367448904312876593910997928522192698848126207131916198992861853572977554111173573955004838140292710012525398327086472512596909907536484738080056365523232250343493499643443646918253146156813574927707003689413152696776598265541860817884769677063180267398648685859137600146754856493226571145846052535278838010803045227299065419730030772153426031911193957974641611198310684373459531550153264484561162810203402985327255568629575113149189281049796080426464019526037025426501112452144705811000847255071019065769369327923308538072151020380218616966395471712751243135364919304606897760224249047496249514966111414684699027146564654857675841643429638587149036519372474254763754115474611361617327505958868662060796752766436522612454875250611800573348433580561409228791246965966982155412591895610924512299429613133427324187434606129112252629083562504595043079658166097185004738234106401008704824236442943569187587291278928871510572830462568159408536417967052599797719740399859464046180185290662055775940543793409569190081512724133367778083686799975364999263163229355319466049120456483841750203374331158600640565033829107749660121175538126533560805751767640399466099813948569578625866704818384608030713437129438945610659734984044103221011270197328267273618303760450305347987548131034532927891622747245723940551948371293163913849547147873546839774043667502260905831086737900498716543105644365863494874834392062237194417357797582245947912917842115221014338801793367604370440984226301966021253617770604195730825253006131207845030454243286792981998661785781519976250562910577184182008225904441307038918539860178728428779501979985553279100714481226846458777263065516399417831989292956780633151392656813251286995090354443322265036669558038372257700249286754688377165948707883387827409600936281739799121734898068764778664827933841076478875939737518991943290805586053033712227498636148770600101456288905525337308544970996554764591502651788232896808714595725675236338632449258954230629917048083870600622990096526307218193324227567330366780095332269557581657714743116968270375696693987769731167097479030374015867077068005578829173715872971919578245518620107715602628963679641492577892332436956921352758425229152168813358821273449456309695259991269179845264135161235080774356348073148074059223114911581019166160608047731419482776786579714216469245768374755437459330638581700853570110785337002628465491782535552074821710975524890718419262919105334796899422155712217646476666843436249300417712997308945391962729406335290480886752667771504194374638050221224981047858258470764614965952686668152900204980001984718734256803573126050659757017806676873415219298190153730111558343739818083744102061907460198313828478509983141909991884414977234809862467736173189799522105387663048675158405416598807674542872167833342763558039592937329812071163887295869742222453341794709148341993543498709194107582352611781294143561280407677027050577759329517696240986390050398653479897280106410611028301157608194525238261036627058320360064463723504024362288908100772333257388627497278135691891038121996112103952836807166400137251169720768098988154732270321122315454078972373034680337976760478961341699929294201034906645351931023563388796890092664498816717842660564714849281451575451825207464465638661452943177181515875240106535486605646579874691058346863918297612567922722287001450363638319303857615204233723652924864956341131571310360775198169132808251932118302265442443391949548845467832980860976912807629015817989507807837314116107462306371275840570219986939168486914361421660976960517018282409621269620635650885867890861908528988741626434789775813973186213271769448757005541465431092925771844741816293569605415891129257112139004807717160144717010286040516710594759445086596855111953552295475658952368069228368123480040755321280851516249689401712280197363725696314195071863409612617386438352598420787813740824131725205269995245644857246419960180428389160544616260889374525460196804620142812496156197078241964319386350805999277805203031753737865642823806469616229331437427626798377630245507050689516920877482116887866199377875560178540509063571726492134952695083930733269789372268966497425206150158161072512865922691072067290665750917306914434671110215890779424735732440356177606114221091395363904122838260171967054482668090360771473068120186028678181795818375621767699579288440916847116197678101289690415647911739929073162599043041778150999682243537792834204326720866359452516049240979629171676257072817459332589957387998844058382219865543162171210866179098988923139665708309720510111936219704219242471092563331112167193466381863882600381525038690842717541112253051294213267533397846250552008044054827601358211830060419348659125516752446648030380525356263471390899907282847715762043101178451563190471962113393212602859470006816914963451092907255225199306863174628130334192475052338215015610851935065504129448367273440179924487603864025159062890714296829443769390871010259998001015494206502129017885633019474501624797171005770643283848499073075083429600184199271708529740279870130905266606880801175147897247527748598031970930550169399147365440964535455171487924122072143620446938867927161968778110460172382765405654831838468594497830673338884336148164276359192556252990537344709880068827073705964848853117282951523357276584821195202845005045216789220657035015318146918207778748987334706594549729747229579938653053873971458449934647398658396875375415686920448308510596125257785596294545989779634478934790416586845289904152965282955915208001569622725825108190741231827039834985567134167092220196315191482578877441898666425229840256571109797926685228600466612755239785459529266783875991986899022565824539738284374655741384777730412252042251064663234816872111190325252254765773518654360988899642660953148595627585690535163266972740845862021818006115850886263103431616399728198625141156255162414216974232357246581340065987962463600733190209662291997074063311433875412956849036133725794286091570228045004231666374926116385446517235968894090534573966711937757455218038799853710945454463362238454221895696401683943278609943763913787731784646458550037166374746674859559825929721745782498629514019688370494060778978801648943378499393484472154712640762212459438845149572154402784652420025190602116112077005010794801651121167274770270999375319386879010717940889405759212691549854564977320780851740419570771401382925003914594211165509772468992347962962976464700613418549670143217498775562144114485191996278865215092673653072386546867139069689861776163767046175196409229329469412623996746891248916693755613353466417950654315761749743079649812393253326375377852736290450628933592681867548795858607693801228120971410056693081773125256320316639679826408054970264882379581000719295978090920309646716298729723244443929732726864293926593101201306287883723341069148070765482349826539454029253946410651543640276693236093396588987896793641269829533260708858863085425713757844809106652309524378724480943693413486327690956995578462432922087244045640298457924193120110120906345295009590501014179987114173172046334244825187281333642927496077046270130591254727832690130604305961395885329306865526801577871378792188075499775467167681162358620116596221562449464762326491916765246012221818127841165902662811836543190302851270141392228245669883972339967457787513967534240263727071356447047306676246776140873544308319028292480314842545885472613023294717134830434692316896509759934762938724807779968725670917792622955416837967581387620803315924165111583075551385371045713348876161876380277902176611070230189949233285012019986940772577018325669977683225731904063682867901624478085445833183285586965412559673339740613991161852201883987815921274759688697933861011966866124184720339293766423534153401253662973669055601953837478261031376240624433143288592740017521457421865026829196920819566636244442855620046801195596799192612595463484147793560203322753266175382916228784814914816602824226686593148308627234775788502848844297582634323178817507082535485245951788710384868346016665997433532520961043881860136127479450785431698281338184241146871289253685369267099929676126605100709554864622474447120415872737842323672705411146366104361454251483625052478207247885727625322594073611756847529162052749734041232782527067809272979852364683207327826300870665753610693317213657395154329679444887885822371489088635633740130372935389082432146197746210669556387884209444958492112552808952136822053417391698684200763809488184392661691061068203030644556191841087815358719331990850056023021354276489071599643034673700282004085241001737320096889840302979331561648760262064512228939156732717456835201014007155330169122314177924407172275215999997910260259720416605279664736238805315094062748021267410110191675498585160799402223106367877400488401644867217220488736383507802650205946776286094118298176305693022698611457588803642863628064135124523255623876308412980304908327627107606952117049253224613113390608840947354713110268076674837911835469596583362376951189769658462962696918853535366095363453123574287502886737576896655730991862038965219523483109209860052913306564675201381436173825109107704029414516863095775663216400251878473416004164007219494230035752667537530998329762204756479390915292172460904858480073636708288120337118985496832087161870270711690467727439714206427872111233375490490541314111241126205395070563381970765694124655931783576537070074004566049420959019055069243404684006018839252467841187047586195504682726871396764956259279585046869912698738320231527565830145292212440706714576734640037316508851212991438930065584787189578864186111535083045434321112590408076195893577711792880652631060859132637016648091742048494121878971846027674582007618782897343432379735098695095140595203316958055448298401207943000605289901778059170216378276240380944795038824789698526135168623364319741931578101914502406350868908638027864234877756735943287749237049107085049409051546696121641944793975968657947356737052326943848402088421351286126539109739749384711963151386147479250237634694070697964410147903465111699438033901139664781836720280407880030957303027103799529242398303193605710537738044738660252265967525489652613118070626447879304616054832155278052648332298116654242759415686582154687588533929537239896217455065538446216579526598482689517368291064267155660992766116518285738908491980946046758208631390117084203177463025167879269625566684341896592340865023153552204229161399843128697193145530022066992382812085415768732952551172741545713276112162014898107093438391958556545007510264940537398120559002430417266962897552882002594499585141050185887667429271453231671771276170117663410175677376534240591553656066649464810930393937499623179909971739561920725301433358193414568841336965427775876132901347918593610458835025197223419181421143684279498777967843808869220581365293772156190758536047177533588722914407249883825918188636902858382919808582791684364477436396703502600711617975412110776195375660577929849888580708406105771697893234408316210243086511258403101049991913172097029385540869106144791994034671679835590338029428052062747474813294651059676668762861957546389931950988019269148282348688277339286493068421270274096971130620680914415352200634568770480561943496926297988993744141149556057836137780415305932763185100270573162750186791254163634309415444697256815315640213072821090278574289142817623932876012337119333129046172719950748816574227002103905945142495911019259413275883864289686297804730577927042918974435833043586752350380832470699943329760907050115219012636425132905563252577226025374112675616507729056776089223156968332287951542969291302462292678411052749602668764880234749777228808474343417855078249015462267797571760216393478431608583689022559477322859753240564431389110976126041954008582049110778975030798623905214385394669974920010695436707473725497124245265651732437290358188030685110949033115539719916289751767335236463298669684952215778851987330688188353017722387618401894544583804974388509951517724328471356983031084685450842307578336161149990162074400325627434435094371446392783074362663782928890628811338316368004331101004300130003700419654971973715602629493034903815162852084581631759414790448191177582192563678121704228578013962495482274007412453252336676516130959855837542182942863564258047379470659169738484097878073373621597271191738009099751131826493776427545971567641190836023947232893720890576295678074024125882210867571349911971364196406809329731649637670898140296168914009114274505018211250996525798008679153609045748809008711698070350794677621582749349760370423477023859204089374296462201745275898376977506312286854239388417556024641211300314361547285257618563460091508992758655820668626831462179739779987964579165683729552666652816865370908121998472537688739145574864112692522137436052623539069881891368703673342024594569190968330511196616588313635966980537940830307621722719392271453515265687720084034741690424789193647598274865175208984719005731356610542769109861101684687512604682463506295284281806758551117466714666895493946809659718989886118480295238914026749543670336080926987316475762092026416634200966924303100986500436637361304953308722667676097729907972138029470368992653215320448363615266696819959083495760566642011765083044420108079740444203232974904683143654750670896155015864302363910440868191815749210648233801395120784694707113105158796890470039194722643557973895789182247948186085327151268812313781948814655800387089528344004513444134071653769733758277632269350998467216778863379163065316912723416340582277086000500402812661066479075048871229677347697432561162774263724642115866296840966752650624652622318629898821269619335065542742492955129396164672601101555643441882370222780442505763387646354786337082302851187105270899429941603497895451445136331492070050545418692740202293122027211668711460832649307259864216166893290234442828477097705636808559771414466860775090654698231085914789533491646643990596727635874325349051468754144498933900932760152398988973774601042182420751546767270022113104267822165161852142711322961202566473543515479024899904505941746065986211312404305050791253546093718909916648303373422946369003962432094927145614366189715751408929400028631282738376129604048073394553625129038461717182281983648604706271501118312624279810728265717518185578658907290749012804668071947758186622072831512351307130656466086203430870707633595432660063834063033636701962025677267587631084893392976882845090306043579803317060033109096443286039604966762240532570521673101511216123026389144589403177003591318986610752223617526266512396474801137243578627805715192143341189436118566135391206915902991761919279946991563680921107535596880125112003014131012160093652889258683024869024705191389128455349499614043959507298582123027821331359437833552749051591535132244697876497970839839358551093102757768095329099122178653523362301619889425509820631084484587087700809976640255958290456246435314747787666669634396177993616458992298599654126934647912650459242655047852423843746007227020216297836242804329502647204737723356056258051103870969075073996315446642284049111581632572281835582671374518820218986911412517468383683012275616940762684851886287499925665609281682073593581107131715669811425081734112982632267757261920316389669809328244619220363892047533926578497504685834491053320567890339227622719073279166443498060065156776236158974019170800061208182173091147864349841524051343129905692069957896463950614710207107463895314495411952229352314154266802175482526812851107243344443565681354717400322782886873206376414055288085014950927871633695541795413698952810088768310968799849325307564959239520693127798057775058803498399780972745867900145660878205897859995144203823597803762447636276190285107950026960868034726525297274428897109877412453946947304165085624094429297253788608428133491942608816260715514638254732861942837878929551404690499369494977548167020545302859403494832919811461947116689756605402620257938862490814284000817302917510679111446200697358181021949114872350513118212214975020601162773076397294450754573828453443788377761452446530978626338424927721483181960675407947228708642456448498355055065921867637830331466015424364303514968572094991182114787161833192312912905208525753955521038802720489287595052543208748427177362084674829543118680165893744146068711542820207208988533394673680064494739984707505480490798978117774197325404472710611673738877090519869364996870045026046090717619886561409552764102195535654475719434186134518941831930831784445603073703158031778223565024647844352182299979394181871151645343800757840914200504372014139675799404484781442078678131723344058384999670057844541288898033150502755999881495097875180027746507719026228231704532794375979688508411570806770240555789390046197326309990287399350016630610604702912460974180725947691792328063545057394761136877896673573255950103558411188897425663896205730914805652001044606635639234998842213894610265199615231293356035666802192425432206260681785329938104163984924749575675963202120495428993147584396857277817162142384414247599175775153493850812452795776680477135362417119727705384929173945258450291249333200377292678082875990667472027824170668319120854481896068188673882738853580852337377366347760734989757866869736676850550114417439754071284751738140219141243164857745518281742679149041379356568594438707265244533895752623852518067279865385651886830458949942759281310819707479199526016801555072345299846041073204303933615352701027019754586673838616692687138741357178895427698576919687317891621107022167766666366551915998999666283142052666104461121061792602746416420742904163837982670588488148315157454584077226150627326948435964901941532447455900803061716368916538618453122364353765954081912814173716786293419572512009823661388584467093482166493924011719206650544308920892422658460672340270660873887950914623948234785311736045335827839116761118828995913023366424970427513223008043961465377543424264297755023275537047386472510982766798659199473334612963408048275002939192877516731483751947717596310966579707764402046617736832022057790240347095686891523634265130914317309067348324530359024780568544868830959800688182094898706635778204743443198160049953824043576959272898912876838700857253233267501055655409981535018607828602578646679210152075902967177207480131959830542970416358825602491542433740735530870128562881634568603252363445273214742144197482889806072430123544600238123739076106524504375329262176246482633607497451894500227244388012306153034169627315178013186008977178787011339178487033247754030772807548947841650414919679119615590678137595252436364232480097350233086827914222954375688141820294574657496318882360529009569148814568086621755404531034770529249912497227643734415063899354197515879306520145509338233951795470809837791037280519475574901209559076801412716497345274599610442337188889719773249949361237533678829353628598532712555616256103597979945350510649986511757958126488243500870825929932136844617820245984814253641660583935866100993070476628127462649662783014526997932810960793524517101008657586882467731983723187277513842259486537317307135320213628456227204239188092912658493944904620747570515445440054871815139474933255805574792440716224333111639719384842045675541083678998948356610524605888225285601927895897652228419650280034378020582318486450996218232816416363272098109160313341465544015259482403443958387705379121726128468158294780627493687848773231233632112297206403541254887965919035811907887337620979176334982510046194127178932746193226949843034346689760984434603746019437507758586077862410952203699343535153362060983489316844023120325966270116985570978015637493604061766334199306480140753487761420156898869452677502226576906761314131310589739521374324545715193873071809692498753751315339002275779090591442806063033218262309803103365558500130038209331945319190996517307237976113612339704990432002239996627160381693365472594614027066907557287480908056386450345220471899294980460677561614157296994112973447003574171385835382587630965411109648297147505661310813995855784961060505057325610965680844520469904607676766912585675542396190936936462034397132107624757482746124416455360717157027735130164883488424157950488425118383166487321305636038441203786045184307928554343152035282937924847607463139811368887073911968004795717399539702239002593206784019454934240264017362811332784959081119697611505288857321249487189882876550457714159558764238269651947591787728990123655138480583339421299126853483292140870841434959484337181322593267099518572200728531696686273332255610156934749515952076291184224796145515032087770909264062707318195702786668974976393802121374544818044678302244400873737925386094849952710878686349191495660928386307280410969980375106995117662389337265709419787374874135910389107561046197987745490516970815192142971289208483592088705058929032093908079660687800446368288884678818722179871940205024453038348405916977285405483446065123785141833583677403708552495979206610487606385387213400055023560687725531430873240551368404140893833027269028037413105413211167462134479756180294569201333919006189144977062528280108886284877054425543955854625889703415291437615438307194664420910863744990178469362363663374124794670287558922888494597779960702889108321677814336564894095166523007672395049673083683454672584749021157720449226679824956519006863946796346734912177011556816690748471712634209122801561396540185052120661800695248981812674665102100970039447769834160327447233994293466400651613752233001184690026554172586983250988177958526392397814871372318349863455395141184875342072195961965981228747219804879642369670602625392698541172686134818090437673835327498646550171985762981429980812444748385902024410832573989349505630121343897400461915014535972794902872166141972669053269790645703534195450016284926014552878998420679135698750894334326970096959001430836448082320834368855373411985580837771248032458366333912395298203848885800451721116225821454387565568765831496026803290430570982341592548444930848407824438795791708552476392327269375090080765623933088311471266254844883893708861776923757295498879263269204825000213553810401957902987954643287495112071905278913723915827598885129925387033999715010293348795649155651087324086803839323002380245518566935189377075588050010601498829278334761785931181879249247071300014482746296164570444711370180286771153164743393782997212876682178050420646922017666888619382641787658343424607685964306661522685747021147049625069916026448430001496179005827498203799406283358177676313584751687171221120907352857066679949123813891298870437867987218421647263705957822828524197196067402239121551221177423829824762916832876844892321884579882571749035200745697800715016174696057779738697406514200329483922611372175683651028075611629008320564061348390472165961389690907948412123432139286498814691079464474907672845961609288542504188751472775378008004114327662218047897816590199222605661623973664338561001763836090437530321258728575413488663222104182487554932847977421842821413459271122400345438303809130754959891223641573826358557778720636139955661019630506704976104015293931120585009478768899190557180959524646091922732200254911402803017609968958115078870267981518020653201305791939279327558554435973824264427484498966619706595154456586019538443199859414312899920359690617275963713654533826543288128765101709200593381177441079661234050650276588673128202378640888152322033233230306175766761983735106298571895923404644783930365056019492535214805784399719091869459548504529328235195608914699678905898111184140452649234440743381827859622282822771833663704424281666552898240829234171739740804532756050709787546628809318067641274967985324263680855311310291224900777511234080532747712901854598778600609919183851340026542131140825755268216014905979518370268268322431026806105797640240689082378578885098647923120346807406209126361080611108971962808376100626271331981148204161560514297012795483707157276248441709630288854414437078962653757473714294031335042328500464637378498022888383722161300609568772789557832371286778701762903230450328458749404979734913510446843904459964829478736881764386880543270979988264551823058633586353370917434466344596500790242444285428046329539660736676129707967709353578636200927981942482183946846094260175806790560681169612751597869856350365066146242554186381238747184069421711416061661963549435053071410640900341587920709871615575565675684510405717924487344634490315771504728142398804445424727418137704891288854317462711344750926961913140799643690767288513772429304015974751316626428785965433528025768100170168685454123643243658113982405968843886665349336967673607001379015272978720780351065438491720854697305982788492158854178954744699256175714693006881275414355955909469202787647944533512612554307286347126306910607139136660335984151533018777801283245048007037215911674721424652457601436157541508043314137025751763487707591375273637457107090413257179470294444942268428016268955183244421973930649632603122280122738564149356169538251298870449288775054021814301458750978135289849103775825635217520803263904459865977073992166087586462278367352391558214642455564362208965810532095161993031212901891836976916967040687346307551605918845199389687773478906564463190225701540854570587668428330067415619825729974517322108547390611622894008007999970321218766531354623621375500809424287965217898276586571020856248914687571879682080937606025847416422891326312360883041203607381145583472237917129497136270021404391108331505594736050208216601538844299571759736795694363019706013549025320580067853089550917473336234271547215787618868059599753001591860714540680921237782596558057796505786971751272515009360989813481216216369944159544352133895396378058700338038607029602402783187491157840674806545103361013662766806126577997434379244382491806513359637801154627323498181762256951241301652010928830449639732054343718068490759087862805405178795274833780405073988657513220438754653272767973618603502701706632139779473790047926975388200535835695839094960144043075784164301701792812361629654804526210356771579127131412300861682194133334126077942317581230366609451149735048769113107582063036911002966249716023493709537105678379055111548035122449728938479573851565835489072711098418860930792048827354719957446550838591321255155255267331350737807942168202935052424968800071835687042907427033295323698189299526318515116523020667281832938660951395137098041409895044064055045137427822548378449257304955049008128514219341443701129270891981797489783575753912795444653713815101212763124516805591610119979878093426605528830903798614012646515413944910760698836106228170228945266270793801039454694880094257488017231653571351547539671777315041404886752660922823115794546731225789088973491114935281225946770650577913054235503727721041292731993860864239658551652520835971820018927043610877188525495224161576083197727744965599251962800254703607545030043186573794033317692108295745864997080961363626053177218167875844565628750689050933770120045325929393893761156334856743133786633660423470813212105394269688605361682613499860897038815161885266446185866886083405675053416500616412479439331986117905384994757564310576152946976974564478074038486595494942498477026076739843737939074836538414996218642452433001110698701772038111475686487319025174398155638350593890562240812460350241573348188041675750898540442108057390567267742111034169151963318145396791330731480627326988476378432420036825174532182501133136218189398719209054619122672361769228039625149525648252224915484869314521395767022092934090038226864062410006068321404204803324116438584161817907423143022182393463515811118826516993408531298919334188483109637346954804614118971041705634840928457220902546678139759944083272794212866275669819117946514255908209950834447901873752015420070652982454578741605432798169860420457772895552661663618103799514774862214015524515006994832725212536499054846401892705519695667947310520174481011885739877746053406796162843986667006528845240588152292975780448003595737682401578366680399810509466268744361410734379615488216421886497430393327185854743567902512488363797542673104952085057477088217885770484140911412766365796673280804860279122594582989860152917570549918075620204765644702092634594188946308915567335135673756911560698022605048984080757258814573474595542102244884710147291444320006716209611161841255620171006543205423614447917028198666715202012562738202106844667586366706153140727496890651475155418395652650492491022043156992317163526705832241564758876315457678212748126454688248959133061672471075284723553676705638981859470189241495331408872352124133473039225167817599615158880631172867500161442036861134938298234068798727582484599214304463580803244787257400512780665431878068105369787324089396719767963548558515310529383357823072352478703525550356317004801391895215114909144922220618760272910328751092445552523015895707355365743568580802759382987656499932207085901752849782148632083406072744673833634337070863816593081266032179024929732522375179743860910353884532410084909147653322333979518877605307607674374341584486690654918519881084549694361680614631666654390339353188084098012815636238387817315625122390229716081221501545889153264364952043938734839113895541933733020288397452153639545047797152076224531727995851436328623327615334931913538371626212480074983097228472888230818827947085495076573894503408573449841660334972344724756079733307501130890197774599590174774220177894615220315071728330832291624661681088854752430474694518229762666003187648079498685621595731309983691729900253239107859128958470611578188361182981259560612019168788999495356664030083937503523384737661686152807655746889515232245966607760761703700911370029761384180878428893240296614845468085450740993020409860029738727792890431143798912526517685915432995251564983099858948875203219857897388404708614147060326658485066457730115605160752732600209974509969074254344479577044157683038389845564703517423836220569995073445203895129685209015961651518235125753318917374328227973163124219933096698849470809291042275301703757797462706137954012168580760194837885469995504927763782460984781172307407461526993033313704763948741992030450701234377813513504312836718573607895423763153890435642861984837152544385444838624812314895727676805289203843519838956678654887940178237482376148136296924823073720286789370354357761222268229889408449750803031729114798304234336512217004267609665879968625538426178307050845994381504954748593875551350747117648286407897865226990040594860042778441671530471273977710917506053878204789512377657083617664061529901248617772614314191527307564228992085157060370636766892609826684529938884584251755891178979283495849806130232257031766081731438561185286391509581090001100285557410262436615491945852841166494379900236019375481642682363859704445019855719530367557225715676712106335783798124555045229713125049557462518700088746414251169722532250862927046920032036752192326315655194170763097962103200261143040249936861460340440996071984678255843265608074070159434735232608072755640079301390046342054026927945981403880830544203219528540186461450416671586942117303765014328486373352006473769404322069778962733603918147682125928803672045371202641994256996399740898104486088393780906803642236562655790435593599337438830844567297108587864506239439541871039710354664142629660259005067907756074910016869107218554864874465727438633198306476812506698932360896575548898688887910922824330020754247276331215033345184603850250760681790969605211740366669849693140888991706573815737942287410480104260138431763684057218546028008828511553968421645368292036843208044859032295793241078554132096877943174204945253828886773222501861612664980733195894688627267671251097761472197645768916715208984417016371651048867720542076282017335080357456187091118758661725550701567415184389750908151841873466635865649163529153661817774563072538818359639917160604670192653177431032442432152342622719253645316704077923837922521934559095621709951681455234429693230947709902604382698309908003933917917746615014046638747022935044658574843462886029535305881679281069069952869795017348378789499294855977875573477808932757079636923631664455775159590860864220876713845505549554729495418374896387485805143887208636076251218668042347831339884589183259570495741033745762512258632371602931230433569772247009537372960361628373221678494905457211642074894874708734574344349787760472647477498165937382148176135296124397796254202971861999131334724306215771434828735167900735265812127568259219440751982686820475949414471525988480381030820632743621841462761010089500408627701644887343192963587667569806275433626785899097994460267770194069954830017242725734128725161175856298725291242930991812244726643786224504087166166084492363667513882983826855601205261496297125658187411166707898099785016136855893281150859481854364579573459373587076575572895703417019584189414462699542045741764353696388529279352694820668461755717395363811063493251875491406418257210059778608335933716304421438248341853620530177199647547484912372120838679490657981745682381894977165498919236077621490928062211672791757403050868676274305756169047387227825652911192145495111701209758312285125559031380591389155821021092417558267152755634053044421507031559558933589309806217437440132333818416394154386951626301693484932284735039119370011074800474387784290741549059182400112005064921884901392337240586753384290234307049305441780840411389118015449383954996933672924380794273941707235780127574437887531892422643384188306354990606515973314371667798442409930558713697521860258366636717437500047418333255710261809334051295671808832330241720618881861054907411459307053798888087460357562063434718202921317707336553550442745841274345410498620893607127819795470946901879005843155091366884183275818813408955536833176494114124761308758663254686829646377882540417654686176240485901466134652371505679481380155565286100067579874014927887482849523070683224692576915755078619859361463226404148626277608245366240811310410014346157764261581455475325461626033324084328726960706626584735002063819221721614048628067854673073045774871256020843532471483741355926273351709926295487658751006862806970140791093555768950953089781439794112158929720093597999607094520254419585608412346463825224190745196614892417275972272878340906045184135117522580029157003451125176482697088822736008229083239403225287243770812600867245958427108367522135265551174090227763961752021403548337520676523430509738697391777370469175819225844141465417167805633139372319213999209410797232074059139232823689267849656904572471676245081155106365145664605695669440815229170201017254941758203435285660347915756467500724418030001855023255629542140847283588648028019343171630397734710372552117294082807507341333219234839514335323418662899250984724237209722794869169437458636049699329072921134759529675918204425351017840560459485780764223720389345993122856920395745950321284220014694213784087508328059848886500472227953224602347770838129185500712026048670506407266414388347600125161751133425968052112447944562395271445358921696271413942877711417648028074278922716623392392592745874311639235724026230486445679245211168084923247572469233037381024208413386413986216921293533557186991204259464162279630362370825997614332388901610970294399871012501446930925969409052483722785393790508095354844017121265184613629828914284191017572320742045024512510016223703907576627507605912112839480005019139117445522998874413485552337048364875390753795398527503326837949591100569774205511622233566905698412581235567762005698897681711877416800947299098014108121297353857601290189351634001462558221936027049598397523731133659648989705689172372168664807741696080865642002707475956041289033631531031006932937594261712930098037281901843908952281208882142801059075273039483122309641313069559562612784472055693385200369096857542172504605397789907142832025508813776122862308174076547566309745603546290565635729187601120967763949533210010899634401054246143916826852691617703102028217331594532082135806460989844045853729993376787318056834337849077911070446899677437155872150278618795175079464704714398708127046218001935403576945420120158567860862095273554433962488404520047142527371765653455850489740237712720619736493753798245577043758187901740452897036368948350298845696241318776801099374723684244094080275818775918273850821457521509514941482658849974724891535954128374571049294804967786242352723874310968881494255901769497304239648573175956009814469755766243461853504933131516619271725231355978549242777446366083686088263749014850209143228306635851156280840447993772057328539496311920947489636477764483692780476091729256910228168861772654951759202600410869772314475076519861043213436726061466687222159422193132643585545569720191398963257438807588620695509334548962476317313485729575858568880990521834474558704599488245074626389492011222543578390740752500003854417078665900652124554236772908060789864702233250553033854242777241826996161292884934577652166307795526594959611238766382101874135070226180731951544380606927282323773149023522582906669437943286960735083879462900963155113065678470168529684778007182754867275869352030678618090494421178647161948822978737760119116618081328426507241905628429674217513367546229220648659002558608168563601189697329843465817994148927646096858664936248097017730235853185317627413720007941238727226680813213658079256495806318009946342032408019114360591286752572439974723378205846952522814164363787839691964621458682824873364891770478307608117051963050747172076346093721175859685073534944201870592358587413938448965801678378733578500240405965262064980820185495202784400284700511787118820997640315447221289214281942101422354947788341842614783481042170130575832374044593244200459015076644684132641090545308865423485347822438801421873571974732895534883687762112990574221162884079324947455620418854814299269225534791594479964070678262461123809996597859114500380357000941071664463536638972526552030806054253678109628462730776022095285529410227022589333817666505912927582237531128379731098600763344798013330703942612638780487279962525915309257206809281227467707158846846052016629504224299774530883701433135614375382326055526700276488088199923684161096329306340979520049921756483611177694783795905065096478870858771552125132168061726940670453328250669597965626879982106042916442162869275205201707303594193128302419747837779304568587783775125658510066752929729826429023576937830819617997346159702427089194327937561896069279644314550927523338937318260611238327219382880970955342057049290543507323734266607018748495924026343085081666882215879336870322515310337697913032104312825760315239177504501746392519196203299725242815628649380021871766977802926895580801638164427109897454416957100815480409537322400174103590281388834086486170279043841659443819758341265262563122243554475926094051547052706027362375439683047164713561621894342512511779311900179453345872566216662915583143397827158361022638819813688115838072239799968097234889609016883540675836455106656521790565579474059234084587195059719879151612689613500147295676860912224055891135495825459503272135418445849872952754782873721012981395218769007593297648820119540209283568458114488119335745407482022997427784938993749098036839364209655597737668191918735444261945845684235212231308863524162863059739991451042313682098605631865829495113386848176311870644310959572770269563042015734013962073912382626231805420851713598019718344872838176062914536444078310627364137479438509324150429696346799346281561297550598683204817698185875827210056058541607433367618116869688794841049605287768392423046729042219147658916021145181075287700413856425075469835296127255946828907919988475519514006736040352405392500538935971406504390316013944849768572265249894809434830352707454277478130639441422261611428927331752646713074255156694406708989502972749886339297503793349300507780224808383466706731048775887017127793231583827999938535022310873423822890373117339418767753021570316524346626672385295764063933862059810043391061748215338623935006770658613376726143622158204433929089300532087244408109198434946350197591556170674349385073580464586248484322326356278767057395742326091659340751196140038347119525619771006603592652335870393247356442708613711016680873882140938547307634573324324645899172165250633363529129684696872685173606492554834395537665357334626312880390638747123659711803364884501091747330810411035019160876225065049733947626145941985331569159732353119521405853172185669360361707205117826811587278139968213527254333691729134928868510615826494266990523335616155646559714279261780403325460696722285594369223903886420639623490624123937977926888115650684131287861470055199912228397115509211882516413739267917473036760858403225227598399751991768112527883952562441434805436479704325381166986561974421156906034383804999182868941649249938934175972188286479459107226547249929343642162697905398284678955670334450620947297211141405052638422956578373021788424334474024936071172207222009344032689063860519840446397697538768849321440143181413572027869846347771382370696446217781781996158317067117576788422880749929030677086519389346381885643174478139650545176127273377026690077142275374849154521264683097752891669690681647866168839211553881764412463231417835955180377233017460558626212086611619905342145275241068636395764132769198907689248202997902048189981720519444497393907621302235907868410957918848183667847548550755782385123015454887719859059152096051906738286254905810817225224213035835449481446118506488616719434256444462476649216649402583482832358248203380228119588835505815356720474596309060390679146139940329521209865351309871776170107216494573212360823374113041591783984554349638762242700425794484650173620982867125783684590462365044527921336650220105564122848682303575324333037091614315323838286243076902113516939258408595353269994059419167828820963247233834536253411741830264148555079016665549639460084354734136793765199440160548138364525303625075097975310396851661918338018020513506881066324115526204721225706113595232819000707350806088345794806375470883841472219627380870292321730717282425776338925298259651358093322571202582982396523292126084838662639346277512011927314996788403530400072652804386287888988289955721275382004874863513511014571315158405921769478498505349430468866880991879020306339804274239247169933841219913003395338665060305255387123117585004753907780997176772280875095027391751708425266234861803697767396072574048264020782223200875797193828942671270396031484675885706641209505506286265787011067016890470133454322799344428558501119053902246941036364613552629878323873959800859916391884825607940024567826323198794236151689069193466172017563565866882396135228496789537750605970938104799750762646082651567467650259297034264759925038284063016327335391452308485790263082840077150330960241273129698700633612280496406796219074882701553561391467801466066508638728810534717748338192898900437736044379338178792781140509026893309768377679530422532013187328003118538034198928497045736710362932031139951064558270274781139006505158412999619133735420149036015913987023704147281007162857777617665480756509631549950519427065591400077742153432762433766689381796923641562728684289142561759051805509935541968599941641665857951728166953825795444680734708129408151821184227320080355361957096027994085935324178337545330046075033750579847819145002728294972690602145482122859676223688098771992686441069004492770002398674209576061016804152270253495955184792999480376587648470388938732056225198434449442088621864173902314912214092538947868775696926117849403766651473934523297146765228363745893153917017677699361953596211769467928307856475907223424002341639692625034648031433562840125648532775678475996662596632145715281434849027754762497050820220706303778273451311915505763469281444199679264627388460480924520661911814580903877944653902797396379336916040426950396920265712030271748386482357536775869655684798290964077052194801028992407837990366230020505292744466210161815326534688595414912187946280277623315189381355004305330971470177510276227954464473883363453897333382912643600671287420089693504846382056892125550937626318099986779340268093307674001905522156886891175338422058636547870736343789930022507912708217406084823482178375604454145910526837356984733198507803460593423281072520951674623150850953706911203956292158015024073326336976005961700798890233034669822331277898591567636208545342667435906063591421785016227667793752941455706370907220117771479355205422664108595947527405778007583740189015423643588833174161410328241435539432209845278866936688120459252360411841837783715927369494161107088279967214057521500251630063233322185820516403527648747508304231557654213205233290280147617908154196746304289545980909771390490790833217238484244785394460324544986957610383702838963337912706112836313949218708267828278338008348619869817571414729212486089211676322683088942769251840420208623530677843905283703773700981342511404133658259019199247704389674340059929754920893794079304360808881101885174767101107615053178829943478701132945906964683761188659386620221942650805805965715143168062275603742084947449945882760316681662748529257012077277621172456443477632027463060568878522780572818797642482572439174212339787881364501505701378507982379521416576466801910655773505832581727134721403607762383696370551902464353073927340470760145042695650628973337524315828617121998550283257004843298121401084475717485489746617765428618503264912589907825376858262240039528377999485972420355282086203595280659156259327182445489031328517061346195173302919600782423334360209024266581848185885103320919410409629391465844799577233412685493094974749991339750784203714634342878608204728867416173035581216413052336464008227684480514564337153153064837647065433690000840833738438682076270829315115564975850449853289891430662450708165129205112127645395677942675727611689238307133724316075545241060154747433458540139825976870180253584100801764090402228085766645894636682346199743948631635166177759888122534884722643525789845132879345368732461630696806331800827039786033864376650705206900650632377792292176358775087771223927591852865207192322135871228941018683674141530690047952678152697951902640301420795087058870262319633547328316790675621023093973171413526440388707649928214691377137523794074823559992266462383089993521092730557646582631565273013733023395865804604420679349639026371483464279243246718170229457552349380553979953065248665827234314999841752953291943544938935428928562103844053413712841404817769453157327971842161035480717990122771030255983262042385545431095362900461975152902125740275217875717881888385180872598639502822221253699431990955585463443872870621491947059177537118793514457651007549548548554515335604122031152910185429312172602039525259096982331614379957827216906928323966609617197332053729550153388450323548522265940607321718527327506876245998294692112713412415956738312784546531884050486153657273171226360535626578679320278833122339043046637479831224859121645750650366807882896134037692211736954527925224029722729287184698309204319221336949938377774801727310589718579891847341477185164859574737753690875063770906047141381753638247003481097213546095718175177026622130394647549243729024307957694943751213790431662956832919008558776265226628014573996349135197773150859727467663585428116409228240368542821488528313658374021947927052433280796808333518233230780109623276367452571729056701580077036269298306870024979258879103724119175520856458032498346442220242885190593993627953207768023616064115389013814791482529270948288486137412439736269713403869440626682653101050046806928892023351045037723198603759300128661845537018960508591543083101842431477386903726335244858708027341008655996595193475500446629468072955798886313094893842587421254532378180787264016579950393937189629503147088482692687312038530694386100688854868934386115495115305141338560661235888636902258657372422260838212584577146799737136114408687809888769147323953692299671054723023954761647530326365010156941776949269896534693099152130584178920722605185220360780796612695400881867718920146707450350939073489752173371784065530321751874293225406699043588853400235979857512490268177384261057893103742415492549263029915523720399471035273041165802378879915009174175478990556601465311348086717624779181671046609752768472204367025491712838306323162802242396266728616882247047459517693287183061588206001544067790950751150178196088027620784554530188610756427845152559307291962762399785329378878826259619962753904193717642528161448845582911609970612074577961748673118320885600403795335128930693976496530142790436263989414752842962800882184117629916912998729523485184058137467397873890723388454671782141010105021162094816092401134945604496398713231662102333206559355910487389636670679532108984228181937706139750174391304214526153226003642529044116561100614567084610173181700155254922317028371343179566022077775273458297172910884349444265726347622832372493129120611926672711703125938157183961413360259378015389573046615133292713955735572216778110873253456577667559905627663549863292184192317857371803905182852501985410352464980567935716786728732345053145557649990099325984036804993796350157762204012787346853296863093394127069446210619465704294837241783211015468043726656441410638190288575407193078189774956631129823808181644575343126508542518631889729722933234905404441687191414846473655928139063147574282156494530003873232465661700633506778756549343448088664491997287278136850978226153818829625965027114550879536210018171593350702444206899157654920023922385848759239370785771874869835414400213057295596629584566623932786431752190534778824273843604811762902867524810523406424215801603879404103524980345878224694458448454814466668780952176714074721490790028825252615952779553091274821662505753858476597952231289452680346781704367801011017824032939554533463744995243882899653819535636147911562546537812679720192946411232063204426202631735526431674713860510526086545453417624793103067651489466216859752188431964132399202313585326874685102843923108620964072375711308374922985320303943809663187718706256760681968926635724790838736506421427585496077344994731948855880190840258446908870821605931069741941491040255106729610241105381503759830020861706899011746036780218889631188279754478115073076558453299851387508243041339163162536852041677709281679043367616609831830483250720342826432122405533284202375964696687986908779962247530437834546040887170978501272161290696267569532450595701468841966829479764935319909709272338676508854403382955080763530700384034758691030180884477668363337677725211909415633566151474891716142687837930501884109071195724455774965660626978745222781400643222372731087612765671779251226635157272962169401495422495325259381383832062776598080019926527178361195848835607628222073522369706277212367970723094479771087303839639436356433101630165010235629326946361336068698351925920377157825390350162478037648300833057766745407060982682501033087756440848443504539770737390055514657496540237763148861010980124260748996411307608720633087278853693942141022309930283396113916055635192133309628585109445423577625827978507201438569988426635412781163575434054564222453539818674940209696811772936080123181925549461391113320074337685982452343036189700674169286012460924032402883509300162260731584404126120106730496257853075380093961800880085952232151332555253394541520257242183295830955062981420570462360485083926654593173535273497310084229829264649811987505547097028619573943741499861673303018818413160057249012357696110340088006141298474974600574448790756548457521299250037057444549621211499994149767260622630343183391605400999998088078132237214124379035142393811462717102119204403554963451450647341785443121653824657076200842230227488549597655190493495568282443710369181836204174344275668570145438322580294762610364273913180997113379692668168744777170725208168281285532796974912259981195068578809952098023419548519001960430567211645159530877871747680141906834307552464030139152104014772952905251360242158899570952501174723104418650634539776744221239888355631380446276418564174962041419965813130571112706028587577643335463119818761804927810016425044690997586292563078791861093267901978211512375894553889970691658198126299882269471829953470129870375141477852374179259056183507127301395353391338024996219428776982431606281963515772128982392207340671224966794553946153089561179786409985250557219298978031665302767497715748764216734371289909573777311389169131142960874440958756714856495089847370450641887581885542840097009795802617194652812975098990414360903728116720381346379000919412997398804790091512407285548794231256201491898585300053607538198744913464946514287209302868459526515905151773526415639466109472560260605582378833515200875726020908704067181891424880978300438765232352835059727420663758271270103659966395643270076688615062701922414472577698085478731768880563798775062558427727155544083186245251702742695453677245243023824150386134575802600100787429230678948615968786456040494403619567461984053316978812543705600653068484455693815102627140650278870162745284038697565937707030851801053365943006094206027859656696823412720162058240216781019470011595387986359779063726646745992898977770023690416299934343001019778802155836163682395276441447622518767725876066381611769959735925162255826336352732693302013592941379269484547164488263362690088152024909918634927168580365322197627509725997403412214975014462929488639569946851398047838306092841694154910758840480456504643018059797917223489446672537244393636439612421592113279746459654344845259249864608684898227225200355275596609640293508034048142943454625528757359281918584925014519571097591739462270879391585963273577132538763469686158020376157752834506937085751162963096913460220813978596928926114875569085703581299532016308565747323764671605074985025770355806268162045687588791890396292157723237019222780741943175763695966277735652785635016163235965297268301001381237141436645513769220624129331164945082304128624490781215734398747607886699532493227974403355914884597086322286905675491708099359601210449261928121752738230264277890029164250080125782706336471332395313226030345994374191698694599315950637717756546162295185387177937301932124832185781521743780206717681529955734044284967768065984710150564742805471476058732002753518413671948477882261564473467241416976195711055361484124417414990711461025650669915466695985617529228588467115995843504726628069857454667915200867280227337353096907981222504060500249462592098509421233218971960988197862601729290474587159164588944291377345706786873618318583968388877278164164424975277934110495445753472134487131049857395262449294274209013845696159952464044050667063830880361998702268490144090911207162509276015041339995546244770597472656205782483562419542999135405068357680584482245931004061663487253377915079643279894415823183999773433140773331056132584137056156759152373116169609136458892046651749872121371067385688888505116813860647203561080465541477306393888291805013880916585148065211603905195631660153180441945759996719673127922153091340787418094748819543297496458965346626470928852658652734922319521904039224883379326244214458030055061615822461555564642932321525336835352842326392471199539784188509911657572022245878500310721714738374794256412666882741857204152409787962790215233316854409374181302519105996305983344876725503423033159428302445394063230397708979874128897681713680581929478897949514854596032950255813212923862486849259573838896349426842866996565306842359854151905503775254080854248849763980871809210198066879698121738161283802188057279472145699387427860510127723736311644601528061631897444575003442769986697034142567640727042781541435943794107501282785065709135674835093197867371512647333686696909689314531360765816342268196475820783076124569462679358149680982644321176710754644049765101617253501305371124461644718984699773042553137939062945104955243162097108570745649922170495107046752810280019973271247825138619034047877121070590459870094123925633540294087834820040889769766727120928136190149642396394678242465678690492964171636597799845745214806857211468428341144580549187927935415131838994933771362299714193229416014250119106524787466805634897251291042203133828872104692498883625945082591747761430206092454523918974273032664189589703782461031840675690349934054213704160108066733430894568351367000893693152210307057305771647712056183227286855444840549955673726321766246191414528500556324204919228583128495724909722912645280407087807628617883417860069946893283528359369974318239280793947433034352358699066183217411684754139653449609225052660357948059626579613263566096917989292662253853027217685485302354726507981234050725993619191337277117268386930069984528490131262780007050852494064494553007566896282570097102721974565080282587397360649240025104168485408312006821055344076242686465106928720516943200536665770656511709226839924652367446487879393404842020455900291817790255278055786279361295352670075723156279223197337989779283589147429697507375700524831988445127769309767469359908215459907048115926458572592579530105444794757037854629452905193744117945519873405783949125982734166614793623023163984970306189514606329680706969474120874050986505353989095438047838083131989240353843332474348313297493893090923152312379666132317623877587609027893170958058168554853380461924635072402614464033291094065256487873316283556846116909609389804311827004087706985070544517290959772202626471578430842832975733414405919805936636016615079147785589407633669326660457486400024629959835564478241309064722643411163758666445218491334743076806486652628282698022480703578410916496987306845176418184179854667128193054064753352484153900319568454095621306828551675283140766472648319438230112385533622909816765741665894140600074045750205557598556198806235716854072140308435580499201341023443315855908130732721766475366746853413948671047054714322473980276696438829277764785169000564005364700565461549761530779874178629203212325068265663413308140518751572549468918850126735935452487990828702359609313086068863891223382221419797043610954888364219568699653485654870897474018683154262600620443720001576619134053139847857819199544089785934433516595309686028178920475375991482200417962265272649616078051188915510102801341780042371530850616462493482743051476385045731972811095903610336447604024589127713387991687386783844052045759769598534574838685756042139297436112907785857103569168373916262869974907173761329578781462158105568504265607355478448201268872646311239408205095062970711588072629986506474167873073653303489672763517509877320573464627286374491814613703115458705286043405693586284314279703959159993512559205939062781498767302038466189454553677232924803436608880717384330164915061643863989592916259960577272504074193594469403085547720195548614187540560249511247905598569996499936060675639891447851830720728759727780716824935066222990046969805586938555472478567038255449757390739783182289997251177483746274250066741211170933640681596290937263712722001402171315338544176800691783199365959693965829284395378605740813085594447680766613244111351908656821388525124034350628697373724236682120670090148808786980243808887394299370113545580785710586086825686509125876533316661345612356582314220581152218438881387778580097637898045341074028362630707700133199426316373159180948279919761281269545015209688602061646339345323193755382785130938510194223188078275358440502826228960980526032839634714808024975920613474196721702341677498484679382661985968043750599503683546550291013463338472543653336875085561602573575262090037243936878876058820782108683953920473234457796879327428706933010401497390411373633998818654548748720814908368073443941140424612229868374073718176384255964851934313055493300442959794475304351451799976027130907603344556079584288622401357829167169700462908096757678141985398954805746331140922930169103316505128982795627410391644202698619883834142700048209931715221722192713172534325186308754134502518190278889021343040231129199769720285709426832520517766933597788210517598097030201673824597216499158219880524581776454386745720551768940899442463701926930307234778428657685694040615745449009594604509800892120712052213034966230073540943570927407449458277885605428326794049133990307009439925942498175952361351023474804466785679669306114680113881473601551631162268167235797463514088971327840424368785399305269348637679064331289036112343793645306116602147662593469861876506687353707789849632605578857754399887933101494803537279036660598776009913362406387135446907582200168683487070968079421501283107715571264437744985451885645311104436173639159699030118717420475399698233048195988161672478043857361893603794900057889111751790499978571073656653665021524927087256654028057607140849826573341832306566825451249066989710101859911587837151163118465151487080147793539530762261704197189459738928447583301044939931725975460587216734039225195508912721712813604740788294281293842680836309187515373309914833886770060792835898475070628381637339194629211510344414857505583826437717593027610394338679409697814097648783899720564723173467551438547392107240318351672545425369184504330442458172837861166571005683101174146368973679208710635506941156157124926469659647506626287813862690088387675415393067214271740672319566522200018820648126774181266315722719749443865285047526669656678212421554628406748434523918267509055565151752080966889655555661277708271374311809627924383201226944694538542794598048724019248449758728632811205744364190687293795049170779159034190197428201087646332118418833828771205205435967945916498820446286084613324457085830346805225148288776821518421535322609999849463035630771692981377133307332916459066366741064261100336496520943697839709393698082321117635916682275607206933813057652149426473095835996775601865144906269218527660578094061448670444294678302762694506387417448380505188292975086021189830654753298125102058104910093282572715103070306815348557315785011986250745833105966327551399484337767974687816349351472621615020984443765775937071669632389704578742480618873664124935461952851087471216917862692869172362935412536152643162906382416351219389316863946074591270155008129212928591040850460562127336480230952602010655903445323144654174358085225153950925576500476222062392215696885405615166222173219593466525300869261898383008570561778886079481847686933062760557730582725201530390786285837668263795096533034354394992483978573084910816771905269960225202853714841439141925935277229034097391107696766159946104608934565227114114779628075827990380232137366772755313324222231875484305810897702005535478052172168277732325946666790876990510677786071337319714164509615981391403637869041552491990046268412360038368394302225689314689191744568259180993514041804260582464016393281286269601011307182926020380335593881282821272037625007860807160767228378890427556279367186293540788136220233424025617072785405789684962587865740445565643769307481966597531551008284054979462635980640955636989110902816512523974962081431284540270756423535380675024446231598568941553414452507644675153177501476965666175129204827573144574572915105503494602551848849290889977956456417566495587043025406064714167197015392450651285681994568415963097055871238562216552454534212370307027248188559939314594023259951472781515567108480986057043532951601719832171391842360117534331115282813144877160891127677808886582429017533572539468117298358248700422390861362562408368750764023591850121624432214430358316018219096199157493927392963795914993587091443265451901333486713176597447384550009828344838562243530337058196382156442016358609503956894650347038229067341000848518265742721149935993808471468437446581436668655595376841934586475297631917900926104847280992622428466633808944970857558013554022799033957767740825138915665754110993103983337869552153083089160818068161002687539646975578337168233987662883867008632536820236196377830946128088596500801592676578387425776552089613131804746025887836501556754945218807841804037150948185952188900375558011422956111317616052173590992272253530878844597627805627115472749379235927179088417428211470878100259822796312309948099164802031324592898482667157972848982312347965564334444276022468582572689674156308963562869313438794473052909656398031071288851563880732784678740675662871785575550346694325618156343668453398026110126439103976680375211485294530640669965961307046503552117986827439430601220000753994157542973581390827381122757284038219316253836331038939444637132145731841994035602411952462109952764931655024067257950242521692731134913640058670546529788636425488378111702613289134681957480675156983237051417317942124390697470527829826507340603870359053622355046916750128020030455784581079234440095618194058708333043099074644353930322789165351044952658370942282935816054739902516404026812134205255044330933525520358546337503826295666224465309635042696005509051772570676341406695155517009964750875196082598384292582380436321591544722537874882435281685274015128391595680030926051393298978950970274416835705699443382837970792591886918715518185326412033388452772433894820864524354445099318782086823074224763868572134108157718879200677504875736873482988954868497916535125025902877810669494719212120773438618135869228823308083625027765824189578086101962100156596602723288715339136986746814759198590786313485571263035768264948666027681773798931592300387877184214409322594431921016601406020565644966732208769635617183736642129714021297003253988890745346040724663779376159761211726661780743460501301960311959433306959662830891131820860554355885084998194371582390538329137750374989614614381610077885189771736239681621260171497400088163051167757704187018531973330823732616138377640009649654851007188267457354440554547741928652738067165278181468766597630903811610952466634240541178155392930557259113134783087158297057251701477353406685223609948226231199742924213283472319218451158568196157819292879903812837798587217272663216901396592730950510820522735367327764414897827671118021190382871677232431581720179663431271878089301348548721594077667969982999787328546817258621466126278008564757401165247536821708688034180265463524895000221777621165434595230234380203516016753539235165653131615946913629305529306357959477530156418134143570550294641809206919852133777834400232578359812835111378521963362901763215785986523630901477596855466730711532143449295854755967154002524368397709038730445750579160928611893819793562292510334504636798374205021011111756358879713773124958872794284203024043462775337176618729923770486792976409843530596616790320436328449717028515541282681196922697595493215702550593807243868101974919306294019424769602055512441077866873618839794093898702601473125353612153761736022712136238089560580107091824089943436205254578080720517799477862567954598426641494596136107726981393785365674998132564191131745240894149609080138819699357318944286879617884841218976588619411932148496612204066103770167993783421812183554686453756640694720391255574720967578163807008155670501796269503306442712168361791033392388850769148328828367046145891656597720605270310436132072212893500418633482463366001713760905946856405216596265953267560661222599415149263713376231496005204731348102546512877575062881072104573251324717523947782511850019165211308573337599078280218695004679603626189864091730717607438621438172504732259370489505762675575188300972585316280375896309324367295482164098166853551230350708631687888959742445887952683209081119919859519398221063145469064863972574747357731164721234115917091922747083281556959736925992300661216885049192900515330259456187682638327473608518621587428413143519173387564488863729065605980871030879831479198540978966374546051720464824389725173145601083447710006129113288985774232121088293410579662647839324919361825640302338857455089728332431933741774324530452700462879820109342277582791089369766147676529436367810431846888689123315767416421984612756889990804581216244990929908797688644771312507867237486070335439461634749882349910621730634296938384290474559747163526078530593656245975848552050458873279227182667954451450150399282302932009063109377725399598399710207876921407207917230732969697809478761124891953545526062470212336708080044676975407846129916852288167455415071332563400070508170981685286713021114631691124631365731533054763661509136319433578038013401107819869086593712094792000411038876966084809716522912309833342609490887882941894964635493186721911812707097806334860211558033717331570340750400693542435687464835215640716545845817558318901517793934374024422582313891640316453014808667437952422191784504961480476681719697452613673428125195854669236263367464086028743540570914989693142130039153687506216433378045665011532100421680339815835526535476422338440649335659360680970793985905492350076528777243527795099438598627200691523997619745071364280785836480795474282308181566376616575966329804344949445120441460002686017156565006454221744019628637821581248780728286641019672671721189172902009556805675499923982870891771604162952392353387144222223286289575881198101176927121313851184828240169604091842349832021703450617986773125190932540766737078518782999823777358468310493164670664713147492354859419826273658757242766036119453764574423823763664113651284431706844247769908667731887529208779033469759642991269220941900944486074788060775987314556102970418132679956722238723194195480814842393284404746820984390827171313467801711059217192424443908223331545074073183290510213892521582017013183531275800671886201534996442778503318982115370196278539048199447313203180331016961346598704906688019178946334076565817755275686829738213660901287876632790877441949694478195454588545485164440952548685633253739433087570234728007207061893855475961792449122689951434286923376465954133653941981761320673829826597749270397942851533372838053497395786787823495644800711683418884454020922287202737536728222056065446508006333155372554406803382530239798459638865426144868743733181516509365911955531936669025627060250939083666995832110038333800727455108046361744145752071574301161012059472217568789330839744142514821594983828748551081260572097895582002456548647890352123811358793608091140746141127992119366408332228604985760366648967925239911662741882821184898138457291801955758095871014827957520732822425516750821241675833771500906715498754746071672653014216320368615169004939021998472183592553801156015209435639024756522963104710906590790075124653491422516609128080751356008215328520197445702391867048224935381784245776921356668248770662054015333024848986647703512754844927325212110193001158075333162623957576137238843957191018709475895791085622371570491116867343862608211793338312705997639247476923097552700278009227962962367577035328357443348514524533420855840251181059934338358499458669364350264537842515871567488403648010188088139643353835496449948926959254625526001492402191379355880377053089958150971486281391619672901419841867450091301513826584625976179221471154716066384753045696006681365695139112437706941926117771084045927314221378846098686734798036023264445893987252775895675628834255922336773334837450392395593225347267735152398377099537928358000224243819738890076649685209878356043816852451147369345747250800364413744221601449032703488785966441364649127974590648669369637247266528351258056806642806038282778020502793370462754879871896514942448998765155000367244231621489045062631908879947324944529660275662798374225931085978205875340109377838462668071966069051833454702042234358599542824660405703162607457697196021031441197001130842556290397154077005520596475332844817381993416442966918394304320017307881451086567592670190019829241112427163009397734050048857254203790693628809069184617387719684587284336830289024348353935214265606611299407786903356383741402910413661596874726676138310542843858414423943549543954097078109560508851882566680649016336237123293121250838298328597009527352501807955058662851991460470223560379130221275278594179692246356284430421424320094415394112085306069005081216406065674485761118950128704939482688916515666881123560195266303461417217800669135733900141044702435807024579390971535795911556233275026471970388403889539331422272699329559136135316441846486504639214846997869935563286495644288035584381309724981018958346077995453437991301233128275003839915624374299982514304538011047342332591969516294443453675833324998157576026158278237031447708034494854844662546684371808579273888147227514810363336485025618548995418606224251730889274511724137428263355213870800886981591229346026706437767252563352163206942957601781489175971863908761330562815294337396840948950028624448616556992560434611456682033890439052852256315511587602637755506840521576130356805510578281778786911123748044262805361743586025588512836398985000260629403409081176756192941059177223316079386117567929287027536179030849673161787475246037482188736729915542655240153043260643814440044538628914523074470876639585809918936840404857954976491585547569363054353079200894954029848744930472049269552308577674184624653601813704859341784260277346046135458966003908894020209208407602315433073002548612673180299577621382553385420284037191881747936529928643060544543260016329655069857211909294021209732588451144493310086266012042898393819690512257102291401332877671093539616209333809151313732503342119209634687519992107827564843474796067737618991411539450469570522725484166308111810142362062323169153825308292572218101310541325817843523880508289051031488802514311280435146891178629460431019192578916291289326010675371165998598901355277676770758629460155811167823721148403901082855075982270192008359758713315604860959004579255884022877366685561031151884089888126877582814761259000990783230992292647585967948753467635740530071417880372881248069306996062039825849577759953790440117536038321091278868836823217897056650816394731257256801968018846113241648635082621643810510114749747367418452835860987041183755882466084088028818305030723534984710909095030293653751304657099216062870643724129248928472957779373955234188095994044890719798237935581002933981685873560353765658149550454037070127733553773061085783833205229772518386730121789198053427289636006378060548921432088469011234596039803934343416246407552911034655301890544164993572907838496470617534616239944887092137049300053552526593460649932147292502645402123224251944136061733435109857140298248476285192083727476032966138452960092356343598819306305799889051871478658384954659901249101526362748100803369737199560930224351975235332105776577697473163414743806821483309283233857231732068803146628169494010826816525763686971069176510046970643301102053244017168410257782515585043347617454492573578690740994213449020309984297349655298432539924510874043482283513791740147440585067652029119967059390150551408965322831818328894069684485304376643883140504908209333383264536532592394686588183085271358946960789690887107661647673111701402803748682882814949041513252175129181577437648959809276270429954566873965099122045100054262083857958770592158027348299175583923186999902654267615930255193889847388485673684752493029984622873638745108899945874800327622973845954366390535150646189201161708791991511379043791303695312297993478530975477306513771521690789668608007002598789164460292426055490127955148165211246199106871437569331087431955232897715774491362214959422088452581150206042059534454659479890333935631457883440826990098466527967617216151916630894352016027620546686356402845658314712442266001367723468907716299128324366012080633466986590907885091278747425380941005096789955392489967271909526761230500250647784452645297716171086885726407335094524144049982780068173015519195811740431619429051600413414140128477091384961773915915370952297542368548110880531542602275784425690271334022381812522099301775625232489048256776553456276363150599126750149006532276269054130742207827039051255630922024554333867513892685210752758853427387272119389218609814222427801642874108172992453063945572794422869297185340267384560691225830758979482136525956980709931382454435215788190018467356299941452297131203206699272765929522026829056205172047010967064787487193813460932546600500493844052996719238493763692392085440302889510331993091854531885338591057489073759475404179141274044293722399027446232883611024808245859581990844716760612177302082743972691349168690605060157167176336351134084339350239227632059058407105988832212476921965380403660314084439399193163039083232761957534294467082606399775934339135652075470802875083572416993975190227442233364246231742889363235349922629508947262895222802628040454496222763082209869837926660247456269050629228533207054666309389142521758955665614068031381795750260935905349202826958657079199494397566543522652995737091639830178606621480584867596610976501107587435225299508369934678885118720385880684839982654807303952511480216959626656685854578353087985401371155441950875941190714813155677919441308419898709471312330275840829475505555396387173325744524985709902222481070147404320508097508029511954718333849960992127750691505851998099619133698549665167692392663209835643071057630764184696944731548638825595419758983953184462743288137419461191955288580791805767906618522601174774337446658638799769749980231354123425039626742872712259032756060560646902120670219702704924302341017032787901265436647672483819824798840805322564989179952604807013377338944296930753165290257186933896663125707082852301708158740467708560574462691188037545842482187330204206649344079754375467518359127189103269334473476389918448660019649206738703805768003334727970361930151641255466556252366868116147318104361871934661621058738393989059323705343030066522664349464224963596259030400928336455149163287176227424986206858783537011109799254057057233531880394371887645201814324635677831982764280956380561198182326452432459464290616178183865322611694929702283521583048454191105177653770475421302528880936024451358833673286955316833337477243187578588722614643379258440012055506963555313956620793778693961066300029593124505494480081824420799482059926821265329785644484516014178489367847505226979990962433163352714112972350884140961327678370460491270616957254452869734280646959661153917901007478885419179670070475413643415402093495911331620097600402279938212475049604339012784998298238384176634372182087652126642648408391533071261748777271856530264142404358342592002839648187534741048082932960088635050269551580205560506605547231791662074452879479385538126017759804988598240094860474777386617145832390753688734235414942352187203770943154940822363352608618999940485652870570338668486116299932316756637473735598990077012375304882366501311664900524510253227842209575455077411445104565781217673654633399840599512147139735136951233931967895547293003777291295847570423589086476118353490684213572372036875315248520996317068487167435653894599959587445837634168402717727864485540001712765226368258999806261829356409146362237513341802406600569464787496124350658059868457553821489588396848944605436710307374561666077101863006984618980236152760312231585919506062603501044326711565528530309892910630007587611285753717283838474602015413414737836964938927023558074327806567294922711174919522882958254168135179662386739973737747081137314821325286926663127606308157506530237078018822249107183318936400960750836714448765711406035569074116872600441457786390789343711907384017119379842340745480445433430649396543910173932878300387248349157325732480811070694149783661964153483968430672432980582788849468445519822589182158715603680842631724176407750247162130478606814659437044897418625301923087473390526535653430079969307509526021861854147552028411146122335717069690612587923014946919217128579323380024254998363303385162239935328863621797710827618984497896545867815751414649348226483733437680272047527860339794939841230342278017020840668666459781186870445216358177880696116917337005080195000948436491120483519512242771063122472957420119468579988464229509304717694709731513945905551999260086233992286799224198908715487233323773482704423958217515030632309855488935766240391137418280187403319345129300796181728468458038688468729709069854438215650078240363200633629315683717239625323775817634668877700291088059566399749131331830709384519702745846975512487983603617195843447219774210417782687383390905616247765693457049635864720108177190310427759682561547580423105429014601393084195052759876716780577191408877923525536797239025551318097135269607894708241031596511387642057636839771950287245652348089331063829125164550887256322274164817461251014235327835376730056253053854526150483692180047612967660414564001374930465018434036241829152278285473500554537557409515179982843693282501472954598425834288269881923396912343191847603458995784703605128103641636457738555558577211108672193113184290711930145734262926646552532754066952621932942423751872623623787600245242214850686362476001869564489263452652254348761353521639377986747947652313373510340414658695138042018527325344729101989790049080012554738737316361887803451560489120276972664856951229587217965217303933382898013910101900073117809276710559335347503365970194250865357849880107042604805165478707321565749797682040253995698541374847885777050069240518005757395279013797120513837953116710123559534694118307575239535155686908722297330112618782804343642957297770878592801207778331530563422583031432163241809055568773607816563944707742592889663783540940037999008766260095654349430337765899903055754004551583255835491261888530156497905263088048978411605983071383542870574742337533328228896017432152939979904040936125748060539256149836441655217629764070875663031909331293260604376985323822271457493019519997108040360955865587886971623644945188136201271946017947730346912772964344797117834111596703899793933427619861330972168211184127071076690722344880178265595809788297298005931608955750193997665790166447504295980690203585039260623980023479517336141552867059977154430445880024928329485600732356207867339602500090164017691574236897368160130612586493004998222653908711796618358799928888780685046785425618235526159593287212143406029238136818500568257310687100348397702910356353793761847813024247741801206456152473760242707866797584051654246968754637082893882104322646530016678235871268866846920416537058373123378982405420855187708941616624152165658533736823589758540930754477642361395077551705175817564944002924212624354251346699032205474784782721419798164794085686371517428171719243750784271218744377889170251305553282577063403409737206733522674300092973187949884189358530355924099699719246932443902823738720046545081994856248234795884980951937880084316495479978512245369989909386452083242515682667830026326410087698929184354545189118024716911671081123710096104109062655191486139518115347493269490511902391508529067325957709051320310391026243280608794069283267238161524356169978964442586840424315442148005761897643369980357573488324264682901784818364570930704371733554819550474761010688253847868289070034870702140872189310515474049837477562910782858682343628579703565122386326070391875490583321253748294898567873011877048089595734849838322214632195335966680542142951098624961808278973981953976072870831544972100968130867325214895856995485994986097718346300725122088549362807337305868876506707098255369103681462273041887783836108356178575290115526846289458515969529576969396253785800690329229594267811493215759179619606120721077921592395862354586990529512266547136391958209184131681992459953142522361121368923062934326215075374981370620345750260793870632315633780906119700677030807989883697024572291997010566805986341007464331467681730826750538334969558116828043739399766281687402780493541335596485556295521109194024487735317500824959114377496019142380242325107885969414304649653538925172988063875926033202187759332521927332391883597243735260387527587569218093689486234645549275405183764501075857437114183406918795638488962926838883466568152935396939301307601661082111601569227232826443416212277959452161563675049495215661130124029487741098234802517442912119530514577682485896556510718859323428593496139694869091320563407636352848976583982126034849522650914420010387662026499891803862872647267304531466179767575061323625027105517780883788044041505691616405514441028425450712207190809613158031378803040486396778999328219047669490277277481269577874777908312336479375403101335620712940370394836253308161046984920376349594205269491277493949588861450517152165545491009313744028861019387343580561847807173536467212067128057471583143708582143088291997903630027839030610664146134033760572012786884686339717800822831314221488996900370020952713187412721303083392294517721746206614365060925516718995395341025142130337208308931892395216724111386202091562883081002986019114852548175234900976166621555424601400967409223788406520541441404930378039606009917321535940489102876205094954076570603930375040901972840771948586736584755970057291392407291844042675080787299129813656643252427945756427463939665686612029268578427309357413592721588613637003768899104484607825422175367620157704130603732201184084255513810835114757220999252103776913956208363297154885502853935004286651303882677742037359030318718302602288821335577176436596791671794174682823167003617571467574991897608730580906857337043992605572215341013297982221056243339831994050369699038063341546584317592579503342706234733420393072981358685693868665070921624665729638994081225732632342392434981123865840231168319190866455911321360404486389172281370965606062105746332063223685647439470939584333020629241369623503065746254672857436787680643164670029506294339731656359189844517955242483369969803144608823606239999848584919080388853354416309244298320568305905157551058457900147681801638970607235847196111110733568089652702052827087484714375002417059316404868689901014698076411421893635900646597600249989618074100227298988670552112981643764471858334075764132792343729080274121833750426750471699673302583507253655161893353148812541000696883998913748361280202436928801798792141767549182871569669245482531990782651115295815615644122952625795949589956938197335801724882015639153119345066972444280619541027641903794489654224936825308703023069581301283675776876979687158005738382778692947842380259497556565455474235924526866787484074622308397530013796045538294069640720717719766082557096625360669789716286072625039320891031396641821145984897771092196133818880872724275352003844744824830756601378531908690519896911732987635157181162980787478840348736291334895622839777841249334122101972423246993123711252901540703038224947255409385041934903082785468945048226328400591646721599656734096913101643216684249204537953936537244796418008525062961054032712980117827663882315267530766773137219919368762908010783615774988245343285516616085140208071258861693470825694164630754939839343013548860761699431123740761707538953046829311624983866494588889452894723567090531946949689966096364531260384104395673223946143991213167998319791805175026198915136803903255182788075857914855033671719739503070874160874626980981926837598008193697670945119806369461737858086314103269426463211210823685325817748434366193647396911652138017228788684773928137124616097891751839370972872130092467274095393692200284244155284718275988802459249946655234779932576546677078024067812417755414320567669285190794935717602807038310160934897899938667893903342424656832661317462627065160924939884667984718456572324686930758979377361519336154688634856203026985000263991986311316716945760628504681221562187332928518908685101255219783829873737268895505590863143978012427842543634263740887439342478651785375267836037996755006168454101235566431019025934938313746317572343844660332742577358736528705609288728076878162099553281920067760705423329042125435119127822987604403237375870352182601872998252152285099041796959505070536719296530503078996266817829135574670679220378475488267192698111349073782458999258484851618082423651402752689129929734105681855969952960280404473814059227726009613128210522386510735638758563864556191758501721925070841323098235522859466184657619257308832333883250306251567305224871571302080777309037910911982453653723392135081120708660559522997082339847342514523250919255190066735822809247852619612694774881683103707788368538760234498036180206969124119636007646150861799375814565264165881465748829861480736335285375736135866910581407399340695735293390668910800039243846275048362297344454596198223704644297429541955043285130976499277973943426591719824657037017878591112272954500188040235863876575387694961905212538990794914490112245192496935205245899231438875886723708436459243831174448455664874789114926684905103874478773136148411574763449634306753619361782631362590929041061736635905563036005520297052855335541211738257447639266206019972034612057721247629740811300552880648567394797784862996062511278745601539116776801140998506432024510051700715210767121065698970851622464829614933684354681137549368755447056897522561523166788916342793067096039524135740667805932598063358264333368247849830190061522711730087275692303274841257476790864366954914670322639911708938186496350688663436174540628903919336307024678223774414404438025094143990000387628863993883274077114267843979628133361473122338144853937544387679713261899705012910452805114909558884215458739185337936541074262851868237141293281657576371242479716615107453226930145601801920774445589266460294221234072829694280886773205709032191848845101782751994872375531295280500436684075700604590623558510065234536965534156866076029074208846043258113246555701680596829260877777431004086667206713100132377255806882970504252978641311313725644693100978920916873903747623545642693435476304456861335310072794716954763690189957856281787204448379570904617717043280430372057248424296132750165337111874669064747935522212191922464952783074849717937288170855911484050511056403630790860884045325897335575377827423063603701763288424108427801464063563501485200463705674316456609860414994257991060762800634084714482479616583214266715666288362865628262377026737796530520820069650163546489590865563240171382136093073278064408985992132568446013727536175378807413949022247145826855043109254930331291907181053650689266571889895764843477210853637445138785207927717064091999161010773624183730070128469790606508742623837992871971019642295395631980426585512966462385690292711382276516051799745113840247644651213024195206178061199419425603675725814851953708023402829987611484519090578289103312045378555000653282561939250560450338389740298635301939286552528303368101192024691722741804865429903334744814480284062004115935556626831140364556905945343913097356778006080851039764112281600068577552967472814041608540661938025871462412092867539375862998545995717899765307726584169911967736643575565877752889562814317230350417172449586243102039145457334779843873539660197268482614001017950072681563391991537426083099521997832491144500752314176960222696993565254921310126769798268755453867096346899770594945261833448588969593275565259502348557616437606416474663570072605097466969482832611659389406064940520227581183185026966779616867790597684843659567317624323648134082417111790036893875569460707533414030541300020077810067691797199774480599829280225291518871800957676267769129454453937693444565755137341342683982405121156509294301866972442259974689557035212514038474907982965388958305383243554073676589339138674736738777239898817306112789242283130948578319263246551106389056850271324460935869906376100034219962161602519990766571118232804409790415990164746693103900697553391183044475664553342204297507927252652842157236592430129803293487379931051838486031471063034795944971630839519538929223777323475363539389837195710283451721078212313528887993174693495439195899379505275815101663342847775004904127949948857351097924923399392503249465945339091162180891981049311195646273198760337202819064588603319556713994350806605437499918092537884563875434345570712537433335052923863305701943833664360512963780550239445762134492126978581284844342532203700464448199249508747057788409424907136750240970332806849561016067185685416097543671518536495950430957243798222969154140267178176126199112810513457989229246539320075763072484439564557519287318268619860430565867828332648828753333597619200054866958843171983644486092985331338216026272230254192568671051282826801831559784034684226363232158104676436355561298201261921307977780327571053119155698586676764580573311628869388802996219034929754859961117956192964675590187856015872923219075206691923923282079180789225291936233678349421564736539594062864399856442706515751027596907403402785612639702022738130550376633438865701890556684401965251910725225053491794750025857688143014793526529958501684669614854058664336359487549656160561737152235280406002981017466038908544694389471795660836551818527921953921817401239959513413147208032771024846389051265294013017309964058696002893788989637560710775924673657801860831106382715938108719175064477803296172423094265013870315613426815547089111764611130979360323152267255069651623262389566632164589737591954753603770298124364543568903396973452757735397602750877510779243307427372856657749739006823091195494800555930739879797598985001967871843296174670752685831593965879761807759348973865704940804896658408500283896341477324752285439802116247389369274179672074696617123516330507252492134625432928745197728330294972334540025977490361186790681193502758559527980405917563488829693429314871373812853034204524951349053169013126233887044299782715707439043855830237089914284561425778068960421043157612126061544825533560422927350684309077149736870696564092433515797860196525673674378313258954149041592616325546828568092440970778052953178819363072642873765272571799147801665255801029780536428404547597621697429829070127667964547830238409173008861232362399134774755690872968154617353122316522265761177898724116326230696489089470499861406940255654813130579614282057592715794424427097131007544264825247399869057021031719211810758527910793424657349858938240531399216119451417944312577957892152063301938892611998772437951173349445779264327963352857941105733890953864146220142579494089974793820991218902509607426136911229033290261106998133052221504363744281932039009299007822665515028235989140056684902429762244207626804890905249079630489311417311187894422076199377905543238491048470740388839461738322653388464432495133607472578266115074407921301923096311648037629541291824441572824541793906272295192394336705084569919812650556409403604519372436576682531770103621420960894250552809863139015907069663441017539329866012676449327843706150692918325828226927908207800022700354610129736657689293444684834523881199535495613053530269201580048340459756864180354886694491379552119467808724975455671588430852895101269377032146666421169372061220744080829315204990253820432647843709398028865619598317101259612517508084880252046361087405373923947486889830690672600861664497290579486930213732161374634399238036612200816068907416219135192560263598074910619584971555312110542271658115623748870944256311119708902010848236146981770363958789206951450595093776243359327446898619717351130523655067407992683515985625230624215401076865267732269394878682347743905455077353185586003317520154581593521778799134492397057689620882079294703089174805181566186160897461545478055899957951476742944011371562699135171316678442696556441013978991534830648593562187193291043987747852661800237663425561395270280943842321801226087635999270322160815508328155899820274554647518686967742956100369736132583263807625019841107847407918627915635706859067312197632943137049418267615110668074065994333069579006154447269004307539477036910720433837980357074911787522358473411685542700677314173475748319750423923811533014797498006572725698844735956485611152554890259694550253032907825282857295608028517893842924976772597377284519139183852017848336541051050877186904532344141222126506399171000780687098187396504266505381644947394127643295018592241509315015795092400415377084283196985594648213757088160742895714259070690702443252213066212978738263920205481369621511998795608071274507251242951492956242734360907689972041485776576803992816911177468680379296337677053775923009497172583720669075132213074995988475207009472317734279121989371520334876338848994835518381354936532922929214870886491673867798075321928667327800874108200778579493494334245532616598578543684227139999555380836074349235702949204125723293939909007394794921986465004372277986231520618438077795115075553102525507009278020690043159082340794564781249013450539666941493287306959244195490293292044004639499655542469298777953297650860275748511402209549661579734050300290610506241082466014567758165467783083811587047624173774645218999902616070764662970946112616382007820145161352596721239987604386966344615853802615482618264497759027098129026745743401873982368213000606418367692568393593250544924993418627241100884649339471856385180422443045774602218498562485393372806077126875305688755794023698681916168603183399205817318192310934469467330815336568999893090607654546308917405937967040104452083689833273031201827350689455168586617428179570250612693914756441259397710871549702391308402968893943303982886710185776284620931337852423333848192633293687339460128422682945453115750307341805038075222907247058400923508753840298659188241422311108597053703775945988221423710051586047940985529070622080641310266354142482768261206751790128838580230634625002989959979593613921920838280267000135292785352962631651086903831190202840069788207018348740112798140137956507429762279473685668714443925431205962827394426417417346449508594896165906446745309273677338514345004754378086357509569727191198891732325173499561208681419493955194217625683817571815122076637771919178700089237705065196229153996818666638462145738655460951694662067247673823556618329402163211365520298052456700612416091653219927211211552325877034344436578798848600060915993755311939974916999502656278044116031780344063724353899053957586043561607334569327366003670628502178399908149284378755142072162002881654110057062795782591778569804781952825844554274642317409999814034434443841111718391512645026838590196287681189424327825920932653016486045081920527325248164772269420854941157795148457712825001097446797332821317564930250386885856783193428365652541718472632423340532618184822658520056371878743632972732497451440754123194837680167506004882212064710924476929717053921110216788280746995462097627776552207010391367908586706099837347856461564581687009244474142489098080249061566419485112645712410770402041508706615991209032838075291230034220350350038321429987482172090416288364276261625729690452051860800205914104232075407243542729302971117314003246242305706375566069843697295202749011457538468575930451840138823191389523823323420008035000744366560339508973060690954727715119186766453095892165893841419561263455373026402883006610708949023472296396031375518369934088097313136996137516712335980648980556006904509453841201567387124315304141563481057427503978893876998477327916430317559165299168728897740048597080293773046399353252515224962995512930219971715496507294981391293641023564062817469129240148309949882238927887029901177244693203015935643332769553276180238536106664174173113296645072024979055440919168278663408027753133722899559914286608064057270067426255630839044833020390350519720140818816949477950281434074373979005607691394765511393776731483770448856384137161846352813533745522499212021405838792930978377183704943148737434642770456351739786256889446828633459484667635297740652511363227335680302590671300543784990400293424781912746043131389480581423013551387412069656123228222262157649519768662218780685565363024673378062229847953721178388591373432570736789115994417833900603688807124201576139578100805832113075804419673621620038866212897904504272572630815565810241198712792959420105472225912570848509977361819422362217804232609264171224755884349140705492465453100791430790144492792642325519908956159972962963066599459638861812951452791924379859310160697074730195142696731956218771052203922797852080163230599052119324741936648659968036879098305771797377702238081119181001486397725613916467234073357915184209186529127802657888210662458894128652696451331604448462701313516896022202920310140775354316433837279764503051140412974660597693312272564391603510893681382944745841196445314775092831320985946281292879818620686790840048408018896690128485811199138148106548249562821884260787981447894144558875057899849326350921083319182396167443924224423246197910689077929243210645927194413141810998346690519632042260515039470413122768527354077855606146179948951858524808048722745211741360995891804245558966205325009595064755784280668865778405018123934532388752110146433975374515936748890257673223687743674196633148350142731206911578551298598963197057534537027696359710737112235103341679232518955280480999937543806738293902451909311672838213610283927108962914399758960602463997516480885656754507730225179394162196085622300151343591586255612676597749363767647671688981259803136469523356962412867525931720416547363748558710972207695153041063553272877219528677867161706967370689414148313034040480004007404462966038560979812321217529516993874623933714350009773218873761868759176817934247091217198047300039702744795607171857147290014406634511333322805021308571241984424955093558430215866037546176229491824037224920433804613211845217126768514632175688718162075225213501867969065584958577356730189175553693474047386783941127614114960123091486857985068466896795786359313882367079695402372342100550680023876260559402887895670422750193206638245809963577156738470775102395872845876003968671096660446552296273105198156928210515605096809477179188965053448381735564108019104311837491234639657436986995418592879421921939074301716096926033452221708136946033599225990806767926490966265473728283171651784224244652692802890975286795036650463804305478187539431271901269652599910500169907981218789133265544666771304248254682900100750156362278032612711263868414439113454960690566708047911097956515895264211546301604875324450798678306915708591861364104786573185642729060957147750332739353308355895276733270724101093612938421360799299638993055476667025496914766490439277369443322974238521792421284970649900826693001421397763377203577022368493851039777848961390852429177211218213538727567322653048695731262872967777753112098600428454952115263659772399172250426392089169334735719364643303470499512238420421740019531621116970107243680889283815221061141680338689885883781091160260726354523816775917342549952500830176322908559372452198708437231436920872314353068811012444840716037616042005125675102544132571683176687251557587491566797475523850040915542384289498966699299184493724450827171110460374798766490268126161919869704733088859993373006716842462423341442703408087066497496252889431680172482515484229893150452225642651177116689230071117405097303296096137901799135038910702676677379379092861385777785926655481249802525172578796937248927551504456710453052074422163196845222572913967328794060693876865645763076435552701319573322613337551371782276305169817908786134468785630359745780706832214380425548061745425142050536495689696568445078738958239100344512126793599473190162287597535456098027448003165675150268054007823046695293438592555560090985336880171984056448674569473654251082728140983617899189341582835294670399104100317200269980432400669563100742886013018395863002618351162067442465684276344164799882029820123285522770130893768017273487187970749766229519989180817919915980340372167162952452384641428830410076643989673916337029071020062135580771027883472952349563612791536817207561911083791727069928675302099174772209110405333439854733747108428182317957965513443225124441553384648546247829508090633595467929993473364955710317998026847637548257920472729168072658157894746936474224230799373576804796604159728010143864442616954829578853643076258052210143910436080799632675546878294882810947772317201698199845945945444299779083083126558713006003724123215895076047710995772567426041704368964997610319364237759705316179314089157787478774127072571347355585019375232800277699652498220239040367084876411816057928860380977902585596895410745275395362175958507477164814156520581710873424083826246297218497645086225485849531373899336175553817070388947962949530049233101555012901529207592740862366317805357913375894763712740974157208887992739805224886440667168340878966985775628463391185035635214746209293153515938308238669655501832659762829291744484850832878545415055152521918059202547425642927028694233353891158532735487279126004345385476364855772946801461070493994087220714406210779064266902139032572421289011615518272424876638546069491616661377325770712733043168933748628937905747646674437297918677810502296994892900949379872951041216841001512348084367683148152558244041309176441371945976961623643916244173354262817665185156323367876686089131148775527319301550467551920093562222714448395407853716296356615502063230772911265224392957393478536789951878739925797832526646153906494415715641827562877447204134221510790802251583739363612859341850325543653692960892312312923572397154619189911355950577704539547396330855587531782519102464153367922175297548709478532415493867097152594550587555484033692012586619506375530200010123059370429188872049797773639740864422964545668341427614507766654901483056630478291962905847483528395415887896630222053700874141357894292168124961399384788342236039924590739380525184835098560617266069176346748086069454636861759462394637874542896513018279547085666090440714041105751392079445980953889864526067272906383688589390559631935524494376594714173579603082608924996466479576772600350346045293864315174757175439421544912353616599453776642804603205338623828622870587829851511752885180384126341921237084818630244327171107211864609893958231953581667574903187760523579175777936919390796625857268726720269347463305253535503333504085988759006546084796960271174897378373336770481686685369942439698153059859681389798141337457040948542431539101013995660009255726838238026857932581155937047132554416747464327114158798404462837197191100095099956480668997463872553773730883062223261237935461411820293738024129065668839031554561560893416036684169431486427462432088257962752143282646321630503881609919950281590814964250515527844501942103891159682490600711998167192131287871746966258359570176850055996859864396364347466734833257018047132665189324164689858507288489570111780567746828870605128563395836404858790501670489916828354573272984887430357936565523501588573096196839414615692467268452521746924908831320816649172151277140487294714506878651613434938693725165825355832240351701298228971282558694115789971950556822650651419523719087045663707629177774178627058545110289801912734467366263908316398950122109334762845803184654438451042772073209206187857278278621091276672426551381307880369131060704531285042041662048619267011775325008207563595693375067645877415041767883450666657710883582323063982529253344278737418053439894457920446596110793155416776199236113541561462886750461155244307676035167698994320102951574238355975677411264274495343189068052703086999619886093567372639448273610190413684832670451038361876530682383906266373422678027877058124182098356569721306356828248915299672752287286130986387443642623463214255593147418603134484121892316136848989805073820542988220846051126998359536370416793778396016383146085537175395529318563093112830082301170729041284691655668430020676271701274469119966366541856002834378894064683139306582926220249623843084559544942321072265077585621897750254885605386890129306724398004963040195787295563914979873679298200943913685131299735642570356852776584048767606377806125317136574240245755340526738047096366662920880927597803176363456474406252523637397808572085634947266586692584868373992815618909286577263004890434440011099471489427176618306203018670243027396997975093465304619362088071057662485231515401615316957117885262247951141668520368111855352174192716272881016287867757545846275360307533698960572469831578634606374563267865913269651919712474627394548593672210821962099864458531695261257702906254628485892877969379161246342593025985752308626589672864168092611612203296992325916084455379694494947386024202936538466518196358069270260590904477120740846711348571857443626902521581184322475316886069403593828508496769317698042587084471030301304576500093615092605836067872740631492290730880368817520387697889380229580828381007977094992261668048818602873009223466612381614941328685687239047316570444324964454671459590349358741440288829681454506611409753330863728450366654384364834079630603022811433034221102669542316543380798009295511298014414373948927696656096667347997258286382696373751407500145282609910361389903799243325933357409714452109943044296281950211435495126450418482911590689622396204480955163307765314483763795280702266545396212242051774570286695676150334001337326846164607153927484598032616720840987813746577650541597139269803241222454323055092353207133923825856928538519995794192946149755935205331281756557072260459592575360315239590117163121107543977106215942242857295418212837296742384097129531163163273956280879405851630563419624216268936964243791255453028793842816458413104454811027014456137926715749390901470896510469181850187896975788781548016949876913064065785983388048707586185638898579269263996278591319800996383082017936057154517855265432752021803634945428901357653378330448214872689167780448440468415678598217715747310067179041272088432144637104017233809515308465375625403052387192833574037023601506007553140887373764357382976903469223945670737946465567124958413680635708925427450482616255162097024122611468408689791016741426507586226816422552772775576116223310572844922333206432991239481569179055104017238989919218118909496214910629380078885184284718282030346564482167012597663918649082488919265856680840652317348407040670340024818789835361983149307364927950872314458927621517924719556907410676646225701763063356304635044627687836002448961277327026994067183936669114129613433389958527787483109186658769258920954658525131253224194199991388094402656651923761177212336489885374613371603548187246653571576236784496585351957177419058094347481109739398946055215809062029800394542929275129010919118164037168328385910830174027835434285773099833891566879716283677909323112944332675351326874733495405522628854048642701200914407096129402220516445801561842859429912847606090595046413004749761839722986629233507541263052129680549533972340297296642620226432935352930597085818910103505291657885867259646010024329828711083451185176190397976546208479390482830996364608437992528768092399306255755477058372281351624957896323071835537604132539092868885462083333755301258519164716804789802306763154265133068272216276974123036495798430660797491944679920077521536096387842892485426611274394488366379860424297820537038332540153431642661091334789924503698675550142560718537290761221556604338122811141595148173018309724018303438915075484802288000992337707209424765995499980901225603259944240947119298914882135206448101749576191337669969357595918780496635486086758306776294807865948628353921341255839263544037991194399768611443586096024196853330492538708738920660691821669364675603055301001845419482514037088955520515731124769274678900506851438639623224208444260336169193993043669138204142600690108780925115803367055046078360525229438930363655381907619820412642332436970165645672711961073024066863928974107848420275261169319891578701227976643816970505724222628864519669571006882936532445896179074643445573868020145326321947523005495281509862581883533949843417917569618218417590713936182940652136485820493895037425576283826897007102866094914640572551275516266735773652377721373629302299111938614710977636268017973597290547126383613212811186582929159605904066512029303896386159085005481701355110639413987582626548360589906622635921172743909612964939060306202085765834968610729674717233566453643080341824095530145172841657729473242921875390821276751998375409286696281168672041284477657776135376139418125544297213433965637729550711154105709047626771722212326457309000034514403590649115068235215208208133968657053298278443811008093419835252929439841142814729830216273316527870782063230509058008525390299090046032138272735324983446619117755295983823774507431151971400249619644002925244644334392788528736862633764428611082331328005406184796518475257871485118932737579768324673562754214446034877783984192862380097072460094533524915292887089584747193324545138320374452258634366772832634606557056811684418198158389471700597542992126887591600236915907473025198184099469730265940748850110682003355888482293515829906205882656065061582149090501889276352139493009222964305647893296705501596351663325504133768860819940038769257425440850712952303262765491878130541764481854496713471477043741549711250310266500564974899507874887349820671313455832604794857144977626325878868197312450845961304492168154077995280530621783885197401178155371236479394922802298160134869003496476526477381800513832538259403293364116907243220524161641732996116033775819056586965344760363813863496505364540793922488667292710384609889039804367141213468087486994563959960269730291100316407990071821781454883444116519839069774413513091484421881398268426721448148582207647138614266103505052641981450851248295772302836228433966664695460885025119928745275421355891237807803328503078668222902517884902301271184537497388743153791777914018975197382674150974073261324227232372422614261403831582335889668642346731298451358961292055484260436024345382022819449887906597996461095441917559815251197895428346950277442350697914703088799281306312722438855773181364338143405068070483407119482085516186843691252090314186213263664823766424915861697482284663832951014403820088771274159635801627193883616431186951630482254764723263907762680563565260255720792700659491693891728756174703872589912488779424856777586498041974543170922749446300937204652178975314927515885080576601016416550379307583580906213121934304692905700235639093348591021541856395200544675724778704788771977325325203521435963093695630949101131411493174573796963487722034568193069699924064183056916887739469204244941791494075616066833305767037687010272722456089399918205028415814025285638076561675012152244731443986998246852668798182790164276129587854359981912026421368710438670105995026473671519096768766619192435089535398186085405358980252251473606965929447010334590099311890827602700643486977918551679049577829665197371224352435675872507012927863152629706162600928462775043121550061070230824305465738385780992629900051032037515045577339243050671855384101036360976786632380844849992928947386154319525719577304509302610485804003937870485747261545802394015217621303079906687102276590812225053833249616878630271749278153358184247594443267420280693949152433555531213228972342130956827501617268359401473723049043306575170693026230746815958384470709186671880591562746805354175143605939332922399074865643126389976209757100901164478051492008377351553906149634281215806913687668586585921305215105276258919910611086121995812137531460049190867803852431866391367369113495497506488286719893663971773414745990294002598882540993943603745062539525096189185655996326867848021045825573131953430225924437669430345820741387258297044871425795598316177052667069043999704396441293729670103843931546361261141626455320090719180591492729101481727722137861000863769294038617730999626091798523625724419121174443366619472166180342303929986546166717129627499678766971742018769887210028370547087929603480536832115775177111973658650143716501633837370309181576541177851100207713960333686658829454956137393522545132698774708016808158058477912237144121898000294308789648636915416729884561805895347899787190885614624603984400602526276641190905768625168413779555878961027275075751515558475229084952958026888470980525762130903940893675124251562588851674360650764478728552192201671697633436276898811868146718542235340906924007015975578442550299990385049660611227635252685451525818438668822495445988207258387628155737343181215269893299575391714414524280584864288358358310819418405904753236441133654676138546872636566518450388005585675681115003683956525693953538298598793201329140358475364925439141857987013088927867343373284948396981270087781553029354023965484336294457046008408015916073756364475028170957481644777896676104246745028044941469393128711386891222441311074168916671273608394967881522712871431483259379562309667704058947691425770342103944455282777258402457924171282919648556214612617518934408312161368438803835059008352767570687034508755361352878434422126174638308662417312267854213966177432089046613188225965871694301647991024995770347929222323673806716301186364730520406491565885717086969345519155182851555752752359719056845395643757276263148149174161160326380996716771897321898027833467000317217654143572963978133972127976014681286173720413775368275884212989450082176779166412906649102949984164060200277058422048620819007797297846442537817666248959036924996419751881786662842554140870330791137205922075162639021900778878238153571991679537375549028896584106856939085918107375476008708869681485114529584803831212270005452034910065203714245708447244467469148965697355410071843961807809739832240019558347796400208494498183196925552914713717927445705754993893702079964815274086253271238675349812716893463861846256051844778961858797919988343919183480772984905814467280200066217483198682891458795460356058589714217094230677378229530758749316421211428742791830470416311773993434745685666283931831468079737305787106788967705873170580237594441425058927094612229141338767397920008186979748505413693014636793600518048023834624140506418372698034642453623548511986862585595160625820441593268770333843788545336132825416456416673513698233713718117752856971580313257312454102010169347964328207749592110989028260581913449307906662867222327785873164630015884156132913021515811645146824608396670397587429763941172251303457115990889636197898005722676510390405201952303331324945577682493131392623531898992778877165430118939316235733013751996444219020266205847581818550044297040810949364665877473003002010657974471470358141833039753566526313644868808294314803889116398476437219927449711547183349728475013280493946646050324286173671481781708088268619432646901905825693034232992382942147784875962408361058812499455376670690266514517334821336145335705704665417224233336744714871077994352664911074494303461166758728898764640613157846313709244737051492527261465039944457431943973867597883987756102638677141720499064566959455324410485597865180237443989837681282217773628826717786323595567370688872704489335862177216950773817023622859660347013545795814696647108012068145854602528943950130413906114740934183493732247132939864057960827265802272376426460152918279991135158297716922959844342427551878125050990935525086409080700558464693872307796525455319160815595141243552732329338310043441686279350122421163854768427172370794163504959340248853839615932239619026922364366673181389714840515715851659866638838573563792259098971228587218503427665549855547129828932111751452463135470489667444391044763003786676290647495316088859621675650648949305085514500579353321483725109442630910147329744937205440746845270724257739956453723373390200581207850416699005067085129739849287478081190146838146637897011578112373840233847865323612877339700970968049079050690439048362498867840067880658684792916910159630912494113641945303426221448860804514079802602360093628949729572866491090920822021129615281744636266084552952508560900393163343919902355424866395924689959946875093602985663067349291177614515188978950544952544741426425005980677090135064475858973605924174813906707142879124656705695480927357285530158512017538537092798933150816496548328185460627258839565529831235487771812804021605190712670494627589049096664601556693139885429456484250693167740642185584456224522000788260217844017369306334391631608263312712745638035545961946772885753590054549585299176546890762261282803215295754364751382361150468105095646099041222774497096106033830287231082694211678269877323252017426384533488280307318056191940881040312313553617285752442195465769908256621530995412357371271023750788324307216997206392913454178910139436627393023525396912030816849889214211691275587042868921141635304562215697286418923228716641942412314056009221515276465782424665319164390113576133088915333216260405099548210347113942839967666939859057720209677538632316108566295308455933675282188414663780876519098172324804487338335597897266588573766091980592454538294097749812684407464572246110921648449205331915540514219032007273158424021963286174776082729089208211954546456686549605309038335519410530850796366094564921045031037164997366112059265728770101381529105076756088378743601101026757186172575051388895437581516423301806506594422741236650348023390173523274870509312371376372837037910354699549417893871468729255819554263555981145184041370368751255164120651912795633237126898282315131815105492999610927627956687551682032498188170311083553441711180626453509413266311461498480179080073419660598138963557841242747277061814747633266177339484806430176662579916668927930681218703568970661337210153122823748188434470916543118830053651444139623949217214340968814721360653873268455249828423851319951971309210541338421987037399817169796929323879699933590891172057564871280341091140840915875658052341855463225476756256100722314865144396559418195297127786262093774304285302418094024443176981167397235134820052455861346515135954416255969071671457952017951585230695333431142949614413812019365014085324473666615510406705284173600880316953832232109744910769810074047194099723627745913964476033482538081635922331005595832417429534828267774926745427763172267229389342578283689676863288434085863197283933242123538385149001916008067557175839486147723134098921387470081767991715742396438016425967733522215198850019290832728207216997090848400683878087011319984187327846618490084315110509375606296918887890736437446585117751648841210894299077338195192064190222740970434837572081189899740647595750109025187021951220341475944947679053996765706176420101761689601396727289882781963522708356020518021945984829778544070292908816179741886603627180448504358383638486935679646079436026927042929049774249914323683342876098374190043751093710592526166902410815796419741033041893871906976867645628215819058206192368110854679127771431429351131344188905675525168313272905053474168811266247392024996248010453943592156784893991887599794254196056598603510309920788839803162227179029844518950963055043066701483290456178861239606120188447390461124479614830326036581266441010155915555636735499323700580187052180123410078792371319897153804709669200365898868601188763542890471839758276824347363004587434226921517642399838147926859784017550187709655663817682458408326618837946573954141529905496291554198384738049320121577887238965527757321432164858174467116549761485297483610598848677070526775204486906910525955228274589242199856267426596101455071970236858567151312691016542606460458846754016919273924520061256306878628324391372836446866794251644625772099461559396358142166013997090071915382928586686079641527603782313605515045814873538659589773157798548197053728590786828140920015313876005881775047322017958419822414471701749012720585417059153204457962911162695393646604181931641441200745453085102335191605695603647589300357333837170052531997410024713409218778167552262526835027516046516743085960897757606640681239182330961677570691881073164255238686768045546303396772990518341621195990014287275410256345403301764325229993940900894052036323059045931902793483622157871974139010571486450887686512342760156630832058516349606562759633779620207126636716993800018684118552327496046128951729108280708266623375397497599589333499130989027152137270892314596698003758522242961578452077289958590414480956013649704032821853649221258690396377891329970148805116525939423726020834668185622970175061824448258620535640315599847435329496244826329114029952993811093233574960915817837037111065553106551479470414908170536845646090938987308853916888200574218874607958223757403316418662108271435547187585091373376125120907865289197148046646278636908702860582723599480845269565122077129186237156892027905218431630299662979573259330472715069939065667293378252301381955244230281393408541467938184297333284302335468922636087702950628877041785258984351236895047173777235788566942791682292614668490453934644104705182911253589596667589484806206810177884789482783561303822294055441893641758224087497066934670705002347004961019013392196503179268609566672166758615660379575345645046747101276106629909607117282273703025356874830324612855968127116210884433837809555972993294585440329588804416307725664156163587191801786064107767175461823746610659977360836050933357167929352013003294253613786067751928692707159767343612345359449743175564128798319084774057784291842336879502098152515988676861900611460637476021930205157023410738645542571743826906864602953801284370152809821749774190145196851438865206689844438345978830535608702580422191566983482341959788596406985726099245044012639599356576462372322072243333806365342788000485391165779198282095923207564988629214606001402749995213647010676258962527751762620154316865788060282981831195233231992593068133312182701644928198278707645061559214973102429761628622597971627266082353267584301631364329863079845350507695565780707935102129342382813749691270084374225200275389778596836402381865554446715059806723775206278028346332476369178031193076007824280308547539570470083122226565675278339486163772694504773827527663905390148050122531545392897568140025465996864960113698502238848422285807785993145807300961672036874995214015017633966001763364404211103190873614208833618608982555830654492426317120613728651992439952887636859127256466662016511931842991013748955899739181458721584467918980240507768706885699425858867360924253101500371074802127742824924584132662480749092083186744491888568081073905752548270135393773183396102609614684994554816082505291530299321096686281049736947186686318831271919688775807537754865433859196212530673623272528117197077083564088203436212740848872591825682634681153148587329948356295474292221974381537691560500465719819668841162960776451775962306262032623500222044948103861952889351653159721621082056228838641960604878732566553394127203089202051792206740617497223511363690299298414927381698422474629018941300275193572443003750863671433583881512146012340695829719117960951024311952951042790886336026574853526748147467048749855352937346775729151621517625126061415933481124053935484309099751633349306435391859178947688770478914027964786580891167152868261067634408585575213519620106223752616805075957701410836291811403188136967577564831129874307449033966933916704128184876367107545768854258952241685934450538024477052535536105584609921778065658943637195693871146613240092270741237316926104561747877979414058354484128571863823178058755774008440717117420885013093666973302271280688684955585051560867854391035981457294977767829014535961656597517147299513673847347446264982779159670810788953287509039352645409452579734292542516002855486645014957883190167277925578554963328730300761438047438600236124519724453474727440665751863435896463948114274298322459959053296262575227405532646590288084966227828447233148588473894588141820094167602566818351145312957874065530707897150186924802040586683834325634726858883078360654665965106847713855612508843220424985414091210707821472363868337633811489964491331704733909777288975479121144518233641875726983546503793529140155333774258672061802439071164900704413419353931586963245647864656287764312405170023525692432676306460157892705816935797017100068404277650392696667185162626588107072329137446947122203919726170841954614701831034028180166801171661330292641132991616700980019167306962334607268911158741944630935568022556034315374349961551669915941102703459363496931159119961657674327253567677917012811893957583844132185745021538994853841729425859199309586683549747523221789863469805087366893839112542188486918242435739870726487568441204884063031487154820007559253144104108194624348232219902315292626820498135542764914380612268416914372126570800291442940915715859372487387082212395369511786212974580438345229426994587761102262363033749904587504386176328554796548397986901844147704463327483290766850140594864615707648138256564948983398845770453104493019090948885489741572734343632546733124014098894050806392628437928122693177357082144615233095193549350095621666118475824032958404487454752097334083368824532090448671746296308181325469938431217643202477589159151979339618305329968904840810579309800875907080808826910284934951765501343998968698967893033728948019173261732469685194703722699794381302821058143602158752737379108502247712973688545162199832936298824246061652134355632731544212203006583552982997059366109792673194429728715276905013829699532042444157462095314791398356915339826426787676123033900826571001270696130162849667657076506096790367890364512538827305330515276630807653572831938509683086341009187886691573408014181342268121568332505261039553465162930690584665405263602402763212057378603000080836361642382983581185125341991243961584091280199805971988191583667014393976964868177148937182417913405863781089616447657030367169776615511669181504590872547380846111628631806236294481520353725654409209067505074472294092487684099936370151515026274986614536899978793208678330116343333339167635625483114282652051409444385037957289553454743893497224967993251906878065187280235970252612153338707859392055918233725789729604199201808669424015399944991449963574912272607860321045914756345357915498224599692797040802763280290766037799261408415835217615414442446620487312678509761047884201446452511955951158673438235179229713723797958864570110480368139879410445435264881646915132888620072277768842932020690636817483712914507406342250231640884935673970581580417520760306262616436127658507539555181805945797042280427491737673569545548617514575866066280061941929036017477828529400767679773528099722580526742443803356060747281835695672256214364416906666516038547949795027235771462490208780552324275166041984659516997690306258308590593672535949433551447874128081894736554382451703203388016156411448074422721416870991973234214069130685911749980229483025146992895449072564687827969750024544234130121907080406285766049786702143737971210056279301527296876653666491765588108233028921385894431843519644559842502316707411785655627641781305780604855357966633590338580684023161201459658650134630155021569874413668043268091645318190727194954224107514234942319096022834079048883698859920495925355514357820500806295886013428636019767369745077296010948635897428976925331087265075976588884589309529407455228998053748740693433266464428788368502630870358174853572972524481358252625634370445820416997817463579469948253190957636820476826731958643183431012790716826250782655247791209396323664397754937101420982539736380258635503371393510659207720984396289582653481256434808578317801555228560013212677171689683326977272650828830205421591030794203415578835538421944392595152981275676034298105468063626215403686391907268671295635664223005467614822692404726698735636394402127193071477412901829901823973446209518005409255150855474598572631156667771685938977522217285538775992381153051267952985787519814715499093271846238052415695724356684571282329875346956821802781239399930619943218693868667914377819976445154177852049242843359171665247656088684894089974472331376843586388393785928108018886069031653642561281947469968663368163540549545668561718102629710828577207581501982586702201297599550210642000808436999186505734353746091250648180292285045128096521224058595604003638379457261245313317565114559178073189892758136125520491634945102117779306544475387708018962017524237334202588937211157523895850243971830396453014092125901164192602549006177460219632955996787689512470507742673971335643974510404336698827873027218021141318337032640480035989534481909509732037100951358153626161733204474268722838096272512600069865145999667137325990137775168328481892605279541431549790200254779390592785633992571566787611115807533393815565315245820276326931710660482154609351482665342457087531809132513657736383066283123135841255471486379540695132464860418692343695456065023219420227168129684655259334334339108790991800007549623204273805609774358878033291620664392786687939286902388667799138108737850946246388217732915597285644206696525790357111871969436115537789676110020268918785337081005992829869307561795663609654039772538986386559103329800301739591272980073156142224563559017334700855965358963488631617737951335922638393851135446962023592330436874295893406224574222827753162540206781699717737272279500704531678119414209749348651983954693103866960161808690462140688390636387446896414886503477620584419494146305755150742089527386438086755965188597493067632860189782102892905474201382661068119051292954999194098663451412382074076665240333324457176213894704341602979887306174348090197687103633448007139545465539397182115669373151432655794222751496172233391614131458277579387850958299412784790975294754559668325031620524449385756993489274000130073586095421191975771973981547101568539252592920895247419892046573795620379149730104841731176816673853877842514154030886206602604011655248660298887335540267942180081377449709610360792779993630234287433472145371346919995298068478010014094244301018861440242811272159434752479797066886856255471325211756187315609972398274208368638801541553290284714375928756331124523049380061210152412495391361949658600351507511819961239738876424479210350066831689205784133222428608371695931177037425769328666357974353661992628255591912935683342068795585726189944179448262281628335088210075096675307121136423633334960336714011353320791691996081894107897938642620431142622462836858205174713953988726638213643957419685119619260312508831859745155940659172219638461993189242927455617030186898874481656497679266837238538626082034772818212655229074913636687764021141760017614918199710249250715943172088222124564494854409300016874004876859032321684533299182693593935894216748057167794074390782547502247787116498372781410808191509575518529514517832463455933228572386820072710752481036096124172980843224056757921147570772570612283462710235570907868781990091142982065285128465370815866261712801484804692983807731768230779073430337780838071799207878012087855372186988672788694778142134926000846255456294032273978043864742108100416815791803228706691591147482773351478182409437956943219094231029126039975888088454631898992425417350056918193019077252408083062452969343489655382223526994325261130412805601827732818113144013016785767450636554062222289336304839372786433187830733818776887307471417496920962262132905150873200647326109342206552801398741659392096688015455559580413505175734518200092213207340583932242252022601411834309316238400420118281770202392393291458193881430581135725180687741652635556360134949043996091819727720476664533651895497490540987007612305049974577846228884873018082089324970298967816255637345542475285124190356020291299915015330920973676290454082450265073777259413441165837617767939304972458635832577700811594553174314056847159428993866386401566673474815661032539870586272803914538495947322047631430861742397145928238930985520227706276607844585852663718485299895533592410586084053222297621173970302461482156942434683292077779807196302612638024236966519899379454698468664160955309704300569991679065021353395664407140638451117990927303307416357982825638512038909355546896473291858956650411784370256374849638478407895394611853811353202872914978767058522315355004010143633858712441002364733313346517432812728624391474099352719170440995659005775445611124573287711109302284520080379664818865993614202786058746349213989436175506451650518508139496955893378348440757385216218820176169376017544467113443156494025392335796044792211264985390768667871346719681615584295074876793314841080679630701490094800938407373307456951116329396527838298426877676608945670134566456806049866786512537809814784321351814828253062969044262476338539700402708191240525891610567362508881647615021401786604436171693188171286319703748153329696289641274412838046118989298084473628870846977079421136293367699561370176874022112811754116311619150698573017764129359164729556239110009238370388337636591128761559379740212987455748267582870018534078480081300579357206829264484202960790004896831174909625256444091127628704807143882796756773606026268852642504709030646313916831781808589339096971103594466747649452714770439036671820671930613884705608619262597717576601128257598979482813167436749539656943140086122183742152139003068938452764768723699851493728554757531758766900039677289976531407509086956311854785498550833983214080729607726780098514683848883556860336260518876479035548495935758068412838602495293682992154260915416569748859746687011098082028078841151332440836100778969464382374032144549060182612849773389133214093222095881989106914571892867959656426978588350655763236140455006762298288020928169359326493662786393350706423828213059761207441578891340111734252819413890444338429366166051097469755471749875186539372832661772589396779546286321885742043933988590256755578043173914469752762377549538166343498834615363195928167388344018197409881090990485726138738086942155590786323929268066080376135523077284187845837670726244335471700208882973277183139758393751556935617926351763174908291213263534310352708152008667948130234080893497269073469854295915382172756002344672473901143951370519626055183436107187821092346248504943787435533172028982293758641738222859598451184137009807751474491223697171751621408836324085300455297497077669384585713853970619624650993009687134335539943564571710708450974666905075542160704425277757053740080103814530645609947634789642871464331618078179964822182853902301924312058528175606859935176567363880760550499768037003980654521973000348426492953800964079901798035565510366371919578820952681597783348591387452177310085531246264011744431980976941728268900735760453200462919558359766867310282374676934520616934177882902737215241290835768766220119422929544239817166912507310416203083033656154247615527310639625319676214394880609712369992802637046994754262656904546284819711046221288306394260466051016251736295398213794068538124781445332229729215848712982432300671879340248348567234418424819435924971174273727613527507855058211425595680911994027867721438807603897157094195050406419073047696337714709912490856003860621247297129714125559798018256935816989063965559040726179171269293452672622338479912559826349591019666648282191488468704351006002994904811579196350401529495197331241830174664223641572192340457162084397420323931982448736061090286814901868940277944989469110766086683016881919203475352758555895540830364470011019657001380085898393087644845039789943814773633791094992499913818851310191747112697746262005322442153075054432698886539993288866607012565344771991787034595034459043577449590101138957235095390362099633288141834299599947921882421312790841202953992809036663889919481778545846628979280098900708204151537825423206689813327829632428528190666072379139741755760486357984372364184710606247591796579700829303196358516489914758960742955605811083631458012921113875409968658970201822058787258078443288419655891695049838894422347556115657189897491521082485898520130816912877453758002233904643808056007815630219974161700940169475599921362693579585144334670572660621801437184908272504523833917625817045793890917627023001739269120988738543699829324141099308277806589610065415888842738132443543220589452070125805276819320413833274423268348488041983176382801476200276888282999383079182098858769331451203183682623153887786337998121750735391788965169026935531323753819926732017825514336434826622737952394211101878601529939821474012683326866648257671117512006465990243852076810607684013804728809623728679284522992300323680940808485960226486400973427393647978197528920676905880171569521907631940752772476939768884448735609702441899869823036266277190164637601941355015464017065152036573796818382344257322201004541935498529243230012201991552112032155062744162656610365058521471278371692678101046669677851757250151862555637836476970644360298544991938524355509917825426006798720854572816069136976570014672104695250230702104954891922664795283464527926595780028201995674692902111759707929352085124794217431986269047419403789007155935708557068634292243070777432674993631299908959910227360331274118733864778306905241649173806220586143746188151829306215305545857482322360762889617679342777532219940685333068120332117324983675684303750636140222841450812738735817339491078927314842055231936062140145006088072363411241264206200888709300906649210455668631710020857923873341457364221496050124554427199476178940171308458529052359300264194479172452599287385943863694782009890418510847673572795114312781767382521789771820044387578807908603312599949815869684346609872015529485474808558954529132893494014886015008583154279236437240950505322955545880056260277967837391443559689860069304854450876152077411728378585474283686060742638740850577167727602319783484520344921803448418024598858181005522834869223968684962836176769378323030928839749357575260832404214135121893363472707107569409270078952707136387835885424792743887861525735121557827537889834949495780108563637880832465524968076114516151097228583626030522449172051540560104949754802022065903347019462842056539010927387634831325584971915022092942876123615674402515579144276458913512573143589434365933604495465934963542930207714845738532585808204182345710866379481126583844927265090943787736586819210584379428836149345793803834220858824252178591700794372627700253791833999301781031063529259922394426802923047140502950919518652900510636579490412379525266888048537451918975784649946546910345693205620567394507839821519343326814794124830418786246807584371961615535886720599780163557018930728580009023817858577458297925211301712844351520778312144970863369566917319556618788659840295733285149581185705330170203172541727007199889852538490257155290952589472910110530192589845799876585434174096198758792340653958766341279916410524322817426136051597167190569341276824852372967290516532070723343080063427015532241320135776559189379061161721555500557507835544573268714233751877195942479882792149436718054456950995574951698010407746192245636330732404348202011988222230819012890511163270738960616622377117373944331140458411677047525920731622103382923136516717849869417524295571349915819604661068524912854457665867275178523570363059886542130227152016741738064709027000907717582389000629391479659448100045783767991881730632945967788841567233470407686716831886431705446437259013834896731733350887729789764325659239671568478091531689022404188119130547930503421513607991816463604528383418849265038547859391707071410974750713529636082121450965294940784087133766850012684416968224338169733404741282166831031021065199094236795422819432975268340836501504532294174323573237329564361692047213487382467002900243229549361844634401172652088857083444928715948491702359218339963715497726623035411522965587570141209067821652197558581792883880792559769770703985275330213425756875299099612317177074080522279899535082874378518898440762826062778194061337166880539093722429444806081115295954699124306060308135591015663202914712699052754663053642264765559744101987536991892547777124551645692796876052121278039848884885142904270026219375381883411164338556395344958143797820958116494753919464046398953537577213961133074316710590811928464054928304324694380182009793395928448809922098259741312928354459022697822448689286388041658615590864126908648338269542991872078321824966521815511646095620900799030891028761449468310377279399573663390159680208160877668179540954428910794556811155077214443759257066568305139328248929254910388744069147031108807227482076609441353382986751434556390324688040824405843030628660988096301929297907288294806709220176374995013337208304321810902977971101651445882258142751901519517556518834303718282930103386784680953837814454791841585392081895832113220949735131664508245258758800063185088146025591873977344988573153629547176698850841413879758791440711104369824957354582391511952748677027953654097170744391508673474956786665182138876595783902031952093144032094046520071442325314110416439900080684245798854186171343200824217304042124599443263530188293988768720776800965902184816866744614927047297021392887410692821950722834982643067054288384465372543574640600471040056985744007542416783172078933727545356428735373514533913740675989542596713444591280961656485113152179131380220524808175553098509974698013332920539352999285454589618244906718407325560579996604136889116924007763894780511409749550919706334314955512412496429613995088826305802366035880039665152016862110191805694059868235316004530022973483074573981111758187627196661903929420200338181895918417975047145562091015108506083422995844819801197810413687375290272393789449837562002556240119747263300186441159803206909434943278386990846794939757155317613433750005483967033831988453623318862429847297082789810800733536572509462313226781500164289751806118309190603721320799548960514686348123894258208665868100635324570028249070426851632515901521191349041529982624116365429983767333799090114014704132255725599223622304228882147700088962502211749195049801085157830050322418922737297639801609765960969980344330355506808897919469031832399760937946545555948787806732727612972825843729601738695355874507843260364204771309360999709037828175450271825827598562517218214442188043769788320925328288964197989292749921754011976133283101262791580463465014690742994516868121904732196171042879179410705630685845064362346486237927345089331600752957595265795962398081387661156660742306398301806198995809415989069276657337747767329575908625999799377326855381303266035284475289013624460476718363261824030279881082199278269751106829194694376278083901649684422658266133455126860131732714317593013774791324630830687029712870990462143707085736026971642016389693218205327774955372955524460381477269076879225111759350051868325194680269655709710379736759446091395356940017128575095601412999041861935435272177693222657683986789529003935781195995406999598966988515645313530056675907539052091525503779563696330451028822612502570392825131205902444057322224622993511562721318511550932963592942171757258552439242393392407097775473602262935990706451744024106143600015731372614815285075258168799617158210469686843746866653325067587562318490994857443089638021237974938374705307405070495299340631521396553913320457867075284015374103505125568341135994544354841873798210294138295778745389617806068997395575681254437399033081137592375150107545960581033605682872207760353351084547201514089128117723723100249086965165671202396417788289515825457952162194301785537610441852466519324365836689701925635964122373982962823377146385290009811634647106527275362063313484198223676925359907174336063243085897636979662161328465625818351208586575735888710827275462140602019485943156281640589713900830837684685114717854105086075185704261701447183140347664236539836847960003297170467163364517539026521896618857243298051940283016049326401700318338573009541682747789498286490454189401222752652782531223239915151823540514137275604923866232603353375423646679357762357021512769455858708355942473329673575018468176618380018196197750322670495012649561579651975569602989894988822067858948094266791162578715424957615529625328733959069816980166682506972947880090109421550485044287794709176867360097422980187338760315615583981183966694603519300814354865217516075014662050893203780031557708408398114159402382805865694563768882611671687671802966571934435439296123393924236250624163596260292628914652304308479772403576965780112061877093336173986998047902526093999727489804622015414803564112714601183350982553611887513859696784276493466817323770783009395815024552499851937817090373890449497846938868000152945596068118823392792418709676721941369830624313722793594181538058881658632832545746415423550620916040511744647057934009411931008646211540686509101202248648985447900635938431050184689466233424475242084608849844154936457678152397218876441412737994240817650136628439039157371078856728091890920319033198053732886612830882638257318521423341253478890352702333181964002329864708892031256483914114490911344110761729141388112045394687764492569529114498945002675357662881966932951039309672862280511868133557175083336394250128743494016066388955169804638633399455256673535630577923904044835636842200849599799903043860895646705942193289058089006740308036907818871648677732352699501897506437706060476762067180437426518609632401142843546251267440311611617731269879161913406394528725751793322395664842711682571742509037086817046603820545198513011823840256451362628970471562827269964426142693599159999196528309309260026355472304837992833180784448165455531331677365149997931295852667779786829412940058546278020464489984415163645136127717364989401980418814300314101465777997810473940935772496497464184310898058926511070845627706557452629176727969076863374558085815531886117339907263751892860452110327662895294689743669917977944063398353797116235489967124404280296081306464642364449958007390119698729789512772302336109371863222878685854987336196639388149869313254738558667844078178127864076072874182101810896486602888588956337333957113058247249593671896426240439433938950837565039045940386179303486534954834494693592026463574534686327456626597578482578746548138273060998630490065789252524102295006593654098588045761593997655560488132096593577033722309074738987853893972591582448666330862915169715798341362072208006954074601622416675572312276709962739732995903987023639547114834924594751116255988816304058272206198322505323496424902066409408668719388283371032334231726117068150427481367982016157539186484477311126509800123681392092828453679195383030467775933885165605332566838082864506679371472609953810495051121070534116499321907199001553769797606876783759072759394002705924641088102730658974841494292513259565079973477479777803762888442327056431733931816731543595356718072341425336446365444278323632007172457313143419440170726593687987611742039794639856351644028732603038270076546046935931644323635810855955994247014404694305816038557998510772584098364506337373936782386486790282469240114044411493398091107278433448901959717987763911388079762066160753918532174053958271763445857842621991239559659603181491174828322617242942057043185593581417722166515835814694231818423884964343303573757600509313604238926445206871821113140488783728632126933888750658128665878248084261360229323688074847488458300507605470849533588997324108159525763117970870966513104685132115665286806452231934894474060223802215017010310747735530082006731342574741527721699924654541961293877729508877000282428745603174665195642905916957511903092030242247855514552010386399899554014118282519715539216998747172114564882843081384648650087461505204327741617646999092768542911639642440081563647092491243332719617443087510617616003748058100189079465523854591207998965058562535628232752061804790292840049861812703591115018108744921854740675357262830751226076016742910585883186911617063920658504333347429301088672665798000007521989828266242971809519717400551190369483100589866483898981384093972562135591252038633087025329918039852904369229387443262659641110007638918088368590481548728235857034127683092584818594637386426718454268859815934671540305952076351997616232580109955745733016606656446199213128993061948840171634570555642033242510295404142666364838439414031765938399410553739809324022028538809165318106170448027088302112922200687125326410593078112531414845540905629878977729538067964246170593320534613573185210881807665469881503631285745044275542896602450753966682111145773214045720506461499269442536219573315028893785667188309214784917073724079499636865528955426967055665646754644737087899859259116086372000047042373988755912987689456746250421639686718905406410296179153796117888038676930324810988398327596121877805653928035440653010249803930467506815520523229545827270904764805813390848662602565407878110793759600977431503890354258826428270004219403167212065273236414587197649608960264341553896888838020713307266656291993458218930305905627363328704718863983673851270171104402926454557193861701366682267076854962884462518513359471250822025557037447580342484756820646188089684810016244764068818390618935262543846817432146506290401382472779992334623218411214655975515794263412486023722752373219125329762234293682057801218364594852418026525599949634392848602789189326116282583090232587284934441387382736793921490511338438938310481058471097274406413508263856294566684191731208070786060763404820298205368919469533020643728047656967223262097049323216237566055649596244708537979303434124777573150741764438515189434562579961512132942708694940666637568045898319368819344610760183584379175254098153622819038856811640627352097082961553377843223286131423563480059564535364909429407128874411252523264257330064474062758324760620446926313104538854150734621565444998717089914516787800659384997075220711834199614277420555784902820687193641423939844630187731416555104887228069051590424351169698968955547886114047008915811063641873615219967470569162721120976840430090840718586892929703326842081438402334247368485446784350043715579024390832340047712487297449041213848648093061900308806730561254850339279643287932398534166352256993116518815520020659638812352986336633969183909361546254805915109017520320341685235232283213273475968725022704504500243635081500962375404337984247829630973274184295831206745928800624737228909509514819321457348745306798646586895051882897953709224477724371685527271030182549461219270391249283392063489564550556975444483931577750778157046740993997042858579804562546695885424294890946434680396845120757989826868099812353734744137080097372571265732293069781072328075376015938262019264195096120638077309911800660996645230433069233493386826114108209670348025475516882058010596264977674279033865141564101420899483613553565898697880238196896076830527184903006975688826917471303692576158596793021321221476509549200118135770124632422420226928325240423871620488342039687447450977328698298016121064924258883647829625397427328404996987868892021000484280108439053489111477334881895006816282666408139085247081353094466485861160876136858330041748430477235782539443538785376013733397453428219443242924355435623362522960395264525784196378854656160046271776269383772420567155504549398378156116137162716089055223516798368440583018514767653656865746081023808023673512623976083419634174022035470964487758025504797889003601138602941012337810648159768885670765876807094406999508210543234581170731344764319400584533046314452809778938389721429135037906270587655712283034081699667015413684852587685453435594589336147869364816218801385650815625481141280414668678192922139184779054431022868060112396240415840207579361586272237367334006377257215238879617590654202203226712731444462290582918988288295753220232236491110854688751052546138908579606262603850672579399965058746418138312405439672925354123201086815147888775515093009650190234097435549651331465946868186778739965885790733975353487228250358671599417407220036714797742365345414302123466824380088360774844226042124322336005194661440872568617262458842698600809316587986319568063189841254331346277079878640920568348008574137116590591066167096772492721097894655367764720711212945622333030381509809771554502067734292814199474978590878781403782537966314059987993603099330686512107828148872377611632544378933077298895437813942697941588796269689960049129491867467721364767818006527138417880245185391055447369088956437220154846368158336075375523353536802410435165775687361966777644345486714919177660905696818639100961161949207610783373114223093977925704804362331065148279360968562088670220815164869722707810718776031788104071112164208957296703731677789763036101644724805457228634245776006201771144245946025647434444994773825340371432512267357796635139032388514628689318601283975402315608437215584817020456331554537291821063043227414391200665707061195019634311128307167576368558407809927118327258265010021206538524458874991404410834867738193339380344356315387558770589521849478939594123581514956356375577450619154913284372161154862883271774380501354196800348737803904811732322201597907582216639211324390751911436539389012596684359738359819749578056940171207983320306224939066157592955910650937950384671437768785085299771172620548724810930979855332308379261492432754641950431889622405749042565214957098326063679421987818863824944524585712103007859935386162256361930566644530111290624907453002924752511857588154687647587337963093012258038582693647038055548198953008300649703600726911211638958503071742739062639577543476480501943204366070316449957183168262488772717612080561446332864992072344167282335103671275501793460866347989147474715478475854658368520010226420340464244631373057110628377722766797130481694393837410568198127350374330668787036729626284698967124079441447497506642140221079414222855338746693681618528692374826648099515823016668347871517225508035679306176525173395220054471155368627372510510451564786249348209350956047818180348867473213282484641308590831951674558037271544313186958992399501488899381111083151547542577049872467875842191388921308633721807810855453707260927334818837127970206591995213186287592883287487101396028214910106016234191062805235802154533144017547869048593840410706701865598606852740510429686247633917998370854917284073748582026467582959891843438937345471399392556349856131916661323791359644858830757576282852215518811381134435739375376764783933200529858910212051302763204789798326552459327909660138912678117924643140771741349857204575225328364888840374103633600435789537725883980687485964771713006333209683183701196092762388317750445269048862994184800602744082957526630965649269323252596517124171481313410821416220061865427640226366224975220157774923281992888002642924717169859822250802075880490471322180720816980704615737428204941593002332845427845305711990270796670411789629016619268458596459883613579327198049590373765740055003862788680902241674370241762389967179727303617551429187490190152236256940751361409898865617975498567083345800860021568725158719784991674586752653026778219439405049737432377083449397395577449065318877906697229166409428193755003094879708706841772961223485100743482251171736468557106814041447329285344350247038222679821242123002289199608619326575968349318151446232978770397254888006185882793712557616416436000291098953218023894045421380174737968961920309767984877832110800002402807139044318081333451056714095449822744937079083979469488973822789105125268098126416919496354380328343739426358747817351125278590009691709322883490880868387503531728722539989144136992646568345675681826648643227068646826690721844247303540690460378326327870829054067458577916718528035102669126726348451475619104538587737835946482980780412115398237298721065038169340200720637847009879764253940448456172815499713687114647162045424774915931883399357930605677757015665479041151209548894544415510378176660969416331065973334465635338938523848815078959114035693179530465626990303929928082744093786273396146718435450329023231402046948669755900973897889247853146594814795638093725336852409458496760932493495494205342564037115439698953024924375154282351416118284977127759249039275229392384898984683854311495625531960914059594411051260680795845804348075340934692825353681124400344634555030235594985127222133713024838324566340068057987197945149152383974116583459290528286092682883988795069365112670025496255383500050784861246808334807409042691587218906964385983470322817445921459683334020375995148807436297747775384320485618239615235444841357434226953322733291805000708076099879703286811902265035118915062091105490057184426310023860848199660180664374588167183205107435424724408424976735280406802065609130242646559124172336581988579522517301968403340026898948727799362413545229613792768622723750888015985565671850152858330449641634835711101456221292665662088938526507411756827688783295163500319099030586201028135668932912035061438294995848898704374009652983024656200863433372972158798912297347191880617716819072817022920097696683051722059167644346152270348768049890064035882466562107002005718048441962540015794835707686565892958966695123425565745724077707559099804710409452928097855308671555905942446351211348270764876419873718735417907924808006078177150082035771812837922637939190859214353516823965050766701555625601424249808536443798527890898481828915252722877928352386964592633374349258643643784176724821112447414108218121941838094194163665887874597597686242350229044834594495484719738301510551574180169808679362942328795435040516855414614663523715845898316343450341476135329461651883645099453420770666868737646158864415518931293359674216265193547778609156450057728987667195508782010852224465472961000318181135126691835579843943714967235175625928996344030392288633807359974292632654278866057907475177274071965361285415253350957003089181357173253671099175107143120743957194142946790799325916771820167377179094403873299065073848090880693714730381018045539925185870349056607726412934408981343373111686744720328726454964075652883026310349963293088340312195121450888816383002481309354654429014871615063905171483215216361272542495398309623926123140620178124044320730598490438581776019907651381270210444961549161172106028148148601368173247621307887080327245277385603741839110909572875296545758753474608070529805858609324612858512556016187528266493335348911300871471348353368198956298624260456329088218060492999190708503998529489132056398747698489857411059954561418360718821353963276421376899902151520922097033218282534632117242227831474840890982539332292119281114067640287944061651466202278001700235035933912523037411904767384353077548257563992305577729106833146746445230699032545567689108348383007841818109228004410372314240704333747884094190857270574121244015408456090099838594759243676578564695021362957520816328586198724369323782213877623137502684985089649435703489558091834492437847262371915792181980973040182223098329577931777706349865330278588709615255567822982742975314316678542106593561158147917955605404113201252958183084830691240440657175268880976818314241978549934543979307169953220654844185276489259556782171541629286294968439448890607099770642815596598470736979413678296078439728376294271006220728887610573939069070061018918845258441696250982965288422965608820164892039202274917658265843168084778563800374995093249049561847662495290993702273500275005192536016791359692060660569925774683216018697174470008563538841789517879762543350518328495494312435351631665000724466679675545316859685792239086873956327398953491789834467964178400768454904782905541242686612668673835278212574173590286785871430388337184424691881957575161683051231383364096929581788084990491312276942236298683352595594251601928982127373109369810254707845689156573899460426735002993280278774034431121980320156966745594668288538584934705508781827214258389262048452661865998259038549162937959447606519708342806619600764189172491943330606536155238778826468131519677872782343883029927146687004155906423403352663831189522597219348363152980081080817030811671813081350682332008057805781519620134080408443604396700915427810099975029944139212496509427393377396831632072036682276641350370488317969565580599935041496362061764345921930356431413704742408331959892449277367081797588655515545323404142437218026450550354380780555912116617213903773723152524910599388072544580313465067060861324472027405493042880854582883853168677056602624434876785460882057001517455843124236196402198308316440791684306228480296497248740699094864761752628331813666990397123914407102870591658437258097313376571479047707503611334045772006531678352218553358127268263653892227528161834900536770316419677691945572299999325608929857820766049135749422495724389963001341022087665017402564665212053102010467499197880556655239672735729405016622785060526848002931343331240483017929911399404888491327992493395067239231604092216757141974484475753325066232790803349094979978227828583080248585057977168948483807459172286436692689476866229162093859502076184969993177016246548765693704383181660324076150964704718791366977260038810326145969073056904243319302710280972275498333169301866616476031528036721250090529207203300996839442379057504140288238932768736888060872715176646736038217095264986559409103872630753160016829738894871428554286843827763017536016075839310515658290344568122742620473410584919137038756417530135645784885341818905687452510671971378904200625080497493930805291870359753726770276150381534229815727515025569281666037735081648713058618541941787517121228768558706428631835730877107301415012998277084359962444929033898643792119209695766319488287233677664997026305598221762045884279794928976311322692880742833728373440754331073778961677591478333187756294976354334097661974950244444209820558264632518373865204403050211100965454013545255053958203951218590344141197906474045212624653572279275477069910682147739029311797469175342428206876652378625674506524983633580614331010359929307398380071388634668780391797762913109283586183516558007933472991952117705375524771685297999314301440160207193821541799235174743574976218768259588897726142224716868999709253979694592116739091144507451781324863755746081438725383501350276933636084425299410153273349400540365736570357281599119251371917523319422424792160054869664367682813345163101556334812861530365778148874632519671097169550369371551319028758390164565987880472825004300379687738833894013040339100425606949537376631551997230299765816671416324601609414801705086868136288248476220577896895911193944595580141017888030733353507897236071273819893020541269169516610570381418193266837893029288403858281224516550747772447361265814094885325464691765597715690818786486937618753857108533240244238137127843459937917529120954288120090699166416371506108606260593640886617845680008059678726122041859922305513486909030616553054353120538422533981717232649276417644309575483000653846632400329432290006438505559603878558330737520183931351592879270074811089513752386154540367183217280442482397379055174965297208320174562038681399960757622796208307806182610085352767406272432792645687394405172594711066662994337536868006921207763194115665123320886107718978146797047966319050871568751103569718390444325569666971429350262939853945697045359522193929102956810027329524074627627062895981510410196465910290143083201977163749545963808030373036980230965565597834368832029512001739806104359273515015519415780237183154268031340767388174342649502483364686288055672568878121535535300821249944015103338951254058887764890703795661289354736766470159367481439341862858711354395350178174862397487914954833358885848159471340104058169491767730033574904529538367534720900840581429998237704407240686429049633202229211406254578007233459827320024384789568598511873086767595296295530414931246462023406874116293515150656703464831411138542175997548423294944969927836690818533431116296654430523195575343690210610763420860453519135730971411326131234525186928727932229409447003528775789776295669930500474809971003450838988338120960334289490731405857224792184711340632858467002096725740173666317876042768936594900891235523215172990376251518217730244362335781824413866906666747827304845923217781241051921764701937783919743626582940068913448235249550261410229645773949579191238035643999529668902127362525774014645771938293320359324107244775267791006855522298200385799588073195769579473619468054209961529963100640696969567690724021917520048212725689857593156358171834928392956727872078743604090419931808506588029442489030695067491363669059858712953155687619398566308421207875020664939848336551869146893596859195960539978060428848834887042925903143656479863441593588647762755682588240782346168989951253988304033724309147511803131066568930252117282270941606591884543672961816517756828600795048975594992187240854071105715167487731823895133533170411748146120626248756851731007421935101750087996967247192758114809133810376318826564753034478422529953534753377710572831734549180786884233216663778712240522295594614783062631328645860658313243820529297965764465600085812031217752185328814653814188190321021292160679446669303271138131286670862342762824470351713399071957484481918691498383426618874733137413887057114707430214295497659982147665951037034963983775312019414047906923903011427515884875614144451264594934520896519945437390295584234859640005104253398324698675684677787301557449950747837801458368148553363552840296256142799726764069840655840609502686912901306303491247964458516721469531912970739573656541856056400329427070908817691234221542160351579916340274441371478172794964541594550016048671777722561693931737367263564770522485785716757535639457325596561094466255869967134491800581426040712326017470512723120488232475800267330120321326641179022470054790237552070701917431253664146079935500270631626865518687649690445486294110174208515042533869055211433278032273766435484036733430713004476182491766516963514145226513602374649027045813089891599821891371931156922990000073648157463114895863017604747382775839666043362008091555761155150494870525920821070083216604549946459077641568333273052609157551018915929762594420042030382567829752911935928393358584763716293165854295287346984557830083155296166234189913679353018326989203668222000451219023016440916524602753614834493804164206377768191607254461195904180284011978229491914912936703596793451368381321751469515483951034112265505800580332407984963872374921640066464329391745541201554886016841365344518058204159692946289079580705426193430827715969977835419254268346982326656706995025327615627132252807986396946423544811683752875606972786935996654908149521061667946849734438829111323463359070597632532481794001013824253957319028332604088066467075144527830774035880124606909009400811852869743007118810173622902227791436689112835725560419445124603466268620214337124806387021065352631587506945225624264641340914600221070960514093974086337325737179849977178731508384334580345892962828420601690200537816339807941836239587601226122340986923753788599614145352806866017042535588982962364168017750720259420114504157367753901599129310853770365156365141547878070302845331018613032856316431815457413345311040781648544007658148534532068063313180989665273792618644802494708141656069037119322591783429436303292034815817126301390700406455616080318756827097859810969574882538866160500368820651638419003538725086122291460979478328357950827752582804483261388589811839052411285323043286076530570278104364006573030226388491616737520353305417548953068578618184548758883252863033224920595723915070905509354525791044215790295505780479073079194649835013327987474281182903099855466612952240058321477837882753327649789191822073515010131603260464684494625606021779101191452909941969508320747575443948498236217927385560659562736937238648481558428774701528701512361168542065127087597631671709025152937523421529202906317351631117250129361084100176134831050678546457425189401981831493850666303907633111129643806976308030201624048914069336016521206759665144090758578116576877390228659683118191977760226672411118977295648867219366364578940768149939725482816885927495496756612925729571324321433976050820580863313343794525548912351374761375483855641222892413533636325289504648115171740221078036242622582703994843439806042314570486373114759869450617351208732863686184190656910536522264416693589563022903820547880077280366156848240569964899325460034890335342249307051871189094644713045650204685334205337715529820829887315995739476536103816790277286619813413372292609319891111902489324432703802486464483445787006504486711829973578134703084374631525697338895078362142922680468514122530949627604924771975004047641469996395638028698948306692247060318677515358145852068552904795747014995100785473592997683064548038790995389599718420405636286176158593468207724832646005895713804558124479399100221626170225917283905113034564786745993591728492852501713117821361960083521105420418675119286543588210047249252167838727000374769500395690976068465839199224077466784467121304450164931030058308479540734004384865413425234626824568460914072039550526062077231286239816607212781075373341629751979033544771065904737248047200663472468162891057713253968652919554050233882657957558256317784045880424708203495246435435136792058284038375056916198729715490257116710513456201112701392438110503897848278506840927618628436477202008545660667384518534419666357396987332878037097838558338024921574567655704917668897751085399722604866558863676785908824391641559075829887612326121016653536673382046195676532562505553393629036402582082822172507766676937482550979582144908357323756575990039610062568708448607480102874674982339758322128191636802070085601687085554084716722783695446098604469673159730035103122806431306497441969062318859566614315550842403769085282421971667116604105014379739420185621898482199653610955518989479483836794132621663653779958010653519760764636098011359793522672032775335380476340084287300705086783591916477926750094032878834306933852882997789284897746356689210573949463335581619820887307066359786488149338986781031942571276523769796885382085419620118375295787122496130764003835194310442317441910810818192833259066260304855530008999516367791582655738403427269079854014759726247305850075568234052878565261781901557631013397380185471661272174862341539833832591456862200679362411227368279514753269261806816633991952810431115570167275226795739917337876124986614434257623857910935947989680139792288594409104101409967832216035609963609358626054492065307300623258930970268162580748172012603828140202249645729646520068163504616601901584643351329662283720300789183379141932029068497671909033665851397939505126254755919420572759377204327350959324443562922512177256183371124321610572723991165825614922408987880440601453687468432751103164315423195851775042868148031203630288846576683769962980493278612038802196930005419587194795280229017115070092323444324289498994245138122524429023847323551335961799145544110772137864599402308945519284056004324040211783158866547044389259796423018610206721144734159886009101915053399440632758773923122085449564471335301572805358240386229422846877211488037951374430485716425681172018239182376448114637201032379907255588322586587798693354974604820559374919547931906342236504587728265588959667203129779193905563127206382879166810870889716765750157888776062611628955346796793709202207404871019606132402003180278854673270661544376920028960707272899411516986920940161978313887631049666089802133668005566346470603341397765739209374239221735647270893808315229673191941155156108973205513746982260003258622578203507465112864850304814834877775394078900689655510750413730878980501968578221240385676952490060290108499746044218618247229022325664578734169835620602094082898789793824885823463944505060127008221765613013453894879117897400770275484455407750944223365326271718812236989164043551402146907912336342264850597215750406183628830161224683172206757659007103780702352761088581398977031491873745026003543945457862075438286269160062238742201922626326224947377284377095622132346039089264836352601864555761628642409415448502448673878408608941191313930824720801338403773879048178641398939878830921023167228806846899829499823230989428499600701058833803482425572407098999455955964123828887655393917124131665043204869461512859559280573254584586126671874427009990445917220354334627561809525388878819305246949073682406127120234624675523918885518841674744235220943872938987614759527669752028452165054060318026416011865484024561423464018608039229369480818655985889942061354386256290899945995800117147379423347338201933135992737339716631599663840892574053680410816358382347747183063286235066878620933621865692932320731765338132864604650703276043787421520627227074155347275488788469713348228879068288463226863735055709719809296871233318466435463192646333039134213432924672203828004636420258784931310662547540078996618576433120698195892263083646324370882395517426684928114292450094014401403736697373762029419629825727573504605564782550463927171015609471284292628280823912641827584152012901318932072799412829924976400457168957691807016732515173369923144176746507487357220543422726396986617659261224392650940601283046451526350740155403903410230342169935224921756644707930986996264459744117602048658734449140063108576544107353345540022650194184699256265841238956278019051785688584527106046764812751570746088759418883364631719828665674386028577308142485671953941531805874352566673510110567962601004290616165620500809826721567131655209591460031072066023495170258335534906246396321392529584282113140539816771488149138078953477326035400399345130689493830804744506753576027525878433940608016508335442294303951036184164372356738931077100139936609871164336422650746549171011715409328704406547560271158532349023685727520318189543801775007709185416637454153871244312960787222324292740825218518834011548203695954692162578048340413728613906680826656454881598678845147389213388651420213864903885110796498883476644897862006845788637936692554227119915628334717642011193171078753969534393878642205951788677509867217314707789709219743640566457467968741757619248068881322193360698817091937327944249272902062260241204761102093830468577521430709059304286860336893356636557816169901457509252117861157501800580954739894658938650740458535730443604436349054480430649655606285161812268306116713290522336799893645986449290561127109513576899071557616491758566446171218404018042158458701967876320744127366280281910406030229136044946061865274076197039141218157533657284714310277810592641792220368234234724983273172788136971368617904876737788972372453196757503851874867187777082074206071647815336686442613886758255042690169920500736834853361323821324681766390453869914032487145399115316049115042005108160380411918103226931170883697804543544622162115600558394891264912240758846222559798649129469903273905206187826426591127389951682618577313171705011444018915885432355900205469037393320865503149954167099816049353057758794242199614092605558912768033330600922437430137860447845690344596359193391242003347788604064693504568640991862740237902826019491647948406501624537628206091686037807084437562886932938526791755818280588765363126775254134488254033611183594729599691266102715650820590635738248773902210499863803340109614144452690526087881187189678110662891407011571895927572101789346751719620410102199486470262608172367577443027809919074082709378331060939554377534775187553794551143964676534758120705488514478917854513894011625314198914796802016105601342384781248200729039318258549999527354218221721679511351858202182361632632039805101178493774053287465445429812012781107163697813974164545533363225592078319635088383609394602633811461929543230731240962962040209483554955341894959131039710557668582179765943660030947596516014063034925943177826835446485300158321271828708785320491723449813288066159281544429582912387654020089366036650947480198829739724844766492273020520549540110432843498551694492157422316578292941260038035860305747220722687246981541535005575264810074208293566826529704141323336488359056633768338566635801862041875175510266271977451486847493867314665578150135741426811033346275854814863614000997925081471409881635316058505456200001410529514146047499263309066492411573336944264857749999832435043127888412787314707965667478199292835462769278967041875707696871274205649829214688486960086978050414171039858956415228330800937810989471819717053493717685594627405540018123661496980180841852354286879211089611722746560725348474342508565027012283957556899252738797711482215124824968012383859330844013162662976265431041460931175828086086867134837825683290524793969890203432352946945655401251140253654000708120903596065071924245562464987374676330762212073324719892983609574879644796328717152547285868243218745308375603008174169498473970362049761391158436241691082056033808831987176313526221794622570705688418820961425870706540851930330337189846378384424527378147666157161866384023016541801248786944821901635184517888103100780153565548552785197995463063180869113684513281780445151637145854618459034358906430486472360827864639726125939381472389241693606598842679150068112649097668257876504398996053770738273237957589464984558816984106338993470835368710220625812211903374812355802026540987479004856025709523783946350397236565301618133404830323943408117858465134771900971061606863586849391931143897245268507564618313998773608601760945743251528406819743470596062723290293697037167309152622709360900870260176604982718677912781622606427289962899154533474476720499883326022812326129750082324815220025492162394571202602576063043863001383132150788926126788553116719745034594481700328913873003977359874689689357395145733163747779826773572921231857429873205976617133378924628504274682966307330814049677424861356519517851461121547048805054727754321268089459257617870238100118079920287261289521669181964258996354738203200530649356800113499300642818561372192685672992752284829632969133276365953975296233476947785491501803883584982836599981175459591985303376638644977391582973414715894445666496620914901399638257487941925818193861593162316219956576553885543845574478821042971511806254166169011470215302496281558533570296831617662623651961608691755699004995329843516417274950834531146266761568914495607276644466080814408509671043157333712696190092461367217278677110140903320790590445632007970794474435467525007328105537773733581681275400091207849837666614707325266327580464060762308023786157269259634241846027652296751621916411091706691755674640536516912606095190552076883938487337993670903802014067862534483450121711392085370509751785323004024042000016357451503216478673529787749517688132022611864387599597058756117782115179732161752535427883717637066781899405225828061770201847770761154246238449368071823565575295563900967987897425257635288081107182957854234700449275172732699694950949156140334459985707554942017364190814762210726962410831234930682193388011487611888862811408096684648987578458340223507098524268260521606432661347847612803693856140694113047742953106872843403137501989235751270933930007474884060323926019408420513293176958519961229512781240567176746120359323526630630254170882074514211468362544228014668772337148827786778225328742011549559096749858849644315138923945874483578530170083839494525837086216480203253964203625436526763487688338526806903558691611637186192402568426544779321710307692862447736827741572442210443100663810128411272159109983282203601653802859981608980037474701848796682499406698133206958522262793716778524735920116356268099788038722672178728203078404872692421033081688714130615415173216589093924615944986600737217242524027749481949709163603585086831423622655063707296060973900532104563552914436405611713363547536564976391161852080323298994621900415515290162309823692195316892111154042191861788075350028993761294695062829026427009901427731950104447194274639008516898216923648323489924394462392156195507384784691205855064783165352726878187405074719320196583031612016125720658012462194382014883503736890774558228921007666002447259135297040255681989835843730939372930183346172776826346416143211595524278436446075842323613296378888813038339241198334726101911604705229302114035674746007403937730715402183934044989297701929946423247852374223258840752487181961515406460801914033737457583949629781035889306726333769420999200475337786625714376703354867538104087917882977978081892979412775749783961801144899925143170958669836289295430006582131032864831611211236947230021031280097217865822550464186437640176194278120528097076215567035775860879848706915698240223879906535412981948490458770775731622067944819238866068113410459625139021532600791890273680214043136205159182111904388184252266594088428072311381563954599150620278811371579716377618250811334106603940426129499275203712328157134157969035115096885579751486017597588519368915792585387574150208334671739433068721606702609534554556081629023325270576746356339603447843631558849258739296214830813643130816935678549741562958118081417567652719930765564704695110140523908154730047640314079129296200784188885709091564061455508076593923870670594136418550332854325068715008161530317461799519347152854589291928000960307924057734553106510461037653551188659821243574323222054911540538081491171613802630946567370378874865358524496990371523687582384652578565346799599212105724316149952610728128263818223643995932595945350803644951150387743103984989699468420219543556255927336032341774026890435971338184385505548895833981074919259403042842595249936690503077760471344768216390419355037314042833277753946203466716748275722301886556407970447629951070721367909350020627903882383193770232240483412650092346404199666284122286516768803376501691725782992512844363853130394295914775046452096754262467053284251559449961625213642262563420585626113353098640878644140716455569863505495988736310878987704933432171389362407139308826343715378702106318243315614008207881851745572735839604166561976979937504918097354496080275753746202391945603791239300258676818553542868820529550592530414385424552703841067551964684950134621424370653418015133190581527904093534215952696448542899535855948400033599409473490625921618538577308447858809360710937510661579507348761224535885636646709107513348099937156943578102798345680792775776865085255734278886301381286427469204103234152729912141779665841394858706461698811509258110491860244659601374281449375072479855878863074173768639475115590529388775361194084821704123129494002982024871089643080979812991979068034693346790321020190481599135072703351067736528897792345022965909421346477369497244287087135313607094390727387506002174751906813803641887724642554406132535139633371061455100411335922331468577015485942433393129074984595364362741808651666874080739908688055123742770950034347404484414772900263275446157204055614355096614144697034049011426851415108173752348390029242542091002805375742198171000459960122076544527634802112356601846602345844902936797910654998413101786263122690157511862857319535077053461665665965537228463505713324927920353967101392039028803242593989687528449493889995139953923156619311134129513902442533147141553414217300477981145218160365347161086308935463774870838639379173229207295828334004533182240399143992127641624370037930101066236866086896489978615827686117803130257637626534951494148640144421409578105759504128898250082923716776963233926405019627742567558905241680712316408809677711152425381702190700681609523498752056640980020236525306771860016661022287749443278843961329699770398056771136630053626087153384982836703021519693421265199866131242280944237305615762905319934019475649984787788014875903292532611942936284743914282585114308709154174172928075623393459407719547384441110489239139559855761357399980673268355253868461201175964919462886200245309928810523788076228881561323185760241508733051103840462822096824687439688072895432542419251185564105246423390854881624700157665315489475093841697659964648440538740053716245420370396984800990725556218604841518853847267638100260984933192263043352430315508407327263062209070536765233003551198546849805075097739835081620495761057240837508675842345672781596683487859704589802108210527653787867373813478649445041373870737395050482075097896198745039526327254018672956580517201475188763605220599533838877185356164684094272438566017169747614564834191669902978157890153368084770395520548745248578373331854495287752234794051602384411657291220532225128950943139116502976633704076714314721006401114318350313064931648357660420788203506688303718702718114644594657722976106355251318284957839138614354731763186756626050433322246571125502838468989842620103379960120370960796062597717758061121745829205962173605354961483249827708776364112578234956077610869018670181646617824722651192727452810645849263392764432672690635505365119557027711725262177005846874466316560919817315558347330302359182471320995122560844424551965953210776512842709600850632228020085545541100867934497822875022486794627269663640024320242441884118622054223892887237461075683371350032706784464889703347409831418366862460064016260864254989694655273481079961281210199321690244053729191330327893275766015820870244263683054305243379827409978014897351110663537509370338469530733778107222045661928204619360767297647172213444819092776934538200987976777274122799599095504748902903371634230830889866714659383169284639615607850208214452064861134389014472326305925367114725394134255287012954277517816527182726380153594121593659419199856689370755726721631999910273810534955558149796665619725031016664114095326387889449503373872280164109920999592205964787543245101608142336076209525271136816340186829764848268023630927604738687488401051343822635460932685893811797241926077185965225475781245493956330410863644589335826793646341976951590392796657213414502244184915992112540421896475422274238625450313126943082453636503529477149269355208256043533104499892109905525937361865495408281987791118231205813722564385849325797818873917859923013105916406877220539681890831269288965266775283667806362912058988600498780041343648059407736569326966078287606932360759002096377138574087717439567255437995167957673918433700368647367198800741126315369844358268742778149680470554837784148976871403972646033718031544251528226673396299856869755939397184966592231536244686742050423775068631233405563059211188305275713187532415748116792026633262095919206406997250225249207436457685030147632487224292380878573070252891010212063714428426949897101700369919091369340352030136211980209079843634239208494387866679437084704330274543479339261912436123877223274495269115329532096479242700500812306331545101198021774330207774118048649462361711016514953177442446329383484208109710733486761335939016461030577691366818494028796584872569227636629798645390406127446147255202393614802783529536508376566477158355677478863776200769664461834778264663599528054724677025414225329504459745861911163361492164649787550872358779618460732540338471428034832100405422583270678823130201815399428405343816934440113732002303622281764547761271734762546754828029427749756975738831616566297420255269344156476235824154664082727486856634705792216812381761065996869632237653353956641689883067611000962563429697194852505415038798282546078149323898693282579313109029957286760298152640664658557122487841268523295783730338771577728598267671598795890152097033447900727973453825125224689383013950556753481296923428825012293812560778866276895950044308684307386140242624964399763046307117492959332212115379867961373745553229017106815005985773599536623088489777406134194700195449414304668905589084867360721378007443729162058139379225248340546175326425475210207499057866713862575040330677887193916308435922792317130740929737254288089303573487080741486535223714224247630815182763518936982529277415802028024216333622700343477626106738789703690369804461034315366913113701103730178162230828367978235046802122378443417676324986020289377133838094302943061161739442901972325486855394928688557172050425089834181107574527751254826666920191483243230525222517329788544994241485836218084764068409631613734029359342920633216388916120739777945945850149144397335260957173371692959154527849197136518982219561142483653190579073943676808864327486587058154461338791305274162638165967929877499006801661929441056827466509329775423019310964344391678052799088335390397280316033783532604377093990317976816019482467857423128323810304106241450801330169887244919148846199353738059581881818368933043543899910901674208068766333608290653291931903650493943413434455890962444295162500408343109859765012296654709720314612524179215657758944912839922567580528425574333321517295120956665586752032268409042808491954744252312986788332015149983130420808884592860628731817424075282357741278047076572358713938362916727731932048722177143015016874288434557071524487743826799986705200495820973233869410376434615000979372017829903807240017041927708542699307628777836731665075207554159031305654594353523067238462355742015055200331536884626055470184536048510194211514565152155736492908421481647227456692460968312559017923580665226104521438790908409975448443602313715474320096789349935729443962131079158387039547232557920699299484741035348607350452317607091248528280047749817666495340762259927422490892345855742409153134114791520130098238317473448378162195286029695787524618006015589270063639233899735235994933847875266032235448843393268586926089896987463799763904487795762111534282363782749279979400013834503755437202865483491220026112128961987115256817701478592192460687718232194819249495517685880122776507581941639093386624709534068725247458083005136959972786568793161062513568439727616429760519722239808828013244873101586368144219270890371355563019369584234139609384937470849550165249821326052096444420767179757983273520701955340215395594033730572838984767465267916247558076185483629741887678622366674348534094289941515413334659374238604281407650218698242271349189751963397510008830012812576943581181134162510759448275701904277648493086075021097447044009629950146010712902707776759520579644421344529985167411922924941512408182251645537861624278236448745766364620145975836755735973580239897652271545580580295074554489140996297034767505773899023280887725650934764518857881646777920862292236642964249892853219686003704320505100179194376416827425999248004362303143288844005881711264657817773321796147307873282610339945630122816353360335019671005205824589481239910560042664270332138221974909254538517441674110689773287595242060916112354630970183256318065973581896752930405138096707835558292680656274337758421652810334545087164519697480965687563572617544997505527627063690609878902122930476904936361261032190514290187832528820929742801972649509080697061957112942337253890397064225967413816594528489650973145159475417107299664500991962867649353016592526853318747027050864942483629285677399987546773745886341558772889925853982811093779215315978592450277595119811713689880720992926674862332674138118048379398304170637034460801663438954284428775255682783136747487133732294851102512834269481888319359094712246865050509596348268094347401323348244429876093115388436539804114255624039654960438433836683990465468193267958079540871138904045235804408653936798541122505930936941127536376846481183734153560384151062680455954787268557288962804509802746005247160370780841023357637956370484126683736023153464623793092509055048160652890455058129708847339151861622921742953753395190862748197995332109173041660822689006320604427487929239674201741007741173670801787127670695221906307800944263326761037357801059833168686689722039511894037911870582401243009449433806977904772292664852080054258516517879255479280563427453379144720110494664392649833467789494801752174772026996870117395134346909760969709110709938233522196172085223411259911212044821845206305825134875793209996251707798906590256516716627740034451705253680667910515667947727984720762954679231937836622644946545124692479159117944358178928048183576869048171138452057906062901435568171072144032166236624309863366618792758072471303220853931392837503244423093255837876206243903455739302602530763511222157030109559108644665628313665299088030703390456549315864226686811201732415891412486017354249828302708569991756333016890983221371891752382976126923953850794962519460909585705014372365288100588830389854790688614296696067759948237470802743839799033428574741712166233178857666169836045682859640007343124836650647790001450504206225552418116302247944917458890895000055342501934416618720737161282486353653189768047750617897864184125321691736838023746992877925929263631774846810053888174061323513637869888547748375198849371106806630748607682011684934816679074899153444086334499620120510553294022099291418123244180154505874398154894356966464149545399676116709077115377439200344156826894586427103373552831062947870258935890192710651285100483634601349836077795465142147580427761991024228629208146578345217162311349800449570192899445978109331429919515865114533847688828901025869308678209178652054997760079081445607202843484039690348831638663034160771954487593699441820642801737138942285909368942352483150216688221934983326418287902251020648479169246109453440879132936860890677191201504321207323236013992629724425890276759998960973090734218101090888736825253424180198056318244433550186665293644756241272393200044296024128857481081340791108847841554505409533547607020910770653196403615144820512537435891489453997116871938160007960432315496134124067101985209873201440383552298492864972540695024796116520005384539941112237505414171771741974604456538397878153676386538584991499375733857438957094290722106033717299562270821033504604320726513376517759891243103507322046215880716884450922398440064285538670084132095531217037339849926600409456413262673633531374640372361644603056050339819670479608130306707738846632528761124232363345766157173680471294506238552339794680834301640839343312035035176781357571842200762749695132004993424297907636069938238575110085720853537220619907360164163345351189806147147442340227801363926335599322999848641047706261609632706722603597919250613913385179935796302303072695102253973216123952779279386238109571830023020155472311894835886423394941974398049878346371862859481945695414908096522639429863476510048371450630582320987245562199465372957602813863210236790769480745964008639026633752133869139485790856689022586924629113453448479164610291724215053653223357396654812291052441963589047810045701668978262165198753637882053879151806829116650377745809130395898363432448198807697038359536692345265679299705253471670852739421377505256567205170729859753651777038921367072217738482082242150638609247571094695965352978626256759421656077371447489343332492192876926364151430459007932432316459602966288182648707207068165207658450618390377104242471893659810928573801499352486715005625007024502852738780527358693148682027831039336444357666968480203751949709294805242927253230467404863327785864326968135430616500342465374810847442773252948560863985696733314374391528859099574752466819153919762582402626896452167362184981892288654082927932579708017626619611087058390415024978529940519958648963576090545464675114276083593458830082608071208280573612896775387072033095828990551787775532451811472392317096955264783675100583424759339131790992979919145993157907019438538939849805763227156415240794798895373758946672109114883116737184894554520753956126828408615590616023044762206471005706137092766714173904545201780209828207088842894397304792857766404615407629136785481718446016612127607554155784757865547190703769243996397287844791802027015649165187415373539785425389417262764316347590378899405361620678856069452163563270696812379818412827906184546560276676501173847436703302261463347596074135601012700357287544237197677501975517525031635117346757622116198078605443050349536809049441062401224470569523404060885677198538499676541616978681994077304490537911415437722281168317335169115200355355840064746985345160301278831195155234056866672421294935510698346665272349905587632161069665556592499874188567995836999499239763547440395559307031203588709375437723378912323143617715417130623665556799053815541895925775486424663583791553551900728901870628089833223947511336868290781320292732169702763310310756553065297413805127519536101929173858751722780286986916603658729848125753493291901956302177793159399378209987102200226256426937130247585296188574292830463683376919206846602382945244827248519755468553822352597631707811833200176526694822310291569538325224017745507662929468660113685877362866254297991607357628212569334373239423955470104186373263493887287041061012304779663910845298460797173991212550121830678824178866898578080576027429984919314457078615476914837028573654316942727507693347518544110354706098315763086439047770197906032985652736636752190736997808211605553223242350750182411885632429718376627168568107200110449370923644682299286826284591911227966494852636537042952346427255077751435084671093176982271935112465950173538409816612075975620901644149279441161360367614524303654544165837900821268667051490741077521806054082465239116396764110972958443889659814774114599128129606790696056480958027026424204913326290323964768104269841249208030643361111107865650658427664883109350170056990555536317798996123160673158462391996009928839111447220056265612622232627780863342311687323659870197896756036394022119591128034228100157034826326809202869705587508444684364108238271354047572516101497201607994262878148640992316387893403862612220783714764918739007010639161843206934723338853902209276478298310856321828071323837902850247052812323348790462657866461804313937894415133957239573691591812955940844649326268774768921387258257452253603308073370893570965105019968048202303619612051064986860716796315757099899887095798280830717042203993158961546750919635611117075136758583212192604770352206887771375439501978423509148192521522652689910318263182879666698325731728911264326233797841592169107890149898595857383431952265909883003465793660899121597515687896350623238609561699263464971868045836789894702074758394091633890840573729390217736299213766671446777298636183232379304206833656424543461194275231505693039212654153191036061327899772963314429481693217017438762563110099713939821374310185116959398854836907424384141940492744130821651457441818418730423165393858616520167268570173875001894593763767882495935238404674911202998206800687468977910475010917644957052334646062338643932004357757067618765730887019543513621891334919685912207852744725588410959740612165487018035609870748786065463616065550188266031466313296166648650777274248198412509788929870732197076177008293099275348105157717261073468138652388427758834938856023021806962940872219339867035253865696001923432169333730491840260309947513196719255438243433637305864603617840230026844660644678779140371145005521270816738579512596978021210267566814814672987485707657023251844700673007575130289726065240683041903130437796791856806700869434150577969792678986044457375971890879841065708554308158337191695464668166951204786587830191487093905165264523434864606760891080085196188611047363941424288638471602754177553397188588421978451695274312575295428791853960912978797923916437397894362030668007340814938116958818553191415359607851932938677234993608099469525083708302132392249221016562752768076640123918979114186610352915509713690051326354323635035794942465634808960295730038081225277189613583759730615023914669733127779569467360418393118461576136591839435340330969452797538784886462909060830534569941579755839076607134298163829938137924144833782553004209166281142568711370734802974756165254082571489253820757390660789205879793364318986189829631557159110168482213098395351459397825182358463174930438208144895191197662433725367365190288579455781937965286098732654227291195450113012893429495569413494101037762804563571549883682012690435413734155523407272240779656963212509958119877499815338123645612606746022686025613433651871849952694209793801815047804030351540998993950740766176728867616432013418222159154421185901167584382901216111406456953006498891664009531992092469593577871090102136243190481616466573382174245730582965914342154826032011347443006532623447283756792738753252938958466445194799600356630309692880592676226171749975231672095905819416726175183680418010200796007265459133742293658913078051849972768859408723566679366926069958515098867606250144392145344514039807071564740031967397467831128073835713498641876983850690198917711690436157112255051137796323194696662776478110115555562225334172450138876408152564515818489971842448874651783303052633220152131134833959273172575011441696516618192510658294983822845296171435314504011850886091960587568894270458327983747726916246341091266427586816024599006958440952542305179571120313949620778831171503394962858181605209956748564585170476714578389232114005465179661246885243274293024626416745756709653550294620864195284869428585426967543390308348560803983000262990644709030062305614886972530713346765071325203625653814350320398382578578255060905721803503589106334009245908139184845016133606562207531042226799476994568274448155266482474682272540027343272694109387225337960384310208557591309737782177171479474129456042782554428986033863971372544965598962500552080371775021761592066497805774062741424588551004737584852261751718351834014646923417381126123068814918427687391061675279339491817434227157896605834686018322553732581360002459828335237652968908894505691124294552197253120803915169884890002000788869973420694351549828182840584459155771111169835882920713579094607449552978020478979139523950775219558786805702215465383320585968439772585228156232945583389330105315434074365868578979003892585529928177872862826928444772834494146060952432104693183421949521180112276727888805989783453401643351387294291057448970027212254726258658704338071860013507565724401214100313112048569668016388890551019317984900798447108370203420379045476652129622666146109141198171109521593568363510037134315534692010969165064401751446460057532686626186879461708411532190124191544571401241938509817078951813454482995658633727959550617136635272505013086103439582260640218792976285698437764469532128141098670648495167805645276766913379619227629005282285509863233539187464874411951466089100819589892165499823209587540509723246058765427187077484453416560171033952787686414108704419437359532662615753033391832827442310518316414362421919700279447122241319791003168958471225116170827591091088637588530115391968543842501166600958123025540948370910306328022937217094864924341140876024202397830540788526292131977607945985729492814973007366670026344625884247276802356646252353772127320974174908874755586782793638063714468016760162830640518707730995927837618696891677857508891593188620113543542468529991154464023183633445553854602678910004272366660255056840241551524321148616206851570145008430486708313748937943425919291438554653991139732547845673878612589938870785427397410557021882706918608092494947505769773027172792860797498700319563677814908991263653631172590952099525740322274092478870217435773204903096039848744812285830386843215311223360805742473847410979784653646291784716895016196086846637670244457005191326045414718910965344065173578042226558410539859913892594674859166032789233343659825882916288321706437387149026530751554971856257898088585085544628758833654650451974151718916156130835020260439952515146323265710096199414563014604413147759011131263734754441421990972929982729755249342424802617128424938165978024111536930713345373511638237004761736225349033964381845876224056597345787028806427873773619979318035960081179409536790131263910524578010275462024721208068111740888615247027669771999965345131128417150965069267940705306008509508525100839729071947636767408897044802743668215817204673978943943050268334421658714061726951638776070103836659331368074443792970464464806599685337381226585249416097687909906738706855380968422438169574422886666923812923773532468014764393839313749792005382985142059230480423209320218287735077036111906023808650268722375410614843612943524085295546590264661729558704315051065459600960086242849532656708394504251168414805779347185160987107442542017066742028049906260979203666830395683446704317630441607482473013623771994554807042696411064051269437914384450867212285704985512390971409605780849478529482242301689473130970196911279837920354012727929456726194134197613444673036144127371418404826940678535057396217636513519904507763702513960048343137576629771758451652577047916002603748117137957578396502863266039260034982828525859969879274882477233194520931542053454298553501708527160067200385165925427679092126586158592111094783180426614550511087226071926651372886551718858873915303400820227351947487356672135515615821149300018702699564330178949018388778347973509596910112192656997211448034284371392048813787336761431626265675507671039382188014737020159355973137543850886636470108296180491859323193812854883650092623091181440911996898707938335547708310591376318662763054752882965374074818967013863432552225708692573294341251007580785760708476760765994362713473236556969080340909697267668362290600801087324170992651253145017734768524563830160238044676482923924034491463847890915382629501074847780223395639666713956409390911989796692317655340615509712966730351563824668269410690573066541384338234744747180931729595688602358115017821554183998348744266195784023609506048165668790186308228230765416058835385446082211579506009029751943269594902403715997345627693952919037677827784389518865026639834415066997839281880544140974706902782631997177758627285471886878908773286206007522205734033147716022840006623154538744424692314113549348098832994710029358325311989136099259529250228036208557912949656585930558360897831417338465711964914725742995899254041911677938101363155082924123600286496378925263723970093026192673508228558215676341561519870351295404079552823955345521718700565095616003617463427572447773255823935289306288844270733704914923039917414365513640180302566355594726595534692347766833627258490412017382801335397156291284603895922550182557169473353072196353255104591893709872344417425353844165755453593599994682488640634804788731632376035915278733473647560303708485030075020426477480551241858193692656066885174880325929185083944639735948557350343988748524945707824413885500210091516533157462070649724176678489417641468154392590359945361014967406082891036553315440994736547157746885592349073288960351808630398757889190347847695254615509733785594261752320506955703046922120192265254293426820233839243292069248356235159731885127583162063269284135205878387939973825075767387419971419957702835885375962123757249936040264432470717296663832505493625853611800315448363640705321673063854431029917584583588684312883385840117031263416563529318100664135426136726045921890431501462206514810386893180744543371267867816055713336326810827691067586237863485136655028549063618375219536899113444476860469211563503219215801198895030058611373814272656936651630882001229369158931276222596677511704685034032584061183983209875114952011184681377786976390601795258028593000080212730749933859155324523231796595391068658008693312016709432109206533284937755195633714045805691369055852539288459218755225797310665683148863168515956836762891186801725801363094327879477303067553617895359888339318980938024808043660623584506462530840974044808186075630485171283186949923720801601984387376661023029779192742956331837731564638497211020898403920727292492970155352954707867580253371243086076416399648852973989144939512253837315022270150695202938005471707339631130924507766073221743739139735925209638389202823023951475729020012611570919035783540464724116122946729874212853721354480406458353569770201700199981733277962157630458786379886556538264066978175029840792491773985387274522818661478418932667598234918455611394545521948701229334515541682048990049738296022879036311374579094984591429325407191840647400568800990488280023448565596724120924541660440334117240655334077386636064708600066920561344968015427145036183235969987644833160504719005495248802017251015561489524324598385155631987273774657825722799499101025289386854173305929475550432269606015564533429349902131892311273826829842886388053034617629751262125109819595640346413813157967172365380526546273848584937636857815838134440458660772795102450361807542985976581631990049196599814267645539980417204351821897006682830670623757323116715586578631138119582920698184254295667349799264212382881766693179229209310118063134606507390618336677371296808840856102127197803873989379899334137532936489571440828883310091463377094046288454742042255098309835418138044336876015690647039170423428921854256221396498340809352825877176678916724669890303677315761299043201362247571965888637493371487538337359931602533521615385711726382079429184156042983706234306673766001565960984467977107518024366320037317686343505853087259904558639618684879805793496637269600058479727112448326830474515439331662316037217615132350468393829429182557175644388004862137568210300374943617645039066968361773259538582381644973166808030570820210850280555627668043171293829940789720260362885005386432958991807717848253631837766760131718217618293275110410236922409779030404936185419054100995865429294906617439382244404774613011069132995084178649256441595919579993930824041387374071870615221903904529273989103735374244860773288354667872444967031125867252609925678040631329739218407570674276294760235164610802215817637038984454355530774212868710508333844731130079790823390772702820835368906773523208418687462547482692171978624704833678284289883340138511482927914527453877808808863044397464684950405015099702975160320179624634462155606684676383012555052047866138148481932031874608339392943208043963102935657186343546796776405705987650197040329146333342358740079610756502264702748206663262076526096782885243125573016962416621500074610683232392646197054165463489544173007610822311448120826989452973856609665806577591523602978581137924432759399640092595726600386282702448080101022355662635845400275971410394677993107834477168775755201961353199948039240935533049760592133151647550078007381549613494664706497119065827527183065599285328392846651876092895456784745914847945335654254141428524426130853246973608111003371913566363208584671032927319586134019687620826065606531744667609547770337205984106367495512787408465225371573729252374387563878078775695210795730298450105293045266617272529968705929354227341962497353904717240571559019252477645068759535448160755616241083815437219460809689673628213279491613084629519164009331498463309506697002062350739321341529033096610449413221879001574966802179203870951055540300320329735976975357807111507668360336292561209926150353837312147850296139061528815225913036764199978317159372963074457749501182879656888346806034055991250291765441637911579688852804869092975277586779489212698003411437413192603413141141515543020971848495956606455022277780018220678350947570791567035913101980457249939316480128467918826545106456286713058372563770920274362584345475280361760218820119564261956926676238947800717511706081199043443323156474059410294163719550806267922183760578565020831656712544294768972511379851824634855819275684526363875140971957695193158193868886243977133050029181410065700862925364968336990113870352684240237263431537549891022849139981091898162171160414958801548203394320968094306920605577815913993078866573916118956263225798823059478416851914487832894935191486007711111429023775918514970149073599237590683807925006371767395511634304655693746092743919954265422383698915925311102754364571203869143627539097905596291710769112588281724678181325679272555183831124485504532178068473050773834325751109999224519335409895806724045098221818121601413513804707634534135612799459478500667277105241087970981666937470267019454326513668986023323567715062442740326265061695814119207587378224488044298144541986985129099385990792152144773183510059026432974842481805240826546898825658052318767406071708969674227078785410211492040721273491233146789796853968782255832882545375749762764558764248453964031749107612561617142564273318133506401336380536576563971724575758122278511397914933986167193913875253511585192481860574729440270685098231935891019764360470406626754616225577637887921559736576194639084036454493614350786136281469125119086765648951668044512435550037928961060385353852783104694437245498016651838444474094135755743448724931380547108523227997859196969801613034880420026610378804934774069372910781022327774580934846862754744470166669053983068755932990117356247679763185812789125109876375465696202220243800778959097660567850240649732342897650501874875751351538558995419263040517320676980309894725434741478341647125132353256377111582533083066935076691422963596066429280205053122072478121123649952143409770168194507115191586849111018338981523967293761494434329922704968014437120538658960165114803357438324676568986654475594744214787332774486242566745412783720654879696671756119905587220206084078536753155521108220236477193545795625929372071988126050120890778891161342189099071084498315177925439143713585159560332614584309249740723235044410340460279665194957819975547181851712106346893694759725066014227389536544974837477943081181172287409199153853126394463827664711107938061168559685752615636434856075813393402390748849281760770893615152258998834446447840311988068236869091079013718828439539432276543617508863675063928378097996022917269394845364251242655935199241468146613136722335974185420511383992451016353932000573904521989077528410489138453295334676335075949084897711474954754544787251636944764188332479429714000678619060271095368187204885474818023092027983114590771540281943689234624890870873685611017822351168228871945518431487532076931193533233209162747644013038808299143477241009946002715300640671766071891777243182095399841312294063448941740621075080589191595960270841120685375581723191697333592858762322447311487732565373774073686994589526572492303969229076772471731609899579240236314205564052852809126516864639639861040883745033740526456329970295932097021061930657057720498287947369622468188020459983597400466406561108702393814634154199691296997158337851615460480826456185325885875507193094052501657488215848519601150013568487702855521435876313619816831813162388803677584016215425547610915685518259804871247126924448309855232194292791847115770586635218135334081657543968019395531185745025997463010301355625321851967361572888672278964959117333185238558880169594860529755590537805884380078416158880895918735682106073355345603590949785438932693987038972462226296989897803523131946513208439767518153936154676840206113282758407370766779117370205436677031795217667840298737073358556551584769785888613875970781116883325314249088793148398046486324269210886021890947500854726331391357009206930670386749392655559062318642638322105033265073834669314726358545725587990069399626248574037913869453054753704393742847903979039999716390913686607889589326634396180090627091195515660159516673242553499472774435281160885331743086057387795777690182587742956532547499293268642255650554929379021620692617456929668712479749049446541884282884920250499655434689875262955545768153168225894147698664521616786963167788220122733153134720850702980250783427255404163126159929123955654143689363685579525228886073790724992723488111767538570396436840330395366574781209390578605740867180721130869101175864885095655523337588955946671288050938554556816269888195423160444038126038401688611692994002303908935399221991696859635762395711449565550880369356562067050139542624799678963538829670142056529197794650852004871872588456450471780535453550924545432992081813166736330388119308044102956629111912466865240722629040254788532328009089082171025126314433939552831586168978463466928635091728749898246434388237103823732305290332084246449620953976029873142691552549293046495469543249178749356326119151091694985867973724921663718781455491120731592015324814900451541783963512950347524457348747379626268437709258185140948491513256171592540321850348766513692097767161848027011309358573372260393378713705531604986006263202462414651083312745465385007177529614405152576114065276823495852157056345447978218245958748641608224295014769742386038450903108239982845756867213116341133481885990431882230330647885512315698289247020498033680011558000484900352504005928362799829668519883743344169601471541466836054241518634824208335666711873732415063944075113328950334759034586610591641210449849999874219861685897045815452250331284615677430928030362662335334348016495474708049308667110794119343245987308096735804551870430543291326888358587873617117470983714847907725467982012798166801915103642006079899698110383231121542256139490597397419378572648376369160377860729274794055161220487440223559650741216537971483103484243806791458693010735978190924872500584595011033228718011949933050233575179535723344805325651113776551210204478941795311029070013242045758425384653515645240090701086803736419763534398617077113412451299147013683391544226902418563506469637276574064981430947352752033091885922435505919936816142760607103715882374599664763132051977787218853004652992071781452494221795235356916983450607241317203578388067019283353056473445679680725007050637484083032676402397885115507358433675959203646635438146297035120649679821716261753244447511321716608196295782242284149304747998149558736988011598076534376874819768266046543711977408940262738290985305267819918155726504646212999162499842367961484149839301484604082415363246089371642530983142786074233442794229473360874731114778193405837738012764789840686686386881274343934617981355122097946642158032375928989784154532499464538945738076842867447082851305732881134673694842724180145302056481976655564753878978892590424324064620211169037033610649260196456305011661242584595349733805929983383751315746719862281712076823104877811134657354584344025342194173884337497805293809049578572697302127219679245332204652383802160585505508107409383131534645025326260753043735973018957032387121091109990846163818756218820372950138315923321476602437826711439043231110593310149351167521477190421346108316839684438752415131997897718424151974727036061975628310760223724171833297811303421650022289771463338500362974848485577870688654132358124459588448346018820234334156836398816947062674055927735818199326558777300503870701673335789778355827166878910471105703228891079465370274988387264183727808613600097787183828474293796586775201520305859521447087942286655446202711266729121435621584034165229730232772628507771201542046071887061274938234644174130668102975490245653497273688992550418612581315226305337244906127817165796571414789688504731089826574706955141454088643069858674001402404018500952534097199076165448559765323868334240104847271207145779383702420649158950215771265301872695066908154835098839586232287394240439551848147743991412969989501931123285224648471345041539849286221734506857390831576666374547468001806925010295196342285140764314506607602515367962999923865709253133538387733794841266238398257373222041217123097784213252321475617703508273576313639010640295350225052786048472391052582111726541108040853892272151572667961408191930589103440417040371907943397346915731139762114111791948648933492325576535104843513262379762586591734321509244648004861913716462324002210463794101404799297641504633250322665219456699540981838602948170862293205373128855454601449309088591567816479124775661238561477690447669349124925732482622839736838521802123575664441786463521722560162046399401628706877563020555535725048319881563702471615406929034732659526516783919466739052320146804738550074569554471603630827624307670184299392970942078811585648849448825178549587896075525641100478080915109284140341113550121973341166024904459226979884166343212883372535947999668650424618740544396386824712457814865766343503871408781567112622946255946178091888059722473838100728392628153271022576192898339369665742915341987690911538371314277366247887432425467698751063538901880733692801793483395654932291326284342394569464918209130830897224889912137471213694402691534263551962309131868017963517744064452553173831402427518410831737813264352173957736174549570507104829975763633516174713117510822854798195626754930830099467765453322343365337267774500816549003625890693872178376218819009588097919310981189172797375147562328801110363909788516904800925025292144750059920096109887660607883797647376351166817614113016430855013508840049605779527778029838676783109153767444033484670348920704150438604071708310086316579274640631687586473631932095183160190622789809112148356593402044885266309928863284307566062716726929648777935943550282698870436320299602728290667864442244039841314829847274541825272907590576123902565641123394069473322388234225046468055626451927575470256772814043468490246821720753547441493666970642837391792087069825297257254039554106916197584777189289474638649987912953239591811742047237123155248778612112717013787789520972495618169913087006531271000020238257665352285949393198917573160854887718988269840272296438811696267406689253314949128756310497171266248919688353063176163965874602348205789227034213330439987067342344212042040870271899185951354421738158506166704254830827525222057675475273353891994224994709833543654195028170914929271027989790341280946324901775268378840029885431211606215236535553481524939690225187566763161776313014866417342434289264749656069338186924578750413641815976855871205601674065989300513451943288630088033309020360655833928726974734048020574857520515555961230309703431167926986361964808654963627372556382282420336155954551175108177315248703642599094633624884838321909612506390251378072158819893286091630647339776234424772934359627212144615239889095967741656351372743712051020832930126409799534366276421548850822185438682779788167914995521369102613797090165682786736183979057870508684582951965838324018433998061080993669095390428273889795366227251024300878132458116588471953287872245654659315003115999605975259593778748770325406140029511824560798302004784865511401911509506855736715364476116419984515607349273877300705341517658444023566846205304213863983411668780847146012720272034147538367609210624101721007967103479502647362423221569578393374524000760512024897151120818557273435988128264082683640278284724012402815820626153378484011228155154146199884577075072924087406260230567904358341740998362086886662179757051123443077446447824780690673448011724908499380280011992711663336198208807629054146465211462565290520530135100964356037044460161861496249553152281224703693937951079108312761008783472761752622857027515976438540795791636992432806352878714011090081972318851200198422334712189073987108217629328939541789161161132415995250911613209565778181654163662326916257291724977875361394454083344875576905311970774402862395690820943332161360104500235122427555911738441533981904566716727535333588874551873711599224838525529826875925477465754234710590829709679170778285091122040548648420051444754486834504189969935897331620672898155439065990406049540446047954482845843959743240407666274095056624164045896649166541846343147053754562105210813938469125874436782725554891240208499255065904214419804903928159527954448099347096068387733724726727935947234120393798288443563745417334056463608958436717123248631939935168435097757754203446912486404848228019568937568262321293543190423728868948532175699439189337461360355081173858547208954760418352450348192037909030732136742868833936477900408798770946323234068641266349972359744823727370095045045419323328277149144608202464615687261080754618095741146846138357079434366807464868496941705867097654686323836584621482131899594970518751811451323293538668711599217278871526524104756795414205288582048582927197512454544979346348373277335022634164033072487478956087754122750180176220674452450700024439621526268937961540605907471263684620254846247182454142467055649418538759669250968411784122834896628171197319624720656057063509953927654065993254485820701619093499060726858381481187733084114559393624273850889120097271148284702817331978336506084154949053268608658741717793525300912033127891989230081086124323715669582158697068472501483704969147661115277267177521981005020242027187798862201989914962543156458788776241029785300861670114197847919820568824908378393385973453488076334813469136146510261113808603921661460858829314484807521629273377503932012687749480344712425853987635140528878499973410311154923997282419073260128430088414612273656154370656101523447762129616676183629052643351208983241699452596749061717318922307977159692679593621972975122892800871220393926833322725143218509036269138675552531709600489647527342639015369004238770574211070855282420778057294392809502668921623031064226673896713430259148331232218091777685068550175239690435969639748730975340541714089807364656111481891165492229538615984666495487332126934267850999866172313111747125340707916937433214688847475420205212322377759548115248757524579232669369009822258158737086840962640614919599595457630432484512625199906730834411207552189875930267688832672348733414052422056455923036361821142843704472313938727053456630664242271555528777450722490053407789471980227580287913205781710214701366978779029469802419487341517124397263805396878840222834444216672562988232089494846220248738211387216639508182186684272358995562958920037500527227506459635018094605240091276837122723899923129400472876319955823538066936914534532478735066394837151080436772997586343468033192341957514396593953415040154535803840148236986649620886657650463420148879868382530575897030361533698906158229281875253850436368694130344804869451204654712756927661398107636429363801753829644812322815240443500637342596457776236165932690932056904599324651983702150831863527905201749177508277002727025599097094811211616774046116209169062472090124846194830266383902924739230361572250980426043170470030142895129861122026124682294107745850937236643189196692563213392443291347757051130769544268868737664890549447440665967078679563990190165762792041882857749652562893589560657401992978975547728784395285566832013925490823399284969148806381034577739627825921031349635260099886391902525064663685901729043963236080450527866284277812797925627182830969054858984383557847796349628910507376559485546946068995495467114154642442683534752368785919867681233654262583396879383870869112561917678545590178639388199354703762175089474417420925715695659662362787225160131371575371627439337171957935892702653142378568267044469439302662390078392375771788654344771938651054413467419531720867482515587406910995010195190560555041872606656738394269046789078219048626828162682231220305374739663568424799676027641279071005567540656956725852856020601377216677238075219486816535438449827119094268145338369722428566941210472803095177478800341613245362412054870669750250023713439601592315019227224953103593361456331843205201086869153233141326331467442410412745279965943980802573737342812333921162642263237305783807095027344725834057247888831119760532334861990603084434023895362681321476062183305358991865579037443187329172939911916755815757048778829809891741240416909824025789835293374918472006109915278874336176420218814560321349094982568082219093873916170310982174565049609262664901966828667967078266571008334125803058053755625145522611003093285559013385749680281388453183728933597081179523745621870819660817463932847815533810524990333542325671174671723735864004979001656474749512013454640911318968308226216245360128467331077249287542672484034721661792945886410143358919394835894716110872852766580397392806536522363680632652203527519215999501423159875707637623344823008979677515935064240483059926055554648287369877432634104361376423817131012284790456598889171636498104361368272469566454859016221779210713551486639235060420579684390386412873501580406589854610626650865199125975597014625402271294465788181045244175772884245781523376713637397380799966734026072135808910885243332443025587787789472626109548788661666843655862201396946163495226674431787660550571710356300003998631445196852476714961714222596190998023473205567453129904515028477825372909571360776982053041695655306897656595547990508168468298271384059873430268678463592152243076285002991683074041523261684718363299845621118468276443386501770101976999299237054763939530112454961096258676023217579828902275606200216717655821809725580293905369491973870448845168841647841006817287427628499210318603672302326558206606706314699863962419288673236984637811208043598097424267371185401125519544796787564134795292974919051140058031202084762550124606891041072941541825931912144354144892810298562601018195424037305772674658904599875084736417193547551554891476240547077328400794537191066285250799075319750568424497953550762953322874610644401918327479927200713756797171417709270729755852968326996067663653427638549228697105612923267685849183074515898070544165512225794273275249121319443580743933597675993996036358334744748301585005845947122840832409468522959220691573458612947870590813599575027934951633457217532758741307642745323025293791510340406371256929671475759167705170938572093814731021297123812726520357381135650301432667591935933471639105258359634599707011113932029119212517396378427659172793703231068910783422486595966298654384899056696886845096637611505906290996566475188539432493415894486999683064665171106957655280959322562955843164465448224235804258838995895076877691293355553087315635048908831734758081026218227564021894388626289962053108582092222601371511536301306451775829445657785839687185804751177073781547796634446824817048991036641136155820518249359658613854730337118985500842985236506299099135602157134157749492228325016182844596114331254297524584015667889561025484106981400721098990969279254757662306592810942364846999270958389571569123607177522526109062681822010935855390464454659880664209211647855733593013560276954483614449371279523551119777749725324682387839081300648279898344066820911697370810670765703142392422989508487992832946889564135995452544259246654808899996436041661681689153695383940494816486518804418841017891528009528016116821039277339076291713872152164923288093193166148411113949609387219670132578697388993742134109414495930513824981101063457115863721907485475812535093220361393235968036362456605479416384950771497853865771834222753072408594782070752769414048361292093767011791193857559717958990563110335019192428257570936933858944836124727768166854416709571489371607308111609487997633169494811872449114460065873017192673015826941323479175194840068573438293395844384712995184830942583685864946813776120710018626344032313398110352125846013026156998708656834978724842316597425985167569137842135771093142739967443092290521963268694202323821691159255337457052424585260440638306678171809232144022207412502541377877611931691148350842741710039038217550883406360968974238386692165579493001480228203167815867851227784983346579351258064931127402506237048010480055757718545307458272166837902602216491897467986360883460728492722196943057407752729809587962155061174557850828526951328156203646988381577845794200957796150415976346675912656147163563509330496342156021949205464122627178229919724113690447522352079117588629662389933127428594267599707623900006994295577732223145346578722308997247996504270602245844404463337712803460890967795997530846740453421058311280061618389187782139393335961865229219431018092175943187763665957927620713428528603229693138843213986192012852096919831370337191506075344446719213032174013951046711605863205171248702839376859648086388207797667372052430631125665308689644876136835781149494608892299360930960363880869609506399878888037923127663746390783479113389457724288118524753817148576548236686372640130070336816463799473031913819445628403992161890788986671822005163213029830988699818348522674811821433212788635761908306925632454605262132637001921648438353138412662620708705360010350848684958194971704136880303146721572833062218764715106626317144243281035732206413306525958725202377282738797583520895718445191050249136357634861189485111501680104700158333948557257569898742255312975750256630096731778284663669989320786147353394814677650006103181991791887947491666963706902669740684935892835883322764536711739650762054745917548313354250745291825079602444966211605275236663192323887898241559039445996308735856073998357781968053969224505484230738040655637293813627413704099422452666696117433915672063850917856371061525322174476750537415491617896077101017904032574753228863695415517417362225116719950820311273555944124560467023032577870037109182397496946742859710887351265996689320864383348171324210993014307815834538737789505271313182941074780098377753529188665740661628582106366187109251377825873394332952918818106048631331666748411134328019109261349252911587864734479272200845925174648103362147285735840544381478680210171877916762337941469399394347754978024377520441834924492830472165286426253881444173722189443897605133205285481817905412726616718057364296169030627317219077974720711623452813937774275505274205607312993312417324431270817651338472078599443967842680573498153420526509129598015607357188220127797225888447995098276095357465150114144679648318798968982776750095268730709342938283159950933651705627922073790487393110670655715159690828122094802988427105307933617359147328740883407575959034274507846026860748742920246176773978666339153925481132063017041268816036504506988645643676804147248365589470817087781549240283329462267047193801963985011656750615290991074342272186727698755230285206253478496416520673056461391763990254283070017826968909129766802579682067042041102814322951405817380763116564780443277911087356304284390032430462800242819054943390697035372784118930295016788704523641188269309621400861446925879076262790122026746248199121053442124256636798300872482146523459428783628050286946030551397930908187093876938659611040698116436272318728951530466961112489824304617385927835907237888841838819017477557516160569286407421942571619013793018608330319840661557585852520789947452028353363976432198006118279292455544199319184917706162935458557997628031145844136935097497287329286542446815763383312824806079158789335726688546799327716807739696897934318507692325079787243251630445556609876305812381865451473290230973443048894295402529925572667590782875759666675944096497747609611583716264256963103596790527048284909820813455092447320426855582139573368544925253257620030092253472280571649330018922940677995587727748318529608218578393026046044403082754840187308622486886581625353382205558961506401743916070846117121281084542973161599071602065972923484544288259385900059277593590743003066391324910574361891138071969631499102486411349910934049205854859556099084082136848572731049857164323184335984593205451482044364987476548479789928262832523054817781398798229656361029143516447514602395684648115778993322459873354947032822432950361067519814522523177785657220377400371532486053016126515212902085801670954515337454065055964468148465906656689298208404606549899735909045152026605924225925627713287755962624940039892633443126061432147220156932005502781662142429883015327719431017303196997615914845519455741485657509926684546253147051883380068197055000205397151762875308805640440010487662466101102692685312326197881154939050696522115044096549538201778572125891753170935618825339368326340757401363418901956451888137718038186559970835374726442128153256839956477942309476404741709837352962190392059218473407029403985704701075744469562120183691771044275400328361172385808987414896786233729631436218174682363614543932696558460834037324042226402427576604883493028541501314918180136301676505289874230898611538909482108921416395165219360941758087667150961534759187615865670374631729496513413467375288841162568899185810371175753697316230062252881412844996055878802270260336838342799018255416387333815847670852388612447930961918650297711142769436164422603815542517113903699279984235638598009831519931548435928390275871904289510474170227157029417170943755172388074969616904033104552794947589754337911559369602628296153320947628067573471987787241061735350399660967779859021997843602261176070585156846767619738495700468167476044749476103813399812788017746604600119373637449475833881072926787054811549691882315907012152518794133440797852761210186817109638528401866888303300326524262753459391474223764526423440750313518820565844618059495667649131030073512289939790641822893051483372225185539643154572490825535541798609786822768108400348093074621536532454279113079971102411889207117511203400309664578294438496883493883801274261329640729114558449941648595517243338397205031305552029077686011483071373363263003629408306661040199942418963828120076178012012371817066741198583318452652593568001453816690629426712677553936913498524242281906694320564275027528124884646098373034925748642715142386524812987777949222091541002097632628561997271504278264621478658008378045591845617632498401617656453976493750450411004079380035225695854189429866365518774357143841376436997925754801423870019005289720735675171134021647819165115206080501007117110304706550232417889973748928454260287839635533220470995055075417295546297785992095851888411362464609789797273126924623536546303184055506662014055664478801349262966390456864715053408896103385754538529633642192254457469542023347281251759966849970196163335392317423537789438842691785656098736474591210522958354613687155613559660820225813475474307300577065474025778373437782574670797612543025597091270825625241868044136935796244403905014678076000278786407986700627423552135838543472756977141685974304500859373795299935884945310291093272416727969456429528626074817353557807029447037805918826324934160644311430020863406104868139236380007089323253948102377640952382039406130033203384547094478003814861346194938620639761878750003219512308221100487088121737116263317012401114817144031244772506505728762488949662214253167381175120372769752529810457120541837275466103104850592724343886025315285854827817894400526322738905012560657476757128048712136452503168316675124270165460779010321783539364598582021086235347695403853699604245040080818956846981144739145035496517153051654374980063284802366487173166591701206201790180710685092976914945819151973942787413112237408261192559379048012444467779189557385385425042637938778123595274139619389435942477353524574243456810442688943239174700928440122618206650994184701103343165711302833533757790671692471216412129371120778416344479144619698970945462177115439174613436065771212980091356228197534972623095115036460629740922107758103279844138164746384032749391797709741999737552220830785370144253074036464025839323167226343433453785376291333284973402607198431502818898403960625142313072183132643292097517017890167738433369905349989987096932070493066960890915457431516269196640743575747357062807455395346459749646463878369624430300708510523568482745065794969777897347754558421440424859716395671796806126095945907175453015593701742011616816801378388221712367074410958933899053521069613602901156921489697952987619181707919550847438133250553553649029825943345696012577223853265190284538069736288970684271940850523413552883947855932713049188912063540249905032082913849222440542482788000182385066246035443582927827353147446443738964145851566934327912604024553397261275074302013456176413988930898353603425708427943554584375068070315879731969750987568988187727550138944376474106965801812570209030609059586033742599194011634772889019964771504728040007268231571764239735471867075824745210448674887956770887947717228370310547024229300941299812105224067589532511506017513226216359871932996531373750007546299030017501959207944388228866071973554091818863230190607891680321789486880844211227862974444169117411764040247935771218319402881398650995542512699048849199283509761794016541576195778741341745694366041009896824534728329801033533973374532689360527918271601616859370468150060392047088563493281989099165572692828084615100191334092302041446798211185345404493527875743669655928088505323352412439764100513155606641114996380859706637206430900526355407018025303409826545428445675548341811382586341464747116089330187910108510538127635759154500659728948625604916237691469761804100662899596651858405158806259361995806047436271934631379475528056135142245456029198251490435143451390614404892021604969907435986111746534814958818912758542116291523414123009085689962086539935045301431751818457733736015249300968397707749102808073873921953915593883979714042374171835874397513973231061800936403279033878660175330757152163477953744615313721389675598920775296422570773136724044623853984821170017119757228597952466317227941432856017364302997108345722898404673658936494195636338809965477712707837807377793481963088949419124828317677475765176129431651777898536789973221649358317399791130041556471085737990577000689243326176882273603404361435041713566098576967220391550348405019763157146640073488037108162036138722951028199501601249873772111275830800448082788493897408227248720461115617231523213906666158772035257758904504863497845121853298924264926546906491431607457063318335778906102959670176599328091646656279998149810588568873768183917255089694421532947233729464830635380605948792736131060036190890982419819692401248947137354939884258991817496120837573949864291818672568935617563546874594002892481941238050081708470305527782078257389215311821962496775849825294042954060564856555315296382514354875269698435066352936745684442123921206386836733253486776148486006444455457945904288120394620587178381341116953868583173530188590635693109015472827348446387003674858905925168129404891114492917618487910463639726071357384727762818917650002279848457780993044057800346653554776673266816912484519413444347118556574978436841404642481036454806822863825392139970525225468998298760575751219448400969562722954813385420991225956038170488177480641208857439879674424866211922001034678941496837988265744644425829654620810351249129886797459947658942402307089040453537369851220648626324552608545264499786506509598397304753539196280346279904991590030590603563073488795798843317728216046647921700540504282611303244264340793446977309453314851021709155902488853886003703837708505435538449371746645966182981478715217869223054332582991265363878790064388242987980659297850037158996760197632062709132431094742609356530493106572827920799899347920641947143171807658688983727236739777540260555503623235404728987339936738290266867011054393822261653522066262122744523887773882757947626322818945228373651633104000883334998415540438349526960973788225555381583195706115490796039796285768530603379420976694118937540897427773069176062332321663715950224426839763548934133556993372917761940079023545444697514485584963403185872875190842252641725182357654968501078678079955862099733360279211807478240787992027312557690731952333082196021128720306141656333254858466081987317684930596998912387340847720802280274511316977574028343650507757182266961696586799773117341643506488363247005665234536662106171468063709673922301892764097157670756626480588521410910942544463522339609783848232085004481413409107792899520289073405636949420695824702961786121359005264579383353228566877930201657670223379926658342567755874778618997804901200436308722120850496841768795101810243601978967185413469421677521645436051788961958945345860737348441485256170450804703804687513261529964887375088953582824734522562012377781895201188455775224954086221113036092726877206017025669932651515906310859702519328945777054262196690171127434923639782244723279827128454865526696204385565320782821188726748370417126013741219353237337036331475252402874330587425740918730392911802372758952601057174518024444004933557035362249410103394792751752717590133925454387778492130553251381162356371853576027598249265062437858725775200474118028536624285355403610669220381776829020716646319864913322139410555914656107190422565582468728231279117807612284978304221150102407554067065418753679231853503030164984700111521635294635246136050238818311483448339119728914274024059762037385739605591950091300441964927850629429561961302369926927164616409383777899873679701016884794622999771804186635838782452376313629036105411622795640795445395317517209973968862929655265559798115513012523246398644303046633455814872462766272580753866170439281111942883085403199734389022840734061254105038139702302335728536441720400975310546221521094802556592656805708847693775784482564313474259380651080380745627644824567370224477552861172209608435736914181963500708552465318625002902924329092541632320362618516416530653296176054264142486819988032072729186215824340586214254883763183549127259488875280409815842683299352713162895314406200618004580702459138049856515080531740034769672736844058581972576646825638513855653279471755673713992131445792250832195708517478505982676979308434908967201444541083105141145429691553825834772696816156164588950052632288920349344100231144807711655169771095119846244519792432521009558534735431085777038892302378301041476839311377920405832713942520138027926715063373150513299389898734320244013713327902825558416744705535830520249572590166063327105153205420051692096168620153126911973262421326692834706037224202168804943095368960237941087410831320029203736920514875851537934845577052973811451550916686370574064094653954979622606109054484276877163556754527853090132183372088884106126646435162709887499270014246197688568266964728494537092328061186598775315679577622012116343393500076742000829879841324289220103421518063634407613766843989840723366502516993340276670357317324144112641883886480741729278313409823694190848593671286542381354210214490650588951897178414155193803169957071998098779334756460813912343267497788031343941835099690047325653056417995622657313001559159032725936815353903946223599194146678582260409763289529509192741763244025962445123238981730150528724135594510126621293425952986493713910429737990112205753104161915547971675690333637191098874913301681810449666821281775126837302170162628689615569281328457287167722264908238077365898152032265478671952917377823768856833914587527150418730699235635060555238014781686231436648616607828672881939095766243031692701032230125186259911886160996324241406701320633957169116086675501042524001655077140594971730665462610240076723358319372081786679545293090082411270798205329042862579387588194464206757847053626866619643266989895709594526246346766749684434815703531619011513856189342847876555359704101310944750154471575689698824601741001472669479387343154934097651968170802110990682562890909482397908981677256754163789028744524054648913451161448715782911412587181853380389856680035874690602943638997898188594921770550232070039710399129579248367938811739159858497571474567722937042820372853915811573849837610135776284863551684909425944548052676547807819148105484265773438120025704301878427687730461311666543158512370522247397018533736627267928488167706635157503422571997896768865697475795948613257279782260900709891809963622920643193964740358644424595588472112826601939232797049923356230559657602487686321374587647178085024884805468468244606517120539561608227743760371405383157009795791026080517115544265781114631231753166069597489648819316903971697233474978416372587122437636742438557262542633470834693001991552826103536848098901392392438935933556601667447624564665341942084533409098553971906892885051846788337771925910324901653989436283225807991725208535454236688121344174921656221004538615557141247388773288841103362074104601807665305494966556840256019542002095876034121619283113961571110290933732958377533005694102812936159493690258959364489044581162930372478608811874217291517519150710156528746906809287581944942190312550775931601616260869877267978400994935350837201632579752038218874113741052891012369523575746966439966004457139804284227527674125984560333662651575068688508367837622050416667656169186336595315795861916752736050700071420191937768083065443797644346939909226027448566782952253848858535895591415734700359096251492853581276762366865360665560536370538714975710157183752831960258935176730400970514691494739087472273688463805846712930748673230713326620892147766746419418551972681393301586235153004879026305374238371981494014434209431595877794965490784876936898145601776573003708355826654251554223094695721772369211769410395054807641165145665514175249968246482620291398968334779650375299492452520973491415286170969233698850298238671671989749736461856761396970459951039467121172463890906399646759090750908913006837086429161304750966011973384534959196266114663814329479917346344450027687155493962115090487463781156888053064491049069694696143578550581685059631652859445717078314913256945394705525925023404781806370978633009638501017404444510375772867778485652306125516781767426633275858053257943531565451080289854322850332250163653385410602380785660965215649831944980590319496524556860890012762100775108369501250293504924010109152294399833824411032820490453338269529551395458555136961110647645929828352924677923343162040061082857410572099870686105573857244005150051839722962220770202416816579844241889507969646985847374526176835660547922000771050004862245925663223576194101943090148209701803586506719034087141262821648421403422427161160952875666523831440722381921241897799219661085177396339384154726330062099070878883769663297549844886800750503427888203604895201898941569937916290291830382283904314299039775207695692748253252064835181493886108580456062941364901836850246631883764226339365684052272903361209738251255466570568921461674401794555825216095319641449840128642182710651221376779934236601486460549831569233700234949113262603173596521356459476679494963098570582543637724391099739199506010226106715937088839139384390345341744374951138921735428414912617597641962605522400854730833392396147640265170568618511545051536367635332414027410046590978817801965038862975371095354405242616501597428214391259496659582135572084643545001663649180778557257462477844674422020384784807030494378085508175212683122036574536816705492142722029963481420543759662148166558684173256014795310724028263128592288208600735840531907965278560194927008689541235876446049761251622491510105678090790379858671122451176764300805161821779016247067745181923581133234906618162395316328338380817233879364225369597538619234900819414898945523260582000952788064207531270839678869552198190945414607915999086535555082660596609594573656208803968189629152646604049334461175051376726897732292835039511281703834120480035908197165391074432269803728784240107863638969868717673181337727748738834443014275599187349481292729578496332363972355828311427830907790268461064999944097555626497426286069608744382300656367222052291014879840409709524167862395881467297127895088465437419295244432345534913023923889066112798398007002271450483802795724171748509638092788325575783989609141899915328599792149458927994807725096020130333541375740561864365996081267435605196839747298046977104697576444664450388499898023612221230116190320580172899019157253606348006836552836527069560732487919973816863670218514728670854482959668748957594668863066568912373274629731532306744815572195136174017102508954336949589398381278843818210403294789235774586665563672959618693780727611516473114823865402341468080338595981664957594475856886294999445913950702894916268526744333788072353573854375810958325391630807309175229292815146300574894715791449335537273368242889108570047351730402838891438011728322289843932647084130776302581583333416803047046285390368313926780132151595062502535002915121727204919304343337520343011993739297433269639217937025720489071077530023184379369140752014752799940869962455598585220009356356599290581416071262781230227186268337152627406008798038572344540857831892939358629660624703661520661979731660736994232693836625849976465794787000822299876774660149972049306168159924136662099654778081439836217322552080678116748187492960147137683485638669879333651762890202896630375909010181828902502712923240168040662288209340978653792399922307651453805797813561874090001199031549984549820069400841064803258215340879859931172966330372358279007779815693511186675886458729516060298213519498546105931673413167742851520003063886747165647591228638080092027079236334401900392765181659844075967930516485019357577455374895080023736946224545048253748220218032311581469864196075320928996994174588792382399016519079537447161822501572933510121286654270409861063668378756661974556071550872553821292213246661441201969423229670130968183387062914198813378555096224672212672315980196541104243760623241356094200552823926068762941582321008973526879820668465617892718927920216054468041879547398662012551072644181343428380048093623568340170342049667987985544753726690848391511480858123038227494271298523940897934490704429351839039814369743820407887936374799395129568171798971182896003450220867358665969487058887987708191171304576202958411423698251987116118892760699284201625977149561077150582597931625977317024332596352999125620201461696014432504055997733797759042945696874603654546158170322202833662415533849058210291216514114188038027390972707476239155062928239369848309315023129066663140371342360023472694796378615675536117397011529769986690415680145964363010399952725399239774308910054654349176680173979811224379848967874173443242543773686000632202920188473702292409832318707678201214977719736046852053324675377650824897656142713357284919649680408223267767591433462077270439143651023431177733110397986213569083771158771223065380436127586478654244281299557597814112646367577068311181838720798496014649816258809181185230103737215018864540450897639311016324450425896943755662371241974530132416014612973473267812424484004592136450676622616468679793353481578567167161488776847965150564902033095033994102296667092116828541360951321323184515943620031610801242883755426127332740076765268833340419848766498435271171635062215216489436953664951049353034548840246973824349374776485003877423082604536727886072341106168328035571551670790087574816238384116012378283284755879292716484071165594757529415070325840615269519789602125880266211658051252982314001497895944854519892177978984450289771045762131473406649811506435254757935754771464723439010961082190258434525722676075694912061970516470004627882087001626830414856573213153860239221822115299094931502624837545503946311015458916867080243794778830202360761098675520247012385339365915290784203348347723313185124035367234927167268484625573467201750409630070434229969307286802257042467029409437677866155315946633350976811928135130141316222763344337546064924463643358527209508752265967074715991218455755290091028374359777401226037103427810624895671267210411654046276815312271277162567527381289632685542908279708765354537711901183042774446622792275415702123425449356421298611598258280177815547058127945326640888053590707699272582435205200425649096740890479900181819782397047870386044594365567899862862890358422448820111422447356126954927236062573849741325076602791422635658442893088342766965565345696512565921677952713958668123993155612255276096028919190444878509360398764798134535384238779230181448624904719594396129156993774463223860422343115344588646156791467267106983098445445310788217426479610377196098080324593299602938407801453751066632294604736380576227938243766677046165911835462848317645066518315596804764969614478867768177173858581812263516115898441159095731985418204517930044760427795928951128272361925514314418018108643214778685013304614835749456523639935190402305340437921901567588140861521090940617694594980366385840809679480786282757883927817939415460501387351652348149737200581013315326024876402200627255003792201644147852843377786906536883395330613365713868455553291597155452762696329726878416682507540160901234540642310350607442204125530084568353525590560886814807222686805205782617009228206248907617340695454044608954128679451176413757748501149236519605814743740377838393730443462267461510476056429604964417648197375641309015859453744544067933190864497654145837744772406006449607474166427599334474687446521365297560437977232658637539776783583240300354651678024811096861493402574705301385289106649651265294642991788728081177261703543782802832145599535216856778728928548763237057568536454319105992608755998605069845485878240311349748316656325140233624261543340111797742300219786802022567455474162784635815573800048761270924518132771910357007459808118880395697233525563428036309386124280882294719600383433443319905733724460014452513074005167279109148224415155143576826376636274915779816152992830359384395247564518505058993082217854458808936977935260125165083049542958715085537657611104813279835329795251847137908456037747926359660398180054739711519674105702913564610037078155883943596304012886307880445286909594739350323452857102195754102467126040141629591292970708263338301981493225553191145419261322249962968078516447173342290856470391521997868121876642579672403085939629136538683165304739191019797616237676379679822013484295393387778940528308530001453530988537360099776719769884077285187195723852597818419833446579178453152415661464109693071737742730118785498267916223692633586968912263416616095626112336694416759801552096154938689013837384222886810718608753529602254515041331698822844055165342433173242710235798787630337731265008473369212966000786622067618015550663607291622990785648515106656087452889491069235185333660622442554557448511565918871624078922315559570279208787779275580010836834055871052095305782627863162374536979035451588740807680226630334907796372076378191420592615016655769913550831136231291191167934166680895070393850259860616043396020663342944942908193459007265854600492397063830731360095849742238954973517802509568539906017383753284386206659201252821836675330129699324236138637195553138019720672617311566153481981414031999428608058682634322474965508027678574005333089560836766001186146341531487817091209364002100444719722731263699956185251938611123565447462996766829031757718881800181392281038017900048339681995893145040307311938689837713715450144670238113397564277207592940765937114014818116673505648393193570446832883148461574404315494912778041611169991339290603056469399902719849289549712848588595646837730388239697507647154985947770728346857534182969328761236621412458206730998859975829347654476358726238333242264914385428809456665541010845038116670296193270983734829875624743080555783806459696220993362140559055410622228588006844926665619645349429073868721043117509151252584995847754766080769234048876160523495266150031670324465440735472778441701187743094763597970854615286935610877884066828601601924528824498324961411178620542848218275438179591674239578204710562268131720578792323579292768904345894411014145935064699698407464747501544396319506270337037716742980850613285289780522465778570652093785111326186572550385944425796975131284598687602307542421704707462664528289192590543208887612404786765832491783256060604194470541298989490075654212159715236873644048441613975551369608389941189189496615951518824661386205943898335391539580750154265828161249998398866443099717575647587812874750276758438051382266733864131103224125917691611089709041540324996551149117610746275811931475930969454485156068584197616905403633585269280813236814553736177955688927974868038590276764819840793285418487467249680724258431829575658934988410848805432619531968484056763437173302896404956304096876704186284206104343970292315932674718342507035465914115118376313970701703963462903690545314684544909656121569850036760119081088849038235772516621052031452066489192785791690853203709257204579057993867785049586842246438243359442888282776839096858585763182776623451571918481378379826439524185328686248978484320312816637922060539254235332408968765651474711702956495068603579373539970207119286386997653237530855239816955884821153898936975516505193536020360840262912945039334657182101524991467983335842164965888488767001657212181477543478729405200320974616200640620374787034827335686104005360375374238413763133454777764702785494592875402989447371611407924241100224905632048822749152101408768055396053720363188210688369201435942354104985146455193451292836779640984039783635170733157341146875136333352912311246391861888117220231195668864787215704521160977315199534577895579814318516614806343302724813083735649574332630106257623440685542818616997692153210513442048260285205275499923962255172865616762866850619938312705337316832356593584048719409055772808921330156231733475919868169102907695410413119434046297581439318438457783125034986504114912478902103859676832268687829277713772757343731403503834325932351102729703469987578492954503999892034318460043812941457682055565418352464153885150826066787509387587719034895382375695981845993072911814050563619569990259121230424340842180231306825670374976585344827165468194897124202823287989424702758971741692510688548089806576464619422327903018843381835436924072491884625018844890362593518570787492746840391648856784423999747476960231581988030313435340751149658970399436993028665540303507281573897256950928300561551569759161147861384191784791889700626489873043956116096551286695587498955125254614805193489044810215015385885901160390704631553278871119374252559400849214199734935297676162548064961237930775121024369299607075150205011751680508308902822748091421980613074685106621437958684408180819984609079280775318697073543904518237385689687028693413497334959600800752100269384629085785675646175537453678121548969430687552775557944688920405310838684530776400950053591108421431799645732993392692917787049637025048738437339331367542283271029946957906556360527805335655650908199054170641523595950696411085241555783375775117398095696368421301957831906865104669395001730451071744779312395073844203622451631346569829725685190808520128504685976727435412761077840899462319050348915854549457110152475664541676342023698325003296527749567022965357743899511347925345821201485922222212390647341923803107983513075445415082765890477174140571199990241245513974963731326163505209329932953270990646935751867556725206062960816680776055094484120420505048998022678187886054900673419286041489419107056276935838586754863706354218621594067093681091368724283567704266781804329859613131265454060231109289496495193466905709187320904447918681495887511084329380233588332006964949355644672880235963694174304713018186187622617519814162865613296223246958925174387452021601187890018732782025944621603072362582522304409477169751516816059561859973041499105974447812347156647626880446031217904625616866546060967611134498700979140462933298291100326164276403372475673048507817423792290775243672962632540097562403975227658661309313887397423726263571480228781402311178028416783224997525573292947717694899608336611858704973073620851239983931009211855242626451883288922780689174774074399474127382554973040102623624437438792817617817860750705262336623288159685024226512562964823914328603705177564308436998177185896715903514427577274413837775040789830139741388604418480781342906268836181813759424318069894950251879173553364950728968913152993631048563388334110996245105083524222034592170302329237185707749553232630219193568438020267121975885248955616486655149308875416261199251861154927769780792649746157694310060221881748247862731899702508866242576436765790228604134113742292814704804625218995278836078354954692640857925251363433635543450253563684767551871820008493902275457651904123724200489181332683067705503282499959476817334869940623699777965611320758563349166996833310071031169939138226299072904310553139326182569969073699258035402385569070522779050255808230731407420032552684080123230174084672172072279968089996528627287883807348722612550408755315440806497642971977902162120629644203982647891617198410886988660728985898324367202041310459529896933397725355683454153067236021257842612557629297312530819005180428199203634830051890182299029575936469949172792441331645758366142471801443574914557832301907992373690910781232467558943501686883238673460474334962295894609827916757543498843469550343595277835281565901735170544469538449343039300590905866968616762090621516469783679669200547659377651327325750572855949560247855981789507933818398054329085856436908791162402693447521607595130665262143053312508559850247888027416669457853733143565182887912956415823344163664085523610859952295946197121196885685863359662785490482380989907871605246897556711003160472323903425745923435036513026008071197583396300253333645456056728805878974525833659409629331195128699515234869247325142645684365532168172258580274921576731596823507609514471529641605710127402535041453242465634421453339820078073461232110580919707149568200424824873357484102799730288974946491466517818202875083440377878428753856767425321088610092120826827737950584136550322898883062992068324077669583292083953583862273038961596172746851214835386495276795123144009086020891531692430438593780225119688649712496672259471700336637127525850604613113822670784604946160669648446005837159763477789593125401313645366150208436538816463212206218663151926592830883806835017697464153432288073639226669855991636892707794621396351376683321215341955667429919815879540635335342657691555800888260007126420543450179074782788279716137946884256983514531670357076168288864878932256559043488904660177592499569115218258952108162068932519557340840165857309685228237731854361056622368862003678142791676099227704544352488756982803413008110982630617042239483972399435922092999950878927629948811627537584841619907393463921894318038378110747837341700313977675383056087209225037020036471546020076988590110641121449657769640536201001090776715401175363100710698884870033642784079133993897803621138846187765429043420983304240849472842439078568308551352851623871829774617751659444486965522769294300211004351335711011477474900939435147422419025301033737830320913104745774423948520632611606555280883590311384308374982360154573853007250554223693240980330671935727895616517019683390251352461684726450088133160299923836834929007522393236321077132052170681633342309668018898816071170005101906273344606101135218010336668328392523197403070236800355385452203928302169688206468018453171097217363124600616823671224637308402148130949754499688525378170726245292204522554257884940548308631050728390072832923893723416913200067841646384661743624061441667179058332062875729534487012574069046161648801167719494148082336772710108470755486885211711843754458623591742900606823054431685538633222114303577214481410021607068246523436548176214450433119715651737384255513955490176382133676049597095165221740457360326179318641936457919203809174224002441960669940431735824308915326444514663256200705733250014598110255873768065186989942639632210076581804087396112215604556203684740101486561919967301932099238193493362393747037447556741692135600907268404431861275398227428957949270187761061077994454246230154607755399538299009794438834524833909296885386568863903017367658938157103183711183515092793978231396032580912604548626714577475190549177253159609593397610769052388552674726379555727125111993169936075873679337267286889523282563156133264487340582468165831425284615490969925962125439123608238536916196882437468472524468560584662086767645273955420895787693322633818365378263524748545311462706607502452816435625488236491617363628720471583794551119729251108714749587051717278888503396586092877085943816714230466262981163436872360877660871054949329796259504730863621289340599010487259576408587246544136978157126986014231923955996751378891491366954242134185195717360185944092036337164886621806231214903438943621224353705888930746406874686505016202523554156733562422849003080362551274347425856790033713189349004637677615626004746132545679848936738482108459479922907901373486447764358118882524067472508737636833430212374044063182298933200804865460442919600966035590974642316421163544434637481684980197996870425746268335036759031863689559188458573553999279192402968354208061457007368473799508167692414747930557325653160181833370041471418248908791111498543093918330405233367695096851291883488564016781918468273258770337338382498472450697480901481815467028706459270155617532222133832441693683343888010410068045619512774319754613610134821893232994650337978241316661506232419423607256003143628251614285854978634866553673635234322707844296663536455130171870986770887772450918295985422428409798922520345265615774220343963800954487739998174135576338732779966892523449099635107775511416471616096035396777285570955318389034314537943496493490539860303307443346384378964164218197637819995642498755360351269807813862366123603626634795829496684578968031072437372126221340126081127643346437011774918275809191109198394921783391516700813405628113288663948921567146711462910286535450052484964873514236391157621768687081232407191793321383780041080386343944244233838066062936116626079293591750893524871328448077632732456724842488311838243242971360162992378147625181629959924410842805810284840258304902145553521488954263280501488799719536800251820084831114220540983595325990159300339303406803902654639320117488879138401897457857039962767900022355084976699548652601797424769947415958422550804617419232190933741807438204094574314357782523587530799573052540251456542636127692908567314168572510895152813711313144650144988982577437957150942223060445583822363333393521231544048691425816935660204435039376234480544489377724575728395616619203215267684759104563741162156499445383205606859385382376100667365822116085350419357581466181345333494564204710623023273950355741388083342991312759004329608459820683702295569713226580308053723344714049110758508962423626028827685576194395642264613896695856453226670935406406800578220169518074550736785702118468360559112578919221089158489325493235079834543439178139977613562324769699186269341096328574344264853635804502154070964028240973802259669091588046425701546489947673155706979505294027849921771948190296688527797537208252775611001559294798978465398449958477765132499731143491021772560726456896391290579824541842317236281586723271005501316345742208057978327353603124434789372277165463138973587044758271617431294655872473801047456336130470349731634274639236478998358371959176076877184016873954877056792113399854449433292141708669351219655615784415976342127583743666577398043687652270464812376252005476944288190908704206156576253973515818874695953473657413194702947899470533281479131313552747434420103301918733943198591979523367575159397616301048321308421625720507690639157343747391262269585454216139591912633711591987400050666407154871051529486174820983655925962625166346084363395947121198731660242696141157463348549915987467651638543902909859808945221282280771301906792710163616568803394124399902190828114690963590871853025855796963357683005979516344497231066302182768973195389178223450623868580759112622425152961510115011589221710853420397454828894617306502769120476279145086111439984585744702832555982164828743962060616164757067271527232964331533520278154844369259864451125806040529270032568162806942048206800026011237446066113858339022721605537684375145710126516503495082031491591469123530453781397240810522232158004772637417263867493329969147109303883922641251647082034527327027311678569346495281745912601722610181188566679198544707363822544077961450690680891457020561786255712078406345184455907968419152225168253427073604684538117144899973581068339598592151581319379609799969584242151181639731615434316742911463172366329343520246540385263889065775694907584080753489830157094902359535051198653144434582863324666555536515282349966709972618919076757412330285492784755070094647305022898087917441469027613363335928024037941390476308461992209250932153183549103747064561201741856765732671887097642418890131457559141540311255535941933088059633131805275339344745675954034288293196284095698730514080888931296191549925773585477733472341820957831283916917670474136138693659260517739385603341273786897407219097269350453453246154477437854290300672634260836609533491400367889917627631357501196286118270481598240290304001417851462177519214906527568339627246429842898738248696643555258357551330470022442728556566653550937591779341975121140993453524390155369129699659820466548575131050280031027945345655264087941810047941307688144124012801804296060777409227260448837092410969258140661050684445593848127003167345318732924070777200878113563603833782034332424384539295661285168751125309280299784274577665569329396768506828164245135218708518094840817705595742174636188897848440059919328828189868822719039282789283149286192854068734878640967694030003449790538506350204481892299767257631316461528048424543591461373537781961105355975953076006952290855695405395769081804428550018403186143532957633110795145393682408955718678548665608084743598810446262721064950060775955324490263746457911215684860976480822068076822221083980868457196826812340186455684135005696417753770026156463318788766174509578016886705564859548886813921347442174041600851735505007394039371485389052984701285664320233897261579885442076039402048645059156542762151457035409498082786292331857329290785525445375753841113082165200482721726549278038329672980889879220547333871136854374846601898862198582681006508631652325876679112890842615924212529885797174226956818594557703422426805448091241963016335931378716775718362038845012692619755315645732597962410968190495191781245101048902867551177363558061455847228614197569082176514355320843560663501270024856459086466041494974985339359666753971809496709937987599871543807915110064436083517720461340277382215252757370418423111421520803387838551323331169547952999241335397344195452967669179399157212161151242325686832330654544788755829857905855887957969901203520771246904712216044767763046582792332410899937913747121105601258420941425111109663024505750686650159912107406050898098312133342621007755424199073316565999980157855487836698852311322060190072750197454168922146586534124070011843677651069751768148951960840554005470384954248617572747756369299527141654724294821820037708547295967889035798438487862996210118028153210854483660879023134253713075081485229793936304781041761737460405726429316963339909695463007373224827673510561660721342197974776354699902226870382255568566317778257042850266725117908731410418315389344418221663049053948990896864107248884791655915500505381403907514144361052722424261279302553063503237625802116671731903591574774048901821277256169940160597182113284544062089200594720440464874965377069392251638716497479852934888932924842602486954546405668856583794087770027145349897744724611579309660742361150597015647406994045263847974696453393084753766648031113529883777733961187767869992335339401847959781992825821203924013829162242058220781492508157681165046098453175866978256420066417476091522700416602602698871382814085081318377362937123042893469529612002071893412769241336194473274417345509834366320482537691591332216793143783917703474009343596114626314278143652979626116757023851680762187852968620949450003892424579300831777297780091968524250622019229793149070036479615144337848489541599466384748339486863561659137345802878855480070521293402743434225368174276074092892698396616827290466406319294224976260597675231757714896208708789344162499470982643612107151823310726310179241361062922317811033823464181975516250415647947166451268752457562397408214796763038348408015232578324529651183299116611503067490484824480978766138083254955081103956352093065394026590432472139057769937945365332372228418397859728354926271596983329271791257936985089235159188908198361023607179028619441740392705279843242913943077481680461501661023372859493185750186216367840296589849347038842238190858981423916316453927468330045394079015983556508754673330344724573192135364311365956027261307716067073086757858323110087832456643336700637120202581346285579901222527204505071594246974847345016959938803203267861965236605144996922236676003583025848912182108443151055401265757623133337394719279408782282379352782058743361297570411523746356792836165738813300417135275148730617896029145442949815238081751612329097616258489605695769734690185314679282856686152269032240910962340086017642382800129415257602762905310897915563641474429897413348253532210475582748095167008111780718717013321601662432243957359531630745530754922016848752669417063652090842133891680514456788810994816165122738014175479428924506461801577361257732106260546875304097102593438419376767395457718379043254359329346020175934050207951124457346740789363773321749417759344605323603951418203212814516789843689143605348139874630100691148133646986295305994674122931504197752452066814977966761604842417018513474904531864802098575262259160117307474460418610473854868598738260045901644313537794478657747305314206529552211062623770157847272798617827256890422571213640587520104831240309168188506531261985190703276125682559392955459820950935698856567087616543998764494989703721432302120761064177723493389954198629332682990821855744730945008350191934031830000850537461034480221291856267281391496532940961749314722926291333668169694384071936947450150157699698455973056529878971978149125591560110522498243109383791129698473173977898817351973347183067602437825101000781390228170223275589469409909404197088031414775633036050860158169425588405605157650727143129410231437079372428405860509643724285451627485886722274706048651506802420798141915955518827580176299634464363300186663830221051924558897826314981988588122110680531095383910339658418184618208663425050598140323012229210481489909329333524114083148599242968185166886301360338476557461244011845295972061437354665098426791833068617101626394842968573101733057298081463927012043516440186957006162613549425880912708336312449951406908726183769680528569559230086353054575952782874966497603069190463371525298203023639979101217004901811938152921797138329536528099184386271113656803369907805377030466670351354969053601681849138499233530713817790282251241538187619320215392170927314128095946796690977686632267519562942851797070789146931378808691651640905175058669620573829630312442477988874191498121852118663025817350351929997174067295216093465450555703633159395858757467959422978271285069772440589867907183733773229748242254951601143419396840935298506767098695248250885238066517165182280086133315396549521511860754445047867047675083363006597843644815006558286552924560055416294377788509440075199221350510077768899099368482057384880479476549048767891713080655844036190776399976914185616495061149241105133643685836069677698594393723754983217074423294771348974350921460770659608811403412420620906557626450443105697454581652353238011444634801565970758931918308942153307872467206079733424417797835347681379085743231425647403406752044886531237932260486300566751006773144243187954645396273358199854280736880092857168433410492627010540700637787032828636825455169198432444438611535998512393977563490538216887372794625095057670366171165940788191333803242202533363955712450231925824319947482726142567614195906232678427187979209394810055356305558478725962170597619545493769632816152866964740502260799527611684159707803585447897959315827029988093425520027160231810340131904252731701104772267513640600933290696366545465279591412020552481840042229164662900731101543115991732903274026777073949241593744299254743876706163573674733050307088059987318656324828000369542122721285829961508671477122214778323290080994078878344214017440900894269735329153723820139473918076794509450283419555815880689113219791994578782191036850886706734981810479040392209035772381601171144191654687974934338578767883883252695496142982055497901921292015622166025003625912158686211336385690187187096982501163484722505584157088570639957038982115817978978718868859613180483755342171516486807027834136333121622092604575005443567207587065364477009059434766495975459114369648735320706035323650967448667731153259735518803148513498921672773573475634843616651940783702801169704250204126684932525780875490426918590849831410503660072880705197103147214093996020655573425168336349255275652494261378930468785476611283024302551877978762898124704881159063477722391771084500257928897290500317982192909220378964197968238334451915496635972072509640887498871235514229627640947310113351756369657199968703055913668802354381924097618011365441894747018404170138617331377289440866807373833671719425147867262305999190392699938123715280114115074631820158401190346760130765396479431679326074504144816220580232871531263010849884585459860207266141570171628790689540789626972671417874756186747726790120409615943678959807544295046807819691701355012680673404239906429900606421682634039130897814791034450674627973052186209482672031757581009026881670088671166352595419067787673991723662650324507305258055949683440715937956364147873075231523747383978450579405730485203321015279162409915897961189192754679111128674385902316130869217003472165024681885003862451354471300537291939576866306320259161872959601292279874205157876024562996659759273996907140020656390061444795216994913433953713500296755067614633390757372078442494043911728245500565295543607281468855785262434699626101986585280953409292485659820202151363069290504960407746368584779241196582779629530103095089004058840719126621966606739760853445094434260803101857780887644078928244977112374721947939513112857917318176366245618093346451223563324994200179214048882448767042926327752829476031395289226509938862548755278317030963893106185331190377437928919441446390057830848833571240625975833930882291924078989193972048344099152847746591938298343896267821777770115218333884345423696100143060652279063328201998222138711630668005100849454871038484469062408921000914721663916901911460072082245109542227617367290537165895605829940529560187647380560838179559455865394471864069242158493830180972680658343085976862951675800012494662680525912618718427109342894415386841351961213520092045325911862706908017367896991568662650277555959506290429865651570384600517794342471569263334134991777308841568316299851039880169057234342056970320619488639542440612934497826765056786303209751873415540192342938227727306367856165143684699882639315141288215424409535123865603151838048498313964416539115588944698470673031130126022328095042688597111730764442488679904473581183651730191125689918249923956328454222406802848956363555430605721915268705992642147902189617970430659013309209182384007273725901994705853017821742242053407154936051025933632691481565962889761298908030023762701720307886252311817265449006819365033946154247969809830325280976116495648507383421613571246947389264272535563889006398973881544854962859697835376758350701039678672948690259201590995439879034736105998779348384940958028374302300286926508157229344635835226169970717660372683180193710016286202004824615651782143630541434193736754323774212330007012140337580087854817279764969119316103137468242457599877990929085921190782929388625099646508097409687322355198599824450841962036401634042884526152853088627813220605276992071798631140422774925776498394516454344893859865324214823457984470315124065456131374910240707367865774305886317143882438888339430816764768305903481229846977428518681273041880272883485106912071711948834620911852787916382428841738985597748196944546618137575685009083968982367217124008193665953996025675018293636489375534140194996242803795709427147739895260915800184511240560103888179383230018671500745967928647077029891857772548109238401482224466705571120782934592716085181781245752226119519995772736000450912762215400883385193257167571037813142620902192583396413974870147989463032683651500665009858062279337851099603502814106174198624476482511675548282449142436350507672453579495494158245528803910760319106161621649149251834327068583214655783780408893893824232176944236374522230417453821323031222849920067880775958404184567300883342634557179699470654959544357562276137334085158718689147511569914548250593839378470595900308150040229271715167626057913633579175312758388814215529681052409901033668863413634385502398673684684919265131347005992202634888124675308888538828317735266571571407624641894792251773630599186164700473586072594708237480699153575527139132430599405385814094303323558855121069301718375436008186035411552498946460928834192324700279554774248733851718947836972297755303733578232883463872660513713079226837480178172873707126745990142381235929989948126993283239105276538020808088342229990685650618593657395677127164536829393962716358689198498638939045431343886984040238750414267818145203041978833190677004243493353642592184338497758050583885244885243638341303268754406727625262452622109696896830502237364490203874128098399526552580569071455932935832001700002998869522967528400310367045955981776341313619179022163988373322671399800382454235394696121879680416634741398827584060841413995264675312372803952394567613531831863705237310750069342388131687924302034397316933405868542795496465071149613558545800106233491380376215632899092750218265122001946113266835739003787890098914899196293444093337247062849076435055206003997399266435881864981519655921627609021905989298965790470634884406963605367470192459952963062037900890246232801340318433168649107626103721380354463000886263008776229050055684435346175418386172445936882877922520851332351049729895410189255616564769874765245103267069942318462087799420552400887382469778497730231790166438228948006985187122666303573698584313499828923885317833952684250027730845360999800564507794443293499738172631780490582579688314165426215206344426086697086394681218293442780058476211533548675869666820638347465229182348717232745738609242049944744809395324910683667051546863965801809025658473544975973246959170432311112899861406710070223544857561585156909636457988658978345955950922243812193696254433323910050419112095386413773265370773154128294987261568368268537108932769941298632468667162405591960085835650058644639895147640186716431301912557393110161945901060166889354671998930741969365280722641828057026880894849306362239822530037623206105007917788233032979009436283579061309083367586860859726042799585940422585332281742810581876214324544186114896572483579961502479019727503890887524363227042535405426217560482857433289618926899412259095286563052885707033412924479481862685372076086083521993261844397116682456996549023780505024175845459544473789878181990174741075198565016646027453468027576888951301041671388985815363204132966127226324950678352207510145774625342162050168903865997963772452248013612752902475862578360052606399227713433556353485699192745912019366639083480519579570712894253808662433709661974299289600220598329613258718661656125593290645498894104062736298305745159563639431909953665567092503347082789586168011838032919745335182397365133297058000817973090941787570405508887622182113152069564430300298042422238486974423570587990103019809696255134875667975995515226284465965621664650262555239278115678194716992207650087934027535867707378995869314788380042989539001460134278981682913698050505127704013831570364815432383563040793295358789016659815595019071437155269939494530743766513717422707510293683514357934566237635994365898900203914969125836403900653154102838967419088339003339499305030248400218443069990897984973669763789744781625560639193125044351197889398406781963473161871383199853522655233444695334712715639245975013195476388945222262548473622113857936757745055021632670176514097433785501799741861595504628318267120827145146571805785280630851138610333806881697736840723309631294316082305319215719743989084067667402377853960179944356176529154818934014746542573811015016664710794592332637120717690437757347245641127565285815148455750134100145001116156883080899148686286166028106397075692173763093318134513255935130417690989114864940336617146333219584274920251779126740739491116279358929483287599942145535265513534977775591054471754744085083563755654346288422948173726286858487619478516251904600351161195716190423614283911977847339273190130154654667556587791607293045255487403939993556487652404521076813732774866579280396772348757140201390334446693159878497749118717429821999028539949625581496761909661264515250511126903191596358756869848516553212374416158823575589016050497999401866016420026339743214306915418694185804114478508985853114767904046643263997676299762469164268446840783762771354797748555792440752110285666719378314235488100125977470367810541398976873389082056680477829428030808713005165122055652749362684817181103498617153356061118072110629457330601839707526022664529084621361340349440465621214264948662427406215748284543229338530304097950028097792997222113829505396733317552946289792368990411269246829290020901082771225225979322140215645125280625047615677533705453325792524250642588272737004544138922300530797412167158860724086347620854368637029777862823425072269898575631880753202683591453983574641649200603587943046910493723843384506513669581631624245516692483049637221465864134145142351815535474961813502129467926377151292592793641288711551365902980566040549440458253458589185138044161839263733635195569238603218149452615445191751801359635869867849544986840936535658969366446859324560040243504775169680917282296222973935318011353208806966607446948873252625728574738464864765824378866040467493776157471082718075581217036496609481339129843637065584784671288691882552111138422270471324584704667791687716634819453729779455266832113572928715463301235731939662302085852595240037773837639901122976603923155468764305454150799629161797609311289540379583829987507688642759615461259185955445961707052882571481924689824568106636671784488471120716088979409126279260349329230456974385334865798445116367679435807502168564915774332775485512550524998328877674671017168434172641451356150114298498218056612173006654286232827276152270261404853485975137571234411828402915523285773374867735239834064543245662071076542719560860751982380506665501430349694766734819365080967928414827365803294862098895517846465099256168490232808548023282425999676933809745120713795857823625757448721854651972943521701314282870175879582405836329262694936710680348840389334382204182617448648395014255870346906801105160314009027183045721614138625200356651991404587503131060858113801348823083665198382707696660346774300937781905979555081977318590729790208654361304704508501518817210344788021278306378413708664251706905504422618249049128882904426965431233628363414476101956495104828821207856443652025084708173538607707544307302433193507001353089109140431716303749877936969631312967301435747240137313404008626435263126782462720098429155688873018185009219823486043206198805218170871553468042539335631379478033054161380082274352698963293283463211960298259025503700114128059060652254146957323655758768768824187546048132602436322671701507516995523580290445702408918636679446735051060515245671581396803057198803901140033409805914430290085744729227778512428843217175823705466827002214302987501471020163977603007633563577839237334708548496252421212667538919029335982377737453890383046120767445732311298549437733950647816168612701502814605756308727341463890195046102604941262751095787990282267208041730960187109043420950152860368120172388949416856957313504879935443504725681004928827061265484884652231016647986675280845892651636400714636983046937197384020180842100951295131826224131855734815304752354589211275366095454075974145011507245153577160805377370314803152258759677403112713898128244387706597793139843591656227133223230636922789208757135304136937622687356262905330817207707850736107229730418556950653305658185649993436799539243680448850582009268680820762649682031741151015132075881015865714216025567531475938021650765687110130097722423197829076856711120424313962001998077117796883488095986522604192889431373717413926224094066126220395539508635158188678582521453497980624183529905230342464655714853763097735905330646791015754895998050961913763340407178706752026562288400480817761982063209545956125115890449926464247579277227662362182348227468338775195732225250679733666858721798264550456816998711457343165191430006524675724629064580441052345558748251147248332325475725388894235786399382887566133976575367128967246194622997781812446986211669965477566741277259740103639078341746665008307983123908038449059804016172983824412871213746308719818181304029651881988545784946528626933060079542672159046067754230074540430022314829030073965331513880801410143478333896226248089878201776102990114491304837574219179073766064359186216353696115483129079647412565712989239704287536786369330088406680468258486773405066478296403311106931575117080633391178773418689225626481754350072255771813083566330852664517423412177896943901476291560344247815705827770207427974983266913988473706934216964558376292012148616295006217178210672550021995462557729900737579922126969202782585953303055359150264438629302199448265175649568756789475051049491883108586665790740667874846442805031216702626462332487107462162156035822217787210720994459123285014445289856531409371553582554597331772478187047264304937537310401024487106035236026215558265991036646394174575616036568784530114007134093147359712920424672592951133615814728474867682340582313021387707299498334584824433477281476689391832857121544781381081215144491043318905041577790150984817244054181388613273883119487247388084803294680051814669316735814213846579609481188204046967271520878834871399766587829501301391355795039871294408080919136965942161247107100167830527762271860136132046895328171078627275077313468756233788223734503407753539677948843854809090993644980194338530702205646712671713354604218627885606077122727005866722825180779752819027355082025908330126873569691056492028686600237431710395191820812457960258854371650013331508044509452223810051858000735717935923723770365757785305894416472445931370171174833986757645260664283359793232751465233107899863345662795120551007834798634747061947983512682385839343662449265826361212219711186297049645031429682459871621307543183366703719295022811676546586338947689780285151247673985815246659969350596840113932784757974760754233436951481012732155355424561050388957594078270238362362036008830025691426067352308433246855110530451987482569154255610793297205408150666266805601840863483280034193464615162004929216812935123082193649246923019645028066382551400659617409035870395304389454837426604600407501815487822521271978654560805090497115018281212663573335700049524166018640639655087070296054421335933489515357164093122008248624935624235369880382374466800806779558594387304235791584312326513241610655289251724900727241162596658990084938068779718018552415868681649284644106596253851477317752576460213170387941361932828742043975292513184469221942234422961651890694110979923754831125719952044609535905512846561178829959882401714290801657330715689912774551439047185562568624390230122840295230324109502172144635060411465287367570061229610588132376923189362395028248594397342431835011396664798447098379985027775642570567720813456574076442860069032639719871352787620486259825355895859695723369710899859044876762400145002753319084546996533138872767841595951895192337302331826708591640752566404084002256984289142271389718486679013286597194638544490901723513499023060983054383496928108754099629349881977005520120146862513943001169961679264114840640438148947445094440208331789513695029259462074000136207794880313320396694096914236921850104740981018504693129880603503376377782773593398161925019455540885316988146460477354132929274237558564112597601065927365068403852789055081182341899931880178962331502790365581666077509639416085355081539008575796934891963670897171489831968573523786596537274680680274820208721707198372915410197876873581369110815009572706273096127763374109508852995037389456122207350217621870364042677431213528255993535753906014154171636511401927297664207078777802650916389277986621039975043913539822513888437253527279161427818252628486318742135273450066158010133737428310484930335890328031416869698261936604397162052115443494025594524180374528372990425406069681450460198688359936409833316275460894617411999625377550716907572443074764991380486549804623090121939765989682631598166968808598445899746980080026386728269458594065079558418537747001443900412508315288549259520778133304934673904068918754020876329921169214169110188641673908600915994089081148645442796123559475642484990650121087934201055428549170008005954958948434977103838318380200374844523097722217274860802625195504262930202609252167419550029293661771925770109169564200142828034842494331988152187106630915294438793725420508781593920839857809481501222659131363232077189482336020584212755969748267248631940499211589342130672034217272751872401151435088604995889442120968035894240425154121835030700543946406595402092477573037601545702791750564735745423770485121057112751404870653654825741819502133945197525312038962087949684010373665301305104574775045041789729775881786185327910684433410559579093868927683576231603569517887390199633493230170602322180553024590616032810777919677208863759208953688237218285161664157550844347327338438736745916028980280624322658359211828860095730389472387810858181994369633757228134476721622497811354237339622336307807857293368961621978278866807793656747179853497028730611156814731476271018934010315360327921977194869640606386677330718772665396945092334441052242662548367354073656638210210353984681788061306464482015043271616446824812547054747180683209621456242136291834508252665402112858304328017960950769149081024483659214659123620358475668595689339282092755262559883771657133558892862967205426819199533610297625042947624050692836458810331367904293861954821869166420862711943735436259549509422962607937052106520598863904631892758613431535301394771708880516964654443502369107083243451342115676123392079572833414248464767841028312732564160768641563750840486275474935494676972253196938974545448628475385643451471926410821808287163269514962052584696491793661869566279613173838987564620644374952165955790288983865687413007742031061696411771278094852693296036325865568429798050045816944639020902266779707021605246440481151494688091381099582782052357287901980050468592071392951857827654602199997337425168346766616014530827599334731996573170128429548273040051135950016594138624602581209750255708607307525709730466922586974777891281565365546136237750732079427748177024145787953914186491276971773367924673352379367928241104426091804623852159601817343490240237642169150743192528870435866034481944755350122973861455218602749507289957247866156867498532627830967776252351493421083946332662773174066663100905407732702883932222098415770173731330438727789047861846294986912387135862375392668386301860202257813704259840613656083944404001885248375837528025555780717700614822506492165694950903177844782588329527814476310165813323947189276364408466990865944065694709516414896130592025697547729387799878526012932883024678893750900213553882353729238153936467480375774912205124924694370863449448046678848713229274698993309353975034752606512907066376908335879635758168176148474873172766107365240326097674873284075181837874753369031469760974174627164513839701315765774170277297016499082825907951647843621164789473919489743098677044207303524842262045023468197279083816350029618540538857184101505064344805024822527155637754484750055039289882627925569531189904078107129868497528451097871940444572879436326008491902148428999435808138443717722909444085619136897265815430596535751867999460261593046976666704726599575976268041211411052035455499825280136481825067613646615949151652405315659614045881990546356388772822525787038885893640849145085903375834205206258001441647698867016398671707021919967540324348766667521105525429762013147889754677931939142959159541169781923356901575866883574289916849787819077043596400729703952478346027349296185177968992869968311251080326392433355868384266996141854279915577008066250539485348901584098638532840889870101543570946770898620993123826031324128025479882297575191761790947642850913140196414216376493681610398107072895959790093419445204097593239161248527803304415114721435319003150230896169032097790106507806615069705686771896836360132633622575240246487078838030879544960357857381487642031187607575644364668167768656004717634351260707067479049628402964512602633573445908471238685011464828864579187117527738118828797175881245247309964968686117606325273654036902043895966134042575813832379110325873424379522301041241532823591484237054280983217097503990457614481512642825151687831071398998280390712955328467951081146580590451489455127160185837029217683373268532534128620022509197222756591670967049228690551361667859692277314946399969333489348700453111141874479645212844984456577255680134087346852310893695423445428153422053772824596367773729704809678770632576478965624536037986511270019622159241005581195911121835423983001226073721628650594299673395163359155569736945541063339123215026592613133044941439226858584551400076675194071678072838184919723954819972524691209365812307961587501037789387953829461313222926721005426143969865360658369717892704462113886631594524122620319059250028286532704308438368717421170859782168995108424324919751124900641235829421222943907579479479603424555732708102619483871271924266668936133610353252134908545303037233274450148555493106157168347915129471428741410083445109666973145831346544158102432012325036557724951978014091522639212772258211785184321362975887708072736913820230143356900540550378367742808967881285719173218874386053146121392662457354510814477931237232309805473182608976975737300556907974596538274119429760429914224095015783550931782000974485962573626338012875761050982182882707013315410939422998315189946812382882161427327082490930113453235598613499120229131370931057308640540496840522854521507999217425012886728814150583299065178389005675688553547503051612254397485512412626079168094104480831224893025180765590702127279113143593119786681625320136380227144028493816044220807298928614968202599725303637303231252421930754364284309875902048989206618693911744101669367930223073533494018398668452095300591546606106005227193545334779528187379668169783436206098792924984885474326486485878247111970081025159436556684759258494527934662852354747523271567113615659723591852391533761958996301271174575265982937628681329320115383139774702041448419547385081429184373620510487132231786878081444881743383843218781677853130441866597593822843366419301764079385394427967481746250492629375223395479499051597710863915507885984168040478301895959126313931083169199075949777584837770592252524013770710775493462146582639793274412325893634769297114195412323070313822086088083835854277352488116418678223857312597914558415647716739546996618144205705776655243637869206009303146734519498320774807345402547879413764036617325245679425404327845145060098923441410730405387849995801963391958124654242419662886264446545054489809181449529101984733782079326814904750640227744614550535123553018274832357195675165053171882325432134013248471786414733049948702907835378314181721465361629248501712322945044034117863671415690843597214527323163904748285044156765452706637023651103419869550791069943088556813406514348050512926820620893391405378391952747178464762561475886234812577788652398516997991265270054886828615682390381895467740447627466453576851318287502140466995102442148966731411790401898232554102842435539229602226022649042677028495183250830706669902767982979073464809346095535755254676630836736867124388477095043449946842613469293115203379662560278529250743045108494231804186920395052585916107095693565178901303954074843987244305900177151619961593830600381366788215559232704836343054148690594232890003813014814463703407992285876822535398747046815050406025792869694513980781666798544843306552665803333526897801013141401262891617809352747850151454138640714840819151696651007873621314296002296570458053007719540250187136759410111359426653232145925801303741080527144196496360598702033033915376367967932512875970150655572810971528831874280452343037714846409352834649729491654426919311238530904728864927262380118307006790227846830494058814737413995875580341661336753427022174332879607545067026824096283707448833492138941014710055720962470218625760471628604772015620500123159904059318381252145932257553019575712295516769270173593426550338216218382196808626918473367185739390292767406963975460334105945719130047601944152334047271490392011310228582594429147664623214975591520515038266488793051853637350960108830445829709968177319671833490548251351831554082494923709850271310023590242251360947858609215795173004017185376845331960944608244885455111973824126515534441213969047644595677647156991508293001956336674016605305825028600999593243746919700020312655954012452712577089666760472764706192578855299661785925262378136833518578482871144106103190227580165142892269064282256983741650847128649805102974574491774650777417370579852842528617961799276418381296246579401079112657343468081109311435584044108943149472450229518852697858763900835463802725156297919604082566240393603271915311447347349589543939956168868821497536170994802497314485912997806109618186221985149453557279766678888371587553010001052831379692443516770568714978129674752412262552171231929396075606231726337264019561799082209499314654762487648992591971157889677907256795833451502661379935593309668168662595294652376109682849916614065958352290340247195035454465985529616952483515947962715235904503784400553945129693053871664256701748618781528177808224983898339565567148147116671282472820896746925880589925567516450501705604394687439300846395370676981134558765880507749873672979116406620428389650752419244227568276572662078673629971677918160356114528567269536831796269621182664335313246931975131994310355970667159975650803720762398256906094138259193297955509950818319475577444044209053865641033279420345805626296548088800645796774697032205063850566963454200658198056906332505492200949441361933346367477777241144453914069411857130734180026307756162888406286176427745919785021469201077272551525792591774642067500131307638675309368945217956336034688730961583568049286451513377665268589397634080414155395732650270899599767403666715170799101213268567520373902175285791459603154033123819056026246943605044907848572105462586144505334775936032545866365169139144423145594404438279434573568393669777053547108800935865392770303638281520752119048875297167241896987215221901586758327719521543277041374385402234355946386256264040855408438273967551008988509998375186794317919762539720240419081795315241172759224239886655654031067225468136094703397186874870849038764999219471732519333952966526342913228584534995035335189854983563435720636637396569296494699235072326794951618546393166922730273846940064435737028176804492155195212884455681478812931486073188622545094947422913799746654224545938305632651247413547744704358433946799996871553390115250617798521069203313698229325827853287467402532410526202496652896003011069894618047982645033208942621230186342544028550140302539420671250650886738340521302537627894158857993379511307625346146171642497781097197882826046255461936531272345218810310811393597580973100217166269378210013547274864725794730837335108083678698057926054983760511541498563394056311974968281619049783305780373013966264746316999455157738323292607106390670292105741323172089633691523908364474517584039367181219292953994153643394761707605629706460479432249825881133127036405323081194407462865333830786597920356677472143573792363562208490059817555921388670620211921068368986832161869750059922781831911926325034853034200742892973105816200903390753873806341430733099035507631935673815929972555206200016837236303757626137822575176774255506429596660792569574743552497755816693410424003416678184054843501390876923156331189145565587768279589550392488985841009713777285228065238875441101742526492735085985077531486876688854014311079285070598520492590326188408612974688808574089102731098069309624118031023034047670986863684654663658459116272857009220371842054989809730960099324479442019933859870159495219399009695740396524242687382478425523939817559974274125151780170639335758487352772584990270309472315385785967054043424978061208538798209559801612742353412838394660507670777826812883041048036191108310268615984758129573215474593432967648000885113818177906785482692013137208203215754592972218667666900606460911701072114780907661952764613870068073492372900594593688480783361562628081672150869867548912718006615217138248057309742518043499526647922036177611435518509768284582936693231802080375219085147905077206445092340756242171801846282691142990783628224547789586488874994425063228532609563326130679709624709745519168851251965596128663300682954781169722039437770152137098165880397728651003548288314115412532736794082587493221460400847099825500609908956155461435835702070761673524821790023644711305395890388964987293843155169966156438926659908159197879470979051094350265171643861909283206422476881419198639950369406508632899390039113476000268656593004141421099417866696633495107241215512401430340451323647096388091116216857573830702370278011500567774894354044421450858701542672145346148423147945782429296010387230516483420165677880503418194804275966459596731018597811239732723774715008307554854158608823228548151034241071978951057998731343812533161747505077795791813968621086530234517447773941744204633710748200365893905031394771442274912815704516417155669876460057018599785970991205064241353440930119351676777482173904240826704751107628237861385096739826387688519971719068337583954629823661335650462818537647067642753272695640957578121812186223259103298992713890879326997937013976933799251092960581938378761984128366669116510192325986774509992151420179322085266501579789293722690157032341492195063179035449960629919770291385762048035390218192743823000791274160904321942482351118538827710424360884163026540946763182969511382409911618662861472358131730373880547776011192958975373424941282723422333452701656215089566145944484799120287500321051601352428292835418413637435319640738826695966100335504975015559286986726959678258861700807172900442794887640498107252183416646257073632975297336846795222183945852105834744365252017614174483054246229197527700066699213134879474194255288574928326414358352977402473012251448367578079701205605539926518971048580275767960752391758262876331624887606480131274450372632719947502020506058843950184013883583932156762078848288468941299137142703888201960603016451381680969848906963018537202146975013255316159825595459798579769429384033992808839272014027573944432502019626326937302454126166698042946899477205466495422593231556862803834266674289184180085134205503215022422289510551097759798118188213584689948134340760032963526216012162388602406045563559373789967665355707782889375086162772607273220145617978106307790897488476068874153555460520743913407388740037891515968559368021432632807046823993254383725094016241145839920029123454981998102685897576142440740996863051034974479682874310955438383017176077543716446708127823711239634432448318981157644306093969385054804544875821394697063441392324104250022751737785183644060941096472732904713320013446839085700318476864626607254527832247580020404040247042367223650392366391419195679856543847760293769595674382864690271728313732959717242509484891934497710324502508451146686402771394365192508494677783135299837148090836223359336072346191864922221031160726110975079995896269491668366724149565848942529458207375572061067449228760339030008419853962798216953169575566713695260638627710719800687419009850203665726106852407517374253583116160787040650077793785946857228915380115019806889128265445365715439276075126333779065083301495606914890721879536470704137330677395157785757747220256461940266603733109974661109655981076303915881086004805716563958955258775783820386781738233496210080531359398880745197840868754304536177658278644346810510408109448826920804992350086144068550627686310129000595390379456463895316409024458186770034041988485227740061375866906178879957540471358997451229925068883468192284817538944323453584565927173001356771609072183990567508586830855378431334378296524060604478086488166072368559723868710328469245719091709919161354419547914318291140411811701614786442495536704070987698735702347582176478644853737079506284137635088490210466273058582743579319493502629187369577713322660540401408459641501837112468984947372856079205893148742340293091935793960802485939578443660241012583190251854315286760470052604913299668173870904362217853508307785856128443815180517727714889629872774827173526988998256265296533668777642171985880554374017733860755575793592097800703450775209031544910835374981185697205548333966629685404251653234692508794017967796900644332015093862101943157819138549343786086655502461249229607896696958872146553314102785197726730616963787297348926636024024611731038934858589932929188481402153778768097532897152063807257467086187098317877901193715056251837986796590918280592144591008120040813624904350147182881768679263017720076774460861472812298703021682771084146961072712889386855931490191305308039713966103639716630586726693940099315203539920590660936078733653315844564079529345949958905062577373132902642956231123116281911934860082427586304865933799482815813102762203263612475034684338959007999722138278598074325289316995744522065414371800719240113741222553062240556070515484446470128055939502986582130760261725057966103340822598996946594469669003365556462108409317805340227498673203030399211160204041823933720749470785572186734494316631114770216781940727202260338757031990116386742824568862292901027935124850771994550210907752325074050178704999249172071873768203783659481392438406756709173038736255073293359464334810320304168789121246067291046762628766590937141669554696050987429931034949128286442908252785657648328057272549453012427297184003273512550925013310074818174411935960110918126375075009347051807883577889074761470692312025567588926687043673615702093037010846975764601083057238311110469464586889497801188887027768684936736034978038350358634628728628469312143162245157470685864956457523644317514670851322403332189222174851753554436536724840202523838943001091636108491304871216042870503674151617725754688345318533373609402959419523796748551008535445496637689787892304869374324080134286033822124920520430797880900305299493227254465789267860768074932635622256783769394587824233552248819277101502176339421503288199676927513144727988023318959781882996569418040226011846876017329599426782626895412599163762605181231835932024050792151143284711897716838301523841080655014142544721461013140266702334701644510508862679452451308034616920393583441201070492099252479399582342873137706042687539654484269984569236314488148711105930394369295831027255746231075530257982442707945238681047320779510585495399259045680610825689745951494374691052718789107814316629195856140947270180389194754413062758144889463410930098275121123553328010641944087344898482651937547646864544238310805675780252279319014305323501650021334667250567019994578718323733787198336328894048802544277579589802236342779439873795143094299461031648999503763814205772098592326158495736624486486477489845716449471778793160784786133656410901822905614924266007127518102241001528621073807161439700714718871806078131795797943840080810643125201226772038028605684606091890060733551440805203363790872933367368897652712212248456151004861452860832940388798019547397580403440094403701238802323432336479922260942833060668544639494064088870996047192435786958426150852892264735350322900715662940754976583850451973217976564394512134297173775376699091730409201801385780218427507150766456714132558730321810896885086328614789706611682437924084105492685675798513064384149583928414591352004497221291086735196222567884583836638063274242246583713281123805094252464956120540572988971806449024250935770561590237420046900402938893075826659967728918860079713004068961195111477478523987433512921445041183382066604762976928580119189128334548986010997723343017107599817592449120537883931974678150915187183220267702993525552911533139387457975447174097749415642197326638882456033838872972167099156026246344743857742439987331577546030076328451796462278550840018275670975261850006104592685015351716303578403644723096217339199420446060507717683872046128504783564795554250613825121835589868977789923586872669002650462456320090333209784026860993765553267516487380725676444205658786555909049918195856207411123002430568832274191040156208099951118971679040984481066525670077916457146235886889790301518308302616839985890865291317367044565823250365418695320247871917434799386243781869405433491945490844607443487273927359888699697187229110636883158206948560068415149019895727734423218206078755343353302140797129036258361233952807316186927679442267837215457936869328658490410123703107001417676272054416730127064014809381394080493034170292602453262390192094808135733694814999751482632152662508535076271967375807853150285231982150976364211975661586191355195892231023372734265106744527904566125674613078299233527433637580940902542493933888737918097953093459306692130431336127109368082508134133175432829619013839491816272605376877888355963593477248273243104286167355437452034966654184438681601564699639986058535276689663343697448575299953701150110338934925953375167392868934296470811677972706512201694536623668564960756609520513173695042495829479032119351552482640374757079240456880572615586002842885595366138678281363529450453641020053033670374115252783332224454399336071822369605115275377507696960043397293638010703485258295738987486209489519420278623385880848507300199036088314282022382982025650699551147703034874118111343240221173083516372825557714092706264087279400287171559664107220485718213991320867708232519257352494779872027923337420758516417830072463551015921788150315382172173067364442215189564940773102317915763264697812061787357589321417335242978537710142471389413668978220681180263472226779828607439203543531323862572701998115909524101146102635360642557936962472093065547918430159070842579468732827669771110728339343583287491488970260977295306179503592942851097318376660283256476749565210846592433556637346631548852411395944883619113257441019255256551211764625694855087193039080045693535066351303235949222744576907669383807606921273246932828767002245557451871971600707116785781784931351841167286012894214694867680387199459885626932860758609366106882893943635209684795511471585782091717658914742807401125230217402071678028872625757096872160788281047889977476487974098306830577478239582165382954050972360917185663476703212283250793409977534180157075853906118758049068510843651200636748768447228309229056521361872820153231897906358408669020554669581041100223743667102253084778640192714025290298112949214841230836020641565512205673444315377003508489588293007605755955262935300139702657142900149794242518829435529533754685000774589523439967909519440930254976524313655088934896609361152224805185852764633333699547459163455026957360049328621165442385170484495188179662432920611067897097100162413226037124340889136863278001629493975907010043273195631907965500196584925374651728216542172498792770182861915107295252884863497419451114229192640195809556418685691799632506551907493424550921601747364415813794046652586981398453657218901271424132693091472747665162445223045251076662592969752648522810848644835653695903097088771363809904501235210100176157889077485315437832179871924472719632448640048513540760512355937333499878179940919227577977742003554232894746614008051172463737589662397152600838088640743050045085708529784212464488903582913281406621024881678370086139121149969446092490047357807235062154378288823360934932909844701874109446650913047273867171827138217233807863476891669118770183799476325854554754321949715596115258848087987044215008769619317558330828630709964515534286476378502454267857223543417149189371420907958315612213675479728627952443906909788478831089722149519222912997508514842866548514832811523790514500580999909237935565609336759072356971734441475853505596645196070674861314200327659270973533203350081519030990029435681597152018211477963241725361821787746689932621484084181888213655234768649217078416113132633221547352996955020556318860106037382447382208361595744664635993735000315080338864189056593377832355476780626500842388196341627599480822400233893800156438156998993131656185029221036195727839152749564350563710144771060842909701562152678970803915492907413055834961280993619801774312225900005695067263157036685900752175302152109360126391980466140136174264922288701208277643774682150592178875517584922510342355285353856154275711015667420618519303273441981813760697674946777330315792133296115121688689645821105703658223098541985134733910191654911652510929599322894993957430658743559183536387724408372131212401424629799313919181747066639171591934852175216220082464923331531977354988156514073562739492632191835985260452381291233640073448601886982791385796426166105484372905981487077455793235964966360252520220319453612822689343587799469252050165525042999498741159989157885242895101878172558583513294262123579573436555990968121399730770137353233518741154798369245257336245173982846680135020648842430161607472171481947455319017360066378474687758846558552952595906403472404398345372649714562243132517308907653562304051944525157952855093500649145722112884036676070144619010093653479636153910166312047310901058058744747892954715700729052948011170760872748926514326933520746897308976213052302960016223509434711873273722558626145176625940016012073314621391957921397801958243806246782017800804673744301617439379404421617630862591930871322386060740743292351227620241929999934778872363880956416809961417121134739854864804552574721433653887767105864780155847902375253847953989478834418384645836524984829411857751947261090569284332160029040821034288430112196870993166336986072166316306172059014325442341217302379773632250860252834017544104974454626030219333353340203476336508167137248001181695083052491281642512760437570138507904146085172385203793983363807573613902833201827971963339270752881604386395101402665313848525627227495830899145577388476447449452408421244985849045390237601013442794885579402008313973278861177959284122252103258879570945652009435399119003932803857971988248532164359619909932816780010953484322222605531043782566789566922912250095758745482833811518101653791811711296818833820808969058810139002445195797428830579803447149340113993935617982659369950292210062521042521837233700066495015721668825433919214452673488349012058201623576357398652624627521202325181234656261275841474943861926957996559507233371477667009884138685282434878608905692079313323550642985801491261457956978592628825353998107505231895774085541115949682532256523343759150850906617256263789844193623121949846406078204803383319912356808979650242626566369159162414688617392615654997836211601893334690213706549789033478489342295485712871594079451877529065261317139946402687015021879353987824161273444083709561371389222551211192545621156770484967019737979704118760790681755088612909717278739563376793926895334922095831238614622685057805081306991996796406268407718993937979928868731002515084677814159439567812786390367359542534405261061466086497351825363082010969337758205981356535817763182215803673423459893971377447143354020066906511066652427567915270019587319429763415605215886271438787241154603725490011221839752855006877837446136468680516430427526314420387811447956173679431907644393068696274372176988843023110903630935976491661356253625514592586279216171328453056677519197728873859397338854612493990924970522567297111503285077342967604566438318430404868085685438063829052171699607904514400287645605910821449936360007311728997047909029208909299573496309929884505755286175699916467561393515617727307986426638431037318342084428164645618695815837127725572922397564032174190343120271870805420169219032479381881502947882024731999453788361506490919410135119239780856167310273666655100697045903434921607395372077709893045190107198220324635438661887743004729675107848573349734400378845837589607388206467604866696128001027330990109615530041527738817969344143716909972145926697436285263686926521853233234940597915671988937703459235548992381867088509257674014564200945841674136713955087764798790050093616637178787490401643514196568119074823486284626816348457135012234234503737394801287805968578428860029512314606474577673153837065427803196723571729300678306601357510490079934122406278529810315384647161644190063285044896303736072479108225800647605479926013358437651603220778712521448016702085785091070682661571105410444472055537755451893526345282330951642645318198835803078665214819808367188189644872672512521288684349689178436032009538835812303545278914034767583616480068378261680952723887781508555955520492271142795169859032900477329974429476896943609222662576035258680183834111019638380759046663463229353846984313063642506997356787834583878605384993420863591902240739244336433496315551114900043592287018747783083817139428261658017633573152589080782192372321647284400523516064849917289863122817690318376343658029663559091290745516287294182456132110318849579892434885262176164810831341918314113774509228801161338913556583959351953579971271635299264043735750152003033042462571480352215329057689385318349651936198051679539803075621133236005290714483792919188649636429649392566089014457825622179257941882735382854798972488455534898194647852185610748746247032606370777930488068841008677083430157155315784948926521518177717255231945793226646699026430461647373956661813456969804549423244002910440622942538528219907480305491335814618027118746658512237952882328023626981981293309495743838225342148832706762177037606715598944771709148793304205532581576184462817763726845787325901522140786231101751705928835618749072423534820298356830250972343249283732759374660938952342055259079219860926620058175869605125349764707743264672932207269340367194862701012332989481133353089939109855956281804023423443849586289202852707209741620999568418781087909551991896653745880957004704493072117487032986501256317732968560040011273074924955309340210637280275415169889029691756762087250890862300631934192842490344088371815540443078416528313338710356604705176310417635414633573261599735802538107800908262610370633088782255203784957122814212369550877706442788690188615170581034614152627603633243329757414232141590181898507301945486276129002364376137834413241854030178306887010010497239985760277147719240908165010867750504255481291946459939139590123916381211280058856352685916331653369344899571704950124666867261269766436634063351809173071547919327573944178289124757327297286705136506431874885185942066088311042887074378440893827691468830791438785870473876194309627935667518578057732954043128217584826813253929885310418146609070914521025318992955018006531270745763236249451666883226536508998322820563692633281924404064633263592444682968414534912504931043824434330977303603092023978284826955404645848357158295698522084564679242785096202721268058361078691827244928277085685121639221775426257658648572568549338498416209865658694676676645787762589487602599576529282068094067277770041041879893392758362736476033934613919987466159461585269752354060705811758548610304804476185209095491040881066511410254871080966879247108624233386452122704614264820504806173550689830729025797608446907507644388168774171767293145388888127141029115644877540952833911692720104395513925835737704004805187415706650393192085928521231587956203864278329834879587896544488362250471344386962117730572540594514798277549951966536781247432222892937490351027507357380597796982235281838792970940226663751844710971804627154459535676806362747017363289429209102010518689815613567648877913240755803933844182478153145014741377404112973460884534366513109063625285468852544338702925205975607837383703304443593171900163234639879586603421569170912172973892219588872988731454612114964838430443666508070898982096970922382880110298714648892694327671027288328010495458186834763735672120320704106341940503075608343195315924306029190858442714641921616492074958958555763392468749319606199752898089523737914159358187964954378321142763501533191582373711716860205661873527260119735031953390047882817620628111753240169475406820778667197045224579817262540211177510036971016715620641716818989041777842006220241474493174543161262212573352905786329536853860057316047858660339707559427945609932609199280686715990456879162383490289452323665574424066358936526401857201688939088127460845310495760727345378658608252525090175039158453591321598100299885852567968653949821991319228689498648639400073432603771897901160752902124520414629881642173502032532613703963823303338786497051642166303880897465682273898592654285961077351659263427665672780579283298988018420118606690627287113495927905713327648871015171179985053752315994156010780486528990230658705318720499536880313835720681440349535393782022234167501701638427619144160057535903279949617866922450527495145405792090497245851904880317651188610519879182720640912499921227615271366716572095699573197933246819524813408368262606515399388974841695204248759091339336615001580014032933981968920216851445738586073483263158965465134563098230593474614255480629910173133009509824396245558717887636530032177861877248007896268735064299198868045305594078277930945921090866851473430231210770949639732007369596895621730607420085152480672514591055437014064375772297458769553054651929226789264612018758403561107293553004899845361626043317196631722523706569147412492808133929251115682894298461663083633849753060511686538250103827219035967019910058237990665864496622051602518095509570186105634878985196034105811730342003748445144769627441866271566291414758200020431926729824340192669954697861680005565447399829692870168773315181755617088919385819639649884365468535125154428311490058867735789336486566058399979988540718291348920286338525498961826801980352146744930157676677589701667251505029340808734773980610464096101494837565982344789745957704031898241673995569685147385690029096098809613870579517719414786519949041034987816922182216985718654686841892791226362314690046768447425643732980340129474887674546883303121646740442502110813757683368298141173690808781378416123827125241024602666843253017916738171574942163561469864040543554773469584010031974599443168699825439928211507085718288424492982864327827266906666460869230662187824188814804072797036831051934036793401843192381030458595264908030009147360194351899318278907610569510282526333991826026854761428049794075101379430511238495055682417611868716008295278053708957414230619232271787274991897666925074238204938712720565012698458207326198165553134240128056916659816127130431791129007558168503064850173355396123510300258526433699681059436510133495038812715884142184853224504448888676291175281892272866470334972577217461755339250968612288243659645687281800080437544105401102228482104242788254764232750630155064183634410154273818557282571690169478824933833973750237113382769060356072906507201226598274788514613237305291484675196613477989364739845605885273531244804046668016659318270172265010043437327344769884143468338188115433558249859474331563469366842721348409403422242035759160958243118895511984249494988344700397263622351441890876814105455788135355708340066508322526822935608268448141433260020103539869566952250024482475072346293235001000038272353248877467835116134355503630987816611128185133007439445154953515147285118532730813177171850091381863852142065433057350644994110384335031390967051963496769959720181303699648116580446604180803290864052895736664561010818540614517481256489165642082380141361197161958129775405826199738271947663478017279810134524444545989016761859879300406482539645665500295436180538096787486647453243244980292681168033112927465463162692494681574133718216926908644573959480291130698077011041620192262883922598717921609257609460550496046498108005696179756787450041100585803616936743052075533847568136827011722954423030447281682491207913746476485180382819577993382171786357093412964102226237916874640093691503212758991921772591741728335681812675267965513678375295429309822463524788018435369387395829130463269434574529191133697857197111244024553217246743899993149028069504250183340152329733120344930910165092422257840946595637131529135669922969858856584382616851699380309810740759519127297738780820688667092922232757339718788363309241723029678779963946015846032953610985920056197543467251939249538582442584565927419328013733445507029140480949150366001903247646939332627265984192434816858447663222732521997028606192248395430431123423441895247013472689398916451858739663616138333443087254988885545435348745853029518880815084473356622408775315908020182409129734673775259666921827563885298928848116056044085617654720166604445167183833136261347000928853519626387181236119359324527747949553627508722393961740783103864920694814345890995641267084297407340523472028733382282499483234127399730111173695496847973828173652009056819671296944309804838419673948996923943842816460269355860130742601317499053762345976044395759590050955386636816864809569404871090322384964315031693183721532725897042798048413063779874475025741126075186266288941159070515578930758479665763671307334658373388171422064316449656214789868170478718345632688951321211599168070188794114942954236755290086802451593812065503220008871994459272450384847471695153954463145632239541157068662400603486948867464344283011408707904528340982379942880799325195560126071852260203681407562429803127162610435245394048011302524007660970728558961325163875713802728005324853264582462298767301983235028751251496689854271648883671200445145649298493057955266042882442541235103963323644486504204037918672850328829748309460603965568325784983714514038363928886892227898761105401810934510252850872427618512828157328797914576687534465663404604613200511761400212752424448119283191696784219770246956061985529653586556351350194023997510198665111120713108696476362833263628699468695659962490657120738090481692588560907428158272164486930036272449096150297492433586467290572152448981770813033285615828417543621294071184907197355472817624627782907517980678123509643985971318775921366700539346682953844129656417132854639899415414816473469744314774279844887210186066830271593968086800187428488263451873884632884374659978800388152289342739922255732431274335228250036694972188100859809763972972195772335031170617917459442300963269417485502073285754146559464049912013298652104061225107232002487823177874766213826250685891773182375115726987287966706861916998106090676141312887300914583027774905553276987772454450239549917333669446951569450240674756912451414027776032853706971213075899228656359788113375528244392477577984795189135018699506940460135711766846161409623238592551659896359410547963137586443648110290002793030154029162813817139256824823851918715273928041022852396016504343326321792854418539085394244389428006021197841641473269729700413330090938221032486953078510061079344808982565215420633840753159915892665443486483947851062740836751298845849048993374414240221404649245762635054593685464724569647344263721758295717295273325912431414711523060110846151402426943784574288933332344546802946122222953761081472921191252154275897576504999057701999354488333812242409243738478020569441289980947929422502252634036536120976823259279605525020889391700107310585950352848517991067377661134788440224656122037590989699179447676440173811561168817348376560292248205764645588025394596484702435556655678086271852770885069859567969080523492858235114502853711202873120066551691593432611066130160444016310631674613459422896978285434788487202759242201059353704407609922590802636527640577984121065409381389192981787570313107614814814664756726279427060253844640305769357060560838741906965856564321554703081844852129355479108935820142812444618766246890979224639190611333082774594863023368542011874351384856556550423942360206106043820287431463789517173441383262983596215587347696130133390121841233966037197014515096380495818835340237590420353483170847141407246784943191327014888222264931779558754731808255565595337010817744686847105252879771427653420008749932829238987693629586974576891190422557238910322998052957608193444495174009799350542276124649673522285687835920175047296377724961086044417242855306411046016785517721286377814895678383984879645056065981402533678508121955382806208493394479681734994398962706074491787257113354801028034045222458428282076038349048309993876074222027417555521894491236096703716363495369335932433712722960346663297192151102816122408321650124695465711386875070690375215235084189510746302785259374208322692233944798478207474142087570849068829666524699567729501370674294769049723126933298885363261967469520604525497038877078083895591109100658264009669368813750712325952130434397990424496841067619344711779604393719736007063997238013432776980120457199199233672700275819118276800871268401628269169376485679173285516693604243487499648869348400126221454025528826028512094395273650949741616249251165366509701628973008736373628282476364733222708096496691361532080138448241547118070440874265879649923110251557553609425480710260593288749640062578168770546601759867679871836729328438907860034028634918690733191139507083345533605757271481908320425643869031737104165815888110828670733466084782589129699164616178958002479756635165689980404897247647994883099764182510264258200664635135648165315614907711012903588646185506730294541696162127061243507806246445680455954120114775392319488403596573865240913892915135254702815956793957809687084901995827686891686890755744962049942874956598410005071393276950975370022158224435163549341865362624079092609776634636385829477721568713447808013830069240708917305873518700620138541532860739061928888802249557850985334751848566315765056295867409128629506202068255685226720693904765328080930764679730919687318824195751654836933197403100579592920370943962969346873270600602933708859423439617239077611942294568128802923620725640187471623463231834460885103001913748459373377502173303838137440541856871707834509880042693585433356923434485714866697372340070126651943053213559815433278662797050613862566143766076187864135259928496012750240422391018774104194419160830794420147343669132326202929277025668631657450758537733654673176436517954520365276633896564154552281979225090209892585453217739542213227476145853125632661049835352482004003935703138341703358442982475970856893390246532689486928349927847355679249158155567136543974878122635406377231182320853856112074556685029124798795075553846612469318187474473221575972577407078209404920924056148354070892238329284120266882840453930577117865355330496879395638390449079134827367116599673084638711196352852708616828122799493539771355026300821762164592667893559011088601023778821534439757749408888398422848008780979051903659569562145711755306224171800478011310579092466906488593662106225735838968988803579256360755063215302765150672573144986273250901659548521993379495916970507264746131404348048559975540535237208656671129233258015659022808832587603051336362708169910877874770317870584491864711183073886502118619113763508647104071061467445787356075387152018140294576488185590234010605615399409703796722222272798161384736474914722205321587857645865711356125356717881949296848355802475123618996120153822366231126064653761436191520399690739361118970893539188072134969905208813836217588751776191006205403947456772391722136893582647273766218036163558597759140072158903413930191851212211627291288560875343776042427182359141108898806555939687665415273019248985447591411621850792979450523828593273211126925227068460657204917137812799656143642512363663180577501838116797406220063917517225359271678891919665233572927818359985895906262191547604531448819964347540508710248119494786953426450330639359452905353074466990796057277149028008121431764515979506853661439073091685258592968957383141901533755376584352920134835089528472489766997555168722505801829048034840125898999163129279173412868511146859012800613819815392382600882112474865668255446680773889405497898099023504032565977558350644915439825127381109163338040674608611877304499075076668724647756754456286286234494550809359616762870339674901188216473461833710243525992432646781074495721181790243819373824147125947980108190315579639731376124469504216456562972575956700670714748922090107818145499756728851433239039710659500690713227379759944386834163869936853135318439262243895163896112714151287096848380615167023072832568770864499083857103004668652120805980321424940504161029349067904541845310625715711501890382191687749108498776760386499399302994932262729680254920848952003359125139876133088518106936945735207171070431646444102721727496786031869364084654704208867535322711689872999241353892923766039327826055203422023172096257987431662723119912477106221392764539531078295917141227902882412474490310239746253507432840762207281008544695278938195168859627225954835411883274114659445854338581977240147683599823801470289607779637857504468231956640913121641473460421031678182912418960296814666453516809771153167911841980469711992095494437638440661484668257914336180483212431982906824111372900038278849735035184690786997882622152482652456632164505313729314410265068709318616098342705634441581565110746404379710879980271561135958413789341175951573923679829921923399380814152188744069659621046414157236753454368524687518684552602473071479741082617102083270838469583117929491954755730794183552508066411860742470377816539672404577726812795101076465585938237343628600288289043793955293556780970327289885655146700903112876112525756666984654442751582816534220331210993996643599389066663952728145219176929079303602752919455825817250216722855059163018462545974757718496614527029709689635858510585115769886523048678887062854950299167910874522777968164067738622746257620748144979852659384256530851063112159551043811921179517926892685809404004258076498355090880283954435797581494070593087449369381736347386168446681918029465133347753259468629690262150099749549534596404909253602273612824431563880512722593235613078121782895959236170171003466294379528350681601998336010020097197959584579564961338579806352389726662350787678923623011697092252075925020822659111017930722384905343936733654202268468534779710559311300827418863052924702842462788945697080157034700129418512357038647691588362559143158324844372720171397105855555323690668762249778175195533105304865282988815966064702112146363569935792549841637460231710522512311283038224986818814834280048903452515606425189300851916136709232027769512579613277477816865594616000419757612230361143383679916946215867409809516594362114394588720241704756069797899037801074554383740814520794691828345509102917210350533170361533471256003648039379891513521447174257248955833023714170099088737088502681548813407961105828658793879952790259559548790823552400187293996852335406864411925697647681272451516318822816759927070649915241958172131425596677573066459019006434334646899121717233801311378603905866045895654794725031241990049123936795309606808787466665778985466705793938775230372361130205939128446428286463955318834284214303450318458106436897518697676709976409487142883456172004390975206292606481439102586245445992864459232977858640034834641688442130782746809546852752151200132529645729993378488666319416210283890573134282427619220667782257762345496586738371931486234607657621706884448150107912700512088242870343201677595211439559713206067438516782160160951118614092444088687647836492910118802615860011487321208155089669733649215195176780333477181016156049305252473078597700616433056068636939559819469183423367861395221074588642506474677848103707263102979624254496769279806952208900123873597204585707167710436624827110937231066561450720609417551704855564879607674343198176174400322491369001405812981694071613792306066498210164147411853938782166317268163410121567698448477887523855439232852840097654485192186037201074722023908898582845125169387505752599961918410065681278982418702131731676680264638704900127108514488737703016063675137741642315615054319569829007050176263015462233790469841361848420293471280135216759721655575500375775635267325432162794617276779133887908466348742410034887626095633488443867747134109709484760042815782823695525397133735751365425691106433147017199736993611668888112885827954578163470415900318537484015340241961187746089596143045720413100726288212398534168489711304266566741153060626585186227685597858398764283733478034990531496508391414271597331444092103863991832825053996571341582017792454264026990878078937747397049950253743223865627269392888345054141723702835584975929144819604900285298762805427715827778099831765533591406995808192790156179556328096388568412665196959354152592750234680040003523473756544646248281278247763758392419113511783170052225885365805479383325991499493324327923912088028035161250633731294959081459078529097461666534055749392636316340889603789558549917813288292594988034241107364105882848784897193966983417256281734621091750979844271980103699011095261843483512615625316876055401345660926597444238417276442717167597607028030988944837961174343044347321425483981779249426319261134475504673424219930538873022354212349382543739852471110890948260553735607836350793468300684491166211692148751954920805601730286199188648457205071304910586318884050160824621089323584012696682814100353185275751570879959305019907412322906289850405688288323067331287072547661931405623729160800240335979163443044923311075418265805619340866790045869303504940632477579141361955951844782689727550154762720644528014646945413654802735229745825739369263810828686809706594047719299217021378863384604070723806852907089394850472522263396897085251493051060973181256801438417302237688164318412623362923503383079473870602801753562846538320533413193271720633096316925427286264627317590592220900621234426111389351124147634130109381321971680967920466848150566700595134381943046024227154185902167713813248456161342201836909425827544725349235592226982799579738693181852286371036963081102621198104280257900815588706648384513093407604206274784913112331763191005356948004345175381130616491363842989940112242800177628820587311206935765619991610492279733192449414659061732243740384343515310286213978343352650962430768195294926758191382782166527655899072497347237830299346033213584941855584897429327284171621910084777923598672477941468002801052291063977147426344466873512529786650078301018109241068162565053987251844067059189684344422521683588998760139918609446281051634390257864177777125022274503786858624276985756262238108231649944660599105398408137786509057823617980307654536493621166509544299746459618023599749795262191114966595684730037308447039469806700231382953065627868881255231141592876108154367980726877038180168477810785204159471318462312658461749266588005177828057094525760504736886893623078382821354501405729085607803133954303854410592115596607696326932869984179425654484558799467625964475579686666898849640746760647833478872271279622673056905359196152344906763553669588218671947320579243258766490260798918260289975735283077405231837303292111125853597884669666800484175504281460405327532922312512134048980179871307995522179648673155879693396287593352357108254079663033604578456254808097630098247920271696416331759837672885256444089168670707826253676800596688907589242660709040629167783974991785858565008191702146553851641019386126077850308676033902354556433514826591758610650076459948665217094103156391704519362728601568104694143857212132486272041080542099465036261735978337797524041371001110546564758170542646858401168046697938621078441862189425893693733527136749868556803493077691060017131495499440460243094831827274547756814841201192634466812967162770804107280433674616806773040958567164789927276011389908977017742227869319895238580152933233344773911963769151295332547167651197156336838689841402979275431327894084155509440345761823290315025071266576446050729571237047594938146864645918315158448369776557394132033883777359611478294200400729260658204408104032246538928298858152446853399922772079097005141018946698079264187741034126609009037844389166050306356272062229103077219979139473916398076451304432708092872876178839233396067215358078467277204207182384759031087023796624115747456204443064460673428431185912312086584154271173625697893426505196043381588361422373194248982522162293615019940865133065385688849632404428153483246008507276792570748571932617103318538030093699822949443319678702369645281192251369515555559017276757096676103734574473161448952350105339155203177930044485460591875073100772224612182608142191274022486240122425416761923990372065031281953591255221639230136077848481207303083718783744453031872543425211731348947913361755428184572953202280828690632626300674138022436737055247416020988042423001623915898411390536594723837824438523844913923927458684115591569513487328667762664606188138405262325090914578979366361124410165426216973369478005553395312327053622689434910462974672060850293258108676208478537966957457075174051869747492068827676377199843504037885965467148949466108997866254061101858449568615253318185517227363847489183352193054136067020893218694551846684100088042605855288770415902143163650450083597721992786438409345761878975138895570029792972290498208172836206072874024451973395149944696508894687458620340861581867719158624084733705709919416276599432480901448296318949810941188475313198956276941784903603494239923364368314872088950444139202843264249349769135971719664908036354261114861087072652710547591309357263636144771834260162890092633929835712563591267759708558135367231693982268184908427169608835175210229659368485146606429683086272709697637232557167886099553894150427418616878657061479243596774826522902489190711967597678287442823931697089552376876285654358058342364737470605888884753458203565824833419268872875460361931440070176363263629681564165229020404907889262608193797955244700788435514011395376616443509048958128410290603278282749959087733446858176747213936068537427819272470500168154134058087452131702340199465160252690894484132711729038364744600232208899660447794006197469235629446404378421183611651750101251145630892939641223437862882990745047133066574732821770387329969246208477325484482534465780267716586957871608532500783196543330208315725106747560876743391576828914925248985876906151452209183143227980825657308158305309373797786436327670421588602423542154011256200863529629867912327396995063527970401824301714620949267957709835896583651966182293303641189309062616765414153217038104662591324421525549755633704468300757041296677932856139905266121083338572187043155620937268233321434923987549710147336767092623881108765724730359635666128198136435577948609015465386437042033221124294256753193028853029360027782889613826497671597847177189404608414218868942029837864813666504271019932528149618985313612574581725763791681960520249358653176887445138372903597568105386289845776876510948908761677126007117808349294530446766659377357397929854326677173004071137005209143286513868118636275237437370282407403037995924117235388284451292764720184052339688319126537500612512311742787353897926570476236698079491414873959330058722273012206406136395745331401861692908016837021509679372828139157565671772429682839328859857237503974769360676894715000419816537222371582373453696041635845248210667439015048631325505276805265222886156993958186787369453322808772356818081294244069974484703042579473735623248752227030162490279067190021419152305893128274406279353045040508983700695026675494627704964361434794976200522082211487482233325765699904801890877091728547906035884791809603583604329064824230245779050010198536186096087022265850340196003844812909442938249392803004187618885359112803826170865548009466195222550348520553218070917507880565491522492002931694351861005422066120090432308579227667413791448732094815265315599585938242648453727636025363516805522021308050193557669102968427449764427622831692279224480818028047128371032167299598796819657505728008335274850785347234093827790359896460497117996374380288991442989578921453124001875090489419947545781502166906822626760843105452240067240690857901501313411325262898067844994791170486727800638656938604468137901458772430589400855132847953563525454771410786124432787149738340747410808551585419839335207953901492058240958889464369945312218233011754559281447516861613956503289791323396342616331303436077688164830872560751457265563126694277437215520793403890259673975612366505071012091358522652412320340045510176456170354943269589641574472216792181719836846414103574252307840351485286911788838633033154154275096331226838100858847757400918184023089617268202514278369170157678542193996084052781794301964771622723033481945331989174056226478111384828176335585796620197347348801629858051832096116902125981802180654515253046135679584703862326078125415897317934939590028370385636080292555505187092582261191076398935290514317889440535666774804615233997009396332721609736218668405464402340987652049965266150396818790563180090778212936012363118406823159682947730734326082139582106841410832184640819940441674807895447984251150012940291797039145966606820931186651519051400111397011219216645077069841669587420467995607670743557077894138224884997352968800588359845956840121870441342526731549198794071160466009164362493890238212073957156405948143165928027641093218686929305704842820362138819878064403961610441047068814427499086292457155531288110901894120820961248317856172301218475408048778135540806486732280200347317656118330192666162806230077228028075842779975796825700059618861657154540713064296966270722149644436211710492255325555788439746953350882041318308862393333374417718007604692933784995450238185891616312354170243424442186890999407003624251561554695410936585707067425581421001794003933110033621894226496891027616480259319612113189657038674290002867187891061185047829992164132443964576424751818535890857582560335333943332769651582259976134778417529784457770437531924994940393526784192582508257779367231887938251533408694655174862881485502838694695955157839643401276820069661092051124379901211089755206473850654429225900334887404332093908744255920112228308042364237862002427074078100348234272872152581817031733013964294450458835289921222472083385700705266799120017027725259660457244487146222697230502939502318867650989742669793117543736708430403063452279018963340253984154066475664009172086116384748533283872831261361575051902661664608910980317379853311260775285819005550501751795322675537889236463383730454338354683098913721451156323689507449353574398332782511996310728757727031094841870628356162214846961602075397023787089892889075626174659942352126980509581264877434324827645689629326959536714672674021364328184025168762486900617925654235451189062217099336391273374427709478446354885449455159877836519928607187626938082754492980464355006171256978685309804014345468236678228153785758064190587416252702069545690124740586899296331959272188498239103141808184573758959725408787193188578213998897048889315089191712009258547119501281907391417250277702028530091379667617036946270021175627078479584956553413380077838409325161591728214817577386452230059806261344729909423211795064324935874913071365298243829578833241995922755723399395950259693457019565084183489596264172280170925819921684069787212117716346698825270749887656618557279894036598355415014285104700573591401692810187694167497456327767020340830304554255102501470756680201421602759021028896246631924363809043985354243907902108670709232223116082656921178235764057975841312112563632197855633549979512018937484895906686699878224790410736854690602730319538566610668047194201902139991350021955693125301400043845306701504059477883511305721580075667652488278529908414642970767555390453464417488813680581578691849605253107273099027911689540212986430131506626833885797550151463736266425518174506655256947069870297377538389112195332652365037025541812344117750506947676245653181477593629065021107898658695445825631583021825844110539858021543834360350124210825498985786981505495245873649321337789248041535970783619888110238037332015947221137681179604176201778875610014373177247693649735452398883525627502240402944318084167907831520907532502924904629441446150405947748812608039873847287727688266980617220846407287908864002470805347879413078341120887504680447751113990526930358859945279680302587594871034862739293595416917343738341907545595826096648656465331457024699452366444653412431326983778819727697006638293815582417058773579460698940526494433142813235414625155981281944768304558861326581246700446644416751991328375432546505349256384219108434003679420056338302298022880032764247633380316340571883752013882984608324057385956843852509258838620032304743150297125831033028841688745915849698181681583096684829004253338038060996216374871212834125927732659657101932554290580270676159644570779301788046693847481705337553311832383128738005297162666344681775034746878290041388583009794583327466339996700716311812363528860386856380186589621064486198420352839936974550415881484670991488558048085588566557389366460077129731885902605261991394283779760069879588012973150777606893417394354125002498125705806013504570115677610474031482219779642770511895350440935476587839711620087842927651660541321072242095534521280836267667440398824455090713571022418910640058617331866685304513792835189973249290329538531603458282447911597076420822376102257246896543318572577846460978943285036845020598325028618323838718449982461638036974208043619895757198322967007998498383576576291041667853263674843093657212009350711918168619013911184032281863194022758076246427519601490195305567800153074844538780006014554484090826138629509557024651828758699486180812133965694467892934178293812427677606671324737310731628594477769301051132529548000924992431107758009087219885269261252235339793118403339135197546838871566181862732298137814886817549742990567514693934240913122419868751019652941095806359572159381499636086235608651039303581670043578322957225262964325000763275204109426820228342146938465143115199708051406790600022143735659977480361434408185041965681788205773912542633220340228508196369299528759630865683506922449497330700438657842393446917801288236514418065528745431661967284354173546122761739466831657612964052025139308422438243405629681749866895638053520244796660576124488729421322157306423294540287743401856082987520740374872821621372362912360847188269037071787410705461853485170725373505046325799322609524015507399367778019585422937155116944645848105006159782740306908166752654554563405343857413969303220565306847323941162975075131694963407857649829619771188214720880193825170777245221807807190913533973525525121789874392513727185845568131708163121811677183629900085429045559570118019037798578859878225264608322551515053964226348881379253518114235046440318952571133577910055058371723074040077698500992180299550493355704658007515254248963041743505575388340996297651585933387281093801060538136744741005188349964677452649430828486745067392312215742663835099826724620508530223426098173334246662962489933932232076466759858482940712382151580224680677397781881183962019662082831868797983097914106230234281409700476507562210293669976080901426082063144155579708780242737448393599252481806190543295871502926136807524021784278680564959890682363533648017002247801119977085010165624112907300098408720638161659377093788562590073996585322865450495706483114588165741967453618310293415206620601587602607105796116857058165588172431762785772564059026632474643830591649389417223188547991178415402451012345756720426729569085418463217931466160009134100446891300939933396258533510410309738755138593093769199343762376562381650606973252963093982204150574312072068198292488486009922279497458104644028797034293367820954778358703532988851091225496883047078211075626274775330566167324963482756089910138792605474862592310113837398011095945814955159537154925427324620616601939440862651934112425117070285567505809774034727123414176820924258512826242006118567596178911710591521877249682036006637667184756088641218412246564694691627589669539605210488728629152956921410190649517593447278154497205793884239068012069696188886454587642202651156522980503180775351610643550163967319008138304158282906873830448266971889707513367932144079082584344741024302504656551483286835187768425705445665268021411557066484848223215139314833055015486365346575835882080053763205587672565202064930732743263211511507681214141438759462629144838145439513971075435533286876598236612599520681640361150598746260161141897247887592732671369406700855875409579674211036446359750499296660620710617539408387919409151795662111521203620878195571989315482178927316411458914744002189074469575976559657144603153895704565216364904495236591002983094649262804640826779785999361537264966015321720870824734275939710362870393476247274132525413160723720371196351632051779706713615490341320885860166195710056802482034630426684232610083125031990547380922578044061810608051870507114058497375410602369349197796100448306712169502503368972987977713759861313520205128152366527460929636175949789607145552438302073758172229397629622031537481509146209055541090687476304144796745488297390737106982371504848057397471002962679383906190700911311883510526773540161557448106133271992074918408700213138666643512323146026788801691462499022210324842044285163892615179903180015506158078867537261212761209600772248066332609782206342749571096331979788707874827756666366938718175404563549473762024967011124634195475867962074215044427372257573473132109065647434467755922854251604326699887940500086469899151308016368616946076165490390489806901178793303124507384240355431513169588137489755419329123449158293571617808807012619175198744328713163949664875613654454780315256769991925310331605106199392622049160083372463624013217700689319800295708754478848198665268530619569656817988435201697663237323850248821939307141841270029055722271463536204908302389555766669571004219156899455562595199159396545506254838475021202281664734219232189336376297972061172731999810216508232938879010918685490727542122108380384665620340009691986376743689143834683259747029640563276823028095328366523234105633996227201645281650563401281607192682383947448432193637181618543802481830530219484879698326725087318389853666955131574248558521171433412039505445646727811252751375551861956298564629721938979102740027083088559282840752567852171530363593551259481610011697374251058665810694833416773286957396269626136551062334883244960580862021498663949815512083547749597178188409773611424278050265515533438067801787074044855349332687442576024439792930597570206983938473438088742470757120343741466091668868217400910409836652214247330851330854609469750617093126788024538648395498976818706664088800227269586343287773502209776251482245098690361731519964302204540847190591194988075480852147737300127022268114633397386265677991237352577566462245041583486368482178490997197782664913358513896999127054177260649400815261425533717105756163168343940969091648736621914197903692413070733888597016819848425231931581860379049576311456121207958559776164699821123915875293651186634511601777632511812652793341405142543572927887195786929205324459733616775493667463670582571801427316720617629812409750693848328140493423217157496308841561834434070182052359541796765804532247581151132112597763291532518509603051479063562822208376846639345049892466423220716745909830483605869859358481616124131689243555945011467312791285892630510577958014035877412171515891470245027436933138274461788511459418570721979107021595835386187508965683300896834972492356982464572929178254893701336783220348963934028777170403627566944359151541984567422008985637473445399887741546209238122364195233992389176261995698580454840878161535270331153314482224200761344134623005118555168364926781885278792612694771453644969338196423869197062791820673150010545957371851253394987583441473106099942811625101008991277882796381208608081124554065659659583616291171015218720744475949672175635619436421525573234197234632194291153384331164011681383216355746323509116188056804752886492646271167507025281832358519181621361086294356315521437945810291265748856848395371102112126352372006483788358551292934645315404754440485830861182432065801049640679978368004705601664343583296905678442438645609882521071015759517080010735902968665736796755153776503497786036533913016227647830985929188903709146193805798637498312609027021627911483475737755412769744914928099320694156494162227966581920049692364969333384220000571976755100337710811759924360065572607659239396738858820654727335780957085462290454240377613392613909583741393039805336957681503921099578189999401117456715108844197488910072090960110186074525038956557194071034163316013517333889313700956187748422137450792188019712168102590492953851456713628643770974170525331034092321407535410868997529060661107113076219525815339840183567349458304754547469190895710574541193033090933197838120144522093518574394758442493358636263548236037393866387326209876385857769358426071778018714811697916568728272279072934748002162760275679685810960830966150897518060283763681755346988083857708088751503519925819617381837763915300232889195037191027144256418906296626068043405165623017262441234189795826252568872753850537360998611533692177501314247613961415351772746288510140889921284076958004713125766712402406712627660889664592442381481703020964876102592402313378865555119693000932567108015224297628411149045871706308798711865060093511710936396403169528843762113103739509349539180300847924807749304830108779244214324044879563006336290782963792403647671788912673570304236955442916228898378446997210103317511277386458663511421577841738922095986274353022310514319724448428263545925657626589936354536828117647305875555849562169489078936636149126578123975338986154218787238358554801119343882158104072227860092782208949235842226152761977996960040050926610687282242899588224552540347305277108107762299966038321944608304451634653923615452591162047743844940893090654303420973318634905354994804342914114815088304952389086959442745619788490367544844017080125594560779660096229117442097484165173461124878585550945172324779059475096973146870261179743554218887489311295049381128561941921931174114213650550425089695676208697963737115499586738100735768280702543986033680308344709538599894252895321620271336898680570736215054339054185286924933259441757588628567524631946744788858211023354301739020798876894768636363850798849007594763723902281412310624905479367077756399503149486565517013347302703522684952540405424761809169216562952612325775853002842669416817390744977883012388169624243550160074652492043424431090106633676526035054441010728293947215531341660654594837915306904808564550175080309066403154681663795275921569293009804837157268365399387577486122559188799291034092255403807513584707816275778821315073934463579670882317840251215501945633113593434754802917541546600738038117126205080886603157780295124719152734033198133995545184199177096935220278231128764537044583511555024189186925452310279210312976557689082360778081058590756285741143298918790220760294361367959757337280018857114502745291825427352583952805128110556467771137021305711357338146931860292382202138542667210959241035397986956048564067377675190101987404966244554271030475740644960616615312233145397671009953148772018717278721453863298819497628868739597378040119061208081699124680394200604956264504833423722685142630271716693280491957247572509632970262365554830434590047360122460667376998084290040518453937211694355712493230127053188481130573746226853562113214175805557756357884460227092116316921028293101598792848364512026667600352597622356700129559150985961396780183808266347262756484354146012412840845412306958686357417311362511418022560108869922162526109790179987846610537276425748299532239778783362565309811434419607733713141692430331211345217730459846350867556542522700824230283181878416031536919870106265189703541344646438862739119216592008551993954224864051350508914300387917559562603912941830420738902776019360312734055052417299647605751575882555699509640987501249575634282568042196443825596729391556574708123333331216507933062331787945534289997186918250417765555064408459926374131044314149269150362457601600585792315183934864893040981795871848817219212333692809938197384816417599079107898945465317697191610350952831649836060496354566613458246731652198049901424702450675940541207634797594735095051179368245596844130832695986531941121761696651898873013500060640985516384224370189466264503480970973518480330155712237620601275725845546201457013504308538730589059161865619399509703550046343699857132101121165132581617809756932598700581240597306376259207397569079137544245329916158513427009283603261158082246521947964330947695467423021529027674439012832811864048841675947798654078060906921072151135249115841659901909669541528870464556326997486931446937383630069770736704989927231813784494915887577409622801900120339053471273282359234202749764891707319057381467639357483390188731594088324172018030763338217773056130332560377067209266862195881931265833031476911967993753775445711450548610217409476874678758522378968154684538494927174376931319626465841266407206671390546883423104765197747765270360617630167682256752773719305034329151194956029098413891266265460848386945087455807721402715133586119166909738886160558136520332942331513229480060747739902358156124893692148529567100824296030063213046688209968820018487279368328567983282939449205551054563406692890029778487507637008097253059386582692805526066802946404728904974600546614675721980054135038955496556087891677304969849947391404894023099731465715512051433734709758151411229434751329509021643471684446155113543812993358707790701262792612003337604910928550624097351630435057169457980680668497253563791650728265532562020760304204914542075811689886990670097258143290184055172328732566355101352707699946861619918002517274308718682857839276914482188802416225161792373518629542591848809227561169279371896243129271772876013657370989936308560442483813071828723740798315803792488530895448346363528155377489637576059215455978119587650172257472027916772564830607104950084181601662556853819409257659907932965526625692762903798288652055659045750816719683485900229143411912510142878112753813132416905645771218591329167247083279038522896338647535307992924603443930013845472886181070970882931321521688799205883718286742149415407234091550829491797810355199241773519014792495603923743493081269828819529224392952428772036576347531575825369234345491802854406776975213974016876131956990893548655708276014543573633101737455743578879446804363938442317343461753885362091801120329554348921539869407777170076223323228889196073600850329736973758742159752484862239132554127176270362907433157361099255551137371575777037544171789275211707269080454161206479171979622340120655311056170968446138394683917030624750930478621312726024472996744579057087078338533953278377017023970182963432246716428968246669297160532011982759947926952224450543054536958706182596100395603033104758411115028991745468447761643309026525729160520805750811684005876534789449189023677441954648714558627715041090047836738337841854193586742490531680008288237384144398827959071992539018085171828519782353135264386823894781302654956494424922922744069435550106576060965478238488302872114364078331783737128255993500835743462407295511104140874902056111827898639682345605908244837990498511894090768629720828074204553365465058335540543424715411269904287978051933809064504047695271582795328106479266683410553144587537046780081059505302965782438758907421899997077152463031905653755750996816573696308452709617155658091182432002360342627344690366239950652546317867971202480949399069390290429252802606812304554695921252086084662455364743870609960470891123218540854991826580517903543217258193773561504006755171639691838103117130508520118715375887052125087200848613887786040492177805727163277266948877248346461203567425046378282820997138167440080370530978394117628321327363445714196458314280524392584348899640757342211580341606432039969811341979051520712374527213972249731924208992114329650355486865806652866438211007797198254546607330676533220214775431792577420797918891315923198131918367957259424080110196779691079282901059508603230603996340942560419907447523174140038077467209244542635502413755847756034643183313444625889267115116709691174805447077144821371845652936591800869720361772203701204647009660761723547441716580970816540464127472102585982834397707646645172971639100060274715503366692069103964863729202224074378803123036714430825977031656317959519034814696320625465140033463178641577128251435491226417524799190303154975247007131580339281637532727266521142175330836368585054570609545070420844814100869234771680067029218819383224911268846197322036881595615280276361791342692376000117777679364444602471346399176159942263217101773255712581177622399861640102065758373716294303605216878278507967194285683880269577127033278479844532043291291734441557974105001176811331823336798888849211134008635999824179344283114446210697767615123393379630148295367618717366054391007762777790774574423812060427046548431161809339374535728774566218275958948081318050064175568354080370151768177124071660053913781820924111717639620986617507003221515704251690732540957880912779016356091175477453678601981562903116978765601127438975021920327503004637385900222783814939253088034696763169954111911965490223005178932876543891816132313544764310081393253521380777809291071850774317867873622266675304212902790239632968293750110835921318339530797871320588577382479058362610378376975250316345024721953450850575203246498446831538316755001123313943762409858411707734669718434377029282438895762187528087847522111800159087284722574083115304209538056255941049995422180930765509072836080184545779067778535459521701140073457253637283193431611219526727939602450380956612967276099301910371866698965789964586359063134816307037736542723201496709629478175266491737429741113051025181185608327620327486877814924015347459479521795260189270418202418053210083639740693761492194964634920102565946461446576435210758959110104974119067252582251738486327037826057994521516105387756538512550598778091067756294505776516178759668495831587290033313571081055699333088105598795836715983861232058597281976851955342610811532375083898249711203808132313489178251536787380215827794566372898087031419736654386449144024661458956067762182101380408640523801672454947113620998898145448956816516468659479941932469370067944519669854749961927673623619124416299087254817325626187959121038227704977173461513585396571800215013949444972588271006167560199590328392127850628757880427735603875621604205963894500100079140683262309677394517733581800441034285167101678259288269483453690834162350497382238541851380114362855953764108186059269535279914882767631532798684081477516154187536275596470649114219057192778080942533426353469267393078970204983252223645297174204751908629544215864051975212949022781379883470155331578033957762152332560408474567065797591260706129344067719263187454559939231509409042705638057855828678203671894990337313258031749894641813729800533610896474436463285389566657263289989578328479417128140701286123096635414427318714201545818253047096091988896144949884695075292052231414002895427670799716814929102418797791845881365381142669962211534175760905764360764997124142418360907909086490888684193030292214100467448438505718339107372769028968255383396259515721550971093852052812665269194795673852904513003014997142138878779706883117732257971078031390094473066172316692631062749680755667653404408496774295107018725279415697102723785588686684751119105505926383988389173345786191886743947411384488040548310468225671211162755124434802492075077545945314688302570050502644611670741277208131637844789984557908690602033925549079686190941727965761433549376060875518576135804303096154875175984099016950522004119005364734588317250977795434359866393192785076962874574905894994710158850248014840793563409047529302606102447578381311023166428207821170782936223783751475641814204970963002247240624799433032068257157286461287059153502354953005004606955221152143058929572116405207414470376668364153532123246688815599942804065790867030075260708097928463933411010168722784418479540780700581573974582954240155637487600202419149354094604336786221877570004590860064574803500345474923612742916958134693640353100797270951078591635666720103555699075546952287178519022950065410637954632265882061560318584183034700089480261291778849571585567441239457413858730733163562555619081370817886465883375843632770143711835366340797463825161779175285559446886511614640488969140000116307335162626734032196681332568204053357247635464124041250209676474539340978666375552118086795757592401330242028250872887839556262128211897202496255333498801530531003210414017875026936342940770401981011688144530252549851248297160947452903234112913476736276538699277437210563958744293274137325212272593860730562740746089867896391321208523284239474718785501840459896970825330555332034553727386461599556600125594951151627902593988057045548929641105087069026822701353792581822348043841914345285388044910890872704148415279217311033167522236210885203256932718056564161467727476943089668099646541650201259149712365931208572197678708971303621209518374680264332365944168144520176535125930240842015422657408378024688780465746016108231447609250826237394216844931151427649375836038891324344082219026820324933166016289090066928651943799366222330220087258760229909656796162715667883346709287985309117075656154049078178559211706012465304475969845103944470040348217212279118282048373151162866861991429581856891754405023501502093050813377618651538432385244498640535583296470502732768074005922007087283438774558123972363809390622570250990411963138238226211334539853305843819296488516913239698570035562106753884101832195222702153919351414589174432146904755083568242028847790457889184063266258972067189800715005500338806302785316208384786929171372836242336259936956851788264667240623198698034257909008707619892099803218227781629692651072601086680941645027254374906888854995793529672852927588780099917475259492379334092418667416111631892807081276232400011411854772562857312476332537382380457457589260597508207136566967389443669897278891064063862018103696139996944174874092111632780347019863946332243234176848828409517536073242029513929425558552263946832697759837125688423273366081933292628131308082310887449988381126774777073397760694201825868911845055454955806222327259255199108198339315235268108218029003958032079675987559833019806789360912431966916567021468955944786911379387384888889078687175578185505672018428216938587658948349512768530085526720962958247904557489711801208164430622836814235017247235734426515574073308212619746385047198781686537098816765142422666601404899353565347440295206540176677498843866851478822925873804180031291709536282654265386011832374852514140488827141376009435105693450755141059221181696819782887423639193526828814248881112926119800436549264750275558931776197702146989588859283599190409938589309803306115250326408997931414958065166223163209257454353105231106067836925805988451916011152097116587682902898569720245396382829849695775197834978280091992030711895207283633369400211842944602635480601795600051068158930305305364557741032095298504650358918599127440414788647640469514955927241707295517878247195782927865967000024486475241592931691117201585709046830315859329907339168888633845792674198481258717576810492425092325583964429653981875096211177822056262317193741520426051458483999055982900140922680490259744006223429410453358958447787268647862750383692682304228768839963923445693063662781195060510908578305835617456890406279947192072052120903731097115825694691202146893976790621419034447925157238579984120622217245206610065781204753962120077234868158749727497353113534952750191767371645394536101243319041338974988338636581341537576001242167617123040032419417859242252179178594351623269560933027217620646060711716993430971353699649161684666970297066332871535029790944171292465066871383326561168791947645772940011338177177547442480375455199514843102785178555722623420462962214600652934717192652810633880161088630321253687144668269947718068942312279877812517951039211560187672855371352185178274539611733271086790928329105193375921472875736983302474255687218086890884742802364283967220124165673739342201448896977159095183412839812360756838465404701365861415352256124476343541194415357275095553457957949090973511405845644160178620993560507187218489493085629286305569777236496395904777046802346032089568698175487224502794369186369931610247698242588085262467764218166286172909072681871520887199952506346484373559308712750486887318981081431204372549534726515727749984720457283348841584393497185311126788448864519070485322075696066594109281321066802268575936263644746003428024025081786542858554774479057206526324600268211900407799367161029640172271154479850222783058407702774001263253263174417226229570930095408514411998643738035705625411976239454620083277290623343135956387457938718187635199319274589988469505437920259292019361599130150921655026319925186628921335959059011773601399024789596634068086911510469601814474075012472700897151420304991278379672414138994242067181288046536028960539002667779289886320351630566601230280829328040595450062488852076852293823984955972336619297121677995863437314082870435763428526189121216022554508905615288784105265958121168651243700557775485209373753404583501851979911576547507083753203985561362159857320063863090616458419539447933073464468767462124288066111278377531128244959600890799591068376188763820528995696411289992864618306211585457108539999954133211078533562177993761699842152793978561434133668365809331171202384584829309874191232205855076231151894079788019025035874190154665105646371782745672839587389022613074464640383663457821370534606393773338284866052322304094884318439105154696653347040596707686120747037562114798680655289926700231571597124062931358634638937794409159054984450299853172113766005554298775965977422284137098255239433189964035239826390362030540582640833564135743426874284865483235677180380084674078837355866517132122113198895360697236240243342746360471317887735172492008427245298181084748116613356362429844340407224694872441816845279710206623402066549371563866866236093746898848470008481292307132617417566640523108504961653522913244389992604225812852918997906002904932222790164877435516278703454680925518744876226464446999891660007792369399201085273473775581787276775638178807885602351425150918247776833508025855134292779826658593851619865877432401282552391942386078511848613273633028349797106611365887360656357932513235430513660328237856919246097895372630755078332760499793022588003728767499537187041287176364381882631127664813654335353938641600969602656337381905326977953156269710867396758723334151518490492324923498206682742063518141608449746177523852588038021894638043174560106783250470407452255595762260421017178494268402517701118945861721291709857644638746463492213967312223659791445112452970625348306111942009530892029728134743540369668442973690414945209537496009661554297200704047147043536136998229696549565441380931969143229250813575848675103149261943751209051028177029117258191009911707703397409253315354155492440818222622334604273380113089119608115947231270477438803547298476487290900030798321257386705476494157769128584577278085613846055185391371373636542855416821020078172710532932537645490735740161577965763792601889358418337592628314226270456016764590048471101799431655248177930222396048064550063652028526914501355871476706875240880225674448169624027744694308142220252285084084382812235709587663172213846472953402578357359498082339678806556311420899853015877801467506959387485252148215993535322498556069544594133043980486460673101198325197886957020403578327250087099981077001975502138807472905959482884425725688492816482705594723407242606405663511785328115320913679563748920985968711572176553404089296661655342508557528832199295103230193425786056957563198279229004836208648836900838995005772378241694522361154897429248137178756623270256736533153561334035328825450926361225040200558614930564128846974784849372602191976998527752927793862999566990243510493833632178797761498076193251236909013318253670856845829902798225314344974930329085945343479686957601901030039587542348744576014894691314088215313702316765346342889316365824742244088255478509715166154556348352816040326337899811106214922639213010778043765838053273626159769213964946125144985880855599765237839493164431135676554396721475748596551722190723546007034291075210758174315645446269638051876260287740582027508868997323338913040414009485546250941497120452566442441139726401472115204204376500401170318519653690323112153483822006381532805976808173514722828450662177753022203715326328353186462706816519500829027232464852973626679454865714053911204846253182472315468272233596239020562475822798419461636698253827827491139572081874525572259876421647531784300160972745538124956688554949594039309221156474013121558517646090446060824317134418244610597387767358684460517753068745039108438213024242465679338724403542679792321698234414979312287490296196824738227657317148684075041242171433821161851313007798446285009201202646080035655540440137786164084243824824329480122569482229620085412468922640770850731564508349917239500945803614627491318880472866819561913127104828517185257301554952334474351997713817911887756833986578296424879123022463759536179146281587107854061997607404787836700582803482075583463352324958860640494821076960232075422361813672819343998636882840508499571251078479216801495753910104336268122183059534564614973751999636402139818407960001419079310747832273791843291277659859291785421285662063155112209843949952050397908345460930389311481812633042765373546195790746419133408863249103777640578749983752755257817534403272729985697122693027241612851847714444417192785627870407754862028331455350109918769562764422054184506685906213600246824668219021991073334297700939544254476249144711200825765020669965947837817339230246452605230486187145140697728278986840289111906716041389545965824708894108726463076293163494452368014858919227998978901374018805852808239422653764580415469188210669113066833488325194627742868585033097122755410429118381497847241819394979830337290606948534133147109810414632461007586849309687529457505241077737474828950721521293519973602518562476054357509296570337502680030725904385702517787729426685883793912285932173718202758841181524859895086302580580447576320776244016426058144222011028532364241600708690486079629182910406200973843462777515076857530484102371027917781188047847015806454968190135225069108171642224540670996444850807366102603225480041465851451594934926016900827875045683610015010299141641238732236058006553939427959011521827958401005702036676665303817206686000817330296382078416530271287939151217455745218142629065541203013389614490975255248909630159996099028259264021850941937346913233136378107170714581107972398925278657151246844474771871080954128585844095590706718310767270016299435259157899437690021167529219325857751212920325290156298680528761121489995816682509489595110602675827926381256559933925821180531477908596779677773257531935186010808435541497428449037549924116701479889270484551860359129636841730440857687636279840634819928118871456168380462399117940167226595081333995703641519641963454670748085080914752711848367899053940376919778141263480865002116816295093356445836251331415273861098956156363031974421103046029298240405066260349990922849793895728749049413547937820777824228062559987886348355515770609719886985937419323662802569485386526387081374764458868653598765071180182801538208603365968656297105959268683203025000244097923154786725568298861155325051076588187415677876091453905143578702063924705808575540243058635387359680388044762684199442551898572480928444656508816178264941062766995542399776461147816078435779973557194322169227887040709019132614917267488843609536241795556614785548917790681452364873952435080630618422133537160110374259385434142410632224742239559891853686815592852506116230745528051603536627195664369040058940296598406227880334450131538297282775112756837515430863776007262781987899942050979087628163488507253853876870404796318208723668877958460120151831459476189558590024698814858485246974029010643102655580615103806809934590496589233121752592927724246496866888592751271515598959720939235826569673755256550924154799079002093513447049783542575364475437114755547690752292006903442980057241041474867244376566505716640555755188168384062706335695299288400090777793858417528694043617070210316707029590978597148193150443142814266540322011138843387460399138779110813765380851477460537885583961527457207341012304164403952863687393015734815942340203591623189241330204534066599319740740881463404346092866098114259690771882042256358281485536268317151849705196709453691195901119719924391007144688465267808129697004527154745332045691820650317026398123653587104935828809011046217579048051656614362181025676324444546094980940976778024155060789141548666313917220221783779779798022250607685353592413494467003656381006348573669318925710392579802388450093690661228191697108225802458797188519477458640631151643314323892086780053804561373266242852257895360327267247862940617156776389486930621769006200069618117859759827821482677594807850042914805804979459722331832945289816481094225014863150538073228637611408018064630792764767694668233053057251407189297302396890278991550913109446353511213738284669573096778525079619929936584401390466680028415128240803202616921589310706462870515653247535450539416302815855455889250829127000130561814636246951374883166288467638041518029072959331592708315171382131400277232570252609127108860192374867390054518603906461699898124370521012848371589820062205786458862949196151228901357514741853496417399208174230477700107692451798954084334587371786187783916315917102875482151354873320536732746195156199161863861469613209880814870498718868927408793468231569449419250764069589844960388334651312442921114875490279901485545494110013331921168628025332135386325738970230611942751718207492471504949824902764361864255761121802153398976762197059060452742651814805861112989771065000042898062880333810784945205709652836274286346839518943497668361552477492604715110535654747301575365481482043637429987967767103019589857402723623602422521748149181913268987974568738531339529807591908100271516041955281174307597923061000372922216580976401078225691192937152465925137468928507531025444204898822307174000063482559107974332510120215656610200095176154462478945731857996493713967654463343745535349345431015456072136606402951092096776709934317307781397460956134479978590328649201101850646055257567809688389337797893374986943572922025469614604134204343067632489058114066485116508965484085132504562000971150111273368374445475720223473291132246351633217695328882983880291076567759056346485225558752926259361399310480493431477459679944131662951333895472986690021339847501955566729511518527517124834658243310097178894063657902525460267850369813052525658713883454628171502270573843342516082944636956587681030917361723729830086453919884909841304708473821107228072604775725743549461482138305253748747259285643802414795233846750473759360796178189610390277748783137941832937329297844910648437461100737894566016791637954835099318584690134978426839996043069081444638073675585937717707483364922562244872461564049837952030507781259419218153800728959548835686193085493582183402582085841122886347029934045703281467836093641595278498170675584551544572023867542259384046497069780331405187607300193268855951568936544522146079890351111826486323799554804262133293171571446517456556969534334980458513951930167917863366891076443203150703957707628985181985326618383314382430924995018052972416461958425116497052601566889592553415191739019395568557342352343853824725338795856314423173296449167228664770145671031064543588736862926504898555527254017603433034767620824437259090371289882451628516358889581513187230528269498645037117348450375896987309389508164576949812926079364002556942450226301362284003110516554494550827262524591735290258991830187335156735766278150293288906771783307654609857637843464124276863069386524525586484408158790537332776142846467962495042529186918796376203551620296876345290548410996245973812649943207530061983482995047459833042517620891573277095727647769371041879073455111851483191725182255889818592250737592594885741821747779196519202839487097370384312261487042045404696390033162000609820402450127488321484361781362278046470801781465219125453495301384459938570427923796436412196860526779949420217507107341092708486500457069673275647194964955859349262831178833709672091539475060378035822284372093244957040335221383862661530448878158926231699925177671212060424839754739893896129633581275397802107798189812450694762999127059084598232520455338297746114705728460696695043401920892577868144960577140931097679171693888478800632639528265475105253958116902491571382692325396561419092221591772559054528096146313647245760165919741602851565782009171242275786881568234016808725308553072599899813987802101789719671873845203514637798213990787828412299127695051408121440153936532974212838221255374592597250425543018385052126601984933655114874461236720150199006594547738092840123365570947242817407333900355059761413695112439561583071656762368486811302661601033420146058375726203047262311846475179685483291132722742144661958493559400055776725239837737406759250853458456138111134513511132234553294617062518715416652825192197636293770469177324749918951720191190789176132705512086892644292007982790605302626843528672954479330107831324344725868582531730764594288264139395411754691142751699408867318762137580273756844114613277277563116934633343673074768702843918127038446062017234567430878517595807271847294611456036053062692251305433820230269894403686038451026668469209227465442445357539492071749504895660809809509011752642686109892481590475738178113749297842327742762771711514485158949884790840786740926270604570869645983177661641027415032638554231242972032841872095128791744311056600688639642091462322214407882412602273825210314354181529533131525211649120756727911747856475619691483926424184354042020848093102245278149929288086389023457090382023493361901128818890975045283408473792470989067579891163160930315963170438925197131128933479655175591819789641883488194331672546141458967654250242268455028915701094783061913321989558789779090232728940563075077013724415937414557145180691274845958316290141992765507186277064021042395944031519878215569632768678302819617059891759825327340292538959795434228919364276809895652249950655111283248959500050534209012952965842277781687655598829593997240102319404726479004619287161086690877844776528545073934618754643888331787885563598717965180607271811341189527610681161845881784326277531890337639813939485344362453266255820093366699633869875302412168955964462936833683394531503066669657050139900892568603115524234311901113924903917813728416796952276995188942923146015591309139588964942170158172348334367965031315207190341075132921814648587257858807530504626566718585794059521719449941976985963133898895459176005740113743153831699841490474726094430136589754009381643032174865085746729780406415109513936361192783835111221636587373124431734793866845320482319009628712887450164278470621032386797144846513729563373863859556614246880630604670473975285950192321423647379875295808117852781878607311990284253982838596525077351186137947456241060003901223912509629321051698190475384278049869973127817611510280339922688999122474247861830465595453031897831894040537393023433335302296096966782107222563398642130725644233850250926113708746866443431127547515352899363399917192488877537097236505131096998430061436980967842326252252694294496453563638654555164291788552748086789867828508443564299684003554350631245079949040907845659034225278541953769228656115470195293602004862415603916733336517264100700836090447955580402599137426612938696520365539163776415742404678859107375760954465661838705409281560164959226930605650487171786259013597399292950054499111866226047093952838772608365901931299783842550580302645168116868816878662212926281783155772324157776694614041806082378188632606242369603591529693197033763157500657779194392901823483157446679631575773660056208166292682244139631520665893104470095405116643135549542678103115570940126102841239935970970153036695722463374771766096771654062442276053244284302541140058160072583978463669342187703348159425972973039185674731654233716102426268380633028615864827581286606687711127017429486529128724995084268138050176807467240317627116084901414267662800289241435672697843688167111893468385845225327258273603016795211164631127337009563716059583910844373433514779235814455922692957059676897663018382958690551506542945884318417560770317666851416533321992056716735009490604231593661977391973242752519327163878700282978447767369669733551134541211843562266764370995657942407051832946108201017779593041485845545437168657668371108396024290504356479085051873572489243117332636350621897969108433939409347732197030931381090337120215163174679780589544716362488978626868388182444456467657325407543478745183995450658290150370194752377307562311314798691230205894333559934442249511312757019548769517466024228517221933525017370306848136146266035710678746236300219970413280180352650309629685690655201573606405940956332681945931383297005924046647840531695846192775155992270585076683582868081582688158824310850360065341287166085626698295907117190476234107036919878408552855221271497080411556578952809459585988490100858402493916217326862823937900658556430641523765190469278177531106589346321314327763342808907507339593623479707898515817933899122957178453411926444478543074373666736661425884116033202745456487253539379133027959314452224702242341999514472963899670437296572753377822182031638533630949562141653096495090390137533559338958447775457651101634005128451596291963293791723114897297173560371779354151963471336039559428648902695175716147679548327672433327379109671271771092689804802861376923174551538811554236672329105543621365755577154987616481412711854255274152014260342040831473970728373573148757209798621040823084324485968656065921657872022004543910583467351830537590121652596678316406918298042764191821286906259670056125230414193322528358066984158723117548663615881391367838033563442109722911750929501676064609500702790382857671271197612453279934719586448737428473706716645869564069700915924052407656460891295828303078967903499542077352120311896943834118855495047180697334609017324743103320073142866360767600562413328186293448281440994733608209400039763035265329913162498906253151342312322092822337068362520364931720814090142204247196177614524160584288685992310801804364521031834266785671830032120885277856368173875188735342598788285687991265102577104250370888024795831445206402696236187648797314927217837103275873277041637928504365800068336179730140623999043744493066533879126839431303022836012866075172133496712170539902602564658017693298562880693471621965842612249216826915147736340292576711498811542996230838931111805250980561278678703138057326194101065867209966525830381726352630521643805548689284524202106881997369461050900522925458566492146730115393374863734439377972995131221106547700596553804528639802612338041494939004678904295310848101886887973798639729847956435862439383464960869327599807163680910589107881630125662549671466435369037075709930932620392240840223689947452650452248847567582741886556218124951802833956452503290845298065086417949626938528797160756849969271154703229345137004805569383247865488271820266929001987727517793000868775276845992311372267695838794680692163947646800664917754785893923565020788209599846854778778133873087545873589107395561718029328984939081468012893285387973917288843600574034625047678619224765865634070386428143717745681515877108371658502687890485813421365253767794090481674831200883343145679173110218385045253212107412831537395225157168313808048004253163107287606618417759262362398203682179572385271427725365286614211284001396691375542195847265826308275099815327470117969930219613580517501024926776329159635289613717943716591210147219018592925782427663966891206252107720006821333124196685522816499195980729544692335635652316068423597741311209824777025390007405496086868990522950260095925705097829747409845222747426058884170697016684168227796950716635451810026823770479128574412030009525647723478469539531658569399492149049630284668284527697893568322895751641434722452426162238911311864529816004302242154840090560776836505047108199020102931204165828623349202565763003381779560388246668533565107027272277779715499155470277712341914051564211153080402615463784066407382925185380319016465420707971184179930961912072022487704855288946294669610606796335780527767881054731598868795858194342518258544928497003104065838273809801598788113722223765572554735374537680054268508716993071088502745349916367432640390466249970099779567235412199259754027313283851056701164188543045743742254239595411570030714677877513867931135299011129983167081238046635242327088182000301497606079193777570180176602515345400821122409957295974644963289691392060296505285823024578685809224690264609520622706329919586102703918094080986273511366719561695390043279113162254154981114012932626774905464613358405308984991484283546159698402183557230716634648570915386820722814504396986491538882237279971995842592303854411340837548734235346725378339649885079616002542554149786970364718680421061844675643154761408389806765947052969892741258034277707201206374944161924305750978321277427049192757055109110579370178117605634675856240938137990778918315033471259961496393989165441918312359605520099058914479052524955711444766736449465533721042005410838240469993245350143970374769017707987028714483572083003085683438135472331593350792592599301182323220578798475823488602338087325523009974065183958153586914004714349867178247920308271747391370970330394398582384041265606300858724020888728305062274053376329791377219812982638953155908937716093174416456986461974215023747467564303365521345846466792895182197770848020367747297519059957609689693803056463538252820450810654587196703620562474022248235796670221945338442329671577565246526060088075868359178305779847815854087105654837257383435683045427690832044861437496288817033713046471910978452151809496150725780202244033044240261851843802814573903565139756416307513900138465102754689563883247329552137322974510083833608269065795322522754239657543422709383103694832497641456678567531178172875378171712338401370559442303656307872108216129937602199770156427080250826340714303789215217609917119080298330586075934972859942005384529279557031502339406005592237594773355437217399542435564412695877936437598287364891734291885491478602572474132667866890876815156909339855466294490897037190302198951109901168149042263085879651139337482913401939465066505899952501818848359358232208577148955698783520816699142017535760394072013098452411164196323208570061204999962326566692617481558421966262821810629583916751623942596641596045048368544206365875344366280449046991055534502033889081320741597812019827109564478384685368547662220584933695745050319672853062478542965331550571081067786424514654336644243864629628812810993326176967303271028953528632157600666683492201930114894458597110960067273371026780118463960878350272544969158262041722599444701227873940678907020840182241517401974238008644912317216572378328397702359593810630662196063263282387020170833574975437830413429712241386150557740850067976689120756997182467772398040992238487289479794948947173702739784126795253421886382868534226480282141487945409280527984417587143950416584306777122796719446994157584899756695949140898435566006063914069302061057653227076146684616321517715453775356095507184162599844388625828647963409385578723298835070304529257156970935615204675002539117485967388340182659979765652756302477319308814492158974037122836995277690528899071764396517486464401148228127839207136314299288470040111195497699857327538331426911995382547959104320213663351196187734277434348184169146033296247254875618964451240625440760658888045668188984001784574940320344941738818372495875079942057111372923289576870846940787616754644728760042362393128726589638159724811144163986443244412085325430778760758224709592108520890048457858007487602282819992299264088464088366027861088861843660497080880019247888136075210477126749686786579013467116835806810456338784493351294042232213364390608070033490421308724025277971566349800649637564611527345692884842426885982833923319157773778860581168096198669762512876795514588168982477047320501400918836168654755554660536406950605692402684006903506002465069069276841698744989851887471534110580356561436828479637003373788638956402847909079213876235471309072416166323771898160738775241450078327587684376915830950389688292310012920399455904461127182105738435832854422049742432208649598017781776588718102237196258797092161792345231697997706530419662312730851224012290809153169655951813188259255181836453638029384481111245119106431681767100801714985578652051487605617975284035781244444028833554795043674595627397705327375917926518262596707865616984285082393463354056828072123161057138135575706301053381615957242914292131348661617036324887188438142151153138650029024651386065719255453599432823979081125037554191380213304825738794023359513278417212970651445029101083679305765113219958973396887806478511745153020051167027343578472327580163609548109865198129048949614174469695896591351361148703150074505859036412123010918450878309685805538203464305587337357166787016625037858344289453548098591984739198594423039219627648388618398046917797219209706685961227391530865694482864885347136299499561013610744953816979069191247583922887603674950213729005747858327740465144439898602213780832950310068517104613619154715636803459372097550299770084884722345233752384748770944738913074694236527163222451015456938974146499977422814762733554491623236940335314311842504065524883262743803564989294374321539583116323631185090897510263278951670180459335038092885813555301012547429558494056392156431697488879237831181823928411135499626503669095860719037497462829679808413725398120679461367656158178605752039121549093981638990881296581428591183353657702840891433083304320453332748043828154830610393699626974109521427849129166758565054449904655728548524401493458021791343466422555503117465722444108418801903506763463937030988654108808178228254126331772842204080334977769789303049965041539624889969748993023810450408593501181743685077289569736544546787771946668702026807907039125742639324375172042483313516097326857463485155459665759092974861254012239517926739487233881386506417275943319940767451899938388823614306231047022527004107630211803125484389273626403823239180471398184252727272723362641240042037088980968217671710951104448991385923182754280960918274281843780907068873272461137162652546570141878973102925015146041606580759490735343214860654544720768889030708467350652021998998660168586110442793572035291423789022787214122395436241765390767796931647011539136465330813443761311917536438793502775177800135190121380843085427227120622645467788071567279070380321049549254041983373152991919346391331814710438812324208581531386542354818092514255868698790157896416465852640701655439393840951421750516040480901132276535637949113958144728573301287298590189655531108673980853850455730775634192479015897465074530047630596081482309972108450365210273084547172017778867288112008075534824106979771583617585727701331361835529471584743134296663565229391905187127954761092022407941741446702556311880095572724910492638043338702964020381419034595003817303520089403974366739462058920487471487854829371878603211780985329613683811981266296225631181217574534897288940137060428119900204019895119717596897397494763046643633517518229154265106985137227824972469246595138935699908746214644349411055093472596014271747292986722571207973909358769544671808816557289076059758033846261822383437274085610306183298012340217519351420429199775958003259798651240037802478083656087351154429374704315652046021911897118332686652152004905214161408381008456486209802899918278534319425663567957161864235367628136627195690101337644934995175524615254658740846567060209459774107861261428144558088846717337102097325205441120677958379016431834830116380387413908574733777553487878623791807937356593696210949161088212923089877683016207678591855859649066992005815564400855289568719990166180085975579334227964868676713546180039911525737037781691823779772951927900608714815375117712964439137495841289106129464645704436747275802432620169817906694084265037188127558508086260108288733676665273608356754899210701337533827150539746709875543291573787389242068643404300458349506199253954874442082970493960116185789274297376737782532012656015961301258121641190364565729716590751957742499237934584228338265417026284149867718807216320539154025724004921688478909438022365836898251941507501108661807083094543284291658586469902429310184804073113994093991441084227330762206238705610548236797033339845010757942837985219226395067118094062122441739702955107995900053296787208593609153241486736708773800997068788428114354732923741383408924437547010839034395789022893303017904525769007332426801138835317456855541547550679918198145061259457739423568564945292296536595191039204745748700426507577749828283570527270291595482843461676248111540756570020952326878749055871069842772403460114801020146287169943993764249614790761240557384709373494295443128043062409398596374943039676298951570973947440498366104395715717797517319885244159367618864470485777314318790447423261565047769630824636910472864720961675753868069160135033449422804625401172145567411069511244638443779431263719620813812047680807946818282512602909109143935228138715441906075616852389142520704920125360226780852421979217123704989063880548248555757338513480893732894803330768464779480268993302399591507722868434453659026466263842020979124893092314936335520652378279881902982760001441698670570958233879327320952425206750731829329300198881912853409605026839804227983881369869072076065779898650567920738687281291217694104054525181755141555156373579153861388462561269484312840989401416912943910022714420571686166241110323047393606378259741291711290178437051053522567311437783719473804349047872035476698165574302057195188390988954004734821436160919526163374698610218236894260872433550983979546852669040341713799204487211315785658974305192153343290475561197732262600855524013893453231205229659905102137430323919828340940221979109843819729858734981758126902461569037629461287680301606990833653535667320094333424019151220969839617963549227544986269944311207379857270695379629097164275478429282998192813714763812040997097126267159946241857188572720884450171584924348200360821134467077470914964791119159521924520675906522070233172703463143313295307634048584920931808535135146630032561567001315859859010916603893325455848227600953679032571972451869176226512708767694561297764444136418691774113608185299858955354468829354538227811507655311012004450643249087955437732622862536505070010243715419107852133795481385465641804088329595687325665539208584825928888821991365529991793949227847067635389859965627224161593923823887763091023255934215843043006453910780551795400788131577176992354346698735754292762184703090977879936764244555113003438801030299951739394259356761208709784149461491858251453763239104216464317303982746032517144097316541315012653206579249786130479517151079550738430804772300615499204733712763153753053419325154310009013890861892974690957593064786641073190166747056395130195939310410441464562032205828339576358276120417642400908214252604696246870682890705703505445210811887293173292386819445706850318756311083425224934289326639155928805972888448328700486998693227935893706803250139522468819423364424216960073097225443726686969418521936439706522943225829667217378924020461074868445725376231370475184567689711855044162243065543432407239357142340386988664965600237196635414724494005294518089555031950518505620024761078875841559961049735865014418289727553532574835008937422593906183861376266245431456270238042958492437097237802938568427592584446884839761564447848808444321072751180899431133528270026127179727611412626453939006767950782245463050646136322157908575047891200048144347519103823451717740232645996481751466509625450809846961326222528834356709337182974003333080411211636952344940098674635089533823935508644167826518120736698393336040489492253866808483735372488336550235496903731724430483817397937011190087092494029571319775197725827954287838216687746534783213989444365600667593259777551630594080805692336072920882763568861955998550549008521346756030323379412782468697495493708741304557992122560194640121828111165484423883335432359401918289502942733974561397113628378364493877981306090729370568511567779310902547375523161712068474452824469000454438177071038143696363095057522860258661385061664693005870777525344779589525816402465424803910354545741536861023892699709124304424854830417910923659461730627764227377454553795156090194612055110462224355703434899617245453762261525747984478155327678895284410278304393327688712822520396304284712519837301300679144556787892600603862105493243167005931320626702911077024831243650335244653272660574408064111293260067234654997147575318401606461439631563306652955811456700432614453650669034742698011280970164715231924655254161347877964331840368263611290673575438334971283850946193772779148567314652168440378789179361946698418814780011810892145413379846692365916466707480845247615068873434388970947940354001345514366088522314456668367132651476614672250709708353764750355800816372334732476087727145615407577758053496184700731750474657855191337782568891196062958457768067130366377564025911864908298888917966980395068355893106806765260757280059521370840141877420049075845036826118284260252439486673307578716878079075016822857073432896915380245725148530948828481955552151219573049352104527251870035951424989095579988260356038573595212601941527797391865324636529358308403118143201477170131938177931551633568488106417253871745558307171341498195033665876671770953931349704444654960604055580369276691017820933207348156179549036086808996560496495888443698748780570557521992694333751684678812710947758470293631954539386913968819133924054700788830207189105248604915951187057262425637714388882875723436134227615102306174475992911768925196073355974408586974777526328547842005184144841198364270975820913348014195871732443400076843908896810884176913901475794142123251462295328842397620707106295330523461638229380176742236276055817602709027038526804041928978190486074820030317611656841921753125416679497506380588171864566508897094658965091923004213426424705044718170360872432995198003366209610315078661968558249628075542433498601717929483958544887919668900201657221624768360964349204272611500123667983317630847994365526665421126830962089886940191575828991977362143340411194817647528197721724482168674516356332402437337295105434039979860901956171994071527404569982196288088052259962592871875087865616576236707773911863963321550679815583901615916959333969519645469721521743576555975512367528839555590413707212552387873898227583138056789161645031977817974760275463268430353909254149243469572659822439411575758766866260023325831816875467369165104275553962269441530453059621302530894801872372376998064905161931848060346020914220858494174766177111161324670434258068353662395934435179119350006075817936960219782937026032294553830448857132635340897953419975384386235211030068592731712888798280247611115317234711708778765511363590452358463593373153575689320458726286298512871035627181181479730716729127712099513127493282642745680527364156048054803432797636928211809157534163057852974816617329632236757762674250261501837625577640674837411081612270055793926489909409756586008086169408244649769432117205388384946527725023612924520127712571257105426581606999756830954254423826309770777039713837400016827682195985884356769898941094017885648611160838495765679794503992920176903077509284297139666965734507845491872987968894075753145736335282124397717585541785455378652189922643680953041267726861677254657055162460041438317874009401645213492927887353908999412640115123728985108240606283892828373614826221324413740781070794815955807368983608698292280341977716839014442357787032204500186638688543597212422073676269614599351248872062508285907328382977552718166920057219900418285210449446324961768570668587430213482780676987404127562105070430606529850534456073101098520104144965120244925863966004548568430707846763772436967529761421091749222282503523275327985230632714818192466859866590096856452839586916867408585172941939917947873903095769883125299722763931345703795900414535912375980820201243251847237167983696652559168971640507756050114921785153064489791754172850113484731648242288305005305470816953275307435820370348579988083413948656545890930662294865871648844427266083690577892314681465177417549028763861682686918507774849626408115160284806174024832019204353329837821012040597767004530858274583840261662097652000203923321744548794236684954704334666122559473643344037152742081263211716885392822934135532396366204631806430622825654174596118288925114220691781045439604541474635740018702834187669879708472242885122453070500488476833335112387596166796310160670734406305069687555280810964208095297013811011204074633507889026925790801800073599821846050284252058491314301507726092496345609840919649860646821143901230932646649012141305519538512392260856127162729052867714857515335050440857977605534357013874652908390589335235893291014871656849309859656001143733530208934885586384929889897120161718450612797469625413017433966766887881920118626867237475101024235245433810179761861202743860537703470481755088815604343370726018297518349305388280860485353269579884510195305418021011043663631256883424709120801515431919011808571486882514766448153097429774636912788947605405193099475028995736413162418279570063610303787758964209951422971880483240095077631196333660343405127587249114496829142562999042479213382122424376049669005674167504128790629815037836529370332459059733275897997266486205328381341063925048700865305456165935767043333273946525369284717029928634828704851623057165053447520282791253788826650823813796127864887502004252101102501470914879730056942032143231253165741761199960654150891435688740919009904285570496458143647993526391290560726809503567874643817831745465327045566731415026561371594956115814937671821549917509294313587943209546784283582481651093246797554606228918222429380300327843875166816279723455927662750153339071489032190093053800595281297192445470440268146357572800836577776631173640695499848696052622305580550428388084002915972392630182763212349567645506556246037737343159338453444630089709398767303534535509597920103495016431466676150443651823037840375252027979945627267088265477931076859379491811066616783814940513882523949764527309732005131469852203459435534705485633720202761410076751961189379804345608729424993308725257289529707001591585419190390704921476932191685063400083864010868040536450654499741628818084251342070378103995908379086108815722121878438359255427713358925812438362154624860962324527284991020167043591028155265964917801905945660606620151019180696241728313147919236708357882060653982260987393817850159584692869363002725817823723914998175016945617741607868303293149257063137897018266324722595378686122161332330312768953986118314231780240241167380568150191379262123000647155837173188740198686131678801032245675909689388644962606321391285323887895079739275379719277291341804736016079445728706097330066926485169932518480244098341609753452799012051474030493263460316611551705632072722389049366832804035974481701849065285532126797321873824237475139318551435368441229809869950872097567039018066223923544411091307982174065622744834487827344562698312567349744950522323385765370521180111641837176065675049890852904304322573003739738625534169875473225749006309259907475811364368611125311713292665941012075174304390227145770429298496662206299387501000087584142604743164262500587466689654855051283134746955430794958233951681678484300548840629562128925105075442711115956361044161394536828262702775907426683069280699045205174858066685282749757640282632052090233220839154346854188776048322548106613127065164163493029745002194590065372670759091943915106523695034307521161280858928759724258674615407757396544615341332425892573689027093666206392710725854984968721911354331968545562990343884633710902334924465727991039930155420869261731657135090770234456289305042680937815476789674826932701570284767197277209392550233503526178328089539830530477011603027368997121336103410524886713002472898251779788329346107467758606498209127286107687401329328043782411953763760936794110997224587926691952981087323377880089739296052955343154226687542265724085118546696900409013500360230649116380634839704783296729322261538364865513377822851490363309271812758618725444522915709192608026329297690154552710642681311383228205276681982432043296350467121645801493541290741349827017311693478595265812923013588688534362889052734670890824878500237918054225822192105945272615305644692747971149599380404234281875385413411140185438606395801271029700287506820457220840067197955080913866116886458052309165820888608067985308168713141306538724694801265898626036613966431639580828640212826861792036791908368663235924390005968197448912104107198992474638145961441770331109270696070986747845303311111489842981494282256675208473944023940681640976287088361294827158848991635146275969103290766919540925582812359551787806675623766324488770240095220048912201529951955294620871017713373464824477423999586579390290943573712917942663071217504856047326297642860534002560753181671522374557192496988455695834162225877895695457359049312366917290617672367783080914947005632650078021768100087382676406003678538201272019249723052460565644807357358867159884518803025483521007761864616660769558090925974464234273805798339327685807542988520620223980272459556383377023363222598808318410063901857281301987306282362812626947919145066782930846700988211332403641676316874790239642015232812146668864820981921909480590766281106531435833326168607512166378937179418311117077191262168364372144167825276210792427360667864165854974662140197320553258981600314295966291300688592415740523951338223636948295316831165025638689696057691764046384043806147406258631257937195982725691519674690081945824084854701191732091283271500904092509449298546916597560933730221912398987094054181767081012693369169948862033507462535515329273338449277355283804248699251308946470770066661426489164763809370939782405218213625847381577828071312307229426278648456091260639718658248850313134092041742734544153816209553136145211164775571424353876082876489746177087905336937134712102598876285703635723542909820034338906933990459130715219576031251269485592019698425533326141123630322309299176936248909003497857701986251973851830264497603390332225556259428786541621379724440086646263275819588364162110491451988888036134830288378687390736481347414103256382143650524459165085988492195042522304317238020716774488176819993842585617882745708427965451004160625246388784245097144610688473372485663393611692726563382048184669530631370534120750849926210265507940936075111921134121690559896712073343939743263873724426776997729300034220957434339742444516004384595371128776013045356044951662753862554532092718593479434969855799559373540382432471130310574936331130787820342900025366347637873699354457331360604310013763209793858892302069184226032827400387260608072962686531774612304353270029089614789866418880467356111704974603919489350803885473438380016920643835292071062821224482290516538878772033890732119366400689303164077718163595968317002904921689401945096654020493508406539794206388468936517449064163108686921960577309746213874280637456049835177288779892753956911174245648365418811622300751021232116541879672573675418423128576836037961563052685635219678751928745011440054659751298788264741109813891315587585120336403608818921653448775959238013446609935433447225472508816582538762250337507356329367116955335547046842814908481102623320343425035106417247856836911099866074234325724368480541459220075305168445208425056756409102855419907536532790891537605590457373676729007809977876307822285869172205459182276703370404220032783038923076915943596493437363287690209180577903820676718902590156430578477547592493783885309453828189956976438718216355547172742567668347624092998850409511629719667255670908344401096359818142248978473893595959143905724304395027526795570628380016857605565551343536147977481677965722542582178522055745796337440781721220547148585119325851213679020463005991801024411939062423486183010302453465281751746385098668903221362552157797739924183645967455739135709905853304840247384020082617769758302260073763365420078165252322011281734703521054380111494553457511035922813722968694305117719129899789358883227816172642945359928147008525969010801171449875005771963965945028187475950582115485031289343200758320453778772679411353613477624707588555174276481852383198093135442329773386547753147793246180858045442568100149685840217966576154741708785425656587447765474559262092124483097789274954088947499821486611119494965581316900681635417923769779752507848982518411084247037054239565669366952708068317132173759240389699421891120207228970723951320314997433617272463175439447101867458304485407272423688282811386154116026127034453966571325726706024398790294857006976245634317459923085958803461882748002492060376653849558193071869360036203993455219241301758896110845043959264852019160566777469600562774183373537122064660552174146353413136147714808846891640789482444188405353085649170071681674734273633973330409557451152447353874675415424682011358836393076075154253341357015891871428144745378469621702009545593690607254188573961071729909962366616823700936187100605249526205206725641678522972587767869408381567853939190189691414853104968779083924843588287251765182436820846762677383724512193198584195076931441413978014402958195383104384690287770943059777437023458667453793929127356612412069393236569204518448049394046930095406085962934159997151039200044565523683250167067345132164107450040572099504574289189941439630262212453461510016861932326816789862827492068227551396124204786984717724224930889564167793532227871507444638431560856023127028931162235436034643146824874134407472881214649009335654945761362615796926885024878741038013895889710256716378010796668645208494215161252428094670691545890501427556427493576143861194438938285979924872423740271038522587397805468187330002433389778088312747461753744316961218250373422095464371481688258395933481675052931381348551075291859231671555142887282232578637164016646055195779947374103225817541412818939133014858896320928869474808902288203854154160920646484253878034128143127204856864024260743514937982205000779217247273563688921128573054723677452039633803557973122733375583542650869756831744385842553584624278100875956555217483918349241709215360351831773350356294208674823256872378294413572596511189134790889117256035004880555771828054163834314359523879923711412207165375054946716049405146021805709204380422523874674388777194126997544312696290647920277040346292751610821427876134417491562865526495228749768098658217740436504925746716706680572466226497530278786930656432514048118944750239492985185013487145309749358866867073857678347591248089919130515363621650834820866675781125159235951849205161583621498255272262709983166801236367131935686377254850953244004642161438903969000368896526875210796212722217716381091045748624166426077407621203149065731102492034249922849552549935677041194157220230212319221820292872579132884771436793739785521775818144729389060415933269413544075282121861861920798916888859637749683988362198613323042674006499852185952102680965248203011649651999347288828874252727715415646476339185649546297431948180337859562588740337983574462482825798225564295771062624249772530892037855298638556131192035973511557023268065651702310645072333380542848379981769383864642415908936913938708858947733504484975595712164256947754746985271362555742080575749138371556252608512008167312283045497789984034932478168654926325941463201549503213456979613327254914741409797786244345589869186932767583933528140369526019710800178343879208285979113215111377509251412925180612976128230588218211329605848878338996794621244624688757833661816638162581778317206053930070146948509716559353124658169510674800997195190886418876161533439240599978662768177665281767232960427870770042194967507713142278138481277196101866494331472061344885205068688128856353391097175546470803173820397847609496057794618969946456967027289035849858307276034828085770264942790473431186475917315052264974057809476679049353998274816137592009296293756687531963474473010931569323839594331012521245015066071445903417036175820992471233467579532954971967073154310367968128366907158592601981677492962665004195399170089393471848745744107432933927002658897445869667966435979151867676484882506623523258349906053307855088319355966009754660586351898266004045630228515944243206321286330395764139623353862793195807205664801479535906711607391564023059857200579647459369564046398531884205607872549615218926173074553555662380482725702510061423808266776660926193938025075894175406318216752337204335066486431821546379097248288712155267528070238214312415072786198657841148111877743469265207142285306674275897620232749339692148467043851504623032029126495221905776985017135439816977667971322625916425868009210735895760422912737309017643461746653709260242455662808760768373937594010067961599507189583227987712263495831591795300140226174540607489281239302550297437104573445432368127346183219316415313815010070526414058323722070209110776989001953365700495817980933396334386566521128544391201305339668856818697564365419635713277280710229582941364084737880361754495271151439422264982509935509844394983613895722582582791689839140612391783433933341872778050913073807982672832025152036964310723163814956201249334161421329136312827713561511826201249376745051761271442462222347749791206147985825465335379188236994364438091531499370358064711083272744045299701639083683397108883673209538178975010542684647676799792537500576335605211086854897908905659009693849581819709024509070817477833627506590741314068194926321041372662120952172829006000874606838429248620600883276982783463682491288867660903102226628772120160010816698787874383460327251387884549991982322242418334387547897866152451428324366814848540814620242790740374886630376447511968800986840845259466472091011073742442810851377926431589184916515546341588587235580138212121585221313400843093811219978623330990508774693494492230302272073519419383890154569894440539851649388549638656359319704259293552884948271710080023852225893151616380952093824469001043529525325959034859386264465939382811481295493976143594137444846288630799116631198757644425540318373264066556062824531889818481817249468478196935368736133825463551196347552935870080676085744096813460268431202246658843433744375195138952843374249753925311709098035496055493525460247032155448061953668624516699813237596793328028085314061787030187469134698764395245254777509664373789372439571907026229468835295498688718647859642601852381902331662331811137079188805222637334354551815800902525690357883224200164164907141574097508180182002634090649469973045948211693679513620853506464351004282823713796835463216974232263323377285874566331343043724289316167174427153295693837051850780973508813483793851050250264789109803199073637876465308921402130995899979839305135221136459502685912033862395960435648306456469972345905775994880003998493440559044595802529049817009396538186356351275502015308168926326973837482797917168515721286006108887530906451932101134228654273428373859937242625436117600560454923910068678810974731005612404393731248017840351643226348138754592664411279298718925883316358200422920478250832112762053242252807609333254608329220318345688936850311729498501038220332995836185687219985290142130859149357137740900815619887485169642187350448220101391639491426232054130077714272923931890869067356184880285739051923035669594806615186971123219527250212898388506801658860870150279859725943187728456360670562992893240130345969311607543974993353081367851539528345737193087103237583133959001046287930090486021914762837564594636374437157128959803167738499810332999511299291352918793456433218013923298289871379756918097575157835032677811856306675427598253897203100144223549604324694418723989034730215826222755349560471800129434014906362797817830972177122203032876992541947686488666838284088777235957538647838633880299202397909002780024923569490005190696377534308154927654850922581834114678503883824829329858552020680702168347681870516597396606485738465086473161230753606637335327782963715008022388790884334067797991470055560770511370434360432204438437441703472177767586814151502215784588491881307694008587943294301484384468034836251626568437443788461802603897785235707667971119284081936460561397031296176427668143352125101429469756728452451881267957843236779915760455477998056482408728291732099049961727045220084539765414527082492185653876977540097413138677389976810387215615953835925113263392275478883016735793681939988955553815287832734454856470192914589408051258790279404243214691349937998073704534969937643544706594208139206325497033710779009960604921124859171897363258281378554570761818239334716895547715589789783352960857381963921017714694365866611013713400101569931463739749598878427789576726426416501738336355681122397378172055460852295854217347509430169101631046455219074044374260585270991577564746805215251014395951100694250554885186357221303802166763254004197502474136063099144962820234089656569576852529234662137509201257068771891128003351690444578535161314587027703694640188072794201379125725822981467666048228846390255767883546583140135874067488217290275584633403640286929884390459347660074852047381490211935606964667478988690881430262989058876532793526434944860759179105611953424406600300087974063586713772964046406306493079048462990787703574005911987540518942913947490990350223389182394067290049428706891309592320594316145134948802593422154449730958807720759696644917529234732437775950659160587005260498402291692833807550265621592675951771585578965276025982450141520166866398204674675758553299357262399224810124626303081668517656837545227729111250135550398113467597690057363247985374624069493419444593439709111899604679350491473199670570968388613431329478171014531513008005244575071486987937546015477167562449071930861372495179069786368584358612185847011397540048266809325701907019625047413939746243121692323986297179633796120505540565661358211679782702825731813333810740095912331026763989107411692898215130926210338603881712760486521697488053579551192260625623604612802590970581047077992286740472843666380373760561819346183306371043513600386441623685846862648095308705556606047838107119165041693698997781954822569028972714891635505437984342926496359779258031627652754120385060103972173159815662767656739722612224240333619778384463084636585201039333142375558307479458467314959364063607801214046068355430212552678088587305972462194545991851509041621152649921365326553276932073835760534850704379601621766073738034182456950331174243156626726318744854838126930402715779010729886837837305460065690518454010792921344382240289166514003054872346151644098967794243034826405647175278456782926983966468019834051205647894121121697218933790892246086740180671363073982217168339166195041139420365627377895488446992773229847623248967211796847385811984529541588359761849967172603707381390648102234252708986540701036858767093005571750022122431010732087285101456636987407964788753828081220691499787605043047973147911490112213611732069074211196334416413105119553404124591836277563455812337436900292959765113842805349992815666745096684996024022477752854935553200452862818203422630162458743385694899530535841196573809035375982223195614235712982621120797611885027888199757845668768385955119506936428294986397607774021495366649979085172341309154959544081945949150491167964457579827807805091381985152962835372071553195094528920797448670515163686186402150084645304465582054296058918035821212507908664247621507161027247492909945191306504196208857656613116613697729165055693267676702721171688791629501884638523847835107420954720730124848465129261354979711834209511060420506383012932095547595038515626505735655899518834549256723916462849156002731472581438272961445967356991834131950989645732719923327600902819604834018888083774204543808445646265609879745880541146034690943219453685769741989227213215905910582273222901572094725714828285286915782638888631886797459121173083033596924794816730519634080588912612767079170296141375302227162767412648290611094344058155637965783989101636083454584984715559297315057757088614744495417777779871802816374599188647968333337188198935163453930732395758166048140994344355040896618367721420596468560766529172530040514198133207914629719290070219200938177160852911243000387951220144935712180572935477822261790917054352999603866490945312225516775258904950022537963471650445557763263537187825210257335918877650034577190677728845370790297729203201108910769884774686859155978016870648098099661209123887756977795343763422645219770560193336687218193283403978484349203534194927271854795815186725814152562517178037694576860738791545391109387343744551434883503866468803130158452154287518686168177959031639277201903138842798550495341387266680146901654514320097544832663665754674441613224493842281914871621293191012786126195852024042674891290283949223027501707428728978764707203816982294227702177683955742146614462647077976605427381989713370745158355433699050190160832993522687284197145443254869956795552394419991471328946335952191983250647090421776284450385262916439051248895082691494354733780352251088233130073828480624831728745574840159406306522011804279930469001992787871995289200434411231496460135600167718467894332391176730556949233798403166434878232930490614158972038444558064087802814669626237246350265937782793426562182024273430465317737312891243781400185484924843781031949639626260221925484775094790988938983443218986206058385485877287974987787221092103878330723696700092739883877139118252661991245753954702456639552536045297571690041545521869397807800314217558297316472574264523694444709184652102978606625655067901190256851932715531174538331108345672207767434445918614247133073327595005515961940991031208443414413772458686811404149614541379121594363578685265109361087211645177171116330749535953207999686989172002166636742216442649339812307493946577127085423787713422297252446543678086893342442837280852023419755722839184257991200509325299672299147328064877616436927453497293384935925161953525228126842879176874894761176840707234562207423664127498853186967791701287373209908938832441119865045388201207420223529338401343408478566352814454713635089848745400268119404984489486899471735705679078443668638705437084899050409898354718744132019426661347120550445968083626978463457579195698039130196946378336292904238558743190053269658800504142341265642190184242210686656935154268201612873177569648181543333803597870566423636120361238516654442447106940403052483534416105308314841205969264106043734834579537707603842844890205124068990105190814872220769823286044065653560254349852201469708581688384859681847375616669646288259031891343026986995916694041920263315937410909627524877761356472198311137306387706216497903472752690205434618969100581152794499794694939878584718264549169043843203946404223593765694388967793434406149594316837574565618971766030964970793811505765897636136221330676175059107983125053436516550849264495739483428114475423272978474516808037831289775655391919511420605735790429570170905445095632343413971471439138313583801443590003246032499252902552040631665916078464704459736395964141361619407192090555757332851798306446744671194468300434927180259842690044199669581680392469447404733698361484194755223635284209216670878053531781352107030019681581773170661166777058131477710825036386351384645596964431010365064642342714179887092687842285331793927378550900539056411303555468682382386650531532157443525873808138824629393883400218628712760412980298906870030826141432446177016657865188098525048759086022310883889407618822042158058504867047747062775829079600624732651931309989073210594396007592052842173054512624200924823422879528926025055339659701441530460156345507457658417432681428469780664923684557144811051325368154251025092972303612017895961522035101385095586832151020231656391133136759540065614840130024972630000799841524204586345728927303964087834397501290407576185580241428929898020109864480349611662464429040725607065378097708905725713635172230792655140673906200107155425464141849528493478112998987987967554556261455879908910555895229646980916721718015320470260208166633810537649526660950775645285307991179593073530103870484500840722330106044593330483033403893986224745042475964504184253324099239233763749746755201014084939367876625031760981871445675197252908052640004366903371765680228188379323732529271478751706852295721106103728598396574365903042429581927645949268594347596936048173377863502366200919931681421707314051200502656200080867358434471699105045955842678416577415440960636566985673045288993446404914767640089966078592808884923414250312375507683531876947934756475078386140199519590684997127168461680436946649997450652410696200068382246343408264818604758675007207951300973909723713825871986596886892173171694278462987666110301711926011925757118599892133643057256570092939023445879816667853521749285609885827059459240250265653285507663042725244647381417215264231201557942401584255620745437395426906047733710622193344016804669755851711867307060792830100432941966271177957968581984489290659070790821264851231774323028063721465383684968760930514265994344783028509846110333521072583995355547723979351982187915206544622737711335757155168172956546407417105897987052645132880708120950200290740465518013763381232778672260042399767199414106480829846273023798416060472888763634609295579022096045317302461355597365467073916998895396224171484391787567111263883701680959002041905257635116396557916251751984246248132008506438154149917826139013164497341444951605925632830857152838734165704706319362136725696064670272180290955317513699641072976684080098012260526017824549525416695017781317789778591697446857689267691816665605819080170125715643562740722992347013514031727485283401951919835602841354309159112323574080256929013294845428933427430222634121233671571967482378909128016743491030119692366630759078624175265865410517936033419834202510087041846832775363603648830044268593536493789274148507633271344397604192287251173671129863034044445897601866742094178959550754843239612001337828241756460510101922592280688418398147389107154322383812446645076244601434875825650297748241847763185329799558738871856295378769036391410270378868836557944502301568696819343894370740433275236434419170254787117428808799284105288701815112096296958136466683752595027676702758460617365688556335146805094535897541859895818820582846474387598364329298250988070701936334358820836374568082176054184072900579039542267361127026122496201568008897063376336683142161616959729717178265678729721192211859199286524591377268180418827192223777568077150858975962046856637199076333913501473884503226687785780779855405910424528731377844891809509322306375557869898585607455649021099202538580577602905277897960288565765496943289765890101463651859189267021136983615596667642127658734862824674736243072107055598484305321633963598782028322777937942121185939587200148531756811588936404167011929624773169850074833812617735311981959858449151632783399686587601763355496861433617580606411629696168667212469371052090614737761003610008501146494481588406471276641272778502581280939037886123369600922138151319683078980393609655239024918034271112262893035492038549479133706102534575798119039705968804511645033548132613744289904814283603438782978258205709649347327961542698668255917644414226088941690739105941635878749697449562112959200309230019251458793470487772635467862301505370965354213740455655231556341367063294812497949581726091645716492386860086934745806193899734194030914671795638370463304024561575683113133408596198141889547623341748200272531392305835066805446942300987128576286035526755891075173016382163990498332797701918082215797705908514802504895799649671026251870174930337180544771997607411105091285894963556551413982957064703768565833330252653911598047222195831317439254175098915171570646727892847362499706151785124722887655084237465963395547741389881653694720830790634136101915346206434428127915629898932186070491775561250478211375876156644365589346593655342502779293523816859100213479409650692901129069205010304365079809510935777806774899885299949069834206871986687196566703602911049479761722439761984983577053853241326987936095493525044777739387304318981123010174192649441002515091308201760688985926776633270488365466418051855397199263188482397775540262975482050801252285931884400516739353139001123636521269552736260968637291350500106247180181900954429902212159688971153395722584867796558771352329159638262921203583044116147977044007477659714999197308837918243185414760787050924272175727660696141078932608974396847103166401853594789118857734576186357759857062727338540955723367578545001208178016063727156125815579939081052671981775492431657286601876293125976863871241400149752326200303652123215205391602250492825443888718159401954739977891931712943018412243458987126645971907082531525539467339777715632282549333721750107792728493613185291575555913264515059182540971918165993065857488870719900190654059213496920690821544613511004692986184072793258686066003518871222659346789657783138069825143142819000959585344486162968178412391837497702374267440891687617166561639758143780514766535290014823096429033361353768484197803794252232297898407396472080260456199462674395900974009210403722908585731206566468435348647100807936871324668258630628067239187800627614776487538225120374731225423485110697964131408292721318061030119552482670251040625239303115628798152884015116306948618659366641911270600673113349659692895964152232685639511525892213064068688279983561861417199137972116959006029656035080962758862620437469713228263272604134958204463432817958609308752010231314096065055670189646775804308048638206335523510190873867330341379982068400340305146994617182137062772945341707127125428296811564952535508250273603533791814994192912181662511999180378615881131403317174609338136553266509795653859515090733065625381164751628746341773490480648004138321727390164741167920896161617490102601264270383577169326858702544764534542131504141346105301402856047640099013700173960206533596262882836385911173665709134567546188388877214426581811842572656543026694215852091945318775584363908437871508484983946217214295120001941598510952735177945460661780971417982913393871966418689612385906054653600500784128808900316925663941792771912738317717807770421118156503315497993081640226136551482078998561538396420464807752709621942928195385721253841635055604244573952759488837508113984408472311289292868160717719696240118464253573842271126268240187375344566025238791259471274062563859922767810351566065493857223332938477230808203714065008413917982752206004989345307708120602292658369157887190723358777884441520410412488162626245820926412071985487345198057592557611764984836253167987850071636164559228392693646423400277109438164453515908453887101637792404421310227394009746191866649041276665745980329457773334382761069462345171467790835415996902947607851328402301399344385610386790102216295356121526728767958414572532759345439387301960198128276380002944131684298911868541735528009489548444528285235705407498387754816542263176394978136881391307865715137490808958463516565423477082848473318513515392218522399793496660538777298173809360831325703314935171215900132580936574736632618127375652881242630025021076469281041729066475565599975186644079225568577863113789492340850608545341551587651401242622426083222725478365574328786748145505877414481943465784176621635582934014881577395692289762805044534109472512452618754644200517215415445615665080469845230111858395730124779849689722628607617154356854388316198334346223325671191894505983317563412408857199346639174621937500511174100398333516543867598469868264701514300813117909294477000977513085497032021986586855209079412249914835679303754124465394947161083319390752224818891470551258843360808350399691769754013188664205349963521060626707197505775232700147369812744012943070410380228911095347054513165372398921229517957288339244471763895368126630507080514069056091141839779373946576290308322955802274879230850765033107429649669597628464593897539480630554375058919945740202378502041932411342227603907939698174443210379717991321884744271357162500576380703390510310203968832428654927428479623971119439750526617210650369535445874447018466681120850751958462751848257964122489631915351127731349480166176977713715257327633483221655786368420600478308837645111341715632589156021724973052535776583090548270732030319824437603927648274292178021777273085971380886115878379622214407438382776689905611185826125274380365630933917620541812086544719818678195947103404063179831056672595926402450634305943920153933398481552858873255923568259011629116050432973513221635318682631292501821394252225642588477372384529449928242404663516401682090002922517310516953999524103819347456617612641050480149658772283786542646147732549615852090094989147701601968991230926490617323148220000942134279915660353002438076789597511045775547658084397193144304382757953348317329008282157920167915027858472260948919362432173603612580299942381924764572316681403017389466681688590375631544171610401561494126146189903907731831228723883276188331431768210907176426697223626970420057557878563857453406754699734521797951737726980277781790948802266702295591091148683134378439224172797446236778659452070272993103827598955220186438044410592926129621540086980277998151962158872095891715497670822558199913808470122423620884744352774672148829003908201861252891430249133655141307769862702851474170697227928543836680993559575473542934579762796852366348210285793692177212134136754351001692518903444285327277791644136843624476236424552403473666325195510724905414348315302926699027492474089752491738952894741829651399383794074734461360932651288899621048901153593673097048011270294292276945928599684534287415670120275136775315458244458854159939887703227452117424549197139428316618730551326273117529242648210207259194809937595064373396540913284742749987909722250167944032198753555876214020186223310130270219906829862883163974530654313548489028556777396049739200458587189088051526487101199557696381027016114364016952385932210367269932168221330895179524479881720803443763811455847677983414810946699674854146668865471278558946547363119709386797620506264662481372053620365115175374494043145629454138237234048068103636174683211053467866134686811899457679980723927915805449867574828254257968056735103209086984274482186317688822377701122693478842339753189444263321219919261733192803949814040348230254600419472153183232422830658040239416558640014257318346860107032407475095454113936428208756932194342056184409798068300624255470710471798516854418051892775423507448032090125307171785586380740769725507588147589157753247110095855077690472858828386815536585846634325493508193014875690243565456147548807310199965553373536151067570813780570820661058747947033046654912959115284991300368858893452845627830264398634864528308282658236126722107080156170145474218242219443519970093164135310972406033901173830298443314732215550826993248404344755986822555305140224136317380848868955123482791770311422374465844899676721214167539238044555355500366460387673399600383468964219790784794859827150195263623671613873251637978326294227801246420353433205062185855386738805183689053293694460833923458373628223489726388675055445001483690249455116681262547270057916897600098593938790836634729714879861606553006961989157109948530099280768835101232832752302741407158473417760729548994333764033977491936884938124221146629906679173835445795718792695857389209725225205788760831084897885119097882054816454254417166430081729717431676726684740117503577476251797001569802640964662958887873051085558751113015488994646645585647103567138438096905856054247120042815958300214500423858913909039939534640975039253742385734057387421078944623802596016243238608688084763677538525334005707010155533952929522781611841652790971170724419480357324165001593016457616860611810510073308129532760309632792673530948081372585564107153068952015257932833634001471924226681785333444092371366589343431579925229130591415457941767112043253061679918667449703864436729959970108788210722277634088505645165365512039166725142435644079480809788315923743582888910297984849857825387298872436719565607190020194919487999132271917329754555514921252021528983276498748933039267910632961900163132345935909987535478509414580738370622115759050926398706614684174435671742267082342248773056179176513896005011534327126808202523050756112913131931611690014980844548556644027972425358776473382572564041633225625710232004779128183287838259081221138726074273347818588440903980276515827666937682243011669028320795885851922137459702589047071956109380234323896388692053432305628811044937978532649727401261982876554043690566470335146348348842797744933152573450674098113215538331206239630881311536044100958902096589895623421779379045214687387937050682153037325413655374270990759802026794786761320671763859553043026469054331168704556413371145521091768041155488572156830544045950655248950420904761957713239703734500764571166127841846433577943036992003958016820905287332325563759260599892366455278802941804328245023262012199356734852745379833025172106206379605913261888608685685277412716612488937699724124225563296193629554043314985504633726862899218290111910467093682908937158660056015116632362131028709556138340833406664113822379956575628751882499482993265281931743398054317458560391190835218613987448758737051731083939534665565411435423090390202847048270972513630725730503201209866105851289635251455028114423453737046436887608288905887410347117358977154018260684976953904152186671695446907254472145969508695430952941837627774548139180031727986428983616682344682947548398975200574670583057209916545588310295508087948161604597918704932731766958385980639150569313572136845647427215213042906784626060758711684088414193916529816563953292390087521806635130865901450886869473178637514984492406653043587160270796508178227123898456426277926486806079264037674878409091545310317882856483718446614726588307390519626706766522480531305434112355423247080780753243675547641187469155380912398725320677859297463545737726160539071550061193507750243115166353187272190542928495733116874913508246261094925223876365857454692841318836226543213255986823408951414222711840548948115869730383715532527598145946804754997467188335483900224393545183232841049851401124756604761263360659331693030924862003226378263605597675113623494128318173199970853291635449738407937492555277542062518501217808537513731104949875120553541571735753632378879743589526246338754111321531646227630859229614159390869345803172659801154091916178986413564896478379374355719952755671940046559695508207213034009014646266037385363504230171221389934529566494481396702789730975634800829827731964437373109293178947661265516549919727285787900624760614351730339268006664558750565799901493248580074086794967485209466296804153326444907243576520418755336417755761768616586760303069249489732406153113270332639358702408087685634659902231471543505051681378349764664022009025151775912121894751980170453111803651193062974662034199959155509065079256728684337739591735768859141958793302563097832361343646399816292471429386742846979315520664521763478257435214858196711816130808608638126870881727435094541233064286308684613896302708573303624376265184383876582078106469720585651322350202465845635184897565110993095576964800244220461627014382915290996741699527596596024284695592620477935408967337555248204792569079853442067503680006920552285571391678978789866476699020337210656013968433544525612994116117821195977706206059265868107945103123537641042883618691819309766977297108159277604533789194048413986010460741373273345348626362713579984440714531413173107116259369193757365407916936689040596238319034562122351058836668367825258079704326666076548478129507602593370926507963760541653684403152485884554350916422934929910281243863393233100792836074693171682074376514578601536155439383075058954507364727632498378492805191747449803083375888431341710496343678410903725071255125731652823136812492668469058865398479244005780066101933458488518247454740626859534892819905179574584663244687389999572749517516958543047466734629329506330320415699389967278589676935852475668758678832898270231310863255638296183360231048530575825512362976247224588022383226499231853852229193674043391483249049271937394078798841715227805198966451157417468211883333584885929245317336028041855345984137943684116218320242268829785552846638158525730226126843414184785412963627724975670533909301854978005718083434768595897836269390754487203998776079757608951259800481854192843219568912504561119586938059117337605455312476081359816997176507479114314958223536000988378034961431469754779262541673432190163455927856166270453183030353142444906443949475207284688471721424969328905009261000526349466809482627652836178837621868604975634500795193953257947870253563306381272623503271708984056358584741977352409045033117020415750993704640529091993160554172388629936821254812689278590851071481904241217986787682502498124233889821424838312861345718127664374221329986012638935244738949537024696079479157113168743955675878703013288693556564707475768973172273469474952059318662515033644253050884376002080883725768295502380406354584026390878086419009963470097179047976493496628308097964356038676370927683305314593111299336464258248744245555534519342433074595262870662712663391891977710339060526821682074463567618730259747058589194182879847510755819978081472637174812728861596497306634310516890541397961021761786267115781798423167449467279083409233688634022683021358751224231878484215409011164542881741406942677098262763819005517844819432268567543402074738156852983663833097057567571070009894227619927188175366167867238938443670437711574823435149997082825023930641157979136102907473006664164404470408207197793725774380606912771398359051976806866475607826223566492757287043073430437825335274808158454736287215776492506064643121570709830853890125435660377609991233140464329766982698092340377097898904361449842052040131056945233508490592263471053173200249150221620084195006480580590050971089116540853627045692114701906654280620533596025634670124607163569083919440829941018353842732827081604347733788797680970127445895406806359973449583816926359933648984223985318349801704504486506682922227765939551116953894203537087606506367529277036811902611597312878502595103180094826808066295699697364097173292480966717798748134860319293033255359768118627442215656160569096227038166817875163900410133504007473849744108566628082356061641314534790756129159848593198637006561284523817445495899399480866908125911994954199706398357166503920399261470668884561876467117266341887801959571321558463665957689201609336745115385284352249299141816608845449822412900388051941784431986546718372106319191093670623403388957155632830284085606570536954008801581462827179928325692777534177194516927963801125924481633109915723391255044480678802970119725128375412840756544092151523313247746345749672285851201903242080606904556218582450943701967719096336190832363867815920704822859164766620947722951794871171627981027415349514253068761063711002246046795877132223796049904151973757229152505904860197933313668357752142348604208523735023433529521158897839607833822983567754846929812640199685309497074861368524373830286805791800807717102612924156536363200165535586102626421363011872407927917575607166757756389182989508321363467992827054544849097423658858747511664130294613130335040631595248287856632052780241252701783247461773752816048627746755920174566967046283316303190145502889240596928296308648760419004025282284283992978834264456073006330690426744366293149807879119871952091028961880774484939933484293315243985397279249789454574572128950283684022752369211571525440119657157782744874830463276551451619454239052683293839649114518010433041727062359651427337056448856796504281811777295562012265023774579062480499813950617191863048725581809595845035407014823305165043642987065881060380311673810619964218026171561203392363894474258935929058528552359413374582193748711018446836395636695151078599868247482462515476065147417866169669024324075947481731559234364922206535103780257716059635957670946147198654467854051444570111729605366018793721784482446143031849097279423601933058475947401863446122910640208332457947244400262302701956975501818765004468039484859778891492781291339232104598719346143780001455813714756111327873857573381425667583165846689673470545265559079963855957379609705048196933792352124395992541683094578505318953313731446615791509293121764061293280356491306390137797731659355088265561245499630314665994514122698902454104877960759322245991649547453979530738320343028812809086058760094635031410347490496965851107479772951128599303659087805544824467772290514474594547203466050453202038499066932091688894926292341723811228015103930821560153573654401092011800856967644887407211600284192755369938451638469116801871299380461473480694855393566105591268432014434983837497323692378857281688423744955481689783942881580185876783711752904825167283177300556632318486502016584396534135204582304097042828454443302713744773388789993935317536795684855263401955632481508682392317571401476920882036477500726501722919688901247961385915369355652663508552258639462376009130651907194749159976528112463191065592886455942967557669615743123677385803291161007647278014845091369937947626801689516587811613401282752289515280407240697766573621873772849580529704336895138187718336471839621602024334638846042453500402475121455343643119158637302413846856893848232407065200673996229413358637681428490899089564435760814484029298319640475843742505660169863967037156056162065650763922344206885586688841587314629586107366601524974089028267292441826384035392203316200917096332424474377865256678296360906982931367760749720396122009492386938854946412725805240369650459786468652759429510193009400454544654735911054948477274084416428464574053643902846489838816867626096667893494227503040068742877890569631703917150253525744685475457848654676371780578122924591282340952981989126885859447801130965003392820428146850975883403092251137319570171655445012444323026142841633010963446806874918866460908007704458809125207523236476754797342852005992679368451617444689407975530456773011770364930391394214945391778715146188623249096540022872128569136257456475746222949862555950798650010417489383248210752616911655372628750399967854482799107710789360476915591010165087201214685674279783102303833974874277269500924367322837477027475822433977177382254065539413495800861458162085597038859579912718154703679245819215828543098428854447587809233900896313906221305956892367470902233470653259291080723662496693052697786727814328390950490344454579676627577747233825921165504566296035170434960639097436486778460647310016523909992160101492290071612059952626594440900969989497489802923120057504347709596285483279517992936230497680207990228065586158016339422911648970306390336740012277361196432649143830687069762214155544567748155762649999095243750236815922510287785396544862883119262605907336023411014658266194306574773671313123314399875212665933264579685571689607124236149075488367723624413691989088548226160066660557572853832036517650111681806907179659910863895858843570305618823768482899757065730999801025612817266933021877085903447582175508606563543065297115204626825679635083580447820056956271657634841398805211836437264919492911571448155624220345175733650162335046770665976084582937474328674803949177050536017401422318738341312972468973358494479418498952567640495610815046365629540042332484244885743659769145270597844426881558251873180793155552373812593132360361665871825751445896286974958153020758949496059047328147562826363908106512970984564429824691969907616326426185440953689589076919243346453765274745359042754248114013226066926985967061414555103194683510190330496007490275887760239754787302177201926821453376790348729088019450656099408010315042947220090999343401526529744038608519519797273952109315971107573392564212218562679141439179481724672199136272234012157264588776673660804624839662471079787772276672135172370935521247912416633283079312251130047464186115706168767755000729997468599066465855443804785187374802880066036497876097037796700679162694404616457495208887879866686529584084149475250586447618141356035150721159271549541407221181892919141026477619298011818348946667083327640285921980497961644300437899510386962128366599578810242546378182813761835665435366814324125177501987722656543511781675580895937170548946730399506278721115521064229348961000275262483356669572465574996675632667024257478286383041867452497013299883214741504683426945465174768792614520779560540762419504149438471208118453125421988963994690155665342625802613031353261626471982748463353277001006227452788563632334216166365375206743988092800821403490800501251293874826340645266750474738832558348697307109275664278505977560451215229028645895535613069845948002307626232884788171324223479879438827758679393731240322956482165143106329445986627043421428094345387152877380406436366990055242475924019314233103536281298496720231764134797277399113249237127135260713701538573867488273851914236318937906831611651476092061408973727142239940810096876101965346233829506406844107850901760939926720911706620562147742496571009166407577108411903737296853221556905332673152828977039910547958348964710458581264816685049056699712747018567595583946378277586989384011519606160886521131951050617064394490400164920972001882284802267605377392963672747310106933600066423876894090972661825636399647135111766601768634010197296472044233882617477300536359758506135186815061092766051524870283141329234811883929636574366071422325191335254021138569587472960754163559193054502341679680687715977497477842746372078842011505898418144991911480947168460649965528373216116692283961390121501101098951736312982134495998061130664510557502900380923118533692863598402323254398975158973533827089001987970572572241719140980710936130797517359114226366755553771190613982946866238808072094314904066702964113827411492795008409826683670387627016358864426666843848695986397138318690832680495579821396926563969542128570366231719782327622488193907239355407893341728216261581372583972792322453912254669217382483965576803343502802304597145803691547623240016148829001158427044049903190638376957210805068751356712113913817922757043921757902013480233209023228199779775636558175548456037779873423520721051643897077131073981184357068943419249794065862770788731411991727361901353469465880834226846546898186625065131562749656091712492675986032385992856263561489940360870447967590767152455691665826833838320885027487728489374739183325161554430735608280616272385152652928231192711331327664313877873711724827580578072298644656292283818152433919129032395995136281875799550757802870683445392728618525414265137955033939083004286333128714850400177597655510445608564605999838173113585692769336499209057756436754475623263703945457050627316978025069130970428200809740404451042771908486141096583740263121994248472262155378437593323340701107836888251341072631473005099787129752917746819801695531100171335034309640425469329187069872399266244555519578274190927249510343583952918068529321421177593547006795380228694290850809697873171598971966374639662818381101009817340909418107814826196492837390763284503305300966636040960609407256093233213855419650300444013841438500737064272367291687034647463967875506592927409612460074162208371617135398657459910754685947353815997282824278053492637078075137940519936996792856202747305167129521462323976690100613342109487267013601998063232317659916025438614372183461910962696988925628442324873905122049024741029124411158947201777145960725124166403164792951359543506818990590574433570953399279854858972175181662328181048919592368991190423101318496942910479121348135153155205254548281306705526125816875331047845465178760819995885028764908467242764727027695667358951532341856405234607069503288639286733752608107127865901911070726160327788497453351198719258642581318291437333782770044640850738456334857711250635057351522741008422698914305744352789369118941350430617277186837833130490190043382065342587656536854171560783566623595770458517940382028405958328844565681141472549129420492987670665518816250147863314332528908304202099929876230582232087047710296233301876515545039415282727514251990653000892381751278865766314179811882073437954417980581534877291452989101887467440551499742333607541962773566559429702941884209187110458323884901582862812316737697505096326900110246033217749271524879122802480853081134340725873130310702061147422279639932102999235993256780654014251187282366030480506572633312145448400496004384743186708530170802161242559311421932986656721917043786443667428181752295205957301424563870820447945447610249867270122113158619908900162657850222445949933090141079032279419524025496257381386965494322249771789037631980605566613783148331075708505483123633285041826551895063150052252233820917791629870936759932022793627023841915155010216635720606755428063915678197454099173472316700129023231230187755362511332723458134543040826909995918182529657377238742436777999326048365048990003863297588461803009682440380824781015039171042748639455961137948238603203046266510650817406007360411568728955222065912909939963193333828977082909852423276262406901434731087652536426736359341268528326694741981859110902244077831674212103185878778726161102199262401643311957776732338490012817633219955622759535207962249669351662149757232852343284724437129924326678467423023206559040757779649541689161682314843109488679014498632309953826417621849292950528178987285223867059907290747172191637187732437056269237146709505060424184648592028745513721988463111183900882721055949623848429231921017615340327588202809932003936583371235903603158756033977814313111702907170968775561546237729291799837661169842696057595807519726654561707390517526202058669850502210496176414629383875307877751658832156457447841440831488691479530355639163341138324370686141781542815636510080343578253690434907029855943087008845026206413907315659663443546074682413943388386813852241447964439442940972237578050523162492393770363318549556211473127953383975096812491762287809290604826097179747427378796661891345892507661334985720895976020923444403460029582683867209874090669354907678479323003116756963110015861084244370887839319558627693450490263785046728955803702963069764270873463274178696917104251131344353598659475501418836516485522675206238860382566808971727147893260694275087172241043318619838842686571022787975677257998960513135476184787169329103047393273509907259044743969087615893446947002136987564490535402995844054244845712273132369187861441801064350524201515287145481417780022593175401895622801392225041386839572570794742433632205352490897041712031643432297989753522620073354212307285327860177462699904673503203400608363737958600455858453427290801665921411243313096131130655227779802967357755113908634834351280102918731224444010608009213157971277122051744969735866603636687903484526392923865142314578685373325475400596627994557473390846277233843100958780730808128642318234683362429352262507730408158797002437549420583811568663026001034908858719021825129103581693528843134662355008924981933591443629630040816893858508307476555812058862605115899860426135410298010096283076479797019919342839582300485525741614442412607800304065621013866110032580831107964274396475521042334322995618208536632649534406479256309149671788909767056332053536467461279660332538793072815382368630992145148043118218297528360211474073740073531453821028213213990538733819252150256552215287569020807552318380500475191336902755748645542907548771135697921948050097938705525558422249128370062233141886570122775673257195106407227720924259142543265492441342263873416686892837323955369214533155661145292058324268790498839252627607976016855317264911317552449433606531669156941758277657224859296388272094584195937029918757478275212673362574049457509971982398033119654460843516979213049103918957010827813711685568146748854106461822082309359931598528589833909484603289433715055974323229677380351178784474287240182858328513658887828739157668795143264902629062532015436558044080028920668129591658809437797241296748964068262207507924555656992118047890172783760975996175551403928998868008861091971230955350988355792183766728773343291468745949265934950218346665519819411672069832327345977937076956064616580573183883613101775192076165250219091741765878720089591584540213395874420946773858001324239224718116927932190047456904091598104484389806276023501976892049939882360664125154704813923805062323721338193267371775152646066122327271346500155944043123535229662709520800182880420463071836612011741755233125489869243647727931730269978354486017355918377381051522916054003011296364630395243950052677110392612779559709340314686458853960143496479273798333369366233680516012875036753667878990617090656191027155862942033368136059496970128180410285009904969153852325921145138147078353302924783173739213084294795038552279016918280076495921333834634021858822689425388237956015591084355701502458498399343474645554923551479712924978432057797903665368578225243355074061943488566573132668663196186591170955190121612346043116238067749109978820997142223737689386215024080804390593841854438186248150222079601254575533721692961042339932270274469693215812360669893351487987118054913420865073871797518669768818090221700107260094022630019054630450893862021213479661774858735506599634675239691364892882700000059121748071889398998372955964828604936721623831154689370388732053969677436666357928465843858600904225892041471395270590262171208326959201769814674864882331864859414847017841955738859459638977137833323309975812541805562963660513289977873976964300973527705286241503677158467634780821366058193307459897893495784097668698670125039627764696473412342314617831273583763924841294234418032632118662380171573102606132954446784477989339802408324590873554551238462006974190949157115355756852069149945688888115569417123400629227984443232639508250025942538835050037060639380033014287422343712535855348781452680550142044487698320893541164760973460084124066715563543351278965831898193886415836495988352482393530416208037360662262842327679318678560922805495789691425522683727231631482816419340401686856525684413116509940411541575896568044813945645877010189628491020897587500068335855606167432188241771975467350219195921447465185409653195635297346821607849603851492053906958923576667297740744548383896329155200998673908136645910866486886416209268955342776688316303627319619932836727867223015831068501436712130241212217580346488336336635460267389605769725818807561315733454747424588127565209030829851269615261630333203042290289648793418685945594686286804202024209355471818667294269735120604904306218229996233575704983490650342697844684042776416900379838432410435595597143810568661529927179664490934800973655414309556895216158798795631725831814926784737606342111857673867995377835325645849167893491564207300708401383193374034505556112355691664767353357668985973674758935095421682031752366440974569452414891700319174905385908007251926120522681521708887429678090786590754446148928324777686329673941577007792959126070611537011243761372478062636172049695448318960380491818073374597951624272005931958120928020400409812500675055382598157796077709376150591108502085380395552517452678678307179740577717768344165124209535319615176445443135281134275510690081194057425296715429497405875232647253830644722464299969171431454960054978154672055525423765807458725698329929567444729116413014183920957856507933862272807263952038385491641300318315587686788803249072480178561399805073699398035189350715151492690635922368127862452034251300306664568372554611269021363750227916667520703351663461524376902759918559518429178116773183223515196311238918465482348294568959236042331609747764155067702485709202041064148641032813505310711981935854214165547532917800773387312242303258380554598842301921835348500904935908507015018185254270036721564065737543178301829457297748254932369319977931205085501356562621985817880042478246541262404114212837627437504710049070361373530714876430318496264560277804112799293976637989698833646629793638260152487353462146299021674317893362902879303607743521317362474178514980291539566756583968562364126952869353313407636360898009963094740003971677057376232337733804169239511433213401198097676381985550825463792058894437606150454238387933701794149981752488435262233102413783367205957027191025731355562222337411450064274166583356343830125966929365094689885037946260290907192746917439185320431781137400430494440908000144946076899478726464688326759985134484435637269452848932224831530565492808027487650116366887223377276566179357130687409873876263881926475245315573986105487584700053264431548482516898342628537454497023197202639585872220989085101624427994244284226382176200952117280218265148339687371755479177904173854961977632575809950138395559338222702669435089351438282381653497929772329521927757452034700694337089994911428077495518209043238197229839731680650199040723294030082826311740237442395272767155903451715191983712905152209213737424227751492087948162221106174516318668244483321808751945710185164475044397426864419344622375462913055681014110301746101555256562647258328966975572660752668666890133163095700994594180193178937386945032395262209059074678876531349264896576723260889854583361898637145395690742645245410611557061040420410435894882999020425371690196112207026948135602340174465749712555498198324676561250506232878097780445540901404414945467028231107079441038681498244466546486296481860812013055258232001724593700262715956480712789955677873094852821266775752202292571267284795514184010211547440207957143353873104523454371111214336968502301330856841655165593435222213028641796634766768637670790859572080707126062515834610498680197838095661836083824076995951098594654797169898156375361714059474745029904588067848855782742437876653597357172134805920331010888792430556642954584562178126167131160268998287010386832512277921564612968222540207854190435648053811713864656230482105218047540489659714343544851255160305588920559526737207165234867259532506219403346126783235997732434878518263287021853323208461260298531787428021363128446733205853601548588956649288554558708027799958326617142228207199956780849181617522106181808288307782474387310128157546298521530648600272279069423371086485679990757147116203451318365842510971725640917179706156509554353539111019188322834547227553960317365828723913303372467575847441805060661379817180526781334115123484846533325750473990925008841005021322480028165960833177603470373501427843458117552579433337530013473801545954400135601063634632198708791876043402314462743112721592708087000633385182248725621032707048131523950708727527427439448499476221719615737721974172188063879989611719491318364366165603781104453000240438514236421814921955165829730147621420109663553994859609427111008230952985422543070510705823189664757894826248366865611599865022770646176487510294063899768323059105250379372912688133672165247389012406736365650848815432109218044762025039446190940773876697901938616755761361597623134769177988876082302106951836377287977642243939468005469277326895224504067156860688938082990836783868381737937524838545341433806710916098648357343754108618258554861665053402182260374513650412371637742817059015026935569391143402325785441017429341962961071098134012038084218998659572015194686601622303895117128140289313534792323616853625883047348558468887424641938702874460732168694477149578543493452950902242566524863839067965846209394680840323739074348465598873825523267777344651704469807009733399945100159630042943821971070269187882657562573913282346609950519873416926705110085113796072846807939386408756831260966911667504902024643583793162320524076909707637157810108479118271925349117606127905410790795289719462199756873353648778271827317460058268557392412667766204600571763520737120469651157009414489094583506587845997982935732572140888591573029003977834032759160052000934101881078425347544490285653612377602775067416716648189615042440553039246329370955994011559357435202089233852004740534644637566223085438793346177115958355706110343174481898837886052467410886986352631935392129782271648863008119320830980963714674912561016934929716889935001932294810921115357437710585684426841314556657761298567049398629051804304678248093766123443364500427510095790657275563092864872190915612638292625058950968549914089204538665992585729116040707986756164899054408508154628552044389923840942174066467357175828682643362170216186626258335446197949449120885975543590687880514677434428135672460602629359416368608455452358668036807760678877875394865779157644261458615121121255725874299990827412430652387839387971172741054029671672959022557033711509957093453640312392888905013682084359814215134656523315662713036784030722078708001885236662076091666616925076683447649103459399102743757899008731711017614869325109977578725208958905257726250232016927491989756437835330867196969773195847208356108020658807625954730906352946824731967712648353043510680671243175916855316533442567995236987747404625833982099374318186357729024759404627084177000616024339208727630929481653992329474996432646876948193943776124005351135101516782315261939369834733316652518500262482952891653584202008005608175004327446142045749906086492740963890491438911020367545254861378115138711568718698371576934158245055549252075294163058389452653661057349905912223365181093220517974101626447133823354022670563238024843667069128058616614445286612799372515448170959215670212905823867788488864944163061175583646186302815424379830130942475628750170277943353551003916562393806183036690978979400365744563720917666116431826455664755219114670157812254791032656591208346368665874487697255535728828497828453464291998482012715777665241668506111897494139739395972402055507004854476981883672732688994547515459235390658226816465344232254364591393715573551680933106338378405500345365251370517328991017276923382428905157808208997754170682425920552538366570365909830309264531261880517165794354920602682112782877229137292616256027856310542314998849577125681431815885968510811282324056120257299497709118674040913769630662706406383302129203576893535720194237358415922747181091032291393133705577628684330359093800000724860742663648172005232018787179359312599089990221185899378541271250686326613961104570193765451553464996387043029984049351969672523673331542883201599913430231987283124949104146809825836192201540933902745066248727715443654949347725890477673726836479286717040205182898125004654111652668493270478848446207056503117471235973135586589562687391232148049967724667708532721751910657937863701005500488359887528587237236850664532218712409478159066147310913527118347014111100856708304477061304377601887142456223905801014478656530111345970562191163213822060292085184698059250922342711531729157858830017749964226505311301454783163583528568836963110226285073078129881249780868210615514187164662479064880533554146698383116602566558529277300923875488535496097905239234246701899948235693108640472775476514675268163367770485712680053508726054315008309974318452305375395432283275400858520216846588238505788610603201569101829575285051509674713874530832901386416264062465318803695317676215434973820507559624697642632954023661598183412028657075261442315994443927209053492528124573974105321958992408907387265435264430175096850957691919173295955752784667094386407664789006228900343107897335246128852105969650237541722367520143737012221433617700863606262236417407440800858514514121107619662001550017802713796644523854609605521782664568123759005536275698890655357919108367274980875375233383454074547320850039438688859247852241761354103695940141042212979092205190790368873769135731485599931180063328999937512425202681345284720088913580673404228253138092580890643096173435364976418062485154141594796072406132792523011440135510743134374966638680925670399172353767726470578124039370798933524061211116339450405288556317781667301299207269087510033133549908165686931387462306750972247316835261383166153151334934536445520506089439694709670865265404624908082465821145335430925158815498431058518682460198078684759620861585763102218236497520822136632200226329291549141776735269135835448517346130967733043303388717217309409368969346937464398032548909520754966994809838175678906380158546111539824855533022378558182975670133764960312008423666923550568197938553803942804107550259562644826149591859820547794609137193820355260463281467780585067264443296345986412396878842434939043697883244871441383063222534637307448095239884238287790417663720452993419777770960076560145824169910412194967749510782267274273268226410821885795041550135473622628424468786571213786683009879904519100008307823555922894339300057692927718132145716888908102981035989186937824822215687742055036401279876393429730607818841348754927265331030572492149957848689759762842537122656950317191685390614671936482762541437192200186787932297839604137128952927132255320142666401847195429792713969154308467956654739771372148148644102240405843749319977082097012554141867107694092129411419571694473891087843232937570213478056055924987963840637998356926042000335492369626304252262867061802051632844620620483600846026640025927699734888501801350969774660765414062140921313717278620864544206875064589867016869810561682511771392451214791519929658994649354441086073581888861551462111002662656775107435021634631371510002984826202567118420071165711405692345962576919701685044044165226541992053903457464876088140066069577931985758077745853950105921121421286836033793128411130573975145106586577881666745127447842606030599150060181613339870098736557378814114126727544295691114542812421770638483821299685055189091924829741238685696819528540438903254220996666916055974551785909527031388692316394372840082841044977799605252553471362271427104283773323849831248726871504357921248793593317344711678750527876418145772522388469392809094911449569887538107509396097241048870304283697090606251978000062428886059965837840809893094669429690478977043004870825052572642898075900065943676054362253889301035865637097829716589688259524062208468704765586488395920416341126922759605198242217589381977516486448620809181084073683536662340567317338527152788304624495812428076634179323257156731357228860175431251418327557382921900290307287076860400036925238459648684469263378595555510369558179433584977159239210081706584614058296514464823353461424927547194385711324953410551713879308990852856780804689805643136612933361077017216510522531490690744608975021223793919628550423809300648236817067380892519313724126701572833026692666153478151970985930981221341500636272962266013026038545491231424876795446105680811971481628401825096420331857562158364802231158266798042694756701777190366073449571598987194043512793912232780957858436579519821414089572012374056996382797435743829276916197705794812672723728046141969198726508326057939136652281076315895076508246826473930537398935926820187363492445236926092878770663160433763930254490371125163909856826388441049256695117831329356685962722223199354811709877272470136087258859252767901287996081679239678587761155367851610874980240052899691522167207120255334439229295383145761108485879341910844734950301813273895075667367593559153508639254803980446605706199231919504054958249299868757233389263978987408020385062860949960953809962143732447070822187868225181008391212682545087836302850317546254650839532134744317475968612906676201053632781559030851189626174242988254006721002882499663806920539149618074666923921385007676764713441351543068879088101030576886344838346137364473840091509698112294398995044497055738453389621507182132033141501528836512621026699353185173612313002043510413149713112333697975996417671921625182918475744154139312897757483705788203678292373525541413414881413639635011598388505979165993521196278925098201304401931950675959384676549103759433715751254926254181783783032792943107833717081619556615387387234219168540776340659781444959803413544298623836091560528803334998304611868097076685105877458705417423022550176630710360027155766191391699943735873084737708233095260633864139340934603878701387571868955033178802254935235636541649413071463221953845590505308241290577381994167280858491657627708455246427914123434999486653162130528202778795061294921037135582311836443535461509257627656240997511024179459552165697832524917607426196904904052708551276313677750226684008123095153554976551468663531006846627562000861144118810441233966264366628626564228140123309389359060082179220342328119023939428241669332564976621570430974430682444418255544406746622563135815300091741035404751960704354644058591197012772881700862018897831446309387915134937585739763298123390751445926573208129180057968308183372713240483116268293631021121473320890320070682210668540749180677411318356331525021591452593872832195893605433061391095607749983579326170655975629880860453061460113372174557905023665359419368004623296054646709804375475254734861210660774226807766130006303512324277977361601738823394278703056812427781990605319279631092680517486206833513469149776054403916974457255562421587632446357194168626888070920936685345011124974087390126071868185397181525382321535783440009257954633049922185716120404192444092906617015924236013463341577764790802197855406326631576128169963414313139938928298256838393913736236071019204470299729373734448017705455403533353119447440909089215080063632701864645942500307925297248143107281577713478832940790878600058160478777384486323430204146058941568891426370560462650905963874764836211502886645183854572127770367608413486277101469233352580293130094549838799277645892153050263656515313489082546810685204956968795981591128182779995710829682306462643125409729142592807664535745014383763992119142002306701237248871447793092889223635487417182585582089282816763193547925060380498016701957150648179754927934279595515113857649099812862732052531198097545608977701813527506837589796482134651232282602472883112108285752137110096529409875179331386861033547723202413795347886843493503001497713425741274629418854115920193849257648871698721576398922325688913829792388427277020150481804172023043169140040429952653138375207990111225828474688555886967025558267348098034693185604485635830206914616313641448792784095967811118172829692939988079625601699266352977292921488081816999795718688662627739172735137477017306490784761794657446930599277335087471598343695398149328316334979423633959631468188068187256569637817861047836922993381517168952210766208552181212567612143571918303088775817390019598928404301954917564643319442052605766312628780424133570982508847927167830216577022144537177807416647462125871220766007633820237206884957666022547929700996608697554391229875721477823231820726058464742472698536301787771024981216615600486813639593606100671528921174107129628196833447697838786543781969736236596008066920788962840869765268557965708883196268320304037428109820522139471798373619525631697415820352042599809937489680018116166254986025777958227598223069570655790828194711401371943884476292454510050960594794431816437016847149220219830198909721919422605874643577090940849708711949550388852730340692585975289970790158329094373587100474240666464663584351538348311246072684052210131306052970750876711342982829740621881249301396200643679050815105350836198771407659338620439587610138714251742108051572397281802540859252143712568834357222846218537921677645567579035090437155850932769620380924069186072769640199537217478691829234359462772279544195217437752404083474680106260762820625770439671939210494262493317316008570123060231885380320659355845926877917995709529550695547232057814528829705299567792423196796186967839259548114800442203001063503045097095711494328773397606367372236783093105682472038479321223687668985484873898621194989834893365318760683712995027058446361941735141640751363258284649647960175246614316775391500859625803544552197140370693358256027082849536327124862317466420598919108025125183305278841138126895142748084017419323260993327940389373123332337903563787546435619465413575201769945895701454576418447194049585311741471773195739780323210057763055533414871424721669381669110202296583158308453223902526203199253535013585203280739289743685749910279035088850486728204954805287895908197412361069606368099926860065879597968741415584872467516956605115704657565706394266660657511729065799639898930425749222183871173888505525375401726137809871400356174299331477442676681056649390826422227571123364111148164815438295477000087465071725235734748069988489692234045235956973118818792895421175632517605234343063665209056218435251707661704470611967139442657733563086332845961975183586375311386793835189541907626612821647659330388590249019034058711228559286540184202523713040450978312124112662989933058663337122570281068888712887327942217140639456408464583971107459940222588607993964881689522587985374434292976217433679958150958695779193557968982540082591839829012668247868051076387134863819683361810889972714135046128604033509576113011261241408956652016331223010472660109625712018813399788782206581805867438059455385239932223571362289833169795214446853099923270786903631954091068029067529442957124085280615804636831789559350889814286332004309639114205732365173241878737109162068822435169591388348531628953911638015347009861836344224752186002401405518546902310543160662395394981906758469878344340223184916584197474496218046575787433754730925355952762357824571305143706627483609508363044186683253688830647896318738240238896492221725313737602304971102526196547336041237879729844256511146005725405941827092465158724657284881608282405428376627896539972324139282333831863285507418513653011790164085825619588214950553370978674831429711342899108467542781806344582882458880349199615096734112138328401864685123827122218130423221599976074285496849384954282902282094256528042300976429721477372271175627796880023469169657451231984594933389367938027269759913242391169844095908854737707249828750413324332497212970506059756524770041508692960743470803772508787115287314513635304060950315756524098987078038023632561589633451241621496738571992696663974321989367813425237187851095317089774388866586526908287439238825575698840439619715628237909685810804024336568973663783210099128132053157764045462269562945814774186433692458145814572965838292986190849189309223499124374636646551302037973093350692325767044418231424716663489633341569639663946021966633362704807302441176140825600329551522056501134401830994074023360752711815679352956907405782805013652345038065542628039503095407322161029853359012448170722820480004723422299578629530090240669499080202427523999166336366394070062531114417314990319690555573731924073639729758866743161861626055195069581777659424723995661735580808550681896461048532873104094887857949897312287459709670911727977516664228071005376210394994474838715319856996587876747354940542408407639319984571309289440196138805312621550199537017088576004872015066469687721083786900581280953087714474277367585643157150954000131168983134447646389479371611085413265951259190643061438449421315729821096969989177147650518036071644278069486055121022689295056553581591684307365233275755346834099002355475995274992714807789864887699415746481047825963537405872012155342792583981351181466234498752739523630329578234195024905445854946914674494663845385225349084103616080126220742289077301473927683157181910604613191874320916344162456677485605914144572664715015265819121554879098548502406127801686855138274304776101431000881054640903065208911053379023085776266790083555656211610461526029124493710473401087761984297744216437426966008550330234728990415557578215315626231308031613755192599175349929205354657106414459763869782406138760047978536075612885862131221052219621955890670005919636779742793105185160584844730811198491682707983616248082992860525170809365096510345169497918909191346920223514800862310297122345500723386169335744132106426489851439698664344475837033633879974137313236271218215566686940221992275329721110219426289283357145014757318586611430150785190074591392141570469393247375290359646577462661914569575625875899814540107233819887530132448431145831243670269360556262887171427659249249577038493769523504627302462798239485431532427372422468794368594370014630521188543158058481654111618687748243092283927761150260837146691058503480232252178386442849197880750839729588702951765191142288540131139586820499394104325784185849032441856129554696094040909727596569545573843573324221362349949240711769722899881206960219461357675539378545715742731762703254193422672357645830849147764782476816807932592116165557354493143340959963763630165799770445462369678605210284466423116776986385747267026968806408415370168903682938213705838565207996097956839792120120047395737028284767172951931091870372844934356178254830820563849409821369858514243341573676635328714051257441082525350692022425679649595265068022855775416081184025962154837603972759653678158758741138519139986587101456885378850280821434136547446249766377628085943945250308794518161292229943818819582187961780246574202364881018014815924957377276532340269579488425072825649976231707201248501768077539420661432444244352394957847196914421001740441586897376807701631096489741607509464658193382507517633884454310473092768149046904548264490360244705198862149514993978939972501924246383607819670078824606366175787216609040959805464759074891861348581555883219764110484377336609675215078590361792150594550906331776067829064279037129414770012608453267473737577345122692529248892249665144318322970212134854557929687463106400672713870121155793593090621311329704033945952981278514446623176698185526299690464493438778356112324503193557826144263227153886527495761548922893255110768104191731190412324396005316185336566594438547952814119377292452413308534118782281719845010238411125294248213820426451538144779381899043369298775479653459971431711271110293932649207860531334492902506903843625426248234838438250596720286909000144119689019227591602655944845825127654962108107417532647902167663310278558095469207868818811361585475254328458915068239884917755389505336625059263917102058522725609283578011604740236385590634288026747115700211079894412114075800956744273004700468848706303420089798389970191436464743084486393253282243063483761352658795880842794985624111930853659817038560059490373732680893436436716984287920901855573589121623019996830682928320384288208971747774275383703318480991753050177980791440865194868791993143486889124178392604158720187984472133127168846918515284520375949443327839704484803554021087873873159113378968385949128796057720757715883764691236975759262409940871235002110273300492036022054352502510302185503018384251505373342605177297920613437247003766276254130011505431599007037558774117362547143941206187244247578590865883050377655864761675502764536650572374739121152125222384138598952673522945597377995101160733399537200165083251051606321590529791115198439416410250611468285811173876631912670454565384200594079026913899502145421521445603060127049839838145548678120920876509000404409664290671719786750568914980500301744707207474705088644995157396035659354054467035609923087720037174684579627916536237218713925621076199180471033169812841824998176293436725249848296086445803253507698286806901640446279519780468955069045176547259659072046920238452604462984003011101408800947773715580080306419034377673276592898476427220073223264985972395451642438074452485908630933803508451258207775959699007264200240638101986995772764453886423483833426336247220050052687246176178367166719750403543845584752333752543704867451193970474596759240902917556341321256328374813896315169301973984987769536569271201986864093855540282396995935213716466571617506214436490801462087768509964047719862670296722209650150278358299328554236169007733653977537423026952599591166552823365185863199570249633058689614068051208936770241117074132840536575968451573352976045097579524138635888109086796859872876183549245643460215792187714900332803203051360685998926295774101027783135620798771954128565639872585575751754000857444089807423605038093082500861355945811560510993907679543502305435503739531628318098837237919211386274262351411154020154942329816194993654370341557703714650638755559165020966139987455607907373984834250644951998068019024472867576593227810145463171766175382852237890576484854034053089180348403474223094917238921724978260306691753447353289511837316936027367506727147145551792291129625750407951008687383408949069168832202247528492973712751773112819427041361711194397034090645733047890949238610053085354860400994201499115187037975322517148803408343001752584424182114611680734294928855268731565527897576008660259114207355428955462861283300555572362725518761626189988226555792123248667783697601369556896186600204428822027600754119596261054028782376390840324294744187860479026859625525730607238369656317384718155958274232892093831388694291256062174870211069328458890239732063961250937153319967624878972621591857848778347689052097464620146066565437315475559911318112260768084646653385229379282832559282371037630373558355234173475707821194279350674933376599390113283598268595152310943456872739652850756512204145465631330814037141066939600366120162254225066974538298189695973545851787960078902036127980307652597541488156742460424980406098136733355734742883068856581923825729274427076733977509957646797101269240294491369064081748501615947867772180111095637310364007155549545220444568502102193421648748634387577645493235648428737249230277893456437099033711953301417833287263728473292743386323460094477278657163206224816064368663231969590557150169361376309959319558978881606005451509139159364821707575439164310252673673963518003828112639950412647883979579977798401115361094195094045543957087106417773169577886659609578941932970551495623491916618727376746201380130956698998879053355457122818282715786583889661519068522506325934788109488781956113719091942455130450559435606091740135866110073794719987633537209433080214282239607070231652470109644098012984406319839589024019219722197231879157243845745731628318858855211590902208927048048990841288324821291252302298896050347261535847736688478554108990680181629750197093489305632808247503421334346919164513841572377048944783206695640379637069878714377031286626118487090876877426367150572856530336274402335975156718342795757369654674963783426992976526020350156104805626183456989052019285787132466497089941426367330634338089987514890778319025261787089017561317240243969863280408339034774299328491988770156869534889190778403392682050822322635081698139523545521236356456806583617627076051019786828932735551156266611953015664292635459235515315369078609621867446440811241838086652251033843928683116277186327297461523488724964154557851112389510790509552386989046979159766171805284983579162672409316214243660613670393805131272962050641185966542550240051221076976962799140052344781211805081906911786484666403682532008219364387317859862879727564128501934444852816177001534046904112324622730097410416173826320513969410093946571371754054200118201267109497896365924491774965838643390242795412850877519313743579321075028883770476385163507284904222179586246123491067836440958399815819218575511863330178406893787252325813904153759006511270068205111339833177122459519811722890928218044111523748420092136069283745214840169926128438685994464211528851918463381049564640578941058631310366209484111384189173451839456947500150770313048147874193450892374948388314445191285560481293672896481154322203592398052309427899331510692828932262125039087758282789775568874945025347549064791549152154795142490899404754296834736240201623164941747854969418351244406197292850292294248873623503355736444407922372971238805013341399951751122351570796898831571034113140561486541214320801907116652747914496299330820781139870559497863533166614617571244120572211267324597984860030716197058803187379896204145549492473710323167690022303371826776798843756041014657539049741421376367425031244791654954233501978374615020372851024293912023276240612288012463395803779021853392980733043723219425895501366136376055912686913791103747024549218157641924419918945162764951693089957342052369185314207784280970633212987004137630770597209983353087731517391752348372405034933806585889014203996717764781536978673098090007355030247140971784764825377779530661399554643366752785060383728838816621436914016327432555938711648781954609413156058488463744243170629368361470712514522786967752022361264814193502266801187191493380683351512547292919838814112141656560644324590468220163613354212777404616328642928033101504955450942535352265741376316420969678468704821296655944421138546790838600040808181971510771643009243876537356715755375442992174626798255582794822317656165580696050364158479268831033584250613772535565570664311213976830935610647855511126589034244130776811955209715542620995807795120745788448003688699009818944663957246617970406859945322580093320428051197117350322449954217615813815399669981588417277750592807410986481699312409865097869032730475840734888524008403181473939594111500531947849855940274237443908410659761156872528603310875634918488648180255203146986395176888629542806431741932064617655380138846570592772066282816592986350552699774482401783153490236134748121924100964055217306900509604211094160377139622644163044236466365488775120379114135694413321636757799898919671948166119429156822992747529528255329543497571651102723295174218909692279235416615242823175686740813360709248866739209003343488192756702434646759712317904178664974539625031936838373986913419868389224080783141449115688399414933580817058836413036657581304341184568058186005848406561043050370546928975365358799252153780404575864492736265641806489691997609105867382242363066579212251989782088607258133481611916220671756870808673452969892514800260290668105933087973226794172714838645427697527550821717558388588821752494716937435461281387276666597838953282021769366103875125027082280828801091020789141455964385238545006051567788490954835446519759389573957373819333362249940878081822973284115464947460309621555869812669157785548046969299065374715560637294995507448961237312534940646086486914228404241979568779417304931863313830944994700318258345953163981528846292377600626166170096710933061480003250596836653094722576782308966177496899399750301584095540429256785190594175990405230115038375825291461743146835713491227695898118180991915450102981696641226053107611707162249942225419307474120971063891152839209238905182202376315961199322052892722054955781362329144944195864115776444084190085319853825387396372200482695413688349623256139050805726877982823322421437118687162037146168968999261559902058234856385614006810809731795337066053440422697054016793730205730950908066228622863581314673573914940882969465286867927423804292093740287934301278849365905986431010013230998172561744905967672382700806731869138518604908745160362079002373758974296227798295955661376946444049594037564471485571644017332810772173786965096685526883350839656824675657421011763346963106702872609943534416481202696709986143549291516060408883979960060615956407485435951674304370392775971734197642566315440981246774726885473249622665733767172371474446368655012697137791872013542022478058117888298625271196134413793999197475971335236773235042594437735271777663803925057576219403308749570464001791600034120893698968651474317027260256833321780737074647128309016695681602463298026852837451464828671608718535956406390659577300913916779453289330218169416979097833685925162205826812508894209748663085059587367439043919792693822971198804635067969793337850662023161929459524766089012151244829498305773571519009491968580662681625173617943876696552438661961151439452468288295712955525730749346918106739208362976730287253081245149915980035113929119491436818637890412540379027112164911958187966683707706220665831535329371630805162231989797424913517121781397516530530595087670066574299461164226466040260337116531496690744008903670024247014505447500967441526113292073071603699814366695029479041783832053953653790519764989141335279506824594128327225530704840202182916094277583054319664601662847096233999947255647822877104594972206013970923464783491352584997097912717537514288026493783070398821004327626693935399026095214621759614377297745689749521187979903478300532024475030293607813499761282687769181449497098625418465145108172277863903482893770174212969832749002473338896845698022480095530157567214370199077883947067435664172899930389568332699253581648391836749669267647108461862534424702468162137980931306853754214027361367515676128131469023553711331252495688806170836522166786980285200730649868656685544279678977762634020348546610892092245458050420148067097988347238552403060846206778800767254939663076838982468025870000086935252777338711788969102760674350658098520703260681448643606595945277129480271837370083508936324664427789530474043951877887003422802776077033910701542057078917283398195285057654899252083181059447638019408458009618049798233046735395812697883818196267758160591557607150171601505346305139243916777277209917178042162171791559046934069900702407961445636941712164119167817061697965591212144481948155871603001958423952336558515368734100698529358110778971409766084798078150849458910073691796129304786600494357267326293758395269909194020856587887603367019012104169428362936611228159579711386849183026869226604023276997883006358364957950420635300592082036535633034528498577076189342613594347693813198686877325253903021144305531042658231693022219982693178246289487986260355286825265696332849454454505452197805746526558073763227037090330704251825958997752519471984130161606709882331246494066621010146458463154065648326144038648308139103928272029926477159834478114120594235638031891411506539876291448642700572295582694275634875452428056436269774213913019183867103448543681956447826667799301914713914947269036729649352521818496283134394498399623869098417408301081640653678541037961859897001987704805826590151758545372180235175190010948215669102019843034905901650492717128721690758201770874481672503422495777655837807830908827685360710925394161105032527051244451516747594126071380450941304887965455402421660958315052705770471141839057412476563759329271214584355835240446235791892699366388494428523076420592691747352229234219787420355038690943122868310565614011191169662922409391306297384246996562032354847911799358076585841276802890693375070290430313708426347500249441640579161738430619724809520119949050828607957734456961814708368607505966445373008207753636903321839877471859497687392273937041148634247635561061133145941462664909047862839110123930241621108395834230930422501160760187701515157260892418530325167963184586960455264509584779353201829395045047436841949345751114672208857570330584886156637747480678742250253778157668381439616307397744011406462431894404077940725250271761234904608201893572093620527545427723736177547757467025679831409980039316336492838081652156847218279598414725427919235530040130415578571057005216654855000788682917632966146320010524075912686388067164233563554943228881392657048564267243268664563343992711888083563744643009963039214130452106394685871849109423474493401719216314778721763210931760617984597031016680465379925707632220479284277763230824051410009564030740249299397227581702987165495464031493928410261313680740487089252312466922074792252566323306772775565285222190993701360494920625776207737145632062407293279006850105145057126860837778249061551944841416272345819720159516554331549912669100098402045785059098842363750690020235464575236374382452841163244945324857494655411124372743405614919967813901510298567320140359155022112841514199235181811320108769326682090004534684898719742879746384481639011586508377055722821410625985050553563829070931504015123351561001282734313848700546122336897936587210534650797576124204869706984988096774246758450094354878730810803723013850191573181095136512428710721888957499665582865005064894445249587883688883131139352200617134127540983160243883660786579365938578491358429929849790340778639824175522161522315204729221121416742864624852386925412267975477911768429566738430676678046955106240324164959874859243621125497870870396742282192144699678951905914049687766308737246068541477999858141751012776691553240406034395071117723471098395842953681142672365659691368663005681565468041478817330260470651656783076990238661748152166784974669538771951363269279339911476921723900776337553347039088710258677664331584608760691143101761100574679041604063498252818951787830351117190177615035446489306847153029536001086641732713772503900468991791970299793408529484475101575399523915967566654803489970069717524148778727850045980269320206878119825463374989729748129277333602877404827595718927887336368770976037021650178520694226230766672181000378564222344868014739334948479150257373537677764336679345078186232812615004622267791243009409110490807087851877950051542973492783175922216892821278197569104180857914475900697556074044466496394541655222100974685581510242100927841988407286639228041252870020107300939209846074596712792321862537940754028771470596587830975079904830517923258339109116803494435167165507960699524145004884693248740535619202527073641462553773817458849429930539330729332860748989055450835225233846995362780252229976255145487942518690209627045909152536902638030365822336577211178481832265930346638373299906301315973575921375407876499623294226604552676768953103730217751609370895397189220734670845887404520013108104442122954204784725148955662269557152494499885591045741874852031580898639393205879288273567337492249220943508060843062847687505639373210288086770938242503050091650221716279217173195062340259953842882577779615139893096648770787661120400538161161271778841205548530009487558290544142231113756278071984714239459349034641337243754068660967801226875769723423869420038000423387317990222451999272676836864435570938017575221020892578250914231022129956258597051609597491644076009926761144723850794924421748795665877351046655356638748338714415695699703281675931547999253553184041968850773175867880526314591253231278226728198233415310450952733528724193748041302573263813177599750729680762693285904429597576829551141618237100508275756752409541080342805371140872660246867100234802972634622873896483164666831504617585664768289588669099043119067980913378128555188341622659403673480891805394598625481930917475532324202909832905149317961447801098545466453800593022630080321944802205849891124159949419726870755540530697310354890202644834448399866739805234649790703812174894263737740418724328705669661478006544382862989920201459572492213011543029116085125027538591685638732669179963707207295394570026532620085612475641191234830801716187531926796596471619948159715621679763636422497782903409604841541903992188823250344252127252113003910560562937753262405391521706527310075043332477372497165264044291471074350330317845307191231006644549320335296726899707312635955195265796668797776460389511447493042301055842965681237077140687152781336665561549446242933700381954915144162805688614331768475341878684825254357019815044285359760895065559610547350343865578675367412488771619607858000952749546241955920786402430522463517403624780691810168138382300896701661254803064113211219377723865417883516523831614744812679496562996812000300434670545289612037323449243715387176309676420162741642442775955946718047982785269149850618201899913376645732794319886303811736671496929864559641711351206374828186704239407653502613190705019694652784114930852685564530745920364988112179913260791057923596081421871940465026576416297611792790232055584097807671674546165753572715822345799576620317287330965483704589169059935531821806603201642332999440457917542225580129490431512288423340630684340685302096881154400429736575769977127676945273471583998614953279544497740798805112115674286335331740662320667195685273378002298151953934723848302209681708486624084739707968157201666986561785257772441348682950451141507095326996514453361848925835244548286214476167172660169380811580042776044374218574360784244455859813556280918097960410463309487287433670655413737952296259649164907306259255721243798440279299131114457234456760180402898872980115983311707465947539693270427323080276617376286496852068700046236042713905373083723801297186943687295411317079478070131064460437121136362942553340696802805638343434535844729926348444710363916405432863827298112269871235297978417425812258822780797909401761868831646896773584241365303754001370456472303235065217663333208066926920300394236711680772018881431773791416858812852747958409458995133264856944849009613143001178879548413808277476959999595409430242707484989988303118339450729102768838152118957331292548911066536515711231942183186086313250857611485631215283609357617515973752533166621085188323666448472658764696838383441717296657765876136102246609120733650134251121861382487636716955964426826374234664003063027630548090205501380951117107273827561927647922918532131972913438153632452384150261974489513944731244490085528175851239235355200506252202988779250350342961222217536808955266656660147049047426078670694064688189007344266830291242032331287352809815442457197687152296259098049586642484208742370781937057777552055657879259167642559385475053114890649484534633397327171434120967790505750089942647482309210031738936072764910119385777117016978066602517973184197815743737163412943128866070443753029539325536261593545097744090063958462798126215573017566695608736357914087165888681536557533642379185031427474824422330652199211738231885736271803594994734759694582545076552090902484544781786960226760251142065185717134570186737856544875368623874460981030271313830556194438721403679040031975063404735104899169237333183124488031038879176323831170583408938089500442184746514323718177925779049855368888281018406719356571219569801196247586368290836875582201374267963224421363781818554594738541316355860421754548266898130092534589066029045889424049009283381426997736699395359358969652283563399246120757385731857190274409901662553610898164701589240308327617773457476004861180069291297449358317953194972091432309689220397040297511103427378870411675714256322795541295827901307934773340566121831130187553916262236772998126255897494010286133133482425615295204253947350387741841942258104224562607445940618777746967844917253977927362120166636199461487792422074079037028782633108918438294687684211531387805291771245051756175948045214901381973355475583746946655270367090065252825191405131419080410482835411037407449588459636713613323660726493248328959306319149551766426275424224970526085191934629546870890058832618098540570167034878942477169079699381842363465615702546527414300367405576416058952382256828703075289651380962036965194795812298425242422209021958221768608755142761314404437394528274966540738582932426848705278054584863750212420262845383437866181261138349027787953075545556281586775509887327421449068598347655593988429366493631911748024041202558574883976329056923862187420760452306923988731710805931076828765999526906445185850889166491176874814265384074818460663772718924863458197431572758343280755185242027344182891995953708670650462217535925169667967583279106175356518417139828091446602997909250019158156734462116330910444213822522324289568742233606681288040898755579009752448292698708323153088217959072116134687165452708873868928849925809020470939672996707964966959366858104113277038596387125068209491663452266969454878420879384968530690253932885444311428314215690430287909976473424171083753478231989383710164373672543867278424575102162426868311585433278855349292953312813889360842129844008559456908208075883855000301503431816662305512140764948784347791946443318907551992783763014005192933950657564647015190690957323893771694063054527431672494423930859184880017079552265638841425310352564836864465752191098628890001230252900133308743145037729897323467809496959072771634528956438900006078696898099288008178857193965820131665502413565553335076329481245475626582046107764842483214939676274708571766297906251200665199313537455975894096419444734455627755457630831048757427292206355146108130130163941394875932063263212243591006347810484703995914672115698572452307666836121047949427802633959608816097369941019797868063126249656081438005294668314036338705686889537930045553441664358240013866004521147341483026596028854325924861936575197610841421931467042163651019484662885810081328900407071894529511418458652783352281968468895133382779098272042322142556829455874629949286373296476714981270626071098907098571499130040702169772176669904638629767047593674926618947825146766646081718643960355520002451909187242699922585382653141831271790273030101704988000581888901603475685299208084415982004753520170425384842254503370383854357840129437813512190497186276093095254566218614005243051772098524710777991110774974548211120614561047888759935989823200100209657200994093463531615813905658592376934428990466638344866431443919358200283099330639380568297325381190235868282211831402438116000508047587947521335951104625446940346561855888198595898307227958056417355500139894624030770768868915226819157435820332659667214861273785370479626395662628593132177155523495748450781323763803554986840042056495149237061637744354985691296854384912421612903157899312439436508685012331731853424883077600550443230689264694553645650830231662375911110860069083736850122517541308517744930014010086225099643462476131256931531652471601347197589922962011151410496932979118484524993992188781579389018169682109288696842267310609050236135612842728764838044476128880286124021177016333768504298353283063433932862800351887615047891308388778408553698113911742102589091114699138811392771540701727082999615125267445580623924544587007250299917315236355144826165523653424869613552184145573404630540798179150766303270115837749186068602866580133405679543469046935866277532760437521812601809615566215325192274460282473667546210739073590822707559579992792235896176827758935731479167613791119629721362998141599008434598330616262159614465043541182731479936697912838593596949952204429911207594543835891655780666545367110487195977282094388398702147059137537404340139552362049858192661116993349850918768696470716769114266369036135226885931195227536063861448326944623593673464539969474364756847274763111784433747347869767222902193632693079256255019442538968604492114715142722729331381202403438507674390441585142866219055942624922770017592577636352376411775411700839978824002568075395354329354000360448001465217784737446344998870610705149017713206218750145789629055528613976755544740149032827400100563856235441130843907582527267513145223179957106877475596777644575406272390060876345587306333470174757400289783109144792629777947793164012030606888663095629847199545445135806466772557493991359577799382175468177828464271368808568963627884757606913227352380146120676803394212783740816253238560163486515871457905795661698273057801914837204049546229245859651601115963053230668792474738783125597587618210463794209234777928457961474581448592835802399293582680100189465682142564114451071689067890123953085766252037992450442008718710164348658933050205467027132399916912224727444164038398193800936997708215127626521621817590107637234972717360750905115259843023208560434442904009962692355356202336465433630006268093708905782940795374297986900429353018633554348990238075350912478081411271546740548688077349066156295752040795811223262012770919229870274932012104149087636578156770800686314691409083705315731359194129229085285313617828169012824560673027875782325044712643975104484034202905363825994837961102478341457364614157939911015296258927234152145583648021797231435590476280773953590021681107858521673974946852026472615399150379379360459673654555848154995358552043167720249790385184528250556533749955492669119667847833294587577828669333496062704153229930060265116180528899488542482161008725072945060060248223401923980982703833938102108338685519509329705888463025126601612054617162629723382833956425744520917854342008936574240568260671531974999046847718786998575642106938941235815729016169304427381123530279737492087210193371870296796894356653850904555689552938133862843422134130994679094147790187038716972270584064625582627398684807476831955847094998950199549303844450546252683072076857264633117308437523894199803615504976210686710168342040835941288374036359411271558149881969708714992996698514008434086331371463233773792672298630375339443260253153690421309595632721482458822982548630459073549548707785573369869567412817315354702782617383803426969292266178186172452296114477687870969372965275001662048636555496437368613838654901814717832027194930427823697247547920497171580479570589540555554669022049090230845618193323324412740010551466172883139063056454743227082400024396340728650481986434489232961022504529755060998667717419715780278169549104456611953549332827508145660399960650690467492223343291775498706773149288432977194832083777064332627123224860113844690981479912262866821210890345155182536021014256485008870496190926614937597303899604276460664828358804641362066835992560473170956796773096701125518074340152723006859346159060306410303343691617067220804381693687646999438501202253803176515614945858767781596923285615918577626064627806393539295144107190282336227828639935722943519308236093053034672333540044381868110505082866149095356626931684393134538715214499275130732879108845612967745600857297244231230727157383650822716036347270537853381884532174820794080643215243683983373034784088387168249008743572226140843734903374425813018248071086351774339476804446340299019712911028394127224515512491856206171566882092081423830433279756583308461643728467638955747052776171952590574633164035739978117668159050939634922793984552564701817889516507983515822016517495734846736601346391659113826409478523490627456971286322961333895634019405158991774961568755906897886605100179869677189627671145165096695189596738620104499820569398732570396747223318683704478196193793273844440858772780156119326470919186531347791047257806859625635595736389837886517089439239362518790386031154233210073796049129680217080787086925383115252566708991009595160345494674046700680690346443906983108105034649190385143082102129131058132155636888553532500268833516400822348178491909627447340366785931097254758064045224776382856985094785422553496802691344909406691664611008699349133547354022842010326932579451328381575079988017894926063782049177681849230365097825812918381979340790235590973447375927825744053920757862642779944625978570385277827009637637740577621387403264391434567433332667157913045546488355757795765103873883119560909414718669685238603696690863260437097314812689692669310382918717753616698711250567274353868365969457879081535392605873119080688364287246753290333275927494306982002142348367197292337642664216884930315394867440496829453837820844920679051970718583899774525590321094567284832550350793544251728766352533631009435680403937039203313333359870899663473103822055048410468627806027178120734142022514322644397149726100517762241144148538505901277533124024568196068232594669371439931611656437350302792377142365681540176463117348884102704776803288650150257627643061994528868609773909915146040646863183280208228283337566109441762467983255137709776905916246556671017687044579367139321189352498085512724291271254064593863527794693955566118119130267190147111363549829128308359544613728924373029013037535707485346186193959003773892660891045945735817950714930330751851392050715856643430062158557579828561239350182123176821242714840449607061694289414121941734174334766170884441716015281586081378535399075603794788176257321610985270783805058589398121639077203050170457004455454493446346189118452939122579552743616510681664821170062162176305251914929804934939818301677499431515538141720771937357072739178713584114404384834047969120024115079423475606542423159373165137166115442444090536319362224393330604507164504455984808503257803934050804377733426839297122230342065740057261299880306602894619092941029795352518413744894449724426827469431462773562012813782445197891682062002366308569108515904613007594280625363460540201835054908669450809182367485647768376636748663285675279860866079157349293711514020744184429598299074345341577331566657067694660465969487155591215580351736610546600927905969541439702108762066285532361096383714059464786522786443007724643269780155268613418798768746767797435625188636294201322328642262411864422977117892409909001034257701138007073202597227164098237668672663892591894663489732428621861553547789295166871404996857751844927370448475117906889719761085031456201409176029985745361878542790168413556220647968243788382284566165221097529189060596048547248926317133981005990286398120536699323328811276701444388500884009599755758136753085452347250040671278581713104579669498745044930815851865747470753386772491874767930069182797305901194047436648195271154087227477190689619696824366151989504103684402344266804287512430870173733904518301605647946955462569375778067009412440903337486970003075679950769080433757710317095278462269113071756623835878537552355562284899593921704563349238016984450437703897199422355670018922070529823037161492940739754972456320845120067732047415451708889707299213734278051617164188618533201106395904660388441989867736005323063207445683038481278717585579114832218794844620683831920553554532098487095075055714096159046846830433133090595143762367311652878049758668432885780104516167686490788285803939011745924521154635042410819712556090805988217472957660106120172197141120525508067375276169485534273213946756879196445395729809646298609464348069191991802015625820317617310574548212218944598846867680814705446836685544883543798726550551155212817831220983816940684215002303331194506063143258084270457066668657809069312158836352987633077719642356819207309961496031746566371781761069887587885786430991094306437546599641521041498320134161939136341599054746047223213070718468987923958020746917031946174986507468926312089459756589214744573000528338200934023740495959254692012602604323886568991698601175059408317415317259780807128557017449119352372195971220178680259351617876408171692136565820689649314911846779654346842346865992233643689761812969346576629661641711693247175379434621656865735867567627610592573638324428232228817878132364174054289098264779239844695669872765140336536577395401447679875704190434568820082624942219921093520410468484852091990060326752177443132642650323198277191298738076667755942917536280071177830053563678518420599213956262883180806623609383448015456918345573965105767067515812989725503981835317870047182724365074134967891028363530926630319314003354796699309471963182353349790823265979152758619629328690432780415518307731217690175799725029037352832534177309938166995306314117135352169099472593827412182430202915086219163042956191851808305510675757508499618947127205341186679152184300010040557237599259486626085848612641210742294614074035348071527147854709033372362120935591000558295581688514084994360041560843592817428648528741893395349326268128949729446932951039857034351189714479320893438171852914967146439286217355651872956002003815565972515343370955640307990393946320672060530589946346375052839952982974076397143467840045018295239001440816430878011914086639207835998393101360887877227048565807345125156814596398356114106836919757359465276862332003422344562424672858253996668050741955787207889436539646422103999438077784847584941818927920775865378981212175290189229737167633164392377003423955805104987009804379850362595983009775992138335546865475874278690943472765018098861575167680743071191223808857848185791011626903179590492926570026545440040209312824260794361365621829899830091420968065342086107713150739160994936383732355509607381572673315109264047502258657406048369149486399927795981805125440041071018291790138921811787692655350224578206925266902549048950531752433092213547622033009845490942744098664813048621279432067570486301133239085206045565455990152173388750331111176873481813754682293031420562452622126554687184633727139359754495259046886071490430898994794660599203147738902890656303818093924053790748691471346165824178636870869245407393757468642376722989747805036023057168536288225621671772653998314651053132129501401069628095418182903857513811236366223436532448020841863105835638372093024623630303561606850936595696484162322926383811814392227854046445967106204603534739789728051060670392235726771398041935404372497444118391160589894199909114434350524006891199137330213655845174027769721012239461181713133110785212497090650258323281196270404685580294330965200617384951748049961351730286087669174698497589073597930324900044269053529077468749654078597411226016980693437495762046336187906902128295010488427630869586365287977153306178402444752755168489250279250852940927638676019219001699685607787010367395267083821265065622506348275738295643748726147868782867733217368751294793595665917334336381866391232101716629389991589289364072398604753282922299720138620810519878428776162850908224329557396900331909744829710625785443485320112285108342045721652549393930307398406597916513007278507834075581692367158291128346598945380892200352313088765948081730841145427895488110273976715811122042511307277772349073640779113263391234843267230253115006127099706753480026443349406008928100165575214158309189229125664001534764370572329090624807214259916806240745952702749866446863393655959719054285815880992335685587389381060842945316408894297276367416288115981028716438641024238578708176050808988865185895451766469357654389723093833426675252137636388519298420359993181349963712998870444574245920343197412237543173128504586991437687324931651967928996301129488384279355771699145328132078872467096396282348780042460846427442608225825340905532673367656702417600108595698525344908219754137169241701491041104573701124990572896710999132844153719310481758902560026133798287019993288625494910982502199275841532428012626376145780279663334315601280897395214850748794785329564603044036573150917826539821393456594674531472472332514667700175332378861082146063375526867489946592003065270543648958495598768787411002285869712480875286082280825709241170240665082343985721995348973334018423489931605386855507157011196777543177343189622071353003011876721574809069999215103595600866336318075369440135411471596664222033440475787610766561652714973347576189543530662501121365360242960049637998665211729739641307376675443184288399331066796149987450054637388352372864442926303740799269266256954882433898156171020505954675670129427292796318427160523675010210739874003675726581695762218038992665886443099959711054739088998961745003768427779632949102591914247695204463774388479043982631986567260374515558253552767441968698173349690129890066075472722603283461817995736738564542249489059677969952347477212704102366836233970203169640822664156917563010065369627686777368121147262149895152941746099113457808135649596211510641157910565619490864903973969809726886929058957073379210406875073335036542400285957389202474471757375496334080110879496991700620669776617357851445773632419336293362615164958443660939789764645154277356877423935460113668537893734622936996947111532292170979899973969274342687190559136345224787669329698535811841072191744220995460449988131567001702912111861753588506431046570047233586130906966509878953880370946978438470149489462330024013627351621953353212693463698326202886987452939034323923826911340353689315668518178012108195547837120452482503281389293150768352685700080077148710057288369040028862424217561689618963589077731571058002514594395269414516596282590645366621361749564135887023769116834197131674096678422896790338378818875776809829735065483458356088380729673484511263796962131398227634515229822554789101981120324334647632798014772088086104689648200436967853931247380433166855359641980436988132963819277302935483391026578529648242236992353341617044543944458592950789580537203837688589663364843068526751332838754507246200292555127442337100059267143767083386989982705531334073264205013016610673988754721929764333784464806270217580045573979548673530364338436022027295915388815850290182375411279659393793141919780225152868392476596714543420868614429259740283105782356602208602707347088650828969629537428272992371453025448979097082754626882850936471699621339087878975315338611483910239900536446201210628206030722570286781559986298827238835805058202821552905936785406879508055455992366148182536456208212345567312079119419307437537388689305370435890229242904027993724419240573026295281908714274450468684378182716404886726413812393592363864084495138981267748940781932623677758233482948721237962362671926161147916054708046550327818766057728957542632482261380566188489708829898626211104007243406315699915152194060116827220436985368976203655007154611666528182835008916801854800294497730258429237626875491876866651338970340240478385785523019093642197145892694445318310825491790251281982507840652826821458385569917696173254465465751523796266632933264637304846056492066322958248022047023935932875708209277690190987793354161237405909013721089246822381554696163588917768074414230181492181479848776171007830431930338731237362657558305435233170699504277366993255365423962409902674216942892569551956429092283618835157561389671891635242443978703268590611203568888532557355116519559095993580790120529480623249560871919858419568566960157757483207452495340563638683246080116603315850014242037290674296429318447167155504141774235104149233303968803037548663037231885674793990020790991017155958686319771086179741636685333219519782761342040273860931235602110595054121572826632910300117170750565641334312578222321222770749396472084044330554314154747742236003058648985598520801864986067838351744265112819219747912278964582920519584533862995327285186870599465757786272816615906172804222666781224552884237708012900015442473642599296448285514612818851072481016610196304285061397238791097776674304750861735262905207017819819645234491183172403803573843482839925374995015694449067002649127083780413144619625405015210732905695659608009239241476420469406443519514790814538580180975241714910779979206094061240305907136331817921258453331080484313085251708781077778312045387364227416480282144529217842680436648499969346894121029209636993502403547934265584214834435913303632413391583839415149001698635222601343127043194850235595672115678395642611358692963852204871560871289749220251804379756702164013416276743818197392413226484596366556957527833510632302538377416308628748419760071985952366822408513564206957136782879343408126626331020653239349669971448339961963015830341609933301155106251639189016755372082528764279728676225688976993026485261545629232285297595153571984499062208168674574626301326979966871399203919501916488942603115125666799087538786774287321541963411917197073704061285244807412385023736214907428113326281361106089169264324874722264758243416210198133255014580915296365235929876166173766263441728688625618404844581448016732770989495013612298974563420343182407935831430065595873742628282116628749421045456443879091863194250651885475348213336245924155935070996577180018108149824349466758633776146922953087656849031882310009106540470163552027777899497755774008929033067068335230268532415756283822105593126258453178280168561691107811691105744811801341155491059665723930642428998727382013647981474133636325567007061972318145440378894111194550914401928551847135124976950613135771984084878323640923655068292493314506965078005081453461032944545312942815016874054047843194547732263210140241041420999953246006639070098716331972937546643253169128587017390915877034568970024043576998673097395459817601796210922811405022135582610003898144873267830000339325802677932797012019071788471662818437429725539730548009085598637965242897530333234653051336306818759366836660051194837569120889920157848363467766316360406326402318601900383675440075226285560685402326414821710718007039304671683086023613400786213488049150840250127238891587459565365028742508956836605157555094050246060731801993324388201613383034690855586705406855856404951068969892489146459997189117723564807845996910774138901497590800258324362127190251781442427362700019244048539936544774841878741722721293087417583921463560719442953567654752630796574218562498373444025624532802032446251759486048473856327681081837395929174500217704335044037287555298836332002279125345118393775151248417110985090544407141701561782256641730088376585803973000596943113779118659742449868826581579942093326566891291871272234027458247821656792665505958124221143261821777930812731646613701893505052305794769886631873388776620422629012680159409039790095125647440129200796523516253445596919439643584642802696057901663519396559252236987552536638706094471761043308905942175958543556097258232340014025029920277813932005108591517547397650486384122731891677049203378091519180826607808863177493073196993433215886173032178162140150356656770619596518014490405813405381440976613505770489361344857171960877434319443434998328423191644676210253696458241217317626036221471330752697974772350720031630910495981332562569500018521043228809602508656854005416525731136794737566529101273984978627590247943745550967215583764226899797926881139602671020752910702946313701237776231657530262989782814690699127192854131927425099537197829388444679398804728108325307313735625792146184317658345442942496380195570707003119166877354385591265403105001866839243563183076346989466138092020821435946833642036673331872509296992365850391353464606611410885186843628780874549065867522883831369741663746864226493786661389017487630156574126725284308674198558107440446678184455813038188821355269035035584531949285332912554338572330879083807207135584614858547254137320084750833675456322183572169651637496050539830542832727468748576180240817816327633486885224546920849195330511959857470012545189605104520340263829315039709126451728224004563646460831955588407166107269409800011034258677187138022679042422792774080322205198889345822072715384513298699938513808889108831955493977430453436675685029115897231186521851682964250495803128951519251378468369951115727203975416584644775262491569101990221006605488007136003184386757864106908052033967454003047030275875727450406522580468451035214449132006337761310129072519970318244054476210838751484646939223033728106437446371661967055077168517104845338580723613808475356884606797415273448073721511304957960482968083173334980505544689449548390521142308950209562361318013960521785975453653674402448242990167787120905504241319145402288105923982224479498853216728329454926346416970757926254190941896512944056216009621494498858927127798861117951483927313394447620018437691814462176543416738137482939088353228908729509494330409682371027299221924711373206284254977252335174063686768921320816268286884753073531143609288122067107133365246897028255792141885117338208554975172135475175260588470033174564758654991071514023606685206357743581265673560486648221733731989160516592206314419434573901981860196739779201731694580078903239218484602257003601646972669332960637856533587879191579489541756893711398813489755709182781983628118405399143344316554029461950984487260343587886280741312818291440887582851235911152276326892380441203229774531096257675987055311560572496151595801715973755893676937458796392136271593005122926414266602732469705705073611856873796289559300121784076430622586365288512033597181922812755209144751358788582400832945825490490246634205506521136417499082544811891614431191097807637506328337279376636069982355540440575917630665300258530818164115043714481533196978795521705269383263643134996631588794367827874022062715140014464273619507229571649704315595901254325876341345419960386886686986805459477139937526353744764731646732527952138745568791236530700065052745593385597868530081646764872271306234128752066093893304531747660981294249784938620247789511122233868931814660608045298443610906951238960907222480249703700036914405049459278869216861110118210770337559805334412284826435452862885856557691912925212571017503342957431252935446266014128201924966305726122875491092691641088492128183601856315416303570545254187433948552776699313677566601965972517637320217789241985154784201457455904745566972932422568163311470796402004493154301037654870532654277430145206047743546657988815900038881292581670620937569964478391539874296192321359767107221800691841216780966189390119462398833089968650636824343303563012199549310846291002890936591661866998313319088411210142146975948109596051054477578688129745061711325990706912207867902665102468420832677102942461280774581236171966575915627706165048822328537492089645081887431055738985798486683433831709537104356628724951377071623134102128563012412155658895026689242529126620012136253337864523041531396431095071847528796354413955022642963592053992047001463929138517218097350656074158178183969443354127818567000411092507566839554621224563281803695366207282397525185458477971520293609153512547137761414247771887947323616571735197706707715294092004603193209404571405664515089947157960501695253205083201370050230835919642923724616141927397075836816389505217697422286922617752560228846740762221621301521452669221346574022850767254681170215695392683479666963367657630961198991098788837152495502083317452727473289645683742339776149657578765282952006114471986626112485835009318384215965817237350579864079417417925407149040857604844514590138367248177229724793461674067643550344607023749033126093710178727459121855522433513059799366603516645305426653877325164619622451375593725278401524482997657553830392307342137933483220388952188628399629763273021850572055622100990263274189421907501079574662069534118471264600679762501106481274180018490021481662679158326293764828977040135221410604585755579175530775871705671489358520639366212942331610674611632779426518358134506820066859546989643189602572911905009989453826022654380833429993101106881309048951520681622059926780105653279251804105010317026105454141280916104371300553946775275463347449078185166900620767819266846079913058710882221815008028381497351199053111288624850868376301452219198639799804781896893094072722015172689921284034964024376673278169954041041367202418054159149729101403942529906463469260860400454637752101128547752349865328183953426922430141359309408881389406861511219924413058378540635051623971085431353234338504475118187142318460542852862146891221162715120857936152775345843438513305278384985755773482709918199087126232649214816191629802930842610371848416485691544316934914863812093204031852445415385541420980779031543947800850522739364392084189767640825475442354825613531092905802804494641721592273667490482107040329121216535156607965874443129240022813212826735497106842688603682335103609327700334538499858175963797057367130631882659752197161681875267694251593502090325893558248544399012848290955934610967845632248253290509265046193751924262461474804268318708864688859308486542234878681263158317366235566665563068948438979611098039392175581001043055405768006011910662723512388429153228637311983753361982450893948794409447274273561928509246739729771875191215924094268821169674064759287981490296088641566507833388306180271365907002746026271996495920451903699852179333299851833868002234670847983387705510695491421684984447320697365923888158851450396922837555506694586212527210338941872420751734024547549410398303085536509121921920688625440590969787150928661416307809998986041323084342727562600787938529104566580216281466429822120784475725356711296665603991687457663701630944407243373375141901379949389530651955085401651947115883124715481224520614390003261708130246755917685476289309220049831665788188681665931849954399270305307088672587154496210388913119275575041720401534662895025396078770393147581872873307477728292250660652510296877913916131755535517139431103502840854870205894359950137701522383554903546024855817011454688184398929163603532765609800784080797000407540755483326371065207241037197509913720832932907207271995999577406373332083153338116211827904861572454514568498305326417198131274467171525840510510467007473308107129837676731729506579108259728126201771377714753451715959625500749766846101203927420313440750766579509308786362554306741941026805462316136392936540575076358806623995482455490822211183357793830844603946418607845815018260971226119892998091627444156587828892424499916404745666472143237113290839317625822351538561175907155403755972875368590930430968374739423145402021080327287881588080780631926831506325469343352482972323196762396827036217505267606774196175095756594424083375187651731077769604508719752518163800246640095089930679627271741698334405854955946567520204215541224768095991647046036515895343363506144482070204943930326863670104494659683633295811046867311962085045393026365515845255377107300546382062932023946264390208183146586276133200762469747545369010353626000313241142762192987123128373423979859951205943502667124952839188075949474029045355076409376124760295590369076821641133389349203589185630894490922513379994814468854395795211753476946241519185482373079473382016269711944430633045407165181030549387875386234328096064029039534464116719422198984095901795165516856079559166270656700511049670170014175331437343367628557247443210563073673380180425972885722688263066972492483245001457688428845883764746471812171977241141851213982097193301794239065815732786772181120699910999159223055178204640367955811569295603751782848902097110552499667092808574937033209648673017065063368486405382577567217474632491721134265847560364362434668823108421339062713733345139465238101559155276056197293186573837471595727352989944269345993142418247857056424119825818288062230635749300278884192179106283540853506050568008685089949773645636000358409216656668336143290354086448568103945001091819922017358038628728318515632419086443533582827842398925371381694721819055982978692777933491146804706688768044196779291039193061383031575481538232437955883834778920071092518335253348764357570362668944505666655895274706038775410328724487479023241936730217724570186849101500289307187593092654823474969897972589637012693613929379538067432369064593986320354375415453869985242929181564650996242341525979643930785812281103332419575710356277717298056231681775310831724184758853291785239247862618949213797776592283238038311496483701948230676375590624877264320144795331706806149941931509792866826414465950993977905263338253021637721169275771029047523186101467571394648055705957079680379817604736511360873056520019493419214945712782489383272100984551712224074311411127296488106069388330505161206464265336591527915345803673503133841603569884721952048116538264840930187352716853347722288219015957360041142554952460729426873187280854625304975391250706471319275838787394127825073504620975848281674386925284483325476758267497667761752784943586509998390701514201473134597309957496596933974351593193383948710523618730739228066489062300412734745644185743235923746382087924021325102830764080934635014118949139977249611027966040212648635408230537448644829775731485880646000518098715945232742273542720128760115308597899381340543048962495566282838195252789360296443517574865420860148784039038732259892384180903941746125250006699887597243124068934291618539068857036796909247827498733397889969818343979147071078834179267860627904752892759278661333086159915429487748962670075549212672680126179883973408567457192017664182611334472815237424598089074311827960308003219811851335608403992660596239144839982950557754746658895693890366938823809180545114733379501547024172335560547089081795296558149685069083116292364012249480367042629407720042485498037059009895514776534092026767281569254906626364275211436575272352771693358379697829708077969961339961574355817212069451752019128264443558287262762553494365962042501945770637126014616994872938825468224614253615498100957774899577943754563848646226652158479428807346813101069035401630272218877264907199587853742143838468915578135676704414323421553183930204896960007379965914609439854318232747499899137492519538760360362263276488433608446265882087237960389721694758898729121301285325757582659667008189739084952781788048909266526514206718360532233038792481873629944745951934270481519174680554619221847288694568563602211629756741536892067059885504811433048607434775892434550713914135197559357991127344577429199538549242455674493671431694591843228064766570979953058476194419737590297120619094472260329390995955373607010152963456123378113134034437476678472526728851744171112299389443039753055815461603828224517989336080374390614213816156805107462600037175979306964730957681226730470991561594926773932424185166233440047999526039197003044406111921449694298797477630710713162372509402287572156238298489543594654521280255723361188183113332748316597701713722938879509813946168186093413552934049159771273050744731408875187225561445660132194519854700943152583478773376622979972665987156312094783525372711164967963624605946679051281544370202202430998831288408604286969426988671854957173228747809691856628262366366944767550749540186457584969236504297009759472679296656546106383175078211704151106003850939067422587761061617869341550213008196250707758617783622651015050266031031988317049476010051108466272805930314366253900589525297416938603138380387892117245920110437398446555384243203242260361313844245370876172515255163800072771309629362718832036467951647729165142113695926498377521924118134508313153180504176506798777083375217538748486204720997790524390370400924001067976670244105795814982641219513456567249786138756042629652474015632888979606144288586487139650035626489670942737739184707092022706991612500895081109155429858812376584972337935460422607518143598823524415134405323645746378578974021168583230105183203685544235701908980128447090484416198918374628500609175020946986903136745307943278535017915544804734149798016322385746536278481727636146949305868041866669650076104525956890071292008686167266410600493922462450001267003057357925731983281153280668448908895035890846502752172441939267446467122147313746351615679351211574370067794735005334931832009181735746438355357260256251441874625142878809513429965953482457694281776449388111903022576637182881901972680334354424591571682739536704727940904542813074343608836213778612755580365327191037201331061897797868335031130030439408516636690837074009278032494403036015194640217052983755880817300878626847341070363908953004688083935291565644854809866861924693199074850870943788037337884046905771586070165570191644320010715038540059520867758855257669868617318535964721419326365355148381599077658924733076090708241532458738648900692013293980598488849058329935497275086745752281196818771717262557909696385575700422882372406273196917718839048976933885059861469017205489062348371963946228538820410042810790162333372681701937939784272197176418056416280820799326123670519950402088031443283968585120884702092925656398632303081582792413184662112673152913244921627966374975266962038335195732979184418844116994888037368318019727110294217944097929274012903396534277668156561475899554406254029208751294673945356976993510853252192255854119925232051909612303824460634719280672365702070095516804809093260641199339349106914018147010118301145511510696806721986293834697677882782116166371427153231874803846808017452722326022213688053585699682435436083521070125524375263252161257486214327813005366384662468444913713409767531225041772324526310408543989853605950954467410795180985651167919603790611211127300076476111529525968155252782717010817593584547702351970421012500772680296840720300628293356609251753405834994760309469607289982363282883641092865886700631357407206198508801229775138876545096410297270259316542488500429871377851779455607632355042026456238943846388580699076801132964249613336705804393840996256448802908972950654493770895502085228606787081937655602283441628769686341479933909210859511422101387655191347318857723031263507461519753600671625866434437520545953741761748701850252312064438971812748416103887121040687107264351881207121253204867310941154819304445267444251687075867807111566703982817768116045589264273971973816352851642030455900112705284519263049097087576267675642486606952303643097284512015075244125380878103631953910877336785368149580421180673824797460061818607376655179249673045754546561768434666889969633941852737491940877170919266126477934033677110164898628174011794898317430177705555567146110268849847300892635542262133187771066283211366554604231408978462047446268814740858741253087996526896684565704727483071487145853586993422159604427322965369784111117417726615906101895884574852776471781470702570434810218890059490420128137519829538211093062620128335556644465702289501170945665441213129289539093281707236916173620555659867758980350245118582743564845847636474140820322338892597716757308620721165779841136474535428260807033430181053946973102429652406996572494084552747186074613835493394660787173631712490852428573694638122446981468796831698874514383581596932065387560330689199615797429912467669204550968352557915711491942396914295555921232646977821487820104139140688094191755009501123596998915415105868497606590535300301649512862409542601340271251912298551082624529967447267406870679966063914134057456060719893554745263934819698874876155495533237217979917982423280327941753484831692356249815818729714351342330324436406637152777114610148992969409959050907064167011764990815571785220669984811816087173507244264907356053376977840446535386048062620608248868574223464515504255602966280129294244721053081150293178512590900590282328871383217729920245873542483409332608546862760211259158388237248409645277832708194145744935999431661398422066453056151788055100777456311829434766426338188021988418717205748400681738015674721574790728458820583418445380194201749080150701690610359234071710620639648146303618229084794714285423358321826147713501967447427310649708226863050106316983090620426448020918979563660144372119482471046215108710139647867809388736860859040938847956762726992318762226386105352118871242131018641041124762341777343345743338688094118400868205310753238045774770621398410334123703854313083314693106195200389489247175786737698187056236294552601910782808818445584279358203575920641121815414938599411553542118405992479626993593013546846400434193986462314346384385972297463427618119150623067564882702435268513069892668575674211677944650557566873589187670770757207471662337573339986044113043073532116389125561009053917503989322029565800176756312783787925780367892201996445810194524228032035261148042445232445040592164317225375997669061316976613177259660947281352278100944966004592082513015531319294639223458885019044395534416899435889473675995011819174686086623816198196801726438300775724720944704542849944050545205314813131350534292776324667026638839994127191923046784335189337768787106377726016195522661953100975023494942228782838760475226647251773126626136161494263792266689816605574543111788770218908012774265994543896923239113711071274881975461961321254995430789373838851243344269774988872721352248616130763992737140869533694196120399154997553665566650864994476459177038085452429207388621254849555804420740681779055732360398310187110250160201376275843305561787776458318917670442629092804802044474873150885914171255608973253989881808840629411808997713581262967365930860897423035517430841185707367815593096553486239013511186204110920396863926030659951629076171749356428445199122724402772255935915030777555148849121100767098129741007943173788180804484178012890248279744288472401010300881849082793410614811309381308098467276701761200992663387877371543662652082168544627855653569325247874431767198143547619965060899539044837930421522328055339040590309039108935087809231470193628324696768227176731196806753962931233168621130372044128811778670732276589240109092076247858465603051812658153382168319764438990358610064493758224646894227489465980208633202843887680886680570401402064341838720981701211973337443291893290692403663927096269428266967754080535979073013341077775369394509601224064425628854334629767441611712612053420413656677134968879150152733704499125482125444476532174813169059856304370066006498547943402577272755865770968449344874461835808579356549221185890683879555403431958182527275196371278099923005940509330926404348946591765107941966855317838644131091067099158706799184349003907301285073152863418027849704924966245789666041185136252393955987182640190353520238976227730935558678467305420827582850902798637215463439894199073399064118246549476881767015429594641664428966133388748706889417977235223696600656640805102500789780982446028536195787704937913287758822361101341225060123304245955443871224355544967139507865779683653168009661432141609932412561946378632880294852443336114722425946968653079843274972293196578026737636635636891888251234735571631502749057583850953995241451586638912265185983676572534279559800040468078753729077979023094952201224783789872085623814896042751671751431464375344054330012263724439188937512427353386755967384941940940986038800190997279942033877521368018499194748830900513140707033974974325114527598323632251199622236223883778680921296088105364859774196885809840311194615702595450393648997705985032669387149709228946514394682759492320682722093530770694604201753905694063319860099573698878562870383986094023046553478485309585167604578549783004264129517555006347702038588559484206433414874288536139604727827541807734142303922352297174747289348051443647068016282950755942672754558958426149516410845244559622986835849125898455663860322776904339921016134579955790076395463074160965631815023448761021206403900667694725160405369010885018237270238124566539165576526271463202280262415618418957390546431335236616070972004773568232724658186419564836762190605140397341851545509878134789340600043474769569248947352690989571328074096658006943970990286675815715263628004257187589676405804793094787188949646746376602622109820123541336853073510993144164446026164619179824855721663209733021844503653740181526064260751564580525287042394757468429198961103859846488607786961405795742425107884844298314089311195267925864065562145773144047260715820782199306070662225820190841602355911818024047679764667485292057682584930616027544110777101934209007409196473175866157701318736217051431441368889550053463539209079650129609041338174974779713105744627612823894882748686637563251859622195193807074160690566866940536260411261883958954983038433126724124834565597676683098145845542655604875814214089164954495103400620388707869980736849297635434306640424662258858250584527734576028119419821490118389273336246044128398493565913080844437879597945221226504920916600349395388821679263169627338503639814256642962602507427711474598835992573417561838007303132515690120137228167957777916536128025131771543121880331244852173294488108368025801881635798962033083667379513777198701886489602901896859276520834199533317518412808080259692841260942750138659380479420969785190480320051936390058873218371327933307512887813016472885427825893647517809983300447620945079478860446090929467525249021889093195668441414116247974615452070950981717541841264126840923839013847043887845962870320968848060548073699871269411691929570643336686250913495653555539065501754347223919997528551216268193812540801714861446170554644337850476909484143540588173297732425450535052669799403156280998923466775772471749653947399500652097624025954943234868108478672449808722947419390235783265458949325130259189355228060534563614897315375141306235747649440237161981890528430774267668151120107404205057710815224340394866387030667599891165288024400379599932377459406440764722276677507679776390228861111853727448387263648060627795919461317052435730439903257667362023161080430709496928428017629899009185377604051143450410389212791272754856600733742140797776558124337457643745203901342881473632755826320962237870795994710932086890168588702485812589766339723344752850605166988242781438844265378583225660666365341688188555265025223291761280008363874825694610196131516864677014735133856714276783732218605543336992133950201031065179642048613337782413136856949223250268410670634265397549141768513989439672390168285837773986467671380674861517100209613622267792235150955176114346776717063456701436741177739581886004668857614558819546217343112951960158092139420979072751429252577652791578347930698376025367241841435385239543346605844994692667107919636448874691514029438108900426317324653879263212973081623737345750467913878208752412703781498872191921373089915665340652873967278067072450117707922633848024956279559826409439903230232256917889200685150596015075907523295306671916251569456236533851725616611475629298512990653386236672395729390003762432561539629336847396560696102503159452101914125501365097738783894813402975615847031916575431091573722931999800050166238044469733862220778479827444845351411718806605054667683058068272974440303069933038282696091170202074431428329892538555923234045692833405168669140609661053553123485930866756321016765099491249914979013546157504911107197463539328290329204726155743195251331077912711105067816177692347256508130185495620660413746625249514702726409101650329128906500698131715633525486546102314416985529659638003313622697109226632166769602281518750338751518800251826528459353624809432085288154920278687229287882904610005132680906456682222598817166973382086766781728001957371348613416535281727511163100329392869297505001684706842421060217171196138512999833885222874328626181032875921466324622621328092597664202272062323850696708200114728848161244203498341817551985523011394034937122323774498689424690200844212095619035765839149560394917583578438677832964146648285197540115094583881308846460634179841593550393777464259193514439262893314554459555155145152087256135981436386952601968188377284115076174626521041311180397699768886490443065298640224855092819076308528292824263584192573554872699090321002028393485700611064799169022724591163158238255631363306398542073764267467095338556766998936198992725177852949464619261877383379037502252155980233941707579616662011535416424847414228714491160591881231544957904312349201254641306998052952246396740324184909964420750166216587610231252238794930277401344952490500965186233536693575918579173794864663779799292552579749848160571666194844899923496971735968983434568564675451866288599297367580809235491685933383569747845312810642653086070251331170671042677374450575070816404763469648644617621170914035407573758157378880171649158325422518472682863179397489582416116143248269658281077648949174153466367580160819321030276994317019744776953623580709043745945704788619856591625468356279415082931375156985949606505547832710902685233490670464168703045439735148780325250273552408699531287711755935599069346907214039988335390349402783464826672216389680963358455954570649730434084618358753977458815023940403827341370153111225505936495534993720568487810372704561989733717125128488726555420827918230356400149598809013137319975329440616609126502499483394645819103018434842792467339903588469747659638767399427370749681068125286020372414243719181183676197371992683890644921470513663156926648599460283393931907130673415513710197349962001863702701345511886475844833999896660994830344359586678722184300224028289260395091332803135711720550684923523937777127927172221847908788191449647215714046525911314670272582414157624034018238276764439841777397133943562490814734392805052243030576950821380488423942193420210578618910716387201988668056132614159680043631465603960877764941580187313246014864478753581582335783681086466962649840183123139032699286862648360427956139111505406264584219935585349427404652667379873324272047343647272517641086771429780506049351356602612344986758360401600345886021325361092084862377849211785979384275812105072391369992629239112973001614882131166575467234515066740782086827446486738792714897787310642266892068238428783094020901855157306120569377560638067228212804437591841066201565849828471533803645524635672377860711150427632453271840263472242898518760079017287931614052846805197814261497015295759072837275606497523848086863708052770497752919495556476588206141745712970116636091272061238161863751204561476230367274488427261720519205181955555664923508800184554430581357216846078670990176307251859882129612653577780082950526678299437311515902141845501894637257056966369483239502580706894596656994292207932533949462108199294045460236189553151353269740854952976566967252841190142663946406984487612801061487558566638485023791779097907354823163412957496885084996530990013696663769544427868334583122734686811108441974995890191992891182787897890754737220544052839238747628672661028826087243412545286127855404945067812594170743128248954433522973629481343585789647856071505508077484669960936582093939171435606323104172229979531791867782544336289041808826406294008379288653475202014446807834612552957787706684890799823539502170625840243601446053387273005544312519386585272090626391231688357807680839422065061610221039810370039779648815089372825437112027060698096334158588148486995442252347148548777282108337113915250855672522897174617408742927448064513827161816642672550887523494905422278777220220978384009500866779519293875162052554774550905649966109605370545478228150919938459778844562738566897182052458521066117301977209867245100852795213581649246519204220471984810644343904675916610198345157972170342307426622938164007920216140878615271641654949777741845037380751117360053060408870914538303317203925721844345129342941273230823811717441530477231091396265290382954434429012291677913658660217659014623249509004476039062792723122884195156367326101602937578821118656103529802457856055479189241583233583733829202795821727327580394265071042784585947743726295848842977970920016098251827450109475987265639176074395942472420877215078019399791025230170832672678393756373149053245315293456300198807575600409253488371170416328016799316150392401680458882422562661520049153681298576307384073380403536025444104392525191967391052755802758057654672731656378672467190453198021086662754554570874097224920744486376977548254965686284727508662497655481054507602290121878398424911111627173330837194822061949478505312629459893602494909614227318442631048255209572410216809974649429783885223858926421718827318080578196163195150687358047107441014856237487972875887077803514839428790999862341528735068393144109853999575087629085448030230095515414936088868909633370063385122383665624631606512595804305475217303864121068202881753512848003184143524207651984438667444527910705954883589921044357803578359407142829685208013329648246185565854212722441876535167871551270618957720993086086556386898186266226236377868700613640808758993330746606940589006688984024277789805676414427162881274909330007240371115942928589060745065902678013806132545413312598648087119204887053769410833574194624778862587318098913031088406811259964234985983374321499815459764530684821314710202461275124422392212078986304454620654257262922043727573580565560858316056305519040933351009537278785008505377017185618345947427317222887708718546367845538524171998270728100770714541681271179129962501604979955851702295675609709825381123590459742767841770655039627136549335727357510884487782226264424791682089461545879311766656259760830790850921189164337400987647424366159618043575506938029580448618457100264176952164003991046587602232032088441490933925512023039196391690690789184003418724509193878369538687584018304100682637180101841600780349023573157748637641721800943983385940624976278074687178557310359330063797316287673141873517291052847032195727017690109157313275725463330503259222607704714738750992981169851172919200841434872638468263785430908556220380135171282621698659415444711287982065795479829304036987032544397109886881621604466450639686005778546856360777898034019449315751940271506443887090313599951570735107660436326208472170542430402589098269328568433854695704746759551565667371536749737238587008851083336815557598032377398927216060274711058306752002644917614145403028459748533727418112225588286226008688059623411891227842361801633041185142817523839577599114216651922109681865036096981809687480899204349087152888626140390980112215471894912989419109310491041167929376579194361178110773767277381884435881019516915638658572720316314485621110072210884323385128478278742964658932263712769057834736986724722503431484421817464181281651659101948428533843583178873039117249141608633117470308473666039145087520727067135348950739050689627332380428781470301403423708889593511575656347468821483191708802987593570495790878873055474962008932042649770026568832701397814233189961037143027072160431437841998362097261430124573561827118328592630496213572626688902940762670572926671608756194001989090313547430575052512683074397375098158174315910678173167877494812150500941198040871932892289564361471560577211519686862270905500380897970822235439142014208295771998602380130954970249809549691197466113327029492101592217632011145403677117264575367694249653747566157764697083569820644923053484745191226286634983122951118365321822654452780207681314818597121305304103555466206224279166172479327954511800252067336590594191251492335757127173880413297752343491282816641276565259385293922157119740718463594797929597795180552824821202680322158358023386754599494049726235445126733175136128168359606185139010596229529612947296894466087109769573773150319331035449531874870242689491073720859166351565289883878279756837316297687436881414894053549402463585590539548658804863991329588413710328052276655652368068228625935028027905214454289400869281805517444629857922084885816374963358780412187178123159824652117374997032536163163794618362979692946701059814341895570618842798564924512249094560213593784297244152306692466554735509942619905975201912495641487668274498167518763151008927276684083468193789175056335612619536655395857406373511356948365160735366567872276714270591590253570354846962996552246815644472898394117316464130280909622755500628505895302830585113168449741240290258988464177741839077709554138073684775863925166076283299753006298073853163446576461284547657541632269628281969093466747775871001109703876795915022542044471841866223283783821149363393872507682540177623338253918559016979304630367709290818181947873005249819719791575795497806010305464876776899400110429048463686772452412818207519477179142087510758545608369805493270870157952676938137395939994752055399787186076052840403718334169641367949781473585510790957438823275036199680018146761405818771405078996186152954204407217738298986342608741253135385700287517894344775101055765453217087249010356900788497178683323839757921897261135102553466958281620145930019349165990619195438641349377541349481158511174897412173250822470050903142715774239407821140851004685631078343841593904467774882886940098454486492013067261216111752514943140967951187161092268307161412637629215526774558450686128706874849309789224324208153993607981486269851602108913661140647027739440003073309459374478279777832952293503211277661042622656875388954738735565718904517041489151014281860182724154220398449238060687867709172085887611097903735023191312935194970081527062885653421151657299092562006999257439574773395707412566067676433195712878961177160795703284424756593397834037687113541306198193001581881261732285002135225787749893503175308372552011717547523932780846349021157853673178229643432546911470773763753762510838602268193044561069399981842415688092722628660426613011391963411362761203100881707301995381975051567763691691232491610313960499725921836641910190773539843725731979394569804041985342700900699624776243495111104623110548243783310147345710379891765374512560698946006269491667338958511363608743035484586886855652072060587672144185197476993639729703395641258185822170153647848542845462383056470249822424422839975650488892341571115248260109553486789950346568651293944923960574604413621426647585461779198185900866712568421689700873285298014449576944440819622026890165053211401915685432581067874454924047403238587059879000481812895596871490217514038696490837635183658562300922279824913176563348529695776099245059972579266326035118608435837708430846797513415737063389105175987666658258424658102567417355425908125093269045822462303483973360911519627099117154839601798918306366596657031784540570285603141056040987506671430368918502910688003710065647393636331644031665863139098023869237909522652624002910724940721068855564787877238841294884393077778347325437349426479305339787034011657189041871653330053359431004118175675124910559748868020893561644698372870910716192087123807781064347696531913566076425610872152605004701845832164021438167979404177919006795919497517462899649805266885023436165893377335899072647153582173198449950024842640650388864352760446457056488487596713651645423399476762865291389823716248531190602215444074932652844474325140368667709913405830199293779521695646284880651690770600144807491902195659905246023712560996707211918861858724152817822288250420023518956651089616985025492619247140753150528014303117813135999955623297649125523682444353299532014411497784976718318890635707042666336987077464025294103642988941632716765455891712262226891698514598524233564872993295058690332003708903957833841246682376317716780471696147558206488225343517945661584470158152184465158929311840711564873999390941004025981270798275372810154800632795618493372503225424320564216243972355638107679009252568883469456833545076095410542360477772438500115203723322617442018002684559260853426567119901191624706926697461845768623929853079049709447819099802481781557471833098225517218262732616523178818243465431040754733788486094258587070392521358914853013166491959583572639005095326550261726494210899552803397652642358639862739879178436393829800397312514225699514990947185784046162449462161828130617755382872232470604350312477383005113707389402512148483392002908180791220000865967084854331722219875577924865345577763729473883855335332158333706867748059756905698354649834629941494965574157752170133866657174405974474663254125749333262851787690525232839848301230092576053501596872291293662740422591962106522102215826864184981779402599715761837600967352563597494974072781516067474962875907220330555699960884496830388407669730489152730422041262048006095200796057110249026570243966600750409972545807640718368087574380101786952851665913167392514801634827391730288331100310027882128154766916082233877800843707069478438066627216282948902860931203451359811931286127954058252435683821564167687998829214690654679644688074801830708445574146426794420961405296954959441939892971421853832675517774931829379437260950729658884567697332872064081998744907125346421353040443636304324495715422940938503111165377748119393484298792580239006549859507091707990394995134220355898264498217356239455823013483294069933525895837543074766701639264302964450696209696877114322955300740541821682004683975457305066230621063987879053078465544301244264045719942061485183502202567632657247242175278510975336597123817723172331055619955843691614889837918801392420974913731262486128052860623595597600237365991111585053614450798627581205957439989872523751855038297781085353822908656620435320264448417127296706646120745116439713015269774826662851328176272425670307263447461193569925487136762027326253194022877558552401602851901936062147052106904712234812271739878617745457119822181200473223581641798269337053211116525415834327157492061230116470008171857946225801704927943055950001405867958466352614921980381555603711580535328888866899426161270818921259849076224031941071514008571259878363776334427986254538939762449298913075609391947151185467811239133819533346076740531144175650272868023356801419910713615378376525557098239176029166003452489093112229274572999928448178423729811109265285541339717239980345993001592023545941065427718560221878032735367272876930183712021970429025613962567816241731443028408244553722174759983741709524691877619965803941403591219116301052311030705741581240119195540629521026715667893436907237058532443236418507776863914479667584635508391297360766114102931609198445967557483327966152374974117240525607084403562386125600532252915372015804633678346780838500224971198393896752777062332975047408542378493302361701404210547470900880366855045165052723273372092001574471783242230272978409854010756510180306409323478481387694073878719414695377731850377359771772669763843816626356077904052697175927045478651189571154147309030010515301203831373103262601282565679652673263456899556308604665250253637299023226351735028959330491543253064301780418161574867097019883801525114103147918819599835450358207521289984356719495904525844453218488377696111927392074837500684543923367089896045393892481248110162605654679301486612937181342810720230774141877631538686211122992527818327706356851861327095241005481539179601941107962309756349257532180468659865541734789530962869608096353075932117941940038654378145845609110217039484251182059386878665135829167638028525085209031162739966866584905727128074239274992809365464508139004433565178454222432493005502884879767679591897955093366351579768821955150235985275772731326965786099105815456482141506833313526744508673020556394939962160687608642219156767419300414172887166070269287116716604585022064587806271418656972680306035581218335078984241384171847903069681517724533341321453498899724848088671494204722427733826338049500640392795164966974509865315928005533913826651920853271864381374442564847911911462665210583206403872055521297950327628255549470129180480634016069867408299604408235083738267698327171553300116819741089034837749586689919504161472603985334875976192759536322558922361478626375870505916409823055482977790876426712073225661352074591020582756021565146484233687494804029219068714289552501792025972767147723186780272256819010147220797401004674342392904242666914475401815171993279543681821357911090351504336584028050980112092219109910309936701045494533152645918164066639219410585703524189903353836991442747276635227685136014345298574107934688792652230036574452301558018042065564347499597518939250339226575284480010709912643808213100695907675171075816195635832280548880555619972536079813384732087093483373927215718300375409377160643465272379870154817730930903766768077692377945104936396185871493050160057600426302784374688554013043432256057486526150444945311871172162128068409588518005243805931904484386370357551492531097279442988110712289637233039183744650631976365190207229368760329509178571394209453131115234552687364638036733246269523994631611496526072137941060955184968166953408372650745357910142835882908117146013174224961547239803893828536070637439697421824885027185930862549624352867090470739505140339785914475481144170960307914650747901496010106621510835797042561849400692575066560051713665475039620219723696770922108089115865574043634589844570733412840427351784904279503608984726850003741026065522400039845164742095036164729753397051525448240394625196107668776616881712260521693709564512398100788192368227188718943822348974392546845870403532463699135589140845734358537741929097056374160946172647225830521093740207052998063964701949011361151013291190903135881118769490002558580983372708140891225121399097897691108895316740697255335207408666321263181796675041919667407566220122386475155943542277745422754109345712393502496035371219806075236123849655887805814343571499765365729041698951879892855410500821330054801923220170887981734098856819350076133783385800790668365391166224302512228445826565776090034076697259022901287348548978771710110036007338902893587084823152522178111802252752734675557236814863174951593510577225789558046094219394898274467701712037876382288191049910276995312563699404791981927552899593577672397351513888623575291076452515019915925376081721289655635266555206440920172154173896993838315099020359891538697278788336442495222369610923668751036216286187979792363144030881754945958745068462583963957999513337152741483554410875633803238744792829566252308149870725132583778953437093682821156441738121258587703044591193639321905238787318651906711157828930555515216625309418846476373516952379621873231557057523359896371292087404648975047432931712045792832974010665206819054607797876593340836461648512522393583763446978688984895718113635018097183960173938281131448369389188117901967338505077346039413524492922268814732032465403818308511530016903850490309720451256511774213727619772693923360156987318977894329885437618903121148207266320882773509967646318121163184725608513998723990464542281084162289176750062241964413424985499277559959934723517635125068249078458699949600785900884145409858205570139707555963425198851487371838696846026538733829172330408303180608481002865907833273840249099613969128040570607893992247222990153867098084489175513632996312875592342701392455948436894312473163380426309812777927849257330706633730047472561014141467328284459998655293958586265454996678295542090529097565211399248173592528131015024644810628244450293075703044974589478045993836836966598101861092577856987422436880453052018364298261537859543557075663759244533281549839101534887217569011945896537038432256236976124245054825599844707981695651436295510453097842221454969320692739644977572417220123482339451553487077425926589921898349405622954510565192755387915281598138109400713916830001242464068001830738470869942930409190894635861139835343041115375368160469437346069272388332540011162345178796144755391533539976135227873944248057736164670106750467837208862077529466817401779243496781185769822839606506158337793885588551659427284875006971124869196845495610055951365952612882203501746191619244389518095567700434241199379875648279659169615151521239756107211327586663077786391972234283392280858860098708263465127845127469112473313869235191220397410822859281140891639236058079072983786798374113457288925862163702933898249143536097120866350220407630508739043391934300759326235881025028991887866963396903419865626442285450165289392692627607113087330620622235587311483615309732157220369181717085570455496490823310581224306985140170984792846680950962959484300670195064791735951630682821461588484822307240037507843150108309963940509708629459934988273280218573979544909499925955371125558877268573198284522049443955253650461205686021799912897816165815598207070589962236514936286382879342477469604844534652620467942811042875442135280833081385276906090036493421134262558542590289597895029569777292020320337834330632293657147955494364945126433375998021760481613385411806907938702390882660815454075631243121659372326128118960755751141095822072924004183759934512331119805507360404810347909582593882474777008061929978311671560649867274034364899174965895253026897783161450556502902923392755605341525130425398042879947542989663470719896477743680853524179698969717021007974105974412022958317726938385896097147920244638079248559546327140356176222424811156143862455857823365527499844178860039213162803995784692350523751907243830648821502155171814653420899250310886638867045475368782315071895326775783309838027927742855681929747385981265277107216174135896897223685514618025216987282787599921504857374792384013925545504811302551107091351599888026832751178576281300516076630678455183511263355562278543524298493702079218948205894312296985979549933905108269381356932880653427188896136224004407407282394562870120980026431229755899311338225157340037631109629034044227348741172139453199934848447382400916924188355432190805259790166306645576958631421276263236530082394695685552116382265978279502076998882614481284623496523409714188564170629356346922376074264120366932965595378060835617740769475402391291544520346063779330680605054762541048778683537531688663905006870758224670085896809998384311103925707387844411832441786019683315025790970536632703001691091471637994106514889251971909697435888589663305699252260106896947413943704601626436550149465974899559368389006833339797056429299073961799678019028521676422705111925420621912003544457676087983873643615278567830913419450989105320088165329421898172930779199774491820594307979670252251847206729998178231950101018592868689862051692650095069220185585302549217301925814829233210105299356556376521612841561733115234707424493041467896873580410308070582313428172221199592867362619906222627798451517894119489057949251488467703554323045858627497735467369338368512014388535907448813535950003244601957269383555479838956573134270507546081359043404317288108777459836633245999237700139746335165118860689597929313582559706441442319903362528100294725773426130448276498576052913817427122532151859316650197733421527519064406390175417593902182597840548369779888979864177833078317477379201763214391797826393273787607032584637587662923395739294184735551182097915743357393780052465633091912023908048001879258065554040485945102761297468163321261463451624537019329297691159428001872856130779909529561349198275171957897805286197219303781211758488141536228030577135418973782135811687852945280068293021224101272895872649544102852847887334832704354299901046097871507605556238006836767389815882527423413693353676856389495987769752346780080031288703244525863874117365998049960080631379006490060521974362605038909021355258313098905168483638162118390931652046056924640386291139832522580934437466799516560365884569563201020185957865846463582302146480218658613401872781032341981286209111044898295647171221956143766812976469923322087300470391595145393125726977136628312664582000799976866154653700173959325377571771469967994568864523141800636660445093549219466680454085464377348217764541989176635493821357351893449426433884871432340245941721819773968909041009060511869046956802897880806605241144273605864835798200245349571546599868725374072818054462604048080815546854893802729318478713291725581777792322209793955722267445039677676441391290498763598029844883052645134112637231127801221862703700892937526133668215022720104583233472352378278449480596768519152243499184313378490874199989763991447722484936867301089420813996296791683222518514129413766366160816174406428088210123739016699903415487313141113489294553991758910262301463960515049091050941944692003634570299537466057297614767635707067807826001328133919043048435051611182721616564619592284051283508833103655127818421390213987379760939140108006090476182408007087870293895265065267851903987878623835312581272684040961232722986557338518415203100554850350120396862435622943857421138908869237672555633471095686680261792042461912906263515271917639701809327159459081871958255027090466094435947811279270243447220182753218754271557337038984188691300210596745469312608466558084190844533844757559893870363896505954865312226406472531476514098908988811746238014662336137829492961069330054642675896334942569148827546135020565167463968763646584179867785515392346660767197168019801484904636011315135953904552739645258346759812562863538306752527947686777716869525915449296953742181980617947668755824952716714113301394787230192406611223881805359697551762616948774630879368001819537898000584579277564622571323951684348764795696785792574464954691775001237019418742051772053401262880090353399049887188152551385561999361516991781381289373514992420730037711769370709499033145134409426289609837263843997542126382449699474489062938802744867668538908298315645223611452488617544003001974337933113652480117584323029378309376763638669088252584537970418670814515546884551537122559329541795357806811686427401509059146310690939253981336626807977375823625256759477455274421892473170718228079807243847816218361762910856961869201596488955921879282260574653553492204934305126652975193776339780116758349760272868004556339560334578333366515208296782823326484531697552014296755720962614574888399283269383770769833540793126098270258637248153371375013629827870738899527398301818647090610583149233568585803123283657117549096473898322937312445674827963382699558307066645448507448376165172325685798450053442388128843662333558506102480273237420098756355945365065076435917068037210409762496064871156985442686204559418539993666522818571590504599205274414622087533674315040062470173376089009923229026998354363756538714208378978743017802635611237080022616747209915528348162205617031572307095240254532507472840492628913669401173705617652347817772907901955484582331972357809695243931364423429195218563627883262753419427051463870142754786187453332448433578511353429100989968485926938643643624308440255427391335750591484610495805414567359975326250837065144550761403726145568354167995764653931028165878895530127624068957721567251101042681552977860643556708865138481830537850099225078674897231977901454792243505746559961058733408290772881064470795996711823367046423574366145936468546008287124623550716244961683750833645176918090188263094726655763667210074742412468268794594104652305575967087216734100201516547074869286847762203397195289290633125539542869151995598291662278493440891067093167645789043634732778851856063529262554659410786646336217737872018706288708583826525365431653027468187642735769900823876928619336003936666628401093856466705618720625224848618784451295535392210213082084275443615920300457867202173336698541818154539694967934326143874951490162934149852690183158384189791548980697104336072769975998901261192866399772139935095130051708645249460546513947610817337874390309851611533766260180853323471044492305403947905729713002074124092347212306083245336469337418083629060893814604678604470563255296186015052643400442369252779925882311067959016435250551257348018106344665771706471072867955226881981235014380768726215997756623773803013473912281988008801347191554629307148504661887069878122025177619830193751718888115678185935996397803840143669853141654013126071494945967202843370628804894913117940701593325095895191230891068448323332150844753862852939971486165124419694948033592850857466811893797894699789853277628067342037780090688108626588161646811571004348818937090325972477036347028057910181104684307314029590375643609165828941958612991568953051451213292289176426258480992147535910748246620286011271501420387487980277481393405738613027939040359059961226446163447359292024199637822663626016382603098830396814292993381452204446944919159867600893546431010528905153670691170650815818655188725289929607540627030576872832153438615517925336688103787379045855196471082798909511580630906017650054791222312733108735293846082312986428400442253433855962024539029095824382173345747639781503374876941851587679875315518968118937880339544061679030879040528770176505418549756548328609469456438331382994047243850501373741272062309571121041034581424387067446965828040887144965499368500887812534365395831982933673576467688815217012983030934730531493783309543694662482406468132300584003068898523874545291961516279722937034640868518912668833083641992023535532037925731212111930393870220849114108971700208566704537744813509561125588037035985512404409009105539947227313440419351577003754246597116672223828459386622420038343656086987201514063641659905577138251377984458597434430371894260948674572001206938353026346973546409748540698711324930461449418707217450926922949407267721545167051980259836710687899297878349881802503291161266702429132176362313583329740457591553943565030015467667263964147797465861453867550833155164051634677880399195419983039220667784594875924859500104471237214879131054089692458263850790149375543537776840058852363002777859146580312993636894202192198752577365398573254738379100274361111540055433690242604920634075527546483101263886996388154485188047785851880525939889265215554749118866599257430423054604303922772839164176703552568926369587734057368309080729961514633797620196863123694937186776065173284886681401988419260952989487479645695490048441846050649640339611514508493277609598140633618308201225516844248114050572448775260806517144305251868822166204521663627875181284430374336615783995269979677777792064511318572583486786828259546731779959395934995252101338980876061751063779869069764817562427306306563382391706897911243037489155347282312493459378811538214428542614755332854101412992767159526033088335224765824462161640620140322148924497697629005405533085197941879150117454625067342077325918222397700216509531316702358419087156832839720527150799148372903850897121503925721140626435051182779335626218487621220558033968516703649967146905495721418430557811823642355839661800396090347363309004165604939221825099685703192372080524931864285288749507946602377857606224232414547480337517885748252585237548249307067079182744609965989135673812181773348104239043995779731684843712640385247809928014612255208973127398110786740515904105598509100492046794742270189659701422122246762437392543882434404660044972052598599560557576637298679573105904284336009828026442192615048436867679850026287284124282702587491443261036333552968935590010825942292677420687836330522488217678403370665780977363362873562285041801926091952977289124600075805920255947199711755453586915068504740720339160007966522707793080267898336328143326491150735458853189736116749896042699800352241009291005765611111294382564765245069430320527562346533913982439495448482587622776667337675880939874694272145379341557775192821369573459152496729203847109381504970239770027319728049001660323774354260237049607666285598908456665238986621338392080613057915969906408378604615725832606251587521967713148229811391020484224992934021908982997682767803945986124238586496222264888035374342135024329227909944709523393144053062050134058467194620758499078338388438752736649395370646104036679180588482427466390690547746376231496229735635905807634809855011913241169390596875011078707631089206920983402841614377191339444672510881344414048708663859546149969081273934690541475350162453654652119629845271156794858106401457233341590076711349352275036807185205122128333552381416045001232537296756371233761014909222721942117337928600368160541639105154734230918900717289715794216417963086213576334223063873627567991820268161761117212660398068127579868467517021019198478529835442855775789280567348313629664457706733058895151297353690896159276742422278336390307583298996752020357510266128773043188046475854467842779593230535582437676935806501246550599485005160499907897806012487880071848553770363723295948757001060712143559295240031381562522910909638349502409425284835469287590180459512153980196258843179142064597367265625876609080986119259487085269280068517769989592684049481738782460245608312847658225677538628228586564314001208825870637174388610983602039436257873296917150551496129053418074999501046488500116295732669210173693926135717462852745660751841299739630150263314532463193878478749961331578205454516221152492010249946729329501836344708427259713462518421311258512463958036844589192565417266862451898297545259121514140507592907409434864516166336709264710778257523428013840801254386371021525524018258455900978684987358352525306650998329262812181036621571263221304773279697373109636199342998160185333873736818589161086096392007721080644375790538516667924169198745057560776323931929432667216034949619066628313891767436184532875715556235029856165682795367837618719612548559797683753111005582051827492428757695488709892691456873041407613168883781373911742201891937099391442867337280262147691215018681201680935256882344848769774261554566957898449116871774726416359911268879040367820974442544824342153354499941239681644561727457101373523686021721385035871918849479195315891157208439332511852785475323331331373900402900864236853863484409965177512720824830040525106785271527719389115979728155994468346813299750997822556130114668515800743610121783721547727821300281289966408501962774068321962952027930793975560656237140007162571435747466603824402019316642572786743414243853456864363492146806575084942905502621317775490400328361529189655294538811911030142245903016575901990463630127736620606683105889172197667662714345664392849119611200317886548681857766808943085987554915533583428817685767769725573834944373287640274345365876319238349232654937350386104769468760079822665646720548104060170239491213046694321542214297108732326896605716921686952612774419751756811560982900800100884755309703419623736764922715341094789800782210105179517234721517403496144940115563627578452525989315387923854746496381530360705608970160464941040358066116566404570680760183627625422770693407724070850119426940214423031372664420092740076936304350609760697923820685545191493141199749685390657398643598233789443423529277063568068912416010205159210769616266493910556408773144770047006149675538886252172550959439028936978137125282207596283274413904489519469169940403191897512325234457646397218560543010626143537944266622181629578169539580682605778538075281586684464580357163310788846133338746156510051153748377622921298261789179337902861854056380739922569133163838950400581109979240043581921696319950805993166746607092905503915760627981710673382205971544389932667145830757697890939062856355525179494271325539566598370828913037436583934399942133490837881990323940784456029180150703011185934929716151121103621542454081777315804366589410870445872352611071594588031382926643038798136453729431154863720064472785888485364936171393760196993649954975503956912334503504140174129264468012907675908268652268183098584651161573705826341995810509389940846145301823025969976209892363766215463991645844161369996226353584368770401524966059328622311941887341069912256539805467408199364694550006138485525031518400343711445148825941990884835224718669329374690649378186336315579237584722469569281284376307489152365901798885481806236756628526821423374024398434372724345129299791177371472261121357270244807236970364130945654572872752512002367106463515199559228402085998039705500457863944897525926403870692505458852202463185111882416359130863875436988258499225008070676495209796760861261895967580422555318488642809683606778433883935504481698417677767703431555976644023426824476945064762107247934033225999877884601869282399560127362082771120647692256932695814068172607049271049801213706119757431496122535843461160082543301861738052309284000082422566667804319734951992681270587006225101721630903789701445150309719094476728403842302392919663957637268272523760962773825572526286953584636725794191999158682150201777849462093199896176946457811112969311548477944589789631288787052053973442355503964494468530471293992326021314917096572525005040761996406222431144077222356699506223278399391914427371608423646002072949213273404826417895337518498394923168173321324439642508902764291353899867381233919433584436472570871050699649092315086741011280147028864068046205772724230596040354461972006594368237922610654243202617956177959542746219671768509524992531046980881323306011412106412007618040442046934453193978685916201344130154933898034869477206107830721466139888393331244793133446978157273036175523210994593443799628146764223133260796970933865537230111519224749241979741791404577910473554100820323348305298444419398070179588700063297418750687854536450829876193031861495757140630520177645472579994265699995535085916460277571187387640021162686557832233289011953378205798711993438685597658562442388597004392376041942603178846678538651156258492749392135640147562807757790813501499693425760242425512845663578427718829237929985716490270220093954576742038216930374395673637484178339145457360249767112428748387156277792829432077191819519235779264115638585829425850935761077731354479537427919322500228437313317257191280983613019878865883135976853814915827944868060390782397937888173682186202258129791404216664905665110925623369882207117985463301836830632303353931982311750865162529836187290053060705550220186979555930575863231343092432920421073436879386180885200462207018902379763787022839474690412546254384603925308854090123363497236016261430082849426875237320008547973787455493312850666186352794999866777185181622975532387679417161397654245579817765519074525079898038751993007283539138880884703282160979071613229433081264097021131375106408916667116556649787610940453548776581466052348223869992080051172438256511219401635823593747978968623215853478317875713656519483748608608248228453189471469020255573227313844649287726256053247041027025542249335757727471483503330151159058660482970929032517567895313340769726784784919999165766786316117154789427639204413867526378583943142848929510502174543628640989819369913805437386206932452183813061645728786385059105676909596010190307308727616627941583779129732290829989736578450182730676682506542933055019718627808140189468372369040763563109731705541711926418242559867979542767235926254625235188865402662355800147798569859019888909900744989883947693546282588170243421154990576100355407229685093411594773475891180958277923586822622067285651558610131689189191018492982253685054892793592862744860498008008538506287374796775142261103635382295986365185536266364821878857136849326278252459420608449266730680328673656239761051819079119575517523645174429659440027706707987680542005287790000853419895049974373082518555146196305202140563009956499348357276266943264282408905347714520804066199677688271494552369015861038789125840609524296692882565753782971537294658217821678748035515866527589834451830598297620294231542738982844601485520476807696386923385756687207263902268921984678055370142375847465075260768928616739784007789555421647448777879181638181694332502092353505789794177207238533883002338178194780169771329216542990411628963942303672148950784374810124550336964191803251136285682024259749914484254985307072484349328223739581242889100803844895089423105469538192834433168742867625274139879617418646640665629650423024932306048432503231470852740477545058444516227120938472635132583905427894864074580429491768088822375938427425704886113872730423012324764080521731374988867023586794395091288336823964085308556402474944805412905330718096202198070175951805185328551428979194903108375909000561286553937661372340376012444317060285284016671488086077026595932599815602176452965014922246078486527944960551745460057742805810254365139357297043074413023578209238068755987230635574349371141740874958767754882993866720126155336387170903911450567514070499729357459301434990502057991059078885183572153125254071998120472447275105528478180025892356177988199667743574441013754888453572646685118765778900785118497596435934611809543050954025927408605714407369190505049636593633002907931960788275315165259078189200811586239745564914238024885202840256729081456399076607446658197813779413850225903666840947223250371467833602012323663329553976163669394066176591980346105049572057121639237496977988552431163164419426296022037588542319904189089865627299688737991617075477738123591306021089504926259659874964460421828536797436028919090556220617228528122140424249750132677330394987896870251725365881863315200461013370319916956424592428053628364431435387933268517054031241023124254048100653768374174652234798316205691191133140644516730934911626370785837273534711308358914971182483589966052598094858172208266354894710752010707280577079249272103568579967073654014645568875181323031755000333580959988802493546948719562616938819813163416146106237247707645840072792433418415621111257992565511659017478839342389137217574776549753949945677294760525916759673588313704181592282741441181682044140147492528415621462214270651465267996371884127542178273461231622352431830491906931267465948180182839535105793795736238112353583786394847489680793064440569469613817713341525570579844205856067940367019866087714213423249077164148481952520625276696914388278878542173184439434486783999190186083984871982781738665139309436945426004077577451369670165732038660135290376462391243215930659491734750499426531445094849577275059472656277915769421447863132590972237370134398597798075203061504710002236702090363601316554985284679713241445256476593972191649389957141664749307744258331109662573420472109167834008652263615501564148570622596009705273123121988332658206546551172654665479296728163475332518305797348959746284424284899285186353245331186487471021927836074463092234515806709771860902491544784559471449069064343274846819542529747193881610902955777695910895916989858715599988058972685224967644756688137985552132139750651127554790001448593504449647951308473350122021018969498744796609973338610784511068186050157277014721358377308129391883950173781982983387850467352640678799724670646868332580024614618538839358593541865032283591075660730721739153150226932806770271697864570419769040988625173580372023946750573411372039548196794272686262172138115603696786827828083880249267508699791406178307635492309212252720358525697747526789232610513689079061661874640750391322377363829906140915669103688224145949633786015458838040958369375692257356951025510937427269139306140296113238578965004499167458907355190682996908154812491710507340346122503386019188992593825676751976702513820908799553167246379162800655750081486584912761312065426936090855197157802850923314682678859133777192337012070015062064963700080082021312641916904945234788494075814951312394052519489369764429328684197149645827149109055730894089534494216588573637709920082786174997903419999006431279366745501244098112320084059874932165733489459120653496186030280907123278353712932696863874028464324250075498097853756514743570589141086187083337026927703081050735441390808122680329594785085683909530043297606784061669010012847977124785069937885959807506485787669036343182122538685785299623892541343747833559763930545217392459799349204476760680501054985091216048208671396378179564887479738726416984072235099288726800725218569938988855230788734700421828386582943578426149290915991969128496055896383894914307677754009286340730798303501540672641602403095195460179077146549695286057742536018398891235952912932321912537911092057440165586711571866036887415386266265173727251573661433910825611255588068805036715511713480005866727331182027108143039568392808041034782438338660727600951322244193885898859115148751678889524445970719264295974308084164392069049483137199691899754254148372181889318330109411780218306634256173515884044870326540333483758233048803434217385600186644649866213864670940923270653745278593912635885393845816605583741675533357579584726165628765308912111658835090499551911128714980660398720724200776874498176218916326730317909608011442392293090802713152467758972271084743337373587198794269785412863235652301859588769968627404578225163187496141772767179452375050650812821788650212587539862741323947322679004900153026366519464117038850124517228206397089483262503586087439197885044430450052061775842933406711506787226884071613557510578690243626259562919068387752952618783448960841275746254829334024017573138268461406977866895787865435411998087750047770401168776743724916809366764649826160588181245977162715851386494150216271983501769398003328884434787514289748108095008879816704142844572505287966771091400388020432402210550128148329134695410171463220070716699651506019694315685310320576035884580649813915375483919398435390397407051069478825244137450758664634691837471772673255798549146250265772000731854034173743141397880787485459540737398709832961452800864964125365646198360352321379538161914478876609858579639912780768875260547055034302186565331104420382295525233865934241049210686721004038231285797064876000015138850449669330921029415070929725305471986990172098761879666901846469070449039137012681275925646174543218760632907389823275794400773627746058635519995437241906777100117992795567113126292086832984479213396019175993324664344770057818763745574267647564672986947619414636053284016729153785909774446965930672811789184434855400163837466821152766989590550301448687952996888198787283607836576577091344997707700812892710399844865389696869741698685189983400121741196026505766740395167688781501678954611844660618399478544782766911924806293980092081273207521659434485371373668273917386212372399327696301312185089094589450904299692212091967361284225340187565510415928762330058670288441360521755282816546270637955461767105153891676552247330124894472921265505053558035951824157808772299506626098685489976824380718543294131958704266352340049350057705652764435698075859031472052132764453003391743279389644208084680403745726565495881504299211377919000318313040798093080677307734655536503257456945528436763090843231068105339572151580481235606896625691683980506584954435368969229399212236879612978256276510513933939319880480513357256738293660795371244457808040612113721383128799365915896791626162942953618853328350140845216734381323040483530035791782099356945687834626426193646540251305567240756593548532609350661329383593554166018362992477681042082517272592195802905145884773149258018155295366097005454414710308434870466655632731757490716972832853054757373417060817367636039018581141345102664036323801991840179086549391303513519412877175761298890761433553188696859657787273345021441471908506225870418989458483698106400569165048497779324114241907954154695629269105214506299615794019085531255606052755381739550012165624114026682025535342761194578052554872013575716599515977024147730848156655071930548474878814663205017113252675749442563717385367846112916203624877321801606184544453044080598697276025124782508256952058683790568798830845034287220390311319922092386266946927748827591185128438485048990103883173278324021027745722509931404139548754182001455602621379952893049561057182815401495440884972232862055910489593370530104577326380847745210238364230166142580892441564047514495472332267219557853315165155710398276922961209200620662536357306900610612803430639693573180849508685322902955021481972819242839040114128889947533701381294433918915371001666878775966756053526405952769463266819635289033814161324562656212478276647105108224743632467772455407642836513946084071682428780855729138296515588937519008065557844053782640385359211479240171486895021514629670087732571229290390163069946446207315849220485633892112869149979760001871541293557546097329349601896428059998469083061559793578942856978582999754257368124631772987642680336190264470862136124311251478266739251854230406676685313535999805265826679860730840340157804731223922295979385678036420536052312185226805001929734236761613677939622562522260846314283669702530760814396599661132749734696358844470941562673158482018418773928205573665248294323728753092519282193481132193374373799829111828956339818319143209335965967289350379991776245699796946104977887955220903734937906442274123214265171201138413214206706548677810952889309930625132748028719620685602358168078984226805281961153793306275434769696387486722409800586090451800262153308918617897302348331300013347089581061109377367268091669077002378101553438477231600469370570817526614226175899705270837649963951338307778711657996748556026669033630151099960259603559396634708325111178490502127923449458446127035770644988667711116391865212806154063936158495902412848899039400184328093668258307231412478374493436399148551807645928498486833305197938273633357967273898645984993767970401688913678371538622057167768627858818664903919436255985601079360986011936721109867835263171405348650186092768725537285545967822525229803177391714385220007433361223521609636899043803757593115050812463713949929455564732361356631933912051819448277578267415076134074643166376757773550724050421908885582296048027530696832108453590793137795209389662490588010238681388122353606456500642120742567762646924778399550470480074486687055160686949830040013861796811501317688199128733055345632924032358567814074000972836458470417169542541840488545706623387399562213722365011521086907026438482318053437496187304294475831562611176578049235964609507673568337935953339668136302069140154132623376916164065642104815008645922593533909495806829822624990636754246795221103137278902609387339129269267865256539464354350810999578137869852394770528832407168693756327646140723443017329722108872827576095232328830171839212459172450518979602802735194192851398210678159898942393325801384374204386576763629826768833853907179199557473124608027166731811391003669819026544142980750040803030375716731834988294694277258726946377302177488567911392408759369413823286501914463423534516676167798984396390723409605833347214610640454526095359905477147065462015412876094210458811217777114821477258100457419885983866930218999190879573639601158145657647560174113042338768041630614473883143998303384687154581142189290353932689333627356455553412885082638187742846058321412782946975375060315346809671867468450668714049720261543621376541049212882551820988395897424718819413472394790927456088007837698988038685013224152862873626343694207213811365368927173575819736161007347019609886406819937061555741725100707281385151767828262064737060068294822303357734697694926501798618223287769925606587905953526913265206872281025074007742106806953593067736826695064459491779765660156812292262001400390671688069441081877092425972466626178849922429638040888510024708391869307157917381971120706118518975653110027310358624882918831000410196502195332360597018071666095682832737690267586839001723760428001511963980932488503365743581884975716219463781681796874475647021961492755012316909213094681460048957633654399322116333459332731962621923301255302899443073858633611913467165281327927677698824976875779272208110511029422130132148946937723192404208690495731004487377632437518079327976552576753301102028247143877581694021017893532140940723538823424807286574977405622756824114339640177056758699146565729904135478134160618295844932560825039494272530122512954017461411395907216883613919388972469195508178352611479916780410321838434944662493098301826595341331135568539922153334038947159306944306348666124035356600890110498197082248649444691464576825529020959283984603176933072940268645120406131562259110586842612526058216345614010154224677654530500141528677390721817444051402233475259453580038437494376109706116899396178062357101901407599047169938787541977329689499440166514336501883335690041338854776068110397781472647608225111800210805210823610538058410468504582092309142161474525652390715021822146848428601520072952257337211739306978394062445650871565327247982780422398934535457154748355435886306736743588121397482526242459485225227518760129898355240522509057372932552058143535204328827889478749667821241039240852400469258231800672541598588223339321529284761174123692882065701600721492431140487050669717137648642203504069508402755870521664958745990204752942891398432511345448195406258246570625062376778004441051972616780583580273829322171150952597536123591801988640897082626177784877960841354749940845906462451461540717264585053811210299214692483212672603141462983179483090038953740466216490506702270494826649265807796688313379667240585780512586967405686972057324251061798777912170230964387379676368794493418585299452167086426734375348283099815610892835878658916420584486456200431237432631288129210567494204523055823456503333616723176496924717802016813823547924347338052251069647856181257990800857574940871481251998028794841414875071436095524258350032011511055773731214070234556815634815866345818652805157576959206654096930812466399358753867276637344746201454443625665451298169574524686182238414341637442314257635001525335981493123292242069315136984287281128911418668172085010861360779394539041885753038163655056650942721312958252627422120869364198273816327383616471434285939542332783678261006633146386812799672312125093220329449901198111854604806133612000429797301370056952263184192444357535305316891069064711671753477481100411624532185605967172766487039148526741704583728510989428482375008113463342586714529177638755264025932785301095279736867860192441551792841321232105170694073495266242720556812634424938524008848620931362829660854152886444435813497788207728670745901968433909936060586063317423171080147599976865543160774812471614118852134107573727426564394652526032330755473915238727789611624015194634306662154010292923960704844893097326107153881129194434950615084838370181872622118021806600710205909708350772574320607435349174830591991048978299532911735069229633146461754511323150440269941996958064504928672445226099964174648861907840745882973186296536588091253783439814099090272024895941436627870187299119356498250454646836832891443584495400683348518105856633722653787799799393628875729648697615054751302343138277081885720551524663060820947682146981145546290725112024964429911211996357706811472536249615809126512611083502407979792704691313590223580646448055866535634004596623385877231366610759234260452774167773663462166133518945562671774741126446824142869766537094326409652850407657351353485138253681808869797670663460744256949825808128609458383029615550154588613181548440866146607182297175212535883431878670365308620275954781083810050494779315084112928454398039121611772694405139777938861931913821113894263708267534288527757600893708529364189740325476654358550251920743972020662091101603048349638137108011980140967949390488753737692979432223146139257131149185483325087054291439595300887116256882514358499161934747935560442603171555291612556787637005770118276881847564386567637307392080316219146345512077778390870200730890753707911179418932015015904587668049399568656826824086570305645294395147543417109791416756682939259124640664414772568257165277966723303114561362468926514827490019405006292263347592621917468799201414929689970538806026008870783876354775488087966825150118046258555270401664319552326323725732217787019191200900445087616067236655634385948801747783586696148575960363021122622724376706788479029250043564278243075634887435033701378919445132246231191003831639789473738566566127830197696661890168125882853820103424574003240361710013975535037204835308596408486354561897476728173453889722720751683805913498591326590178642744535623443759124342361773864065402841551412531059131067781035722711199884462733470969884213680305672210392951002411170037392757879041380367286338207118480906586740185743157286633678248969355145383245291092351177875742141988567484049832782108447788987554555462718652137205400519027548168018851501247100785032898101344345129334101376815836063457095400294357538406439962518426461368766037581478645814605923211033807846197489482498269041520036468553543356284447257477044064412670116027394592999514187471470871874997961030502372942949606446756249537113043980098673352607285197490001844314935605481253638870912520330625352026866134137285192526349207059922251742868470915764362059410027271685840481676768289896740706257776560351233046045258227692733416279561600282999220713489195362255641443437994998225011390632678681180531585153468118717822683569197035394688619750508972579692483370930250536687037561311602969059108685516507006081261857221570530412534868870089360839387355216273578891951480763278632285511977658850754854843716924517490578283499469167918272921975050085138942782090208929933610699977571754954830787402901346473937350557679371707280846985438495630261069898046918361349288196285825401572663051142746981721779828845076213078359922423326291948666864699947019053540260437707101740715169533324013806205001862931656974230486908487435428692950473531739848963275553027458028193671784172306008156183295459583528639752619368761336803587810866867753901156291860252998573873815300360782540403515596549586723192195330463088664085351034178303199350541855979155693130732900691422437799639969690716631680319603527932032921419496662622063520160574329972733290309561654722208735814879740406644379843782721716658039253196303435900475526770274011998944959004827643378574426810327106433990936252282997983998829105867088240574205359597929394992758247393670481864481184770067940282057734897372681701731639623300813528601318072257721824404739366866284723761667479067064332254763915377048186231624409153311466843158495101398141972170811704882645547213923533664886554701963848623371659821637724066067575362018060199960443248327221769289739077919312410284630467795585770889865793995689328799705671103435385703572719062736288108162157166931305881314664911540396764973131050169110917421677724783047515357637075647276068871641852477729459772733499142514740390674498420032254932880839904319688134421259870709615189907318431239061445849600930553842212343558049473838950816707303149776543147979119894890839915233465484338412890444136209526005309304631983923918392930628066433860804934185792230389619781870545225373784166985253161173928382551916436911701346296259958168566402904110614674806089297863217933629953306871813334775009191470211486301774341929361055323570971383244855872801219160182811859991301890092738541702420861845014617942904082091659707177435435821942506236291137039004638904656115637455448084174950653201937392251114054796110752251811884927923031322773744962979585650449374685114265156487460828831785370626559202810488374299194105594063304593226141069711518698425399681599462661476246054741338266820034371822870718737201930037739312014941266537615390849561784905117465145529957319666535403785493673009577216559342716714929643907951926331872695049236607854262220604702296651026997768300801424035482060379029405556406832987360997121569476929193943716203630835713946866367623321440577822336928090524816490584008769108260401986552958329538192696587994992670370452652015976435369612147366959951327591810638692819074111705230877708099927975644746404893631667911879869305670382537744390057145394653072536936053336877573759432087201772203333889534628283925019213410115708935331953127873932919747803935765074314450713070784032798724688055011837451527063799115808352821270822801893742733373463350167815840336879915732069815740112196314115317683897710936104578659865227616276776868979889735754056888223986775628615233859409097291806839874923705687066681111077078239527940848242246971275366888899421879180666388544042487144351432304885981354378180308838637591908837614899128641751194926127012917674251197679410963610559164459971983419687310441414946948940035437931151910873508699505201285202751532772283396403769366218817558132930632692117544634482624172427530061954782743203077247246019493462457626302438859838464703235555504147966913450669288447004199246291379039189396938169566778298866207899543740664751622935418670605138478703357071872610562623004634551251156406219478223015486591212967926021519358884666499923142575093343125987773668690665682611308316099713866265425313486485004076602801314355996104136162656612763723448813345357173906009771494310465743899928849690632205295991577562791249148959032980099003479300172240839613243275343677909529153585481336935122951587368563868851036334762199726706793529166485667462785551578720038483158347583670812437021696561093331782210330569740513499029604190597291351310013037956944649330533427380346399795644170487620989418941272760524752340782009218270082522640117009932220717425900056171104930322077318779440256276697585436549704464115320622383582284137991389360258107140996104599378602986042734402673533156339642889758513812776288414130570780861718397269061265714507547698401074994762430425962768625316910550535756465355058535719704399495111724914371951422449495394142936644299557493129464193793289391847171722705865659847274730586374417179440646790322269925043214221108244504666811783383383088192187386948582474914583637937930512414185581777799862862084054832516021270454231251733448263397353555085199268665997985807340351484733705152134047607427804864386198702435563718161730599499732606315346434473155138969174763406791859752428623083750231472507585728534147260871717627343897290377212836327773489531858848422910251296159014232444612118546307516052324414571253400985719765234603943477306299958331385088000620227416127661015825682673923361432905030990928028272965009209365196260156531426838383026512300186055182422457941768430781034825602537261098452772285183868834297789530739920852927403484355868286604915933311854947920717080228325290375397626270482926585778714674706391091289447071315023469245450113558164331970942319806013946708813605326424738832594244962002997837915947231773438945392885312557192063445033846111679167197264317474862451567736878407464827558983221209003198188041444280646692061447723591477127498198890594249384949800844624874151517238754699488103205730441118105492233229135776017083819295374459597522471207676286877794157057258393208677105778035771221222099363585915103116861845933675702128825111393863781946746316035937804717392957304316245664673940028523332564059130839605652905469414492481355889040905387865301507367034026593906848146447701268269375106167056238220209915577955746292063568932318120614866229912174314645801220382317877317821159061184727003613755558175552921658966789893330612736401989092073055740346716709476608618636920741003679171001605856282170569613394705925641173088886553996849801071031303673137825722840344291075463680996324893421522729836223552079092611215206180957976511696529260982723337585440405146985254380144409752311588307226703652173818031381324056801122504581042219822650444795772654598224862923103041066692806179693372513113112933855858014715819816007124164441353978152793934846178140565152558775276868754657157759673551830705729666716116600191619996847629501288974846647340177427583136731605211076616666867739761921863380602500109317084901528338208486114086009830700893689165278677533460653330871418216370761862421793612576352404666078918294295732030475218055703136787373575115248556145414493568096606725613145362053612710029489707886372159718528042182586602580942263144838076975056201115341623980816334267447014205520648368640506354668209522596218134580067979731218946784857934576771037170563073212202906179703681251681853485770000794684786214011596929409199955219594486777665590253015499001916572683939665311237176403657063695375461100646186789213355085553898661293057504860012642454726337045642366907202649443029065809734618762451825477472720816560492353597416820239076577094605727901879286969393112183528388700899827156264155358612013957659509199658103511933119330440811923666057267408534989303627459350566579754391219462335245583348129348223115713732412850706238060815368527788603073543826739014411571064217690925491125948535949347309944425892174706055318242185677066301542682633273676611813023219333381215858285382959030294011778452212419833699826666211243751746833551909977863888179602917520004420178611951060368580960156288161363136179254416684482481248704615727057802775929754239322956921490087962005744711983064849226444229279544868681810977443630318014650639016868489278922691036403700259444765663677582261740404745206620453283110326576709206537518710136065553105097068416238856853566752983872825012992002591952930840181089578147088766071118556124158794458353341489446321130162674757596585724158033291575194240401982813199087217630248059776389673398519755926268855082073064177879510347971185374613919334740778577924592869511158419519141426710803636660084639033304734624244925328688687070578689121930386897440649814629122400658033469194802669295827528448846832149150441400704060492682150238593856697792056204136899483467531675666291481932037748649167804881524175426544685422567413541379887738129524893385450923109620026039336560175483657173420841016383286786221619776940316014903003165581220350679065519822216335937409863777795562322775780864233757264395598049893668179048687415559286297490859561861085453283292273921070253153182351890138827290584244121582684789865568265765858076711089994714876982439973171130316625244038348720985583674063800494441356128653860523203546103807927383898958562117778773415077395897729316744478344759573367215039336464080513718752624286780792614342817310833852720601042377189754776298951687421664374097524626716764906924793503315781047873591003538243059480652862761069825956176854412286621417068829302513774866568185341035423528040450885121771483667455161460815654826414152251285575114679114738185413407687144720742514183837108314518781934186229389405482573596683957281817364332145598127551666017835932753353343282323411585619228004926595117581166863730323648392960672676028955103564510952275076701741766776112624992234067032204097296193012075121315211275941913655606494866469333704182543086588932519748421117575665509918283074616186915584662374124877327021611605701791611135475231520845934931512184686632292216433647645252370469723731231125594224483360907677444135454797669046904262922245170904991169582320259218776057833155934613065264750531411239658652763946753510085341459083640714424207849520973202043101062303360010273398408549634384523734963165168904429098370571772944273964490595641552219753302310623881399902576662595617180591697432037336791460661629776822961497060702675475825813394544611578839036724410210927927169620794511472419802671368706277940392492208747097356937032122393259665873725411930122843979702289542306838472737261668968315870179456446085327984535026309683783272331058189170212118350794567226864460163803258204369638220023045571889256201700214392986287562165759126564979605700008691464445176776436716023492780060534805163510980580571550944304339123877241540435313788011102391771532346252945020016289484413797361139844468913645748542805191353682533211174522938539487020113097628756002982751474733535181616407673998443097392479936438246110943789670521368094837902784211802063340024448249677026102679756769792302770384120297344365561278902976883146419876200674666787215888756562982281531026438926213866897730955682211392735406126616795748927643964052613068188879947173787233642037285274732530226037512735886430629362878354699343694335057652063167636824814599502552162234753945431740864136311001397799634335358815369331353297022310428702809853280862871289538232811945809872003043231759337150348408753127354477159337775834959365260975359408781498594615098051604694846686523222798762204592001806241606064444254422236574582266541135111055586046851253699435816507041142634778450072720584685061911758030789912596118459762117605939352463530037866369041381595717663608787060713415218725598842944497428466742749343408110136517136507009996199252995356106363870630509760715097664547002747456994499707220162666887838974292981025485516079765509740136295857064079578435474552939372714496512113261497913769807511215840210506416449921093300287646450369963035015253245276787375129275248041588610505660150972836963628067307444320068261019648845057905119560591515939047082916909413784529893411469361667323417529134783467425789754136224744740984263750537163782111600024521081866655263629286313719461776621684147736533863944392087127417771782794086126876658422442740023072462674057472195054772567484455635347810765883146935502666846005063106229695981995756738717767998795810876445991976459610641579859346807779054011690728214954298273435278758260545931344172730162448091565269993204956760384320994488696554252799466849357529270211644466028692723936014115092797454072208053129552193568425764317144227579675655528194839301512254282989249691544028886744977572632472298103162513415066574376979709864454286119922982153432232821666692919366388633919116401700771761628896482051094133661162352065487070532031360866038978040751490002529258865774600071209150284797548254169878879379962347265118469085219677929095577240932752360997034080353137969612168969979557032069748785222718628574888608640508903802340609504161389148031555253676501427896016173550573787551169214461383041716359968536225607009003128646753000999641486035747363265580811682226329007211427627846979131447945261877820512935757304308559700254734605660435453962667075037257312770456665335566477847228195458116786866512121591806185296333548166662344769012222444517835195828494632371316251620455249081136179912712987042433902132193562457772613594503668856199277235109576065050450517914762222994580728394039297541162011107067015295288276553844452206742411339679270202123562480772855546873482263560861637292671045827747762079769830806281984181275548777465675406364532563384081727092283560819917967789961692024595550424864790375745080312348904296618938395996030937064955752408210513661124142424557859109687903518995109282467891935286608916761042782826795944841355842059057285918220442520247543609203639086312337486153050518469087728742099180322640678693155455702676738096792027487791742057960035335034232573617594302867359944530042178451665320947120948576428431269552508476314708702349502448000191113311458740010531405953422945084790891044331268506203397498390031579336549933404612547547813727448376691393606781075596926871829705766442237384329697925084194590564197766854306924674686874584962102900550198522853817458594854149878906908388838893604397603020709924636392841812996141913208345735414865899274152592069405287074343756164808832811818673859893425798926388469572034352207369776485011959239981288195718572959586262906783152637010506422187174016110290123903922478763729125752603030025888191845730256948011011300994985135088534713791099979710537649908682007839249246989898772692744778242638154995315440322954825620956430689963902962806004372227920118836538751862856902168653547611093817205006053079396307674434120310675162154958309708034135716436483641665219009518123127251028521476479980147307129045852317490878731740802667066211207058228994519948990312955518670511422911617793308497115684293428801229175483389705015268741820412406675563317776535870137289096384146725562322104113048088667590488252236676997855473476980949555751237334976177394386408699725244725515528550003242199552523864871136227435830562878383380140603264767506353607299595894799192562982808305710608104937070191736512506698801441247142664151057284047035225198912051809802018189331103528542453851869568469312080998863229078463139922873342931904001828965945359434034029736303222707693364533369590387124678281751421126747488259963238046168623486804852807613318689089941632084929532066694544911980386423520647509827989421753056578732785282462540913998888796633021153412636308834868334084658959782965196098272873709693713849699051417058212395417647659555145591776555620334542236058084763979289806147880848848859849024811967746304915130183467941601111479756318733254584292412021915630333684177150415863089991259042739629677205070139010070438004380597817657400009545198053056344809491548191872908819028837105804010973174546818257190730369625147828097527016991335167115968813153191384041636099868190560258682284062376689321909036591889077370720104403476567409026488872552810738241734858323801445085322320077575851190972269726825606548885813821132027164029585743046030864269150878946529394966934050532519791542048774253468028176676991824079664589786122368749397752460108357945090298349218894037326176924763987397772814766112811902409230344504672137551075585226725193047864119372164122773195457379220460871279065465748349005073147109031495653728151596889011882370156090079129495733339151477354276953317778228715468750070266252575197791983181689611620696552161269647127783901583214286408652108569773540994186615708732787311565858476764097776735533368020023307041394272436289490299738425860589828213460641619843681266689456797413699462170646548403296770621693604098380542207016268133142734357126982073277699112439636170134402022187494609737736778071260038692152729931254030367581982206155030820365973871370146323169068556337334559691255286039459018609116330853416435325207713702716215622065446962830178507799154545368349988390808713201867155407249946502854396732123180633461342512138855596746647617191617630718353185398701699934805349541202986892250090356590769888102757614453212241875576042918621663059553196193059966169546298826401427787262166830379780516145626403032631701241590198915906492887839032644858758926300276658406215446962627255645610254522067538687179626794722578361113122408090749363323345377397385432466412522069560976968866375170568005498001616420391462720419931819421483369157290188383595350411602520456242915424396207107804548204606486915320022116614056372933350479243276881973935523713722077554575267365081864699782966732035521923276410509812791611411142524646382837870016596448279886108641701543541142898375386532089770292304507422268789685659437543190130603632854253099228266524233268283402388237167450225018380111913913740208311933779469145616963401291389567091789415665447150866192990322258761793177596642440223893566443074963947137199996450679426268180171012836006098301275223012235237047744272166866341038733379009539370807790549420032247291450156992482002563665661042530555872712344893249372693701008120414178996776847939255179286706877115918792427787506058046198408441014828374910560736749395701098838964994942595625535942741322633890132600789047797089984563064451821023505146894847185861370285793300621676644901227575824592747130599614167364535301539656581157073195211190237878590389528417095330451361496913253777160266356269816237180715375596493401063200312943568638647119672052999712775135583793084295698480884914716820798748864632171023950521032562848812588096030421805039689713930143711911973588779463979287010904345476237851253976416547730862825788363820818247993691072008219061506870549396453047387136058356403149196158104406165108800856355065652572003697869522903209780011573387856825348822746028623421300199345955912099572943372577418002599950283548688365317194066998602386610539635900699668593446412585691645895438528966378083502867860507721359604645844689550941769259270419605943086044006588839298836048432321057094776323350268847305195533300432408869179967660084190012570904409130249281096325625985147466925354642786448822244107945668764372363219747292068993672131914544655920425836892264008760998752394956152507327962852725697910110308755928196199395533128376326171756884300347696081666542453719498500593674384559465953613126521602334425200726841052187290179724898995045997459262302080315570428033830173557642701457805433807662499049290696183171393135792250984017184833215308533522381519803388291956549524702023110989694106251568317744192121861651667130229511126307780526643166083807907762751191646869074444143647541825725267014814844499228575480778423451283667922767803865049300412873882117132142761795775186506256130555652003303273005726744986316552108924544783915605306208612389296861601097775915189502193830134616489410796287581322465102760497355085992731473111444438447132577229320305740996867803379296899277934609685669102607612399046382944412610762603002106352064183739211222772925764642234725564508597711244450086912156057763258601029826561277701618658314780011670643779658967441342323850845732378400282325134356576179392890324812820148442793978020154628001404110768267922565981670844732081437413772504491656257952662019030085072493506662280575552758489194663745780010288732513829592292695740693097630553398817074613280063084057374790891034397524890373110062174512704028636813414008443767895959858108783440829094129301943759121780818842143869213015106257849284471534107076277359954004111133289581161235901642611130320838378395189346556270706407500940117409360872824235801565516796074222360964492805745963996702207742756356980531786511534404249667853681345393472087416787553522501702104118845522205003167515519394859531274236995794502591648419055208174880024280954314256117524862525812955066306961194298635759295247127155204625453180823516865673214965069921499060599643417021686542958262465216899002238553326008026993111153696454807608188753472597180105285891568584492597861965233539312589313753815632256886605680657614207786901685476839476184811960664895757456617649594371606647796550526037798715380001669445600086048084760967722087493705678677280387416094012871530109541606852758080300943522268222624070806666431352999549930972723550997544367945064974689137137353997079492362667634683074221349057267924892666270410492080363811384829625630639846561631334384334320700692648909508240215050601894166464928103895592119763942155017503146284022616063640660049964286009733866309383912706614724299735988868236023582258154806850174555502328626404926194634618509694409813760480073101876786724576185897328115243491321879863594483306927522234583613019938325463715829276727747025380791174469865445155518009679717172843312325208631019675553790148068532133618905004509358229200960437296375233947567627447935225892503555790863341241118924242135221732061292064162622252600082515221609622926547402220168370796999233354796507311957499102760301486308586700788626960720461115603859164550128632730404839692490085068426267407017036616516843368177890165065625885393765920525053565559418296025931169960605839035865102388593296890969403328754243039241977099461971597245649069168516879459131520862079356608798973917698048169163258903303016107822863977525586406727878020284508499381424218465248264040234229695964989148456749925796674690370779392780320853812135263257353623496765780917795776220358408770774312557079244457301276652348059376158795580204940230235324519969154748761692787585041768086120992871114792538439449611367376784983596218599923415462462816569458570915323619858003639211670944175879089459356550990612096609714955646569379434412178158548198467372792910739604749545400695271717053379045441749807348056134372505532313894720637515484579701966072795119580511364036411240376966196790381615313089296247454965943191098564861683226281008381589180007868602516978549450007869292367239122791430731305272370950219026778785041002094211434146499798374387802911341082863013090023329017355661586082592221698198458443410105677034144623707201196450473997474417722845326640829413751389215527315910939528667566092769017428707389586068438544881478430082096453214511503492234610813398687631186583097127530687535189594831995483328330549246680496346951544092419859533301523444049078061260555720873364340768739923333878585207152190370371674455589956975842825986200603833423835574776378388312100960903497655233895495730359528949753350629028657196075380967185059503332081661353383431626059382163127620768670049914436935161714287933437488496027400585064653508209605426175991925767972462631052279411998121034454635553367612769599306743648801150046802510565322247889052301097269762565685386278094371220584265548044106314059286265234647233952438825342563860909679777336858265388543275325046003287172477920973323312282286071060394648335350369186466628840834935829327846939189300815695261045209735820239459935968593192367108699355405783096992977649971921505260060008707454956866011897897937076596962728846314606001830329034582781087816802293279207162998091251438223577700371461210134289096839565938687221132065525852283700245193968023416801541017546877061358962171140523755343911083774442322086002641131591117934041796904512608253047337239124881841969606923141615680742305714579893694998492666646069236146629363239268266535992543605889976257610314543079800045334683543461333399858161761999562265347898917349712863304707190104891069058321190797370886289050874542914487791654123555522593314254869518299607617831598520657544541636161116498394819736048907028920093274786228176298459788629564669182919159093881622075622588124190925445374319253898357092107570780479750545554262078610185642518771474000597882399720870384656990780538362834672117576214954601005125516075088420104261963839050676508227365536919198584410719151159290256861382740904167289429906486760625611726692601072669653894271758427566596601803620342924806347888851950869877119150721263381571777528771021431741296167202471914338302081459081788668576574344432965601800475175652896342409110671116494018553499265650324352059605903000658925350971605481700225839675066864767374498831650820937447459452201041514122246756377638556044651113095222654841536242404044559780282007312313348975832278360541943501507096416285264610462390455373004828590229801316282461931906971774878930679038790315692812793955961669467556500819449728354612617236111907280688625072538307702189998089247594556857320361495227916554592167394545014910746979634038581118490931713085399199294834286905846510596695730056320345129675780267279072609882611196151411456443355503940804880373647668018963852146120403218420188314886194116673107353928215147655481626509175775287126134879063137887470589367593965356959412088097863878602553785544092715517352930868251981635153402008043850804853520652766409978524985076878448473380254381343759133610494795480666368602618814637973689484669836069475068725267032216988821569829478633638111312916697438610594024237916508207532968043245436466356636187737226640358121264946890281067228579135665852825027710895452524738212714331262882789850060811258290308038602473433501113861288571615988984182099414634206548102822171445912108674352088215646195593655078587734645758444747273332542733194113276042435593160517650694541604781250390939716973299374624828613096068526558219192769943057140203469964152734862678987997499327424843374819878821326745979097847263726470456447781690186930763737971177800343372535233223337582427459033549505267947526726339829203784360247314100851899884191499832169178029321418066173731725844360542615629250238660736681889880216678651206943646462929066449551617141080586298265348629952717906245389664374905439028067109263414627516937339374301062478290374850910858509633539190169785346494631378921802914748055549345243948954883504598025284127464668112471428498391666836542427419535941020017476805940845491579317580919127023365340542263794477925071646321357927515764105076144276698605673375547051200555550852170749004919730652475944329236754735891707105518276957475285127220972732183579433014801715823755149926825857658238460126007621618570679573525127771211633589677042657757972700971662911340723791042658526993920317529854424695169996664954826967333164892024520803273557591227733375925500107755741083886562045891012578507260805521722488163589205535702794546882563627308457296389499472432949005032871814549989042168176670098124955803626943565747875692295243118562961602012998396758214289584697425225042264199635988559659327217225806218118402338599759183350749753050366926123372881519572680169187431641858590453561828323039548355883541190006665063115630795734293301678763081270845471191326245620533184904150883153025970827044046269452632994222971032362091349632940626902451423421267252169321214613234199661227454662722783452799416903920987412056960879212318874586340242273591207854503935824393194982822858800344084638569838709658472341512400965574919832164409267504577334676278566624428637139087881087302620433131313294720010460891687502270631088237806333379723463014174749960886567059243191917935030819156787347020606934167902468869804549612928206711082723094774593798746222216950298465230263254677335007867018140003577106066661308809144899351512617154934805363834257312646732827515131425660811214114711078465120545062691520271900397347082729718723843294122560980231835076467753151804923650174492621838610985832615667991191441350783934195010895378570783823736326226899494902655380298964921963765355117543045237700442475328157433244937977145849930920777642642232452390027168558143562268571741676219040121426910728133497112173799356599479971694280554965681296372848676285038366211386689502949655741908904880232779380738529351081229890328716614665158847866866913997369034113184794811294295550618326921177495401074433510201967531501530522974067806874762503981423913847553902310171294772807536784116015324912239224668470702306300636439686332468428383356720755031664549092578772640701171320626943260124460327051324005588641378076501209274908882710322926994802292497701161394355592880203418697339851541583887753942501860099879445666508514736542151712775194700070671373872032397554624311091136714983695079749842251842198256394110934885152420189795157763346689453752880823642209693202329575080738747875670841865051819534214181353752521879104225411015218646019468167800529305862847807370593919259425713995277336013520067147643406348307088382558816219458165495665715542505088203235361333391263929367132639697873100744074892133212846195526883534852595097930534987873674977919364305542160839984160085638831232983923947565537045317745568924569829695006004083123403612906215255133620740879961722956728231448940686702190392617468064084007261500968239866880172954571418115124625413217007735612070251292816878372439205066551799657621709924961095243482467950300900675434826913669915856578318017089437575519944366062960117147163058922974055722030756684467658776825601113857808410351953373491477074504162147935045068741256404165113172500563454082260179978031294708827622432718111551023751599059438489695169191017588557203548332863906525572650883993845003729818385905519788971354072492259699817551746805461922637427574390136060722508128747253040288063064439977707197108567426691747717022002919855115772382831021273838388665672578862038788091355882991605212376498737482828077510800173746579466919715044453976395959657805439666352899887615848905984989308445095510400501137254911663035603801058799940090099640828909633270878330463017437652158312247281087789138154214971676779911903871574474761189740206082187449051825588836372628221670910940930078545070669508791876735422166628978156116489894209357795903980061110489312796783687486384198821540134862252705566911896388624949739179094380198840637984329728493967271452005875442375048696860526916715749888304191771804432737388573662318299214940675519759631974545332600040881685224113456971942897792304124806027024418190564332298999956822139626196947711118412814796505796548722975369093917946610089381183146064367985544150466658649371864478946813975210594204834385166050248712454540371842680600644367900696310445658239193600234979746670644948533460590590844089633088750059697137595839327168083994764209104416651781931093080238083425052748889656977031784505659519188696360678888501467630420917195307527337512352131349436422155677350832213262027693421559295793485653986224492416706460460330356676604309749784684545819457113487506117221586954052392145247420190273376340153379390923907506795965772485364458389226858520212299973016314518141024792825313531765991354313397459583491295822872061830198484146639717479719687345012986408132834634630434394281942674581096408254313665107371173904913555560530174395563850189566297643255951866285773368103948308059645787069544432469508301985941897247420423134024338897039854765323469296835765883425686403572946549705120204959688466782577056939325515900387218124391075801223562011656106768367785999325424123092477393290417142539191619283960531248717454406029102583733593135973512322348988538684100954205547990334656691744577905700603586499158927458791004974136179750406400377224365103334630012385796937652618448979017167170588427502398743517773073594889411768316182259762948582151591691070320792559004204114262510572697551002151042509085692966920887586779375725069625856776578697470031028652002216513577684409389037848519406087245276151739029576625905218521145069862133405284343386867766427199499552505301872965798782285547737066634507224653943130431980959345547035577329663494760395613667240323793922245453645552320783604803215777392408208351992042815298231029927439042705393808513414007767246045584673425902405298389700374839920174945988448076156442377611699473515876987673436104819841473541149006155904532117455667505572676669743234614959191327352739652037202602799005818442001010570465520309931389851718906819793041699025041928287532973237057800993343170411043995624643104425135976000083090988108885963863773067547956640291831506918789329354660765315656680000857296876838666719482666281301075472116103437827704151258539559755356796483705179865559503264179169294646676640807139075521709354734267073012643299844080324561253049688751629893989282148456981799523383157214359335079091310381415131729805766051919512466695109027324310845119648201663758624937586056448743886532873537078498302833267631706530282405660781573356382658592427342804350428671067308210521159506238088978194477046199535900530861041646620657098579153799056430225760249237275808973078458470879160377407187575390049026182899588059208834477814415460032558758353863777658684144097920937367194969086928524025081070446720723492032409654356618956973709478636145683987272397499196135276534717467397090227044565626712939466387978803936768040551522206039580295042229139176513536947968860997937308540224553503966298184569561538671293475426749804081646246256396357135882510138033333029330956283378439613496738749969419833326508045124121410623359676616412125962577765935912343550693202300296071326626083671754036889595671860140781427147628514158882201888107757123761168933323388470718657999659256312300791322107149497794639697943712001460906359030281034056347537303371989313639699602569865978910850196509497280351506892931801637013397176778782980692076380054068596452737388654809975536230616477396322181652093425693593840632599591663113448709098954036197709061391876845180527764173106247607292149159709160945867074005984226260436502988640343837221049001900214865809367913222020916112264809286849006108992084099297145740027192085986016845971039415883555936965172116305773326884440234444267663062689163509806524384095816957587579608689369318171643220054035722037205818908065879686913532619156342827396490916803805938003245486308146791381052245793961848523902441668732753117029495810601067469994162369817536864912343425033470933539164531687001780359944405941168549525304836818909749131319225242102617137043405866666121839277777633245062676598071672425544523075972239695865553861766346305897689914705199657947497035694023675329535261794477112721328411445797226191372628997683598274017514827257004416086538944238730490848257106038104739945074555149666619394976448179560311183505130547340275997548075951609571549854869969475736356159928653131243381216546124101636793785240999714281785270081818674347175599663824356115704451600413696933683125004493293159066496704786775239696672309019892294740575449971052893301177814196998512322450387793582406585417029678141300199624328848695668431955991162115448354119654572869156437907955585785350669805466467888118485024152808528093493348945961352314928374714223003697695097896032892529058989955834536188062757536287000195069983383669898813244758247439872710565612736466397438936901857052310421959231019197638792753229117950060540296045924547673612354483507013964786081981336637141090818837491626843667639627332153278098491431464210606453355710281343476383160012487172395639476858678559959786651864426283931105177079066859210830035446679831411340017895814956907557469545919340624601366701360381545119592358198171510125938022093588863272429008991335029692226929063369912977166181137012986899335367829875786360446412776160474996245780049863750802822062154639368313346415476286464287860574714061293087913048851940753122529924840243513634435881820709785794034725163962072803304995636303140817004731072332327592470467324996252014012989170539881061244044596697312673184540734606833606168756520321376304292521149300156678638073488724549871500327181964512915552419623529095546050541526837300766660223350828828234734809208963772184759980828742990527412173183868534876668820565759700253091020608753292687436122864270943618632984418745901605997559389576013970315284640280276288304189143547957569968017850702840068400479876344200179206639710749863069371336864710104898845562605127718957031539078443910239682132908894704024941108245914651054095965383448765405632379867837174389479727343519554935087014943824887630864619182838371725070226976641694753754109071638801040432430649620748428970694436801619697917649592254779383253193924482426539177353869024896118135210837421106770816762351664746251233225787104279155465475468303908710697756131386709061167365710137819717122383949138166494008523203049210084482290018486124427590488236267815182822139784873837470153126488701975218983717211298669059609856223014017032345147616364052014552326639032950239734175368342546504074398473759893584634395328853977715110841187836038501002766127712264847159227948343259409622656221722908140935259852299098411205287240787268787004933047879397514387146408544845947377538325435967250742140668094229369908633595855075331135851231314906343324580977157380685366370035439028759803999002032286630958501544702905021629733483983780482784068193279452561262786478007093630225449678912131287911508392489480184788891718379081732055421860580840458866212999456489757766722525929811960090207211715972611692425798487073846655645052576472936818021507845862484639023576949423856501209948450589067023231451778857735687541842710257190429244114486642085267907087794401389148756196987573967303155574450020837774207163363200792874246129420130894748491836764337865287614586193288389978078642710894194186966600123834445512885983563357490229651517593850318861385877615642313858249395616633473081584838760685949223073947252601635442432802350523693564850913281887444558135525675459951720485125352362087026316076017398576306734981269540879306426620755312771139645948494047860516800850336432794182946992165559105708658867195157983034983766801699016896365899254535331513724630554924577918761553645752294481290547743267322186241850166189509158348816111882425301141103372159134525428706082778937369578836731087358951057368226644028768423818490662509559635516474046693305803701472718736567014875615536471354957131346777113342514203991149557771984102606863126060093068601149384690939091766583534708449484636096273450917465891468470450304137084761841597835923773878844920961220202260909579126574915261680443450055988554243293641219391997311937554777184958862413472296861538592574559288905224256882678935321570000912531230748428724166145994996725744392441939091329881154586617361715529106348234545665257069368541076927823472707499020832533616040983895142644929135332945698731191455509921129820035763797150516941414122170993333347459802625187004838526933835150164791824177939937441831512741160512109877237254560455517194085078865971301636574757284467490674468959604216682758302822167721094728574015562941524445475513955354129804768978529704336713054035341867229871108039590340629246253248833148223406945615673807897023771236363726500877714757652615038920628043574810053323260131807998193742759519032835443399917776952749359581617228856120529730612817222071645343513661831624867049900598741330648296817835558300255586530453277245064421976250521644430257138969278219254043470868025171566468547367619304853203633216294606591657238420216406127471119783358196067861181416494044098472772324454275482487839257492996106006248169581356621213279189527068111405749525586542284714372082998700708656715744975507292186134791161090877432671948600217782111040465757994501051173479574590700200965676723716538716709947721823947689447598666074160549059604194030638638813537125446843123777935087619397777650300630147913517413385393075585071030291270683864137384953274159040228889424585207556238869117721559550497779224099272390750613803246349433151968362490533682955533884383213447881014862571497333188122082335913679297475542915186230949799741680451796929242627355013772426923994352652897096815243584300207706153891317042371559290774006268430803975856655171545932468106360373001929576247151734923746889070559719402271464981177600744946908985530164652170869737217835884276878568385876401489752903244328543183498473312931067801410255892429801335185780151125755746454352261650567154899349378524221728407897853893733404535080365894912773481036875624960661139502945154131682032232289420849190482180022142377897496864357735447544589102546396472896052648803267728192398952444388631955499058938243885181692617712446804462636810905579411435198097349356019336807611659307619851049533193829262261622185533008632141026326956943989953228437631881892586420433019540443212957353326578013126348629762083158040340356552872448532144676024251200359978425431697326342750304590911314122069568573948662183370810881881212390861487195230695978179620425287521255465213506576064449092766506115672695332730813898157437618645922126219342901085600818108926132824974130237695420534881273149808568017755958605218419601331777554249494747611652848996749264297971517124930258013681437786467797997729108577513063064108214672463080579444020554876405852563638507961227956457151223304923940874636122373607143984353708740512934407200028725660699765463307519066998172722919598484886444532534128423467567389957057027259913302715470187228508988006212447786564573687097507053915254237905276073333177456639882614017901342744756881442493910516312820588374802662274592636801856533104845209740592380741591082743869153334694483600432046705069930790991823613934215768626965120919373531596803479357428922085790008147981218816741456765958234324474007886602579973644781309351769237805516112092540915753587105444402979785686919501481035453650323167624525560016822815505569587725583865654872190493263212365156495948434895036404634595562930470554809787649249420076051966633933365176959209147310975338208290926566396371162423930951676610781363143232797011041165912668090792549042719352101026589717158692674973393979166841578014907651450744763444569325530411274785740394126837481042577902489631012425894461583795038501087405362948193183349461964585426277362516750053794908762930399434770449011265125215886680662041525277884543027040994516583242178252538231063534222831670775447827290467517695234910720989479470050849138997132980436621018161199356249567654874224344096243951715540639539849239598548055149534175735286945898761735820295274616833410567722722535350024326077059809106532649789106298738625866038822696738955669795035629396111446898508725221588811151984588327111567501810876309628436327958152101987570593088132227109138486052745530416810301626855132964427849043231801845439013812259450862181985419038926091358817657174080768880454272986602126384195236141499603867276352413684509715058138863347108135570846274536710640621758161367981944026764677236242245592391705036121285684701815905799411509930299744839968558697060455620564634158250656036463377882487344160773956544226079814796868168781234991460921407536925093116810003977890183634629603397404273507197498214668642981232156888014497458512038258871100151225263134739808767609046111362534873639073480959936084662766886788506387009354051239651849938717949610559530963753879849705604193347116888985143216479383342033720906432203932359446245837854965620117175276333044172290823155537581776749187303361485336985611056949019205169962652523020610436255055898369057385794027811423208952664499743727006073967471984885159521350866734060935986151476008568930894162029423479376171250216074239821624200557063413142635701296428664045104084352325954229605496769656508022014331365226012830635882625714214863074627935215014510024305543544866103959580141041725211925281105950251010919602067005740794593713299180437255012529385236825044249529250111043630407204216593312866820319900457208882777716083322672389910337610708110007472831792486409724293558142233568247708545106082485829906741898432596402296376570029782290551496547588413689116943426172113256992243437864495145493320571599300105344224743587653290892253698177628016302453553147606694492448133173042349191123487079697996173347698781328795539685567437144659862982584712390688407006619744199295923398072332186948054604378534826749742291152205839891108472288774709256483228218042608941761829201707244919799873878043736005332972483893611158829187384265774679471208105187690447053886850093071042218225788354684386125490680644924805165696764593094060621331931460974084557713956102565071991151880625796394836191616314959795118045661480580514434170781953556898129260313999206797504545650775784196044518808144172072887123668312370481398169051137868206557108115911790211181249925357998616617329678346099114722479198926966472590628182871745724020735396635006394886424177131591398555078317934385394643191525338772338840938825128716613541096317456071648621953183855657843672008197321364009133469047215409483906795852854594113659164896061064533338527430145195404633631077924621371405309609886207387002304206722542256311552136879493883661308938267848834363582829509851884202315071556854982698948910379007211447644469948416000148865703655932766614564066427259268233301456229569103682787514052800290990213731660176270115441434507734966454773716965840595178396737581159266289612004499316679735680248409341175362659980124703470532800028004147210324789804703125844867017119177558531101469654902320619477258402295572208320252891082997827482205218470240542785896830794151068397357459452178521335493177339362603495392097944247541829258985839058282902981062411425562778983590569334467817151513580402075197410189920170874091560575428243410741685508272179013260745633684978273002834297529881731319545643045111518804237032080278787418257601420895420448002590485281681171480253509306792261737018146584366209558347975268156670815532205548757960216393844799557615831367644079326843080564732828390327197593004446175317822985367269826601657414715962454142437624385960188943434061379105990411680989114837048376590942879624288457666244495525441193195475900226318788237025774636136424388233558392958410237807176492196938908702774561104406730853088357249841435897683833344572733000127860531828883388250908065138412365278624474242319984821765863947011301471504162254216206850410222089248666445034719408044280765701628339938869907715633414556891500273136496992717849061799428909275934562565438136816068460151804847513016709159144665087926402199954469774567572327327395032238294055056039918900858832488705042946185271987278237442926266494492051622976394791035346553786717254978208355225747667057249091116550565485652339174700620279476539900554326388936144408070237751581178441611608311836053563768610265705014679034815048863986982027991263916826118412942902443316858232305615574462155820337460345213658232416238185492850638721353794947171352609613688808546225745175170902631712766540276666078330159586855520535890206512816426020728318203024936764521646888804184345696127472722495952583116615183745818427402063091481914208783306163774678574550050298185902865604557236353440530355529793869806718133205912529605585443208268716222567280423204046545190238909907381733057165394914089971921106928694890731718529634195983648775126010620897001858652427908355975617205671038110771758900205388890268196835183915438027097935775530258871887930876764630145234273322796341135914457511064285861719400068975808890929440167956982859186942507024180291217389297605544324571821772352434311751824612674465486659621041973919548404194641910648203552866000912991814168062172348413447670403680971700717640063822307178884241927318414914384220876685000057758901255238744815969632570452707086397135591538012260333649258263474196922390350983103131574820765711561469092048701405298024838578580939706150587975304601361919528525833711913656518494645581425652998569860166365868722298910560261609749960667528146407206762316328472280874766271378574875682077967537405184540938873921803118055819230081674392891727553809118525341217263356653215020013791559920454220874810329301683572755116280035503614393465196745490987274133052932528167818553189229804853716522783767757465444965042689249028235145106875115698295566884270473985208100968956018164864890950935614010628305856181629194688529022301759509094289576862427725149474679522549263618757916694184237183301735582486953227742765991361742248909501407740113543396879295344103046497938385903703020739104402803514382314661831629103955781207830667626427833457039380671650125753195727349662207538790551510969704306489123930930970909204578753777258954950471666569607749499553412840869686765229142974572605758084522518037852112576287610857363178990943872751784745888617665021979515616539181485184737466982920126316670840266266764243005420934605339546253882221340852988135939628822650130882804242794627030733099182899839476629287844577376438505511984000412225601017430493208847542189683170949749484536346937331840611031473763748448406912708077972060818848651172289203210468881108694137018586687017126939823068387744177306578325312397814421763360319654624892157062600805601548391521444611934839649425311278432878791568136510077223406446507760362113167197788689921355701374863625539708626721024008668462230033808351876177685624930485882002547304526813261568344808954091726801270787233842818943885086285705785331023614493446228806607939937754208870837707771755716434284208098840609734067197351525658342609585612926989728131511729063218103031102133837310602710338122890995494680920345606738227101590974138481886626615311053892069349922460701984966215271364516871200031025279419319937790298396916321435053073122106327384729109065838547512978320498250654617353519773828742059233390245577327287497169112919681393014222681971810187320452425103135847608228310117527557140851362668804754633936112788590656134671113075767218346227478073635304495780483317661050233910978847512114948724511879509282379122838426953083533693133890077793079166045880876717803399114747263391284375398633355042550267656312383989028769029318483351735478176738317346935118116215635982349290655229358381074352220055059684168381877827376664657931947917293497343015365964068984587609159006085196203503694817780379838046945173245989086864349646931025253024346144251403611027381374900213852097067532750380594671218239271764939306420183527472934373589013606392804808102075363886714247836210727592872423710502460183760572691620015401732628952559459387018622692483204120357628379036472390440310586418159751329127706741369926964232730429412284155302469010023653923446844290917905297451929472545955577945413047669880211218604211226867998355742563582513996759166922315660242427569068610495952085700070985347239197221252079808038790503593055978952290321792344035023413335815372253045253451666972387746801191617423319660260946446030447692960351932643918993657398246605510987009213490005751384045962978355544665187281841240338753639768087170004060390842602717756959870935037733243052566445569230978159332701588731041243371309025717882426654178787091269544199571894636885404119010972076263917604640376195692255552909689114211955839360693746311674128060472704968521868174318728305749650506957321685215841063528474310922391732548934341075390630545954652120604689311345576675955040548727761747355452720995712172924694755538358384023040641726467030288204606765372934444720685574755778227847252960227735342676832284500597470780882786157273869126996572939516185699729338216192002724197586038009574500604839607953230829606764719126763557357663851188743536575417345907624948827103954898125199244534617437810976375246924066637425033396559473748448765153335033317733249285263622496304913769502792993134584764901528487579847109942808021162825372730242620153416896247798414281902510635834653335575624949091566449589178469224873125062559168621390100922987368239766577499000627618211552926349518956717146187648656611761406564392497685174672224454524562626980590304132225761804856742785927946097970863281877225092707186785934762555184213250026120520108292447192102266733246439762466418231587343533688668562845141895523443006299355242690293896918559918739552472365545218644320192480403701160240222557110338115252982450017177208827955829739354862067394845520956777240245014294555242609724393303714662079695773299722783039766134679958947238450304130547162183770267975382439877621889843289526682229476264405711819724494445518858534076625994208160870620193536539333700604221788337565101314428695867515489730614370562750273436073680481915002224264818703121346822803530405123301142571202323808850371312791186610550630629918447321023627870245576120744248538269254873788694404633144905863654425019334012786507739945734411966137761280427153836039189810753105422615529854207259408866667884154445758994360144690065581644849305575760848114360972034176489581292465064206580039710354247138262796374697506749584455647074609880165906929653813972004039635053566907201823830310293644632315862974580970527269576875352885858128570933695411529441810896223394458124571669581104172675291554716188454892161980166212148508111755555048829667525001463982972833920367625975448998270663656396231692486977112878762827606364298067381535106736600059135923487901501975535713300027546698073968219420729523067791387111804720376197204917198255578570809326384722712326108926750252874184448137568489250710750312653994536377557587978116393176952855235289193910539943266596345542640851779253709210598758916080846356161513215055115897686843463767859894162280743579452876044296718039763387466229231751112963533651916020080464947580927483751997037906963893762640961525422114930013176922918532561435588882878517004377687300895252724681376483997137285034976879177061761628320105066122430695066592552811073928653048223999112726865220188151140878019221432191647541479912861235961868752888618753357434235465417130519388355205791267225854286034255649924710027317589738943106060190114533086199017792546555754494084527737399482491394947950471370769062989016544364673276603722069298076727686751612789916930996822110612299068174666198447167126755376142910999315696529849221621803729392421282874657950289329532823774191653911992094555521422651291346574281006697150150770561812593908832129404958540100920851703770455729171634063368891639855907008177022405967050403394872829158513311190437214445002276399438942265068375439538239238751170664224103284810566210807424451851441038465563287118954003147941874766556477641820887829236486038233309817186582194150068448886602439276789295746292877592833590999070323905472984688093461284306062775138758846865370402735148694474638492727861411687068358859822500772150424204724741073017059202816297796785985973949482161469266487697949865737752319448289735333147046134999525048843975140550994141596704886580989320500008445410905715676957002000669169957812792588194048979899480878797459526276164762915418911946938683203762039432038147419965839825485644242244785467448454193282762153610705066458757315195876428658774090466289293695376411867450654055213770693091070026674493000929996039625744183759786051787006645147547539805905181588525401858457010130927600170664026587785936771536978844036939559972522254154333689022449448534171168472800678886267629692268187366221535970745172332929578429904146343526431576822152157836874070358874219259598876890889130512278422040118055860494061326239743086186281608726457926800686538578939396640005032249538973559042432600988552710223669648888376435733539411601813489931897995101978923243767260195800586577832215727494467193989151556649957104193288278787727610834760980492021669931815636347536608707188409399154767459798153584331995956221992310882623030818178402013267763827518157896342655394442699688795350164501935250592290889848651101790446779004905183680042811286279258634708491307072491725524854116483527123314932273072849708304662948047787388297960158874066068691667298064809932856678558730692503746508899078352285914091452868713967510290586654708332098003162665572828288747169258631311153085407160299118074982095633299663040175448786749848102409686079951213440417017012954757684493445689090073846118381406987757605845301732531533578125181447999558534681296021340783157675519590723026101199147901442762783677040202377591459371703455493572655489093708865800170044693911501808150339033510637879146423485987728207501965114627762463857690836958390368146272869163872683843953884152895993190118147425170058091670557952911377839080599486517651091051588869775888042945151915352156767303758662113545442693111405290506133184182403066817983734632370483248663697873935624207195450251748639488795051992819261016553635961718623108667159745208548531360343813602072963734741869519161874121190942120952557434880376103619365217810867302144736576229878177359433427851996162987288998115360977384812119785057247874977798380498688707215620093009753857585519622828533558140702554718050421510602595816418959634637604499471030647344316901975589402087180453826995402188981976790309473069916334058728365105142412542381056159377719044871323234565647551089341051997275839265867300442708466650597888724731395515940042179795073720278755007083262766580060375256717650817188453298958852909559252597955067469834998567195272608494151716055731999748507712192292813056120553390379416253534820890988459210091415346540051610571814117446422289320551555663831592018519773774822231107032870618001646706704790563133015685125479728853169768297567079489658808844904229747926662674781910578463339590440042756287310419479368350346885955690220422228820647066264637757260443597021628860323861293923069576429538456043671235288977749623868661164690071963583702021917759267742508885010765467181839796133686227241299385823340918186916706792458493233987577383917415675139722248636597172356974621941025957352427422530092725660361034793488627163228212256610384453309684696210411508610384868670070945536326542155890524906223278609004608426749050756513731726349976565793853086000917250696484059950384470326128627735587184032648006392744675771254379900574379314171341341978338599278155270609180190689843570947987110750786806569019523057655747389877414628570069225200765114776237492701854139972392723377262975060160325438497974769733217104799328984387601528727018500701627782521044193974232280478510981962403013347925181230473088855827139869880986010104633817933385316382263468858635724096569958555324430662893412781010294887233451911091674034501875568814121438353363985321138935670487712132715038589680521406051016917349757790439108655521587356625669485975005636172824474020063445312312965834450046253554906088017090140803328365605568409028003771278122766363494137770985238822827877873612411493814466361454966452669511974805995518747268108346196527747452651078077849139173780608089775877422814645753371406777457041911827387658560628004830122199528354990044646139652175077443303056816578752296796642021014533562819333957543354073790601246577085739340759847403728519942398673361958795942079821169716358531354601643338557906333331370310772969472528756014590856436027987914207958892819804281576239831167532557631192288178105668807234083365718852607193640932480685283191313159602606086421416107001051529814194696674356669068809505740238501354388187281587985207100772424587032634276663023887248221732276937281900333547202396317162879064268367280428548836445299793623286156361998757511490826428465528221089095029570359038665105726427658402349978106079096858104705725106205016907325796564007217872524569083641641445237262079503747086674534686229017284264500626880894579158112365581025517512087956825118346140559511188178786470991305476919607557203581665583297873100920539382823494013974143277865531453072208848508982524954071051800755095178146054685609918247980243078539510503669356750683699533548230535730740558559126711734656274152695446728667503268452053765893983802863691953136525820047176746784381840485600388119161140449988977435247362318666934824701971703618125963912652273661865807241248613118572438772058892954806501107367035963539356334981066675713583666385992284608083505052419996457416950697670049407930880510559727638930015224413800738535635177761102545528736437510842000805448417382893604868445067231151601360773836413567806548801841040059816865303308847387447951171677032962506082688320702383159534554974368033160436041568573696668101387826916675664034112427722901909147593364137720244635930767025780980900736198222961760395743367695145536972641510434313308120106886532642785472267794055204840370828798915455371481950666555450848928131002542379747773044059446061135239463982540272460916084608199794082980221818523662568913273965595362803697516203521746543114208817232599216064156514981298338819517905090982222323300729997867191259047184867671440968733523853364536430986274708622165375226313544842372843256908516728960042996766435194333965836384580551402314288560325762450122050472148821865340663281864694476578455231718913110189901005478325500434181185424931276119793535404311059777711880373744529324395651329284231914235439326405575464200968020455465198448640969587770912416938619770175387443180536656402754455578984347665798338644488999283277819283625290923061227874068483024184851184635962921247620343498346219399500123322030441491099205297526022115375338052315990310592221006643174079889812981385475551958459395699337757534579385301732699516489636242713967619868121912058457022850018317475856427804802975150582135551421452719225736519629566342623307781876860661551131071584936314079335353326812551042822908312601993426459788429527890994740410893264822079909067555941875600530044247379928578738536610065831546712054737685244316922549390909764134051034886804637737584364785554646242931564683489325949948400243479730672286036276957987218622492152190733431656582873050708673221954196241945685669426913235772016374393068118947260373718316611825919865395351463671609432073447786170074567389915825236004867647160012806728189521672116903568142449532364128179480638645042910448825165764241481478726280524970986798161622243594103019370062228179944114733008635467836864058347086307866448762429899942251872831704160432409880495757882929184260021904756479687226440819270026437097145601476870798236583465684734482248247849013151440022421177093937519810943035343908951832359979822998199689175086152999487014522615495386272908629466489361804692098395131293364615505932644111044390810862061780154761037888432516098215833194821604870988883533672249674781646486314850666179331053227760840038313793850917310741902786876750214322024309803461110188839761684006406497761040859840709378499432293696864676006583515021488621324789668374262590611172473051139148215595341697356627521208266349888372438997321879967574202969056256206656253238755259774344404865936879281489052543389154792117947360837560370676298254524441501038891821925668024189251503101079684404439461218668204236069287775505096993494135649550433307817138887884021057587562449414702954306311580849677203114099022375165734729211680318464813389815306164846877355856486415296630548055817505010693334799103157815715780755967673365081146048878196980030396424078123100168121380039080038986877174785388120572495237954743657955943887014818197598974518792792889828840247054014364833221981719509513247103720819028023598709276426675469224347566179553109538291971006441622814367566652292800822085414567285404918396736006350259758141764776739409857239673332915788261832956290895518949143745443644178630162221542530622797719512705963987725530096637484959000031141704808055436949669434672168379707468994777454487737668077252417968136045888825829168420994300535661210066155362310709902584997860904375729327438527956605932663987982885202384287125353864237723637178444544107751367806723095201709983690613773962877714885285597054700076020767147785357617074791031788258045792777744814974829247554371578875347468870571708135050480083970618205590213279481001999220105332516571462524686079589297167690663269319999195118960655888321676554688485505652108258687934999116787030968445718030753704961046995659931303640263280637925409597985364348949843208886412072482805770783583465594960233132123785569384321178163596092818326275426388598170806610630210448358746756393604561661086606883706288378578795504427191635558492050871010994303077445155408636354678391212870491254814889443563299173188771488920723189346388437141375345798343135901732786619054276611210232316826272715656187197141582009225847763488522368503744885312083094547659842094562246136501578776594629952293492238457707967652571086389858584818394423162535079141904607044239330660834019422296478760664351267795386901011618535511046177509301789852914842097305196949912583065451204000812381082938815718755588762662550965743881855962482038177139687277005358181611287161374196550749864285997803754691017756509900765911359433700267592787556751128987011051932027486107394205409094442728327869148047654263567077128847883476398279009098947283076088116283703458603286699055332247348541915391619167663475124213137381813149852190213095352941544389069143040853833673162229631521203945075843267319983194760789397767361156407334220473258801805748263147638509334515408080482777092174830165117316734591705533310442502549693542331584030289992947990949208158651227742837144414696838596297952279086075360616503584707794022984875254157784540777425430547792045101171812824866181474535470451985601101720220504859809396063626925768724156018710171093665823510259520349227897836253381599797647795125147453297065178919017166971858571081311944619925805355810106735094048607783950860678214503411148537917959367308701209913391335381716619748768553979514611779756792202022523363295797179842235947790663266324286648738021296338014346723155065841413689223599535495728520053328957628915026750519811179436023955491511961713129893359320478869485410422865068332628301462631211404211078224988030282846618847210407458041231822957604424623035156066934227596511849977837272883459993435991653544551780165339024669465548786636706290405509637124654407754983207106756618975083852511451227984090663670472549026492235539562209369311094672786262220567419033766801716084749205585780246491501605863383232181311051175225115451891535299323600484062432375153565404084465701979762184824385816483047256566328452699400873879616609651716990807396523903965397715638710840783183952909546647025786765743103749651880170290817580231185440920554918609867751469869924222119093111459965665128285617648007594245292300174754335787027130655838491013672265819578235111637714487918801595325299360026253435596250224038165252753363688834052933063953154866048495905626280099355634877736747946079927652581212086893802421576716836974356745987526366818758941065048540793997845058644824849101536859666137129055665790868332481779273937233368790810993354635681303783537616873922493628628259640867449113766881924055983020938820403709322738973016801316412202303197105992725823771331176521264963928821204656919221837552925446377420061791366747981858965737246390016915155406196451459089890582801625296195066266514898256641241630202883335773709547269766828935536024840691298102561588753347556287444669678131577893468368375053209296879952948868463578980058569906818780781619716560614661941892398008669884800492037238973764375172101902649228057867465496192787334928811942837790091987382548834462639382490183691161655936362370917212558374028931446636645143713248661165445746948749753942990793361874488554293219958526899490493522299387920469989424873915479477245471133945740609398501436928351120662585171497651314646388451032134659480705038239889018283403402942034299900270804484196527927118617962264022406017756760715582261260819814035699956351981854144116449251105750682239565442986723865425640226612930607629188209471823532684439177886397086558887614694478522756608153463235184939138523380597228857679963545934477133921439885536935858029229442260972757166656382292509001689752693136104855526871057640048256833384785375549255641787795522455931500052058995552641230228833734404300064457433429550511123117444423740068702170327764031514231861098279595469379101124535090329304728358535705120752910017570634107756546580963089267975804277848023121281992529757944312961395237246506229200959585494321078720498189698990924928081110149805934251534324498848275434998918113029486919093823810326138613096236012082044614567433907301463632236559354901662656997579504201325294079482908979469165338373322639016247366434714290819559417146655366234112447452009181645175495343925378496810900106554151818624350862908130128543685180746401737392199369374539322474751914276461089007860372857405056062205896185996092710848204429088160126935903938512705704055679691043290769942349939926282194306297978118662279386118914224387831926949311651425099924846322840534289556517688355097968464083864938529626420987733539988305975152395798133557124401042269998945351710085053676117456884949374230607797164948785093789224568467317964542920347920459148780548248884343086443174657761599784045121091909990255885495757157899039747067462800760542233284264578820964793921287478969894310646576162991351697424822136871927206922190761719227047701900645926879298902507484758787819946827823040486721809715802576682411973475700348408937048421792114225977029327890505285050831806202511027469761793763318329950047709164475224217698241203739352068524576695002905706498951041168654782949334404760059159719544227028406337553261788483818173363024420949236527626854792071330435430400067413929021643220289177900511841842049932619971452581292897073687698565327962726611364199626666893795527848890801496205602271392077384762695825980537638377965220104320721971976819342087753131806481843599782834031149905650119757098973855222752272692670269749720260724813559352593612363229737928698865436209588322566566882372715337992544749716744935225911663277686089429317453993259423021715794435678756397473208091475803171856278043660335165285757590893365495584959365159572404883751647017491407789247689947375096889177172224624171440891439707192415674287107467176544258129878035210678651698785554253364681179282557249476232962677410282692599462244447276638857766797580086959895108328812035565111262284376853117446878700724429302153524796236092305495199539991716735549497407598534524655209403838971402155823524455872714826017827529605149577611152531197383894218844564623887796002614172798589653634923028995845728087342739520197086453408054996832510231393116603749321615639915106964465330540123884321278357231899131005940956762432842863946270968011325984332388505162569758413145369104609926619616205114446355892884489434067167866411159372777983615818441469257163739990604351051353331862540028069161646820723057292506139858634116156278803727111387623853208479706475470085318885655987189418617276754400017856062531263909032071828346859535036165781307282906517408291375537594996662594925808304391003968136079609027248493975395844873292674998401262762692758575238693293264315520231319753661695177356656741119542745086409193960099673634549611540008572247425121271196907068051958141787247774954015436538630823048568904730387045253297433751428155412723101846839758493825085060625779673737632727471026936240499219380167084244053976278280411134279038695416788073945873498906841257136589157427918910151019675142725616779053430789494520066420448459529125170647514146968681157176041093370449609165530720596935544302817820714210474756004232485972205335010230063100299706003868901665891843233199895591601191973758471788376873871514584958399688280197821894606011751304579731262389286910536231239136014472960823670960832659232243914742519699479494657566760564292372755363005639772282831594200274306080469058927108759928429281079390181985981142192495946350438370455713033279227560567460906543982463743374415967156259963939297306096141936556463134408700285125816503046877294341886732505183034491096145889667115563147319197885075302184383177667156313293821042096668742532662475987837946427167690151294359792903964668296759354850940782062708433783873189290415528239555694720812558093597612918889228942521080053555815400352331119447068771147298315307187587199371756486788525154496794213847200893885472852401341551318750540542382446372759339683728777217751925549470647078835566956085565175301773778619424466615062988142683578455827989532782713319869801668563685619611663469696811073755800760307109195306974085374349642611374882916641444285673218906619045660644575061655860440520466254588588060981460324735411759936176633717088612376469945793767031874547742029847420880705768891575148301201209208901343591413238806155865423229361282707708868910094854121369835590019882970944925084140733651829540766756777297897180354730985903002433751203647558843262688965790843066632929062469565074787729208247495867834485406163439572278483840153080389580385137123550308481983690020796577586399539103532984834560909610722632122162774413765482307772103533396167256930725175071376648452247702283289245349965705191910223584178626104959592617299734612532984497365201705501169152480576399423523583074182830967847460524415619645064470850962300915174915234780642776840212322731284669072987646169550194493914589492172893912660257252153614182226516365651877011023105864004491529583889056629205668717079667180385053539478085186444922664610444928208003849922215756711922833661870351934423418875324820675677217971391307986804607641202066094418062219038106869829856460927162564209485497882099040361539410032172996123900930721949935665261776205332794017554035577633689458914993580752239962426418538243809358635088662595706249246705513305836948425692286285930766764294987042476248000952241060736072864630504544468393111683454936776223501625251669597851411512882308879400108540020327441702330300361683777157371705402817674714508079136022888708270092694467592403277655816845568730121843482352506597483292686053504834446448077265420152632592151907477364065063246190698897655258442285034083461874654963486386682766057123468244121631064454684082783553850672495733013905513187880643700677551487413414180024040202214290349302957172751642739242955837526689287410440411370644246763681167447244162851630963491507919473129899492885658319906779950045312041877205926801506498380501668673561205889061536153544138302193549085792126207908199731940728579721560725200268731290638073949840575977842879125147715484717748028199409385628859600505340563504762990351284389339638611878716484249437441900397089914232243394455421965566914894438870206970370614570754042094817321573971528711025356305715949614771839522127370698072134973212201873100255773135747008118955794785512155751659164816551316992512781552530461609523256924827160809161950426163290373730073664964249643138051319458284806684702541623163640061520863862627095348189907988867899793596302294510004995725704635247774754152153525030180633038666134437423262833592812527764148911102569622324091069745110437802472682273664570121140902172049803646237701557384089765482019616693566296578005878586046406344323435186434273495827291574691452058282598760333625568524786091482816155202986692269582796078180409436270415503678596912111821552742777168641119965835750129525300779334951678980711351808344539609043323488083749735690497688381172048346783066616619208469512467975715951922182182430754076936950284318089025224635532489277782608915366279032786291227749858361454084002996891094889358734837941310730758114497380061816318354757630511175609675434137618406910504341334948666702575752658284001493518297397992617942958642649943673970918653097976550446438882286224950763965314788315869834280495171300042259305149662250239134187502903218967122723352803401485012970785518571254688256755325141968357689410241552202884147931144637339034402613438801613928201578342567389022827080015571069276669188284091443180388702804580893577916873898503377071354025860081054692610038889443588290435559514038376643832053208507689328662405416159112444200288887169785872387171784153615831116242517752715201716318855862739259823292140623234031991076380032628972758969591360238116923679943693431809220838099460629847054589274138090878191199402937255743097369794283371405522593924418184693834033862197459173397883037955521020758001379877320916285151512725817551503855139619417516839540755900087404181333419254221957965361142460103978252923357799734195402802625669485526550431541931315714713594029463657807971320769113220759820861905250475889151782948014935286370348769052899765777517257989361461963646461239928013952430133357972186122438879132337952533765954669775750303104495924995841702972438858082513558865809948355223482371181266233354785322438080325202277751156878705797250353332176832231889072211179667944060248395093155935672280744489364500422678623760090586165470689690393443862053224024228581899823640489169929446414476118981683187708882408140494481722765275632711992671071622536206293887909368916631449235117358828943469158739106692051096142927188117390076108905336697960872383726528580059377543291609878519035704250119916123130690092932463971024392221584853632354771906563449280105333457974108321949266800709268191346750325034472165951888946703190741175939765872646637440135592333958874407279361984285568259056739833359785340274345932258089716917967978593683108843740578317220911920043524952988562048480793305072100834413305447645325880197411328163527797394172149770329435932920840225262821898815555192925159209326556605062265297401244436405736760007798868124286982629557079340712122799384482530086759916518971484653060201169141156651043894339392895521475452679969332071512968006675493525959047836576476105401615769620052091100155978550384039435383658503486089797224391627803788960813716096527434203140009879301363441417612215290569332713913794868594892332908237677896859340891525950375675461668497798082868627318473683793418786896162315089427503680717183620447969236303127293904906897564462947100726348803862027210518011095319198486111229764627711166136839932924243697101484962076479587204002685120557502001907133634076577843987759238994512328254776003488578612456767210547925071119333532750011448871166630372998975442583752009306868730251807060016381848874594602253601104276033755711992832468772033488596812969305509489856928632826081854661938355392069416762504465428514516549759375120101849387973646977972063499940296068594798924942628233616561378219377174465659345880392668345746719656873137885275788685726120449742273334125457748691159526119674598637597460088650431363857352877275131666969428218370539608572870552396198781119092004262321485013614488528560640409039819003853980867568988836053660488400595176966750894081825716342288562822660119383245555618164823698399573392758999177938415918045012175725805105042943678781938540508658782464075347817861393581604429077117091605549524028663577922932633933315117733429943344123647520569285137056383705100051971299107684949156603185138229475940506409784401003624159995672329488550889517938920029461629917405710378105518283538260471166636767349382772035916429513123048376082926685726612265429837988099287377295202396235550256232763300493680862272315372110414608490299466611680103263930997405588087988526709302804457846400779354408194142109472339678282870967559544427291876732821091803749015680179027091199928450817581481428938709176284525884038109144535837203433231061292249617148270876424540939474248158147309093926173387266781042080525958387376425897018232797326617723085372578862504062309829257029902397982773328561116244374246899797952123705594345555964199335495287619332699290438442515211007748617298153707681070022137644461114058894667194211680521377089823688129762878694650287051726759491075410878545688835497287373623793635662142073238478673552788978044151180249532049381417420215216935143548209268248216164085050440900911893967414664970369839607678641218854315800434684303277231774545174476099679820982262199658304739406537854590624224877925829270293473959697692299589389328118948036275931699642350382612771876287881708625384000699625649879888212954964009277423118951784636096842034340157216993364003927547168938623469081587658175017573555300455686149872114552175300822182863504138996520875869330522298720992549634179909258460821770123463893736204865144630905355156395915741235647091370944877549624611949373516692351022434721239342093983894288072804629217297487495032516096923626868222079110319135879977043271064588642738747904847619571247517004892796681890938002142547272894429687996770399421699038209184577982099344669420481485608848189761654668923240589227810175542384315226579753587743163748469387377659519673644151112805929291352879983618885639621493073769129485745147501671660179361226771842052150624807541718969966548222454331178571287900462032275073091153218453757309992094971260232278303005466155960765760420833847670005781493044086173100683608709461233511941060382774674159312103938798464128757797180565531145950190586379862469223328537603088864631269367725032195578607636579375673720477443598433987558283184951298795555310541280412199594246251686902688169525016744617918453873170945316558732432321244022643797697299860626807868754164637994236985329697445181771644528198607348761081165388011173448296025561350988275562860781122693546672647592570080193488414800167739308314766000706516156881387309640031613572014432531199595852433658734032515059461086067142416997539932023774720931848024566188382419374493291039181651060677673646315404902172825901836044196640384549677789206876504917785496020303362511290956275784453801028582966130475835305815543079605528731827721284041744744758233265024442127624499409034519713908878501996613456275334884659623671932560754638210563331208232550001976228594708024508584068676989551921923917888454641829368302264999580336063436913302390400120325494688442961606376272436845208273932316761411616855749221899860740094772523864624589084211390886638373879997932903000035275851652516720083792157114728489563389020948016754490203816055783567195319621970285695644433967511848704338197380528317966548550786159208786337605692509838677382434434212205032432022048352052097202334963112094755610811015069684227357956567337107244099309129614503506182241325453789800887919127047739040725940443726286757768039312045016423542233736535033188472320349089349081112490012845129742838943360657649679741454700982705352256725370985697337008498914359075814038359680778489684090606459281827142792324198741766213114485292864731288095563499126827245699383101865045617215155102757926300539325490531626940940604283248198376792273050869716804605868278510516615405134958048642298904798644046406950300487935314921900358686020856766935551744205043538567947125584605736930490753614897711849773827072946005616020595466146522456189025019515404760930601352613470548450068579575662557775254695423473363374554178312589071760658447448434612940243010375944624001047819017587297917508956196787013714127129435925875771414987429151943094571750780805076819380786672583516336525553181195994339725517567824203445872588581178526535928272759488450220509328742943650559193059764077783864800838809470465066456251671487547062171986734794977619141345999228420560843047981606643161773583221803578176268718652128607867396533916242062934155602301059010853710583190317397026462288211885179844197000012030300840731817620516764976967096447079933976425231504953756730848959571589131097660681232057688889023028865177748292763460167155953864195918910921755687201238127891769803046155468835985738821945344841172305787132497611271209106425604541360368898907987384514683564095989798028638628306538716342231495066446229972890997312244330712679203706473792989575386558283400624072078446022527611868977901491683640618645258587426179234738579392213684844601862800103655956340494844590164668437592620440704755421608036215019245770945881577303358352232021183714081076551522481766713307841662216901304763020622294709178462232593239741549027124997037889932272934783958744411613159261348889225524713051197762136855530226601772448978601139909032524407874423984917574773161724628461912056770930681429512786755106287944048862834008493131768488779538471367687064245564246367943033508566356656765511875186098429752826751209784898001316200564103332887663311021932237933425496135806337684493701391950272114279134695581727935045868921325295586287040597250750863579991586815933243975199709914322722815475166553803622818377321661223618574659308201246406561409332980615889945224128134984894138394011733232778633910579211259577652559354048275615121634359261442297326281563663847972998379242492646474982149799036861496033614485122542234795934261241284313954094862383420621246203113918565404534346487909589430598145801102485764550192573907153005202855747893812168487212736705825229144043661071567875006864920162011387178770804945165537465030899522118687462981116913324554497507612941743578105098183123068620837709039175673178721460639767133739414001516709841663436672707272852056334703534955432392302692000816015818325969543742879231916991144117878746831052292261721239999106366585599520088343048742258317178409497018507228229282599411524244408245077090273176920004964536143529454676839479356365046954928209436863362445167664796687439534780474974451973752327543255728576743779473652163222219566470640229165408673079554596401493630377943484013552630468399679507459561552721182997289394184003953467472317202667960224038428848886769941564771210057784633986995154212221590211347976557992431868083483527397025373641457366008232032724124465063833608650814424559834534837790473321829932034787551073361938709092916770607058695729574673435876379790225108196904203508596783257567481087251649549478817841563746826676285830097016537370353063897913706108579984259936513545482736185340196257019364598397452755794497424970257908632925608011588715961233203358062141181108904543458412136730564302985952780479774874825051125946723644548763853343167515823822379958604367355600116907225449343154351744157104987774856185296550791757494607211077842214558960010935070783126266450277132969579618829534166480057814819087805006165204574835633630364563251832786245015506622303970625496246972974580016629075427240372478361104860943818734084168302078124010052112209975662858445716830248367262289904815308405897966098627347535905143087288850294322577836887464343001178855165290282986091871836340440753192722096154400377995125003200391197253049038182674838425566610988419710124743829586068325789839998838357307908528797333696856356343653056533061836712611631082537472344528565772532627714709967141889741616910892792769342740981092146158684954162395356439357548418919724820739519693542460869752398317662928178163159456363220609399525183319293435869317042482700581163587030755389442043977024247503145756471019022799904523100575818559934003194215169530505846910288430986997080130046036931960180890670707542568343255028856723718489522693090782314467787321350128081613000120962503408974927885414233930378491803770023159931559359324835109802425913384706008442211035754022912243331188649197062421257113529101884514887783566046832447363390735088793808845388966547485469513095339438701177470647557720508154029954809923826112779132325245427074946353726332118073193054578750749512969379792563153176483267383633747063082614198087935571504721843003259217451350060336170334749013663360697653919820586164256822758537728061488685712503706463084119820061745018796800363851672330585930993611279239392381530331047750339233670631875151632970745625979045234951199177791250822300150375495131619182947395011004274157091075119934912582876117977409443019845719031165735306153648687462756024320862611148526557523245191275646106217319751112888391457598228259479651899791129937702087076395052611438787286556746312327940465752034820366283588269554701572938316172496364165829757510581007284887287686918177867866019626320047873533349258750610109840650286861086668866326910776292158544636300753254947738005142984770483896880627633999763092790337289682978465248226054431508228560418141358606200509302824365414201450435271552365928756674157146092084317798735695739067367892522233342913578725394368483625259994005979646702228504998429950168072441537578578541700915217157566666260010473215701570281304090280520573495856294904917816079982779759290137566699248059428052403096333816120031963168063393570554721255588728567209100164718098561344678165721150556204150697893087487741610157894131832936388674955563875967798658209787892063521924100536931350248345667487671832407541466092335225942837094350129225885130956361191144234554720111671192078873751403142087289298670039848298377290857889132746779470513132175677400369496708737142085361558699548041096825077452863736857419465541966780794873815837355649056275197587481217474913570919772676198569799657283719381814365212325658717840821792218133112344662260681156121088005561316403560391248729918758668545529252019438989664262815555758885363588177051962569994648907503177135372698173678987547174937933174476005419364894538760116618254348634202897994038359463705428917445298831879941060789025054103139259627842282703822832342967183809782457108936152990972739574578483833699475681893894068071849925712633992432507413780751343791982061385418014893451012471677882567057786285433103953030906558905393899507967003192942065059359287276200667092108885179230944951628911742289359271531349392012796936159398571931406816897737967639063842895195610343350694780496382886201978175162874337457326731221651915593638300631176474924115341689854966331509798643479785130670337601684317385430134467553159456176678538978200891226376060033874805986219594003897764819311550585869804425868290736637974710849513422950467493972164750613444813782582754899067635843788391772936366844712457192309907845429653562696170379001992925710466328228626737517353692031448144801268931791945016650876308250446404545327835814105606481131493897996720114875917425636982742965762766863266472373062994141722217041167890484248595722738886682827597247930825156213548867891467626312154919495350867450800160930906499084056018408144118506571559284571534908046835291973312420307478745279235829672224282440270631563616088632539179025753487810773128239557555265977763199407110715007350240892058354601521045038173022698346909147853646204454805675420435563463891301089328803046486232871250841699238305751244481357871625039717431424192317886974098110853916927835213874563738466133819544146073464831492507653071995076426842050932141727910631584180534208545596538580401229939149319843960184914405364284249166042100360295476865819257652352290171593572665015427819308505832154022957108066681183125319694862931483806923641837276680384733371589100004325087828311136895845212249279200955948110324086446974548296290152439290057075035193210118047162020269618789687627411456043973590406138011800784687687799858830090548362633168179930585259039543077551772052188877026136368385195810473453287588177528752066276868810511651543166188651304857632813638527302179651229885173074928182350321359415397742560988294706860004334108577926736734314226782759119722064267571312870783663051182323801171592047260657640474031767452584087168911222444681615921645174172492846923448368168535697097362792063635361123573554050081980291714248977434381401503627616354244911433121297198706940850924448230246147304343674678546678774886796439987660563944219200192632228887247373367314407941546118145937952707700226431282127113883298709621174629076377221422915871560791559098011966090143799899864827399696712253719480642915488955471240876065528670037128657040671812541017491301605521777958361399604919947355802747736946379026224596478356805473095099403259126786135558173272599435917355023069964951680300802535720618806510416699631656780463979703238398659519542164940898196933325892455220405145077409467137338929477438406557118337075312962615416471745609495742393562972445729867864737422017466242670148238928996678574745449665538992356314014402029438115844303867227448345532634222222240668549411502372471190234175099444798205058957623802554963024690031906528594936569798376410742873498663555602775238051067752108752483188761244430054142704069408145447434046318652227223331439577576800528767259461475361276166416031527709452786799733398221555985082810023476443760966869711984564664842768302585347024164155512890399478290060864396336417761315836823527445343072453304498765093067254297206202278059427509322399785147010059847394892404276383766261749147603199079687887399719349078912576580561470649927487847898931916135636395882835871076415004729972538627413027503126561102949899019202720530966056714835212054361608378527135433224739335359859608235937961856608991634813560698583299735445231802235751797224218592865202684905023625635228206169721932786851343341953144482120235890190819062749228339691475614624649017999442096353625832721222483742082941557786724253169461179681096429269782150087264168680894116004924296888274269707576261410827458367069650226211488328385838429886797583952501291651467699126702902835301191899094316554002570704130019429834918958562189323636017549389079820236153092020360971308205475777269030474306682983188046180668565916452365118257342107728936132761339376310601197818259781415336429545048899813512537161126515171299369618812753510398185999556272548224374539816230019506853433115159761131183609941196271378135341258394963732881267798398335192871335345870816419354206745960160804765420725905215960317664636761470339082973833049479145673122174901267669558075743736659649078213427992120143006829991411433838489374654666070910499695318875077807699161090858123159675005440384005280079472970693878102860433084223281936514603927954787007560450559791314179061259635225440158642764082639928718322237386897399225146480591863481400425351247629888191131563980263969863415439128239822718113363817063103555779250525628740087187405790415240986807435437216967207518821940456757582794423325601773732252035229722812943088517456726638939920428107479100660055544620099449285536723743134820012711016962292623640183377001653075884001560342318144835200704995021416431398896061447171701443861035525155301338111021193253933970608901925652624270984643367252245796210804801176122854795360761011101914908008608556180302735809863355768967673979428638430279223906079748962710977136093862501567251601836107475352231362553598278982745547219383269952983127568715191683737466585541932647001060509615141751656436675841088977142669865140328194132207247652048501891937823464817846108755937577813252745292646214861741892730280348839167257088028464266715164144915128405456196604448286991378177697567857287936122377922919310770473482410859728320055367458061500160714331768076864438731226800980942196347254152859667350579498742506248224720333470107758088708126810154203214695919415065370218426790439279642390911132361689973615467712900884231771012850442927541002866393020418132579054079839261556983124229516726600771313896870656177829932894269031440280087562862160221345444308528342120287141959758813751514123985321938982693314922548508085913062123148832336418176280513697329017112600914295161118868916050035034469298808271376880600704269838510821660586774568221102454586737189136226261698195573590848878745223038555249881955890125884514515842630633835952270717116979396344769588161211125991154802996116377646155001596056416905966523735290170711252196907895580541506563302746707435077794703221144011723568863897059171513395164067977367921348464424222943651371877426471949942961654847729425793572976398267475537572554336287095642123176409502186075253492085776869191479347568517071923512051020913002019450800374267025156760904212394841921722430891051477620628569141787389440599914955793943811396362559527954626351050671461446647941381499972057161329991280260801911019613928895073103841076135927732355342669038467276888079288895349952748907113847349525455774603743863002725960833448400523089442665512073033824764561663587725034536157537906314467720131729730387621865420321146514032921617130081258643301408992547873776063969724273980268829662558224917596563900333050884158868025325414177512738578209312312408227255069242179725308524355146425101096732365734626092089410199683091460909918402277724775306182128580596637910765565339750141083927076793959759920422163429929260499227743153954931271603964320598896123058564665917527662266906743515379657566604020051651195978925388865456585089635351827111782953659225621577952539209860340615839524381255831599142803484185637410784874177223630170922977708679174834528701608488461608270213290032556390832874155536528154817337330776223677489192466873379936983432756860607945342602513801042846716936941980129039072313744166120982968792138123181320525080196412712459575293742305886934977012631888200406402604825862565646725473299429259866057365373876295422054364875883391251240415654665339963694925146099042583459245577618571857168085634540971990180994255691694600146595801389926209385985502486109701859607105112497951194809480215838910217570230469085321585017867229790519235156685630386025929430365137121609775539924621312838059316616210000418996404327806930148645132866469144849644055567532801100136079362194103431401553265074912074132359018166825780298129241177164670059892821082334925969404634577630241618389704326690941163648908671044231037173361072939182788230141966616340447074081386770266835672422462969117018435738993196297814716626176511927435982176165762237696545678549247072454781648314738324808743919692802795287305809743372910058829958577909174781587259280379553266601010668118296482251962519954251578503579645555833662452314339484574619785179261453198211895183054937337920680207284594094037332682788567179643213563216767043506905673048310288343231051009672058462822016869353020197064640606697344596834139102296276464902983619563503282074707250859980967896247005788596286802686381503730541485768055960300591589363969126828525838868701260903268924325382423540107600081244737278348108638907039128650880006397406551308246160464221100142810561572775054086002348108311560642721202003565705179866028821467995987382823742899087621530082554104497468261069132107792107144943660997279863479229015215083456424521990364749080950666578800222569222423520065618044186219955379174699642143090006682381055893697896018068828699598263785576601599861245675263076201499371283046833857037520881946998528048082384555043081201743048999415809500418803488644525804302176930320753194638678664617215530523111106743762006879415875867027082172470805281321274556828825981744380392635985950407962198752782519129618216512137000301654443009701654100888385252630551661750130655446464455980635666894546860685983114705639411341434166377867055967936770647359015281371303709797977655917128529173868750961223520220663764069472731398560809346938338907157874713493441875563293060070314142453499502716787643298550913455613126568717718860953285879407684366854323459922191190383279790246126203534062914589221709176816198701495525153816582337244159326443475437854006140927495454070802146753845013671429423940018248492300351854725413932569705012058763353388327353277882050137910353041824013841226951404929537420653667534708834885821275934796714953491312115298904082350033106647211760154049928097222936033892809998940701300989161035418065786117253713500543436355328812616476995858458387237669977321847975773553162178075882073936255643274741176526956228443625528219049540944104062376840224837390077443787196601457779829195349830086906821468576658854314556558025892112328668364751429340326210298674958480097773492612417879339231357860092694087780559680779270148639028663202287038349253786231108545509080757827466836436875271368247040586794486509859240949495314136203626439222471324406049657296121809288403353377732207493147260939208679021399074934365828939693931116808610436802230295813556941196557715345412169923738298488579886184254947836832743903389855357661171199457636711453301983736375195845756339175768331994125658658274436120943455334264081080947062567368246152670263213444898808626834624506971314076919774700826911379720447231574877062170275871636079729935322698403523658113147928796164733747950867243439492769991121683907005233350678421642948820517513104224198865028773839414543339393621552453804067833918111205544935996690880327328927237719812377306941986690483118031064490525828032525622074191333243224037936918116816260202419681534020735451701251718158061430350343842314181627391375048693758136747175553347238855207227910291287368838946937095404418163532493029175828190572171194170367839295875056406425576257639337857552421700327700847729214029893563630639260920439013147299168896952508396708188674349395806191830900982787935694888845603069904819992772773360769911213456300031594175890953904190778718061175741618691031722990226553686189329397634373181536327460865222006035087754812066946306060303935191018502980435870656654953760524084759173069995873791271525608014665525501047563826500756498635345157043188321463797853427292470338231075373191136142886011268011026727230839060854623576467494360810762585198533222080954378040069976511570014078716669653401803060844719238394940349680281834979904718732139810904983403511757604759384970302836222055636104689883269513830107030338360335623491790712064023369958138114701299989069861793759003418376345240620055987299326448311753643513620082312672626735618181580435090486814965205003493158288364632697052295761454883734741290075599684302145157580852011298791119200851819319971727022114480628391124499717590679569521684152676845086180275967349057066920513818859117565612720613550704708536821591933905980873770269301593293710834071582967679533485889904078375457127623116346368087198612440423438169596773235197237078729200779769566725634074714525522557184256924927569830641141513986757551376754509681699135626948755514404102658554723814537445865574124333947690262750932254556119782974184775950442869004699429042699327696103045694970124360237593070829026268972149258428210391995386033500090163653064881120807262023028889067269936110378907149969768005355709465984563569357084034741359709811409140957661367671757196906277534398041748850246325726626832186741912939189456798414977407257717785864449999342883508021115543001968031508806034490863412102309676285067716439767001300328146751172895077980672819504547862705186591121049546978281952665922387972242682809142731804300798393768446106566971970311154803609251873793864355340069461567326086501108690794653170281738214015455051716489978605332451489990893767829836343298111879539862704873661563764895623994564416722406293450353710561042170366342311259527301491984569038761621479307152100616862582957156658987670295909886573847677597027530559648209780602279994978018436073122101790861314006873004416392635965383478150751698007290321887736254623771589161978346563286218732199316691504135270853594962535802173895389633154562932581466056407058879022333182997070999165033371091305418352935057369065405754394897048703207701332772063774382336244980977911505011621949232074474457413604829029334338483446756891183875195928447506837785910107537256453594530097696559501350542731318570851026614070889892822113331277999438298096817852073976238407590655455803146276670454176200659406591451474881792351466707637036663856684683495565441834990109306009388026810731171294448141117191473737923757305177346166880756642940402043372158117401606122417711487376312120364774662368631640539352879191216931958152140437753399002269841756654346386160428700012159435282900420484488892223473780755655090880057666825393229453389213219435880870136531451287991922796741938165094631237724696892134604019977270507877971348232437907131407751149394068701438194488804021029999759046272032509163232910473410199418346170184742636611614084428936078233892828399133188998964655894425808469800882025716006466717946362013215869387552480369525110108888961355902591382078831464501891185393666744057097354599607096303172967182911453733996852828398527564770587084831069870034059907253254408318639663945263548274921280890075622595971443574001991047553407810231684758102799770843573042448707253269517179066503955884472996799289675063823159344204203098936749383936648266056317739787839099847884771746267217968295287093701439488346499047846891936598402298706199482680110711360390558019209677825627644622893970570440246216107061160284932688187386818412902920610610211835292105563273739549905509978081137987357624279517337314810525835198787455494747500600761245946027045590806114790216745984345859433195336719333794654029547889089924483153737686425651712517679895161596369448675149358436977330580154168983312147583970805111801487917431383392939914022858645409551729116536838032806624669948173018713847568024793894811136723741345833732389007611396844204103124875688351410021169888595493091637440507084413219559312948033534127098963532023213239114678450699302780555100027802655456978359995412188838026457660335921620620371410363962658883543530479617646676886400797570613672886230084941576506198949165709719942668211026655212292264399472199572787981592899234957132884607052086091410750533705299928295842335491300929751683875115835842818057042106581125700053110022690167374358899833957356865423746379679887316649842836740370048698356171203699479768671315599389098083992268919726908832676641872199562760288167657621911933975212112018075849790803652708399543571272150669430662192339015043930313736363723091766061526606401982458648603493360795731156181222738975929732103971143535575424878019317923354911195292986868814628999405285261418135007171088536081742489321545249868003012633747543451452297361470108186828378076395300896985690063260617701444586237939688872711489161907826553026804937750517237212236923522170642009955391252584480420974891564736586091032183421394664344853180089190599447098322331725790357731682146122121173778892109645636280328965046401151746822222712926271479774770588150883791794485548759136810349761458042441151514188221534860679681748097387298079206894453992602444562375946390929994733906153024986764056098768229352030395141791954976484615173892511117432997296802198567426086921688253676476609734894484288309152995361998807100586088905588079700510949263627410685744760354165980361063838792582629016809152914907618812129276264493403510915831039981152381889139383520809470201685301380838965209873610524808788533868321138580442094626075674090778030337087957494512329456215143899512001298841410007747096155687628811924120335319038191891432325967274458759628417191560478832944280357478345079219193909628531885076497782577896753902501251031971421729899622273649711058540931603070036923033133206430120022086552851211550815697823103769121214724752797218994707305021389398039767851151362374358891382765488835482342589493943303278987884233606275203690329853119652735995303050665707175168694447697735104947619601812017402538736579812102822174492937791921464992687659832968944598388282219277685941757231913628525525518281951226022250946942765304410817722090402630064144409875418335743640615892998354936343425107849176020276989952089944136198703400244359503511695212629848263025962426595561660235462265685190799482365472064003461808949452086796449287958118936256540759411830793801914089630373850115420104990420211505764715117937290638330675785221461156611976313194649906552421387911470013214937268083411974271633856708808059108914381618339811752070396283271854821436691239912295089161516665773849917031555786326943712760545845597781265800364981087979141676155609789777468594546946369286626945710855562409854562164134473249714477781825852558132741935088124739637732826028932689425263935877483255472854964543598893070244340869057647104561724316672241759343301317246474392522508136567426337487565359170976251508282992305655834717980678653794564255186957425729640557019851711714457517906003019420548177329571993336839150863716772257286077164206995861814963848441162638501408637138198539694424801719078998644805745576956671736938492211698169810139120194974206357590969850340129900682425881966168775309409770011242505584605183505519210498588622072984616694443074987095203567650382230905174775264528190157839881451321291034528840565017207841185015206073881923984019047539682243457707400099498940259912136113678379344371422307105203431796190929819656623127284927686657882424446336539234597923268997545287947636824412611420223782782921894633614809776576717523947717555093640401290689102252659351397973984046211633167678636288201419225512176084640424297997235387956991209574116491679642547586248136159273187290740430927207410301103622433369613904429674212046719530599547230871646444174764636387171828618448699008463419548120647518177578505355109997946437982917871797642984239885261083174110172650460251087994086733763469436542512259557901766121753775585997273417416449684102131228767788775719502818275452037578261672473935641850126909166560923275849916784680794969838336587187121658131119629140377784219874401286887501330785475865444135654531641158678769633477728913559947536915385578317153510525439919922529521278190293588542146994372089382686269511194044113310863361250631241826691875681413409491222519684878513569135979061103625268866771187269690878367997709410870251497388159027487127701315409065765285804427031306900520645933901239698663086063786754508100688895384819685831833840128520369078973959795905868583542848950679112022973400882544109237064507867194433460299862256820043595491032885355737943575203808958791599296355152756118853438718952175882557035681434003473317363340260628834421937938059451397075564852131645562195927643525727217642366025875588385704484609105398977721503894463918801751761536964531443544108916988819494629091990289415439317995718597760539467795772220080227063833977361317469671848227550625424314310948044829379242906997291275999031331165774922623394882314921025464467134341223307802912478066391686935616753960532658306879749457611130840235854706242672419625315615234438056630465042474964085217474522629945736115321748704902662960763963892595470919995059955719563876818650836945889114886503030005146732481860459628633854232207724018937618148569010132003599253892249804511457852175759035716830364734724349098416024586966146173795730710321176747346471449627954043945608023434774861405695167385525762482171493971095779829260131985053571660665893235360634891449956103776538144637564139125019788877139711995143936562518377186197893194981408510466764101122967223678201299498774157370802506876086516669054020066241995493567158684502343244473074222183589138174989767290708804868710824451992370090605917392999044159111803625611419514647018622702081388932496006672213798142619779906914167940342453621997344359084277691310028862235952001681731624747886074285053193938207101329714671611654200545432396635508324789395221315975926152161446506534965799497148035130709883602799122748323980637989659052173066209043488003910750878468135245724314256224983934227906905655409713462008340751933943935897182126861298545121343704574167779756557878817081904064034257694498187503259697003798106859801918878133354476821784128182030566048788848437822714534994554474757332593799676534104245867474002288721679139618581915046787407275257824239699353931089118744229098074746884049240858357487107318102626721994391857885380045840931124048669700374675786800109348705804862245272761733171548606755772472477126944071043703679659858087573625416665315580955996957734416846752787394126352462592986477000596346997028047800265662447960349620888263355219099395770795524485848452953896394093690334933627175053072709253217771888807938487771785573123557098633529695351107253254026973187699070499055591178676032457981571050547887148119433102292591717218570258154488994610116986647608635792261866133956621989179463876765263048175046841636304555542126842001669163698924258501153771657772070738550398900366431932936495256104888530747204474760604533805059323647194033262077109115183613009914503604460800380451497584307931219597002507378602474366627706914289825292874840889513894741489085120581637499403863342492629713098616531035863180842710006583165000023773469220569007415499642227469352598093074532069147720394281424989768090381722389899526835883024349932983159674751857626507956888962861978054825739152863477495784157489719228936698421047068547394800657092796723059889428833850579972403932653922507845353983578126973655956895718100947457436021465347893979543678229772462158074795303604940665830301289727035276765940730083463074145871518716441713442734832840007335447339056596123215228103682622783232421271195440053664889074849569572544340773927401232792121944648591322694425787267483678335458244385096810075020668581464113543007100967030797442421376146273063718659983148115291845571773540810471989465999787692142482077245133183605634288673470476984158778478648456155132429427634805210957015534193432013322763453415285064335972300231794546881821931792670814034130410892396191820881718394495788756285761591188304307454163325988329049766385283505117287906881978008185412373123411839932560892572272272576304568703616552395218107204487416786049494574541722382394210861749477000072691272793668252662376990594787739940015525495323490931383501318793956574183450425948532351979237440877016442036993386514572461106786953295339458769065933902616138158590219779718118482071853163481078664700152745647930386418879633575376922034419860318202348467064425012616204676467200330460684240505820662415827546022897267934781176814875267773844413877760751727320777448185287674572119037452588669355796723504505826036957810348407034127455640633034771409929130651419116527732919401348067836747253988511746483986841367338508576601633858299133295937949105176400103775608356849134095317906702331823182872341403854925139688646379646714973011290253275973866262552105177342928389874629317815201224496757020048520554228577229431453312067495987560445611192945540672341158953911010879163673051387921553251662508863664771425084343209679684911392997291821809448041631167128663311273959838958233043524247184873058076081845870789210704831111005757647940586136720641956980446803037111106328325526819716509074296036079632401590179467791535285425770649543160599596166103708311831479509081070474337712532072273440677990013767274378392029502370467741031220579811897987711007222515932824527135540345135561051894592744771905285341123014312469143155472287710482509255681812700256731949529355244982027786348154572995163828942895109261137632664806573389855236118744565948097778223933597784240969387603615480201569442001089373431665975032015161775340869497663364410643508035756692623520251368016061720617832855278850495547037804721094496176389778791287937210216847714670129230247054907324967391390580387734977357520302442911561682219601971665441049359477257719934245395479777054189277533312420418961088456995670354167716528631924495971959361433373055134389535735452944377974933840984593883977163136204083962573229270230843197683561909004230627327149946654156914371415780520063497205107234661603489994614778559699660864454603018211835444038032016160512201553473760326239428360948151691189516602334663904634780218779916739941422777413456917343806124299232798467334322199582021619530179935516399669239076234043267635716377058950268613318437998150339284810170930733400055224262443611641240876769248151028044110371302716454271278454713121507023754405790923411000404009945112121799551942820597115741531589189409786906516950428755208500494709526855504027819111735200998951712356935144283563792616621891304830604865167313069720557957421311484475621204604573792670361452767396718949469583563341828045049886779901138808499565572419241826398648578983387341815017966319415199139122351638414650493959237389755120140876087612412966644238852590286372939757558335195311233013644444464729460527671573266731286351114970435834184227496213831818190666169417705380562397513880652962070567270393572661689806816739935361350376499450583288255273862240830545277009286884164254657063249002393767087260770633663407501508756401125885516323687468359381210418623963987230613058212272877116223345236212906101727581903965323511354146475818758503512989165006543672425647336137584571426202220913660026748629160398403182016161503668015201408332868571644682341614342778635890264325173720661274862376632105729690606386037328506084371941140088600556978652043956615532169430725852005261027892973767194078987615068483920491468533623804703965392210008066380663114647067113511864403123644390789985095334945138000249139121970508725972774179900634981373713448822712804279328256234197541137966991499454348003291477592042851193914669685952313995051432707369205288706242266675551121715248452326797091218833930321983489829223412609653033079424868429127190871197962858149986115849797662616136489542644561052793038067348367795850208975849455438165131069343208878636461697549877972401324609334451967140795586113196100527524433211009762531483250580416498353754931351692307420295927400470484919924560997036980464127878020813610085040620770783274313603762147662225876300918618566094693427099988470255173087433036517127557711037326795501828191307487808054727362513490315086069595778691183459837082672369845422369137510479103141054417121081791643440211103413953406094670131969790652992776225741686783506299489072697753376371807721334068114324777448229785183596833001655172045894452260935640141104024104939834073364106194920826939674659664605710884561130474305688646921024484571808531144064959395596586821486041500020312689135118190763315120800095512966368529175511005310743663861218515093729661754214184206934715734150049323661627439584130367459782928143285917092894488558227501846068395189624347410671575081210158642974627237351377481161451497413081269847118460710869732726703309899624632027901502544536260116243215737462323631040980215311665679468108810078745478414904611571202317477586230424502612111798442665176740894450585079478115346817364659080492552026204698851494789609473479326807963242687800007518642678029310290989806950474346805339186536960008924760704530767771363437610387410637886160414181301415559129502627091649404631127196492234154912710383423100387194149443172711273966955210664846317872664411488117404861329615708019789316532705272912581660554750253794364297896838703581700031876554856820646668869318541741698249469281052433486869626733618499386496658677835829544795940795557340445299532236408286455574309571546832994805123220906394400560473907265322050252926002817532688604977850382132690968380243175598909048464645871847727813050453706768664370065657078008049752442060683977765005050487971286748984958364678319374967787660742325743955418255681374251992737987939859452258382925273308322584524959199113251766647299695982883301440409096738255693580912799874423770835222449537133060463404953842754256045686930903960920119172025271398607079458909915017503455189665445989714860481292653964204512092869319704772280443955074342308993166113029123860545938461850913586927600325234201154603271802981370537882839858995041023542193347960969998583361780899507435249848862739358946562671589571908204148624022999345414315692883802080757239867119236118720152098193010773132537295115182859461726840288877373027013031473715943150666163710059359565985994728136144840474233486953233928290896302279108893843016835566581144667955121818863438503282922510970536035918806229237172796354473447256910771652483342675006201206335921235745555258824205927528417578022291959400353337298448264942300581754475804971306897282301293539001087585078117413439543196315779363243142101587486094290253925679549293970563937104640070461997440058014891902613906720460425211364149790923739426673526889471157025532682853449364955705223197764293186724602998475902395324636461165631842460094473231819232245373710655056801282080968094956705621420109422996568728921080800477776994285778505177292933098674749974072892139667443416578730086158998815152752967239469934326862937959906275915950799607689387616324938959708996477047861076384210150813182198109641130952605407213873759370126132552941072329216384740380847018833181029595190741654470169266739257655801910725684472866027219059604138712156503958439753252573748464652312046220126875564754535029577070359109339345587241896433925395667865192468309193967994420175457465395612170642573000261824842094502247820321199585884675309249159354088376452876433320295542412416143873833851739394020460320941784814262185220073919085808583338781434647779329301499428793063907448801319230119901535452357274803791399080635331333770042665692638506600879605571086884566522550018488086533936579250926423895105925954539375856050469366418351725982837677514499905074157232745021391258197839508498265650577353235332180931868247380503509362712968766790863137446736000866736924364980763335858556292966884219744215621461812451488796189436389586027418573197435947197318294921442135832486627438966649721755951506929139609688080083504892644487974917870583773883971482370121665972561274897525933299634375333489205343822749821085267502386806841930564948677300043367305953918801389633354631748951374018651909313747308180751238137232716184573228969605726737517111277108443250351996396315473552027479791071842125911801437403401474289485213373104443471661833562697284283054665756742185400153705099087151750956506470999545536011756135958416547175718459446729333079950363500479692546375006103044022987454655578776147101012335072262695235718044461392794835240582518257656475098425761309078584268725028543858934506516190060761964657758421611704641996473254110850072862483677280126305929623261264711377948928550814680197951327116237897517642655810525382690137369483769147698794243905348643337125065667718545926475664609416179189593525110827088870462964431504513288059503643258888485644980091040006633253322273584770497952777744020767575601658148855648724369502051458727775555369222633399908597065733857634527463825377819557196593544679707204841121779823537612082523916635574819681364294874419263951817919101602822415036739783140952180774179646458732912498123687199024235567958579716104232944509709161873212272844531754794185135654806543606787272456061773604784405285214564096992496372608369387767352576294333975605660088067050534452846416194449354599649177885570764463326044819035755800699322016001926661092274075205209575198965867161423402272491741613732931453167138431332276854676649468618372946550528881308709861049701716773151247643632477743743065874191879813080566714437785706226762984790721629711836409967802730955748042187230206742407472544945492257937621774121699978083706599426320828873570921683743610186368499713403697851913444782129577771483610172477352504966362667887153366487140145809555124719111840476160155265796366151472971237163963594593151866281847184329721501927524940560616169180587235551670061667925305158826689793379691188085619506538960688161902339372236279086923788777146688157962383476113641995491612944767130772069479156936006310098443102771130139527123356571651540286402778286792559467022865929937313749361905824723469818033419235189768128904632276947836407582592506436888974680180248629360743899115576709898086037821803409580580037775481085154750930594818059529664654085441781989374310401246926130908029987066058986032445471670970604444813963346771013400874947413923064656120221133416434610338646739993738804462203721057674163257480800737240462875710206584998751216739020008642748526912448180447534664478009201741213149114383057388834361925941189836240842872579480881935565670950834726057284568419344149786291051978550787596154573180914659783503552414961004134125475727239371977080131723540755154583658718238803667166406082028376421706527773076898166800717331015389247415734281752915573924688655423580504196899268449935025157973667374415339901285015858265433403653879138768410681033738697015063100878517250881167121493609803350538769185297666965040076844233376571122555196897261642980502117008792555792216071875430917955360951459651252464383249932338802132036882099114256992249166407628827543313966972159992800087994920779777053505255190141357191751130809350517248953545332589101148184932551968433520333524373194229548564036054711737963277452310786296738034234099886928194121757939191543206008430677607230794116086369356085289697932566628251311205142389541852683812248000566019587691036265003177418668023626006001602827104329341702967158928908742125570297823428466214345924297393920198151764196345381240484526479354845173000200811918986836481641534824989585871482038012506331196958712196130212202623556157430898116088271016553158873935419463964018397968939039307909872079344869162853602547294460909714777090200447008057526798013698061345421333833408959759758327861655384714987268325746768250493498866392557590556559299678555323792929929602051424018298117118984506520676555490447156403063713002385751803569231916991015412965408769762414671258956413513423500730300189285939044454441792728054844965313618173940833322414195258722460380590354997666129879633383528605452566717923292705764033458461145259787397745663657069428037336974503408748477626887875451919539103204274730312200305146850156927025896667410242385229124810887201016417866333519261366775665548763706592507824531587700847029845415657940362679097789833356779524732784306898128312646288939957827327031033240313768565738958662339740511127712388904833596595462382213335234119535518489020682993883938417536228162563331901137453125552900077300333209957907452356701467068863475496795411910547143939879609482971265406162503501405438568231071390950875137412594528896823476613311492183356529643974657954743343123319635192180891794751306417668451203191095591054149530472105568481863393846707547651552657535908520495492685556188733222837500776045229578573001573175225194654545328406087930262121136359056558454712287552787224495971936264161427767298457952665419123983176481952775061081572164975811625595373445768848801407828280643159300042730721031615902194682905843710367259975804125518659062986460042066661663363357510463194751879193118266339379603802705904690687517261108856967697958423220625619678827627125113728487355633108784137656284309856449683360748002218806515863071550308830430885857879243344464337963926585319078991512605695763981175888494442697622425785073242148085508553165005844460523615797821739215525747678859276112983146940857480901176580172839862671775157031080009938038563518786506799523495156540294689420270362281643645673378628123692927484474764842999647573552520894898482316291542787782353199961203819458107932062625796338974637621996340540385044085504563254818810932012796815639202254760632346076145415240590715751938294936231803823879201225428238799288572429285674577344318619094355999297512170414865826769518294041582215709842339373023641810873025692679816039366153060549180988078815393123392974788377653657627996770611003973321884845941646763806576959876870789175950214763547721360499904578829435210666834184309804851147105449743693989258602080997963139481167057804712115791283808349862030105343866558349502699226444418655751440199046705842410960060023825655062155900537274709860290182670170866310206793709503134962870619671386586432108513640830049532049130988040650323444796079785987728908349765799118641109399415280598574206083457413045144175119234553669623298277774517951790532734733502949357807372876597259280590636367118290049194357298557444768838875429863537917932940391269169628284450672174860264606663426307046690813674896033150185253680131327248453085011094340669572667649835203733524361994964850543655442863104115687612491067010912328144562610266775317172119194934768742516509397987982515723160405861949182490594571904755333308681728523649518405967405799923208266370342622621042385774432558734544550764326319990908376175766850102834357586381062527439629828895394042454430216051775853061795031555085080440167018942337541483030859898103745283887061297921083112066525123641845768555736892159049548858344576093880577001898380386093756009378182719476066856521994372648888115275841060786134032444432480560145311758886393903766010889766175987366141092689808909884048424265852651346228374020771747417632375301743732765371756956550618889415690392896387226497628278748499075257280221990486702803113674614457139989919295657739631639957835103008030838742207600929996011550811357736033943828388077185941947748621547272881704725720192415133095782881740324343864478317625091425312938204518022370780530713189408573710255525700847843205585614007151995353486931345911400468491488768166392838697392071933467621003364646381374099674495182262425132196674889994987285882231786725416181361542144847528285079581255634790138639967729721033518744931682106517843756712700948731687804938466879999394218697580204835708696961722333561677920151553240370240080252437159871035084507024081635834360534617889559019997395096950151287840001251833505800518460199521837108085801111687254445917635856467928793896821389075231123836427584794272347001461512000816021131272382814673215782843042391958682534358836582558484370206673418784297336980844807302311004509977301384933188601056253764648340659977795597304898629498510157626527454926505070124805094322998802253399549968599957046622729304348022645741971867312453823128769238499649722494269689670576113430001455376519483140228696411331317806865913475603974033335628641549701622756573009794389967467294473276335437056355734820757835655885515476338169581176268424950052230021119358185262589433236011255853207419327939454979437156390198273520045163964041743114645691143232712601041241777241445668109894900991904565090103503339718885027053206206589343534265757807822970808444317114797884836960435654740831009592482134500729233490936716206792857424174317555668416648845820691585499115052669405976803029985300751310154648629887294342036137418953846077416550201865197603973637629093643720072489940124872566028709652207646218970052634512822837175731465326360930167496569461279036352066178332002908361041783777181647310130547614539417063933302935361952222179115710016997343590302389826003829329014423508988157940097077464914468129868199684981095021256056078516002411676357167405879314853145256409722018144828153973526097930402206823604061083481910198350255588481429157011452127918379454121238005564331309332683514692618212704707895929862167005231438818634322659109870585374835490006848560032184998293136099081516787781245786236617124096976024395786784276272522785467686903750974696432125446512147798270138528768826276403847441572952229819459731760372390691391323251484007775942047121683117509991849699926083107200011694363955462170041316444240360222873599565430941566694986614998204614597839496849477016491300133584389252386143853335518455163489151584721964595608465809202888981027692961693503938315420005765407521423112614211893759736002974649958617214675220719748863144075420547021876258153927954857059731447901409045874406021128897113108732856204373260945945945617687285005288651538713696141084908741833129694032045947330805859735475528281225693737560671036446318586985376056311054039515852069407632518929528884116480395929542455999084411521441765175388476219557335327830665148989608465113327296994124488112304315035678883219168185119368045881566861703338251983947156584027916077540372780980984458254907849985124990612649606649193631044208305837111871265475744335725785696848508625413812960523902694649930753087197989904526272188282619471535610774933718392668145349126273798449335367129794843034010293824446628761623254562186325553692544218683096878078600390063322441196244075588067585262132868705426821707025689863115058360929392958514295683338283979728998482220038853919459898140922865173081620906136702539555010588711320322005331158489322268859233476439617791947822098639791930272715852275024161667295513812461658353765463879470782646385254000500786074936126061261195641168634509477785202766012016461666931960025674508394220907947078716655461127099333275488539790049307316720007225375682135208937953464401832620830705687138694326212106502921459595949197338817679300727009116697630277096323221472350009341326117873219801474317293845056877040023650959053584564322690446591566069974298817228698914106925942464136306791809515986185771072113788890831191088959660581702974050282376946764165087949110505745235591861415397472198657854501428946680790541442087442515792773136080470994891042533827569085809759593534242536496418747998861304472269329134256267581027395711221660327936597607386686631198766827098916848988223435395849461653950872225779916197259554523340521270426416870075060874207575119132821513811913765465539247636316383036223694842568023453943537452261572571357558769587229316011338303720375834689057921452411458453567524853204988577494860822851266592220564239995507718996322157427345448044348819401829382737461986858794183344510481008260990462630626432731055857068891640767093190936859290486079489931865827009429060662932679936720315109285683785456109861350547353903282837849618527622282760474478388102516611169166658229731368697885480671299085987843276804176108780730618694065921742339312623992271603752083953342865746211366741151912727992702414851022787430147116738965077566305792355577891655599829000277654865119179014818402775051188763051278356546671388730701229550342099998532351727279290483648177448741980902284941376650783104264084011255976038338632694985640639442536221523463281424811497779158959049807701574474294559703191043153705263604444957114550324646350365968785665161641044807325612189170688594971311812793891237508705969747191862321472179716422215944045433241028529328553315149268206477777824773439197810035339998122549733358543833703099320292218312019787349437482806911373302381019921097862512275022119039835754124470842945010529703504228818480113952251954921825222470216434834278752241617329433335304082489961483787717616252911758966129005500220431282034900712754173767829271173789703177623714443268520963656930259404697095093139135980960068188828315743304324254397288885974800687525587135310782820300213094802119252323507938556069681652016191319333589718675883045852506019928096590085198081257187186477744439230640279821233673500217263220288620795990548494315282206697103598783268724303669629526945613953136121864310531656830652061814753443046207467281594053984524488371596920681079330467780570126668022943777789550578626113730663621697289086532715719204411648281602043262731734417263147881786760723080228976403597460242977078833694851595941806217134318116753711580289702499276977405831442352589818312827424641819342976040565550500006801368912628734781609652530735471321757230457783506426927557591545939193064219284179726721975782906207791095655236622556602755337237715157702546012047101964667572756824800551107664783149515879441227618277501788068636598832993486070509172586468678220924905074644042891330795167443114107738273260062246780882581634797496855649217207695193844470416792812186127410812949709675522647883199473894588233404813634145070095822875201359982720453262147557124832721947004124401126367766711153457229330473173244239244278944610233044938090424446735794133366780472496747268336925744441486368807613522175571119558528821412217511850799168599854044610686400409570291878492188316157063505788233563097915952219038917044663810918340977148366540925593335621977652806527376285134967095404440699579538940332372279688300227901010586986602052258359791530438028050300410854595642966417805156634249430940635389596473888687819138549592094595957965049029923812398675170526800733583737769037424662016359463594742755512338851652380277266044497454267761927154658253627565290903176732853863130111232896327414709555000884679988264019216553926594608549808285388332108681975106884392086196333200797253649692839314383606618722947776245368941487965816633642744097641518169689798998709039490561826214915310407563824237120986653715231688602439794422328198582164937406776977217456535358456431677915251187295791715737480918113010462259047556193813073073698955779839935245556941321621643098796447588709418899206491915892302779413118400193274937290341247219638524677955412529665436462755941779348677449536654813139393061154502416633336197938400901564679068685703352784626149287360024128656211202581272171754071944999683407020555821169441626888543880913246679237921655643270917420005946660301875809625191542800989100049046522758187531495657645254119042085623370189482622527956616524160985316188575991302959281590338129639116777093185284938038940424720501495315728102833754493414589290471782586933580527503062349158560967740405634962317912357523212688842049907039640270179504288568758038734347300835752170945787238688732137730427792530805844811959250553698419427701064037706886411011359475222535999760628380242716704301962395484712886621187429368037272013771341938717274026090100439809160154230496957153119972536669318876096221844065918270051870285379278024426591816327309724943398971196706127538986792972801700729847209505706432216457087029910846330192478780052096679957442515970407269929795681647324940662819967188053515697001480203892613951067263109677433323596789905221456793137659396545755522723453185782614414313841550605665827435512364494678472449858066675447676674911740733539050463728186935219065692458105726333144355472043124393944401225955603811532017330814161281415470276938538158645386446017063591992211777447205638088409700359381361642770911319017483286779655395576031709502854386810917300800320182602813929600875820129023591139594219431400353749242884455445854123570297469329135316534622247677115961716470528055764470515152493986566893289968862885527694185670533627235271055684823874779946457923557857177733034580823106300869554560926616577654250659830100931979623386909558373383932697021684250414999507154430944226673845605573602431755929063010846526286516238220728180885998065688642809791249109155969651755296800701672063698556266961244712025975651850088946822965309390650007819429270468047729210344078314304443641508570302459661209849044525047122973355024604253298344318939985329971113796186018465130497241434819834342868091805820623638795135188466050592337141085042741815456567008734773468542565576732574723635576990067879536448039387576205048735693791465733633440763684307944048389823576970626655395136789640551550419083962744690720654982132150426930981413118912147065482225278466290996718681957661967094278270397583491957130688767676595979460361353564108988646267274856112729956247723399498354096043470674766565636533154151547379207593469134476171933794135616715039461067633391664834788368374861721687852667755990768794085190337473218964348678430659219001846060118169501921671964162588040470122354373970302889531461874213358290125247209256134756999233264591975832578479763804859517516097950632802828615348600486100636967679479492488983106073118857387053532268755182198625170453934449113356239551059295312353520106172556172514866232646354425442081045021488732736819672811519753976725699375002019798869017170125331915081477857788405739531569788847480280044166033908044688593962996824815711552350948795842951055217426467767735767893522173402084785787052536051294692959606193743481646026827494966608327241816638819018978220899534679932993419367936377859390585328077220535210606168642891031982638154565854299916469406116066544278268928619458966731179802607812585832984420291531715331492619126046639084769514777461758050843459320189669896277876899212535874837294386275551773155415673370082571318676794810866330217354412600709886473564268403601757287006920559449043926908350873506340284820994760724133420116745548396025147101391538528224259928437325983451866621185770022465065690663854405106641767720501314653588114659609237210452919232846515041010920724295255643245080847249336160824553986655044531571100758301594941110759923635867049167457195365870247891364689710331218911044776165611697123268960335858673966081279559885071448972234451371321310299181974368665496741690791864552915571194142510670554178694437222961372820582174029109171561563533064954772456291699656728049705157348967454063734147220386907228051446482553905262109296999489060207409372070721983571442777915716537231123906796393496305499911876608929964351487821313945959943047938407266437356457967779115683442660091827441845417425926716009510757691417079657436343454059876181435592823109570612500413174213624520085397094002771031855471378970210970470557018905085602832195507666983656969353722734473002555516877504772961139840009540910599925718220244658905496771814267391121036813412367004719014549813320831438141189375003985271457117676133314763648399343219483392513665871876278432381765683442271586580380222373431792826808076621049122246815228664296700325268927765120544643652470533517789506834164780540381118865096550175557145233151859675241897958985791963516051422929205947027494198047522902959221819673630801063179331190047186088733708538225332067668772844705625038774970771399638574801322671664971227333412718569966398430286701635630510396874180581927102620434675972313279082172074729296672574115723370251394314024012439655785985567649974989630100136845701508684640530586838514783658047950961372548713304971252925039969966496754300071094749791949903269804124382369228239320072767229536511205749660496341902806285178655376652561069277374820873125949688557937658769448509159147894497397644277491438106655366316570495444028501195983397602040782074017830834570960499285803227092775925732993030271675361650488619956996222860395573832569073311522751173079706897652528574365967673081005495218153346262987183030115232791392008161941053780639046332233357889716488146456304807474876955499906696489122404902600152712492281091892811166971987489725037902407581655964653894645538859464638372930556521386200373385970985126172066287915769178581573938049418588146302424770296782091529478910760452805333509616236290942743162415069668509105340871959415277229555506272027329804827941278068448570726383769952662307402010299182458814617414619596863892727915860524606934362695901515522777686119557922462296796221671202752318358361911303209115211300566095846157351741117576601884244747065220834357009963958709533242690842830165651057835194922076728308821084008208886197471089494227975675097900904861960365213699678380653295165231484110604578803965119510040450397443750322509690879600388826750792866055907341291394210486640366030157930007553932236672059805671530013567285836142393128560658569413586949126347656411449211404435971073996800143814644422902952087459531769654267971628791583298102734603305732771669847757639904541041626142773395345894513783330538171855074781966676606099956697512576317061747895012410589272123700813921800619133304265295791537119049213035109806650995739145706110138878969920901187942535997828011585088926726916137620002639752595716438308334834713435594774704559357630779635453097392764320181619486473287806617985372151033997832498614057760890550314042360120295076517765677883012304449809769629687038525638270881610652351220163631231801301961277382236010076080526844368416271675944001122024722566078651529326508831875977865027575879670144046032040140100172938462115078726050505969169492802054390022458885854325382043084973909489160888799307590456043203656405248173785352245073363161785277449610351484968321617705241121498940702756117229007736828617298050814387582550660208091273208270470651832951857512565909600134968863469911248202986067275199143250429222601729678249320579831069698214380056383231266406835696110347944775423006260258848821307604905263243889878333023730686785553440409039072927053983040500241571859510566278046945695854325105844768456506915812532980724586091347966151991915699153358265960982600485075373245998274334343542396450020764081676489716224180272594863966973584304162811650164200848652327593888552706893133822783426852748026901872412273258488404462090850945254537376293781456908321749501243962409983925578685283299587633258964210763268139432176053028399940724811730503992976579626998209815386644491569906499248441535712757834416368092377456473659160887131531586089468726209577981831261627611899456579919482105345131005205182565494536747549394472977995761142686780802070386041757913060233173772453331224679406735052509465580144302971713361794243883361530848307871657566209747912962319665327441763249306320888393777090851890639694134070994500267212097729215797512006241370655574503102936479767633917356570249560748320209807948118421568673427307526150198770329801898413300037441682786197041468721756592513291841402889309999746338325749337468552381061824661037522340067190304531904549571135022731208128421353808683763217953723185490280702313727743452936368252938093937465888096705917795830077902267099985935425862451271691496209740859384962626960194455585065706634059193760737116478432817386467280421377131928831596210872974216944003578906860531586706922386251583083423419957902683327432886095285665035801460210989992049601065811371248006276843059819249969549502845205258402560453126215656953442536150753266767546462641126922901684747054167017488447532723972189581760154599183466252223397402858566236978453261509536815186243823058771288093463149411564770641890658690704443567582239160462313371674789565587009525253597879393491187167943550100784371971299683121362635819453662250721702814659965685888135201227964217428421310899391025984575113164251849907098998024569885781227884124078589629078207164710702063979028144694345455957216251793119074299795187972445286812157207858631520712673629422601087449589695620280854150157831713164027311239712789572523281547731763718297816214024920276489188873746897723717093769487760075232754936925886382718963310197570973999841056008465277298323235703881419076537525336615904822218640921469100228381622218766602523348454696696857466571092948964389458795457359564421583021948058153658566206947244639600911232223023354634006366787175999292905027162016241273502151890214428519962993587244104917572051265341544794149871733088658302091802828780802499764042315000105911866799666043133008982603010416120251071293465848794292526576028818945253734835263245490820355179914367869785204495071341030610616805289732194573718672594637230191875603439722875208926946625892708072924993303164884050081465841900448501363330005457404018020966477039219211777849877529898416425390620947656519582006056194212550198680381790930964901352261708011832062176025434180177917899906749918058526554083239354073616862830763148247570052114763096451603454071525182444756769871530144204232671094284700176768413099082421665584097104353626347406400932623020998808630976823687603795558507985358340229020738406216167943574341467825948198078951954636018527462641815984377976080028959013058468983744878798279122186262668976453714172108167431884604756533810868780474056745757663879697954125417295836681842345758601019578131678919868362209915672345176440510602811530984106166728775859963384207819596554533499885904220144576486384831785043818208384435702523115015354566288641496502754414451786785949677219227664932851572161787589124623283825418091971445089084993770870185598355555678476116308677869483765864181506109683617947779644860120241816506609695378222504847824860208483115534767193143016579434768536174389247405473852640656998550984135699448013733342548712721180517837203731885470277486424057646810112175698806370939371058759105168292641387038456212878769615971997741898913343098190785113520343637901844793767956794994658581676823962445005358386665521539131477753341235384855489856736534298508282433872178638186142581357088701880086344062822000232104393869677134947511506408572989941065653717330887806759226127370319540015298920667489644038486918279143563348895893061289252139221196323937741994232598632632217371626830420616076540952188893633059146006277150919848386528540509683739152529687426085269198486811838591644002080048409965048813255260631502881643856474145758930027409167660972578640972884688261627432050340834093762810857581744735135019445876032016360706398401588455836220236454539921857710839638813654813715434380589085893717150437133194240163475605765574749114447545279760200103995434026819157646871999300191660108183959853113789896483151993853307666902036010902211552431709538031046035848796035498915668767868973068544146306490762866924030518506084348622894304701063965108821603559418757416664316655750608289714996577014620327294478954585140470674314323541583086854410148316252857555452275887034226917455071222384887189410987602120734053579110760660177939151421301660717495049190255735731481312050107601792477654944932177856714254982273492496235815806935811710165228813619224474777741210349746491585258599028913912001626746421406100722827628926102957678575485879763456557365484629423094392876342748721722774534792426191804794233216870470464987058626999720569122007921941140945198610384464608641284121343930976240301528619127839279058794441265190479727175746770465802364366708760121429473966722352586345475365097625713110651291828221148257657075406863071242593081030314238544247666263150052578729145438649822265989614232046521529420109116812544956367724003610058778740695028600819928694463234614561616295298242080104844944742680517915229942283780768997188961135735711548934166477814375077173957709389188485280692249590408202697968017892664734626258419145598417275708395211845352884478833807362316137518158485859969618127683941146545733235342100819146892234012560332419487957305524919196966684677921645280480260222796086194462065349266665603411192621560927172359952669153839286898064047998104536732037152691834500477285949123943041379493316581348046978471938510276501580860230134229271700437098953285089896249405371014296505120658927460433917163883867206150240221413704447348322304967436284007183040275009526682932959565208887074268460162641014580998629202387200918212704245871557534571583217101693499810439907686066872770296632583009211536348359629389478641990918117777599172922753333632407484514687415777348596038063803715998589057062330361800708969694823442198315069810258599072922102641085189170581521829880341953164941360183331034620157153412874455565882183586192438629077705276948171134701244830369970475171359735772651187947261445649094190122102273278244740781200416685496399377861537283329605088436217367391554487857080892792050279843008790882963650147895304571810687600459658999068560616275479690534357798811452809282491649274767907633500504339650949658892278118800169190399346432044902900035877892243780993793270614304510484766513620605621772979370848030895861879723774522382755122553941182252402009898431459327914004774181862543813325339628200655034090804063014002337099520698179383916613964264410438704543134710339069513323405288996048882030923948724778238465122436546540989224009219494032991521620452913424461934570861367145705906392132184763343799582471452501366914906429215166225495212312433768628519825792872683293306056347122566577087460319083416161282804851006061269481730117051255495931635827625569476182685911863789451131695074436605967174923860955453678385291319357539399970114087211296272248795185579383601998405890724513470209490537190154443056748488859435470876368395454787787560981884434361913524657829935450722061462334800604158922872068305616273461057345344836693897823421098417696268370826636307559363867212483503202643887676888628601150093891692197743162856048597118055388624868533795001481810050843957985120256576798470663085331197363402950520686201297172414079270661603432079105436399487911021463528512895619603433320230287177736588649031617131131083844015259479438786873930222808666122498967381465913107043136375815724855852933739442223731570688852465167875812682517818829625427495036804727757451293614390702580536334395323834923606915058916751496427228456727199729390775589822432127320490515364790921141177175466098671585846934846803575462902766593026129156853776049519189121437387642410340213239592050814312498612544400740993443295020570360152988056572711573733201980933306605346314605659760226547219752221254820504200173444532885166351474934218740127435772714460814348635450677590420171911371640501789205353535580462759826616761602038311700480601780728949568973412044687837047724268953248652603032095760157573160006247973699052509984634341890158854473790094418654459877626379491956772384766079811095607114483103035455622084900242748225694363535871278405278175916406648858165225000341240434894116925226690559548466250899872392389738173606639179956769492230594848060941279581997933288578160282559692857610884741638689077984857892571239730191081458054584298433349983820938161548037284258888544750661600706657201064646221799820754764825022345631731226764701186720343092521270257642969748380355901235669589948080160118085218261647570922177714616087708530932065647228581678207235831829706484579619520872738916513786481348198844876524772107867658774888218328475139567473088950246966067079892380737168350852009568782646287454241988501405857071817395766300677006901681295644167681064804588286593319027423543228775120688967991871704910677634811077125888447524860229819705131664285969570740868643546969270808175557085534866207284713135532657663618262316834399084779961811249890881097246882238094843281753072030299303121952637906867928601529965591079117627197183450077409932335773899257273461936981781545346329216639278003538743105296684913648976394935908884263129487507423010420722368432618257860706969732841088388785344860307624947317356925156337829678494691602795371757428846399939006793220715128755142346493506466205200974271245162041667905514888843410870304388669663847699335505096923152978159075962770107486605767095058804990742758588613498016293551419827662372476382039804448656872490763195632618242577628479428949716880915917706689059015065706545581408216988865082768943043458593997337468582736110754822987277267486779076509023942863627683010610196364093161461714507267880041129462289327512778292397201125725780135032259505840846545653853127396041465809936195015221383031597040483070393044493610955816092171633368142138248853258091168182618387393819134543379439815349574499842435984203707609508616962451516933229252956980052441292642633497189999582683797871053200928327754881914749938763519148232079689499985087424740507608559405539759907403189400195975202609597099862155722028086083654530881990438494886525039966834447489493018447507726204376102345332688946286991843654449459708857826219402851088758945918897400162929796656037122490345039703615818617143118582962924361234691245940067419590184525144260111632017950693336309626174409993442761363434024743949941426843132050169778843501215401073459104527738936042727979539404897420891295261283902583860370546715273917171222485650089080200741446346051611143642143946842082882985825924685668595383904977764391199266473394370820665224254232219647902344012751393974465957322449717129187966142440652392254859791140432093661338666167956140161742156548059071096214482149242209616422255381673863423307002365159881993143930136443639109073330089153451269298690613977305854820250449090279740436590557767772808558990082370292864331425836906969357140878978574489347787682533335521475619376168112346422596037730623200921728102333445632217393918177872329524965879617334206289054996650654867148953906119211771692808729943355908965525553729943917951414868827430456541949692227895144412118348139460041596460280819010878444794506494766349886768571480039334914308885665805921187279127743915770146767935970674890076836775656838134497068589492736300527719076960649210878633602566080469996856143211921469339660191827397141495734796099065553872056958087257555785092115003841246194368033762936828217158126964219843723018368149101676713341861349446040772317332246003727386223859894756857545485612021375532421401107432405650862349823215707774663315580590732791082296888028859839767500376816514704794289784303066064681019209616163514635982236831382703801078373563022928985584539358188849573985270138254075904135033072977883857415150429616281428217776285089820217960984010319819274375678466215730784889155298088158776093344527065432425117866469154730998123440574604781971886977897092289074468611934110707744538676622128664785793369077693417935935342243598219949229088384336120898371982693448923528191753224838045746611443702971987082880306505850205736412940275862721328729397954736219698990614664843695441659908415669718141724443027105390502379962186180855894339619393572289062968560684602962944356153747003411386385188875602090819127533474012384154260768995192252923565162500504369483064462873132397285598470414657446394745559798290773468746535236254659451381190490464116333007683202174162271081451572849576280317898010116019531679558036754678065690205367600764732497026609445885782173780287217688663860002322260663938865686959001224705132488619663040992655045742573395289460681411255687404982590109744305836037141200335796023210039416265047699993523543143937315230271394257973391533004120437482859729255166666545973437544303694620979190772438610975788668125518895442093572780825125321137961039845026729843638907062505782473702368438083903833271967929054167630656557979259246056333191761407240088404968358500725202490553686375701626322762670851408115510389849585679650524423175961203797159820936853072266080740080011978884959570080887033467073984772631947715714704103926382473179508613296665204242236059681098008738123470722697948745903929309864239598748088171813644112654013781993733045349978151396701570228238558836257342866973232191787447853430155503012463993537003520974351525970831000812909966856967087502995210085843232772627693328461480372996882302201457140225645021182977071048543954606168265353717456964102135625653785641248035573532488196627213992723154138236163180446597015672376619294759138272597857729500526647704318964723245569878883221828695574511963486807650645188214688357664379827147668723060024385254418882857270550747092633237158270336247090858411061791198696254963295271975227590516868658205465409586383483368444085011238121678218083891993118193349013591123152170609255464279557619857021955424337435528292384464930733258119683935850465184947835223214816304402386181134582074940538758647796086170656738503801047502565800932119015392511825003164406906130303743633591374039401851186354900500059519300962066408919702372212117935378963061767152080859735741210347384071347274408784878471286661691514487818316618404890499628851071352145424879799345620843291450543944070707394171996498756667951317600468096720807822417324893731386180792997974945857391309643203907525896046383163164405380135608853809707871497747965705266363984388437916461620847471552859061131447854994760674066256605253233505693943751513445467121067800556624149851342442031770343047061118760789894020694182975260027860695058430511529949033680837244128752394943539612514528421637561847457349384775739832780997175812815031834247613141594976245314965834686928606947063257444161021532034258880481428098395159485373513935380891664772275106547255380548739953881237466039459244035716321026872480710527614361485985380165650706574593629389626503839855799006303902316146630975096660342142288121425788954701211747997763948111980499880372550815677276952484999674093750533259805738285858343782031864322650781557285669291957545992886996307764529679100701104156086749036547087500612610841011207269506306327884726083724169755730555760287144519464844677627803133011271132817242400279722155322205789242134861736048315251034822726905091141105536861920986000394171252900079515836413362839719990111306196467410548700869883432602607203184201473036040576722923189233229207780584244917383130242876393211392567494021310923823168287189384480719945719765218135199801397409496131940100340745504339800143167604667498080571522962832298035444639747775668576690116705342482371217328761584784343585618974723617773485345820230624350953866393592781581092696374514575016555731957621037489843541763821106160394039443618352361365059160284138055478871089200348827838991270435153156808466489071497561067954462209782977860844472764915111753429368568015277821524853396657468619438329581908218408993844908590389412614839161364280172890502663029939893364321470571453502118081043697891227831430713721684477962231868641077907832263430801372346687639343897856934711072473961969545804980958808909356188745592343751494541026351643530184997290788784215889619610470906315702895132785051347823218272520664501274267267540534348840375273778333250388278302199947653471195940077767023810354053729096728857556786106433551290984876274759358173858085148242674110330781336499375755447675436687160197849453525096934455459168576420547810049296096817411196674516311945275244932948256123741978420363527429094146455539336164517648848715718646542942910384164491425304327926773588851491125454141939082127806889656946162609284556313299836895082671923782929816680024447100646286264274633398779326588871509127459040611547293707879946830919861051673522404971923340081058640027024843288104482062638810246090859425347247165184001899806388493118998884682936815828354439083012999491776416021863515986423565279330425723304005386704023857686850717822281672208142835022180303464490492338128250745618813169931995778987942545380479319635011210970013164359010163671347473379989099740187214748529815243092061629349720433171885408443899978004869664084722505299995365169237906596370020948035835727902252945236843487081432474729995309927655982841174819461690207058590631867551984206853706989998837635887053477436762487581220551368354244475784653066766269475312067795212869444895810207958165910647571666524396958152171820571346032854071035731757381902527517985310212497292402686420600477843150591025854050357172703216260193690625591752333917028951670120022551485946235200948208737082105471550111934977878305969582419045829682133053038938228154665476063656784861818805702911754008151170725581071027729319685865043266196472423136032719655649334109003974473302197174942450431376696897470798563736752943736007313360016957892397710114991596437295144051707417489517649174647283449537285963561752421085368258180180430534185064582182245617436198836508343880720352514923039554733734174081655494071587929314367717170411884211508231207078592364156063035050732704103125604393689310186834184690646161252273820205962959371005435420136325338494584728782078730979830040037981016680204781093189725794601652702889190773138106727344611466669113137534434753060751945854520022551457261838117614966295621670991555803424488228805382215940674318516077982895936312693742564697419185243541447562771357610161045104426991992587915836375019675411541515134003257884687049112028312798687657657902180064007226930009519856317025450837739753213740977372557372720416063876933288382537883768801103707349888607193956003160368584761386556166744427351537195941738843246071845279350507551657586596770148142494325191172561405454210875858923843643986777493557086165983958799216595547024197359191147279987369255181680213504528961718495093820415818426492023330750734392468304292148722770648435918578573249794119436694861472639492253650943125212913699566519155424321898802641846780386857745473691058250226998472118550940598576752036565819175296872273769034928293105315232428831009004766961102086809877257697285395615832530168330004191200309642385122257983997839550270103697874945038337347695716693071932465940747574049196830489264180276946420814643010662817622676804119294554521963867884088334696820373349067419518563665432469529443196202012199246242909944504622463948114950423169642291941789879127981092280877564878663005685297584079536129547901330236598125894163814024361733962380269139262105861770480611178911089245358608306804349416441604158972313661059527027170206699901653556788986509467052977293278285195113917345204440043404054949298262407694566898908855599941899751110639892932910139103732709055668710486304310423836814952108257238705910986305986549991915253857286408244654426433221912806471029810098627562327076326728626320867857908568375349922306747202862273627953659105640324845730549692962922994277314478322100662638698006749399512994636035160904909341377950009155437657298903916033897445554256491678975835457629428460692181390322102566874218327318373368431610085657457152990647189383050688111939704678434935806440114585300982245860001315371969402337136528177718719449656386757324599619839806003073486235275093999403157381063668499090310652919917358773293859565507542348899909787003723470456007968051895568912103271710780080724483709188886016809308056693141441432252420481795619660561367017428060137783234821080006800187114039470666583207225970640779127937458040464696674365440865972542646886181484050432956227163660201761421621797023739481399627530239745380938702263413836159625228784810520292825813235936860467378423247622145363758672465029203444245090605739662239577331403548210653715456457178276752827811963906864712517547166984834175202112109376938831427765283714981426652139334797443204217296977530350084306029204740144745653975977714183496291619213044995876166823478647814211376948928892080558144950775149963979098011729285314118543803835593796260664999991937662875683327894618267553398026045985510524256362227442791253170404020000567650091457316508675560969348983770978488634885217610468648162436141663032900520456465373553268660102752305987199028924249394928568719650991075991712656522534425215554438027858571921886546303363527206693176584814946282264119491444187120135062935484796479699994648215748393479614090863109215708140225730990396534660638231507176277358541899803712157570584554790389711399963316718009107118187517739150780229401607681773858582868235387516017599861028896329088056473291170461147597126889389388711132107504918388712211321082882082086664023391015057792909700026047422090808686434764079878441104840223110546389539498773232651762390341280872948322774263551798810996969462163525882483102858377735667353100650402004798964870705528992495449501726449509066981816698189892854720302651026156417581636303165261370594882912759536333834768607171932953082756480841250844066538154337255370165954751065243574541455381536061360624422817297571294213148217642971457439434590252026349089812471497974328084937822474752947539239669225000533650850571010444916297689282447846334324040918113264911726276216661411507994587425075059195885619294043561624157610966611873012449684291836990603839245489032699393126016057712690067545046260539135448140179836383132259994634664300070127828414808382289932197325866279348603672790857917670803916204406900254745290674691172402824328915577993580438224092032460477288791251050865438413134163017571986280438095588858581767107838045171579860098372914559436827445660973220218980338759016975829599133358970743087941891959187247394277331988012489420711919337573210393659881401703851531037855219844590291526353334868112043124037267663696503128667696180403129320500684024523676504075301837801977048988189551293227963913383524769523450867891162276286288376378085146869653566880391806008002343350096594579071148457271092506829715755188673170846143479287791251647565355798210944515505898751336601578267263080576903004191784045410617576199029239242839380146027743151632135412408587136155880384640117621556569105997075915650015495025374195894437295672015442505195370026185775793993935330226528212306176425188834994379135801779472392876378086571257703938303414500600729863850564219808135562483494185382245631042297243911085791956442481944981156793385683094358274500023546725605143425752159712618735210832348245959328762337380959783544508374644084883455653883457122683474211690647756949727319409143978334131829070329236909348347042580924783363682077011926885807496966823782027609794693497618263883016381112996797367358755835372529869173561764844011904939276804137675096793152170405862102759836836790650005614611832326043036665124386411990701190861662492263721041145422931164409722460150205564027425605737459724140943377366588552202203362482123102834343257773586734892987724172529297562566344908789780629486767997467971387421802976777875264969063593126647227947628539219808480998377279680084609188043094265780818536104348259289214144645829170583223831206013928257606771585026880062168473360327858475723091861667472787065102229738229604779370832400748337294571228377981034053325987538542263297461183879761509874240612731831819884792822504543900399142755042776409928546855697202146286301999759411137873706811758450159883069573063101400957834471744571325102891343795768695356358596281342305600293923701635515227939161030044125003113145163247602756314321715324103601079515606873667770670043216825998231977454715695132827808280634799034628428944926377872098635619091276232601286927589282429682638163775216605170627660160661538241396739655139134834908292737536317897840012586124689505250561531412109212610699562122426133329766683826725354647829819348130167506953788194468336959617204915397696770668205808101157560482017401470956768245280073375155471163600887394913205477575430270639324661981119644816510001062558019442852808841064110039887817512539910994402732084328534719463878519913589137653459507932014682412840847217881857359250683692426260926207622632035974592515394279275040009212293156931745469628194670473673929523397807599240232596310017841378760080000534492354793506093482024596592686984149426563269423418602401319600750752121589542472385583773166038700289827482713448772002745586305055268200410360507193906703712980863833293824350244976955403913016563077970936957595881824191487062872458854657985505482667716711720847106278654494598299205128249758572306728938710427260066175415649177926954722206161195545914501334851254383710200042118453182866636290593040084681543723172132103348163675586433427541746875765279968734660184788477971530321423366001336686100914637182889917069346375600801476109790755886135175245620556933710249349006450385541084307973709258407694051893344494334828154349658689299425666116622511958284800097699676622122232096297352412320706985562458146030334699253581898865755208229235812398952162245325669225071241575886818572507853017044066663454447291809114884169485006096254302426036733705749268925114071044540914379935337866964282511838311164183780913226175874777360753456174034595470660317561243249505796325849599249566333573041498617697221478293623644671065444330803911143799688262823290721253495050290649315771929006021052566648451021623691066235542131356266373300334467523948089898301598048708117843410903830058614075389189561592904725630848700254513957322766668019507769006551302694781419534390127724464714180120739335548591798215714247421480094339199783270668642835301464795233135861546611018633428956617177407752555518900346425623999306304054519241165735548978848044005753335277857482690305013419329569978615815907688489869836083967607582144512509009776928040883215957157439495656948704662387774456034734289655832169317605948617230864982266866281456957837603462099491975289174120771406932716585635250923428702453228042526940627230884245905097748941995484590304223155428901898392609508772610863549163575358828372155872752474724981134081778617965352877203591190592047538005641351631527547824006185133250237005896657131211239360581137433213873930337018786746186253897694117338772170421317132468409881340665839389159131724763340220564588287939891058709945078968296008798062561346322460174039685075180510518973549371912609652183149384782191633039220216579205994505298931708135740539361806628563492652579503578855981065920183066221803059543067771512218331996362704075109775028393958618330530695708110964035058064222606722990150663630286152058086812219191300525359697825654931209519659960217987181262973837233839769734590891115905262065907480801583818403682882703777837897002975316011586220221911723479692463042201043299578492566516708016503424231156786540086726325887522793367322112299882827983721074740228890885547978532035246169917709464660127942899222667034017637631163207396534870554100298545125000593077023956638578560942488794381924798752768308414855744428263624805748636081915137206346507919707647828141609524983905141241651325662493136296752410372996229097427061325266563406235062827655379635902272000410747303651284874827174702439969323603443174075669205554631695228452311383399654449293522420605663039205833333219761438013931461779105539340490489018037823585566394357847594664162172094562709273334332780058119622101215069959777119218430289665008932484390173993057167981316321165711138856639405026100557758851291780810960046195863974007337404278808638439971976102044691394547735691406546770019165183788591309908672233789102019953221141981606763675110514120767896757420700618940870425372575544756763776332514084332121276508711785514377263522202697466207202509020550703288984479664807192424625657188928292955877811987143191572531246714589718471287278019457843091709003680870457527644651708859120472805613004242892070293148622581895693453342338227810362931193850177399469904957744243293690463254138052274302279750062071528330147937200182073410078893451477689129117126206028359050894986593809946138783669240365370762560697470115303528035065747924804066726517567590773689584124408624003700708249635183003222825798293590762999047730786018576994421853679702883651346475151979689208377110273387108604695354982119399153210711496465836987358653643796543702157474046307790026733130990410706880724189102798629945391709026493604639047466379012596052188117481416035092033506922547174085983884844025679103096734192944229713604847712081890667142622098756345736157105569505261516810600337805159531546133026198164917556907472687415350207367318222936696342039110475946370210233543227932297068458435585761979805064123114262139591894549461722910973278506788913337457657554513242709687836976057627724904031829490222101223302153197364016818274916436944968590339999925299876836047908306705154067859474785260750374317559281783465513257918448770569867092159130814070913619966036634585152774056063211727565547138780833619033974927141710775757395932206484289111777688490883547907504937501295457451899116609097218675410191317368032064520293976649901001427776412048219818334506407893167382768541463353398793157860688938712033926188980993650288531008626578596764023248570533779805061884639014752665596937428924185436243838923046955669045422342084978703850666681097239686885839315161906490404131470490630988000325188586923457142847855018913014008741765716136653570498540832251011745158277860869724071952854165939715273351800897799956818284209555918029512485522210923035591860949707787876462153905554316187028927104848633035438399341298511606245730479532682075823137641941769221850597913266172682072301188377052554235731734107887292240527151713871146931975330696583091239555822127541481032524873386363162885578924204763143447545853842724934959067729677376963480405413466107493988310923267819602454247826550695117908734281563997241443286216568505232423851445311358552826054035530073708773620603316521913840772931781537133685326187533746202882042523391076441681839502165417304608952202395726241962419204550142687239330438799333954577601227446436690490277579616571254652576172437928827444269000645148486272438083055613566441457112092306027528276587829086792981094477685611353463611724940225088379084774791900962942538248047903436473128888995340999634719252279994492251166884727546279444529118641323643612906652723726121728061168609657263569096313186793880790735727578733255267175693670885816031193894622208451671372658634917294951532477346664493679132480582550331342668684499765844313412672369016960663269071860606301116034708980447743674797360870939007255405111290784599673699619583408778074429728006791050451009908616714031001969227474782950368549703503982232059080192909844170353939941921526270492555428684365734678335455661913447866078005600598743363873892036216702472292714601953996796013832380284611622036632982758906599575501462543723230221800619199594410089696550582032806638973418927983750727230335411652112741214294518531083622300895202550778121995756515260252780513962147814566879212734097606695901673869451742244568510866485454851688713799813198017928239537223192191656726412899097287639654866824366149839598988515815572719647009734483530381755659535645296059406104552238782399865790009693399227788947091223067679854606247679679939774914554213910586432118579232970537380237898017162740301112200269060397135459975502651440415307583670859037191945448883202613684568416261826816429309315007039656834705884049337373741728676754955407548697068196805027574244915842176697555573724813116493858743815647664829628836005567252873252351889592787447852713493958421887174532982345383166295694586878320137235859225790996199455141972391934471769864682165208009049878376324503613376806966655771047876304585344513880077316650093357214164898715872446258667558890037590046479276023038265996883329847820256493324354665003111598880976892440358827111292376578148596444529389581559619673537993661901739319502619708391623617538575548281365871577200184260121758013655985591613513103230174993624921241825684025229470171196609866328402682729995932221281498173053508674900008418588682454669575614978396482556797445282308967894856372958000044234427098775860561750718863726070449656981068060690370048898608091799008530716307204985356306043059868009715660001882652124511258087824710606071094188104631872193609713933245922318909974170697997466239365252278249524314450583579973063018285183549325614304747592046162885309962816623204348384938212671371309384496050781886909252948973718478557480436498319589257716330016627263148053576723166255466732640351536899613588767354261126568086257790373347202865004711707688723036720028163019538986956349139096672275048722534071778106328168763551188922523489711930227197442532929241170379258757343834839719227570150589463033365395190010320307764403194557189952252352703206912819476578971142809138439216153654445682366290396841099642915153123025979972800296327262254349537284800261484859236614818667989124708434796725301678355841618669625148834034436278773515100967752350007086553929743729460944478827500924751156793067907774068541174195884301964312464147259913050087402108647950924323571545332807934826682510800989419091184682810776783963151146228515832135875900489830806373990343537095771068907651806565330856255528542943698521763151542033839767896379322255875669050310054661118835539532733504563617134609331187137789659350382284492467716938669373879171720296137110608923953621147423846543912365329873309827786525133007048753509783825854924306422266226087234424624339448779401408550370983794559634137671995250885516205316175848329817331216070670228333576998271754268557774417057564473700466466623360122705643785212541254615020669280496356799191358829508353523881488095881735140375929642798058657737905029796986064688789888479697595509146548805199807090366115370497965189642259497351488580937378976427776505154060103256980506830282848800407914195796622935319398383768697132866259074199775845396547494086368273820023326041616311001414648284998028443176823559361901875003118213145795444142382770604866974522498419930023445050586261424338176696766422749495002824064325356227313303849110468516478908892529092415643676531414611239993807724592973530685443231106835655946102584053747814201039460503682103988530994835195001043147112854536001369064657033189034574332012573633186117512585893476311496418049201413000491676042372900269381568472520826705857791013849170812350293296388542650124280160185681327485015419139835088574274752360921025599047979017778038570715997547661711025606417157051535110400650459069394595316341123624705421219852650208864904597416766451421023031273256508216212269461455379766255513577585843281574896775721270726379285732696538705564900435725195806761841036689008693482249332303005591157063198472367142248232602354038163292478272623076234741418594462352533115640190916740977721299282512701642928503394084145631623315050852389914426003515315912857552870436255901022611234000999468229986939944598436915107572389931553077085228898013346841968347913307421247466831907616033566407057249292801583275720716259387419677793395960568162567769555715157457185215467355687352403326020717613362780055197197503468821639509909119125162802250807389732623658765779487619167067097602674960857562988012769043031519962764037486650320230687581319229499586892021057340716240578766058843209812484811030408643039728678808990129505666205853584457336727796145871756527910065741511956249104964261299912152734643226200284103587721853580550029810796334780453967170938983260878750182196267405621849483990455218922978261177389383103714560721794320983314948184603814421530555134322044435555942455252837598105916898256074656725198940650212683794827618823188367126623877699413694597742525552148130182096133081880563874213117341685193450219256991574675372557494214140847266717341958141434389141745669002371801482491342713620918108884991786236391258533753375745331810799745090583713486023570295365850018515958931267740323617711076097803465064592742040031006620291604542949516414865630607664642492231767583772964168602063808093855885915254658493487434695576654519005056439883340580509030063556940329851124284406568480023423340076546743627707379977160940149207983961237211806487416992206775625437417524497021726399644005441787881109771954688846737597523948214912414255063743944032220052236772197196169647091673322642600632089756289480142546580231038900208090589827987011731886525798080734482816421365684012485002154119347775773392993577544193814450508519130398902425588966031587256387507790771155624393189231369155827199970558727967850687561194664862342706509177074381202178903676374930608508455268311463195061418960182331630473075322402682866176803338758740470772921987741873784710331499418245736261260179856923768345066558217490058558071029087169708011949291272644971513305259409744918765977090133516476809669274843827592826700646537637911660543962889278195895379414516182492510978931837098707931666755255426142003459565076689318707946270815175772484536107705509016517072918889534694664161612215433330853792084588665327779947966764195999861734527404989828270065770050137832435873077712331530950708906224254779728680471614488094491931588840160649268023910097252057199611780761418683898620215563936625726187617049027181113293180679204506712333803855671449219705286489642178746010121942189957699826433890472427007959916494380046702472729899766640594805125262582096773887088181147620490959919483613294200269181520437999579430217741167677373931996825948263753622326641151884014442632003707047654695657994293983973128824481666623838542018767864281969247847821190684773194030956530003403208580579469980117217049870291227328672193835973309032525492064186149724730411175534494725980696622993166842949117745929050474875044799089572979654354857794049381673251501754089574711382453053922353870902504137959294294819372265173931195930960261452486662520406480045233263294086628815199328958943046260449953388592097948239489099209922965129639394273683305201870743081601627419551536068638612805856893221067734863750020424788929393485235203348635448846681784830431178995601686752227492998232465014049573532839118920407707518487635118446718131011798634446196632034046876412678915127425520011614686163630510664487633077347974954614199035727919057820204815248526903512960549938109437331199109608545692140548317085230204679454271965978628690747457850545449105667292193008966455685233620319600282741660641827373214497473358593058663473698095574778435402008234917303954360942187692375900838263511916971509921515271294799011420698360906704793078943340688548981060008278330536533234203790281423742494294935217846162952759561378305388952484745182406289543540301283879198783935020349331634281187749082539785701219732883851307563842611513811252766790880298579885152943385735287865364051846406031029356134448519774626897254493126907985213674209440374206874414123435724973415867576282281372607458600030473347654732409004041381324276272834400281362362798937420250256060383822741644178432498611621354368896596295855619316935669208694523921177267456867235554198797603107614116253281614305789482159466476539403795633778257028917131358683134725351502201101815891540801794137548771665399188943907205004876327144788558210868930016783715937253197202262032336416877571969424500460343791517961613419050737661319067388914370925719720012195116920125108460137885576867794014504332266515872103044748034207769142608258585326309683355405179130702680193464537068508559298558433944517824419480714593859736779051848860533910866429660414416972635466307770421283221836713756557755669228703656630180365117100636504924380654329283473189084759422694178958527242980866942173465997904546927728227807130080286452061561520906093945219813279585519453678499422023145153437065060628378943555960869011678399037635697192206641194352652153989251762026581446007596632942169508065348093940059971073751544600375486617851745051612308679514676496927103615898585801924495004115969140815319557750134004554841748960093938835827506777756329253661227128162902500001185731553091272633828133869659462345471827954830331766875299525417321323867364401850104925306872933217240161161618967057564731097889570246363493611953072516233920792082862180854044668145079636015024966519288111843377023301495790943359800059724948299571875829027073259179852033077399810894370127863804477549423664025497184448304038295241921772208657575909245865330461257847807130481538910313983822245512220828884540268419381901747503475764091110430365957023491637433969406722560604231937355062060735309242651117370348103057930894404661643363744449026286809487768823428290703854904552603511034726254127987782926443108227018470332096533483535537495666234482502269434635887523102494148857936063454154582270884242486846851325929706635034596859724735235601017155316461978169230499255740166697284340784777418857657928797213730157731279295325327995563499569742390858647763815302634239743180965160506681924708295037720266087745113849670873406551446508938105582973991525064396106598010492093844001924741148950064365388320795120593877487990107697094113489340086730642122466492502574155080967610515958350089714984765254337567646160944075853868475782947660742072490910864380048213628461553177937812493989032288744643570396846868995055075379823423538847486091166633954796123756801648580662308102514881860695487706895515410445771969100664032728478828446303779336662383908241337652598210573078047802017852273006664314201578170106335759402799348255597803941218339822964837176211267106518805546816504977994321784954731990961567659198288598735965887613848271437554500561968871477511255948071347961531012780630069742359271816309439889833623843622324311115025651193307914181882967477499880190062070617088488806770961608230218314886017176680700874720787850481315022454342532086030411598907944562626438627500979009759668058112065420742097756866984344139195217584339848319912863489847808154401693080347702699537208886859966077968269880051043265239339484477940427735069848456925050072792616694931435594750763442769876713204520627400850413329557497822350657612820876214494026481072047503944350270183960748720956428251488614498007007147118940377686142368301530713909991018397669879284588754201341328293226334497115037561661647828632419215802200321641193905442201072715234768815833095909082509092671252533817158811897803350675649662413918304728928145085725742509050616749707553008716220236400682473459729306546916683089392171585455153214231554478837705051430539171246793173458867602998132568167182444472875371208624310692153808285325415562314351313820855712391460546577991584732160794302357574363871196969720267351814845964161803030605560901006563770106856349115210409168184990401526298934718936374427310630322679524306118846898128449953384960978579199987958760075748847069845111834936842681054635984599567734977814549519719442520542766654281787013707364332454676968459645677089373754699657112141113775902401733682058838737750075973179521597289657238811105453326716964958769219947578490715158581195418342664173597205741603988163491244120148879795940654343220808089219789626785425889314851802279463206224128592822230905117368641397013471568091193270142113915621121895157896505839151620179684477399387311065934796682461230034813931604710975078819227814533255924859156906212831966569754873052229370241355177968082012878694219400327413228173903801586746679145971207764609864400831941082558099913757231975657065394934488496727325833520430092756464431014500390493864829433588868087162121543806539947930732247277822526255327503927716953065253409578416165645293987556261751891617145046657438134279569772287748673596855151823588144857336842071793542593865240966579902439924809307865335567733769791036082717141737879710750258092669114889940974773185546858240165872175951263647709489210863391363044501547870897095477791340574682803830016318594987148422546952735661135040570028734589451230842320005780676014925979661792379508854919886034518435300601310675260720910853630960900335343935859394873307562387594897932693460912467658428834404344532747665839385537469850489109034260052239650930677232025329945898034735414017549225816608627881597176534266395049959736477582991528009558766350936024042771123341231018892528526056781862344788063681879480102124404887675141369013402290447730809872529874213544711677774137823315640661998565856993686191884256059890975622139222841433218719077388002393909112075761889182857084642468603770747967326996460381004849236389517477990951831735025260879489992987569820687843234978904152220778361807533919738967249113287836079211320138912398239877268845223026661861269558663222819494979798614099663748778916083852407123439610173980013446316574391703956932448429204003197335012172568552973508454437295244003564309591863194230164311203579570707771340696527540222040504546021516616000779304304320155281478418566917323041379218973355657676863891833197202342291820170764312743346313800595124230155352898462522810471047054070859084150739794505864254080942098827817437269691620287246259588995573949905295637345321346515060235382833333853102653203349877572670127852388716282575336868830567656367982032707789727951760296296484960378139268044386195811735660068961051546711561476658253797849501780655985135779708711378995815512331217667674925775374446931982892836040616551261681079082798154568698690902818424258320688921253184759690099948900274632166956681251992997060025717651617855336703866962056603188777333702385146622070340585131857467311739784097433266768640666217261829579935134420540584174156596416329570503078755086018935411964325197727688518754443289642189094161767452452087327548590636398300336937252734778840797356041633054415526655068586253539184661737859732520648837641261598619793994459611094800241445755734018514333749383115814121645860921888506012648437767357063085420429923853831078556820984600390732196606432885299713691940991588224945695899027290105043236205648770873402500893339667251099454788025321774616959608788647889449216550792335372622192840886187557898293029975562505378649103222408015321928613799893943698029540806504862290660164566261969313541553378490248206116041150567561287887513165188973152440082760944994385306456284689433178654693257397411992304295000614939486283297215281973557691717871093234586853386005379542493990657703666154691722727451506481539375659748069189096237419365178540183035456959003767562895123784259455606576401642884459609361528096400870922430278932166620528946258912693017878503904469768463623429180999275970270567039268694452230431178929358047307203348530948750758232591601756239503846751062271580611380882785840295852249785084437837669552884119950803689723071961545171456713224884633569924039383690204047994189578807801719824481439951596992076756479204301336483555077547793421257603922180136127168589910786180593122144232094130181702814374954601701756865886170483312337657659639215861670143662000150728182754652101682625602720581507422975730461952299754917192075820653984365748599824186047351174876006563177117857603732235231250537588364223810391929716007938321230005128536620915120716302747958877152224757205637206522870562557169725111112247749350988989639490615998222943133392883945388502391264713401516779844361643809617282597849049596226740130779306300560548854338641301669414624249298264069797733178717030090405081523653231972819029706259205943204545495480786576160219189301024320407643962702989030789584840272771254946087710016718057550389759903150169255631134473543300535869169097962285066271703296393108955301685139437377885303811516628066507590092805439203884705724663115349176720144056097908685920482115756768315983425011993536015864189757214406233509939622509427500095101281791675771680279686724263627581144742520282911349884029770537925276812367241315233600564347203448170714837764277689448210478157871683916070107345668220295603540071254933358850453152867988861287579496493132848189585848610044293263247551366165029799689271756365368426278150470830221508460722582279763913803967542071185056261063104605883455228106493130905775672765933952713165216195650812460640268436864898229720021863928672597810236409080631494740675211468967178538763395400616865799942205458877753881988668048958503931216876940333213894752475250700159893449648113351757809369340365339708518767173272489241591383405568912208877888131845876800749254657278047613136790305570649133274715741823258918130926047805992237090841413405334885030658651217736337131416094141455053148633243048159672641273675996933404889942526614652504748308626850041596121844093407323975812027818539065412146904050479085784838127235214454502193237065961101864633060991281502672641389675750069839895062048501724463986173030430123625616169658117065998344246654743033899505361248693011986260121788902914568831794517151805847799275766097037640705859813918091412348523290395889982886653162277440523766238942252879724783612345237819087854174751809671959450061691234398700575326258807517283869305852070308692938782053755761546253535561072939401047090706757760798954548544442899747996736098837601543969926489786726427161318273019909161735642261914207514422467265015087044575831616927406835328909059399159940173446404626304107800650016091897377606026341565128278805628815249677691464486055771656774493739633924384503414320341044272200541782511063966050886668900076697638622813466588368968866931455127672329540920666786947603381902953933548781703877371146169982252949192854596967986822434333210459652313074179106762788103289231819574298582155963278502994479679847258872766174821588385702734004469753567017761681878960426083865052593517997745385439432891630359182597184392995165615380228841148691854704821108682170543879371710399434043784178232730520740525100196982315512037248530112697629998776854886229303931170700313006681111473499480694763468920909165011832441406328281313222783366293583702625778779795301200443461762846679455283098773911938792608284589171523652396657072536953075037400643546749428717560540608605881848631631730805353905759736034899907827759584165031845185111307929549081121057442930283338097854273499797271481837925609298594165604554727396913312821648179638357773340216261185356487048502394230480979784117656189126324418218529478908804602951560388844094447254230131661404671587353396391329423059550589878046976010313031316757702070706994970523391020438851488638389773648236394859932245430835837791127324229694372741739632301838198118034958210876424055625553482285198541309304080493098764152531474544485158118193779856081365967671254027841913603338659280006799017818928074267045865811910952093862015495097689756478918657171929413805841060955686314131758796445452582961007757933364036479705252052098757829563015095291315353765374228989699374650738403029869980161648681788324739805459037350236450417225846527990802847015060631884858929665728069238770744921373306821945601502967674362153718569953756366040555615421377457432136334246796445013305090829525857525945595421923590696389137926672242787221539389155100317413365461412292809315148683845323171282870197075572722089082281896942367861870950138341530559795371993545127093278283767476444652261340249224957795196713198065094058738179821701177952223128716960857282412524107669274687221931012196955981109594006289779475976434165346390560476570637237955505410198703390772233052920518130386222978725645448983530562477540995964127665065958314414205873758884333369245606888097254075884030265426280163890379840537743805301877401585458838836922888995548499140236943712465651703334124499860953244933941128087727971360233900534759816163072959961259323137881026577894153769344460466581925919457731812970761970663950566988549011040916105707078890704492584660797230138561467875529073528975928559376223157119922417725217510392268909065701295831379319453542729043410822774509032585681440779214558083831309027225773497779590013590311562287638856765229132443978825793242348503548280186287523620974467899810262658032361071194312359814291873552425942343233258712659061253430574627921133909578244882318503972591943329076016675006017212879632418015078569590556424634655192246531476595133793656094690220853898563249093562762442044020492587183355224344513084364942095260391137306995546416368516316129719132628802331792841057177238353256964847459321600727004147696981324136790669575049651837562066502669614939524914506648288502229554026340000805023525670569538943035232444948358526891249831605846172555720785061121002234319342859027973476459110800095537087655254680363027414940054973973475708793533844968354988347865430431028241896491458223355765806103500776424796218965766034996875583566687903314418734337558534134131412941968773193835156494868302751549677463000210361597713326437586144423054153226746430845779913011274785760272587523540363664602156597535956770145572517184511811588795558281006804890266341743197017332783536992337534302754194904720350659997204801400508557327403647362929610708589103807364556104034773544091403712829890262586974787477471156650012508757417908055616684900793153769560011056425609124472489811664234506153999803044053028621954715026008797153417299435780225439561852014657585665905881276878629632237909230492104272219887393007318795335443301098828422512236036574777814954976016332480130689268809045274204969827928544892993247446680968225063256101400465108602933666343666004833047534796703665006626954770195722380643311205417076362911599418713486123433329632939296210098918857742126557188603923992587102512166071309697503406012329952632340361208645107231850324974316737331523809638023434166935804011706067182357832616368405099463030332585715130470104786154370834279457917259072075127703960546436945093425968455596407702628144171739023209791177845963742968515074375255459378320346097867203348964057424297944639473844645965641794456804921012939551746132807842664597870766577308579885254294783155216313611192654120411976493640370408968834121328923692078615280434924167488875040182627194395213921639694178572629120261712079342763949190591231423243064097621611289895254936888440694868781728833298318823214317157054817693978379204994882997161195164820628672194405359826802327651960264734205879582800939681249137245199862681378116321898156193544551920891674515937346987673234353274947324064929940173623440037815476230906583104340227951325927564152282838647790773664045815926716153282422494803615239786945885504083036641312452675193086507147708521917166685318216995712260175453307750559477386617598399666692252717080483899605180288374141739710776063296962082296721020903146085945969982379888463506152247245796749928896544367570590407961754083523033993107390871545398909626482872351092982500490047834480068972098638353700609505541958601810664249345382150581135457001849456196455869261608231214688030228778782193431333446359811728569907064095761395120790568014333333710119639170022719737366460972470815484586490296096976374924115552527646419717143850591962621134831661393324690616066839711562339730400235570319524526599731460832755301969467586595270406621326648162814139213257481175821180558837017459528336209988296339305373064403712167832701842671470176845591167686826017492181208016650632113001611789155165621902952412933288562048756778638442598912239109708974629900495005530616727926152184536947891191381730684555012398787640637697633820911649566371969089247296997389372897483944684242649703938687042274976816810750846719893796824876423012730228583517456531020744461780112792856565260936100624160612607255573165534627019458164256084216635365699244170451886080340370025410001762007868349982376132469293124753997326243623873093213185994175720716640376998960058706839950166200815190784978111477715025076760893404877378213668744157686706379823664933544951690224622751882239156896356361770954943512294443155656954043073595677146543233533230927709765381412126956976687355150167312458220695875989182861352701539664631052739355118312385127800346373852149724911198949554053627990402532793502139460736258255625427124657847455999937705694847400885337151354634893403120519541911904625789639693811436332543816924721404374189782241249420163185455712155540424045828447030138549081266093121136831975028571241309470030251036837861016674277462599816273827861826234900983391762802345213465022780583278339018813790909632584101031244293098959929641153441867679382782939371892419621982519030945567498721970573518685347378873006406324327806801710977642403012194739985429214053862588851614029698470914867140144251819488487979190678869699508764629967095862298113684641761592519650355800026393584615286373950926905877371342849706126505121627810945233997927178952503826241773842657366831197845259530161164898946321017875403929522702667949273020713684275442220779340662760791392572019309189750335725899598671675579701232728035321408647659458339032449461512719832340917494345091791138789032594771542087036386546836813722864627023008012449880745302583857247749639971345367574846734866775014891843042871557568575213778386124776062519041994859993088733604081937240177338772633811124061353724701416167139103192887733930205565311550953926420275930042501834321961310014888491909238921431507183120389220434072756234865321723512340493051321176118514614152406106266854140895258312002770272983860936848596514884779856664676937448843361091227816124856630697332734698452599041839995813640278867166538783544007368109451721296502578292094776821880830358129422826663971772432992561792159513277272064617945317007438860237147954084409302908810022690518819359307215476352817056364681664784376478183830807150977146781806613618545954120278922965949231957103480403720760707823254055212781897706792385702118287041223040237351438898359981107763942458684325836585369477926505387112140186458315926659009861828365333660758607072949754692309059518541727356136007598270742318321562061270430479703870206250763218398729931013716154205828662632460608029144278983119834291507769758740324391327056347927403215047005839949286252229706418449700772718688520397692685435759541595795253076627581762404609140261608790494941481309093399388519540264736296650546446547035152682459259719284560045624983140446341437937247372511353492007785234180790015242030147992246422043098227246073270321684876561853482169770149797297104583222389260120064307769058534586570072069324304248217484666880969277673624961472272992349719972782183559635389170613315095224992763075454615974417141694802039477618781842035128175054053265590733207306497579602021428442825246502948387517100488728261531970852635222081759243008753110745825246627750268556301420967591348854562882751215680957568579823954033709429704092702601115328599149907331774490486306069860371906201754770930165625689843606775197665705707642872848703669316564603548786963091597160153687876869880304686338954970470378276830397579935288824298385453445274138376912269355248042475556312841999313687059502136399060671157904631361065893956934192166383894442070877486813271512112147375735715916731229952351309769558172870373371087749993390448568038055241242107209438718518613954201597857017801310999188808315101150263347248315385235748497088692185604661630332507372101473292914483394652790615021011403384866997404939120389831380952610486168653581355808234425073001465380853929786838459319183907001714386318560712811195423150937021857739618019597550499778864512620380919126104357665775435970601415842194776572937801287451806700880619190409030218093685653445017711930876553651889237983641974915336755588805403724116770911854992969617565576819572500398249198981055119020352941064445687035306230697557127067423093898976525793309160025000732019912731882171875898691474304603064375728381104822238943755656497698437214121380944161781895130003096825978442242238550103167697646315303681078648228229077014216922953854497614790008089783727604445823886986842611193910117376372665855991034691104476348096476557938418651473655532519449103624569088726881884437758917276880590192865705225953624684641656058936159395028760632854277370767536411011373471175026643840110267223265060410576801537808272756051621298526354851551635994478897188998434169418858679718388158990328041142060784044303016262089506131929295691926785124414145244392827582921390288534824542369825269689804518651121977956203980474719930078285640629624034095016179965507128596193848488452607738128931191158044116438956566422628796616469005489981758423668827603280182918794800280770531575581025502171073549011883158129516132064435569691435803487641404853201211579316146206399543162107125980502827704240188214899331093825754757132475806556233591896042046400773075121525344152911005717784827945997033168512475708759644812838517151313554084825956328360142282140615921603420015989885120381885548717265505278301699061560507064311444910233387967081582845906949616450181770306848014412200023776555012450299516342736003383737199160638173419875435310721189855208597871186163867176121103589410349694922081279173056178067445867588122712719647109888191820409796623957042949736949623618861678208541369212546894298004549447639604681113147297484017582449459906434816139021905268406268761197639781804758243327319026352391780729312617502533288977525972855758864562596706662990898248102174924890073151257999182704530237057156784821453215789527219701412963400995026112485333607548815729798522839446406914695836953685102839211763502463606369533156251591141622612216420600733186038978841470203948439193116844380285412307771174346677965315741981309904156218036674468059218443296061980809182204653438035733713448405940788391929682709006659911451800493099205454576794119452445756806718222550782547358719417257487460178927777307568705211616935053709676411194655729518647531846638945964262038678299453791450258876845162801968608030567300090444375226787015215908461455100911091225714109746341498000926255670552866771050345508928614847240582009308082619787644447961563607944201946377101788235598764522148410694692448946778701070321585044303838596819080210834499206897654656006574338529079767998897701064223557542423573149278277943303563182396711273253457948342885972996992759001342249927737939329851504556112245300496649391865002284872975702808615332107983260819244128165735240097536198149967783098166332450488828560410908025782154107213305302493913802853360430537549090372449869775432812516134707848114781758188017643902196186667256042281480727611427921240474550772105030707808095539497054749064572910951982651757512986062983412063749721213999571872955035577211832610616968115068907420391157751987729262905870513404166796901084162061617896327392350567084436251010731998236489444248762852408936098199372317257826650645413218363090461151065475923676892517049968253629293195145695470220669130119335573123663688831922669756388411026106884731676117323067876813480439030670224303896725882746135372474772819553459924477343719024861035378273933503205552269273002829321116424410232487801071272128005938357130297670785078251342504783174183575206682720877549987430826791524120029447348428618310125322000543232855780998868605187843645895574158810790239301375825983864908335959369445240472952170363869112892387484099588038542441946255006577132933887385400748696007675554566070634393790724360957137164597542033087406209044313753112702634732321622573918138751335031618789541718178790681606581042764480872515760095201301776814949722215543348910179160897213008045431666047307035842003136804041336819658528576136976114828852951957735447874213501162183081766153041612572990196623816713597303486507483931642907163145950145126071826753390073198195150353143550623530234362877276494342027887649914451827624701006961528108148636630848598348671031025803736225975875135017403275194858428516895374308126095504780420678783549460059347528932343056584308645116862498029207619328232387599086762439846321156901188639210130200300754620414980339341687137996100488586697049087210885621927303309715567002812865140552749122748335554815010150168839661077880725192745976697403374538111246171054920649915549655258358417095565258124633363016109822150375243736007881742528654507065664610057959461822136990705081408222430542767453528206721297516199179868061649021269040817106871579013546013563934421487204811395603350776358359491011545316962049178728669315548775481573168364685926071276869434280699327479564739396936394247872236497198945725610080636627500544080344404266333669597579154143020594785253326533646875763872321653999576967399107334980947634624999083514310979102758633105822781918280007347576076429266621146004022750033209546424820591013292475739802260670374413888536436269734710251081582191908220919099710893838880669648862282121662181331389409468820363632182916444122274366465231659996106205859446442917338474639966836532457897806003542089581949967768077096186345707889900135363835866020693868935577461058691577883382291590945619386102752381428714954859440266783099959453477001332046202578946563649365253453532012202155286405097211796171460964415806407959627585024759251447064868869641463937676606346881081692509686811445615835553374259829740552764235900214974329460617819233533261876970743132215436913782749660418888403521848215305929619639688696154286197845556435976124179461993768393980732139971488956819222443088154644668009711281526910717163499371789821530398711820742130552013731787908919066613223088628708146728519791994930573416757601591986017519611628325003994045545011401716523241570571827162730871807863080498871437170051411525632821348242895837345766431192897442350107468580354468880102957504482198627305772463752655077073930377605772548687012835371813662332708932373745544050508157564066803503772739956361658948527180937018319626242587844524570005305282288208580536729551272339083607352461075210713808322412394125923642610973608406587365950837126114234518735549236743212943367561561513209377878880767448827270822450814773070170873722388357140399968802401828914051837358739625592212162660372746130079823120849006172522291510738051487979252353359400068251256929910238063147253135249395833267127424667438213967856658077758541577050495127223234946811661718046993073733325734041905938457734417580790869334991171869705213229203581043741525190138724205654780597885658301677866065121168573205157660997768338404044610260258354511721161932016465094731915180055242660933756588416348298541998665814975031452921542474160282125855295529418513432605852348617932736987337320671944410755249336650886005590050148678044823450619860494560204637031410069069789747786365734943549191299110075799262525277976350219302715117718297586712099707037503782321383209636644338803206999552250337093361010918528475916961741485239574887731565348465612195237686026400644021695570763486764875487171239867970988522893568338215417282106236920891499508096107856421687800495897228197565057236118475762383851362716922185302243157749316663196055061153857875953101623262853405207430765617340658055957738718211138516850248506117004747501157878050007058951032684363789203238559654025620208902339292807629269450013205319129958865364299822752943253853097892725709095059642132501373053345277706640752979311329335940854466427199975789463365392963178869939843545555124676879197713058404389630427674730469994540841634954441256219993260843223266244545788392662402947528402941747533673162614988628368707722218733822297008830351964718277053645133436247616016736097056052102022630532250644597573610952094866376912618767887998978035605344238627553135181006839835291301383617037906323370536695771522832611257036358795456286935703434306489422008791465934382909965618200459830285676203022765711481112436093437744997502558890617457014379869708437557234526786114541893948297140790427212835313724321290420432156069735646392523475137817885693006056812354177963769723414110723477694336363287571091216197423658354347385403968859588893809707001443532212826785785493324911917422986172274549919885765214796414972503426678595991082166998426983555526016723187989692588658518623723944702657872110963828664451270064582614426567107542853515444544139275584054529957841034652692980458359829503452932133826589212247888284761890264997810984554003002323276434610053940125706156831753703199147974477583100795028741136593615034358429834219302825684604228811278809488822366207751430960297327446559371465466537194115529867795609882810778423204429513659908199522583353187256764816523041528668510143143795063546686473185352183139258978368861285091059881694825597241428021234449451191445722241959228521929399504139111701078266853936685186826934243852518688582929330878764384220076973677228040268978960826197832224061580888034822224962311600135209512527231872672750613788566491110821283931585973378135417028835942244866459273091434367581877750868136842087331265772800176415423316638495834781185452609042875168979705563903395076736163074835157626924555544367767689954079435350738378179008386569846528109407785124782185204889039650043191735036974059962502752505792999385486913152250201124419495376331261468134230023433999675287348689543943928425298172941592354246231005105559587080416345244146709838674242858578132527932163061526358438590848560961423696778871550177424247757479874974523763539469947583280324831675519180008864266233415681835833251886793231291186774064833444137022148347427368510573187105946200040136782893218211313517167546523731733280069494696376662783307404758310212968319349127168497615498547421794589876393167162890560041054864850274735779762360278054606382345272669664007702107716687144068529730529252103984121150294726975708782366025931391539040423016453399069316780812170391969534846361782189076254651205747151499778156624104861757504878594962418798333598079881028146957203167874768102794543249164660701395822395848183633415768620450209559124037023332585188942898960920577538747551260961160120023898283178148912959997110835000665694070413742773948428018378667876845168065737683955006108575156685480876625797011062553204683632235461955982184641522067181059591476976873335228325413097087475738190074294481668073357345292364110581047264116297383416769813787596383025559780508292346654034656654482843000737432817049626016668709507574201353843862020212365825645097444502458647590714286310143343245899606825206366143879355176518610972617689999306939693082497057463954428786206484093842178541680475542721423287709828556077233727061748482628215380946160911119615246874250964357417005108009544984001790885506686537357059907854546889964573591722967108507971009774325046725739280125320166915276062227850277740900578257051861786840385493409444065522714109664032598816908865519303143247421462786263709482710297548157332672918640786316404684151114353379921510244331156354089471359528184001090649067438244331642665047054919364531590347319326850872982880115269703842756668926288856815011916448671796040699984360972189533892754899423830842919080303533219377373512302962956057619142824879406248342238127854013052500294433874630268173957396560341853767028335774532211844715501109495024871169739169503717474958002541826059285752787774684522652064043720343327601204219926040077807691266903632106821792618023393481553936121305031695933424895997392234858624826697971785610531060841574661936988163614422382677372108626384081198777267669690617582486821863254446892823113723702140681272617881325249965325593512649035063525753339160638172003849106883934200215237399456069474275128666758547725476049176176402253742162053360538795897434668847785257861975376926857512240097454647980378558243971625990497114816605563586770212000763505527308178339645031980254011302357046557953603810912030936006445766878919638024151390359121238513475069902794908968600855516413417769792919877856062927282479531091395172033756066151300160593925361121959519340767694214488774390643760361912986890343183646626585487946690275749309206460291474867920450157915568600927281699001539026485691593231704124814924407073848496027925651005216720119984954971174328983860326228539097234791621106270022914247261999544754596658188745717967545776264997330895259900779909096556119341148531576077267214733043962458188043395052126052798124129094616049510175677958355111191576805501377758604029987420726146709798040367341944411695127945329891126831433296631270958629344506046967314297913586274420873348998957383279143421520004180468683162422196555700513237909965517311780845246979918761779880748252015732101836004447338481707030979678770260027984300433424992376261022573848547363281910847679103035470710346051369238146657781970237952289475273121218691302143198799913071184098389495801906160599234711188978033343576694809095278747861074831863750524850408578462981077998086706428670419516594873903045611891354702046108049424940958284694890653945105872287571984250667538066120735241369584623813301152568469583404029850856873695263016909278295739921300118906605203043249375423215977263492195360764600001369007283128557897634274323913646699385266331915964985060637664063141041045649619333928319766890648803159007472777414381818757698067848356277879874965081513283941803360614897491946196174515761821759613646706372690395234804770259911797536577960155585883115255833381336469732044332177865464431822369712879975571758355349732934081174429648296160331422461124901804850173860079256257014234242953034056893542031410331965965605862133700903825151501903723038741836697415394085424062451477915457238038645448191282166345134901909914091932317204154972997404409336098909013537919379872221589585881749003573066578907573236335882495650928801150982477692722126461037310625499922302309789290062179961089419310637475820745825218169944965877304178202811319293613863689810847048284216279738141769994762322241992956286214985203684844068515370287002143827535424256164898723773428739778685046759516903544273795453829772518244875631352744440789751256274588712260021533675836410713188252310856307585741823854107459104960550361973986531397190735923301192244999947906532845425422015802998063225130235508028741929623354076486739090172364604395682956959507236158583808342983598148554071558053206390320428601554173851070421904542291752448156120167757738155056936270470147011557555641648536289847751670923265945651038032915201764769997389981817876059479376100617338551688935142623772501727348735496721136796748224624476987838339821156717375939205185212583584509372021257353407805113815941891303691295337129413452882890797195000500485884415009019710714436533037523601202115544171824370397812395863250490181067727454401067347904126497727944456800374247500957299232970880241701592923298441555706717591840421386382681586702346331848223586990934195284448794020158982549066588910611533966189273792886097907138604548881759629827605648004335445749641799896686190501324016650590535958990912028122005433481644403089008189634897077671519000794261378932247102610119898598499503485196075954036323374469701333661069396340128824872271686807042033247865596512323484179081441571468188108658321903194284336412599744298787434766095186343443389436971656009182827795963839665214919679631242720082031758839273896258052891378049632775590238978115247423415662742440710907505508196625575837614707863168057661015530002842873582615717702280133311175063748558868709163390474959789328141282530808708655485966048418386277643039260236758422398483088252426830819754931048100822708200618924937330580361609233766707584469865872657535129630128246443768710987964641396919929258918175712854851243642057203347656191430645808365381142691019096857585437455563768308748478878083673909060304914950140477945252057763643027295793967391954712288988421634251358844481518850891106345140302972031199105207847039957136042781205761676367492604066288794991489648642529300430447328659395815785827002405462127483640050725117485072748560912426555889554416706735432089199260147383451459788265194585662436604363574544282158547767090755769466906445737150572296326829355114102197800897560690076687736685003623801448355293746169451602601126227488096834180586346351397344840940870413237959960505638932110901723370539143403979701072263097147884063034110278472168667624176420528979661091733318689548030774645408061152971403108353422334952830952224778287038557199780234290606159622989797920173472355073881176518431820231571765530927453025645945855206985171834658219371529181783267958071257662454057946742212618822275365875230744586562847022968179420409828030356791334275751696497221188189015141003433649663653179307539049805423579878572325804171244769530521082482399351875149445760000643935318513094183606911268396069838246712127839502345818634483480450565661866167419366379321181705472875676193361231811221468968719124110254526700741836900470029218623337359270800347515633994345021212358281906485840428132866603072431029437810695997348003531191165632789631783293850751279131920401816445030993905530417758607943981448898926875488515741017380906220908100258875371756659241814010252377348973450211831765452225411955734072600001809675381596443057414764484666133098845128313460611215461053807626608721575350940308020880836262484151298966897583237009474353582327214643136576532911978458484046329050020420103360057406458827626051512221057371535733960996493922316363280881051337114536971418778694498574147781199574470908175023632947160606194426258114196348333384386176900080060241942107620410401939048270801289542918337223895215973303490129417989141554570657783276849022617806799970515613685731650976903899900562225294398818593879716846280455070733837440558983103847437590670283360932382930416727336055585949446686249649008271729712843463189694034592401253757466150799261747455709391717291202211859674382273876091688198355300224781200687870986293875881697316179931766816424496061265484047906550187659707453142348006152249316487662112596779212971695041874441776408670205851035229664553046113873907072789650398977905076470289249082727573487098679597895581180847118126328336918699471151868581415014226980488411285544675975632980456340232212274321576801318415465568424223521945459660596102468405245076528041986111749286889722588873917944545239838348554243490340840601636469372220562274723825661029600679579746362359783485052427307600224603953023442644936082431184927725211305017477266056132152161422309466121650853934709036972084108780557940619139135856498021731094486641808723884595975380503595623682073642964968998186732298633213213318663150719225918641329199513061102733389928002163203533990735731082484522478100075784224359297946482446001292555210068688912819519388555670823974233646393780739915757584181434295405849769214218073978787373270784616053090066497062316443546030850955965563429773882105810389175488389839902121461572597105184542961460027121548011247511891373375868037023282011122222674534173546422812765384642583470103806872062595468630987221839208332681052263902172680041066219653399112021265300299313246462514660110339468591600928107762204884456327729662909919228230052389005671361432641177307361860734955242144678405300538783745807408424586789211220029186573730774533123576297245470981546658089062378020289741494477793295558737646645886577308756594430318290083185810934146947421985382289751678669000907331175717011071034605510666147579027050788944260147971187015402826746317631857865499898447837185762433804893224053428705090467528996108615227073976151805352030423858490626035322678365813432733769357505991990118479843872522779611582663633268333234071766782170713349634898519211696248859285445038582700596929471460234859518340802294203569977331089232413862877852173433886639152915237564102003466907567169923477294896202172947201703572726598682534661579756006417017243872206002865259479886574635218347736153082908417879910058709620872589244839768247415151958282995896229471190615473762038546027571087421216542406851051145844625145020835243075295622004741293667467681980966903169726940507131716285604370343259363245357689215250960522027882643356680620104466670541647557431274278273828470381117419273614799944484317848764966328726584033066031645272379017507982243411888539195678161064685637403388995364846599402597495668835458765725712347311024480600165109600985327077009407261323906427718711546897094707522456197693556853519674426654583640217171260362504764784723202746884694512822778903507545117636646377283133070942009797640774599467832907399516232500225954931251398242196061983915239345427952690114096347053335518152929145009128814171906910276871940349631580887849508663452817374506266197271116270071939263131982697125613009065951790447986379051647024077376043420932137384384775005587919870830694076336989425437709996140251395302640124504507886956831508245703385079685149087066888453974481388668534929122827002767615449401878048482186069355879038914267037260520040738914181929324042400760837814293759588980820224802596209842972357611747184240303615283817011528137149138838971319354747300571417956989243785046142536406653067861109318493845626494832720117838305658486703073843169462074004603214295174135209234672062986203281772730041615094338862564917821287078607749416151322707496293837420682323758174733982699477492779862753219706189733092343129522682925863419277933546147955152734121029787907273180855965375958920008122773750924766242572268129691504207924716297143735194493836265630141076926490416872335289046823652205736583416828417855678248897316427271065427781372174138212535167607989696384930821007172984791607218238546344070284713916780178572988705200621097486874483347028073918395749885825085089063224712030211252086093459212474885945729702680685380317657827353033614704794132812810027259891872740464115784259013485907193842212566567216341332028979800203446877063530946041178318507145221231547750659817130188578878940196115924625289940597283069823686527085350738976862545071800303182344457203358083715513543434316938050795502524585709636409420453822213778670073016543891287726757538208879052984630807856729658803334096607750175593555347813889476674874987908847769506787786377679029344662806813630688545725400152263482702440323855137642530880188573176745835176473319361166055009533627758894303868233953648070843510920054758096259494192960475806631742966919958459971838693778865820936371536459823262979720046136214192520903312944881022505595370025599058414685837618435483707677644930050067339740018192279266675677434866659196928745151177520591045146856690330629805200889644228868391060573463149004272982552725232951649120115547819798427418284670231748085639304785897766247713192481842725554927532205878828901325611332119705377191545853584464869451490565541473940897629904778429322909956756821191081744382649542303553694501170770157584552075699849109376131432009992309929988189693765743073820051126644211266577831244012310362712232263328319706724913475937689357471098995471749992352578209947698351832290206033578962975436710937699043526282049725815558631271191648653546861886106922224796909605909530660840784305115859744935207137212071082338142610995316093762360286452572121604264599712913917049777482224327425767468232844585264196665481879421061170502460712085883223716802193040857385279662673367030254160561588986310692133425755420542787198353655355736837585847344873864350620128550292558369258806914253599039240453638154728154874212680477834819984799602767236415712331429013583155968469888583994221995326806753743887572944172023368532877305755589807893964602101231618280087651009353384088003386184789190735546269093020883896545790116791423978054602316403769156446094081024315905843940351145577788793881002093619141422607767754370449169335698364010755823607185659367386626122897292494911996591224381455068051567917462837367873066747928250440148360091959043678190612167808825103776321388605122261897008563848008172952561778587188707409190068004012603779176036202049560202093546002846125885635500621767060922888568832746846495090753644811099377387180877921717877168720002034194934583597825059815197137945550883375593818973484330408048644635964944093289319324070354680892080752861076290505619132085379033516046863529536147914199525095636878702313633933871970179261573333909494409687314005174738671890794184301688190936559182185304542282295118295206354443516954881834693010163506906305668337945749910435014942074633272479673121301731570371666664067585888807039019856170717642843972686393151386012970210426687498671087336619468506960808752586362005099995694536545097436211231176207239435620963654274951464103550506017562546602462619514976183988685504982965573263823579224743539824333608833015085801375609060172572999324209907229377157053208256022449861709438780317229242049107749278335953756876598306176543038601791786211662853266300216356066943709733501891239196273623951689704139042043138415654184793199438905381349292371703544431994235274239081823130809969772094750221691164045651709203630746676052339497931070541306041470127503717097827433191874110194860896684175124230583606121526879405614047816008869725553882855562939774319398444655536514229247725965641758865520051526627945811680350379298908922176816703563980657148683030571641070682811200885491485615367514767207692286442923841981826049944930777885644363592883847433689351517591301636921606657568723480178246693332604911011091770401628936448916516825429056127097620051407851369475422370464195734697866788580116789546349669894722088260927242161702798656615110464374471133305465291246993146300238649868976895669498910580223716497239797706872586235757001913818653121353285536818831331749434752804126843230773266612342535860107710764666013415115213927699894209632338761227239157315920580127242161016346863537001335875741568645934251495992033849122435767034071858075202934480652354436840170078991697285433881632036207509836514186353518588258437693462661553153551093242941137848700795242132353370910529654580645045683149499823725831980099902494277484183094678053389328665645962895984358715713725012116096434190837417094165218853556080550042993504757008320506040283716918936056550888231440160582229910267023470023041514358929337701151942053907315796436863617825702870876378012538871738862812458455226907319108919160999742957951712403625238841630926710498324359296482009882339160533902839031083170050729314936377805744459258520606417256338545885231120036834156348639157471245537796014282590822816895143476000299988460824037428731524927127153014035287118605783205351507579107893846904412140208459988306530525182852800256912907373036564610211266942529429887916055207115921858919672312632682020254038728886376099821901845916635937992327052565713990622089013429563183381670448828517065130063682620070051799435597126898406972842524286484241696892086168470189852925121500365064947027634737180023888570831355890069717859072231446007215537808350350537046519699831931465807385600520567017663171153169145451683470127789448605183503988827312128269849067503438152680941979648271169517162104100364111433938459732157693745935724653873637866285174201482237587582216658224238632291367802502131775977613029074723369434708190995685608544178941128753881917668353260815203405596281932866963228661513557421231162556433589103279744800663159094810228434276007760332568311776301044056898017220473343115528080121899491530668329119474933167102427912323389549751519084147110160234619519754413229507296184968579647497362694994803005829158695311553068734553837221678754151461895179193573402512392033870359384042555934466803077066944743321916422308104663229798085636673444998254210708311280032326823151417046023133395857217566081822554746447946667321715187419533004454869943521111972554802389942960025331672773761153247469899853504054831478482283503250725747700974744273888689653255598248502887649215607275180105597122155240723642901901035630073134744506382257037573925142882465768380575848606420138131285125086542266250900714536660033510162441057824127002490933967570750747625182906018640839173182123151331792342062277187711235504659488928263865302663515145400670319307880536721844512706314240612627014563363996802386683014427205879125710469982251108446794225963877355131073783981568623068336020103709856746322005583553365147132807365310521242408537567768432254888598869720864783359911224073857335177992331561407607923591736707259282178355950224352257379245110921666252263248039949474086286689044593159140162579713842393519179833279499564637078484981213228489529415830490953905231096105301773080525872428817799323744143878302623206117100966330160499012985880465571628559573279366834517935611606158955276412497722793260887636815783741034152047559042480236493917611751657587017791073417982351427272759336330208792577955360734041165009079312329446457389274922932730419702508180260841994061410752195670453242337055380920016058964128251011685974165082015708097172925276547326793907930152195484690266324956304067673740671598128922585909271890865155808873269621319272979295862521372612118236026324591266253907391398290763077871991676670154443892413262756401425673770753607424764120608353059084358245567667023827093901483117926580569664461432555547235740689161948507701245864633127667186484215205170344235202476051861644860728623271448372651956178267424428849518545240796769994137720678531842770624424846902395093537797892041523034108798720501391970851989326887575876574959681489428228193036442305025856502113283491390014060107162935559309199044843707344507612769631362631604128281531195830757750814774516490672449488778208157853171805591989411028453750480375929001143448306528030802135145269665506861750497795466226267720728155466166612518741757183713919243421040696002483476227149956412517604236970343000172940913257309569788067422027585491060068819758822667182923390693100088799624814064167956882112587789049395955623984420854758803896383291715740706225084364488491634725115066026281472214626836480623306720798591611113337609596827805979418404073568649819501759517924739559622030565150264771567864715203202600294455421706624524306271354448622992395789910750860215204466064087904717265934003810658371302366523999796867855805986946098972888547708186211687580819574791433475645782473796080148568498781404500703760960312403953522292777566085259969318656899554924459942246641230297262388450404216856245025920752499993792300965489721556608458705488887772231005468402483746570333655634547479595092783922389137096791237191536698736242500814451086204146361412827437908097523135818194806623966288806312794865442577619997601486316636588263435334679923875377627558815373892654097511844331750467710837937837968979995334660976661062554609830813070784182429013515700958995901864906572077078366185257709475787151044389640835364409095641721070071236595136131253166157617056776943925171995912654886682210727908814562782797031632773709788757818172572681420688106859446824565704750153194594373484217018930240919888003851746306778261561474692201377367740598710604887378013346130538364618503031373291904299523572087676164570033091941317624117309096872265055389045813235179622571972118919096772282822283940961792644649550071757361014588284650305177641069004433057491446164741990603077454411654574618125782859310281898890115558595663059993706564150592340194981297327602901538834603854445271626927482756905006792087069702953921045223960050869063958216272978524915238579897711408780939614152466659122097342244751715803968175508784635783224732680102703237416613946848908176259947734149770165015848807352616248474497547077850555775708039492549372244280050503294367579037573478388181901376811384835277875524801764931995236029058664312084714383390035405982004379251945900590046287956923016759074804604111770772901266329677990549905517250862495778532275263858188123217604824809975363253816399284289664755264849640831324998601103488672825110779473468996058423090884613529217717554757814445078442590432381002004900854329512363763138296679927221433284950463874859087836601034207815803684029452160531418423380322321956379990977441268578108226082210414181789169329588227008840432538115054417606602001491933123599263437391578904171059399977120631249623768202206302714902353904004517711563889891344359947125201410678430190105817024523073437452477485354079361984439088447105689738314444068473458021709035768758597268278224264265268635661234242099647275367991169389920534539906523748701589718663937523812148061957394620342635083085451722627041676616173072291360448296908146466429242487109078335507040172892818122479098782025699026654292106078126838542528996603570974641687659626686352007401686046792535290002691916875304550527190255329036498752287068682046442314714933116019190088095787185255015837902840286784489630100916457919650743321471293151420609086078987649020770727784869199135181326844376507407177431685504259281993969946242409791019510915405969072632980834930898770162275295472323027801449943194149755056588616983015334149740030454630552624156022360298395363666515029751078517949452865786867413833522981704037768239834006764062152521932391794352880780668805933734132403211297242105654675714309834934241456033531775753579245425121503916780572731838372078275826640505879612003737498986852093682937304191614791111113142212593320768565296380264761973235640392224120159666521477942828852766543978591183591933321085590318558923026030453306120766300876334442154242799331023949787924055870836191266556578556616547139765644742081760033222772928619577465982786411611439207451220321705599161619774030951997864471181052632417926231869163124234491158951279617183420015379158223922642833531524079630338978731487431095665921666314691033182892731284838592825257968245014157618059491049506740809517474541669199700369593172682906279837744266182138662385000760307895168816481532883533139886871205564628365804422485877401908890947805561440775096745538419209883474461320970648471312261181750685218713066840453971059686122346605469890908940640657553925537367388186384883608057928156590866180155262158164056621694701863804790846846346707813773466577296728036163293180420811550067943965833480943214403690332669507966903017891000663466569648519694449334365190623593114955355667047852863706522781721270708721341441018241819974810035810801389452876060881497741725855471366387350268938328586432981504956940848793048482880234752515003563210161724197471450200412370463077925159295179681244586007695783719515989909674409839924725405979177212184450614701489732878074444260547877192440935961098357785501954088722433589225048798422153477098675398958202482239240887879219046530378965932879746589107106309799473416532287785298176352640074639800248999178100507861742369599465802029711901526227456067025431135153648934880423040942478765206313968172905441213643492333608944854870766170912915644499583669870403396613364266741595206881165883931028928908608882968400196674850314010621446750172113105230748336456327996216001289880017873156773735270821863292995711867835303623115452240259366806669986657322109604048481345848464070188044696307195619597018712988988277107808178133794571129164817466511322229964839726252339551864260798278799313420414604421074951709199166168333470171010466369599110298866701624906496829871989846476645720059951768864179280935593119674728342519181817377064489043896361908535326949925517795403825133782146820614300576176831552992645213028793267956198132684255822185746623013297041340570640177215931758100996751349669286516567471456507494970558599146744316057504135628096933932539826241731657694101019487534993848942111542218701902015168110773024190448140852234102135529930625788022127057328016329638691055998048816576849628338809343110277818957153279640859053380768732069108983991296048895300945420682644500744339712083537484776923672970203408432171025118266316568855022026962639468529656975275167244843023736019921633549823559522276880406059145298263991003581019825896728655889892895245056171917974308255776402699896757812721694928753498786636169698993569011987462848290128030908137454356104503982758417776698845138432485350314797042781504198252910824360097144392706049982673205415766064964983987289513860448070702448662697429916334682758674240881318877604273446932758855308525511275772685440016049462700511618474615872152035656976786545772059864486512278935099144880140653679645584444660033284755141335487811447559468031349096195477842961388518741009568051666647745719307374475149286485385235056920774733099836067961773241735985103548153866715852382104830819750478983476338342465369700702815260126594515977041430259075696776899505112215121983310053962910183162378011068948123811064957623281200068102367113618721121099325090544815366515299589765117209991176808313104506121290389025559445942038250569973050660718636760278737534720405820339250145448811322147738039098241074530568517176141289715783871239117256340954828050107636921143237929261117326199348495753429515031005873428496708612590349270371159174775377701320129875306027051655042201463208601179745014349543961485715277745525246392475506612574580996993223818571532462465545207485732422747444167054388715570924026701049136630033440398036183412404837340686302320199353904700551838002791583274595787378059563326475492933837942445009217955321886756508244899851930351172020497251604235857218279745841445140187754028668441735911689813949568535446945851506621059199142497179166543878345439697453020548888935773312918926063823289131890070309510896290221217653952797270808554898212283614716786948109394031898233058571737086958474002042497666175382930242469311526660494657311503251270848920922231077320054662806046784765218872097628150984995115269461165036908853292096034017367233551114110194391071412616256780786822287953770122534064923926742044840985211915706376276022100775040559947181432820697869673202029252422658585427157763976913804594670066469917043544831095731503147901095239691282207996802405543257414407045513081949404227939782685056415881685110965221726572475492726231108357854593967268582980043828412184928873652290690598892931894806348258704261005498505681807154538528732360285861958707554586320801633583661460989154187680116574274440356753387032107181181356049681343930324798002417999077012391870654024987620522790911240495291570674125734376392354425368519306609606987200033476951795644385927338721715670359200305770301217343730468622375883112757050078606250573079279645520082120153398192634708672728539144896445533606490329803977107036943488193422113229236442871279577300294873729269387400466527400218313910644859868742864021059605425596308540986398464870772689115458245821037120470898966883531477049008512056755768321543826344214170898607035327423408931033451788304584652487496907957375937718412700423285299358641065491867773956255089706056432851191904487144318474370801457525112292146338835418049923347455474223615597471850674640682898474101307162043169963989164742025182147652017559747776553760213628715918599177937049828266342498581631535474212260141725154580739357148873683907175000295381571188252198033424430645231269520110073925025999003041171103065295702597606609158489808706053767729378360097104941175920175976802215847228136500735641107996304305128773284839166428755779712774302663781374991057474102927022674522443981762797383238604335206704161857498292847342932475718745314575617492083989715056731358156170889533698417302273709627016100808775038493751324028856111254052443860306486059539265866643067936126642040209412177929386412159267977850208080256853223299384944442082135178576504746177071912721569587569462920613371318888735921142045922064262362685315273036541445633689256976325543504728232229321084938315776049401932302565880778936576802583940202568913828226642159214373779942212257168074749360233861498329531082053364125909569137397123481370051518499019619814095538555256869449117328154579993128095909747287173672799360057439526999008613156201450693284153733395372437067320197763215880466836195573839769463605771816993605717248451290849597744524580086737836256203042270711441908839777678147825197813676170880223648588580837957705701808728311005768899686235251211700052382635209404123695075369771640870953160154268631822196104992345768973983038234542403161163121013675174986829172728705850194446173408533804302405084907527531692526637194728156397894424845774048464069914085378245025656248550791082608551301552620226223235379741107008031469614779882935893937050611463521303338555116398106846651483608721836984958237943810930587338423854389464458031871176164582909100278501695720423758696560734643685953196827272784566906886396936734663235125457278388460647405081893744656393631160520297025389476056848000067579138137604329389768763741594258077379596803886572787502168018919577099286917407367980975151714529477044472702854647130988782922527567297958796492015359949089313297210032649728017077365463349032375103996050729840874646700132022174194686233169377706469455619463268659346679323191273046072050034818792711623512825992126474159039763538855340390223374770621757374761128112817572717805276803090812011587742820283013929929853156905349754989889838731813893409487475240522762570874986464132135307300913816131331497360556770778063609393285266766770584673980484892920052994072478993837832533871875978493213519130089520580300391197426582902814179592667610931397183423759586545190606404203070530165527512529917833208953286117206164419785808379270058930979448177170126502930036461314445157174822612890324684309457986144897526888961298296902238141159941004458305407685192061896193228872366535625735873913935681467151630095384255833427321037179733488628866402995572145767543939943100256457369372508384257189826212004070034897703076422229403698331318921776060512093014920575891257117483506273283124265788944936697423766656989982964129776534828213696774931971568611087592882362945972258306105359723909306497136982483553641807823383629913096284072412320964429272045358609047389558096889469131341293357978623212379783112263537177254841047305984528692574674999911568062302783339786284357760233362571645731949346469392285809720674329615205295250069629672636548060037132409420356875485766414479616027428959637851307345182519697028320329688334344519051604543404596143594859185282803920331239600166324500957647885118085799638188091005336376444323827869592835541550014972169440176176444268739793580925897865446420303394590599588976837306870125998535759990985221388526317028535676657363866808429479518614896338079524399339068959398896386443315186502458003332177040476872064334494095319172198538015804250243582993056493491250713483503368939486276717988594683075247611199048409415481555430625531296243137462429870068542453404980396492149906725100416018646647379908539845753533658675664141885961577668740697403532013708265068692941104802931782356040174758226676725324460675285994003096969882192451387890474930924596011361639856510391785686658525816982884264460798204502332538992884312475212121354011316821079819981818984682062524814004123021378722955016571999274705597141413074796869696491163151462665751943546714738002813121451811884232696368447304553225251584762498752646060048768186933886381551780083541567686777320387492380131357663440093242067816969311296973666415545850638821526710445289547582443173558772446322140230911136056433695681830640218006709543347843960805748129438843416909757690635282896279457358851189610514596081976308872212851278762072667503075079705754457432522091210553613447993427754239200139734603157851247618687558748952854815988538090534913707975731892754394087304638415939614166390972258856397347981127142028396834938588696533300336115839235784946325671913987964664510684447276666378984582110407454127212572660773993245273320663328720843428739337572389044355639683610966479433819273171911031384198709560723110823232972906104954660587204766528710049673458421644840527070987817069800070747542020004711107245949551468298195640397547386409792299707869901265763207173943561540407146913305293473881410410245207168141824553339980605881161647686829159613984484248335130886574778795848891691108704256843013122387200491908643910194206675685144422807458516482199971604360261355705277676693859963102421291216513165829802223703638419669606296722330691017532756317347091735765801264653400957315142038619595674325531637910438260616934339601761678487911011151176226413551892946107380251503940823176791558076425531307621606253605693794100261118328965563643950281228613003773616562079808291931535385772957824888026685797747252227791193953038424610361230329077910934431437191039316637787695629112519052018010863382553681600696928087418560758430228043699769308693353301423294087181370979650212095369250546626998656428784738539694297954533241426849780774600027653993019037655373860779520873564378395213678639816856764027500544706317056587941158834097121169180115380293364957283738175851145198182816033050783758221592858294710062682374455515673781080884399746223932768952795850180232638096348016953409650703954189545511571262773837582042588627277814636916256088279721060576835335114515261952333080595820943020451604694143488476357466426247594039539002856205369569100660496398975716968867244226324266205689169367243501146682538964576507554915379208195352725283605643605285978517917658392750629996680821238435173628396304956197625579539616515264021060087861919225914458941618514991594287795396014310232105288887483218242063631324246641004855051800251410254311306036471672536711314878289242927323660469511116336792753625229798751284204824340850661251243414570133041181379407742067424768156129578753430440554375347779309181046786551501732567208050022831393265190593963058301979440877524198602261847471778755668836015614404821601420944654063244096260386852984922665497825372507216880324272476524771555061707022557934238129123152808650685148651589153283008801746707454440793396497015105580164007510006625052070799469057954050186638781900376457050470763234662292617118171751933756018754607706516126322353174162512843163617259625428684471604208217491595195693394219817899409883177452524892662045772856743994686345868439035533235880242804514933181891445707347169496462801631738003880819705449095535988131061249701263061336740338278156329480380491457677820131507909037231588924216629316808850383792872143662802185526107013776898887231501537496544549646609629531321587626595547111858199810493979621109884327109583626536174951856423895876557939255452742371699579887102434511312370773240392097545839329305857190558405550335703172064759720348025663824939061426976819439357197812734035435586341153759606902747472840608926044548922301903932417044441380518192601659238351370964150519216861962806269131047645841623473578186458144357494267318955241624453978336645919617411125496168074301186639077512759802258706773829129335666252972449204694666633796314606116130043522309794465276393349286014373561596846233560231350196931792455072427815494725006870156783116652299141382738140285815026702523117801261627573239911317722956887866040391926728892010060309081915907841566220712623340661449459081604173021588466538903985402447056124694233778404226672886138274001811526746273433643789989101520803286350392408869822712168563781936535246213812059426618614644164100279692272253381237420031655955249837947343311704096241336427375295737943261333234737042437318486897730259515028094328321714374331763679509602653336420753603719856430175170770394048747132174372418333459940114035609622621199665444829032115461182853822498024149898987722034374003503888824708365325866156234808338121080653873323580604824680044615319543254703474644146455385461689908629260638543529129709309060675469272183370544817008237405256425559825846261139007007433434008258540668976716984670024082266300812437269337134545437983669857225639650073762324009815905617449195036622490406471118421909799449117303849709158971253298490050695948579689641247897436889046895989138017579954420486422836136324681931938261583079771778696398213735455933851083055564531065704551775072368042625111286986129261745108315519505386529913774135016342135419903537971745448045218085254812994970665868070671537830496896108539588914284572023075437762087024713957668595352718902008294220830665158184535356731453263720726284877664926127529176171393850522966633270985914975690615351999921472415537647703945194789651471587610818618465460197902635703820934950241133350518415624132452302173037127532366128903947424560510107093834317648917131787446232111529330699213959691897755161980693201997459450097267406845619041085760713514678539523377582034959581473358256257095760146678362118308260652214724093689337646818361419850765005136506971851435334184358960324291936511354979401682605714689840636529244234675800923474180900102871923569541122940041388363532333951361408415754627709016644079731590178918472408271078386832484780838606710800528531545924910004659820393000251243687800404468374966291097058558475110956214282016620811690301597303009705463581476249020916161532966701012859884202351782487670006487192161036375858351066019857309015448568816190946093332806124947130499136346828695142505173962816377353849795725809602280821559794043666115950822313225361301515495869474226371626500507479605758451359642254297357547607200874356007537293190492104777741826402002126706095110129133658963108878831001177518285160173091711945109277612592992757562510182823523493853260448073360216501022718318766704046634782810022791511590840682691323976263718892721195766009768408166653768279155936844260576481590424718307736710112145957217119245103710850451799111142890346185960814364877562735463306713817267350306775665593904599931515670885258462632120021014590324156704672759492979144969756617735297778075222522132760183959699091525415622619651073283716985142870055366073004752188409876533189212182250583806334725406614496706041445238131188549176172579253406167291894201353371346118613134162519120156756889033425883261818390515413892821627573649730480629720876670741454470376089854984685408233541391688997641509198270996261324917083202539182911925081408777552372035020045266043989033746826893576590510893175463143513637846935375678339867924251226999805126077307595079879561927253002425209345563317534244735921437212775749708157102059638373052778156145777313280801605879606641575699328828935133076454655721144480085150905498903154031526786927789213418065495047477651170317307471276114457955693870453885713119890335550423430991107779135879333374334171261499595505206635646903369052392168094965326620966277425406232774636781362785774643788953613483786363699194658207565127023916748314338987073687392813705304731772215006286012840152897347154868113680772952544049517891063824811025939900555386930964105274492943173163023352588828677887905801281633205354634798312974061129214579073022485066718430594114399266568591829896267235933032302044606382486997676945070537138034208348802962205494008159149408670515165007398398057520048591363413148202401227333616328825669286052568017869696050123992933050924900910927887786192325530215512447627668109878715955455982459737751796700204229668955924574943379581895724114288548267082974890100030857804942271751923344700245165975968663892089997524312867833184208948937911664394452187368692898783823664299892064563654806269597644737118113853100606833452562000343233711466825033634154625393992894424646396652635117172300479170289535407577405618376737884711240781008786588688329861277787949395668785958078861934268597454397786965476566539096150733540842484794938553878664951826835867709258055679277798644908421924132957133186403139277473134370987474260343634719768964987559763625958634044887981745381774144250045179152149875060228786182293568408648162440793002419847113954678389541162779905897186937963486387541944725638927424847533701303783380544620045829676719331829745324478123723596049283125446457205520266301725180504985744594038653442553984021111363121149890538728383390450343798588844943146550703436541895009423181549027940188227346981747010850542583364800181463547371571237818487944178432482402400639965476940406021162422689942778053283210729687122001304986162469651678933961000715530582643899231679489048203453850005839716241243664550288840706000692716026764777145534606833929290793776466682221194813554022990091446363336441157081657211972637302611647239644538811152156669114516494846522450385884636429876218144478655384801854890697885976104432777465387374524532129633991077498631323606495136674099631924481707996703473267540335732473792410782499863958512487305693737162887317465485441074720433428686612360926913249008871040272141495449786132810718472802339895104034487671178595091575613165238437849671050265718678765870627341505795675629485213649592249092974860893337901752589286266808568764602567487623890328274565671649947774929920527902636533190984416423807228796222184483601174732681064587845004075513068785068988508598710770814022661939298901388597233098053588193331254864592540064145533797190374363622949222094260391173617677888911485120029845355394963191142379093085027025504306631700809937269779530890087588488215928397373016677962897667039593957870218483767936885073324747066826874722165298342917622916143651756333428990312838271432436439680563510697009967117454829036096196697582616301502116165422933677620463177274435338715093248464579785548197341040829417084715155465483668866536439933975203039725919448511705063164785264125336083051431909051318148030723601147683985208598700546116896768887319528966118600141122993599979839780691935024415091336202959523075812297999921706438305458865548232441438596060168736073621561263181831645899700800923547335846178678525945202064939631432350925322083908882139956164253850196609116144820488820889551907866914485679058179911826291704203522668785271384893414069001503581906430919065264204730962000220715140553766461679875752553061786472497525238519967340214944561708179294020301437648787312715491818732888789075980021918253890092212634772925374661787015451667022763477494239231198893119046610525892561111880878131685809465762155207061993695891269036642920545311847884629472066356013325616290322769612969328718504967055248615544121177952108191538260345502478591918459324168099337918885244963759880786125692663443671116074485376137823878180616668023203051170158889990130861837388148974507729387598096310845204527035273296660881753267041638515966109791720731645956408093523040855705384132266436173324516242361314425532585324188332892791556035432196449745435341845797188287556756926463939976787926700129575326221859694248437623851107280551910165392669122798936378080374518320839297961391196285706421453381530469539410663296256301462855638122776080597331907983612223846588263552891257969532508965746796116995601005801054511921868677173014232674053469158318111570941968833610288214682735051203649472989420084853514862439364031447314080351170245222505985755836088643245891362985780501324001762611673064711895990275634203365331668567995219131877184208088219179932819927060043298695700679434732427583481717507226318126609055532100321471868063766188548382467670555146133672278152280453678530732172069185254752964953938420483738833717353434356403482725947711234192595449634410577709139758905581285813188481357771994350621639926538268061028702847514603703758965296911793290387064708244844331083299415106410668249021255029368932373080836802801565238186851270513858506687918954214408119840396831005838421257149452508688999487907250035882048303587452908713132280148481119123870416884380283927865064976779512173202415350671545556542961375852740380023691791757274072938246698617177676262980202024263241227797517101810642370588529981053366977795447584299081570247879962621399219704835897447290565390393626308178339310297787740464133561797235856671923898309486354775801887122493830769602074743347642871125954225587939036308568023337875012486422852089464609437854196071699497635924114550399598815630349313037920578167464770531891567957701148979151481386635581870451794628257937740545505047575660945989288761917020312330979272956955616989167164189377945930072839499177407244935751524742163106025125201329846062079837388805515274772357628527250041507395490730418223310685352817772598128133418956864000593772904821273492265162831801924228275377766492361864039796232737595921162242398452797112146313322943827342291765298226986374445173444064577635434099322633004055547396166037143568253880785965665382946511234974999390316798275869068933090389255697069285110289146660391853454284762134579983169859369015183696307743629735056777778493934937258397185677190536254160621160053997386236089771030082022956994100169458912409730762529529993104911428115630410259680143529186078392190053577860346560641489837343051279117735435275097368981569188814044481567290005072768723477909194672487091341429810334020454508413598891477967169474072452387544496733897995217473029096019279090279368931363379486663608578965602306493824368491024995218335871892923989125480621626935603894367366357775936414572408974216651621608153045547119176443680616078789423100561100146649118785510580768697538770373444583795876057968240742248780743788907039590394518147210327603495620391967070299072197527924409710367104725926389692291849839295335965892969529863618092789938585576083998284132591507644874331211531046566897727643328169698488340790613586519280432248228281707329342112890599201092297002018226067326034897673886563771593878264705051570019383042580106415038285128641539795200603212530303984161893437001249839726221666753522998239559287509440022278719925403763148169506356125979689442228227439820371476966433654723581642169889265655554675189632136180336865039256565116554110058930253004394141469515447751578737684564095453889454748771998676053776719735132037875308366792160516137273596086492862493460206267022534744207259066620633046527581345748989579207106353800925009267006095009482531213480813784591528864205774680402163015094356186409088647482767836295272198120684977219967500467155664240295343508319239434692872437338782234425986124153487252276937161895410250405790519879187002899984777058061344148515991533283678571654875988622796307329810769408301573041047902736585051343600713709768908271701994591708518212182426599229477083992005097608018383039492012511519630675961005519555848955086789875014251573276864393218583825384348850164310811706588539010614597531738970028696908856993590364323398119927090053756894319156377208349002923114191311168030497867736615337379089916118239856258253643346861107699636745332936643068046719641551648857150830557693526969140510535144071778637253451647166176602063512398831599213511823061052116767840036758174433319769311173908899446147014537775908911319565102315560209912987470467482006169358809889086828019442670803171773152906199084232310245102660697261847616702929303531336317512241606399061210188184521548614606054014774119331369711218920329094042163647166069583165420485456441841634324960849164721892740823015442759672883133434270676352487351359300665569244653160817006878376844107472393908178266275145316765745240877246185268896823727383945279928078387096281685304299053652760194935105788170283276171017894689671878769654711791101369663094039142681293603923735032171742652615203424572635726766372325679048923308807283977738390922724463123032826833137726569238321306497209543158982808411054962695629944660090797269974527595832254819791765547768986395817328482234747605898938169223648190091864240463971784597148002237156547502933683310251583051744104167318508986191867764060853566220092876034957855003904720788148920418965705988293974413385029568872752072327998949747199462060735992762680552941499938654764812946406332936431863693494434431252745529026703614688711763171514086067965974403135998186314685305652539293017153627380096912887342990305716526926670092296640551780850541258110734863919262873952375118356520996227795120039241647287096822105712549783482338331342260271795517572143570111459025023203671152145254965417844701292275537746836549717353933503228307737810042430534026519690635591419142864234932790931701999653431749016449668625423416473412836960798479827969035055357739352591216884265008885011904133439206309444194567104641378809763639151172187407180730100644372360204847331311064968397910559370267754093119048980164153377734195801022293033815052611406792769351048869814472487708678872259127503082772373961751689598706464451519745528510647244657702941375432168605788177653417379177609317673480081189401283732948727633672175403796620597605993843445155531967037745565052159119929563226497558082636117266518796421072577307926321545974562432119248243350165240824903586449475662144823272037096614862198848054603395706734026767007303533132783376933996442563524709940147417741792646780190625063271390425667097586764825553102045987004564545347430941794633510210320327168089198606385155517521728063460607057624095699419171392667884631438794282213405391439996467086643035872921385618015408453130697742738486815170210761577891060423171406589594504807678413505093905129539168307390069271372240429411790501884388172785230845255281479997537921174987428001712524066399720939135134599526716895855218389479104141072110553745950526418317636832007117202597124510004421716530610864174919957603940391175494186492518396349163381574612751705916725725051157576778810126075503657529144510243750718586370972554625731037050785806033914790522513726193213461187185974392545894752079098803124580499433348262953685466552135561577863992506496104306263643522628759981740631989334852454502367202226883317576118643206516472782345592333305391275723452534293157622187508706370653988604883098042366573612359067622044091961666688038896207152378728209204865263306754019369035654793745836149740122903870987583293219579664581960822816564353216668893243179547367783360580279970159729038410888654337864204879781550673971032161771101629303754334898393636880533232022826919290903954150762204823724214896276421319717533353925972084463047947892030316383382748538260995385885786005730790361080114683710161896482453975263601841145811447795151668809084370820737021694520352225326792068186401983141668637812673515559086073477418361378305269130459645846554661705382179212589297055220102415581498457435542461014791222912784471880513864214918766835227676551015538098651382960669997196182755494492419380733981348672920933197126668312325333336095363872725022760900785992507907606156822616588719144371990696400769610135699963656109168348145783534447789056648021306099276845706186582901926291812268924535981227257075367914886367787617473813955433024263203275469489880088759403965615677639408006549843209209871674950757554214559606331629840509000040904166074760640746028420012270083128993485675613303410317288701514337218203556227212617655764125676260123890787283972933598128345700177465301965788307931530754888880470472757206644210595794392497654295797027115841151636143902248204564950174153783333154362724126986469536708871617695483198395284195478269144141665898883098506512352434626330471011075349721549625094565544795220302560796998939058330686627259363596639160708618840036500179725173282095108108985358040968495090621444825675525757433947965992257813826676649724596754795540812950630596060751774435830252788248799826949484593685993251498240091193280875912631212875248396192046347281527372941338365965860742742953430304167671607257445879667799742899078018755421195486606224578961440342998734868277509386380815913118433061587069005896570060602204142770311927402873989387107402887588659066146546301596694101929112242510226073869946177319507023847885773364864991566008582433468601013891008565859438843630931539895462842458370312887626083804450753462747512163886277742839434915917230364474590824275693500416994961523761101996935909620926477232649776628947545298579792688194276198512105258103705096315265986289111331063886952504676713597580876852688017443707945983187924117155808835665093744200043618212825392154702867060379879346898707462597461290666665693470334603237422653866783065194031303941333161459813046441523474815140003227000382092031393001686652300115293208152585965780778398883633547706288492039513968260357956163587112417679532512238153196161876897328907045170355025501535399707858461701536859296462672259121354860586684372945963065938814036235380059242407620867108349782708504773947909156423055047738318186158295772468235899440841646595028033313034174259144898707985395137233267884258338731846880837495490674307828003012803536519895527286296854000079089519790316033102050540600865962795527691687313241612973513952245571100660930479521201974945658098831526667898032993472961993772846448509996878395532799668947009556944890909599948638334672506418300310253345314880703996711482677454282775863774260606964808274757630914461342534781601866250326736968287882832761970271847385330639139575447278594225775039916507839274581822057141966219722403451030116430525591761617885888522634596410958808315962979560980867708335992143919794753396048032758311237372499450630882672606308882747879974686280526832245414528174349166755077203976673765799780451295971662398169976911084305776366071294442333950823871912245223987739324591413039118218332451342427676563274413049081918281076560758284156630173340248049504164217539284624521128791182877935445877870996433379531590505550019237720445957932859180612693494325166224799362389721604185278235150681727681158927029102933289777806337217844301238296366492955237872275662339126271254205707120263616675316634581662713301859162936600348266519626026975064168222882027538643233350239702588901236773368798014057079149668795050301998765542006703720017531736807393616473387839154157709325653321133105412865997723061008957695923584345620409678089971858860517059902790425588273331958800393336503990685848081285097414937120452549218946954627475229453221103568563664754473029314859452498248471400153323665758753071209387535697459407783634078277868959335576266441542408237628406696786973759295891999788695146265196819774791965804633316075786687339102582114613061303306196417127357774429878455710735300831449903242300822627859089626650881873344883159012523043690081824660111333185053315810577195374901249357627114435498548105999288108359658079521989993187542488409647673872768040065950885124088290746616232657304281171543225700840917780195440522251699036489368188948465452236588871016979331419149482491240682131075833252886705855453265992942461946002376358434711799171182215520229136082159967235896336770716704216024434087428848416384482833709920771269562435453426834059462830034118409956711795558273238462926131733934272903559150712553293550645379607860836331789756432322536988841928292940701012333697737306436605879024462361610983753309871591303846391825282665327154153579206740345631041305316780945651768579487677370329154018136720273496328247264442211311203569452434264766166658510280398385348904559753133912586020655259722169775227387598458119444321798891038649469235002440683528125769011775020522992441182630859694049164660249694107159629251659061214036311124481753437759579282081966866491360239120634703662654859298293170319056741670511407040703605783822736725288209387692863081882536239136779612269126370608192212268676235764751833412633766965533795993096854750048325442903980223563589934629127763746073400326843083650032817418830115528987623023355872399587614033254065978412690790606425735524635019192224148838765447952423599777221738926833795634438386911750341745825937498293059330408805287403381680061436281207408706032502397164043549205659519679534198797871353011149994772683832889203713636843572790147106844057533746937945314208110062819548719729562275380142477598217455600737077623274176508686134865294805340819565006481718700940175915932648577806563625731272224463622454571657190204489937868874724369476411626008442273538398998942862001826616554647420563898210840235593921760392512566971980220781698468873508991918459373805944090202263686054002451755673127656099035638316120621401445706771294874971306497936063639222731728859222672824956737093637082001581290790060825130904239831274527113826277106633870069045245152970084709073133287424554225876145286299279103081957936799526628376539917574719066371770309188473428993430877742776167307087430707251690052281179502696228125036344003103484961225753811385041151462657404710748019052226694264281991796590078703227895445909691880712525750597474073507517546901277613432337787426258469058959242800524618145888962144102821568658290166034856249436300305016704267287860951383116419212363672490731335139432358551963286361882856647013033008852462870273268526464990697332347617064398437051153264770133276180709848448614470819921440419230608365158641612178592792101156799370446967604075781710225572434221099844078117600508424892263804733089669488464404738548049931723805232847904447331707242266156792593311664433736649918198370984086913472858598854138648838489069750066394053590882964430365226626035380581632749443338717572861028298073062750583348445366781384061899060481618482401009895162763882065695301679310836546924174336615657900818985118046501128128700375811135816892937553798045285917192734805975083308530539210715642389364132485278682937705372609386998955458600612339565401579772772936080336457394448162378562936357500254611993873851238382346570206030934574437834877313652975100926738557352884879402880743020002212325765852257799063601084674990232245863202876975018611470351844014601935597460023242603566048561989438417221776685547696985386315132369736485980936900309061710321049320670674904457585094566822932125199541064454157531311158826713877335067228740813633384786604125421667505395147700839731308214236721070287457397310245800302600660054386207646870565843123364511365302059870479625677121708971895044802703592928503624129648924737663141615995405940019825886579780247862600185980492897443255965783494014326818701873474246849035724012352253253432374838444687482813782482189569784095857338820704888853349652444852591289847021584644493359010307960055847258009678458407879557661233070495762139227394678967612898483856876647413497395674909202416191385487909632891117979093835342853995391228522712874678162529417165574642551844052060394093977935909777042189178805046342617091305228722908351253219778962526884896207779005958628453170722064651294352748157208717891872895359493726532225236396240372768210828806518130100992977411563826182447662834251767640110440629283525550966513348619139247106958822369769398480748125196356677724338413199008537228547924620149453288832843925586853364960598368071023649562170052922840707548006183464968949702162768536538463021224082740894867933462588770566968821930504931415781615036481123222622546249471004379776705133498596905105160695016716449750103251581613973428550513350104790778018113122693636707498923473646730969376284977821290796110220308750585651170653404403790665262589127064561660704177924777500766340841845026377505405522245656116342623180083191916653788420572291626301322751687818361879256474760912316194665340847053229415063944232949810071331117772432043282371614711716873389865033262999078047712326578264603071175279998693994591998149835280833561779440826189113206689502227669500564064833159039254134801280830324709038406057677556213329885981445463584388037091743742920846399554352632490200459610761423337593335017140233232931460636629723781020232077795226167549468159638492157232962623512518966423492666165915776021289864927917410263572447725361847362868015431593906562899449840201203537206524694143536146294452642508043080760617397668295402643983303940071312892472388944502176931901365871667448933681873139845898435407519382906899223645806715635583897641508385934040894725059798458351237394770946271480771365949821420045858862737043639406653873142717801121029133599089873352841762330331316435328129292481786547800466795566318942092929989802690180852712445270232171036070214584761483225331366821732278087271227517901439451976401464100303336910478539417595984852355006897156624516799008756623266589495656831617459526448009537852214001206118950012953857897307869216351030190229290421220027192509601418279311966291063503639598725268254215572407858353646828853766526019437440888991453270599430000490977910781020672348060530987890303142449809975138336810844871502815792076430056378145849997935863134992049624637327371171584983182667422357233829347619451659599996854970322192654003501360166859601806034894007526742472756034075486541229326272002707275112096196820200268804182571286146027276418261813631138393017570820615938931272088790459957749720748588838471928854643478222418301034865351895873537669626797696508844122024752912112336046229599676213934830951662534100843308403918049190667022797112482839137030667811787630579044956887650263382791804983662526145986934989470911746751208538262781120407975515078905285765249347341522278108398324204475380213457190724063182770974451748390296521553641102246283645674065393032246698396837639326304534935553126543504291628239056515913354912258305596983953616178367956879139908502755532234768157652081823081650056574221077985467186810297199985556833244325469944478278218570859360131194003610926697210135518385347822475301886822737069818602116789187383018753549513607431553141822326670636915284472763350427003520511280197227916253159872887641015512877306097040254145046468294882898873999520672377426792812769285833468445166569966710503301757114550609952025396595788842591365044255692003815348732693827618061344160931534084549878000385683369083242070425827641318295550258190638895993752511930879337102889288368182939517675874168797545262934819950017052427112844061980322281459462213366035468061247761241363617994674552710349951237427592684076509308666236207030136097480605891792339017497610794951328063227213969650806866102137948832759836958351417735905567645971502965902505998109279366994860207726958686860698002364709391254915662451784278292920322350430953869457167361673188571321802605546479521315964522306640112876526420863259560906019600017903343436205008667080661123276289226668097283461611751118343779888067664284443295453170289434277355010691978727532500408072781467423366880730514082507048018572026712013838634690456464892109531263992078635884956429761785269720658675969093824565130920439735104357210026323314117890417666729829739394133693545440660721845547628737218982975193549456904647143196229889912425009973850972998988318595226397482311794483379809375975225147534116729427425701287015625421649029514198016412506191279470449878144414395997689622718898006350818189319781277924455286563464687153072571864575867928660749923481721271071634068019209703163822783153703612359655770513542404450650981746082757923182790107772223893809118320962720598518337757802258067786537145236204198123434159642543205336059364382949142204683601173082529886493176168700049532789427377442806262809849551022892186084388719785107741138978246978694481076459492574594673031367925598272354933245667983382000972606990468774800055815050430528150524058746413240889676196944165289988339873021294721153842223553296625487656252654289399546354196251421716945075731669378370672851487245855020464237890553529924629887735782241027742031096966718094523900802365683107499144337343583357495592411238675921791428130331160396507703031573372768989170522195992128723091821881213640006066163940985144594430625589351307851947993618436500184653865446778623374100366098859479524730182088052388904044696431971073429174694518230382543466815333677991988922768359199684045391267468190581420306000148182315942334541293389660102842896259379981778071937396381182461270999284254125540914510702940255614648274554050116769973243590703814977324734760406778617849841354282304460861466253088651711485368951483586934955779003795850002861615030640239812181456909328143721434378020444293330433579479783747986733723234519452212678925772314363934346298830632454587276212933025065933851116828918053232999930724039468611608403461582021733153314231661549549700004766243326324838535007332671860928879027992802411322379829315188607158966098594108998736606096847462445143282086291058902731661784867690526290637304344359795589219768876273126764585555633152948458937351101303080564462818560726937109154921655892453407037550588254562264819544141061932913423256402401291867157514910528381691720607434144616285153485789990959096292779021974062443065628602316523371844803885625955312352872564143123500437914343471754046598284539604127637094246903063749481781926270550673879090044602668004948778768932855524869334309328083909067474692372540362890270684984087299041435199674134594311451120905694845288130913954812429874999168124090731397995981967060632568596381611526523095019131745775488315533467682641925942856959069708009921108953850817455153583980948839821334624977759393122139404213798966051579678227733997481582681847171182425377292501798463060099894968082322557969289403185147607543741454672233383685835981883068912804667333054908341636221421731890363950102992056652105107619634885792701084436082168486147778659343999914567990890346969942973316310569706202239997358819433700287067546222262988442688530045388505325982435899478176432871556087232534586091111678781809803386468064686440308312573250212444510506812717653840347463385945132941441924795946781371781403710543275506482294155164730726455926912999721200137066615222642999177839583682273521136452690355028460219963748837403043045428769185053363870500569400953203375352699218512859441095397405108775889841786397838446293823696659738021995676789304954905977850878832400424642387819044155477567535112751602562555298408093095072196165093141250022884420745303572364066818231649125624260806038542972352309572117101275542145680872430990080144819014138388142863452570286691006386251054823417894078479369868068979340179485030180702262090606865970592810873076278106700595971579553992761335337558598613781299357301313746239704235531756402677669497046507868806777987138058839290950548076473284810508546138187399696852326624477649269125595484232427243914092271639540344462803144191179252222783979177856290480042100191633804575605543815506782310802777192910490349414679326723190558152543650385555889700588633042808994030052559552521200879125819195686435453149691501139832180421362174841184847646643963706160655364910826636379836673388393974746600022636506702972705516780340588935469808671586336379827014988064593355055203292193684368811209025173358976825444438803509795608760137984941505262337671296124428449827913315409699376595097234547740344193677549242055305063272931850755087256802903153638353571849399901017767174288929169407986384283530416359509435807476154133670060223545159138831768849522594417288359219824109691077106352048861395520162883755630950387677893244684608588045976088041796246415399791665408168843231157782086937734791737385594813849145304745867767647792270362163699638523405723537315224803323317092054072961695512161938428866682532439512008769690101934808318926443784953628378313853756744272574677338728630731588274303983671302124497116003130210891789588965213151522444997687415848626942773772708899586672849436498603084948973280087129423219472881435188045410701404830324076606359456177360208189782395854588142377497798163613862955024571619910758502279576000335641695581971465611238796260705564966918985215345872899742203512418012305342757343754980633468251769267733299323488498801319590549760108982721866933946042124598571566275224258447619377925176258502125823305324157344888630150700660171645373099890742948179594605266530222491980166668337879024960015066202497784805609712321322613266752439596629503638329739733121125942636595378912581689533388152845959788530404145315311918793907657106223802990416786294577393893806142774521490519843749678298264439180531178408863314693667005763507474175649939151811884851905325215701137894142233102844525531018290112665300759439140725447375421140114680386462980980600677871540267541271329043297679454687624899921101497807445765999745363553867385620525819460756339724915371004112921587754399203532747127011893475577076674063604412818409355601983994675398451687885688300200819851142797357623400621909315603025885461629788119631300317503398235006940878154241104905315522978016375577777634691709020943556797654602751087079751533396606672400567434153626818710931187055938901570409636372653527393959756720109923051793213002851146480311665306585377741009500537542205177349042000823671972091022297297031136209653886676957850297799766280655017885099776508949826127919818816234014588303134449806015144733084187080919640900931827962614345821800803915542128523033089650885054694554854014260502999455453419046146723960097043824362334165340748473297119540082333088117591940520139090456663613463320516426855496439067852502718860616125018686424535929887372183952477499852604164350249812695394936701498381669032660058836583244833106141218924730512742079484379284048516754830202297405798613790884245989023008985808685861123676482001218587705186446951586619224711516323725780965396205496264074904515332556792584053652739984095607126678983343308233424078171230925778776655516111558696376787422607205755705341298607433494306965117607177408888560071780928238272351473327962411533451168769458981896732344602075812446509837004335707300447804066266841105011373718814833035326487182235161053296554693669728264887551350612294914806601905261860383940488624513152613255118405495189280224687500415928291907433573219451857132214990884155537759264334745728790081420144344746130295816492135153694418244526285467685196698043105049812537917729245491083462130504161838457287855195878936478695639339249692521176404624162443624418575948861826593690290953220307792473965644734880933705305483521406754043961162315159328991168838072677034733344386029339292803071667066773293004225825980547251133055289989485954424124333127851896822245450491159181150748850391978534963256681596911620208453502779911050027479483219273599285169096182931972918840333625555597791221004791779270171673078346196912663739946337712340988616469714087999804096397860290457408458421785023294049982841539778805685714782772428197284316431031229642250469287385398532314604070031601053022415832002736827047467220857448686757481852203888840245393517748812661921507927924125787755767422556690648228717491996072210711701396759682840680689707410091335602076024316144507051223848358580238405975235393879714939362593137589316316766804710032376684357305361835685470924288460841566689070514508404877589479514846405454074025344862400427074619272839811297974235061998633520282295150648571831944893217375549205644113893752636542367136925651864583515985997393958321336437260614200433688341092782573019417351787860683803839105015826796308954383698942508993705391124500347579098608575922572853619828015367600039641805882051919507448508197104441692226676516117347431692292239874019530009488673877779790406067731081472258315837926138911274552391544766746368034460288249653442868533747686851216147320965453768640165263704207819999010886745690927997442725796684684766991884545137776075667647101431888584313516430529027798749383226810827703690518741906947644342157964978529848178277594306083007816889950307673511540369267371733101251682978261409714323798883674961840664182139782909288270048855133385080555056760691612893907942327468064389463220363947578616450469707084299132636044927560884843509338450772740185962741374304561019891849706345857150178597764157124321706056884200278714882891967761702094316015976586500096875687798268595425114947237197879822570538472182758200089177374456603527877245918728325372417462482474719652479321350554024817362373069686652889024608856875797530038674973053627686983244724877582770523721160779941308485115211684937454413860960513799995657035331556501397652241064179732605975790413806437491350096277222619643782719255530448804453731328486208394285678124344076081381225511316766158216002241836147337290000875613327802978464441292952672336861422804343908428833189828783954920065309498302245428083687843308913781186529310989300212129616897667398938003615157538220779460025970883095384593378754923203208163998451330639918255889775865336276355491637480407465170935473041588316700011788905620279940362868898167983542395671363284160515906485522052957188438476255303029194309806314785819468124145898692007080277177375108521998168733982334049384225014766434652761203512233164071864447009887035968174587685407035522377064849024154205261968638064118158668220230889663739593092973741887371382082198132489105982688645196412572069528496841471116606254138995131240997961151079375580246430924210225636850964889329203788236539777347747205046353733122488416995518091101130301192388771558368115429451479435432166964609147750845629977639646239706174310125506563796350560531188628914065363620790065088730585630199130389115004301546958464907284528845979340098715457947590517870589761353573473650270696795127360726789880188085624687712805605261097175822591641596970871284840246569027595653601288421722511723343683751354578392248967635587233436724142086186749552210407238897099908072681120413993667885787143163571097789244605651091801236054134046993215612009241033851690659258410310929840027855474413579561924388439337900657175431970928172834242824722876844418366397087480511199997167006992897515796926657804268023279774383163139370559044008598619687258833804763480726758836768180750626396381435670683763687904869990405650986072629105499747458532816669293661736100393934787601362227548994804793613034917369152121744190745664777472084674826442560182331845783591737766161644454772933675372780396825931873511244534765110895269914887865191510712246676042596238556369118401042188510682232935227688343758883757096436535093653358816150118342662823773330784560873750224945686122796491966418405645102850043439739803287508005779248216814495815038337208981893871954051912646042126446515867670202956984440224649919472160893323792391156522867270957769973365092317963704951400156848711384643112790626233976546315254355472972302783945287923741523319486780321646970562695194701893010452886226080479079811479859901118227567561981532913381775522322625270460398255312951824871202337716434972076133942478327713508012840406972082655914703178029078575543133095819881318283865675500169757054784208664720029511989532256122436621445097712308579863971515435731629436795139458536648983852233301358898184663365870217690548373852628634633808661078885778382035199429730485375426720406045735137843465710166518172670711890585231868789021465720753568431246039824408296294039583063134411142551058773033809787993632351951329513835568636572763411506798754811465280120802274249164424089192187099634466581425834028324266900312277997115829512326650704785087329351381323650623901693393022914398036614360509996908413515697288697889148992296349837637039361015493914255341646806448665445441216481782286768745177766695158882085824792383096563432592314400104086994101859386554556842491931454360388234719189756437911577435180528206050443916300600824590733917688263368434664523936658083418691271669126304845202361095366970977950872920343114929773583257570929436133075161939339422900578898994395923545125266045083220887351649945927174008596881894631764300023286129791134564726861400172447489259945230231083443997097424612146714838842515551059203870728936690553066924602269701831742336241899403829948261536248130480846359734270950293589451426274071578151977678988166834970847928133176391342727583604327922924779891635012119231991392533823799546117924717141102939109993293809735269868460478009093329129818005069983252814016538745423102924609877957624869527879197796098691767242107095740837705153701128601126674445169334391291640235803623129442013958336327046584741046677916185373457428549672043115003031088557909473603822193555226491915662068279381501185447323408390570661136893379825264381283676706580441146928700460793097494296274983572664332912475127969150660134808081827624870925494152836867035760992467599743171396126468302244368603051359024537997830048100248680176180879839195717719209119177704831622820296048215654727953533794831004633121267547948437607751686543561809499796685515731394687714780074851634806895759611733942747852452819770102782185433638593148157698132661342463585901865346164060977052495228950271616685763969713069282639242241665537830344606518847227906497412090063006488728263370148821747257339479808145842139940118707857158294779319295627836009986472769836070315140318109328001766502101446733889616036034325076364914017313596409267352014231546204952899792335397329603593211834640913753163047525468233423029426687030333239500015951022642002748549075691967916750877084661429203648674535181942180230888208849060064235025328434475542351210606055378847018019418537255179327412308885790135552038263347109980559778327767336170597684312795952942716547296360596836365343665993008021545104068238554264831006341617858916124779186728203164175761037290167453968206792694458332594448810294434038450150277376076759420102112922352668843275514699266610923418492893890676057367468491707592202796215478650483486956915763786461604509712480357200910444866671979203679989451287476452941865624403725083914002913634586575383216734940432299059446199728039913833838811749330798729761940250227150870282318291316776290695664518555118447757263547965602203736922388103763533753743589293258230231496004115331211987292169911148991432859487269763367513860473286020055466882526701613456732336263183121604433072244242751894957497728373511538587381430405802389991508919137524253576267651072851662825796853573942426675233900194486914852465679680108394653794862575570287480177818845971653171358417169689672431866554829111111726452604468064291005694375720281785866284892001609382580467915401782575253426636433763285476366353507061755632329271325304035958373468582479763940002053224987408826390501320474390529118224773373776856916379371123436928244270636445530637925156760294126966191424930754718138137405863416006348646594120397913245350805538085803494030435318748184503131961712416805542197743703062340920827206416720061608639879849204243160674190857665994825016506514657386908936690559670750297297833332410425338407686895575412035113990872216669359606398388367461293927262873986611667101842835449941746547414319425361328928550316538412388958221324377404987546616720789662790434768718680198999611918065185665801691969908421133569677852647790449400783698843813840948535496912010908233739417232156845641311537510744352037219049013033262889101037159958917229299501509029238885412990809262331067243988755646910144030480053731272479788734768179163497923303424662614575655868248141140581886804754337527916379855922834128393100617849575495527414360323942846678070118757256966083433348438302670275743463584635557851776865251575644090687425623825441757501879169186135283550526461601813767445715140227872118799595026701563944362000854023243260782560477419487540205960179962435767559448826631655827740358658398336600957145083652646846723935303924096606618224433186802096107887109221073145596053430104901297361699703342734600483915892141965892980775253297353707312160449304520117962188021713888695512157031078203873216182468204464725621992138670621236028425093949641327717841755647028164191583086924065841843051600462540516655759566075656680235706329430831804046596600989466095192880633992691992069749129118262746413141462637268284365532123826916179735800802214317324514553571708822962105356465376295275328032332318688567150177443833585542694274712412148506074245043289999661585815603919102752112593570896278525057091767387323465730783437177815397502306440399089077380715684127118755527341796347198242822195765326342905531332801373753000471106835241162462742211992474141575850340667560342120141480389342697667205108124175808091167804756920588128295173704822039156920424721163095533632784301075851061221727535659277327550192535092983125096052278810676727080132655330042330278449571499637476851310720822087417018002286514991752324997675000173701508285131216431734111329214982195544705325274478533370578648363718295067079658892741386609437454491185947563662689889624002235992355314835356021327580120928671297191968249966838906456964383780932946709451167753459726185851591338465906902742248099001891919068618128171339788593105215307820581099536924035037825625820037497484615897224482098717067698781092076826351253017332273578649581199057427806772675656555589147150369871839419939520295281363195709025117830166289700891186589883481949246490255133697936221617994823779194577650735482779277739065198939228786107011103475196403171727449755935119529767064746571530379020616545812404718290959259085227843430293697044197527878599513849040763324117852555767965044896696636557245253411277886865924270488419966723288373988478759838853538001094322525144379641919446994942714702933946309784619095787443648280057209907622927397415245335052375299672866765221155409376705957027694506429497441203054430926225893612311683493422859145142158407595509665496456420394657402802950535018393127101934043136920896729789868892969818560742012705535470793015455004280304595863476793071423313725318765519649629109104207093870907160495248375508985585587139201794692100724007260742114965169020889561195204273671231174843237706454627987154304129838546986574264567226271985218322932085725284638360345140167834682265153097421032311930217832205439150516304603779821275474866508434750061285691406538859004556260793315978443899289790344464709109718048099908970220864315569947362798434584532758733246589627614123922618356531248807864468017920256447277305333618093160171846035510530670781552686693844634097193514050129170798018636119304936192787929813458866979907435087086943111905990506881863243542832236582138241272359724149580565997833690810575985748883037378688510224161402117098147667254745735983479636920918251106407839672441302899726568513246073476301882046339288414692669372213385873505462317105955047176533852026391758190716160942804361478637962512267268735681062606440575889655561072813453392823804323192671756977557239279761344285933075529205785227921198177412473998773710693779882137050442031958135876260865226923275013677086413377617494713961162785858338900111976140717191586253099049403992218130395288218227940365950930495590753372757946977112168255188596047004703558403031679437698222127760105280961850206058982011880055838082354899862019014142537766416311521408841809601467041371648911245895942532668720100267527613096434568660327543335286009208561388968345855317122861132946063125124366748297229984766882245991065580672299774338275854842941168784989479263969275070706568672092959879497396154818938207164854807999929495243961512349916980224469889169053084374270517600183876263072029425894284525581357502161570793675591700437579602580078430634653663806924821903217534477439327844274588202345144801131244254415060382888201884588404671392018968146948625307737424864390054454740444364716247126333209715148305849173153378612943709530198082231168861128481587559242541335872992209608465461213677660482904931384050566101629296219606521355836650280198361058319102158624605372341686321363595064822634802539345981427866944762180014020842235709356863262912122787875039563499260607787932386553156012570297686577681240394138906920708601942486599307990664261357787850675188137272842834928626858527525241903843978625964850911134252267256143736169411976228535050463978944184164312328975931005825537038641891583958368991808842739170087562393869172088234132604243719544187323579858117026687252599626443343102010749935693218399839289093464453759347884535404446031500427633821581722131993946945848452106922750514264089112398869594511414582555926857582703076268614056541412220992752358107737484062961597402883092874398900563894766343973239172593611635073639752596167354081738759221890817851091258341662402485481938495886285374115319260183256418578413240342394181092062389426283316320297445035857495232385172825519197763209251372172310357259469149873261517583628830972740384618794807377749874149121327649592076416344565591076896281669365740002376382909261628477339726682889040780848351861845233718691642640608777045126321126682859078696185216267539334549449446147504599207424520727253322481289059718328628740036961231065779302436483583927129823318112235184160995589404041909923305994279081275232751001531801438356110265147107892862599754031043703706607565155086477668772183559639901498575349792649894229245636814862227053084109150829991162828877532838503040636851540001017695933459666959635309560900237927055165041561104845891039306651070939141147436232170327577282550212527934607070177322124185419195142917308580483182154254389252117024468462616557682833795312707105786228452053165510228720250797205337430076023925448817936180968208481652911450487715780991905557291381085052890397973415825084566019207527054967649668151095717835707821031388410850044679175933313734063780274834601947110253828156879523826046531522390054046472818155837011517176499714129630672639696827762966327712143364138477298491645431155690962336957120362028806424146197009009216375828848951997343862459961936273907075889230480784705669914964585697021397490436412429505636595465527001853239040491117353437728800334564677753082908829444606083475635811059441989621728462359323781947822128464359485683105446191806842556723483986381026605341371327100630703561041128179625495659898146011734230383975451271907875667157349455482062675916808899281874337904970150851161782348872609216198261294548313760602995845368965992189489658557269301505433286529662039270157819147310446805793046641328650019150354102051328389720822914035997318410266116597242158231240993322216617243338210763062615431148380660319349677242086978113341990393448892155019558068867126145961148224683670774895013511879540757575388248564668003071574769899775549330140642387060061790803906178064899119785161116726449674501860902720996255105200296291417984756341854336561249732062738295200669677822902173085012672330621718091797373442498929304985163271699404165362865284179056715996317738892847733704587211279038757696912466982924292507488853031235347062510500922269693083133237844610790793046519463346641766456882957018530595741281448638711272650520681194184950475417975022740372002166649691245392545942790362567431223337182260776141943494593797044490407206464967521378769227611672393035394912841781532808858877029793762453695191994952790576232038792372758610775094993622475400843457178620190159562384014318067570178217719693270177300892782643707401960179505640437680643104082025697558320841238066121062731036386516067305618908393316626559692517454891590780498355082129644291344270507250088665732726784200964820374305451808555300774734773624049676125619658512900357026434779501183431927221965951865471314724682949172232052532588307065733195425003067255393118501710900156762526629389489959334225381067015989993700694153559912717018181824233886345789667361256468516142701741767742292240437581606152906190923737495511672135868576696770460358652517039423575330534433070042647286387805050329082777338176494610743945671454245008931422545300475328524282596209289124521267388030088738741158014529996638035889040737589011919898257015333750102047777987559500734744882102490032262429588385148555787261578053781380380359183700729157979201208117247241413086677470856519340044129356187981180256450775576829367108917616957092496014293306960715515570163489084087886997935634898868358553986614203951414332882963922317610491119748324983484585325757198242384444046228760331062712676505360667300223961788744371931062640716833475933643548055208528567696077735916612261551570401681726449441054022218568352754413881748968100031298258271906738127593159740096133059512470954557492924008752394700671451119121179300229393579239655782809068006922151543194273447350926248076115975882847341244868718361269756646898772916491186456122941324606798531706850827143160490791923213487273485962748931564653791805006929523287955179263195525333696323604563583381489841888549967616798903743891585509849394356317871331295339341173782147967809870833616576805242435602867814509200423822439103847609460725642982970465220399813367281137042166989020726754685426677668226926201160372033730868270858056199677527002372236611072397938154336888417854663615821130837268403922019777646924584147992712203809706714283142908159768162700809101800596160064974973229538309397092957178595606902361482475690283814450237859019749598289730883097233198332946677774784087678202175951824500213607055999222053057671188678768886274915606940922771659985866330280879219291394863259564418294704078440926008197623792646021857138590414618817130400981343151537293920378345005014587966633222787317728063416088258846166197068551371026856109093446590004127237028191414711492793307606935820811861610463769168643048380283795800242983448754814048124928480060585548693567424298909608117337009245548591045745354554868518164082153725054780647674862787543088181927237434432993700120249445644682466737443065879091161134865336219343817008237723120416856282230947391131046016278321955576125950542576704865805455793898077162130870660301340287743746358486952172077757242499985532728155147049613237788585581953314534718090474980817308331863907150202639493658073554393611897091153140428820266488480896013211605740276148609439123411678750900839941321823198964543722773078468458301424037545924476204204313441231550422938697810143528315449667595267492136752874546789101882634665744065880337151977248695646471283780146392230006207288244820601205882038079324583429288617478959247574170979782701258943099964731452161876027544121575942861488300311899193343480646158993307244411487965411321975755117490214319938686918191112060605021434846353489928248483229131825716408231123042403561427353557051484049305762797555785354598455366299079159125425212056507636438102859863291540273216892832133991016087826819139413758619589907240858111365707803720369468939691044106949384149667449236937604331411448995102072585240210543492275703456487481519367867329877558746092081310041537436486885826934777845611514098718838107770618709678149333888938593239927208417064746426988652601525295955011177482105970173978503923578342125714771177552976577317811048879118710600325657121363952506104251215736364618565764354858395137223845301978600568876781331901647391914594711336252137771862275313533739883649031665392809392131930069653981089023802213087724476191859357513430905910785373613894083778619104520428098747675409270242718708706193619092408892452703231820781831665049870710548606326119023404189997215644993950171966004841482947116059867648188403970483074392265611642733243462914613263069883038152382634906943053205869225167203275698237288094145593755596201083575162753363140886657111989885815521312741663302719115310844116490377423199887152177185631082901204430375873261075289122012729966119781053024754302901239000630284661218589029990621926516684223791334825102603138915177889191300259558747738010184603555057017904757549460780918230359808381369099147433099043164019680788686617828756949760178293721354763402384353351206098483019415007088852328852252125216515425918929220467686237795388547953287357848144526424684421228917811234735211408337615296168478059177846114213067878970759908167365665856382109075959820744722438587528960421460677451037683866440010247962425817779070700278386999681450696489956801571615299895718265777951424449459122266427695492389299512024235543373496004959224486323398703614547648963908313631020411330428318380154801401485409482425694550217601896560854872907417781153437117651462394545892376336463186593173728021354608602082107166913362481740581552119289251612167009454393606415755582611183971440617783203166796708726982684347486334279641235893241461276375246262772252183374251375399352598133488093918800545365362060255875447935143457109821612706069715880060435785399484907729738842539242933218425909491975960304995707036519946824122891451328377441291285183287470250114419316273162668987577385843724553295651244127336191887018915898961251054935252630098493225447400269946354804918125896437077650055907620063799854381125422281806180552565977396091184383016776790873428620432062975892173879709769514053356441388474207004374690172490540257472982084903368146794932922980871899044617230643730637541589376757135907049031657104920170130501393855003834805099315097732211778494759463893171950829046176478273859599899049593541814757428686353626617617246640877949490527692649657154249719302549428738463002286300521218696918553477473334395728578295656272143013959296808049127821518240902015001483398740979380371067323019003026555007279990119951859852003430969716591038779673480523172669792446965140880841121200671478425721439127792099500404813698798819492309755548307625284528343524145125148291387080561081406144928010330826146158394362005072209012803367423126623633018058452148447027548440077005812744941408610315343891262784837378065912346628424469208211179407995193003416126390148662635271759520956755866874782817431293723183984766493588888624652505070406008981526092198046877776203339082938322188822392186956313932963304047278607251491958197884385355787966898534778086055412377609413936984178660394985541202809246349989277400353276603125680658592711927220648817192980440880613895226496019630551299696735037697947438168706205521871360973593053217889811938196303241044607045266654883197979745413272965935591772083802859320118055295102304374745405236182885294230338204708349012055390270893052499742227813471353058587514925370629896058538627015790134522707378230228865741393891567474754754531382055304947042067448337555867029257428764989670407959534958646368228889753644327161197854214979104658406141193594894167272982554902270528803246577008298387062385567141078487384895500287937713693304369212347972683314406907135695417700310717679575449947960485769501588445664281696604007819393265669480416648302932148132769809581580893806197402639001561480451621077790428133587644837110976408867831731476490463610071390838895270048473462684830269437550043215838249438860856839730004023013720886822298160296038802266696631974814788365417066715046188996420945041209998916034579133658088375471621523066673062906187488709991777042349105101691804257831714857351191629361082873096031586089938071014944357657067458660762120527213431047968318951102948659592541287217658803431155848182038459914704951991196018223119876646999486730094436072623051691753722715645153853320940718138563474679630728607985854428081201438810854587910464312550304976075870791303159517847886500198747289315842265482728632733529500877312651629027519171834142783506487320351664406391274537779178555348320160271955769149794760915462528230267310764676518405247328217990196153458185522054604297509203086626231884044848929272651881118785495482217836538272964220718670989802466285069865559969075214614641137049806334040476368448731230679106438031038421282513260690134446711794037474772430397954844539717105555566538297306857429679375709455282661746649692786776330203666430855053678016077283815922353228425145815803962264459296241728610590556311292055619381501710085416063113865067730213412118133105637598065858183545506648687009406399098818245772932884518306090177884570072234191032403608484463188531915152727637805669525239597180967215885364637075733593852466976010071942794398436160470447434040688093060403812642135398856114508711836293671241316796770655824152329458226774579646214772432406362023128619518582674919514126891381607628141475159283408629398520247189128806536845329838309361587769294605395202944296211325769500793082993515867011659835325676420894843061353596907534334335611530459617346133285047208211813144037545805568860856696566170478852331296574890662724482491965989474773784187080500704974531946884691245454931621722160427517936125475034372461573986758153416295904804581116462239601659724251369462509049563820406482950335987525901542464576763973815663058462764471932750857107714412919045238603645953022974675186401614754829773728254461969693769034099868282088556332200239878217751656790271921889071923646803887560320704347590427365696146479640040736828621547544977515045199880742638073314311361602252077247140269145725592249292506898764181215136504529455996103756339466697559964685388405721235189269373323690483133052610224012739923279716026078215015849895927791258135922122029603584283518497821253480656564625213131463109919682107295183962071161753517238927684337965365855926594945340218543236122714611037271078349799062550367360654594564864676347768919241870660734608207564778441521502308816277854528993815800903864734494959737129136008137117590303233571842077085020617955441258556619379846474932658191196130840574604906376134000654505599939783262121870053446123368773487884931311886171634197127832388035580303633229606068472159784572294996428796982040276660913832901483972439412334597181638303790831780287960943544593747114748099551340017010684096467714326379826477292965076764398043394814172102711885063896807871517995158605849389929562216190860747580851531431483052817053392813821675645541585620785718878378171862061775782396730426181557598883980688982401294506242933170606631707162559795712461190230571315134577805637834268977891718101030695307223430382025146997149176744461765718987731976611854383838822164889992559515215504101805876567874284348476518633131724000954358622689522779774384967816408156029314868928236517028506826643342280209470042246075232821116990300384519621130986130752756694237015167004909980228328311438387868497537168137047257596209337164264685257868724560208949621615843685633023145763986961396424006320672560816759974913591878738350968024966926591784639202273786418908774205089000537800350622043371292187512289157398188637643771876546384270403891026377841143402784656533505557460647798506513123159526142651263919334142576287550032418354154295360259545275660561444163594987204552557050735932768337027352511653114384099958350110548784879019655663497794370304762773212733389273721656311153461710318008171040069309539605426237420869744916235584985146172905475615207884478826101319104658640401487378041445794370953431687087369125539082880077732652322481133357238920221809875393483767376225475999935059048932754063900977842454748949553255663607103926240635408361322536043125692968655597896188474315292728284552332884430117364350408416422137511789092533964276980630418399692366334838964798349579851243841307312609841829677686709489917221370475280809596482684007509684148258967263878349538491096713544301852288794549660235305877290642526765553761965348909470090201632990730243135488705734291733531178549294296738190960320137999423477274343927399307007785073428214497834826091832664017909705566434338127837912824350202407880308930194230016214996615447484572499511628428120362971198809722153048604191641662208670315866285324587482181694124790264297260173493859081110736033526960786370796291718425097887110524129816432422701435085735126472386560567154522830655736815020145243626509605216471987203645053228960113657813551399176350484401573307585718252555724163233302414826506816901403311887170708341901975287070900219139189280874134173015982338129997900953094515578289745679358061800711964070472546938653738768530649808382251085077410583211975630902125709061086317487075268290569924062683954249450412669836842150840655272094737844401229423052573508600591155793003888909438906636110144858266375717245983024052594218565710386692683272828876075836086863672022987776662202290618102203005394869925921893666264178824330826268769830893477980093855585613897134454809439170112768874182089471252808151310013182428695726243494030325389417912401074219916679673283650134483148156076237496411108434279064177192893638026447229485913229345542584691303032133298662290894445414472165373917089813949752369143126619575490703682398170039058558706829551885001890474859404205534773143772206367373957295699297100751544825990130532787371599673167766651562236990202681745013397376057325920184782633239194666555340708214025245535150583277858664212157055470578943427675150029903214571242515021210909508539250236054354770082125405374204138448316496655301556919446804656335851214986049183120970204891172748798518234224680586414632347103594409244917998353029702294259147613785985204018721961931297192554060017549348569728701135219159849099259695327589255546102894688081588936450536062139298438022146592512335064312289377755043540312079587340831206195895275281384207372587957927037562259131921315932798327258882257276179330528698533358648493691077165150161275233439125617141898574110466391403236078892044162911637197569472676417488918526581684212064298714866027473526815597950196642207735954976239789014698749885435188980806402270051766962822357027989177609097718115691061556756912080029763346962871543563879232515484514664010796571900114051982827266352158544335093417070654303629606739390396146948746615279654502992878611615316884558246143498161978163438171977833431532203277289132411069630007772137140075944605593323659646174051490566545197056683885716822340153178493935115894659832625584087333834178831697853265796090626393811662905881848468770811076318289491216311279917126146432421667225093318930714817134156449851132162532515314023756425967324893168880493444958559336231567094562427509101107494145149911922582656059645899693196004234756128575602110793340045366354120433948784643260193553267700150641707707121885978015889299631959243397321071111431938933363391746065933577242904998272944193471315771207599409702287517081662407244084745297653692085760754952866187664296845668284484063526753300106765267703107847549123671366717662862273911668596155158633681647512531003802450754670123476131512853134508519358527507080682941481552184094536398641823895356899032221375758322016325524231069354100433825202364900324974654982872728764276547292614366570399401939088004934025637451237934173518546043501031736753223910664012583326520155308696549307835199611146629776590044857526421491798412618458384207037578412702836501209963817510267159520662208918036211648993592653927445070695652325856779442720484157192178213130584205968880221280988376740581013180111373491511214054273513898018332728623165065529219227185725946991706247766755425590292060179040940297448505255911645777923067081210736328754920558860808025976480898553342997288473234377872907440192512968610870098229099621192024115471571827912202535771219597272415690376559257356300397609984938990879374455632796142212549079054399836691679101750330928418329973344988405429275231684849159394706954891136735798263360469101800184711378107798817207320322151680960883568335144994096286723380462918117021285892084176469365431366631086940575547275572754018204114619839590784988672498111788124458282297502881063966304316968262950628409639153076986249454973799886921321733510597772372302275391068777278830204079749899688029306056940990738229010754973421053780117356584625236386890200078388873415896493678623762473615027647270612530668170012117475300750699253751895385392462177023257420835882192354486673423537776917481955874222843845312202223379178779534407094250160592699028022329416382859971496782265063964031245989794020887157834909948869233754222848826020222223760083794392271589495961590934104055503981229177329250802309291657657803010719826316346704364461073722578993486899985888872701484859157240431948006763163973040791379568100598042167683420805858770619529028712925931041329481466846962493204291827564349128382988086770199451201104617186763831098966198269477423848008697650012908509651049360673014633951308378120235328023056757912033705754490872929009442355285544701372556875110451895166044611247828708832155032688726616224194317428309949736281953641746492624925695963747899575627434896374720372927345779597839710465596318023705489972959244787600765491737018137236875003825075359150541745708973329509326811787150693305558879048784009569883281141456827456678906738950090949728912448623675054350003385981969153407904740927572049012197504768477392743743728008473962116177759768431965067038714573289464661917118349443882102321438414185745777224239245639934006738024331537701353830386715061697601040039179687754578160384804616664373638642796402528217766424449507262101291451493622697634745470116071830680140847457897786215322375552952401890658209141027624501868422174724935016077453930620351912097488976181403992523410865440657304082540360462611647690130938826389892995100799048348578630815041494493656460766759028965559442254280304974378753547232641693044803729611185115901470123281630854852153171380848732984615969407812391282752676792574322869544961798145090722126246342186775969584168159241458678654658415596089723283287295823821606980135513101061262198777363597702834766487248042737560082583052112606422408088975616180492777410579150342545192083585316797836099541021793018590628363530130526769900299926124080850519046526412463936601979368149807484537473672008578896646531752172767200061451977020494833693152108584721546633049752998604225344563570491142200329407784793521220148712358284991773018834531050308431373447943947602680986639587488710274676612435056291258352553950073071991680272190538127408976379427139096260828999169705475879597602638339427872998066600143975356612709846455849762714139603381560058697012923182820999119721927934420609740489731069056556125945881709931711044296319611391504507152122293661367159169023821401526810330019857869691077359581981491839165411131595257584642298845856270234000774979079213280732191117827043846215881245691031902055009592158610877453132693855968231473404782368143947910566217464529730024917179600337298509127181777301490321792046643013097419281591653726801042722398909988898843649345951132783252224908994557589667317287011014116389849719720863949155987451580123334085422217504431108029942153789066348824328132787516667040120871865005560145100120371301394330954886131749470661962524802492737763084913113712925014564026995764611559227259704411396778269608479408034166925011267343134272374895522476997244094117142235697596822301750324760398034370550930718325822582134926277405088575389982756359707765829070114613330078535035326572105545492548579935392426383277798866214782083183678169850790537232957572279745187006043703698022892352462855012462211279098739818973074594846393207287004871781092681624112307015792316781572003930326641253971440398013970882707853553934873086891932350710519827810202571659124594272578851311330089683739779702084538418752718794605939711442592355713017032901466598791871027458334170113778092521689720820985363472022142586173927798101711038686990030310436619869136266034325109774456898666042739456395766790584959120099315533318802262739409704979691536992115454230481326554162979093638993908796809059419007237646466043010357789125023655333166995557993119752735566974863767958916971977922654362096924321575336674170998234783149409701656414661827849119811998949105899956012217315143857965201464108696213140262845012330910600896752226498647988581233753965883372705473336801543255040418906118873466797101565462023404450182735909358687771320369531572729055703008575640431575096040220970866633916248399386136849584229916696387218344274994023091732746381334942012012614769089376944200084122803527676660329309323082737769264338497539844919865963496620704965563307822844340023486045028293474764222378014338003481150875571301267552207403609578713213180058271689498387613278416096281006684785602225351760852503345875590988725802496300800298523455789306816522901840281857809198370096411168916968225113723694108728934014273494587478955550920128116924693833251850292106784045674060871035988174344831964213620008761774170609111927230566450325413593824652173796825096129145380499511808734420708114558526423078486634293667856740538863392532761715805532611786548440563464330229555373248220335843513961275830345600578624435767613721956608972516710600508505488805682603199931525681747280932610163676831441890037693622776754618120739644004949895188118027428539045341094566500576103104345534340118943037613454453361227514023732299582453972802313083531126932160616796267953346368218278948477081914454280733284150786362426269056745086474626862753611436975283271814824423272336671116032417115481340625686782884557658585999118542472074929768971084586453399309475869535915164181372989723172269749331007531232108004996188882346902180565765261676067480257909378487463696366759692299726544352048667037138797599336109630856726331256108351159548079309532495032609586198883879972502584121147956563890963704996382604808882635803272717287606935730296821794570023548684872610784415010781561096968459168556204795893934346732959419899810979760950199255277987724659739703495239103506074468079890288766270433220598660037472559590331686562704961850604953213641543196018123191972245203592251004558660747990088633642193311654442237689579262535628600693331986215087276795314043843572338745492358432024832123828176280869424704735716266242361861746180870941059796085031145585139997756564771568885439729321470203465094534298523828707309701331506305813739421006897156019194429003778026412678774272163315293409951576408536954417747394419975234845617920868389815693699053124941542507998827355788448905547572702487106121868106821833859801447710842726977612763755584317146650714880119989805026004360538824545988057702247378623559281187070874677828597355164864897118663905535691905368326639034915517966877719672432264618734747371175546085578831552394249720443644585897700888485495970677063787897522084715788572439556634334428488466659299723746744916815634364158043557076850355502624327123763277716092840606920179885068042939725506203800490708898673465795848100245669635152879485395398214014275947424152891005845092488857601939856610360370489805606043791974518289711869865055613620104479727814838453575770293083382569566879110112058328277662309550043580056627236496625453033072502309195017724264929429164159773459345374823123672789993691423174719870539839663097456364625090084768889888852635996711725397507995440966609380802167027209737673541497983351620290895706309792847398750749534786065248779920782738405348635839556545003544294850216297058238304403883366327931763635607920741472648007368908926180946274274512156240560752699564243598334939573644879433945168527688237923398843240923369229272740492929050538973343995972269416067767965144970167797115220561472447435442147847013715006409839141843515352700487854867625118389447144503542550970764534987918693921056575716493422805675433141805156057027654148950547791813382487573489903464996515848636801030839143475011189603472284923357616658661180123415174429038736418214123922866854349354587565814533485656068192698987652387607959439208973573763482475566572273449624089385063252729360998802091323756677655926690117199018927449778479388966904712315657579526215849861177965561186586884205033686784305286946632838814800206009353030263372935400377816598993349946038527388686067717027255698751970849257351346130512418636456329005615281218152023715244918634119373716093086584586512494730347860373060972485336416865093372496248210376247071146622565538954648376627868473002333338999002878247354492116861544001310113564920410071856830633836955238161079674971132013398982589785703562500609130173126736556570548177580759511476170304749821656393989246730003845003528283163141125129710102262784141777120840080198015298838040756889125278043574112180095883673892539769617730528899923993178063238340536577028099877298914907774476624400550816547307927960415049311355806873221198732610140501810756133455413338841547614246373803633708796402987753333378220879026815365662673362751421181343900615238272423096360129128221138364187339564906722675013939963631367495291685349111360432304442816900545368670932908033159559632877910804497199232427943845427767532457782484359437829199680117250827596044228472384324939236312293111529818981376057486908843736797926318727737641142544502848010777224643802817671845595704159867756142145426873488222899029329812260048013720547963980383396261535158021648151935558765583213824121111334005460829634133087414707593633278440273297091512023056356999950491599694534946609552091802391789998686397806733518730891182291000294750418324325092517627542229360329277337783935545608674314793603934446030594955562100244344542886047336144269000463982128190169751248613724258972675642013223001985687671174984922171880040587575530132026517393758682727653968079472577633589923245411529103232798714650512024339905145355295849235509373532779451269770772717354395375267596608999091930631990809218615050964656295648874958712348887617794466277138367876640024881672768499653276183843020920320875575185719570186412446606586484609077340679495211268836246396431989705610016572455642799812383297347373616235767668200784447286966055720902794176958169132584297067765384677702017524674535711397126030062793376716232261525085088559708484395292186984715988087366239502214461245419701616783540855105905435460886426499870902043679121094317142348603576294065317099701034878553636034426806342607397744015684993773303418549562711998455281764901638807646932902590252051868695105006096476813048963017540355002741259189632133801927341714457506653862830456182089201610611371461640903557448347397686396682797326457772298193702085902058595171601995100576084863457014695107733259998860680324249749876987756181106147550608512997519922521978984328064953222568919564022017256153481017718887052233966324497628480546202193758769842770620882752146647259264512698074712684114936593903376074048562900593040474128899878690433013597495384175245851109263749614725199810252667657510291991900690224106911950394718872430184287510678519089990665550070604597700967940233804839320458695437604650707635857241691364202582705751931467966046544323617827688220693801992322954867025881192684931129143124504391792935524355948247770727352497447008444108992441286826730983111337057064191570194017299702338322577078890521341173662758591767531838942687204744708689207779774947240658770354920932000476775957468659753448843795399620017503264399778375938353991183251286299633250401033844623226006173101766579537146852888805242048990809312393580823257922926220939148914475888659266915562485055015346258552322377836478566045533608851519996439614884618656122728404496111409999481127064290482060451904836885869792763623564791234142433504157937659816182292813044398058451254946242892617370849656412653854959327123011850131934831145770840849490151102705393908237654786886908966923088540002782718314487667337878086335345318948037893217423589759495600819044188775362427281579526970533384561663196413337404434367167098639780276644393515012944379235086761128109340235282457240225128582615350688666971321828649498339663746861175984912403948307721547686796544740260026101174873323439847493125234948523485414126476478480562196916173557437241257310728206084514891424798468048083745055425678516740881713939079655384926926621770179674662736586245392304515242957076055437638859541277632354424228624065934721660406063838053824182108642016454830595202573186696468235601920232187327648008555343551339044021215025049321198323379087416442159751733665340931352058316130106217555245862082195506861805898073452693124035589151583056592875937349057492459150459109255079811772436359614958964717823851537301323388597829654633229994066872086750071768367677180752001739470920536812860940550768587306396905378881872956083646883441382210444943953374365175672396799372995043668559687047837185610501737626115663083585369098842127875698115033159649293155211406794014216173973890968369472088104770313513576685779872556687984685965797524777145125880712662946812134362436863240298665909619820470099297534369667267556743256027287357148653108427770205536713074610896452992890657885007495733461548764981617952991977224512510860638589655978964777532529024090523195672063505106311799584662599968480983837414934951520497153842557696942587573700899506078278312305214380060705999689875450318087394450164752043320092164557500813518599119837699518333658012030365888676113297205744821853022324776567309758480318887385873402807671968520191619300414402392694271782754815835655724597299190754995195812239491117494683229469046838844951233896889462065212644928313503339779837123434267701891288803931332536608086539657040233801234963250848020070241094641675302512389680964949881025146208766398627794720274507049353756528021515008721884523232496908043674695634124662382537248741899817285856243800516082595020231827985230712044503766303884892571505657538880341328035874963806613288315321330500582252981794786117329081458098439178206851122115205921071088157687317752462353457876891044412467530315432067492429769905480920255507707205176708099645675819857050829548884415395399033645273792832055506943832027907155945233319454237542869515844882394487301916739991592601258507705716487699358028572364447596684333326502710897658318246402090910219668129948904058077069483339870382280505443986863101744242601543781155051886890122304217626633666457624046222629307478592029266054443572858251774517246325265325658094588106451089558512569366524866995058130380005244976281658267467781794416723261486106752354383761805688736784514168981388471359326087593890834796492327885464920013911223085854891898325725935637141149555204281806646415358090572514217188028174654675820115046181448762923274103141241337738012219326299525801728581085141996801184163836057641239389706241423213154643791492651055129647242414988948371938684379923581438510693296183641127825742621166198931242242681449896063499736344227416874180011146738803528599626547610570209714807849629942449595649013530865681361519876288803615566363686608164279875488679326769546363583193885708394031428027972341895461982008286565569010150999759748028432689256323348204978217624679677714622058544644801846622991561429851167225397126189670090937896383650520339166796813058233706515885177037778320501976013307938713808831524075028147835462081768426424715829637770391255427706825108939070336733706711121967680420763721290745583732640814854995428095157528202108400786599140402435731774953747591564299289307053856091501689012020280982519691559948405010272674200864146146735242239477659721916426484931343981436989033634737264119759065690402490753523042298587588806234249622972129152757868361568904651368218914448163549376343213703219319826076088100674526830232625887523367451605342206791011775734292590676384866178149967001063022994078167343037795590775155421656149601298814426967654964565749888205353188679802143883566204088889410997505764409135982693156480546155463387169072698274288247405419334646747214797753094733167479770085033239024694457050809085310280611683764398224095389291226050449861235772056708908156150085572825983257064694676137215144821060186983530334223334415653808400532308654638464736246251571880904736702332400623328252640861582969561416576995445860569263581067578499705628990115571893743270552324207360992664863083669161898159439970078099737172989549019397207422867939387102552192974961551264970886870741088675774454093394810992169317930562093246304729164474117756553736687948191267706710950024178434468704851783862305443053989609760122408916174245374162405043140579993139846207932430894891158617255221816901012805381538564626506053186705116550956877222980379731787152610690941070847207476410370678427356700748534785088373024676848567440192179494670763115885700819935855968944723944330463358708902570864176697472166016018415996690855665060780524758343563990457957656980471701743110949399067681417837468822371149120025345292306094252451586047563420362060329117044975620025933071406596774945736666999907279107980152583187366172253586610061083948934738583359097662702746641566220499581752545755434697505376994907533590828575808237321385100064956780872929354958528993034628739983553953919843484798328035742088863979397290735448290636615809928314095535439121760590021359685065197798908205353225835507569815546004683534332286306307400344436133468766818779538541699942915232960179481324823441924350561353616029532980251578972071857686167048681878709735824255924955280308544544143314712621696325273978937140830032057264528708770311990316892879789832589904070500030869867393126343772583363194344969469974767130011881429480492887695470533412095826815556687359219236709584029473103771206995479716435452119367644539714979347138310620482876004073307703615419621095722434403182192187777665474702920395485304947330928868416853471202059456267047250738334523390608983128587253307765013404807960632292644505058577335248202706214353804580227308980101810481425698246588952988787373399304829922508284460035450256598811090755836715511857778684073191562743088871670779318207406206261637327429896678859925735562098106685329935260284402321961974810226152022956730885581563177635064254047241184812172997829969673334066326511286478385475332334942657046305672863357079143314706707382008683707505437594872031434007974582592384301679741478957910267087053409800860218380092959864989663724159350622577062318595117959877255606579803420722601221711642027966578485954817015110301671815870232119000989764247883186637301319130398481318051246306662022152756680714667126806242100512552890785020548885854923966763241354488930839800021929230278562177296782260898251719103631231500683610889043221017208262614632023511425662513694617581903594292638715087526083960763947758893177025186194022101225967218104114298068569049608928068677815897278535674718735388543607424181046109906049696267235928041117784955882504770457681268928481090427764641745995124931620754093033005470749731950993634277209297961297167971479823180193426029928349206510386835507383099466651249718728301295197573793563534853205852603307278823761470636174391008560378659266921374591709462893595037752391376053680668551677617736641682343969533374832910051437194036166234892563969847604010249260441682716447169262767130443451857919600996593031431680152446635885614779096072063350822121405412632678216690260317337524702087987917149260255543780537034844786819502903124834989628816066562304603432841561066394729602869944507759587278132652187514566429482341171091449177785183983889125911874271677745359640204726259192151953740372827861755432416937668847817640299488264034059933654424145137800522706989308014778651066110365547582431927012665598786641308403973004035637030090560508362890732050378264928423577369174803047634566596132787883280372625296711499200906894231348888500409881802489540944353527091443781403826065881460944500675474354946615243058200937291156166796371485835873153572331125156063244308108058425462623788823199372133215520129785934274445919394159014035547443912421434613378015690374504304006879390927993926675799742316756378812683544379873686406445553930209517360788140427324149140045257580588524318824275827676048628759509948718147339981131919477786138307985391154093586536095302973672215729414788151335240487044070569063253717397254452480765793022769371171735921036425131209286519161290572518347350024342767473541160841423874428472863311723260616513693527908111412281988650991486525649307432105567425087930368005855084004046124753693847059774622381065163210086437529535252625197354039905356493513074655154554179670841117587221007519456379963978105341935490091051628945817699597495331019047212822834406556768038425173983811627278278148297237763189308006674201912901019450274772693926773402652203818055613991267024886166877262784625895598076883596582587303979394610170737295164997713240491024802024913383264010173763618769269662702215793984508345527779740469036853110166297208244284542168783777384243419390421179780393159148356363650058761363295152419612042033243306647580040487185378121373763292857617619859759170408255435230652800034416970584424516350304949956287876980280587665303019901559746792514414836562936317600226472112079659239425615483966349047244843971028973544366522220235394429347784255102018706223268852160380333982296748677178977285253646113998488833802667112469870104440276848113396661095784247060078747617558171958833666252858279867051980232845390908707322961152128139578310290143544733944184527508523702695953466893500324694909690944681582487753410276435346044737931161352065370501019888346652129127303833123171748649197037439735605855551593664526421309976701109724288057841246381441493035863033649374215976584430317457099255055031458295253094252205429262330680972080727872039339970447285673497687270397649388816906352431850148956108908207633154245402937255792675567601838639215986948394434822417455399086434153892689384683105289512456329494451617817814256269043875388670244525797240274348710809848622255916026585408106769233965539404713213682470858035048927542173999178399031367418418838769789005115384175878591542580802567127498807425201715370252161218264404670921580079126293775314142510615228747526935049423546614312046045751219637439979403214874433782175910026765366656651175764272356271769892457346470422555866517444007704147077504576273824502756773283172414978735746499824511742468175695032899115099199936879587508888575419928602464060720833843987251706633009173220594784590755781163672869638801955868950819229703085618269192817691200085253632556139384767049492950749840874108535343871504261850611299271147136878519206701683622127926141730901033932126288622611511440893004883828735489675923935981151479231420645175702204902591772751674466535155942427056020839749141634555586977499728325790904908576382390816804302417806970127849054481935251886051202881470612287660007356746756829389536283811898584532436509700289308468007344126853787199039452610144798061651658097440676680702841674100571360646389049011224048686907564407418925838595700513782655591228607095744249210701037448538201169222321111905708428770103084579155080508615782193177437848937325879175373046746003731404977705262296908993217750652503247523227986054031693681557340306338845609237872835061371263367562377192624276790750988849026931084388616557707957413790249418430274953545683657029095036069885656631018980218049725322459091220664374088884879273921831273533435529829726984338333361261122091417869271705183909256117987977347838103053157165667318136407732748728846531567679845786421543372914883762617998396191900204325275985677612178348058961371010285059254291940573939105439598435692512249904612575899144495949568160007701882291361247208207321706456654391337805512788849398415582006755991443637939302426970250925108754703878814141935684177041583971240502263971694534764780908344501589660615842271457287016745750952366241015727409636217861453667500371519685200267229941977880643296717445967784786291267080008831076348188199873519136248688312248653582201632365648665296083434840080956102709984285220479806009332551730148071968683574025796377857001664579274587808895267783887420478797785469411399060748896369233066317870943098061648126755232018820775706673389845599847468977157025122408291692232259101041753683084328146552025787134004001133570504485831593095569864400167058478307551848583239370899857054081893261339361324023583455804712886865612841857975338723582173163596914272996276623443669491331605684525527947207994081596168063743209714254394518197300858280709584448503408565150611993949150659553295716836695222028880475407612748101574229941841684710927853298407437213941397144701696932058588983509725816351051658645590903267595209755952039996590397045090321900816947215833997216042547348089739704148479729826144469205771819954760441640130102531444909084810392889978157230102902087532255861641695144665540651899731744031547538548325834046724097332853108203860149774584258450372955025706043358435039470538378303745096596180778845054969214023816917267993069495733905274516017239799902895606950378284689067595957179434585612486737641056974119362524269980801932154655597053002273460571100317192228645174122171715756583691283051583349240987176712021080019760381685243352253527692359043741485321924970092725193004165121424188095548067048873390291305816259060240203376496254528585135649148957098097099969016560027861343725393119678253465742513071012624872044581221397431394458115466114920448692054011266927789308680484034920115685474934894500577136949613095147667799026609687993759423360538001737492273142129517947346455685453135786009019471939154941732795757364302001245803805422176584052117762139918639112396863043093749335974323566073500648744483369270965435921413296338434483385263514574671571676768878751600842831360366429345135776191354434210324080510784005127952524532071978138654194373671644531911361782694809312554864435919403721180840882227203837751403015633578958704747780955151530572550736278826789518352247478483614829298429179495378771678395704796220514996454660683602096079057770650897341483239056654223903147740981445735750207125611860162768418973404478930701433900558756334423328126183707043795311163880813395936398246104738733674467899104354694775704313255849489681818988977740431782259083025271857156857211978590753034710742677757769183223078001097268197388595448371479270264171112292161537453237387449735938415917778225247431415612025932774399133948030227691865219826224352231845935308235228427377323871036864108962110228345240131499793628865392702230055182428974686647199994713564537020583228346332874188543873715409359674247362297901628764874144267853567522451911704721062685195253175995598816792067690728114781028353777828397219549724297035402615913140043443107909139158993530526606686554085197285114506229537316476053585370147151319622672360314739277912768307681120602391915203484272984682715126251749968775019434614418940425690608560189187307274303893590313212012657057600968364919200235113922356744269199607516833861719628299086578355669812068840586035054591474777579372800356012240624832361526138896338542945837205173758117951193814492733102966934586093170030770862443476698062891054512454620645920356019103592033548630140383654805389189014152235470017605410650368604433678167622219554005359324322384130143049006196373151121922118275748032853817147290300985062879520432541714917675015366478736618372847862402721642737991556520605259823064611616773657505897301274971696747820708360894823334543669269377449364019343909008757210112115087927005670475716371134963239526079529718443727624438997852615574575751572112675717583831790854708313673808215854981293687931578314387182283258059565204394023858823331157713373452789729620498837488955201551726349683162733194193756460883366148065818902604852857408874027172201860103395420061845612794655989017939604006783042997650211972013338978655879109973243785138902380250053441647033414224635589953880815512091232890876364257691917675250333141670708702147737220141840773474705342631310874635543889093997863270313211087957073437434354047467281048780452079935549440810942441850831488509127237680336891921298195234787286570619326436173598168102853697572810751934616458685990076678040916854280060798717874777235855249901301902343262291449341116088059553702429706462437294366414885351918036912576170473236514882724862586519680652519931610941594462050461389240447536129748574819899887282408582541293566620948011203678480526394760236242132550748681800035841243099621186963176725640410788450472039057446610218416191842913630817781807931000710244558773615823940594775619798717704565285022107818627788037678642268027426626203324811300632447055511575230018219749505166168534407058256157122261230231146213958109656947915868146020595341060403624873189993605836597698531305108971383156715360991870629913523767514562284872840700923706618225763065858331923069519296966317523011381352056047992169604213587248455554736265331648333778865356227711891114500025403860568203611274187391324019277101784351313965944782940614733798719414954782755061918407866293482664072497837979154655161676687802465975219797316912358331028641822320434242414390100766732007428645344714020598523171884887836713976449085458576362395175438166292535210218584397620270477676206940542265206585985793883749291259661872832811186922917017075950177011378745371686403458970859995127969625411978414969450002852923745619782471800364267913553408590333843047903281218267883213939932961578455881614933415449485951679012671421877475476702926802994617822596642601521119076531233682096517052752064248943900294573351541674572658677421249487722544301689816345076819587000624355346379113280445587402020317707111777122098443225005517509764741293825254400666505710077400214426653488707955810672537749456790833163315659591884772625862066018345925122357616671956244715501559660961096600368721341437464108342874548184595365477311074455325631908053416750579268257458569161091098557611818333414551670405722974116529951507448747256638468302856779643370702234244569125385535747035921853591369771040131354424309119087950501837679586036830707607059271557958577616683996691507870882773704520043625907138572801167708568753744780458198411547132089688447075541217772034376644311553972201144893613339435885955940312586559588638399927909995202958393105749449453924851801346119882229994074998695226760542597280914256759646063580405555924374714725346544696684930185090223963937435790314742072085462285452147473571443853428796453868186652081811926132153546226023417127228725157041948815962210830397655177601559530023162983742826200219859567663124569284921634251060569053226252211084659715969234044831834056191017179257324275512923725126903307035103649945976711752246391397769565223346141424383069514966765355396905433721982149281625324947806146701497837070662245124260870359784839048269261516397488498336904920482349852017994117980239222462418504479676366587059266242973207543181631951598187718042994317243415782179133971558165883246621870643043472595802976819838948683964211379510094651717969339702795602077071062609700920309909399515433872580971887461140044933477876738907790681448833466343347136506229017424121377203745432393880731466093957836987595876330630148402374123983409437797431303930937103888784481223387983226703640093403819539138524896664097330354788208677183433219929122760527196570957696065192108164079573324712581272033666661028296561630248631130874360323484974505726705558309934946030652823886227150378245176332320717944657176806181923670850235197021127877220733058040831381674521709880762620076722984913606788982135549134957893482423938775706455795402489836291343614042795044397601708105306726844372512972838436176836634573631547158685614248983071443156014554140661800016070553259047393663507194599698185665053631872340569001533229432696931498383303708669491628120818867833535197792688559216591957111238445378589360763763950695950948793849685990722225280471440939643775521455383546221655807143154660462814527832343602908273243342189512024391106664610932878669265025915351031285864033576213007356160591020588427540006650160081172078437844298963183703466111792160486347210446350935312296888822098607130105705298656639568385320553547216499938829352999880514216012537068268216452548940128367861790499894644800844524630584383218417039991738303295329282876551472089460980207826192493386230968523897166950710336302373099607637005154199894465653351456698464740859722080496887797619102161313992766000161889725850745101750231458834779438223899779210359777349312071657385073900434113196389609007483027156798219595949437687413524800719579519643718793063374647365738962294832482785053282855552557324948221612194299268582063371718708342538320597821390880193253972485634233482165128522932113177703757243405468720582098388747860333765602200308941702716415738648383965024569866016038962505237058853093778907811588317270485990503652415775170720583474897052689452310835694466211986490459419925663739725940481867710466711494010978379744070695828681938404752288423274845713186974201304115191896402897707363354616430085480394850406690393518502652793022436056246911616744497517844932944244619544772890865037952303922166582770887333783845164274951806866840757066254462183022548774811576208568151609463367094284663366628944507095709618969320831255691726154476482999400364807843989925731348474874704707510466153192378386927164191750633254403465278505808295573249215209848876711732744435322148538717690183886392501721547325127472180975770437925118015118770244249438782259390669101619352998013325926646692966503443656370342325882311150647998636157952296317411404695214528296905814496957017451491672952357881945662428141007158739139851211141556538099103659868020024329544022265125090535651123284017870996517153498002185881098301702099594717012209635738673456680880543373311255906801002051530624662753444129092382210499721729736170416932974825226395699301324854131843242551732252381927653185117746552910985988990484868040851233772954409130187514563495841095675624608758330984251046815116913590877916472944628818701263526631593429842996020818574242330337875907300930656610066119137684329468787349896432102582337999175149192445196701007883443661772212431153383695892449072083976979721695872768965550699754990979297178441166208928339156993651697887576483904537485538693332564700638672285701135217001809050196800823392177020578808935452175440851282542356212801651224276758947574884190396171343118940169492002895240670972570911320352361032990198013911760646810235777527020162751176345209615152581248562845662562261648755703420198734479790884038560547709850754730139402109994014615317176789832128928165107724643668534416616160939787436724712142963882724691892031301615426798680623260728599469761326446919541231130112653830252918007687559880140215783295110070547035861014465403912584989714856480409990804456373712064824582688121516062522235656658957509406164324996038062096452744831851256317026327047176698630996100899542375592057040135398010710537097130265953656955468688803759290319689667300700194249136913241100877397441175904966056846948415445575003897332839390952338072502468894020190253720726157570591354353083132048077322149711884676775281530184921918082203263795643453860087912735149103732141890489504460728246138620302123817868879324636376781505795820799668867416623091416937826608673368209966614641514719540502088882161097958351582101338054586230821055589927162983902450801589490779477802163958567983265382187909477930414177912995077983690517435060704256628183933755271973998315448277024288230419931648652546932926628663088045061998700699143765754533178897771492437407989980052628808536249239071179894812822051664645343842306390050349824344345759286148930183893567288070497334182173976512863871899873233765849892013744638397051325587068843422646086141750451204699065577765914308346646864562663341549589275773252912391777590827514369752602491056936975635125436806469193467254422398403696412920471462937003822049880859081903218104957413706995575822365081105087558592054092039639725642670908402326609645748182978144733205349359959140190231248542594311761820103735387442293715355540921232453100800275600432210043098798157023832557107260497070649067775104725056127073464394277295035111932823563080173951833577946033329033776495251100503540562054310881512771585230271446814357109287572729569439945597486556299938915992350423515805948450670285986924233892742923934320843270302929869828642848131972857942096756423679724925713713538153567861667195028111143651926514551035908031207036138159832743864871041436489214346757211687415397829013295095200506972161078756949877973204850155166658033358777920812293168926168533118155043841689721998652870252274776974450328473711758673758537613442476209035805333513228939326676727008538937727691558843734659876684495577972269768650548935375488906713724788553237435674333178099981225756539308107820672540580652312973106192428592779444348929926370919725337269039706543158203020263415157447468615777985585943592718923709515164412160251185455328140757232042491706411795497110689066160520257098278702477215896068552097977692648978313804001295669368011370108047701288561536340873626509361863325024956743400655409810682081822667513629485267824598073700616435287843494220360745079386609936711595868739945218853740986253309889126323073703188612688761709518388204050487934419334162313978344578616540567709520287877973154797851190705779297804044797425479914416660394078997772905649527854194311870783934966101275479567239236497950149866258370530834487689970763580152658938167958814044323517119409644835207643530399200764673058153095323159149840494168554288527487282866464100468236387004312170599138224978310649948595052644006630602184879164124962237628395451206956762030935344245824470791487456703012345687512921662829675188389390264666246359676056760709340763580746091376323280312641931411749717374336028462357813351250284759112264032109179898495879481749026347657739040737888432140979370601254706847604294096041925484773344145282828058951884509752098555407309652411687881865956953527501587820058776701501124206505489276408914223212311401652674518514108482305583210584956036301427493115625292082713818168985081382880541700683862395883187820478796913867175872444587038214640491853788764792078036253775126657522495209620024385978515872166430731172945043566857903109371978131638637470688534342100255858326287236539155807595143097907079227656705587346799954902700794000223482536967003011498898174930672085232793178681281626045689251490363361829108396139472842453470392186090964434570048085314566464424279522627796347974786674230871948141288727313991371661415737992543606048448412759552993249890710751310741810257641909936294455531141294002487918982061679448288630531870739745869835352716748822640457268360436741497573591405320142209084326330779957467804835903190149604906704778640299332468393423089569243664822348280938813550668382937171515698372242470258218137929793339221811813473174744460538206894768754707424494672786186646592002321740687542794950867015333359920220910042685945422532479297150008610381966218065059088326190726667373398741861001777327152733534646944923062293969205536691243916634522347195295834901648483074292356513684173902415240947194612518893105155587743839800767310779551696098782128783533332044573924005186742178832189892952511736626771071140922682157162184721331543260964158075314126636288583937414112896767032712741808353036682475790506201037587946217684114816059230547902218255412765529986613429336576384467341204847570576971358242485137292507177927199542816245691315104908901778690315950475563881130502368357173292063999540527828455320580783551621540489580965305481516284153116891450705261580353430595474771294775953054459624441902021656367930348280089790559930642515085101458472257844351772592681885412210887719237009587294124147467879584135618850205153603860409873131564496093739018664605980479634101140055839954808907887712762084711516869009756773685747153616999521303988089485315511519947732731241895126226734168573239031076708091696428397713267527854890685645890639541106804390839440030187630678010712327671754888450486015638171220984856522029251026231726174688344986452682522350410002504401467007598048642102952596673720353957192400721912054437094969163207628735688037867430240874922435345237770980652217388407060343551023578192668843567739270984092768619923334829718006106861724162735957346631780178452992278715498850679770475014402245251463637822196803834699836578457564825020985586340976849029796840850329961227016511870554570978741785596089726247418157098345660845706687383123310731594694471681487873763337357778233710372646777961155932867889516689910514713596056719195611325914596513128215130641789374879048651971367058352793576637462088423648475532626565674957009749292942819339770866713101766639570147822049390145969169240776962795878382021031810569251600690905489582623308747658435922672475820829843081080287085748168896378301121483916140985660627131130623463519772181774691908454127155633400662947926229504620391867036585760070876779593688354751743691218632444909258917865959208407025154449516761504103992553812450391888785367509808903288488183590100982637074293722877860656511875496022137842935963475605147353885253568931820523360027251052896772203485424458678641557846516821376656774327250728760325215001025250023192161504194284502425543617683791199422434081135619023797799411335222435654011976450417555014569897224146431027200778786295215352287282152732578815276346383010939919043872888492781448596445779436679676486926614830324476138421974504474081671088268646187635697184239372115366824649602453177414101265772018259007724664231238033150790397647372151254253661965210566274146047180118723131791270081377439720801494243165956366868509744853007247894890866444543985003807815063031118157470714170334584994886383074495564064570325608946806081236196976265042193804091887725502286362446553719706743607582438991496394517674115133621716176866278155765151259398302201787504330689321758188287950412146762446805385722184851060410361542302636625811592620743994836081896651254302471536606823069334040127432196997301455892556495192607219143900308396158920147015877226942406842579002875238303523464103527756988820371819035303945112761423577930543309010576791563652035879129386677056022050707594081410943899202747372009706411328011488193218787626820710172544078145588710651174890407011303868822067407552782524081507088946531157507019551503967593211175454662721072908228608077675497276020324558810929066226840486083227026836893307817559917678393885299724039375031408940491869753355721376887385994254811985636808117604111195993610856626188446313485067016830739045458556797037123925037283821933242052899976624248318680593475900029932367677152464335612431090526350915892733639475825530991564822061665429279477926328478425638035141776437004457434161358173281490010279479902424985775066768072093681093638508219026592988526626910720652834134695205298400332611398549562732601197522385863592561455112109537096359127348410136723963977210930897335766896502754944852335886649267804956560187160851461178145466354497459209766416917748551041244776058547069925210168007062142668683799956370788259204591620759053606974513561188089386401166483062337686507460073087186809380413225622644568563375161640462847688742648887392528585066246498581936370354798510765875350081539229432549367968516153357005541530206050006392629561213298408841605993855062362816566207220890380779851322057226407250140439203612429693352657872336221428594650718875746353787434964207935962095409411101043810604843171882364176983454775039450276786628201304943568614605619734755205337792513189705452427044885542275431281550701377396071695432846795415139628703987473794798489331472434139671308394684978795841288070048371033522751473720283181946069710215762715089564522325910105615001804188997209989884099519367709431966201791361321543367565152720867096577061506101242099133844431189145409175519731242810800969015164037021927076747201039078974070593837790617152059217976590627416436614570881949831972130350262292416463644622758280481338013259533506939425922139447915515393893297609414746309642640509080136622298246736275707648124775844663815413525718758528041585865047585439465871882079497102841858440128688069783762629054458251921928643338943272731412598284213907383117677003649434803471200056526379845624473440365344770057405552786425443250103987731540486895029929960037766293060629702614976817037347065188800181404096253486034580790626190643967320895744555538341197382433876558230800343414747927925895906280762492275815469808278382671500012234808995665523322220584634717274333762889616521120848260209206526503274817450176490145913883355885468336011038453104851055527293390390417285421883550642605705815553160833217906355666535822784935739040760596981660218646604958485540500774644301269386842023580649013853308202948122314295203827352798904210158141530196605784318872496790422233130470877754331537763988199054746253769890927527100476218760291557961695130323241400866469867218703586868876986248409152470772621187529122741590525623098088297232892351834971379575690437893254637775076718390217839036103513255474379521307096301671443549119953533986085480491391057754883308275148317334253742369525779012175734815321336917225496314422831772916582973189468261316271074174165453968324637835397147981032751581856141402605384963625096573608967493015321133157712195500600916144557721207387170756433280028898196172741281493008049198414680624640581855165717354900171050537659580341607743628462502687069574584948195729412537743171671964302811303722670948459435090156064371650352204969503189587149548321773776799511293400925984216150397917317217349259741161067112271674227265905549392677725864541574611602068462761134679140941184345673235105777776627119986383998212757551088900467670740145341691057210599021412175322499753029919232316266540454443584008950827274875138287740373254594562211925359179681282200885687660955606148296094108057922409654018645802047713784503441318578862194793360526293475871250473587752084271170353658428974860215929890487139480919295086317807884998801779006162036681900345551707967987618145221186207513568182572319183538419054826167736274203575106044026288489336365738130509154983535540960310194411688833255538016041146706185078100772929563263941609513424271844773211701906722437043189281806284085415177168613468564522911443365221605613861818369884252406811918677190315715238288732097559306614526041252432531588850323789523307284857754300661751737968436896432790707372793990686246364431324152617144723016709800608732567065471516917008088419877181724643982817801356594778515357216583721913733382822316522487267597406657664814190664909333093581516077413183608023501367518387009225699382161057616143345421407157041904184146022256147117290069709753526144135736535596658976446463236798779027126009383815275293622402048485911127716675115270774385192346594895063823088013863568431536649942436695148855882661184151545423289863372868286293701125669587718868608134581858140555370699702030680796112721872077326189936768434113868846109143391561616075946287653644145674166199811018018347516387517251208045065036336756030422093790761915419518379496313386504467170821658127151930108052229879637934477045691151803035543613443384256905750977849960908498891264345747019868244683436950499821547802131948778861694597448067901283657980702699681975040815639228588648789764836497915284836665518583842834064425634952147849540704204908105597900319245905567119070017491804085147666366491620551738587648057670485711016015638650826961520594275692973416424640006687222671782497321437645716512585122390631797193059112064536202189210904129470022532282542553831221990303727901577487823022786226379776096383067056649137703699376062745756773990776253007612075452911494660086596831831409101444464524106463891855346349361822454493514352422293082020448565307938732496860587115574085818513483955205787554184217406914280496644217481902695750674647207084558528938291839363652296925113353544475350733574198625618761911949465892970890345400570507171687807195205885060275914107803291806151850860386882290714030086621027306238516168272672138348725118379399851355905970461605621309222439411098981050557854971041794441860556412254371137789409613357161886171203721013047408573777286634602226635314933892790452433817810290087662550776411927180990704643838974087588696488026877717965774095092719798662199251198038538772727734708775263091953425195695704439012032191048144831790640279094257943414929458996677736702153452049929370333821070256993655511550853403228012099636363613907818599662968465274480015886170451148231750911810136129511984050128976156041390079710457768459358859431190481510986835973795061127203818575546722578766359002361047929968266140389078388105029170959384464685004941038841771178858732783082793069623749304048883844681989889693659227642362210168779324529051133873137331080909274004845136946903982027420687609096521378122935852161506483920823395838653695934188987964276439437228347771369139291827032205165289701098303021295295773159221984105761907393637282912335800320665762035125822670615504867938411917745826014407052727302958147706041559757037019549422086362103284241834383409231033382013095275678832455826548571560384169848571690952563014778275837563345057199970857465586955784883948599750609958019388739064502463644181113267423170579520800357935300834484678115039463910364607317533260178380311734773374755583121325080668183279565354019041943146071447330992602814404269957179950884497896053277774752954490097428317840337554490778196925775514229362301993887783434833263242380737289329235333329721934899625353242450660547424965257270720709398658045067106921115187679757941898665094505765439592712115284297935118091222550185926249474661392796174158901917016929770436972688157156074318823257525388255154769372292345408266193017067698552372778776829378427531609676747672581935647669791753710827864279445418077052913370096228129266032012902356612214468156598048388373624148449248887976123955587037971196829377890948043243118006914059328616372306943855769735570336888754267571794210018637621342182220605401691095386309673725039607802694272344750721513422999984834412851249445548725786659333545285390696694571663627762076378996994974617956495220246130665589383645671025667333407397605730831020738339477946964011699608737119310369172347934652774778475485555434668360759275820236967460046459590802281975238453764069274628188152956560531846308823921436919399285455866679527857614535682627544562165364536024214834262646122552686598793010814086613497686107406448251862476084186360337896050240928877471782723324345081165790214102975357558882031437986681381790422722864506664289114344090398081629731713493474802838688190506311365956076581320214778085901111817534831606347101560142679673565006659228069762590055667475527035996202900576344475103993103996142929782027828153341828188914114131781094548995832586784799678616935781103293411483794717674946492968859135096650254159209222009232888634011799688987426036463726762515501661582999066415309960659219318083508666210537092179239418699082614826542506868653010777493495223534481740028757542841117252012019108493820092980639694193094189774571687308756282097961397118058043532471195920503812269844550245497515033157181263550161661926271055162400650973074922103304428236792383291201561901422678311446890675187515441429843406582409799227801683841145166117977048537317989869542282970914954740931582410771024523598273456691330318428521529696124609997157843608834803561697012733250800976842000889761212115760778711118001942869259371204857379840463417090968847717012722737747881220121826701654777797736576287686049026275599087051683139165970977261592433282322024461884739693310166621034814651506622938762206479173758352752963093003886780244648483416830784885476563000690352759818895499391938640197553272350529131228056426925591357974531241510837704730399490335086377773237166357082908471758848226680328603011086823265056844465429883049662307071188734334397672937376799369147713320268879214772602434089164770510175160348808858044393655384015765155676076802331414107798929162594766138424901962820509823051827689404648094205262396806167205696086386660695293669007502030229999947675123157689462202089796814489997645210860662448344692135919169297863268463040087466686676731325654674746573906127380340713040624809834645569036048493511358935725780142025163289975862110470702079836464521528767147552376363265914575423788437603931029616358558441962007587355096662033594066542827321418321628785636108345628834445142798442394205882946168142047859697500163135659123639894447255726036350322058824885627598109936261312602464373071552566610972372476710287104539456939132434395040874800210975869727728803463571037345172012184657781078162691583989400301129034428866576470181689656418952972574997549482582823278317534125106750398094602750526160941406516483527894179649634636365724471453685611026619961742253533343003678154342082137887261218726147392646081198213896914096616736137436693295120013283159455607409384971299388244683792895722514397431957345945529445853281830987861271487596118870146402546917321310019932861787752386750176893519712558647262958081503757730094925094339528731756014079303337749010655246028557377853068962298844702169474168005082837744378981364373856931756392765828483110545393943877599140264209780657052620115180913659498626646423884579965822567075362605851021874092485614421489968586655049005193331596775807127719147718158644093378956085834614262353935995695413152477382816229738524761623027224292165640671865115040732742677161334016694244485917190217476293719704194950088832478671955435390884210201991638080509770416966087761748532445609646581986639308403040426151709344022237005241899804606852782930700662204030719716132182472001979191597594067494424624624670328754093670828761159525662132018623885320992435268420316611310244212037986751421533760521825074968519035236432077928197383794253184141408373463769555935631700513700026653634826942406385208655347306995433408614746493884371290480704155628909864580064130917971246861089087256305833042774474169329502197684164891707583863232687952185051600674648323206122662587729072008300769672493551903208772971439743528599139856728998590710570343324276819858356050032897410542808371301400371192310105400143296754931757956879742322557597881089309961168942822245374669016432178902485710699490260541766032949958229115332133894502264127942161606642594249180576198104832601764651198605772643339231553358956251093816264704446940854818731983023936632071025238718399448335924170851771712683140829122821936654665960379335300393134084175449288057136372740013880647023852426453406730096753633906410557663393816009333384275853444154873723016325044954751601306109432592620490061899549793729449129205888936121458858153271255749310836033022265932929021999992337688453043103032884035055816917515930269865925968252492470702163428641704316448786676241426825850421507360835036761057685656823745054190572523220389851109506390284513986941280345861227116832839826841618248300825920409479243574515772500598850286189478925917282548721228984987876597663192675881995115522883727895673411156875488980844968426036480961535353730149091991486432364462643133411163225411696592514133580776744265295704038967047131479052281853368287643460521542294518569818086708072465571021203981544720029945073240253263082501607789922927531111337407230087243855563356030074198794870159536947920165104067166060976411938947954499649530193813919063743932443399066228238185811123826966421058390975263800237956203904959968457842212775528089195145705651968687642498743217590599815286962887062926175155728371723504518450212275308767380371221710812481881285088366727989760971273919520814401180880330297841926893333521840220599254702231213512780203130892044965553558710756753025431716431357720713526018997836967610179728326186382704783805779227880870091592885722802527341344039043538930302686187834693565497944994825301206368737147798923769636778059511172713507852214839105703381371347245380342860134546368943341421276129127354647465624452115222307003889162075806218887762111768185778282678934333740602298003797120252990312049126876206651947289376378685581151232399877702457566176586662024145593434396750883718227995180104591049959691575330888209156005790220061808797533521753723549077506837151226995706028921725194833128587371964405869063221906774553201315933950754166695927902698946562920462749841215329234299598921359226629783099089943650173872980704608724050571902508025705877261292753808424123039344255844935898342049173412046929806015732490182780975756897437122981344402528723679184870522256725038716111241514840954252133669215741250701907988567955073694346708779351855452147285879503521417996252426050248343272162733022606106843739769890924482773543027818912969173276428980865459996974293484346915725823175181916379705785693112528449106356497149289002464319787141354466928788944130358906003977510039464264012732399070629313225261146589749624463856168715016278718652107465847687734473489163041576669471792624472310902180584215276090720156599515241525142315805489148090464947232931772656596797635883832749595738765695372413582357063115518843914669193575183439897774404154310816430861269129532803707025138215259644433342499006167747370513907074406946935683805438674903909303075774841688323273315512695747063669105826137611035658680293165341682790511144485093878231352015101498624040563977027358079773617229200954704734113944939073058749351090829203135438710320011184416316744573684510474996778329667670944009904522077194872611318182944231608575076644587872682374040242561570318265552218598673629349465808356150983668758861242149361521105406819677398209601032126521090386406593132211520836724392125998654999280025081694685197480725389366810803447655251270886276545657270931711959406771300254087048617320901253559681053613378436470795414042193688893337304999139183030282600460270639233253563983423832272098744254475541461645722084382420425312578088284187708624479149383683111630371841732680024297017700750537565128846013714280869815586913621140083569311208516418483198614104999388416874304173158931172076426738134041544153498486653508940037878524334799635471566219138280313867029017728811223820012193945013576607920934692674844549280768701828046588752714704783058996311608090794963897129187285944915054246369948865882463886588840290750459356837947405863039697949193403467535702861793417982121812575031623178332291198882188184610223827099096728024939778559566081837855726767220470496606705287537772960642205978501285164152648008121161995241444094256795922527056406094601100127682145402531168622452377932144271337720714285880745281817664217075947746255993210181002135815838331554256448612780585186033493798204212252782701062712701572248662498888848842776350286676026249694152636073753790039607026881493509405124660244792433085139090200252405110699969208841027652390944358646867713042104349492650801002707292280475645965159015221602632037220300315457165881216100491883859801265790470771831066564953341474699216903548918941677352884706263481112744177715562464725570514189384551927356932421901402155877900902331667905769556286621361432792195124869136870313169276150481631882109912127198176954603332256013518082864900417964305001574886713347978011553419778351729385464369027496379975394153478139344721543618207127884252042169933746287087114731077818692942542034624270970326570843356804443573038027232634659051820079214957212735752342618696402993199771937716949299869003059526582568409034998154687858639330590129855451644145158303380077940515758840735952576568505666631434251411285473753767271522863964414348526983658300316792224205135083576068392681557919092239451772802798798820143323153011684768679058315112696856095910897463560813909658147840841018623804417151955520177456772259301745685335621582055418203112704047903919790947304453953444205559303373914179320383261058933625324773356404725334209700584791532409472123425188640719316044185528269918670477192169865091799712647005523012120442806897333153349135338068839979177369343948750272455459789662797548577062488604145127235507333686937078120448610171393719054098919655361117482186589530040807910324539738215350540046872033439173712367658971567553521918175968314405234479721330155016153215612228667083696684910700744896150167677556407706210557158780812134174151726432340893169051592942585715886713509025168190688527595891616772255252230689470489131114608327168949357697341566513372278296725147902460876257904100167680704184046814227291511977013457152945275878533280393035716664669111098382975184757195499804827422190282791135263861734358160315395149877160545037278719718173471980797296578201818538874644224211864316611376312516682974078547240292948731080800059150905131803798393489038384016442384530181732918650263832245333374737989102537804556173855337696391569270088492591186582386377330077979662096610203248900804056969832104322201115336158713147019283986346896238882641769665399066894340592397115342455468326246519908809277269320079160507098898437791819918143335493806674567865263303143371399876416098379597784855646301130114056644652273919297988058112370611580696794078416936342045426672546352633528515264294353926350803139941498905888435365131769884891305280077895999603837322597976819046075083858695984561803172536881370197214915233380258401445722978357702936363434709163618279186101417418465234294469172293738743258443904341200707625999006410190326612008103139951102280128739279017110500563567587167716764874379398896012366996208330570052183318618060701559198410622171934134519848521905084120761378585051411562326271591468226173460053022252875683182567315829499942542736363282534528051870007005384339149470104280477065555289169960742077943744373495529054906901147168492793808660407597191205619746426868373433232021750001555840173987387463708427180162551916142881984995065024728058497148971364380303985897463382442113056923228698551799865859631822540926777167666521919405582338015221834900042978016480959717213826290102192609729247477515561506867491389125250465896859951129512946045565079911818951695286436441917825298654880807666760852176741914732183779194380110735273713604249922267928107433440994251538633978533440693094995741039648132445921102496890863963353321042549911392424149626551152730114237996690003636095985436207269725671351541422669981353003610548426772241864009290481090677555220635279182446870421268799538074542952920163729317077230699438942152307697283103759589946873503296646491621524765536199404951395050299697212774826762998961197552887672946711637789558957345665476199599635265516418229581660549808650710662366675066620092419847782418669087636323813603381982899593343516694455595257730866441863612140990781919230996474332152472957450543201925356819927703484084418495262097950585052661103327516426706950788927750196341916630517803379759354734758798135024135085299335654914691518018221950976323572024343450915042760797267950967352282826081977512845450858224719652630357387651970861571876214848255185697723969247325217978497238249128443550873182918986099699131997290917638721054029701651788423581750708063348778901398584458443183160788624263188253903368751904933807726899106703901189471571982536458934668412873354328016334773547127861292028995914868374025106383200025451416865598644641409190095362196793729306725929058652619994140441752281637451161303380523950481654274650253196528977658047882034516632543580678982297446796815072355114067511695926170528329932918419902562974581762011669666687345954496371023478609902049984237140171192092305229964610586982093951396885215513479798654918778783861018348197082404685405844551819177754799472939275733098568974536624238672527060010723148343987500728940709836178552655695439715093108766667252034725891628208756615936426315213358378911913284088628531737559628196493114600843210498796956882972470756456708356918966850204864144376860841544311755022710417798794388812405119466106542920767426426058828553682514085436333792989394927486560177483483313316223931797226211410178253938637366502126414671230380579747613120635562584132545595317333561008355669211602241703298174546431658620919989136528533492847479070911326492309673720858791670180171900228574842599980094086610074713187097549900247844654012387042596102058623522752723157328882373366483968196587583127647451788729082434087592774330411609367569812330606587732841511114967727321219013450784263763570374117784606979414449731597969925360124441719282091842695283436362670843229631717552420608079855889543644692742989891148890222215171060987929137488531777742697580228275086791352856197604414627327772459024914185101095749501372025350340705519000956289379197012130399533141301809122728032882464611905691544905981549613982058231586613562498069358589254709498030494038820161505476369072413635348628863983907848757072113098030612591579374597704119629571173720568869493660221165635754648434179327090882088643253859601784635291410675263999919315002009315185725312351531570756624223150820595705331353277018017095239416317054856588731969976334470725702195194271919206387428849003990143568613141017057538471848628124852024236089467388175521784367862878916231758508278108546707499388292041179167448671110858879524891696599004574735067175425389038302276620596722441468780196369554818754571796120683361396451470433914797040378210151076763820581590796258727219118309829930566131659219951489303896624980408156134232119746865038069429399068703829064357077019195009505137409734285252368966031628994871204867791418226539733542228311789663355597818477147519918792188475164762491745892614421433583064281155225707782247463374839964211426318972635121719477078360428585018312747421554956927356749234969426023491622292394037539230557923704331108929463012910551960627403419440368753498302932493245924761647218651375902602703823448505590585399146331211946542270544853096791317836917467857300486978610015846884763518519371319932381386603522702176177838520304642724571485950913788669010747303540843657191221762276078221104593700570017890991198877033876683634525215454376305668657783432829012548899235125385953469112063146465640705678200926123677388016595288701478896341537791687613519406796145574047677357008345027963703274576266761616950609913876214034377847098290919422628058963234839075819215988958075426030160833891713112981807806686454444893701121764700663497633420409657942014342378959626723977363183571186059784217006972320932405433534552851261473934734359923333334516666385010769280666162445590898332517289509736333397851894615544433325164417296131953492745844052561627394949396419936264360201136065677326632061300875743214806553772609862388718509424741977039583263589832929435897247504400392326394427866427235264130604468745044457395661235271843159403787423644277397498679814551248213042024183868478323751724872391560595468551973139748058328699677786567639204262182780485856727440308899567248049593535242036664267556258538590796439885222297312744998274268734832706302586250327823872100399333893005101438196410178210333193650512527209635922038450729914176494962069493415694824654106869893368579653905104667696756547094850068806289639685637911324977245495754434773190907556175036333442070133712664474591260738231244605433853195738641051132219505302105356997087500305478254923140627665119602020813790531389315407364620242405626140299247303718316601705000254071720228878224558330628263233937081103730831867540529272998028194826030865912230183480902566331977072813315089951548401622892842608444456177083451354497457534116648684546661454815348739017915956797057814710360902170083487231042586326060458441713522764126581669123829831320837149766497622992832980079229895456951484261927216964848571196723750483853575319846100412519510938186885001271005827005588881524794312772269781624834434780399716287808580815941672861379107857015328541921758848798417874901064450613523186598303977196423554669814024065782480167063525039885266114115492129140110611828310808403839454166725972969198518756105121185944473069516809712045590203821033457729659377986913570147621640554513216854062293810050458258207876058252801721908785045394973502800443887147001976334009345639990059568459620199523849719923302474694329402684205794304747694425219235594446383690625931467298427994399944699699370229904793581663977177616951153620676200507620178488089627527260050903186541898655921229832871341734445359925500593014129216685796868712760381839417876889694601535071122768913667562672628956516994652811614055642053650179068557564175063393233971767748418646103245671880898962746617330545331269861815727736026588146635309424283904701495505880475283307960515866036222095255756900989376542061209268409142664101262850787089240679384019545633791062103991444246883640900682592034484235033388718135800441787149281038114128738751438043940011134674694788506123268328339982801614116752739043581194130448618921389279040690949652301904508910122442874336868469223548468887050116729339060172385042421653171239383347599421080142538178483914104141005150937792266972504477653841118818940083908280732308884524754509999298719692333551022977298031381427105892464517969866864761336121419763788559440029097014580460055538503666975625153532796607107587705640368561213373660433290895897848775937261685061056010070631467765936255187078029870883729461005478901678561237595152629768671889628130796879403701220067557092557293487669407799114823778713389768806794077064347740431618953920035112925139037572867093983610782036264632992095062359590384721277537901966814239234470806674104196937568366544486684295738698549503294273668467450543787727852731382539895542461077925527049065769000429045524008839666713852372288860514648933082303820122508943012225375720848490339347127735855377586538420092183130523910740420581709069010419212368496415272286595546156749770729967856782931509290745329837824421078522473335365579090257784964461816804590434811625270666827335209030255453317160802596404039314426210445187107761626576827827672509911359525945509585510606719961918601205353470032321976180548813085402995901011325586098517794649455658900743220920373432921656920165669896348026348529962422068512105980049700827767943942843821450686019867626675430546635183635240097386562245738429729298393545588269199074585210277248112384793599100168284391073685015599686374610658034500453273531697538818222946151664056145963060384519587252571890487504984742522822823650943913911376904282781974887608589522365871743942520280268945022966366577153711285244781075266460753816297760478722625432338947564748271752726552971343254493986110555155558116733409626507391392557330284033247740761757563245913083737754237781000169916109054297203031567751891649021033547185465525800892559716220277660186139986030696682675505958466882650847500121142808525666292889878151734072118737524433702466455193386561587330093648509853559292989455399922574000317113519839538003870200631527548425250522930517222639718742513329951017075809550131938670612501172693311938160171146202352530798916848661135614567035475474556759685907192699943694727717785732856363775962944696895309442852912964701045907338913684934858074252996413174903381199826156390947847834620421911036335198009914194405882819371707009513990382201357026607120845828215385050077537228809496386114557061584506343589055391216116726713553671629922661949516177753648824164349696252699517093742754226184509123933751843082447406648788202715451841005874222468194301175871121990677085762252650062213961989525378534530706181236057059777570895041632864815726133826801015598744660129939661072877149197980890784145384913218609041758503302186713536836749532992669971944215770356217386486765308883922624653334541652120137095431196985718696930576469233126164414107964794909187386309922486813332064574604275435774326557981589509561940848815705912835522120744526615867336416531430307770666774660614368970455010784296332762215021447518606307716770741944703423264547525857551196933429908023876838392459826542765785811530562533170492781385325452930804617750540335222325896417968343221231681992405499679914734781806515758229328604227755835357393557271118082549977328213428881210416988343779403408896564974128691107044735262042232711214519761796791441240761670956527894584150945014375522237443853182855723566853877154454205362357635281507501031846039796309506571902128023700140131442960430653587210500544680396707471910887723219372241642687615231276539628974993176710696117534687442218953230813105398218351505854006109099566657260491543611935876461847476415099240172473366785270029433392535481508089498359406271783757038296342182478507750096869944143723560133660626351747622529944093032226187411496360855240816032500548680472598487981045720454127849613682694872573569920397973911162904532793372292455507184532029575537856075584995567470278926862224259552108750514654545358686465415653785037650601061122800637530726003730252258195520555724591424542655846427231498791878675572299396810670480243095994861213981579340899857860005699487561040649463526652896009241145965137979140595768079088646239012120896334890356835002203686231244436176920266134175770919389134806018120379630020888719384332640058025523463887209867285038460496496053849686874312706631844856491666696841608925301962759064382283496794958174620706147923780649234161615871419794192650436558192219546731064242944052100080075156858595254357194778424530837283512934161294759176669209488562976473139116304420236617061466253494588566782823863886826393872473195746846044416959712165425441550027147868697862192412165998773348717800813439430875868868091373301543442208055890045835708828988874785794857847696326482563097819607058673428615642024814060408410289566490615613176988408623156503110724368828686508142026402591952124714162909591000746818020129268400830244264541676895544009201486104480758396202076641133703973445038841287501401388937243951083438684759486242531672239251971071334951463504155974934884199530087795734423788221500198198134283742358819186757868466214715773290725293608720194882568112976668577974017206991410671956936040097251015277289718779714456655366622241851260252415721183805324317962780649406219917107162813716107801487048120864507986044452641799691645476770280580963636349399573649485995704026586418059634823464011250789039381056930764925518678453959892980595576853619534505789493162267138822027924800965115393558348022191518902265848635214483667828135094233214303954066494337804916735719782558110018462334865102693294202736918590322060243914546217010534587251732789507569049907823604510417545327875473304053473954012265637350729923942207338673058552540376591715583701041778288486590632277973068392521832636771983354821180817052203549440607109839278177721065984834885011058947333133780612115924479772504820791189997577707371586921371417436324707181145588861620382731385762238563526522301791250346579611370071827268741953208442669600588553773130171099105542534769198680930184361006791040862097118790448821162635673426487784585334157012506414376753506074092668565635873498690428046454130429232693483905469007596938798919378103656185445515259249808199266942265705943681095188397923632133831457448503340934486768699871158585205812013727285197877631117717721435498097200201781991966815866218019843194885646917469006310443326201822418486470331244895346945254769725118422044202895388552933840539938872073210949232730615218566482877964030795804112578660180574374170802409630561647304013696419400668945973817315943258878724968666018814844045827845296575384652163593297706042108473089769922029335764496653832574088572690622657981349357396771922053428215894898308696214518841984555724182155209986638756095361385986435643940685952436797056625735337723866990676496797515173482923487782252425532128694589151835276441329608091243838204991528954821958206951370057892518982650555263493039683319990193384738845434277014011440092604572769964337695837340245700644716422636581269202152357788454439401929615764470479935870693823280014088096228329530879459501013873808433379658763467782522197550468562245673928969146704473531241967893613603832658664557266288287287703098056771403256046613386762494372199054596036554399263967074017073347166867807770222635730494901382347191122928660067683980618230708625634860264026087184669400286728036382407552704495685108732111131445733107612087151893821124417551783096915754406597047427468766218608171140622090518292428934450974868526790526383192807403007475930640397313235507702854752562365782810575101893910877767087761698873595665771566373752916543730065379327342597703322026600064643094942752878558761410973298453267965600497273196377187243105502891802392340263662765330286978255127527195644891353248252424539426869663106204251981467495472872096982542093922034095281507029445017740080538708213301555740781872156193975603018987783295897661286836272035198894380160177649824401284270269050874402940131980941399331253490161257870914262485058968522176916917021134393505332183088697653882039904296655275773326956033681143187901872382614230974121966698568620270555492920074911603918524256729626282388591119956446669476913993931207402043486644645812731552398819353573126778547112286653786565362555363992932792270140337416783305005965823357280765699938814359656386694439904845295840025445996781420534519749996374189242174214570625564320700016371395548931422019595518284004367279088633085134227724976692946021398665323442559093463968840802703001500991106181775794860303585433934435238348148745355455567702483040824085737823007045014906030701449003378190630273911856653209436737123352030359273683823193714281402605079466668077165788300356269116042491914899911349546001373800049914201498370937553426112704178091562684733966694613432111443738267398900021110716340608570494887389436344322579215507282246565189149493703289269531276024698386100983840771557888857986556150204909580333723605846661419640371387256849421355276658349409072979906501079099198740460262834828189344973885266932840137740725592793386930349937653828298921019229714768175393929179505334719748342605414428663507512550124559941932772017420400371463871914067845480396371154471421277018176646582195521442498127867429200026604587580346908760784511035673667154604073406752272109288730339889934358477943551633044531126686538619288500105856627787493603528933657613991683207013407817829924497687156676501245814526432712419274345487983469864174891538606724712900687280690912521610417689573909414004805369248774073757775668328722499690741933274622664956931922769551129694751816141988435845435407919970317590080531236176776584697528982189088610319971796836021241427809934652556075305090276491729327639800385603501359842257283004249591598467057666314972868180180620774694425970205268961715767217920431384434624196946371402188037854663689378937104034960818259803935683909122962733686514653012445644440292845215559964210539633023982834998368215894306382897163323282699981287859476512391286718798235907650406735830666495861810432849635208559923603290318832539321347621141381914938404704334987853785665224389079400415370328723062358625764725641462961604785536231119315789462967675947892826469584661225343813038820710441005621506682848661558964128732104305701255438196992926931074517209775238288949002232331925848443882239594744432134663803952789354415496311326280468874329984903806342811724615642875493973074026831500724399809966482987412238531684228785617048316680248461816065431535240471247133819735825038857737587663484391197921727464982334149982648687317054274775236302469637785186100891284585687844120015146255205563562220783526544913531840588057617880836497478344484891327120063360469956186926830258786731169530400477804428219387086851227818817842523135596870066663563095843104097180149099745844806207773992838091941886859860625213276824133696559831036717045968988419212384867055767632743473212526095458053211370647218880164049381289931909844034833425601312179582208133608769923143363389178278807179105459559388658933125456462955662578953295637845141273007010558778778483816063920687781426262694053225717529482571777922401749609378630941800855490324033919893239207408064865175114564412861109128632458804357056934047563071793403941475321544855177792247932609974073042820670097935931732289204118675260776386968688008864004900266451901460233081546795827655325051089372511830775973967080700212008520268079914123361508685607524074684430519910623919709022170433690301480624533781833538426237879726236168879956551392956306888847027406550123673923120277643045097337590081634612901869807808776592069665524384126918010587561067083530902380962736076825990059623995934138475052215703461743432196274060460408445657038074210617570689509517518197668325381801853149626579308078837600358298108151974250064594828932793539871310387896720878430142918224703763966991184366609324050860334329933124903900998810946400773359398551798892519398993446583637174680657908014027979121726017154639273532373474425517641315431723373997739640490458818154279489207204919821642214598423000174004869306958570889352415316210261553930925308328604795816359167506315649851802961642551241606583039135051509580492925232274262588275083725596152205086988904723195965499044486512591055440656090881239448239989241170112580113997293565175956963873949965574900592817332668301781616317632921855700458245045009562627621257620818512608081924920107509691210564639557082240561891444938938186212987962466296583848429761118349520048557582923820642517925683418055167985670252013656379959862354405791093314160906642728989546319682526939922570317322234884085958573593618965148824136062737645255492362728222565185112888103256283012065586929317527978690525622797419917456477128168759599522109314700739486586726378319878737880168210061689806524728058554380945801543862497953949153642953357241063391010019324256850556195311870880753617692580371773638898310757213899678670948220360508485066613563335518095355221108289519550577586489658443635955982620561066117189831829169260601140269588046992683311783986174250146223414390033901743023500124502392720436185196605034705661605880574693210402838775635253018657478823174922841028936141383150379782096728739010270461700111757854398674076593778432297103129759222575795165705005799973139625816176490432414142383337776292314062184018549423735118528354167874680302366096457746058270332689463872356540433478414339537398570867062507419827253335078375219668277529132069307531315400209884205627479172299481579257595825413947745753917035680529033323811928641460805171658213187726859206780259860147483695489004749820226623454488023329135258973306374523488716055521455327348230411091280303189188659110808723741472305904374233885483086239943879086513297339750070223903257802468451572136902607004378149396938765980567554754277594817562071994514892805416197338619954457767702119699849645200472129806223954128121525858419714496095280495088724848660272617817298065363932678812149772283517003674497175828149430926322236393846388072763454511376329152128774044180850198476158154160417598648322024251509471433869701635158676872975188576359158367807070323178976441872734518343020495702793179046972866298391393273152798320260245032730460359413394244316352003369453909217145682373216507151969135706094410355570183799968683943977675616298141195222933213162934118102386338005449187236455582204851758870563989759603860843345291985627073037278474773417266605380042250369178021661710973513329472519271386415352532177460576340902540727300579445827470246701768007614771351937840822708808522776946948065330151651844522743749803634222457354384784270342261648113713267560150642720148963359989422164080291084744985107774343571553851662050761118605296331641832305694201242138906424180142249175545364582488876992403877183658921671613506077855594620183283539484386043764947245303510764150631294887355422752745764706766022514241224006426131381847070739493905288303357004719321899256058047575006209120649902417309475136261307049730733471394583838781348589757590587202716191057725982144379786255089974003991643246251491870916539661871511821552816954116057209675629686792800699441182031617505149122466326708248517820384925828799436355079394022778963798986491765921492152646384444767084527416746668819972690960554783418805168043367175377493311464560110234036555166241841808715615319384121873995600511969651266010527394603043324271800416892599257579107781589635572460739396410412771038767003462485165657177415509387965693582442635986919086187492144789186919100361312039088806524215170896786845696123422917972027102786690608484401680498359299762778654801084810319292886035421184206657584808894987848554502207598866739600317265657770412660073323977357414937745221292686886649603072913422848279279422848398678766154634156501337791102342697690523921249118424900918236045237207450295572393951225469578060596262253269526803348745081845124328608318596889966940943951415498456165947269130074350631130549192252924342406783337289400580334016758333493224406075349400896283072284498520323098543385661995730032966687886967807147397973602899223710256763139509803454270433433200133331697631616125602661365935057972346746834190211637610592097545755675585900592086189095686991770911599632287493396966411569335711455022169339237112903549945797574894428411241053610024445940685058165562615123138469484715830404603477140732030689512219073940194286856522747337633126706255469792871390174154486525639734969707666520748190867129358593495287573242281178035598144819515066492408763384262736797231356450126303248294409196517244478783016420610926083197973730440341744033174139511388776992090008620653873499111947406460933843899425415727722193049211110170595096139848180383743077321330216428854073995048282726550418239940327161170821618349836310984072005691775136362333951405108418352434672812523935012992990918971943170878137521310982273473747311949884028610878491465697262096941351979822529862035547652192841642752480304196505738627603897267030486952333723242378374737433888629366036240018884219314079086179429527731857828872206158938268298214652349425487645699652700030736803231494663476910669960145443064302376625650445792894938784221743401034706232375024741744456882757685786918950762561682432509454869027997450892923242234171426783396293891001276377637332180817943656629303572960455045530202483323750150989263704608204617031327264381642830741901079812978768927252485679592645774023786291648103939358307608984281664819822117419525604079121918353241044400207691769000569507557293860643701786920618779427341807232449494596501988617231351630184861596792752958097378278375605350635915480048112764080432843669385649450221101628373648565104369837601111646177583989182389925347389932535458291550550965247053815286654849445547697695133753384895607239998717647286635152243267903450127165350004319634502480861294881175947299424397894991440723284346787221105051629021774608784241605047305570142825863462502572457103540402772799584293129457465329362779154384729160814769003984153584881266273323116196682189460484720105673996487390212743110574468121639886076537830557587898138090511362018465002383165314381366346044255807120855064388981234433875043503116481614197679631159177396832461297910372765042320710278827274615935178896504355557618956650386574735432647621250674738741672504319510995671409884244547206985765416182715740439541925967151436147608737251250083862534526626591196850018058908556171025845551293943491555235495920441013236608514808501789403370313272445714081711184402909191996338868202004838577092339543871361580715064714892506881857698455649541548714497207137128343330580372211199330702935952775649681013344992073100379575636395018131125296187950804818562036950511198672748323964277608369363764959708002910285288250714369904115521544709700259470026332970228719808684730917129521605499823578390988504912483774561965653715683959496693225127877086381312641047857428109464845780461491661947214349386337373827222491729766669854826116982823742909110482796827812376707628273926753060487292550720835902209937153293900408549099437772239043557443015328869022621969977370724187867738720402454256138737394040627266448710731051414273887026983206083399168300181862216496633969542720577781252057942319544465244426671263858536181670931567263570847212108468029397589023597279481950865014648063491442673027315850868309757567469783943779501340238909287028757915969056450405291029436836908799369475248439371289793005000912172503337621686376930112877400294618754333456992899911858930101059912096415790935012050590164527915856863804705215517769091520537862832046371552438629723471502623396104566649394924241034903826615023550644556818051959497973919666825434985108477230971160746423097239463936632680139030950217069481617335098727665471707689272883825176554003427056319966653577571407058192282768552517092134446910800621393958138004544954838704000602720854720908275874397137117363997144876434065614964208324487454657276751667645315232494584975677592551426350006956193629600700156023890054072200533330974423827306896140412384585105216745726660509756134120392187290830034334428150021215980083700027311832713478001578867015418033277345854174664051577671672085670119279764209399398236936890320126355392343762273099180311156289760710085844343657120161905924865667490550093702052851974030685046824299944335708854882254291556420125604341715754560279415174566171373232445929175257129238653912260715708048798837123757680301941862326537708428405766319877080620844875938032339402580931940800336675533032734363834433846029130114817411902842349530747039419798888532511641200465619946075906252192025334949644806017916153208485950642522509529958864876044898934185527037333221813031809748365048595412666080208124023744334775565082587589142012156433456262007122122568963761026123617253084431822401578184624225889922983949870857205375811585444347404251701410147195645483343241848701665543240577789388705758489143756757808753905939212582955602383837566864622398899006373449196929778181066391368547036794611206589830299037615276210835257212009768162054753451937102188924806608930299173562240831436939361280595061572283680022934963296804144872592817841722418802611663574842209050862051966959508088212913154106833199610817249023075094931208432009028259355321912182050281211606677675656965816073356480175530755866781195542845803616964999291863357306602183514624030583905857940445088561416784020087321561231191446523830561343520327753607380288867755493054114395433437812774938462275213379124722042334871833754849577848474355166935680237658869561149306623311051710646304774221227935151506134840339254101050235244205007124426429577224128378147733207021772882326874158185039032769863402423510216489944718861683975942008489527006707913010017645720596245248518236199253279850986953437583064804286162586312274453357823027030230106511177926731256923820326096043727358428092491864869880301613420782775570460487040545227546423954789134066179835550895536762970621518417300155335985307433686633689337314821864787887711469733617386577553980108544487980670513471366488369138386629447678272270136889843108195296563344272657423213569291177359932474634983129339157799083804341055481579685679595683287612071282640002600872112152880975590322757607618315848318068793514528692381438437697901103856675600903613190521935116066285674165158535995277605818620077977508132351130744600301147290747725801791200916400759194341841804425516350424131376407140366915375353641081525800712928907836954058518547938839470760815304230377583908776393528202125457823377599656387101495920227693352130213424458520187946302740872751851044526796395278570375874713712067348189241438873663832059670717511153389789227837967650075937832206658527566877919214403446959352658944371441917386733643440782234096455968547658990037181026657326075284417791702449384787878863548144232135229100796220476388133410009857080504097000881643267099001101849535957972699982746249375657629947568262407595580290775864362736422168728161729103291255981102387100462661467047530633260041100808372666007873995961844759428330768767477473023350451376098901346285323248370788409795995500419402495740378189705241187225415062167726539372178488703029798795638221483361625459395301266685113327690132791589659714793522593121343122156750474122998143228043226311652105471299765019919088855734309380917374392363880213082658659257971519830273174172758772054340038631861145274386236652519683197757868147029437001479231701786229216011997206888977230295094851753742518172659371606795938398350447618730156011813085240973885952729474546359075536154842768424132709851570615552769050675758428840119035379979060543200498379576946122601107737376164389559481090461904225464369336345464190698369531882036877853042397345608859273460475780185746531718231184275592217243268554142590784928042193711151806865598722210503951271746486584680524637316381606358647823124062087189452162736191838174755852491177430980149385150188128755179648574157670457782445355279375346788201268488892332938207299623840113678512557784714891161033899040489869817996723811407439555874979622796348575863530444101026312049462560545980369281425262244320585292460572656135326979786824083266958513889273596436025613592850658076943200206462298197151703369574869187587625343972478450298481116339315710189320183168638708688591231364599950373137616684160138577618778173930945479342169544219759716416040971068504893890525861255781887139634703601697367946999178957453608665588264736654646353376630030276270754271873172953903045620569385053468664867877769749835748982900228116004440135977515509939340729086118935802368238137575868390401142905275141864727470376099330568481168858451479803394817062493493574241836958247032852291588035896611854170344298114024363207314895572925284483453884316322709339901609326964397590365950811319376145154168448806136324308514118407426450413551974370570083323741820493554902693125045398795190018176989539401355674605420340164508302844281625573121023029668487325672816550495172754644485311808042686390318800863504405874576912292241095136283681561460082080553281147212418481913590242675346849415918712346096869037338091474503592281600684297161864802317397295399856101559983799260650463735813300598217181104730281007289602413421449946704788211512929525667533287894116822892130561209831780582223619093247373144424705914469486323486833622029895569073440942743750813760686505679422428249446530404376483033714297315276482909596181217995708519354771481135583547787078843595382931444041291520199559955649965306518782700058965663010695749346909027147210929094412460015540301530103396229003545228478948082240028238887781308245051896097356778776038425109700748602581164835661113765417816158488687977567299880741431921884197136244745052999819066499886827673239705309006355901020422944767133097332981765187178756265462640141375209955099168078132498934331352307343158919238780846784698592306969056870596431685360675261103959059815916200115119695644435936486437673395870875559545639240640839408916098943537224217142878569419992588248946211332059356768595657884664494646318200470813938356086910408990806222933369572612886393693188185594068487510771588579544613781613844913279332690414049885303681607185979346563056699796122767907126076796070320947107455613442351222434435216136519964735436675545199036195200327308959701972224882604524323756862684014996834770207897272110332409231996304264596662173602849510825244401032053543233442528722579426107256025965015511062077710832320077778997637971760695517704755186785079163869713141019915381746057394636889061164587385688834177946812460689993835790296229905840793390416235144630635174596595875749172913297400005721385671626008068669548964000817843526041064082376558890150452818654698244795439004899144301007068808281850112905542294427528161838462689656672836688336517275169297182786911710168942281958325724351411003806756521602983151768187971234677594927703758854057313202431147734820417657906041786927004565081952804812128295375250535679386526167512484982333123949998850286574572809025322578677507609542723288071794794242167038445180904206337876381196932406915962275672794348417403758268112723827509862721884545198234751848609453391434164009457085831794356215880462012769033089774028468600014417305498511802144519398210082590875147131573075880566514770619318749937823192628819729842047782767378596022742790467319682574312933285054685160638533057279319010872737392127403104020223560191356804232082673492437068778284468203853676599247804872426123111577417266533502328834558029987244288356722383072557306560299285961461519430012091314608955664766018704072718271119257796836444886441500946252057840369421296782056358187063941316088438896910302650452077752751139029212726216507166437937954230867954410934378432910017976133157631115821804164445870005736011847274943508854730388651139139644280197525004380845079061173175771293195947033264099125712597762429260310761859921282424591396352741311247447545294267923872085884252467174347057131643279374688622577565655908335811981137220087141012655160046815908048374010957974777759604720864041737205017771649031205488800821178419628594623080908592578738939341374221993423309635572871128025597555718586423716455807417524672858250352318660524197417944793239517856402040897452727069747461362387810253048484206800677538599457321899333863575689501907335041558884336537695768831846569924686124737758835177496712849559496568490984730478037200899257327540016074454584544149446456169988784395121161915866959626028823578668511031252495073820070251355628443763142921948008156056329635374793574366726710295853312115876794995956463482696099041842506783885375099945318977112231606842856268401083669811094799704390174229998183874509334694374365348013987028380224039731833714235410473915777096231797447954893932872410147263931759970714096247860874088455651687524130165959648643064327606524325962620775854774899243264633987183604433663007179434054687159055820272912886213629029795225126246302454966163868025369469904967374417848796421189907637079284040129760635975513937901013431791937226358442010985539104933346380912745870375699438716094530609590203920989462603416126858602091388761131641557435562740907249926441281439933171378787010874996102712250462914255698999676557968531915733842468430764086240542644729178371089454605767674706572484480241611708383350167076765409183322132235902477850521834273444776398132680071858842928314736873122874709260479997176413162664145570411998700601693581285623058752220808376127889487067978127095001548344797751641363374036199047846496178794518339730191552817669404236727862225493436950222026840711964540257936406594077128573161321090969282275853062148385015898778658760495824021806043674926390023004010017412757058571889834714307745458301197675168324754119223278376666749213012808295957500859977113724401162622304348013829999765159664081427466175061184842634848657735051927086141350111086394162817522450116587433444290206311267159410862328211285660836377855638972503907770138021045021389251801471222345724569970666802867196946542919431168138984791473514337347088840138526629766650644475150658978266226438995304741515033031411114053612841212223626032830174440767903248205373437903181314783076413682621259847832040140848404992084886957161230082970369563898653633771143909720310432100450400043856203668162668129696854437733713718688781606693805441053390520349160517612919682736958919291197765802899202812143419806296676284180677389503617964261001528139616209342412200061131351166643139849971857230658869161981460175434878207429822776855387517822432130787903511322843833189173252391571578002764496251734784159880929699510898828281765264074268821905612695420333360441488003685590197125121720290370264972009667259434920029248432449433802870606529669060547920498956515815442890132125880864222341398516369308455739792261529128703633958944719931614383523924640925418251970203201327920061586742517504613078454275904731705950565024784702232779091610842084313568934288197598407561102049377194520175126344558212853309992205110822906932058672796460997925653699383533506549637680914511354194760841767349881672164005257564176262473097965653639175880128136229576499563731031748313215005464185201857175487363424261326834170975536452773018804601348697864261654893427542110300175100436394196378936694895040578121913092823292563222950599378480011022024872539886011306868998395400423424464326081254329008983290796916824715115851579194329879564430131071756978469599214921635264135223733165675225312007075330788383535615482034319512129113958306345349364656664408741804621340834062719882805463909349637674371300833057534671066420655730127780029933892484015584981561839021458540381722831866943118581904949525268044821097596745679210696726568912747191638606429363740045744684827000053435176107757686935342424684902445626592114463178244664232553282388888088788322040480283056107173202181039243444933186532149576650248693378936236486816984017426402741487773605882059054141962493563384788958148270860086103119453131639210870481980230077339134611853384596567299988036408586347867778661221236352233940026248088651682936424663414874109608931288775490144675291557317547949528976510892948962064554550814862773704625781078255494981820223766746739775455515524433680112803374702997979360538351666301121535893333563092520525935125758511501072204220972167573201692900468051829747323991655476301877811088312629299640121091343707078996464976829572302580800017955249186651501252710828369559830336699635560836732748686601890685267697650749347241658759835057657722835547001696841012611474539727748842388083512335473735600473793248870341576708743765096040459992780123218331167670021299319823258166665108069947111551299035286213749654882667372412306041458562722414261952976175003393936531101936639234227793902387828175398577207690052333505859788028557137285442938669095769480338213621367349594553278341410231988991460850452168356138618230912948176381228081082946493505012231541369766930413571587937933571875102982424938098275015165569353908236925148302633992757363140494671162354897671536863166024743482548562716657207430579466955227694730333869276211232712385370403582564374235713514645428342171411262936888372550133214014724533902875785578272929973015006364517642109383346978893934155530905472784777236110447766654387876364025606390172255865475256547596229468376341264968544500607188559081793602289356788724139973103310321224731080861412934286547806123856407530300288838321894878801706980018189139828154372960197557027005232926159480515613267506859253156963746880338948364236367681892806455097769193593891142448094553246039995435598715821572579778797105333575219306379880148740090461806707641100838797946809836950662792145623938146908415020568922411025553743442287972605897359010305177191800407095221254900954293037066126827904072700580063145781782924325170348942137890840201735369404238164371640973163169223414676127607465725303655429353331411060177201773295510158734882963126899383826388503230591106245149796471429846479265576281517229641698050358447089370667895024423662909352515304219634746284261828790381567789263113819816760089176098653177993736457906959881786394310137285487112514870454102674815156114830263277663928445212848096260477396862225043049781707692685960278988088690405864924332705956051597272417432655758462118078583925905048630036208429950376251254375519508607429747852904269586727432845164253178091877371621214278720661133423322624024700170233900141936442499358932079599310532362924855621658670363255730177917442429547550990039596217701982055579993136385349305286041850138451500619179210956970765417872088877160898123450079764655611668744069688196955773614244582690947357177102761034958129002642606865830004326137370824115516522454139961261314691709580362006181079378639613710797923476499158738585505899540393943511965659928991012954764675851451242623560354144901893100516900710702066931525795667033156139532275873773861419135459107823727109646250736733015904834710027703400201698849456409654259740226623636035863794633732755764876735543964047677667009777922377715439576444061144671390595873072395233184561758340338643436680413299892679553577853017303584040054326424268657742908309617927799686621637414835888788796957549089319512345689884015695031163695943357064192981625477539334536349941798366861734355748420734857106690057415760280903695597469394141243550178809848968785043167589814470302921805299384561984393975540855694051899298949318092644851864341400760921816047459203145769860328007156838913201768414454713919781569199768448643382923153457533191991766186738804263895071665665305051960011573707617629027444946509284318328069874232036830496018415074808671533318284556220935246727110281821265820436599947416745995650747871056273569602737909612776516751127601406767018330743838519502583424045749147202091780638351588302808534697434283668199896333767116954482295561372560279303855540791003549787675775618793215482864444390439710779453308127808383899739036860403917127283447867338689551680552651141787163316038096390972912522467846136916340126948805499641791751116330764859945386301383235833745735804196845777692841396603573806358038733842406402863822137689515917850256205726838912901421112799935286423171529606998953421593047184310847266111841703908327729700035879225452091124692468816699190455551412380574711963134516949768822737655332812878187232003036977461639193892824798533112429394130129272468379543934487468028554156326137056496323755233599144110672927600151115895189508413004238136045549738327304788550928484575284715226325857490203468968221154966843337610655779094316679256333873463600439320440505518097687101042144985940361103558611073991500411446567817257147102877225489814688634105129046321811596819368886014486095093813569404398687271577505437164064712596178789494942385575875122464028628898243781155197737144577265921627898570657468611163894885888769897825548738635699316400618215187539296523686000715762562860801939337226690787717427553002427192557869629114753933787137611185903104973078019765769355012597316988868753867816652677844122106223571927395849154833371752891133579773291293776028494252806554004112579056373857009146043425606026531163786090653987337426556611449424759538590484887568596029502748162309421953794482962172634990974128579750676486139153628233273151216860702590886513651391635073164113069773955776499475592926177114061750985846393789324982844651956281420132968355818675253494973294272105642938027443559443572676711059725085672310205599900655090198681888375776044122818905813282211002461338769152963173618265306160021755760165532404827935326844374205533105592844962353938336717647577105403227701354320178890665060426067941521732905582761095058763967595244379786497849897867675221804780843313254235632296448338827895850114890964806604063309461181332134941718941813544050951271974408294685342717870910284360923075366863304182907821546596516269681115498835386863043377673090954025688755991904933129893233050479078252365683916651121013378868017712405336975742514381341046163386310557080534632257922507865681076724503499490165470031327537242027513915381423327301750081819769858769049025557467234055850629992305728347847881943778917901062616381659731880032324589345834964543054942625529495404263839950620787629237574313024973679122838034636474215427366941178340907595587240898144174133734586388891640878379299330480202194447492764506908631148985380416394624604904926201256586801881018640201906587947162325717204792958542869374728719606037649936582711829724857956238385184505020183739500557679790467139068106740235319682152494196069155462761498036133179069769158643567636837191090801357063579653597382515828585424780990199845539944268127801546816793892118566224804541482672233156769809174275910922008654777363500429592640589469235558555790430443552928294228189626115948231968899573599381928830007002790332928011724938368781445983037422422453333289467673867921130963604070588117340925967115871180382251999475608235605910054111656576127899669360207336140094021678855059496112276077033687415335042602862142214385721794800877365721975051673106403051777359780552679462516406091541620716114592486712396905765622490790700984929671266168896647048822075222726593417953039340975899865940494558744512979126886710748073143818528825090676015513360941067716853352022409866809462457168474268337010221093762661697915366677493581626463873609995365415899229398404919347398123004314064799425170690733930185554538860228065878097998954750012995918426560122121758298050502330493899361959598380871979113182198540996715017433275933915084529065767943196898027588153826889533086282334408311081215060797230676714745356182349673011901575615660443743372863002924258048107638020720970426411517086411010964485948967658601371198838188041246900477482824902072109908069742557474280165016711874170424565096831416404577361793329731415487208272382569715095463833837947200909965776235379500355250927483671012992970300342726811087602703134383085062055608252119474124775536978425738967629332077392640790858142686955152423479795837783245422281428531169556554984481675270659386009213983541651914701055351857171134864618971242471123730795978783812388201927329741282840761474465070541908009040885189368566514152756059699953550604891039618763818375181940743026934741149410189211879880698857356879325942190821035835505994052113392369078363179438891324427613755416615413292559949623888225030095598027831257028524311334417171370840865902472179097776352988021739994241035480697462412598342473026703613295281564388527642745288525348964522423732494639070059900751803840879480716724421220940065400293916991739166269679349860454012170365227443045229953708703504363814659410443132040192996942777044401644961092643317669773661566670296513178900953138491428039479441743742006864512234550683665958636804259402621733578811445460400040728980475710729744426323107824394182463454809138773730402199134250212239432762166590160489408639029449807369862232436671923259203688352219506911317807116180391916499550324610826707977346925843656407495230633313129005368117386046623236132285938465879863765362149160357497909577581791461294863953761314340563836073132193145885857491149980790234687909092015565995811867495731033847999597359680653825598853084288274446989761610460768864407550608566044269644409680121232702221503616497196431349891225398572760285494972531499658348895693186628939133773120098116607497984952187946267089308492805362042618403901880947424470353770407016358501188519389988176711380371226290351704842401772720684511683318567666925282316885146909444124791812045827908470719295701104722917487284642956450287978315072110525327638350693548820680479053686303320760655389515002726744113587469411600868849979472029919770256894000684357494986850425996417648065761476223624682158161613425274405363540638229941523572196010874704555409651783794178349461199343833343729293893365215071580332700858150800083383149734506151111572225451962430948006847872074634082253281350716726981383244912838927962556216785507901104359299558603857412084128353572586939250936234794065144637623815883122645402410104996968505864587810378095840650023852890967607823995455297569512321145158800489659838197920156193254623260935409764999430966026014050803570649361303399053510063707094527749846771202660617462158678284655297359223801729880972652738328971902566525926438080062126633243155138579517589771315963173803005042371869747557614168725934411302400784916320047770550422325137004830302927498897215452547176838372570549654133765587890766076466684600641334350388446325927914882221238124814325254815087051969478618458890232895526323493252293329400132131843450321496565972824316180682814507445146514628061926094705208159687728114057152224386215045652651914844794819453375315193368821228538285959751932131044339621055112247663472295842146688052137187234284481354573805378339373333796506617601526279610754803962351125770267726209669417543646447275098010763251380558624766700086130435783560233536611768834292321108900258000862560025694181266968379065821862848289003321357314182446516670693964580409484306880617523183497729822394130087137708814014554084452615889316706239710483892174591849885750735815785496292121082590817145334222782683558942967893533670735671524871047360804228973520562419778482999319913166369774455368415321176051095679993187609073001140119043277011323221578094814281620822874094505267253616592693604062905669908647729581528850870420733808595416135515605831657557001962927713512641925729788805118650041429838718786661992877431161920527592969776214276389478128259634743090593008334299163564462856063004904999724758030504586753398332374426436127684800988481235852578361576353132610081041581517822139133419938894975870333970389191425553892725138282299134025810192605460213262912939233394639478631777331101608006020785705066431306224139190808559215748340098102038686383030475555411323043744313068684303489770058971290195527488840098187652101424304557469025811844979395882576748977017002081767266955890578048564932567680514842692674985942113019549827147001299363767710749258656896239383375526075494869923509420448434566350747200433150917898295955150336711483011899676316832532778395435459377732580226969691242687171571099573036203331081094940222321870883418488702009033561244412592635801621856683543656024978177647710802151790479503732055315240563605637569515656630275210554546595033158535277853515290218350005522912579929994531055312842268867122246905915386922920543063049031707047347798619805610247345691741231562973797045376283213367968639130631225105919635513496181130724959164831362242870988142805613637867704861001541924791346124303940342920442312451744539010082181660294768375030048061526120228561287863008377173125879147833758013324969864318121349627259878558356737473693445496031369578989356503741260112100250844000054698144911486720728505209387763982998533161010809144912204155675760291435864114912241362782732906971857352561935607547729027859250952478521020948521962810465134651933406861778805243049248533549142367967462001931811815204574320990826081265851133789051994116104386734839038227260405353889527891983625024785954890720238775701501951236821305846175416687803254985046123802170360692319669601818848709580025463646378306275314451939691820246018032510739192396069141040432291644795300150087464557610237786612441138970228452758029336175021220519103891607167837219369770615169678417620293866078952304916728354700020654081700750742891583789205988987792711954888356559880744202807377788088358904967908220205588772188442973351608712267572027938133487820925995210672930053485041352042345012673495793193663810416331740421083328736250310097947642311466388510358139004829173145008140403895986241370700344242934093721057016117079712575696169550018733841301293272887351457413312191436081181001249601393068369659770765301823295016771516849138759835724600618334254207820340075960323074663944985077123280866591495856027633975629360978163044770023176184480459464493281052263882618982139219982604258252752896212571913767157323578747353328587744286075289871460595120828838193913868729747038441894909227911864841821443293903070104463129022235089038877485576382784792331946837672033648008945418878185201174665704742737140830307615606907299065228012843880639568661474434167218179194247302993246358732165669784227425781231335040272286566461703038219896148392098239259447010071806538344263329954543761573276864445096876368367623381079861891017010022844638222386870232560940350963806324811688793010237281385620615935538911280589422820147248720196247576950376391173041902109432174134921739067288692122723716574802956847053419449461859351885776447439355154949778971401745536074138772893251250979560704988524423405117242794098765490852780536027775909304379293829920689201035863304163196190429851942673893849382405193797923776366049423619465298334642279224965071864144322332353890950212615678369639609585938564678558574220558792696761071824937705831400952717499866544860822931272633724462977840849282319489792775192897304576831431832813805606353249978263001723842908887495543752832256624410231839850762332229929024622038273000340288505573701761086577944025103531660543105116183920756144872057160922146575092598261552102655011272076120852664261543231072993992581571455102833591676129559535469588865041560078242194600162612150089984949283709371116624603486563532163602641681898802492921877713532842307625708962428251431027331635760393189684333010194842054389393484687087301771452414930797942554761061720194275529608954808090444837735244517559412551994945562827517329537692732914513802733603930321020801407169673336126066285505095587105355162002456846592213430944455027296421998158084433424170902126316643569002405597185504840950346730700741659651102811830783744535956612469871723902501462229922730596337957830160656773805612064676009166259084402969970222394596458049857398473207102825973614753789588016752539302534738149365848847291285477273959778076408923351634532261934299059395886486357300753066361674947887904407790561696475936808579091309724569639226722384862795702040524991102734905775387356434186375619492323835900576598846585606317849542992305480054764794217098161744252475622248277875996749989540258608927069205374942082281473067050325978000898808290596520571788068578543891064212593085567756027339238125305146123986598782699346511585141405010618510392706236624253569263234318395030188816740860168264576252901854201397276835879058397542544776623351279673780333916360298783593762682513246045148581178361753565204282843273017403471114700569739253896110450665677515148709804530173710527432553822287590813987789180551964954989208093488329305441301350511446313859087773102955024070982004616484564215306723555793752506371502570914767696881072150813437504852948302223369891235828816811859320795373235410257361874283508206769559358676594610594619676207262209190478086114558412747889051247031613279573101828017194980070396268470456585005318276768804176429676971484731280345624163373180224739963021455933019809168481588628470793696540005033314121311362742024462598745263859510801624261479078829435597598510010084932152357771107817642102413811287798884089974486247756936736702535595428898411479260882371577107591632962737801074601613117704892057264614775969934458148657274088490706140450670960491411220175819618208138423967047818095367250109319963932649075098789285325821179563379395082139409033257266353735952613647200536889680927268000168036656271208436916455052594234856331555650520294356066664241887915410847493655540589329574996492801106649582258372619303085945153170416149240501588004956251265464370855450098020880406435506635038791275470091160948567536047016450219640526350207114896876410708123410535667420245388627561946037285092932630315369532885314455340690434112212908892553707610752523117955381641957851148537821208380183583378512779301076913531086139624211789655257858255554877992897385040893570692093810903194211825787330606242211940676688530257305667895446820266416187878839947463046962636898069289380485566888271288932268675133092817947587865916649871175297342890239805884666166022276279237971735482304950238964796267173402550784296636918271891635570464167391759198158899920993754176927536913464901576591309884261624443648835996731218452858307033685568404608572658805686121291596551664913938221357524945995170984081119494493873681345941524838600672512019918468395447047229664035271677650825214169196476723565334670293835449537499102443900149478971280312129365840402327905845859636569111641661741435188028897959991166661540908805255590498739887572289993559269284708966178821375343111959225374931067731692690035873276401757262954250919998821754306138320801772052463016833622494723381734799573622051302004946915726932421919795125630682267743609838201789606759282285436214585914983522376265656394459284068431686231102907510523529660319206764396818174851824057065787564830628533034410264221362345718809067862384903875869752187684322102038125076175237627217539884812627489175008515081110710023579591661742718596664638680000447070223547046581447882853779661295130144774272217605796106562275877920846673397197649276626219550852044142009049688491770805024029565398536772531868303306471728701211507930229166677744415470419323740773413767448328487924500986415671247067295134123130281772971512489323680286709877928208715135637611959740945567837009912206966601627514595263280367206133037190298254126299063848694116447259963860936598189258057367526575178715770066580945800655515827092523811299404725002360239429949719856356762427933225664755299832632220312016399538600258598895327170352612735632415025825916534418997297735655742151850186244526180952116058329089277193378203044607659337037295998559838484245344254712056339193854033210391989385761715951710416914516828510637046499364058334391333862708475003778478139392574914601854690896623929655003471655801845024661222805229948822858845914305159534145817670543917408558627970316807349679579838455396644054284200918722764083048687679113373524642549388959746763365867968733492564401178857465320013400350102446427982119296919234577925340430353160952225454328565551640757285851641947691185547085552050012955947152492632484857636957467484723548538394819174070104135364913888861585444970962339231073352548491312116178143685681198632199256898652843494970166696574702981907344243471817720433671263813003089931706708236081837768644761113709568362223323032055109429670636137022165186723543314336526721805053816967589422830603992860200585688943454874059224799789585029429393266703922115222905491584061607408109231973981651990201878458822440080027279545066227257547156217301967098939588921467755046236495601679709188986941121000319960016046384000700702799258677007269094679853762127228552294761675744962755841542160899209131859893340407061960191344578718138499421094501329335251383312414939702287630340801756571934953183657209641621642530912082808236897062147377141985297950519127646091541038656384841667829681387014787776687637497745695957391155588097337627565712065111501633523616284648871224588936669504471484004929665085134071626823297869932177446859616007529195597699386471942565257109912585051398782050379445854491710093004112090387384150032204699538512969367428179525213310511123022317981986485532888351407782399565137506856931336451590805796972781940096191878008230161608505365255422409429522428326018862402994425316569942603111502160737155352669604696080909594073717336481873192733853850804425014276005766121334111273204153446255788457209149507024587248819449380649883376116985397843705307218273022964766290151538387013785488463563449100460355714792419800432801883302425071739174299432923074685472082766765949986175022343752153428859312127786142361616468335421622814890405574938252895351794166240941507157056035892420584163834100221177282724485103821453646611750356317035374169421058802759587001397661547890721840080640386239329628602737000916477047731206720201388581410687430407681140644795670454501510982340499756539293723381621858793029239252535855965891624264158430930941459253653345929719526606334354778801199471464151139223262261815169726364430507780716445102124464660998936788518185226921146793830824310530655177664841073572872413175443898719659109897260053460977224995671005164659837510103411932915031796305891827259709799668614153183449288347712094503899637664350138623323337581359268758913498270852719613139688219983702356652714173353129620218798343014231565807422012051841324188633819977011847469931577018438070891656903624190865074219691269177858163490300943977245497159098682138777750918092412698070656732653693953320570264509524350014712375778134841947306546494635853504425097329341052974285953269009555353786515561992824529317570964977906072333860179532328486337819273012960195282674434469257813031492231113776404354470891696846573868431305949042516599249898369109825610025280740132560575833603400769231291079728083998425184620127620835712591516423382184295795027734417252252854554240491515439335571972241002103246494043887514383292815425050808599520975713300400584857113906269866340761509048508655369828562027545103810988849654520541883322812914661815380513258782566712842312532469958776694173641447313191864394175350406392650590511470946998720214098793864351813818360228243828111695719438650022644572930837499154725497997482919085334006575494638601757095964526243824009879834566773193622156976467003281701281021315616302327411043262337907080109319335288145509079432424933460127487796735201293100474982503654544540138655393037454400719208643840912522212772206315367303657931782548904913197269459857913974066735048424246187394086638396772228865739857702035599544860867551368198012981756202573800498806762012345963253365494987539694933299493892006540819177901552730321498651723526042975708347861038361935032712936197328739402365460215698829261579247988168420151225475891592856651514365306545159442303261004389424866348857020254804549881614405974657909545727342547104170573278134290684231662013021994158199484165105200916703497739148810757424652775359401023352350473829604406483845165694480528174310883603748099708253239452739563306073018478469913548535362718549982013810816930594109952550094359042100171597835704761810476212394947026376530274843564353464411306975022682330566946488383633350227290163877665706670179756579778147702004510988517561481034987984558376926458587805328098745389902569582797322647681067688080347725890551467882343608593379155420813447786380941825067958184095076716484858100668323091737253478607038372005563700817765918361171602558648030186516610836574500381611013984671156121263019039864079168253649689917730662985784652674176658225119178793352395297459433989361382319412533038487302191446114680563733134059601213872091896405102437080954197850086314901267644662830228783661468750790923487816862930895578335566533193488152844098473883103535960634050704669182066310048239124602938186665926508602364294649390701783355632457147476174495757923865923800397252208437268396486971157503501656521102871965365841192448362966036442680512207561841257251735845373657801111118612869911224483009274171368707822967257443168707241524804337494607000011293255232536810587891545939529702503897131373688874298964061649808493711198261879641273576675287546037187598304133142397311175654264659731959582281675714922908566302583851019493174651774615186001567428782186467081056921481020866893794014855565806738245217495525872073077759287223968752566316243676859512408989233665863912664436393366724662656121401098660601732680377103786383025268875807417752481987227370633715878229626553348188034743498610189503399292416468885788079149947486748609918013305781589467621355160836768778095226891616978978102978123724171728415157291249698666601056968382305377860497206857712040555943783852175114145503706462974740372584731771211050058700653434075939229708420559935106075463295888263108444622989787029513136535692483472450139238143266809418391714582373784170250074185890256945397438598317300176313949135974393140871995439132430021643977968115315409262873829701967809202836865040859159376177576151092599418905495005714030268288301462154609467225665750232704222635047078992528946817374557117432316298082032389203921253950444863322636173313888877228987930809527118169342269557424999046700447308916362620602428874456547104985834925832399786548245348546858617833752480799850633660637567819970981370107095954748317385374493924148472737588504528844014760874462684563650818315130763786341719504303616354608094810760682556300418654878084463768958295582183604837663473679068855090728268006658419971617423518093305928265032473479534211051237179877246346245890556415482999016772015648635946397303521118279072445647497698296994979523210611588667508830483550782065593561320036012698080539218276438509969432552819033160594604157251661442979334370649908169417689925854650866887869694641829568438620728771196278996582790676333198173182698482607150249463865682417653826092274855377233709592300934279327308856423615613340244621899494102006947420443432884904352271760723683670744268753727951483340883479412380676785769104100897605468592616517455894536423350296029747216643974371532587927755668445117824032066649084753771860744465469641677816688031066416614986856929774231001753823215859515235496654986871945269132046716373452158149781640196814021681937860189980971998225740909985732928605526114430361005840924977841791769994748437370287694569894126305763507946476793936944649323051482857469448389665545968068738000838068556357506055793459365930577594985855768712009528730465244090124048003693217386771780033432602377474605424636600085387251912998274808478585364434175560547509466525220878924032625211759737389092141682223903728094074191789283136081603919423624495375846125414895550440045588713196355683480613269945094758948692650587274273851065950638109192772574899409828219679590427268830385652161733255618572857906726598137480590583034336924555013502683998215925043657740744463026197809002964099919355839263891612257930886611744833675014335769229315296248221472644921120749071737530780585480268417697620478563711551367151093594066471028919138705132031021224663431854140250702184318996866222764573101616988273688316872756107923418056970926448482350170646793519458575076127594879344255288995734145160964754461217036867131316625319321097153866963392849455287242146294350408939320961478357280682317440907503114802607903941446360420622705703490482172647764345674617806836613759537163663012705326483773442996295883089338344277771791127373436951524862083379227745020319053870798376162806709443573200776226225318921690660489928195710578896220406979528723471904768832870411697469814872528678393082114608831653459813451569385434892598827915977278953814412088135511951044648213884124404131792323740057211242039692827546422107305581648188809821814708362486515884212327095341412832523790072951803240021852427342221207383125702433360729947319787781528663743321063953105793540360409062434143355599569353751560292376753669608047530795145592629009777470388179551750991008270468323853998636413844696485362570412097525907047732824424307014100591400238390519399746292084824530396080120177170614026307151723254885303255155354887064598348355084061386917406910769376819038197377149585310191804718237280243575886850012676405139769819165435317531491175704979341137166101792133996885665024597099706768506349270491150386453824716617761012511926979255717457473631325241815653430281741885129911018777807049008975309991290313822349985236337688473065947349806245244743130384046356972077237089483391844132724437181901474841108942947891001030043761853553659679132563594928646168345537557229202551053650064076287015804830318409151501089795625993158123205279075823323321883505849044569727820006493024891522913318638407763272824953645982829976232688336909118047662907130055442364367739228834805153419370647337838141186653259207206840773604669368413222631558135507824432790113601605189653429047655039351027254219681093101706959713352511234575924812047799567346508916854896268996792660539543655653303157955278275065626902730262051322320167076214915573853498695422520340843781160857289659195791813945121786565222385215973018382609171290987883541576155822264652578463003089365666923517751115131181046250097592303328758771019917393315883193858643680194799969807254596349764024139467911535035134747020733361220264600263012673217177607014312522478718610713132777526887773978923099949657135058415054126929045291203079639622801671460642793607473425431215005527661530580777343982256643831771319596665882764844373656069689353822650058850692735306874308545137707412244647612429878914240093345071636236735848361395584375313838443478011168930937411961649229910475976927670656524533262660713713328565226226275775845817726678239851871875380745919265706689323593635532973954866028436751936914369634763610715550144752055450274510297770406642372645462820056576649732606980240570587874111269534653215019249982439498552198610800119664559248420489807897903675936397771307921856672100488386230607877747262660215458236992143718887920134901288767009037924709092060604944832862043972504610060595922408727576343543381233017605097406024717772159459151727767559101236686967236104243905233990237550630763466406347494935898396274731778356897544619405536069192899814215777117525533192517089270120010770903578913069191857780878121375715765887833093520023127823223102222408656634376885710083935855377968319341421776375346208115972549515580209098967888594659919546989102423048192894477721369461201805442469298306747399461616670894952312951996267472358302490430249667052479398468294558078944521723609469779499656688790338589123683529952570894032603797549278309716905950639894892023810520776869641947438603391339635381204941202262162817576211065544369365680016519193992693948333585257271376803937759177443598829224639015000497738199237535824909551690000688976857881167009662988451468691419960536655182137228462727027879998603087993537109868068757996886249891821240726285360217516248197091322622099781477615446767105375958746992535908648394650554608354998328754100244018293495061647317492750449383817636076718834061034436490750484149080461381259881360582806361102167916236809120547851112521617479475350960096669228777876284400438960001348065400256559003946634527730395614919322242854451532193851548234181851497777011682976556443212237293586354775329442327305561871140811022289780595958909153353620754479191419869707988251386692690918119906180610748587049052547980920634947607148991113926776579226024397810923519668143766916570047805527363057161783508783336027218911315742294528887362968429676992794269140731984016258133302063639329277273114696072462676965302946348477776277833620132121254319939904578596325767172790301576247128727323545500045459161634905544728834222562611997192662754545150857200696033080388368790103600061388815838150214382000570011888818544945886826073796073996441042883170500292162050122637475664680237039089222030061675389148490663200576586866312962088173571983239631534665406321741230812202341728934904740765150278374553942946329744941719556898553426490136237755639901736375965006052937328998902393200514703554123249222786563812029983136106808990063777323585698590647549899610805011961884251931093885129100739389326201474377292924751794089427442219170147397970444228398655134119934577330040836718989460041912235101145762544895571315120181314616401372815134244944089117086736160029116137334527717503464751656378810887529038908804310461723658785626295896494930698495052244638879577332935985708008961896220517896913871923652687963033443805952934265823579574092256841207988281378801340900980678596902629663594476980218450850512262721663255359809965998512039654879470664015763445777180419728975457279594407364543854034180722408237634892566159282364045373063521846109739811200856765533100174286795910104462946724138664712218841464619989508880884967290686002371712650695845110281967218846174642333321298363774201824869685342315230578215073557562955829417884201916922197319674599905717915362994156434599531961700541319068727780832388545463828457133122033112013637089471601693655191816129053513022853612707609766059786414073808598514871882825551732019397495213926170123258189936422202003213260590052564386955263413762409424903587865984867446710199609751066470104326979468333816286968061151351206010930484808255570797190609636150204348783596523022653014333781029393232922686788963499877574487407164525498324012982587571038011810992436540459187177517453983317226519253746590819541053362497483178035830834681418194364948693296001430985985839804079316436539062365098690678931316133506247073185044066406724489831119536008755277204012241366936771015253157632855836492643786040870841333386851363774777865289580285335612417047381187675831523900383674409203386989524895415872383354331451224160828192824515707211235027723376941012957940406388591978809711227111320788376039439547564958911751909945542837975480553311310884401745262518920755354825924039893990802985727097099907510989857445879262591397543872245986584428265137895010643718205738642369428702626410716295028642608125348324926829679145571041641858632511193597012327091576221220113826653543250987070163901586559739963459564176643304720234936827595959148086479770792571420289756720207383813265415512358785032291487456520675890429543073157609249306627233414247563168891978795249410791272263675697296039556573837461016804631588269513022693174472132219872727749998977859429983220971192051718667781237846690911016406637509894028026550215103340993865727445184119094745097676498818348916452629029017236588444806908769165905956610912932865057523222612850104709506163693051404248221443156198133984618560372600457565494400630883422783752487133174458479479544232756136465265505555985146997463005399782624433024386804794002989185199546286653216675083131313720645892775488442127529878808139699677907012892598633580891908889010049841220149969465830152147309090162020170410987970799556774731489371677285771259644045106587912408134140272201500214613277578946410861213971477284696253455879690982819219157797905605151023045570091815250349627159609870346154227977060708483749170477755655519203952404617122401460226592168497919984835878854124330023446586735482321956289712371133719736251912328714623353857008713050855853613576977820435280190734282642704633675501527847236926411033046234512405050194857802248811333071338177708333305576343514579805213513529148675296103603068098148767760535079084785763227133978314790357063016907163021680023178212282400505744978502922047103666584304618230682298183345475152268913188047510453404139092047737130253662850031369827446427892512997296399113393072647217949178488433956007117815178134750247967297431380125890539163977792138900365661992875306463197192585970695028658912543916058805536151772097783175716695906947845747106646790325637748702153468563260694423570266317821366955002649749698889258533967515120838783329120520614264363275045468879224703508916935453153204160593974642653672040103044607269002851967327485304846850181892636195659840760391899295397903494479002726924856410671757027215916998067999323862449730387017303521668385779498585998738990230878987779403584613553112630388833142425672368841216318292239877808831857122702520156632868672264613683341691182262353258808651482110306180349082624580274231555318945642683994870826506095195569039037598660034619445584848698966454403042829263666409639532504521697186197319667719872564491074569167890171778079446046075780933778080328600835172964584985761565948972439004570283057526266564954855884660457143243182738624752626189885432200793325910049345018068066377191759331182530203991301153164402230700035625969480333520544117066580239231580444420467507287075014281578265321068779953611841187621918291756700035484759612955246014298092490985541543237527602999246547726888848938941860200374233513481517749577493268346541368961147703524889006267917228906975606992894612620173929148821003735026438124584824894834303135344722490637597684605477192908333792719153655525181998655287885291305084124191847859098277783985789394450726419217216353013462446079440991956256938678816239980948271120263823781849012023456628003587765244115391894667576575663947311137685952040545596129869137048252743311439926498739772249872392364678271265847292506684088723909528541806030017222507090474907648139542003844078679393431728828473483363371897283946529552685770514088991995283183865838995238159202487322300655537058347459149391062995747131748675392964051888134902370942589032227977275635534624167955330160017871019086479219004773705732926925625938416869377214718579235451827965569457860899211200487040168996599645242841646012904139887835321285632647095156437667226745027313088796183120704527913085342966203689407469782815352250087318953764816162652973889693849893619541468474796648135041302304328164224708454610373611372517293780184592667964245729571792224906172569323019726698603905890992011120887515063979058307298653599023289898728277986392933243856105323783634447601652165950669368019025457966695724334954818634019597879225759051809393710047636268220787767886036077057700989735026058785336807757408057077894785930085843863328665605285539595064947389891095241821242045225318279278321258434499149988001383328444886563247479558213426627248917210844447826301265385723725180188233903632628451482112389106259668897582147642286371813841762201158422223963500514547847334508355988034085332238417417976845038569408085913477358326870548049670181926419852319400725677030940721214793274406068623896187123402269789353967223897826385107740941363018491529411970277753598292307364268145591577649372653324277730612186550613641056350969904488700098726021123257294713657516003629269228743491498002034419325092179324699950682811960013851485613701320487809299044396306260139605004204606686101238588545947057277920299762067328897836701699507559761460064754350707253331018119371361994475339243746779386890776665613850953538941841974429625757831920653024943771309759563823596480698588233960714601999192628585201105420611576879007127133470459757466559143146627424618985243499845395034909289421684183500241556350569081442228873030141668470268752759044915454032442487263500484588127129451294891751758076390309246056991766947958322211697719818282587411928332493019294244740984639308232338685536093972712799498498605597275935026407690204092134982499774992607927572729663706321825095088482219351201179276236795376372759792331547003344061287582062148914221371838834735541676935233644458096178718114912309586194571185967028043317922458239650326218267747142209507816605562636185772053947637235073551724237503238577876410224747464469275736053072485967139855813312322692419146553542274442441657030517920127510148575925082266323752475678948759579121520339127756075268345539910631426964327885166425692366417906295611731812758673874737735738505010119500068240873037240548492113957594734355198635330605583847778317263717261631024163115025010936463004030551986520811218404847785483772001000877486824773520068815642621091467191659466780747879761290024049956102428526335772587681614759012503617794807682064679311974027305719273881769541917191331872770581569992527565147176197033057862841796840643252902201606167860994405400001049717999397279353530096131195501236661821370761955442329484482711013720777359282692492420415324362474284179939991544252925995318166983607792436606106525600209110148343397067821977334143896066393693012564263611460928401111013690677607247480763912138970642663792798917346849615833732984139128593156983834741056458697846525568668946702853467433065347428222668973173388704327942621257464474827708281915814135245078184816242049929754320144036658883598108515536664932656028300484513691361420747068764492127281856182393727021665415434701944795279682638324455155994952016650806609217669975603666834754252148028494084916846050074107892448809258971966088881720817646660432441410115761961852472636752212399284072810654240686970267968677769719691159199947231059084457000359221751254202947802427035984464797354319669639303438347434787368213907545426468885725743895718786129876139652042019331614594145052884082840884935800692786048766002937058316933332989144664517924559154071636094822320760244347356725031776218956706826396970744499900408927026772564530268196332417926968445995176596452667721556112534801884192109019989131489367301250101537255786222673211558640883707198008384890455323256006647596948687100156625373274612768801648994853307525408978423430252944488592815999911056877232072165615731431188710614953629546637109806872352900491820015721972198813904323809969767451990543050375126652357184795821431372380793617563737512404042564892906240542280407898241581907165375272361391625155187475511149755871261443848295711219430768378896946987356078056058410194946692001940872217795408647012425908569463012356874069148370845075682116021539568416486924571798075141257015131226460696518840816100420297662665133754823835568658547634543621705472992662392503280715547077862669976212574545634446139469128499365293819956762743385510668379009553173534213060639473390173620642607518314583148118394434163662330511014474486843087457254365048520952740919265079135245270328326904265929784197032473882700946584254376385059087398156912975290671884158376911990452955997269726753201942246804840603176813773371899686290545298820441369264400156834989422868275817508440548637021196090530853267296864693832117681786380706415233834450832021332416441868384786819150938738883616627283018802170688510334529562410741746813092494058305472606390412974360863250412331386102146894782242988520878250103900875760437113075518128411868823486225052945557247617365045457940331213109253721175322029256655787547538426894030626149444220792359756922843874068173692612966340762559836409542625395756490085656190516217052047029149146031584063183299877690522490499542536772010771910232177719238491045540291952898113669041764895524714073017111819457154925366545539058958330678102316526707179647315782675489441887006820341061195219403236234428436719157146666149466178444389881912643479589290388644372819258073975697333127695379230966896876562329015517081794319463174680826501934762106397862726404621470314966452414055119493903847976757671849181388378694280446674358353922443300638250579297028164106817198550559101548041483241249196556968130026582031916347903619283980071649414784062640297000083175023338052947249190973060992381791075901050744147713968415366194255658778942255832881417039271208278728080062552767890846359053788820777336953713750089159762388147171345955206498127400321896300411557554438529296128977897181344222607918944831108135378659228196229032968901933114766700437417118022730920670849420787451471730537278082926322630721586188025134366398856431737169131014650261921297042594039452085998319301722176331074105660981830357523826328537161797990547820828660846367244420777756271611115138593343746202474890383256841648128416280149183723969694306330683861770728344290883715361790968201678949224814258142058271530703656108775468155890129208113340988810320640242912451051523340178143591246330863020870811523346843131150499328467680288729141927365553929204716602942488724797283917736525698674152123395094309713670231213474512268035413340734779491857403249350228058137553025029423497613693999995272743770715511858283361128691095522033227009069438891637211554523538004151113065184407391784520968260238046612961377199413510080386653727683527942487787599453576551085090675954163408296390597837185076797733857929687270566913880582372778649567141515748630683869624822799499028508572826177510828028586326311983658226505172710012358570598631834354036583420391509574221668286411113884989621006966925679057207439777625456736181065255092322725152015074092990007083791967592552934898614551789190413748457568457566189653436353915508460647651060584702713305901839836414314447271295893743682496826501329366259886103766815571884094018082334271199786312781541367633757690143113772508883728880134998016843260491440414355831038856499994237821083880570622839384932530207238487374933173210882335041351136693700782077525949351449946747330379827353484624229345273870864900147295827182928378064325286524138797332507030948316248887774841717895935051756039553159327853473198656807692007396772571764231299012060654419580855794765546329733557898339705304238454127915750928858916835541578022889825279489972606789444635432208129128994512769356790832792892214018752400810740251620975213233540872489124801475423492701810947493826014210105802039345164353961362455147108283135336115282447158262834679013982480114419309166249217239586965111700073825035972844797188430679215457059211179428194343751905164248843021597139781198320418528973021851038248576065079366440914834550072466387312402170034824383654312334973569217912734090612635528887714897750578035318025904749006272267803528341331923057114413099234988715580066228155836710461123737913279800317760951143539953983654422961546055969031632635850806496951541907172434488171260710669264782158361164871753641136836364592878833916455320728337635568709218459220966066940672349597510043394856996990317193198721218588534196676435430207842973448351214727150449769631019162465844682258134917890947844947236832300554238581504747063730574203388972841155246116114147088820755754228892367260235713951623694503209075639899523858062295590658716378922918928133655393401938748324632400918261589919275899050825671484159854187471973826588107327844102836930678134815521707264879555151163078369599422607984264953002008062169979953523308882961679703778005255561097469099039272411643841071937492984964423645963036665167599850901597556980511130556789347467309616318158643211555239389782546020368463286224015624712585375251598697713865565095866640136592360962187469116087454372339094457936437181091990670861023051550221250577766214610603289289270185504256997757851943672521768369286747296906258740562327725600144417627469342280486484846298446645567147360074421017130918069533579542898531266216497347645008826205544785318716857128792326729706703041566680571915210607944916750730180600485120893899400981802917138139432486122776435332320123034847867490221142752836773633793050782753801476115766199026532336507888401956457812136014699777484609179875422732396441559694502665015576032558683193057453141908670332897004220273981609069562876930454210343266832597580347701170374350255003585068402824518039872121151005629908472595963452140083278223105423623628089161849657978811800826294001290818199579113345257906121207964672547798804624112387653309131361529978239749000851042462228946024937210456182448237519784795615750534280400577410471488591461291163817573024198285218906229363266176920926084818144753825566885227337256479241079774859355900619640063368481657767894833144204912774037667965179995869627237602868926202220997107421760317109128263973346706838745092773046868363304332874087576713989861608390009877907860672933781688633730656823163503315792771935846589298458242700126786038850277095726588235029901516393185243393336744288231722630915333305877048295824563938065499405218203851112066383967193777634368200854574611356543108913473367712634328426616871963297321908712695422560209372133839689405864182100249576851418819589412089901068807436437211898034405971356380355133925287967188707125505805710414115949664712815011344803823602129328794698593209817223471343922678146875372235704203731847339680673288105764808417583040554762874949808933263165471115169471741416313263098965382722308911161359988447038925102550732766870796345087580193476521268365958499616742347252867384479107500861828505725678393657450445700441106731488970306521526110442035625644404020102354284744291183859420782682650734766158144874121310788497244313924579635211431406633488057530714377219596472406591221217958243257054231134245501787851355764821724435729396678901193030116292661369758991263336547431360371979286400005193069852228370628428083238286966115352532477576242419904813254882400908195709730092611539935981496296895016277191516494422581292668308358540145490720321223490462427247453408351654542180589594470773767502592674628615682928516837548871857520052644101253145133088488035970469344434755820134942334707256265060130446670502259682282557941795717898939192890925160215215692708521235323518285478990263639390757324351955490672347955382202238977048665864569135067384011527618125823557904590131349405933286843981108156525638980018849464442351041027620427874913996425007176367500426326170937340701767783221675258196993111669945015322810175175631688369925495331593903277533484005857305453364005660099976667308213965611523565494343670179500279024306073070899123050363497514110971342121636845016828750631936110973254370231520213169690904811858875915694471147854798160548922898107672142424529584727420164718295196036327227030899436081602388482037653352604914750376499672084549026517971261778650507516258222113370994012255216386490741537377447385521061713667581619749481589567838474009471767913817909059960712336160155800889118612085326785738981210906145628083421183132174551197984513553411660527683006520112353622243241307630764422908533353416872098135630255728461885601023482856689082448677601076988810660529826409901341843885142150545329854374221765428569037537571029746217053673919631025910399668331264585862115136772065315508044643544256055260987567188246788927280285655704167444362731693337554293829010970636983843520254774699750300792671579444636713081688435029724295143897400738658535595856736476314817742501342948330259415723996138528872325308805449548217025631822473195955187138898127063319771546099881594005483616112576772754002164168019292587268471005084689934574434018919266785811608757856133721446570940282806726053063905270737262986109268942450531984938858395969188025959767681333663877098978553949080126826324459990319336239380323530058151240520391700471841025822357553766143440886477925618137774541443825017607539657102094630724040819073584504346694644182848038542397202411065926891611315618358254477069852995127351925185551787643741336443813100891596645822121559431933193417721836141295542724246217150891973113837182959791876399824209513949107433844334395521959726863211986944981553733381512387332394705556362882729790306984158435829782355211036176191840442154828757361810495053845225363700698998170060980446357054656243068557597072987031411371257584155836809242559650170677476997288860490032978705294623303968666560309996044130873298120137847873267964089006921922912027213765220454798560893654876002807444446438237637956205578785216102412664346790852633559877919439797061124408031357531079507941952913455779331388488282623450006170339858436776102052975106830130593272260479183125276482472428895702842360355183544344651934890429171429654465966630631121028733824595678956599507984459820898210995547832004830732831063708722207048667219472141216025933266794355286118979326985117886256821710864280777490741999797976825643415018395210542920528968554613945117408862069939384749681798929273876168475304280516405900993134124313801754146547967992378634935842251881266011257263607332346702637606188691387340645712529738745659405459950723125932672591545572137747299508201624026087131569322069400829134564771103656961322070058547010835746373635588157640877401214706587660294486697645225872532538947112006839802192684605471735488592653220795970245651630964078946800030622582967428270746654784338651095546541911550136955412948954129050840876867545234006731063860306075342612686326287376054490792533502073335500317962851894279258566435481227984593392631802942534059394522830659365509668530627824656284444779905272914009389758094991315367496284962318240378116817606641119646198714546822574259384458647446403044317881919714693537311132079926267562491891335326568381439519861706774649640245068408961877588637753845774507169124311329814039937575641037355136963579525366268800333408007478454137355409705051576253424657663755590950641312178123450359646330991062571770693910991636746508206932024530363817878651950906234642351165009814670442269478618326387139474710164180788670532388013489612937023050422174621314694561193215735292580734637717660235307407571765406664269361850907332560393839067176624528058521546677119837588997786774414865585705010866947254839825399841454659591083174337753637863916990295946934671886981087441276938220593435816331750755417409522718835056771268674595795042724023933757208358222740319623441294270324525522612924260305111768532276838589084947049196837628196938427376941456726698413197971096058198587818691190348438838216614899924123837115444532890973063090932732665155366198497792787427159169950402778497692636952924138794390034627033738555780586330872991059380328822220229446992741326856887892677380723722173873986173858090563658620305056133415007071075823525233649236729299992087456052027330106306154168424197112973001192669438870311986842976480638725205469954233220904703193938422081890530447823973868425219335633929753054230251133782804679523987692837760945625614543478056780417376621629235741038231176334729880487818973096179927892046469085364627375592672149395429262200429320116076133067759089502542582817976808664524144651722476349632269276723533939721004947128708426404243768948359173597593177768285021014429355453795728286422515978833311749610397818308929371569880715899938010468683814751905182583277773079789345754429232508328013890215920045527039832433748440650618108523462911705016039484397848287919413170775645801223457697016126806943468942577420415954812718750984959176775201542357073796291448508262379916394649583304233353346349120537976424417062228968242975639969491630660370495339105056094615471574482852569885041811205350379687632689094797861919437904295320514577901955122649026349204418443141938077451021503250569443981951976442578990088066287494114750808516537807749581403971782144368795859787740477982394056039633756637668025459504684259328735794739960425102801068678876454510057680066926834869934616690176547830545465762420574989697466161064911606723373812516751707806008924840160972871916147938428576591047104329068089959092495675724500242791364398822859079270514948387031252381205277699072925159476922943827223312743717216715959261922282295323095100441317639694074308952533242331207220961650437720718954352301720345697111708343103950758097385691941161690383894344668430153753754898898003696252706176922172901101368176628609216977124813870084867391955874337093181248718410624584581371531241170991885310680867146405588006021042713113345795833727820413156387038298595805147986215984740003103986540593133566293078394378331564525619375770866238293000963389132988948723478803486118005189602971873582914719830965083599503331516328827026336106875565493148270296978482769090968020037982613742683681725422359307858092499922096309068799131535644732742939808132988621534900713779228186146329783998450938854584454233569089652491053481211637916655793751956278710788319066730830299388475025428098753821152141290959273251897515928869876426506295816287467032946127116709609083857075372875627693775966664770174365170714420965026493774893521771693080840531465735019287028598214504405711791947306710310663331610236213502877757789214064063343262474919818523539857610304622567574706064790556252389716621654763419422120034536914168954184599812925330919226584280883443004504344730203166965279778604748362872639587420595333537272736972926292533839397081250099329041300681836700926438610568079564372690852182235650866421431693178455801953743601464303540836632601942654604359575614924500916119687934114330827837879194597069440817041202861833999014084167842670490465970513435293969086271740222506630638443327246678455288057186577321932774502035323049809946786201323498305725454640493148331306473560745640496176556604795683322440943763886896668628994130797326284018185733110486420838452116881014196011515395973738795551639126056236893231094192100048514128973243071978238547181814760923510989843564232958125436070723164131008279906737835790535742851140424745392578419962809366458008508775872819993359715340104894754851860694255565087263105268828530435055406734821582611171136813775953673949423434658095933535542797119815601341098805996885019308898544093833874181201069727196654818150477736442442644557334212310732436314088518325095492102467823557203182241757221238800060237094214534334570280649503930165889039646808709637852599933598236819058001920084518101399910326893254109122673646974517285562544394844549012942348762161968033419104081617411962900592675440335852956023844306753418293478890642620040730368666492744906100938807733053099982127087929430961779662244364332759695781886380435117613099699112621914840906889298879107039283556918395661782285745764139141115067940179017036237416575938905624064157245207489460678515542423809687872928912242608117339512410723612893305815680163129026801590432080210445204690731385149645228442293970288364268282092308381017209142556884360757272474819919053983427475841777841729895738718951818112996130927783797818148530357535524591520197171045271286795458613234092995704635205751706506889130947868616779659246750170086301573147738040104362749689611225319436918412544763147046221778255724832845050027984801275808696287071417852233257411140297130952294053045177217322235637457613280491497007305781093066386517609776539858708438998216788901899989066720220129545847109484080818589829812640994367447332729777463550877543085355536318102802409805010839197711530543303090371117724608470117630692296330009573668617825352785487919218655895323437462647385937094320891140358211926464150567697525490205119483371215303386984756711333520068282564552690522360315226224074290370003301866523392459351059313058081068252723679671079724607477636804423210931477870506560486861362259506257276719614360518917836428891353459368072250115383275072800695296308015781716462884214599567125040138351863357277211753400137576171349527186045049479638713487576683374712714738330340616667184688743819267507471307832865991925202401736787921076664023937756508770077880828169492409021075898116907376946056253610826367010339967182777288140578202741818800269588014184945547112096276670430654563847438893227382437046239962834384152125833793585631977884703470327865612969658069124304069386773034882990087064957446881515836332816683425011205123483670718862339838920024266898549419277248010151144918843157774583927241645970938398838528711092377735969607990074021199646987438153379794689110005311401521240877906989191106821108435655678867515004886974907509193081880602660058887144168918715055132649231643744730294174391958168065364685882286597822478273526646547283282910759827588834756693942985072398007154499500862501977970980532552978022146206718024319594518495330170495754802534084710181364610021037639965862538638289895181145060857294053254764699222059538042034848984857503021692168676634499699818735527188371562408207131585879094967441935676886559366438496789351676525678078450149281975020598116219021132619140758024888630699127826415898160527314854164999176186873123871267152070571883548001797991150857853010743094803494276098723796129018949077643309273088613892493123306991665784613037924085583292991638829225753169732000349198842051227490201775582071604995557673439835727415694193800345977649382562809840415450709884262122434349862339212559620653706064620668298173558545932418004013654840152073887586484936683790178493960910566178808412446763759211671042028725695511931208770072007538781347419687432015544192273829599509198014586930747783481639437905314232708701589998212578906703821135884773007071149277188658827335878703482105415419468093032905844529989973040711940954589381281177956725563181489705015191919753035571275126573351924874043657643925603189238944834481960257859253472537848668658523409749006910261363459783999135271638292526534259554767742166252341105337098176007912446800351790038264591858983534878457988456078697048952188348885305369376206672342478460697796015417235450090594305897228735882657011394260356746441585088984534792545583866941802421786227022815299909075306047279289205833575893110293422498001652477255555463521567374539903553106043592613841263979324468791720627134985991591256283567594262832222417593089720433346161537994778894814911876861858436830144377570721201858919200992539224669340227629787929724376819971598105360936190354849980515848172581415284998263121721666485378486478908628682595429488500322103569482189739779430257120878289953049348689140977316816194845365137098516097965624758491975268498588775329055720528302259752407819833166802429096862580310812912610058249678559653829457729605952327525794808818149896136174267245287097138305291166543728420820653271221982771513478778411519111372736192119808138965668206725360704160451605694325645635936912072712775282410171738404809859388307856098847630594396948884844768760650764013876824153930664426548536605119226741333442500082244824105596046825435451269668381240598733473086701606030374651354136060227036623206027363478524613190711318286020270748015363271151535466303682132188697981102773776639719977521927380852416548574369647532043926399173696197978904019238364481084117227311498972462858074263084856058508329602199195898588222561615312644906758741279080387356903207641591326746253480350405855884196132005371077814337182977560979050229867702348807765044778871481615402534432255984316255989689220955346112861092643356527349989010575200351591795672149075844880615655986419172757844912683637513407110825384055195157876090227155156917022320496521924132153681693016561756752750354958910475514673831688540379670007414633952634356020343067834454818503434065543529048214390404705548633967920170566159842369662098428985201600888817243581701273675789403344997450267414742769613555101778363199035986254583564680758148981780870562929904074325654888113467249257764448609581222038859851924495832592635062913021999908971328840878359302885334944527159030510368603149401256468758582816673986873245454409602705835746312545530747286849241370732208972558752936349712468522167260532475479698543696528123066036735837237156959927305558147619949987800753672258304415127886354483757463739746281683948591591901252475658220459852048901748197445448334656798702113321658240597057477607676017530311766583825837924956998348094302752482814271964110604808343780183547068579171696196045151831685043006740574143686595093501075610297369536568162358767200440529284811927300692730209319403206681767806169298867836679970685108421464708606997973463589838774998927570706123079147658172601950921622243423138698203014189525357962494830013189486309398989450525656188243265274810175101520122306787682765162068163515421848081429431675223327366484832277676974466787146645745757232165824954822193907826388173356086659865123371711887767910824147294436645567760465958142421095944837901501084502855165950633547888799523613102516404525826662725934309172196495071290285907524560863710450490893362893803567710952624509691929760564488666674795175037640155385812953155666644393827641551197870491353640730074201676181621241366758505569566398703730814893374130206081590054776989375905460421543594232245946755157776128147081909252325993481043176805824419660528109685777774769043947878571777476816226839759483666529049524601736846122972337039036346493919554473607759838159772394164749059401976683819159145868501864103780018517307479465757980067655159420347816396891024838271248099149609740433563696794730216641862108727468261117710612884734903879818999836571827253170085843430682526879111119868206332473924038854569154985139783291089825672878191994495097495510003191609897393848673256166073751451778199704094938994322604427635383513330228747264943545483568622692179679128216784951741093279061015929556824886998946551854056162075601282159588088286828231622867507439184286691449380687084197454424648500471770090167355258385413558536386295304503084980625392620432079888266498430788510291120539669462896509631418306457681374156260910167029491607120638031629403497873734364769884867797570664885691506170219093512361409630363779973971606315324374232653084457315964129648175806359109722683173048135339836231889223011095654816352430237654394279254100626358243404419253557611102649468433443146103388496868514820077139109365532833367958478029668489685652112712117657563531400110901210129895228727811138311050207042010801763686504126555275308863679760738477340808791682316952061193008773719950115742954087671531555226783006338752170876202589147780941708700188482872914436223973565564630212661241295055534831387957248149990545561529922890418123202197180372844580244511540740137717772962052645999041113257131337766010234245321152031777117711495969314179520431496083566242145568919646795842989639011496651913717937709121923971704372569468179018770049133224148115379515375223943840091805595902195452189471905844250472769869758026825748067176582605324287208466371973120336120931875164265862244605321763866288746067214544767179762067176224758267382809457514434402500703001842640904866271151316249850570013125448690636004433024448456598909371766250372560502523322951303420372772267660932652174877097298630011654041698832783557243689565655599086481015579821202065635478182606683209595111276853642972796617512965246754017807243542587028921620319732229455690464705456684738803706826162061100855990297110804477625035251187501378287754648401776265665034493899612040745231350769408305345738397253013909587050085418029098388841508457801639408144900504202250327191918601646477276785530774363325491305229687503299188955069994754178854380152662554271123507436268109200269816169862904042658617259360694251377076705329531820007307118892601525044585444422402392730661817610595473187466833071233382705003464636878199814943441269334365827261709151957804717981550271391684450773174587402584116399363908612928331404012203390430466697794609987309060071937149726944039511412608138134667798195282723109851234750619847388614239523920312180104626204254990225797847158000882240147831848564209990315834703730365364995160292437695189018412694786031686513840553051099200723618346370149084200592917322323747289677074800159323753745205873802722074345445942545162745995601861242086334558659425247025520181222318144962884153441960384495100511911834797170626353112630487835740850882383964952506318207631087659016611151197844343949558345209446879444803901494553971807391373119725641782335673419587832972038227377788583692283432836809574310829673284347848854567301601352995481882383922756569549570572901610861075496487213514117021834319306256852953735993040965153011889107526911868083128504894799774744906922583893538541640462409720164780264193083403717257131208144147539909438122251516068383348149437123336986040211805110273565396108968527376974634492342143694402644800074980889241430527788064999426857118657511586355250768818748023591995567301357695226526654828726731058623014694942455722601408243083313880580403721399502705317626034192938085385556945701876034916928067460851380196266913672589671895316147394447094730350156254574235531207676253975807291800496476053904165455823229747220907423716373350321018909331815237980649351556266061740382997679735153974134930392212487025868927586571202418144549181052731197881456856312811149525346262565896127027659177448540607534052167182847962541172894835968205177600415567046355817484396770486041182083873025543465895193043108347630346465489386200784785619352616981298350587791380874000500520953172755735936236817011601014872695511746511543238483739259461787849515023911086837223103426862868874889424462407210102536262129614049316390221792293391218095659817390896616256979450351125697842742288744380982408516407843821348375213546021505915569381436900714887776528160416821887151772794400962042984927293989097147075085746843773371147581572058795745083809950821095946737302179426603689208229862123858271263678709583018827452274922219182041755591367074576587889615553285357971191920590627622813416951827105230509379540349466817581188734203723528380626163268579775766848642012404259010618362500133678901004668081766184810920089861631508491284280499056863395127439250758272501575737845844067782891978228875106966430013386157671697911267906241497095388635792877666463632964459000408050345540358748401077361296198285551164096828818324900062154998872754345680595560558978719841654892926846290539015316697289683496569273448584168703895893813159966466470766320939564035232332822602283427396735753619527857035276693010437393405646605951064518226383328285135799143841752991170399841176962839196243838834966000549176799723185939186862602160761732012171183382163259920285555349715680445078856187096335279229970721245130765057163539888122667164494574716452428753791452394568330019625974395745867193388085080051127251576272595525281513067708516250695346912958866367016873543708760861495925626887955074109315012536948279378448137521795064226774494454087649012936810971483403164131629832314458146118012750162318846197947387421529320927716029307464578295200792078374028709685026068895673435864941164212848538848512654181749797649910773248411531753169419154561390549401862740081212706976173837051534809811806725682065184996654881515924520375396197786745120841988101466748675259575403032841139744563533433603210114168279627421153486990891013400069772124917176249304911413588543467324839611898404572563945660875949066536296758480990625866670678279351990673010121664073327597480513358089724848870810478527981509810141381517899481338677161128719873790930863573992182491021179419241377390125902389395423165198230137406327087120450025113315289260950338443899116820994385873596987767452883528675409526740408476434517517401053562282499948298482735437767189389227515971669058668681043416800839651925843521065976198135660061927047297464838438107086118873013964458616589159767393805847355990278783548369378099190762827576737291367075890963725991144640069915575646221430654200266195252479805250024164973951867570689567820606827135264552962632835140911519431724726748259491052635326682466465080824073210770516034774435129245042799692319098973020327435471484329777169733916810313871658614642515649094184231727246166308317296305513667836745932848375619895467018256665387191662300924901143694245836771507669497083265996820413503406569145741889727007101577312978005393337877276789600921581830316457898460102340221080454151130948812571223497070174596835477820428381998404198931413342072715203375524208138098112538824386830095569363489646999382154289577876054839128426729101734587377444334087478666407797417031839039150568066882965045119185872501854652756100033341389685596842823284869098621133990380404569575939317546969241525714200811645215269533271267710196334789191349306636634199793584889791482224128198428741845305258782980420144180890359399497167749289379415438175070902820252023559961869536480073608217084117754798032439516170426616344854099163566009773970239762474251550804540800851271877887777251298654662706431542360584751214428273541044890951162761238206161045142138196112824271382980078079181281428065905910499567572827214107711426374863037515126245849092248260980397152379183597782336818568019787699721751401674098570513560929329206507577518700940460379652176154159621300167983035014997870053703592715376324595477412250000412141745259599472625616889653513333594941278055194353714937129618967964186444143537048068496421105152489656632014169597888700013899179623678047112788019037119196074903509920119958298758758128875832886457308868886831403621280608934335122024995866552769852636903351025500685201913386949076729469596924675835130470284761636607024904224496550351215240640274741830863321392299286250802878018271720645833836498184627538046241376439718159994302143053700493086767835851320967709490450072122283119213004451932508529754283135176885368163736349730429448194343721745617442916286394897159665358554612599425030504830532810622638117799804251099735112858329884095116211565926630789420523368104605313228018566669472162549626560777045754336707809649555951913082662459825146547639010737976387393308722077361984038828400489920751366439204503941397169899533468234484116629569356682312046637390516055762890350358655101534767853781283972542288539920082328344144589917674085799454444106879467454787483531053113668861824160760636177900653585997234653146228411100626497560107468927538241452465355701173586857604045389407650619283065968091814265899945354508317588182166128809080098205564870232478181588927440342190580106604901301610215279611489655208520955468068236946034980254805967215048418959172391005017099406328762005835032183370598802979295684220574676385786636123965311696241509068689135628796535982498580539144992728065378511994866515959142314972843685016020257806379305999693631460381479153970940889421094355876255325182982730411310767545928566081839046955806123848639802887353711849864169223564262573464564781780485924237992536536295320093256763878805015262021643143827410451020263690286108408928274602670921252133225364000825291082975834701336313518732935207372715072541728696085699292961692733546987715476284792474565450181693371804246921053760668751853311465185637481246842118678826520591555187855927294341352108989876224387380444361174083179554224725846191870023172883697539059690534178045467867972394046397603528086595080109965546411441624786846667343043508993910984498188613760578174551482248974212192144396281331035491536806013980150902845948982914602753317485291492629529366075157576487572147626124470933192131769582605860302930204737784493566436841788547595267221008262724749304060984484222386270162208346736879359985370128393951726074224654900282327428812138285336942452802428496672526071058141144225148978369131833646512837424453103319031868169727232747439371617329192694715688324164519547998058933037915682134162815967175083729327194452082935789024199706815488196142514943880499528537745527851812743583634523876771367862696486613767390493434072347610098845713326837155836806980417854564496380416783957690278539810650388453979381875780662999263277376527390537888953054680377281108628849384950251442967245978394617418369775967620464933474244595653983768604066478955191515735571073365122854556647196167907466318150924511434635010549642771722781058043410411438515791285923502495397270639619271747250725026880735581739369982565971751030301116100505938727878538652091204220467658629573622265956268827108593305106030757105349388972337568732840165859376163712929769309109835804339947707910925050429887004438288897103444872270777031822172321830199134492900447864209821327157235953430579135939419279366501966591344229781300730525152476924416063644059079586886395414442078345809078377325643468445392358680091693428688847259538296031463801205451792870689412853935869558481276853864683826919519241716376038463740204140067019400860265340954019835009217654335399003253613814662616577199310169091919175117128028763130822040705463432764380425235499016729784573413368348474790435450835243465643710477804106006748709207571365302142761015150796687981650782816785317285009766189046541114826723711293545661090571107921425010921061205470891930340350167527707175626356395805032602364117446291056322376041817613245748175283417912098005594144910524458512107496775160972714263693104768959626506540834128878970224924680136764613046021528643462904858255368515696170659178079713153033654118845416728591993850871606920691544619325624236272533045863303693946541988564513967247254778904551598602904462456024702025247444916293384050169432554965917000747880455369837598525617892345835539044831142457799679750948449268860382718427987313844814862057616209744599966721779853601579859101589194697846662317704888352432477720925656398196941362049121226666352477093032373515508346446161130288687863073818236217234842226123180676942591828025056042172739604682761752172944507151533942240943580065777564468550773634907636980146010895958643315288933255831657987378308730777244321245902528235118880553164392362686696256295042186504082359966469791917930521403471544069568757734010781556709477673137365054520417969924742484906732029243404527235192016236926590538424128100155220996191738288390789347398520957716431956701336988747964025199565668727902027386208858606772553269648069785181728616972333119439951407841120992642245848670383238736627362356597085893316682011935326071847557509353469169150745900401291027424625772828609860428793851491134920507018033383371412795944914629332389491735901909669779810454081558129178958570389063868583656242355229018190513974813958089769957948096909538537718715070047798784972507407726747734336006381270989788245710463157638953366619807793437074796941668109681544898377233616081058377057805829068531268627389649183915755124070815169107751446968647440323878890717050780134922020083069340979323893543111612087975606595369525035839317145117165004176554358396850973323128844395455876811929697636144431818782099276508076724617340879353376372787838620566779132760331536262111955287808309945892301811054302204611742882716691787442233468835685044986349872803829001902326089506622655065266197919298076359617387112860072199328730902092853096134531671618222422152770437613260914811136836314554246156830055500333754277607283111826282032423207422411148125049887730159705793546191266706886792165945907487817817510401332035111225178404468065563492180551984970411615970545548617745599699313404459117876780386854754145747558410582482433569551588166808193726753875538764960333801551400810500914818433249224196762961459113790674484282477655319227153330507420413534328774237491125103785872549768873930858101943158586924866201855712132835941421976569449932289986894169931719104008654937875658868483964618420817140547429852579330095095030688625142282289822202550028454078998621578468098016142820559685696026386766734501886981611538171556125252298874202996832717432210795192789425823029931091177807124125249089708173211154720479712453088914667297770471226047413174455104620174458286816990658467312681172985980629726250631568993377230879640414012653320854753689506703653004656076434496891489371566618428241380718855783172105728083973674990546973565422400631747023252375049252767925103647938442138156466409373848692458002251364021592194050687951816982509498878233739437040784012117197767751802503097986970112061207056003286156702808917925220673936815139292809594889167192591969527484314515824220683611540054531314087641214096832763842468630398386962799165124672218113748264398122158070411437881079960681493831600246305232293578973379214326125228783583843896311974417093545016128746843234177927307337110548569646614026949808450197779081429649439032303393213180517881277794941386056681478171389859675867525540836840738504142264099795400762572129417941830433400435651046944862217387958070937554314904486108085438745920335810029423420896863440236266297409539574624352976134257224477332541117123744077624558138071661822197515341801057013722800417720106903617083653035351743679376589368141661661111752011954663855757126995868272483598508806751719914477668468807895756705956823761022667141272908688872797778396798919432838237000897931551903311942259079843413399989835576631211071291671543964399754608505422169550576120836468800598359784065044607567006075571879854258099799492036952688945945869405480752701387275678384452238305978872902497988300637539787057420982913334609031305083797441053291148161833010518649473153390797574061619891667179351178422862195134141286469602668226161884658064425252145578773053776616850145495400156860085126095813126294925427559673966136928276376865787341505600819459907869708469621058597156494386696056089943703535280976624033280392527941847598361096867072851185207040138482741418803103934081908217090550603357686062449883856850245501677286359029202675029005093392923525230212833494624446266968926704530351238016631422290312290005899534079529433066902567294783943066752745256371709297796276344607410040485209784164059391851943255690886614128538387207680030583048761380581362659567394176901630772391925688694272326412064732891457431198534138899041483514570572540791921300993963866265863774586710933970724717440117789998182573217642246165776917687784266126765604257496533306975296462439876884026407354256277983570206686599461580098946417160963907057735044150966964879705703533085288983211115428397224483003540366273677633600486476151859212865278610745209920188302453072491850320377102235848418003503697856426518329948951349418038869329107739050868423621134562556082562167842933390124052993114418133231645825460809702442749046131780828467440671970650534519388362086344926751359803789038628907458381336907406739133695489649460417366788200953235358228698325820409731321789380839643708187665218382635668007106843643371704556205555062305177991902661573521479833086713618323939794171762640772322901341942356729521443762321489867268395028938195887755289138478632702802447366933049273639420767993028430200638879286345069445604110964344758095109487530818205018400115958356542230425629171725831677401511875689430070852137718149062037696550958698318603982532969259681159444677838721512516137829553119952441853690555858634420808418846085430006221055152046558654753583367910037358095906558572375593858093214413856348144383852733757283185649493165466065349034559422445380719084937329156386370290408374183480808134256399223421375858756944129726817024705714763417334148799526480221833367099015905403735793083535779854314237194119964589451588692712299340312066520864472583608206258884032024339559233748168911942778424679221959037778768391260819487197144359865891652832378978145274295272659440272440842951601088519083863790610511647722329966119061249763298580661179097923120986012135903031111746087132998168562022779953210522340824997073785215427772803649240879567172821081324754707017847586289166543389769074640675608827892709392110846544807130714255078364181199247581339953441131696345922128400470443302983100329787602375274006615227513463599945821589833151542028479996642694384553688336825540689524493281914683227499429705635579838748304053421734019127438276863398803214955264593278062753121976172485010198534158186758122595621007311410273237875909196345803164537419313749027202555001516859857496128105745554728441439094349055009314991312111377714229172067291601169289842779043117954635934618872132280005075090781582900992243684427669941851986453411493957908013669750547151097817418922273841450751105789781108237969755620007162325573139316124180803742238606392123506297780679765449328845856495584330612904278991292680341125868856000375318251339306995403009429757686887682646780551712519225616635508096577603099357294759197427754093746285143888875481770491231549484777193865575146508823076126468009161870509757181522860171048324421555062134162733928937775763477495797169524092489964253952362661269652036899823119134442288361578666110737930323272963809403608900987595357895910856159039639603430548154351951219469263906159232661586323429690067917678946983619125850694584822481088812994557696012156674501267000899786172678187911089225804324813072744447171411852241115643259044215911927652061718237988221780534687867957121514679950408232636683779087937152613551902652591951042438907232684562354659554006544520789845946062094046133039004765470955324046838366323188464908615763744278871035737308897595182240507454052275199918561749300123011267709200889306040496633960325909925212352616679799907664490558965444120627816820147511689353358965286758060820556961272583433154386235196143171162193076317607595044451061692129721309372195741183211050503796377960649111274135384239945257789235138466630183765523529506320579735449133232025867371297005346218803686751509455509674287091151625325031786493573986070723958613404281335032004033379636177134723127433244928548145071403372035390311944524555051292069174790378908546487519506392917613085473743275114480682807820217989751732981329501969524099132420210375618639299308713164503176319099065965141400468069316923796943085191640035485345227853649975968866108586509552539304928298417054876496579310678215671428056060859267436617662645262640489010006230876395238007985386835287812623331342166949234493305919377835628221770702078950905980477041455419853355390880213854582021528782548327124727307559516056516364807680556200592710806738481729229551690801812622364528733534121228610322597489086869119116739605407587165751081231711019397013848947659129653912903097652633476420401755971630838836763796793446863651315863472400617888387735941860920758798748772620046757396616320532057606083801742632873478961208018895523811179931662842636958847557503023371626481129575452651146493058483546680507753157052677707470726023586587998727650147286193288681534826904371194594063595061935880577865334548737671873217645408515544726004606460921509631106888548014540476387729641445775578877476234951255904265055989380202926397923890260414721416114158727859912695442707019545910750440226174818532854476036828465829879652341398576975171684825171260352632464112001878441552819321919915402801869517625541145488636837882266698027948607509934870205128075359217189359624752294397171763182538029971306843731935263604654125694594825275744463409331928815826715669349333528233654671751254291274563700330980915406488826527695424538550264369606149008649629819532552300091888941715158155563361744284867476145327843954877291959901933828805372063476573141461568514563868660166015815653325714173713358789489543249191571594512168026222317579648821079392616393589667008795855544365049530387905222948571246912667600569976608848643720539601034053975403329412146804684483521370843263782312707489494160260878608892954266509974411036182728105718523551319531008728715777324593746831808906689359021467772324254694831434326547292385439643753370560019399471061657448387863670140444986562358783047521970517606881826914345102616062157090266111200099047168325877508808169694249246680600183505620266334835974947567062572137909339664624116260540109841749675467297903224672556809631239750723844292687918418490368779068048537758863005558256551359035372491062409632851061741801828022182538002567115147717519122910641441589143823023546712132159803998824898810994212235578101873704208776368882957471864450009496938318940885381185620954938619378092306058318153897297316665041010574066212903646334231551008251554476074818644057742773057946675774313578008385234799748575231679262911453126190513276024386480865414422999052574582549006329632684796787032234686582469116931387060711948920713209736237406666013190771278022691057190878751015136904483470818325200462460970138330042528084419547612066850149998809380832938213416402294940355973086784828224176224793350220442127342659331755731852729604859471825636166072964494534581633898415470374424787895489393710247420777165180350850541073432716662557702189433725665767022092212112490541846297700626250967131432390362972554216389481241415330991170712655418266270600814654879386432435400042854219807833892385435710524987186788427594970013866186614883971247343864414224269404726554622418128939068026050498812188670424709939062157481927828561639212397459136661071804182549205634179814488141394136961972865105451062341331163066514685039739400321719949435247299798736401648429418184790816935839608172069654611545413085603166880649097567604329796647422781408934536672927446762701088511048175227955608715734633697854195949428805399375014236400940880562898242000345053684698303960089808474094413523196684360071801332011059988773641854841287939127130382216600614972728000622046022636583900116329839527915829392047659724928474972569002206043860769663824937331766996989150966301129394224925421149304473328524066803536068745220981448399470519161507734978357853447737002208375236692651261491077642110304980590688856299237126752194604797761164686067016909253983548705161534969783280077081571043401594905905887792809680156404451621239498015234306719122868955174357639966208977994375781905945973431246221784997975992303841909564732660391590235478513760783605087474970133761024026022823699425601270153435258510320235253467744394010284471648080820795037691029881138358064448658306508750900534580089093029460404905220728692779662039288499927700339576707890756103993837916163346231093014257312613917928959199806452456749201190946730929256278512308095571872863435530328863490022297097944044075978832865438285882244743360247422686799130962736208772228603392850206320571476807156888768458880190743766116077185843562004716197183258914427025173144416325352850887112100740225304444816608216955953804414879227094669745126169635573959601326901060716293717313547228447653636218899954292132951532181181020123578360829383789057636735501705839256929916375415363506574014924743603846230273336897698074850534234172409221171503208858932456471175748876364034692671614933847676032033561347166857817476167652236300955433818819096249373116752008717330901471584535296744212924273303753457033440276479231508425317482606409241781370580207144004382686141663507615813233308761462181948118802429323265083194403937604272894343963908993399670907710639036584227492549233722583053974774414637606217647998014024493343702660262508929510750835342064824763640507667416756628468671638627026836070945103228960131816730426530552280408097486139628239422912134788667431193780635296700868418982746657979977291127994946637330267577287802183969295117419442363103477593818154037927650446218400231077441780964573433202736951410010483035375863518268552253584077829147479592076032761244313449581404319486666995917343412119800304647639878296785287334519644934122360939292448708788870789271168794376065770795228092636516902769774196534284270156599560728417199737791687172249451871699899820771732255765482626917443610839190327453472783189406804770321819154220266425098095890556349083066646200541742028924148716478931935287800703449792589221472648635390596881639162667769848138550843790720874882373230778350315740295437500340884835984464652627937644605836252051611520647421908209393504809722885828045921767740309860172978776367824518908137579652608380945509250975297237399910754207578484127606770425575925641121904101576181864001534542724407852283285502773730170761675979372809176985624439479827467814975462654194272380007235928060431258852159426068833830140588950938600005778007352794267170267265629710704994895870613883431787653741017210353690971477636490134593037841952356780548925875636383152922822630195367124049347030499329807434792758858015813310911894492980138410453442335803756335247223502013057572353499180746997340512193111631734218991658416762052483766031789617731833908841810053514903111594458022244354854842718701640520492514979043547028427383970691740709790275413352046022259654832211564454817897217007574227951675402574936593061389157411403445768546617510442637592943840163471799489694272076628522462363839901046717789595345329949490348291902391131261554163788658195346028678065762351002660945160515811195566278099238436396123575513520722196991906423239783719360325419202380367262066875895605482824647724513703969985111196141553412133501200121516270874180540114290633267154243911579357113427100227125450118674234562284706121528377600797340630289776027487720074144697481950415560570272829035397333722146809949702875912968469947077740741511189196766013624314292712798215451086502043027545627003807217703387307097386933965296307506381008768007384397544341573071956824937007103499871943115329935609225153283777689001534504214199402767250386762382104368086576376081161498851274980634153178666486548135447695834551410799536062106265319858875240414498434374274218456562502986833408260426850210953150553365214499194157877935413088968950567382506248628282797936192385374232723781295617960771522992914247971170285628967899163725393904295667820099127767056282030867041392135531232131428532272451514095281253055846457779102089041069893359843776265918810217376197754541413823175685500313223926513748670744803533278388610028444521051640216293288682707602469488839232247385382516592869849186535786357647934336601991072026937738878628341316422063715571429807908205424488099175569652436710237091309761366971708913138585219917201652394277829111100893659993291702986372082614473011303804425229898124025382722930638487083693092506599961616832407620389617170716805583066986016596915914435683161212638881301845217833196090765078258640558452494673208905570141438818012931178065369704637491307751965671428900359681442642818336734732965487427553525323216830817021249456146434147400436567796762802809832156374867800155566539729048425740444847174948564826121575752802028576145645783404924360216538615874007984132110232103854682966338257000655661770654475804971508301233791357160836572405043337457276665741535278609890118869985391521426976831056203509652246164159327482589622404291214090336425369680132647912802472975082509406925356497629648741168123225041150235041544363223603125265413309449981061982773093394361709690328615775151632754331853285334512531041515487351852922922928946641642445944885103201253589211875790601384920695729281702394009660192932014802648606020334062973755376279261409020490635416315396372359566706426361378956279969259520773232878614200229595350029366197136447388068444072089868854332098624974684465332590762174888409935824726189261852121168068968940780323928099391333281549565042942760175664969299251125960704137246219897102337283323389758646785421225610247271366680884846373004837344961361464417690928850228348239237621030594213955365060253277605563358057559761728219181056257767004122301890001020083424265520929156089286866533232082290762148708090988044440262465177787702544697403578202901939816642184887535427284929737136076856747430717624662823686132971067068217469263642169333468385858494361545121667496612840381651661127190631654483793294627063781404334314072764589900108766464650148269492630542272340907392615100094971285328469913905169142965262255290622017401883999217161972131205596608476609210181551320622919558754616158069962831416937996114020132837222545447008055287079694022491918404046559703020695565785868850025006201976730849824584872780348135225707277854629594404249141614277485430068655680611934058092252902717423562563692509268324351803282769841395371322467400089119086967851356162571238122870735946021821564125538847592775783333345311455282659702889179791526318778385750364520564536129316618659893213023473982204422033866192273231744724190836563342632114445532767665634628266987429045369693239858399182065057591602452475192073826704772791297607196756510466631966797161684444068624734389672689923191978567021725288640029116959228917894913814031850586545677401634714684735050897054861299909373455233622916388452400422975428011649326616912655831394730685054048556453489749144557926802817398077130651796118328101635451777703471627533690030991523224693359326522937593173853009615593071309727192453680841319003888931789197681268381857648855860533871727663416617433414072919692355839518491605422090705621428785798724681934436282509934388793249537294339220132103839954982696471613391974614652674163176172396193186800011506857703247672321607090567171842947962450167217869642992132838782008602207134700204213696807405434095420745526284118155447192627131754536768202098741527301100964660836225385792833972851707759509272560277635583723217511376364189060251839348455531458475321973362100516630042859611465743550007074378072060655553749207454032185232455924199388064731260599635452180054604406460226986742077456821482884820297762821774318676040321344940330045177495987593395059021672348587843647211142880901549346638974585961747855196940786525065201791167184260381244679844463095696644804500702168020257956970127060914607709526673714734350542251029126754833435827338715773066957431982480602724670358983634157647952544226315803722781322481469353731014862275974770600087857311641242111461620234753508906930310190372541904404698933643996432559142056418110058956121042101686672578516114579403536684755765027394252004848443947159908154758371286031956710013268196581272905441504433992583161465618584574064674078060225296888207784409637718240619509454188358019236437552177608765142383195589656633572709547334845294911402992163472876929724848710062268180014404718824362335099882994251820481289785515176971058169290707657473971393120289745886163665184070259572015698127151900466230958983944937084285549561118387743585624899088348596020460777413989462770698291992439060855483118760049027167281492160030957283756849637783746853232309870341638885207115933798345714504016509274586985168008467621480146205408046342424515878717356609553249410123688864759585255428473694930985420396080873076053995014610163933229713034918714870054076903677388961484089917072272715739659439310017649996567498352287706680064572522381011660083196161559373310523736455915082686179359206481438733560341876206210705594462759734469740487968897149394920218410847886875925518269038549223344240973058520219316045617401226383913290332831408103980862093091917816362531573236418330787908501974675348709739518978764590622099669612890910366189248908982838413358506326009128863565583536227683480105499345999511877552421848909203634154425394887969977051513545651185155331038835232297927672844555969066305614737300271941749961831246002207121535440521747498246646775343768612686999476809909152912310520701173138210764384961007532440015505436583690884794715240611176130912099269789346620862856842778887437886662510559004072304650944658783061980730707392116757851297505317972499961771185769016469146981563831205883429767651542613979686695930332069758151776484155316550490788345060304020684910032532740324828535651888663745052788133746048033978586759658130945244905108619479392157875319455316831672222233114903179749855183963242535738058483301355948416010011920420120964721860132924874926881231206772987885384455950971291347875636141589581296498319680175577904301491853002849954952847081724022551948165767365833789131971856859615156472356478324343520331480802841594281998350863247340005782641200843195568021634921128307871663583108410486117857055026072038186899585239488253750394486114843031693127383711145021328401311958883241342429875781235257275399140579204091446664240627311295016750108718836023423038072705600758489979703626185684301586210517913626514187383137075290622152940075651366837463657193900820612219682741793015920676627637823238901743234486315502717790507813040478758860159592005534537556744374705540594695280745639394387891152694860229058856038589511352531505341902988769162511819432562365090451838580075808085436806533349985960391018890148103779144936446958092825438874610483509430824294126899353800814571042368652487510309879792594542164287850247557608835338564836889807397534396147221852332427420614619640147347795594725933337749376620247948759089720560426271200445578621846839858090817666722761216376813729366039580619114127926397169026494971658663469558953483185186208791757905377969430616911254980221178930301080753754078915223879617322267176377266287690181125049532690267436001368661312031401826094747797304354746998349884334198068534740695347995315633394308037683508440537401453043779807265431921082052869363489153151165867627499135979974014331537027226657792321709531029560099151185724482445733275078456115275752874852165986578365708413132795242885047304657866124077338843612771238585340368032624634081769293947351030926536043047099446844896477401878924738980174870773945712745384621629909608017026245091062940164682813705094936403730705141862895239683172268008487782564121716251802637157421702998634618329508457938602560196770100248564508268574932448799210510284475368028447248243585783962657615009963445986516717157658480480272281153822007347256244204777933863756872212410646392790296030163678222760211640533268123009827580787394226511586000880981053819741992325954580014731352988833224974297486690987154035701359482373963452440242264621494832034435494353077817029779946856061108141504770126341202829399954532535197946904362455515683124369295530589735784623344777380694550397551266259991192620987764240064775666953554419955890490162150066267720529512233458164738673199837311450666062374870314318948026780289550601812538079965714786732612300980205987935490822326370966320886022236547658392338411534914304196227022271764989808473037941025517635601054865491978628207885054130249126320461450185230956392784437576261720831944248230621575693390580189464894240132291719801214771509212114206285563382163206273172977072602134617872252161806211647758386245150649152387376069602837657437113345480893091688114524304992922543615993757898839022876397135322382722047732645346569840249607691207233404685988863719929326195303832657344666191524144003371054635086594549993646604884845197526113383350187659719825086007204591788654060036362859734855673013641528930016341337416103983692923624837568551607936273703964704116190704991825129151063764624128326856340646097085897625471183002372318599982256947151977585803163428682452476773179459962166996372033699435095701427455190167586778624461100188405798948499997810713398825946190675282917150550003603996420838929242308847018357859342908549565186007723616128526461458509335049704025890143121081073486856461794030375163660652886953442008453609900977345574326478471351728131750066542661095751250763222082320833009052210276318929214788606473934069272379490722472504406694788171820148906661178661365309095297803715646235723961656441106005230438544075483865206285780703940521843674424033429828534995440058952285189877158980339741304040445269658195141688198873175980481334710716743277547187696018046942803969365203744901858740349736690847979713440805443314051383752500336804249345320604841316444700581845166612563285167633498839962434671970664823763152731869056918044228809836460636321859419707840108324473500261458205437969775361250647613150737070372032589353708737137568569955937573513890864114600252843073930319653440217240820095557700211924441918959262535132011257421852422356832340856998426259569276457578666666290482452472158848541177562364711915157778655616300261057610570680976801219558304164501334291458088432671919477928929117818177543852160218243502211004489895169753606387528556236574029163813586931935735253116973890155354470258676362838275814249104015215613590638026282626357687208025464874882308127249194961537637573745426209550759945959673777274878352042885607194266527096968871705110402087587803439422154792646299386046646629911872677938601617252092942746863419325684281965195312339398878321637967796991375113937232243172688972870385962308458957973983067111202653771613094059182133804476778255360518556505427788283240440108909247646659621143981362049008038123390126026645550538940643381207911469446117616374441181258730811003174229019512856317884040300275909709425361739959290649639434256020622804150384930429860620205601804184811295194257084496450848054586803390692907162509602199675830865729229764587517547678303079917350233298726110534405340696772031293489744090695834410418699091238667508435447035947425647714682640930094684967794452887733839951642556263718974018550446215154748274640086889636137612899115037210523705561561393864295807627270073550858423570511125435858558331282859497031978201648231641333988584298766788812479559324592604369675134782555641057740766719278646029854334627114140220470216172150677700864988209272028062006861854157598969067186034349726840182415209779031074522179252293847006745390195010965137029782345675602542812488132442039499062931419731857120550235766918737475931807585681581795474332116245685446549959989896139425039363941776614696022279253959358140760838752886606930653387518343836987173007980004003550911785268999359475093150407100309437718950953422774195548827042625521504106359706547839008098845968838284767834971562559763638330370545820026725717910006235133637701253199980480740154770745564059858867806229298185315064569381779096003715815003405385051801562204402391398048912465075048808702806155759677063767839013881202324674963669574381701087180864494461841729561016821657860314619795773915677329089176284794265649638816674708425395011066780009383263353145312929684418947483991144159574509807307482007531114334331668527047448585774131946753406103319805924964053205655020071828620448525600549430605610443164890712124618996272796340939088921230165308024465907702854181866091409304839331305457013019991634006696760191360602055755252777181681692606100893650977550433179582343474949685131174662462956713946431050674582248138872090543213681681105922069547625697389084874199328152525917121383559465750664452421432635810427427529385507264506680467879100959625672298869915880358566768730857098524504752817038615693015386436190387147101073270441450498473864261063850370383158104490800164715439442722848842762127194366866121474980847157432389507773313555890244594415137571258744526025629098191597580862439883414237718765241111180338636832221776833957607167800792312557394728311805386203531145502784985267480561874496727749436313446041980396483991901537792138272720236353432934718326699453638089813578598004706912824115859179503980455262665757786536427726933475027300250549238880160719629322115144672985970069636982766828345472009318526203031023369140657526112136882087364706880463022368582472853541108351608017182437601494648479286463980301663681254060306024207903365315104867799857409084738485380579775023004268663750809106317089215547163842192715542852848797912608985636707915295308463402349513325418104812067058882263046168881187526442411224665928360495665627805214415259901861012935147283705992748224290364689526666442581508169475832443609759220735191511310883584351158747547313616113992628297098572877764405266945720490954554811836720919839503273553716989905733300666858773299763960156489178312245147357279692542490916360428400103551195327567853618650463182350355626618275800467097691993125394085989502251374333231859698537942875805313844781411791626628598126671449972809786730275209888238357872691750765434095676775109343786010881436480242819394467044923962578983617598575716528452527583087562479933120748267524343542973640687816205533850492776179059504530140933471988963492156614091320196947949031419151567669066727181339314219057538555289954257382519745132884549050617542745448619657133662514696454717782201556523126226214620412487801091227935146754045797703944557907448504070406938838265154226893105947845551889492729101144836189624839091420600172946814219039981534714854718232326450088785162304228825680131373866372386383661538963753386443225025076903674035317422383552963671271161685268083366160610126924272341107035710746535885802471899534536280871660716189504483391469405310668841278908538042251135911921349804154180217644840964653824214523721063144262364884709597431612096866866528135105817617021243584808329194311206170117592888420181337585201553600542128890444272035137930559921371888408962551118640865259561750759787189502406391438783821172233916840220558407176208201824772336465301706877309900472472976641004414819087261783492996331525560375618673325590156432101931007846957761381750713816356614140969208888349661573257192960297989185489685535560692310648924872143935119617008609315893901406156858175254599936783123586043177656249953531197376238356995540443419551939752258436968709601324758866048397425798605346130707846335389343216311464759079024578712010980069938347969512557265196151057907419152194421281330157269387409336057104170936177144621803722364068472325916245056061524621235124198790105147053277731867138079949690951003997463658995690029871302824663440021193135999899494799196997299263057828294205660868689443136120675102249818015318120922416090858780612178866171576714932685274646579067055795434857993539292468442066425556129840966457348200966680207466007997947559379867368465014950260152599489047239349623171106909332575300986665068222109038768957193428777315301651685274393698413946546972601832924119388641702873519320115019789518566108995785565496382168208108885286943937802439311758972272427279214841412077285188769571269686177785487226397222412247324210450872415717220910070740161314497717604074590686158979858557336966950502907150289833407960017205003514176533204998936883978365152657232928949728524742941134878522782371487905503494574395717912683450727075275125793011619309300720038175512406340219905964571089691918300236728923692694556203827933057276271807348009616200702371850893752205838255770094954054430510632518876238048007519728516993531473990370473213740197519693114474835635622421212023714807672516498881859298499479039130738240760050771232287740731860294820912992282988322505608313768224460322016082815708972986096522322151744868478263207729586601500139982025117227164981244410382457057585930502219018108247057810338988314260453007709634139206718592819967181121298019773245346668350911751740611642949856326477024239302950002586605649299447551614853346725538478670948452458141219189175014147401890625961162416136505537202684767930679292915824046124780713995076290674851339786491133256216976605781420596613851262836005059344585183244094517436716723288762206171483530951988014239253798834641430227145606463345967187536032778439849268341028247102227316720398025792107342397435246090895842780968185798422389212982463738288237411722665814840272641649401317628093541010696057764454856318181089422916137017869353955108558866342607699345552453709852584238382632711388654657891659184345037029430065624989386072689660149087560553637981782242512223877084606207676852862435343745496741271931649835950461392385134672213627359185538337810978476125521350682448250295974075851654948647607870437608908503626987200722465795250076261454975068559942611804126110180215538809556077895329661365603326833554781960756499493493812956257508168623928075643199771118654240028787135090435663736180730820306079454905072527628319996430786779617219866463180509297231745160090707549759892146623023088996005136911171169357753621232130096597021277986998276929542153399978378983012597198566190248830764657794187506764941067340928404520290825764774423548935356817222006982232421672068639750881775439529059427394386864184347786534546775032899317878111243351969809679255785546347616518633086931089327236447244522119401189437651205615139601219392398864898148938956499073175940871482595631328206790091913217713552391893392941678480053878913927574937603669404885785840830283634059400631574588488581106708604129854144480611496881612605962892652097707210919836413645730631925286061101411064394764169332690229469026113926104018356517738581470509041034778653074355281351518325530122849840393155810498762212056118588062338998675668480592299665250538563235500097243605782126260401137394761253023102164646874990680119098451426363508662040524918794111687070283308881601113167393691125594810430597021468677877649438015969821342765121640339878491150841632617617852440971505634058003971629944464637856857830270924425022215330743237399063980269479070845411734952623897340152973849246693502159114872947472997604913744840672757795811416693332735913857810322177715710542142273439776843047190941399702156142274428884584683336363270026602337112337680407344603791327319457625932606439746274181681369813267764094075441449332312624255131994928020969936997037162117725206301614723267391224747511471307189924155773421917303788163205314522076491081057926017450332200038360332453503090589797335275345298508505586291250746746312891107342763497158025185347704198011717664196005673845714311273631103812733527801024870011900196579650511264843395162767122755579000752357955378055049378232610489508100090472184928219723847334218009695609076264425751262347135209436322344913439731954001708325320156053987789195687142012875232973434922985340389195068420782530329186477139170851968269820646789355189125298440527422294496385699611495471670519204351594661381922540701759072562920856704054361359955109074648296948766320995735779032519225028613079775482010253787188457774391929313483973907538378006215253459090749406804704805794701347345132816305970690277112467567579227630817207023439211644120432209341186181356437396245378672950146252523385797217844385098229858821104371890633182130855629630412260523966448258481804903430124472514804109237971565947337800195618518937768039924841610537245823191521619093087257139986363518970701247169387280383213858667844039182732885350018536850913140610587864915731603944791405663741380238829238288955161930469167355770314005525597054060108562064047856664803824020940851865073928127888987592074311736238566975297564777559599008191894759500255909402167537140084770796903305272514264006503302437677492278760312385686216405367705135745832207130782679966883143560252439775863186998400100133450228092748824357614210346062265877243191215594467397775314508783058305567339414758429299567919882690941880358387600502030216846573902372229876786478024413360028812095152574655715982275648088610517770591499370471380490099807940588592675097869405798813246706062767599575566842174785416866152747172347752755937987556026924629274847268751778999157334836458331392803272448272450601274982129199853830444842881274728681209689569102818662160563761894848120701949522215776072924092889143549135285364021491663381670182831909006601150820021921130971147638378585032716315313331637001941524775367740360415683502668072889323863486890784838449220404281814281676206278223883571251932616686460245360795948845033168390312515239865642108883371460244552444711447564749425803513369283591634518435710620211968299482348656328107202295174129042885388130136808985759637446992443260708141758841867496004582225514183895891872303036620865061696549598189523307894510869789161733867558382117517012248266811601687859953510179777794130779762927080712943475874899586859980406788389583876068399678042186539217709490059181236837781196424667570431578053498915977077359375177056584648227156937008610089620287035000826026088866659167902818277846367676440907079623927249566398612696557558320612368439451935032378331781865130253058146770156478081736197541822290554067999482104684878843928639186905613931848980009693134746786667786127278727597068053754419848912435088067663514181732723195977153341151024616433960249180034349447503782245653681226865030833975330589932014443132274960999206363638866056771698517976382799241890638322784503604443848269821942223337172072445756188644579506635082134572684549414599603055111745210833232510746984944286418920731506602614225267200551486356910665734096360520716683115157598422431471710341626122172338704068063893371691540089845664027226134104367476750403441206251133785257446442796174067085310111372969003238901419400208109153811861919371070929876992037567640766275074091838498994607268309059445159325914801071964308445137511318419948337011262115669116366978251726475975340515052791725292639597497385955826718257375344316496590584580850291341089200827711458134514202224633830457325429764867393542457773564692809882772961494868287255565351803107223051790684252801800686926715348119563976459999485011773172234804798675882934567502051386396220167591314495327472086713381977793668706471379688108508257216949448355117352866056901097714327425313898686143583435283694094971948782665834787961085387414453299979253902585055096062246147985608842635786502342023928778951727910996058528013696557954386881475009091806747249231648049095451240139987321820104208169209118651056294635074489879641145873720570070831932222678148044966078294689319482878948211843313293639449193963986184062181098027089274412093106897037658128985523099031167600186071949856659927650621147728003188999098983925541964311251497801447644788504624139688482456985575569533788039195375069418240837319568202619839988924779540007196938582912170008406373215877817150026768544416842107243594908101502269437296938213241211463696087882703956869011015278041161007498676507934010600184676562355154996764251919369721833035985196264678161251781906500635630801537718062998618782949949802549077528704701986927432224226426815918139275561530415485019138173237679665710380017596707220317980035757719154600626981345462530454949534216202309840480736993383414856655425328097058431769151280101513940819775850886056852060713326630622874699116520781005500826711886412871196145027218649043013875986683445496119241181936961856464645917944997292647385532313254876845789766255355762054953119786458098444113132055248290962679450728525194032234065214659779085430225474812119103242958170330147564328527594934223491691646729321280427519070909938878134353709999549525890505483611372194026590262694212261077160408580776724422427467487739731307130271507662858551266537502510738791051212849148628711105247679144801718720694259731393368618534527779788967533299256583613407613142472464114272881343687321790072793456364122218330989238687360666186512620097226879017839965627057619788505619951521968935188925487787182875943631085381073265886338405686792052688550727120456811768569934364324350548817414238919547940568713773514569885776211679727980678344031065041859845230417754706090909074447001059274870024952750315817809200675502128282764112068152614122772232860801164225998392976655118563810296375162795215940129742187071920037808843388449261403475902431917569937097886837091048550860386861198097411300357054349904286465756178637961836451732513036768430595936376712041784951185056624262884703277994185752538318204940263813043308882116709321719841459017497765883978988534404045882566571786610412113231703113168457510656705611009839142028925087550626586927516322448558806135640695304751669089697101605574254123527070300850356836157970335185575057662353696057955772631695065729257969741530496455085345615391845519371030645148156841088684198966985647163556109418240278828991276236280874603493315774173089168760890233261792871377881211126153090812157864198791860540671526117287022689257622596405727429821423887502016183764680945130862281026515543665236612765243010128267309861516720880104230452374349712708848906239624750942151043117499777825956201841768092311463090234940310121475118531058546494157144529061566019078247002426091525137158452951985948723788478237327718950175230708121803291557786282244736161704280518588437551041436813228774817546434945921673495556270094376352022712951209953768210672117814529448815657065825339702238951683596843541630118564278391503991041462888524191142109562856346135553110552459628660207091922305551169554394590463873120438904241192457203699089014075537170125298702562602829963650442184072974382645194780568382010651040146242006421077509992962381730361610803187550803035608581628271969328206453349002359951639687976480680443095996482056357635372067027362789499313417103323201002475656884619550110524572236908526528792723392406638463626610500875755789189671197737655685159240175648698203695986294752927878650856670683547402472543145895726031034508104510632755458509080563516661125219257354812601319947570350811369157580722053849814550190199798777664412945379818347867669632221329092139555411562383632326827658840793734175726319253454729222331233816345556056036820366997053732697611881372486369508841120782101214342974485251555686281664719301728816858458764311982603545579384551288877906626563204404088980097773328987556990861568701856235839935721247636710515303518748922782369774553605380016657083497125928055704220341423270702594888123047796315236019403629532131000317865271180210744074611960210248483431416201658915089168326650878946307587411437095801329007433870294197054624537162665132636845839310670278785873233921544778093723070231876720477893360449994570824795136049914796450711033953314410380033323161857050702208807148719512518883953111649539692660293237442341222686285669961223723894247578192671827562147874842604253420232482851758224732326423514124769872855405297979026314267277249388468907521884387417821950780519319446987794570168175869411716553195263512491873625468623161112626628827199518985634449318730280306363172016123588526865049000421149960458427141571070121000416059870776204195968031318938388899191784472920230916113612165825371525380975554645355971788002012191895611720334403573844521342064254668185277885026076051642733211402976101909231208492438154958276094048510219013546423453106045047119279969399008647609763391591064539647138102280885449418094127825486329267154779498451288994685019107591152919006562481433874924653440623700544542221287775025044612919886701045153213875349985514368007954393566113684168073169763486353625233064205056612583563414274816401614529241106050480205619357026106120366179021200696766592200511888983430423744084154507468185189103455582481155864532603314837385469135470967542377953343256849793325277788259482542493313345563175319227849332865793449277430535013197969634342288250857238850241910227648941572481721952763149643717738155520886493220945047757850584813656324196948750793645685800702352402503955073398230913281062582110179709162469916975519564728519334065279630832405531792393132632925815201825633133281805911923234384369927615753491597002931345466678363013722878776812586376367380841582315246912738558710970135200699890860166186879072348334755269198335599400256038509692273636371222301764301848090550362145988933510769442306865447338791101691274603368556476864531149643788424289923614368691959415223883387426444914642723176218873078566197390942638836085513423484359275870490578829925837020663091264722328476707573626568825590155910938862528182181561435908732097739968411988139287016122541534628970367580492857171207382256299957160877896921207554870786259400714294690019974870611258315294141062008667055890124309946580141157742146605880593925138545080919777580535646276958453448689239869383470054590787067046326288734385826672746080577992555106944335062114510399002652518099469737963210345749281793294009090040818347836103752314678995217415501594307057935815066845600823367734618058712381161944163042447835262668915325676766669206087126310955407877024219653233239662679553778394393132161924965711100309689772492901495836105407470785058531933789706472945021119834999354590995463624080260857921974189577187400386841739334011877017810515204997734877374550951622075830251274823679118033209454943619113227517257029801620292086736880798566851126572905960991352255689396631297481729157876135642972325125309068303543598718971567842065170564412690373959845797487292425901585529393251305289895494215344980832390204312455698926727220465705270042194968235910072563828735528390139780530366602898832214896973530713544065885967076128164463452530538854756495248937553398448781193019394265916051699819770372362452939085257897246751961195517222192034730549524041105693667415093435058358945400101969699992522639583057675638479929648874986890091231119160060503789265325435700429542976325977033929474344207635225243654677982763685668861725628014608763043441699916416540536720155979835793522208021742831766500277410748132752702185700362161567990889434171136430255401963680684657335107026945369108327935835928355710695721130897150083540940668058793253966057111153495159364819068707294189788260115424736298408131976940376245080177016641005073885289598941426057482267781724953904364042394161931628137960606102812272082255870853735895079427717697886121885965763873225136400095872520249790970294939307318980941023367216321567530521007613889640144234919358097343543081619998482565788933442171680462293357015254572585602206455719886544580819537810913800856099779087299077698912633166872284607586652723778032772769372232187589791370257492285739037163633849811358581890493070205661852808556604553606710561321440313436025763333051668472259623436642658833448608187753975133499170821101670505572452717567292398210251656481051344786231306543875754772974825594671676654475239772936820700220628356955487494705756585589818487529650677003141361442388678490606856419060998793667475229362875348434501064668854481022102279200544132329689857370178727458473688794686473812230152067366154344726732783140879241034771026103614628768104877157280202950524511080986270325834368622062574185231132698604997427125934934531355409039101567404227347131188070547654422548864679270012925930825609170336181278154648317397904843423772035852781754162906876255831971174599371071470275183040942658604905646945258823583170629261478310976718561417788026697380795059310458926786698737797181853685073318055640674259581812909035192290744964981279821258115972752128252970190832954655522587687994342322967593478133435199026745426518548881458476881577360780923791717780911281594555638614110913339963900673525950955430576542554698180526625072142089207713710569590314165455300019394626732948239585888533621538104781536427080231416119732758465348427462224729942011651422135094326071004314800397957411682745591256586540012548354435417944578844125347125375528927963689988798589243300227457165760648287172528858313057570266445720315541164123726666815498843295801194981963610486727086005606844314458395986968107419713385684303725290873335472119236626398148379253290361013050357079695936061411212448501207854002762827857177341619977811520600546132236711793012157640352414868913899606135040307759045948327073603811176845084458535330606469247574167776589081867806612544262695372571856595302150328846193184898649334564377881119477478814124699711603694549584890539287394904914290052901961178403849571374631569711836676886734631587911656165133516794900489471161957067604825845546389694048739291536092843038974330294453110475645811035431194910045501979994565582953654193209624237932973428053129796247343363685813582671168415753581069306001988486032633706986667980838775859809142324823971126975473185459553234983398484284616214081055974076230606251950259027088903112172284545049704005301792653196876985751770395165498319792293613080415389844881574533093271774695827078566281892691061478014116948311962806347240912487316869844440168704045047870672046703856120776676163393477633131770308196292461124952697738149065036400173351282252876760452171402932116831746835197937446137390136381251728730687065937398143780160881974404196699082160005502799191258357781924356684181007102105320522896151476365430324157570310199709179496375212575446723460628583315704430421447221928549954262795577566558847239304560961007538887905334331329630263711998414300470233174565932114233956117416894450847228309001185366726285034302598826321104811262365116566643626123000966149400194456822064300390116610706245143327678666151831290652367959614848094189207204950486993808582128046205761313893698110426601441795720685278043735748117596145716148695377485697891606546537954779465138836209768997055111530663395330019200293215241536740056666740898877546767995466471016482255486984503208911526416761615014288196165647506707097264026039664651064027923140449520850715320536645731570231342108833480753177532961756666945764097586766894574006086730023242240787880079806899333319721253335916941327428947667146443516592675736664151145157014487758763910206478814029610145619432273906027327592852435340453477681853618989302761012533021026452248608647491513242364289421959994799022141572072642764191357406718464343901651649246822147364509059948826467328530362726698354220245277872941008819659841516260555094689365593019445281250235442692761968459302884398954983302517353212750344132520227395167639909047150676269955367946272678011719191656636083250450193655215439414389597182028045635859376844580429126082500580595359220800437907847599938146799971013498415158142303283971529702951587559518642902648609633864996052795549816636122742668144335950679460741526384283779307847186832692632999253038622863978162000383375497862747932867590788763326829700263187010406547212141191202601206110758833135660440634879594585120892332268420895526756674968492678359887449570593567643012243882847843657913671474931711331440894773031306180763384156717667173915506340723044619005621893000695321151225976093782808570060169897257019382470187809906360723727647149198764033450252211650060153127504083234935112253175653450583865825603804762829102457080631578512274477644624150160584146694594476274957401143430918358029228564693205200756609718617848284297843862707482645264920768711014981208380603737609583326749280445756832597614891657773365273566947801298045169142106921537732671224207133277560746716928985470698497725372455201113058507257130064307129540951846638750289001426680690660139583175282108362116364524562017526276315642596714367464607048761120210699929016907173763325036305949876488440387497711421490413097804343390891616173681277209415758158074252063456475057369538005896236418154080690060277747504567598159222002819756215186975641289636609804697053253585200026980452255548682064370608866873572323078236949419204551133882630225962775626067518784965629649718241091934345780977529409571147712058284181990580609066371228676824238237334301225723197773152863463311257039102308384737224778793056963253646482058332433266259806609559023716620210870190372951432636377286677059402157517855665427876526502666937066539323614231470462553323630100143426057378262392071470580601761608248758740286146380237156954654311264189837357509902048249139480271582908305681025872425915679277421078383847441683569618415601005364217850528701387145061945199493801432601824201213907505208419776673879841877660237666754209820276108058038515051458253580099908074416015227754032714968495520137723564818306713171226981678712826015870742095225445867094442843738152674508315372631514335560222947624777771934608703491976855124357364861985981183201143004014420209317936346625634691639540948870779358913441878948796064818472737192523563738122061645028795688992603291802430208716778452299372793427092290735471691539961581803514460463377656762791434573245627921598667414707304954246245014665445463261786648266495192902908173287715025214847554031904356869970489391864748053316129432257084097714444881803313670428007106113569154164227494961415485736836406846006022212055275850537789827397961965574827649750767479864069204044173000519886482252924954296462210569112629927366439602672492935277544102098953309057095853304696506334708243748346448352901543274937400939158131587656889487286734914833353883721180467249369117396952531596622269412203061814378702140704440949697357237882116561259067037404390477980866284435023450576803832806179128614440457413097785406641294772564017956410202710332294892952416816967298532097424678534357817916676245223017526408720981357705756087125401026561896799620534485408475988968994554450598733362759716874239076353868807723327398464918432175600806735043986775025323189925122756938240593561733502404234447367425988585910171286244118753671585088361889756524447379544685643633679801985847107098419667333160692151862635887949486290463689677024875932518337680794226078510225422476236292283732186838454720638316015384888220723431086886033639306303404573930667822409730979736839156460773178263714771480867982149645149404568924937748545076903035960250097443587771428666337365803081079430576859075881026608064377740002345766239280375207221089295316239011146825281240762786368432564100720005425252040275068660587815365486424606686208878541402707214912535036673626891472116317149847920211240045232865964558532940612469782968862608488571615133590836719570456376925376134076839849007762057300504044619612560074015641422201951398649772330367591146843279385065575046153616478308513237113080783346021362243877242365974691940451848365662513609468252311810417690283047013831559773890669074498040670262475492248252909222631150281915588421034740392663517277754322611677899545595120719387942323044387979708884036474859108830631680227598440135426495570377213349282265841551609825313806526551977909898183860560243428972829899885579102621656412736431824128616140908117234543934952473120561458845785880383120575623497616877329599952392783942428411460247499012629323347776195229112355817464795074023666439201788426478398628243773251706220181998603365809138765345379294116599350550100068134795452040484261844555304994490788887847354847437586605403700600970249908126441398722233416451049630867601912865405147573201953195170214422005886897534644283581963403177547400689268268147950786110915387194955552995554852779994749679414269741528837334431711260902262115992294168894061030227390634711555596162015643013485892553018996664597075158830757174681204338236298356352574884129758787689029576128717618056664724406157565190404555177021405679935973597845330025581493527098816791734993717624369741274685328026361441823779065885379049834187907081615056817137991744803278160501125994855995655694241713393286156937442957640516531839887962512745373116159465839720553629381907990722935008788279286204625590354663774904293868223833124052682966329034151540866615142506312920454309730185583032437723580837840735345386485279297908888751101672963869445559642027794916464723771273670227202709232000432956734716670472835376456502503270084426700744165894195921609016332803366192013956205331825295410144593564678698982634610275690362374783772597882103129033600085604459994333821445906624279227361366524972012626595919437234268915042977412360570857928397526546732251058060415851384845594681928142020312644640414729974668623202921249500919757350953985494665418756011602395969526890560102914124246596215365564058823423415575321000724719490869711289068295111373486254429567797758181035495355205409777463933289629843576025064477307707549188020142363646024331474865066502677442930969346642501396681607825262926184385907243122712288223798893199733795726143210040257645746644318647912285605341425949271834702510573767016646225251000848745484884645565480725845171624291605061716285587367358795628556667517871795051546055411973761426311347687459285419921277339194229499736375613116751605222780785290123270906513020813408140625939967026350715530604903041952904258955740053464302172908513454592809381772970089787523326311268018222661550769506986088630995050320665071255257747177436337374038203890138549602395644137996942013344721596756095646065009356837282601419184652728646784823647998878234985937709775220471567910798304418026852482339457250305180146672603223309114958328743926916174358035980354452529633469476690065803396370303777464135408489793658848333869916527580568712241244643673302619629799409663974873487571644761508479239110854615743114253502170129754752380229387494695852802634939357469628830363356915147731181435830218958767778705966527790723241629664417948958976309414782629936380527723951158188691804017509910538559094740006830655562904326111414551728772831846703290079749076754401825540817011748309155492332008519771877384056376925861768013755693486899960851560548223617499928525635941495130407776647260485469639978652770649769970850143745664418650833943966286006813288632136785918169301026331261089973519628390007195858122253732551421382505567636148747973501579512694957668528604217830670288793687777613644360782286720696515225934950359005746949699944774160425389113430915728161663260189775607001910265225461596088320305654416511285939748935924893523215042596369318170409836227704514237820476919818789391957447935372789818628670773821394110360774176100884448532832040534063082428509192299046434628493041335093806275922404058504698829396166858262784934594287443611371563365649356950955279537476341457353764491509575699610985486692470631311833866204173301720463623591207819333491407775097322202610829202895864795291721152734897583290534771517005749036653920111912513330576931524633964847348940755993431150215148871978201343207374808080274336272269680763321567023387150017980832277087072970953203872035460486225982245085759113115628737670469627219877226313442090778391971155268308990125336193092749630768428065671552652550906827110900057860453198748525486377766989699035039107533828997984685283939657433786715117167368005665871662508176820950166181930552726278572972945880546277198766879793089245378239567177400991726770757829291166558634880329847372524967878706259568853040581058088469168125203049306157630344000822200374336163306065692853003570735917127899025663579502275312574789383634038982897099103592244260381711741791952024503569377226029622347830878311469735670926210636159698240199585611498560642647938419561527775864622391021988942672945210738910590971468082774654109849395315327712153853645886853424435880952216192317335419890627719779706146821303265395513225851969761793904119412784321907615688143994598633604990645475897295494002934432035541324215211063868723090194774362285833426254571952297361673737787008303651807807284809769036456494490384899286158022794193484598378045083027712810342860083097899511717551522354895093996347467976016840188123830057140415939276748190075183362774130708670044879146784176315991685179462395183609906002265890317755628228836266137467189095077205934923009957812478909596422390722696618540533893758172763937619154781963241704811513562675733810277604914068177693822770383803132323471887509933504063954923266003995158608866790260925032873329840730206664215089734121103233749980144249719277158865947122653059543383183624921468620405186166787041755064188620894374358868892784794487784043964517528421687319466231345478854443838371528893110650903290131853389926530980964592339285456172386435478393307843947829712119452245780185815436670236185662585531625818702274937185328537198512396732297576415235293745952347269731931495242257600237883997220957660095923189169590987431681239376863737913165140121271269914338015778493601293291409132595083522172686265116156759078422525398331979526970139269398625930024821423964201890334036067374964899710741354114241668871148797437868935746834172775672295069450338151420178008696856139002073842544548388247680914995469897156844268203249807928850877860904040796912357086612229007094908429771076211301171935109564437968905463614626280708115673769009755088343871489533670829569802615345556331692455454790705351120184866702257505745521781502117992292562649315901724061196936982347873525754332941635323944777809478995118704913555713892775647611980349317448806855646889760571692113984924010388629452539560668021506638239136400542090221421444692810612861791311246782569829135874940364044453408271052215567790817616781329804797710925197846461074140472264397423184529831977399487278955414740582993673770295763433910411982475944615049147441960570011157121801989377486274469792421773508717996443016092049672704648607807511235720899505765729006876231838794734123182927213444977917704307065311275503381700365476700487621244841822157222647138966256236934129922284087502696477983867778850588621075141957865877872924383257508043084937638750460541149992335435955874544834012746224026901848401190205311914345721238682053931302217130644993518442615251522455996056501392591839481484022665730069061861546090868533048819438309146608864321268124297849815045362833311255443930651073787693057811550385086987461570225585789238909788795097047076454820734929319920784707111307161627856043176713857671026403890459941982129534987065685486945430992001989714259166044969158421017749504104389551192080548697798847304093467753595850077178283003697866766156493704699586019459843749361885729871144730443386400419244584389150885808607977963548876647895330179514334795624902213634112408385707807750912122254809765691897500172382319211940883418105991926290977416867951767401083552190089895649977428163678817813261349967158172378598683261405274437328258214526496605772528872772637398283948395477768899845183785588103251528229393394014061894858320414813772302519335248992856323449325005266403995807563005805467438152912771820824245682640931734532881924878970969899818409387257557962242251578052892677995896660266250135825165532769967957596525275087469041379525819360899705908553775851860013164548213476349802932089486110510946533349260229930071369632758358674416435184827926799145662271348966505231827240260541896293090513003556659749496097709559726839470138021491630033468588726485392196101222839810199012519110990810835198356084089833554694280600572541533098802212965174230526480641817476100873979373275828700492707342121806192616479693029261307091670903601283622102504489328609138288253592813340501254793577033089547970677856230528141544915050210917906117852382744724710610208962997881213995318296906745119520693521374760019888014905395560083678571342024893760884076827162555330810530273543089614195135364616900526478340756413955081509960126746101160980546630643502791548603140690624970825866864953119593994021138619980303663222647002183815470204932558716777084930987534386661748281711730605768674013324325048705682190547444038579636804539153584175378828943505654190434441937453852401836302324585335603954054573840658135339569452559708744366620896399667426342844970052954850529192332850257995963208752138348482547996080133308133957483426605557068093767638272873614210418577152518509477021727911809061342457625730653820686576233860318431918922055590738283454656198522336213049353476442533767916428700502982919733736825410424484158920223950806124629366231756609938817082814325340176679125283565035545532650287941895135014909707953572074421962919886569955327101704881101179446727057525877776175687241923867257897899395679771263499623778301083007496446464920883819050933954975237267447414125245528188567898798008396562696129416513189429284232854699816998352302382026726378679955599482407657837492196292185341964306465169194013714468158705811430423597015064139368570103200765258121063837121113502757704598214335133441708923463930164125710265776349193060921836549226878338874583646184307453671867101877470843312457409274042248077673594282404386576467509700376392962900123316618665304341087784649389664968404437735725532851865106366948255570293433619261417249007552740900405838890870229866059702778279550645251814513233685175080570388260453709639509828685308180234984214912951469793893307589373590573373309683221157371416589818104341751295695010306078372820615488577651524336301692346879241657413485767710852942432934141269133951287736374333463595934250062394067453547905917234238507623927609307266842244138812606049956873331567181473097196795658528330526188404462631069404873235163825840581088688269491743310066938759608392050508910397737826405471977312542123319577893571274022831503083118277355692775028675598259458973170048123707948418648670975865009891601614924809740987648887970948871666519794876667319894143783964486752995358192115452832300111650807552469380454212610174651626284808563179429539744286658088274832841763052098998186512765722128607609181490611542168958580558103749854346485760087219369385129682907582960428372871026678773313666803138408340773902117472092146909049970200987767997797926418386223170535585146870043656863611000543746220089599835370055676684759192914666968052991175139350090559248250619565888940860515395061410343055762170998776366917312993376973563864157174967827095425054312207783962774646463984296409600083283152206734228978357713730991406010042536989186276239068288666745854014397290454464780284132605031238309823581066226330699276486459712570862041441922252604905828060340739793257960803094977276520761831474273701890906310489078311421553909625525069902339366450704867964845510811383678765246602195151690300936628342147888043117870546461064177375072317761127534491477140140121716771360606409623632199669181134436095752727019443706137945921658558671489419931384010936850198275246592989355803741822123865384574257155549103936472250538383966309554223568305137010973566510536004015876232329357625575822719485003779196407824025599169371526879235911929600124025077266033600394478591168791526750992364600114686731789562329879232042979298833296349979929348087752713033045659635800139501188634305098969899811191936907068343689510226438783066553935536484106313546896928761259518830574621298214629176190234417836108956698413038663370622599772878242671390274020457603503764272169009646718284903971897038772870155636360433436214607274211649155748227185476822181079281221573348439440538504993006162382381546736285166256488050872898089435808263672791356005710964832394085788567075741423547621898247969158293972770877872709510381400741515423996370856758239391938919684130564605882908591828952720288130074917250343264167078789455755031222404122983744827952924669338906045206979612872776227636938283169137700189882147860455136109944904273748395704351866866406348090457979967094809839252380319087878362906682211372990030361605250084202177803850392573480660521324936342168624969925940234157136002723615970029900142184111829196717175634697240965060221401572424717126782091347262841031171455564144410464749684884503119940678077389200357869099317018939704999872265237291886345284829225386260978508820709889859573026587323209810169252501280969164495750337051583894585915371768585647846463189913069808701202547205429560550319033209334486625055550685406096718976302530540598325109751902226141680454356508636955822429827660592511073281523848015382981994596833049327148999329272936196360972949353175554577551911344986496207145627645983670732438054420708797515203849429921026739870848689881736747749992369053840481989561302784906668491481288967218459318439034408964716305228289397471836753638153672811875581466408561508426704585750114383630867720264274146289318155850812481090659668245762439114851429749947182330169398884888730291997714102961464636118614829540453699438477277790942803042811350124373838815222021567556677567958652634346956981234489714286044491169735658873193336048432592103788507913102694203976019072923964227034538196496921093568651905749578241173365792496821545354690390432149566472860241894551200408619810756075936146451202495099556965004609829914527593897935414695605697239305894261194612115735182620802748786638707253603300409195726357429125584857159787919267229826042671080632545633797725365643358436815210494916120649007493871447399595759287823134936425034843708408119652586030115787982275903969106715691133655838043695990576474030082189983913850189828700312283500011588343712388179773115448658342973029537771765183396715764193019027853609877587838024791867641015575099085944438039984533392011987836900433970973057606117297481457683759821911799215630991650388959822163277401487552343023787079629183001942906068763227038994424123459464190592023609608385401918704308160241124257560958874724743245827801468964344454558281917545981547427741668481150276123134803345130935607114565975477709785133190204811848798614635832994702425355501227994994480556054676925720108620508893983877861584463474690048003054913607923552871636112557354233481801531126069676278923311283778811627073820584962557017481127192818409554572050116183015648637284230035712669929978808056963505702378858788591621129380000870211529951776748195631895672216319838546358574976483641098847887316633193347207009133613357197242693678761106797520297948651151028926321256482170332772524751854636160735441563853780080301937143700067853363030237060221216895842844650144528276612479327800506300797584300149740256295743088379335720240592061833074535754109002384205821275967468182819759834454381659985715443668886874923716412924304264283998690632636886782614323500566280832838165402386428474383954648851288734328343575072467553697647652660718190971121105034953567896645564725567698622133207473772677310299190344976334297089435710819914788270063802529082453097966673919820348901809702745089760234244097190409087150114928273009620489153847491729599216030174809584560670493373652528541820305276047859833410129622298712996859865737685770671491624416600619609843967571868717638035890124001475309268479357959145380652183087493318715348031957935962695471749317906755217109869752887745697419395386918454236646308004935648424364956238271812080347568262235563633447737664337609602300746976306277930043290990372758703878199208242312415383106350490802204490774799900968720517666361366025361759437465961661941937423114236596240834080628055169069510616327145693309799524928462053372860934653394634082366322770665273769684947827240783304075614864929031768485750635646096611675052623332736024605018538425424730306144627611417719112147984784296340147177559549711484126965040395607858026896774288496674923554807256475233021831083785232903815346293408934074239648523628687034360920048193214083871154696097159349685701984184752658234605606045430531579637658565121117056530366071065236693690024563910797800786424956693123554238126175605750532071323179259366483220601212120435873660821331223016701544252063846138412233877216849823913016404664784242559572562459257037156909484385552502976230574721669484608507957721293878071567324048030078400151523366510940514985945947265783795237763261821110229090037523398337765334488416114164084112866025301220745253009329359842008980310282536518034748974943731013654869196802021990735516593636933798269512162925065974009459061257440474156808006675104928771917440236502894891841912074062124199488169814760368704358958602269050512019613040306369860465728589096086777955051400771378528958276133488438150033514078885024658033406122099063641461869414111989260040885269038151466876989271158096973365328066661521431407611317473803917745355073192098763050830490033169765495552776702251522770967915045050284710367832758777255028182942462253651700463468111627838010226302234418849001579294213151175764591980885333372022856237582969820174370382672597245766038103387500013639137912424308408275502168799821073081039801930424095286895417490826504668778714234509482929271710968387794788851962807344362028993908733751284649344995473019985557048432811749354297818254240184586858644737109823793974274120844069480006849481941274540051682544969627495941134024103102501040019039300534200278043985524688776096751095568899780014763963891540140778994001358047431571888651555242807656127528448142688891733975429218718543370663054031223064690871828373485305045167713587190368465048280291659123836384769957499546412870009638326016992275722437761629525409678397459390509285010728514508163139745618370158643642337634106012179569761033352057967160079327107357527653937086329117658691533057868321028280069921615247477946449535330173295554358256443118301547453292449837493061797133974891374900686610418538503501047649256215034592607041645205089555412721767743856731461463777805802099715568715825895829204731568944652968024700536276952521336003154455970910510887072838393738632495911873192995257524890094036889662523997479038451800568767639565590200418481014554269479438955638003906066545302929144322151046814587944408165453319638820210542996931469679378262292511730858680927997896028586455102989113617985006238067900975091375835590955927559970484351237055343934972636708960084488026102370650831949120104384470209432508663954095502841890302222406565501500984964304767279412276998306191368555120388067726323486904309607981425900454852785688566638436914729366088987777172186482778386910982948256770328720136164888197426837472423029389767466573932447973377033843627213670401841516209138999814613514796083693740959825207554377809308218030540983218389874003509432774832662639899992826187164843979088650260655794218895917034384203010487456398512913104033366678050163476525547853895259505342228005506700621568478046502058601019330757930634562506086401067484463381028469976989074151252830812393306760852489961272218408038558861185391822343763224382804312184233943953355684846466735363385339137453552941537648385938871018246154175823616012720316776283738498145332271911332616396281482096758349151697687034806120751505767405907495442983816880619944122473392383649025736893337548730414963677866061385438283868577762697994710924405244052624155402385178627195099978175291268237243684108142816571723819637011535074909352189841471599954423096064337823994735105011270395982025362043518941270864186788367100627852270833551387368846851912035797632875744554846287811545726040347968751794697934310970638412262537211972262775124244441588653950748246636716929022029015189981023020392223454805313700428452555969492632940588106382413319735686906739182676668125310869008780703000722065065582298673423500877841893669062702273638336836999524915070583671563087401661252398641472529214004454128963410072384894985054583159046060759457693766824066710823867536679450392910050574200547773519826627953347745252903645722948317233207308928344825296859079476946703022053058609111940279890888775651467996611501148975392996732651318825485511930795928961401753036084946592791222850041949820430531788937679776743036689020767856601266115143785079578331768029782209615452807655445781039454268526373391343609818067128366366945117668169913113800922349298103834014080047691442103324938908149900319521940529578331961387712223393282202584159972251385256313289270106071909231044167933251445194532527318956432859839595605654309671115132272527852000025973661184730811407774031167600969866658304399355891957834223808654358189658043361456322337223208646612183533932848558518495673003929895045670532835029462407081375477998321424787235864035923949835138003043866565045995573077130420044340533602930781070764577372773619917924587396710461208615342205136844387625615904056315070161874901199102213576415527341873711539029262053486759696057789056409885705211353612702255598095390716310678944693068699443465224975998792308049596728373436798199835693682322307039757391202930112159984598041188623970580833666236588340112145814346473715305306584427716560192662828991477046304706557918576388647583446303366041250168324633444786823471275299595076654057749530069892902758819559079644168023841238543788173653906926765413691267937256742248083099195881782598168130514134072789723465926005133104725049974507753987370521061653952474736436707961908707299969142987654746246866342005531378275704037621323556645785082268585419102527940850750149427184343828751031806420789399733439245539893351054705272635351606029553795378063777243515249130296543752415431039231718867799022271355710281682847023408211121013487322004842728934524558737118177957129434502297353837475694338324576935373831024739964917882222310158966207287923508659506423873351825622956996605406862018383652689943414708656205223662072410657550153737372886636259109534981678492422363633790837744635228484425169015293042155203774262396058116122997802969205531565606715051394789732963219633716122820624977121744142915905280346271757382094569387565189073141932671754284255586814641306999798148077380601283252128760369221904192309108951764186441479074838762119814528985942958100167429064980634664492719225282104274925985388604628205329024800467499269875569037808347425390729465428076378324458589498201258929576571133546532162765643876213097631715625859648796855187259255844551205249883882188364373337904093003957479474442414731318197402458465256180332632863372688382862830643259141784539996177628152819050075744521696692553634411263074095422548073415082112011186311917929621518478724550139423985311600730641569423151278239754151127195526180865806554102307796654953514838480332062089528878177429615438371100087793899180912054742068395146040115882778599850126251152628928053415124290716211004847353113470007264231036770372261566798884335914381494377758761373842957720404606810372310113442089026362019952237243277311669099133040241938007586391949460196260830773827346233787235654999465103493006979174207909384439646651843416461136367516779751181011058204341741125737801680109494613857820376055782625276865965390550720408779974263405458792126482571316271956040182635388257426044114727647418418018776861863955183926285465383543820574573170826249366467489114708893318246169367396637737439672970211491292310123189343177668947852065075254131193750050942010835033828837180075369198790089480276505811912550356013314213951800419297125887196926431404229848115779991823035040935711645940214318430767372934495473048148050862260553408431464894183233057319184865504317083632510211555906103167984091263697032575141126083055981202643424536665818558339866475719700564254574141907646884722870764100035975798021679141638612884915551946735816702873910864154227598625033420846956646519132419946817734310914807441604999277713700208957198905205736052004074567022449323976212757243847574349984981598158005913168975327038764222870129466860223895372443441835162512766126995889518385859235539561365725020759132718612707718448700720935298496490289349062539153276645952051045236649029871061052837392584804418196202220203801778866325069082145490276816222526108500824841958430335029645385814395534404995908466197966770729823554832560508288506306337835755329592052437236116912965702437133384963059293320035058462629602084107306959605974021922405727040962380939373940006479551466829374144500248834190969627501156746858859155059815498176809862499647644876447359874596794686098672992805552047939249451432343234015801914360624342750678496122063368540628903555042686127348573702259455208764514183954986016346726469136054092303688734713169523764442095191295090035747641677051779576080826832290684994797498253578896213475023071694007334123109580751179261255337000376735229940359004749894971335917819768357788470830325571982517256129530461283258785196267892655046559337632272002949165266317208209401305438769115543454484381442096479559497684585440007927399419682905116078577229686116038844693832296926777370110360759678079426772004945319140512635880934715717946315284071749742595532588831432237918253507777465591734453373592209009391359046076260242008498980788218758888778377140539313929390807344186930424979382112700038267767899979707274379671164820274289429854267990924875137481296995713791232429138886809731912775738386044032944563287766328227914928815575686202439926184649452845858378689063043716206459884249141917337574761149545858535832513506267275816485145561851329308795923375412449225554953185713486019488568877673001406974087820772814420945928162245844306881670943416390946592667071361547573241994603733041483939719413962859130354051602652548874239118468090066107024164461282191741905667559383027742967270115641561556088112822242726200277705163655776499741974028619761837489768476474448391411999248893401765770574314406938373470335446188141737634958578472178072650094714191847343993512586802879996137312349839849099495229354316048547395774240717131618706823871908551175361473029950810224904316001303150012744871118410896545923701799072363808567272627928010470368236313325661084910061848164403858773367126933644659943147655761740169963582386886636756267403314440951704072390170405737854227038078415969526922700906766254508788038649763765942509418495992178527330592498911688302366893099359469188466567158029378421237359356002684321286965724723968993866553724674427553830187888460673723473292324417503306286762201837639641972498090163777043514246530326030838491363951318359761950362373903141113810800470786569711502773905806288375417762198989857073800365343069638252420907445176991327225741915359751934382231971411480354620294034739237686858885538081632336718731696269710331856892608182849952082579560456187964515096939333769271570684615568625128947648495475101485916552832719069303877916126559199716412582764882894604933714184919941816853411276452288756713222107787968443198786249917375035432528933232578741105616128572460585294179757359482089899880246197321456317792144893657305226812159799495751746262078864246971131039975383043670878674745138815264913126530552533297301530374202297572793391078729879086755316549914602347770701971395857415933569890290847852371408365876127213125979685879338902007280101859703578991085579161635964460532859457389785594511703322817428196495984461849012956934059504476276922683529035011869031085231566443171183962223130784783855053950229187219348686411738258755775482084596002234451080323608720776528917407699139876700767725963492210939207496795000687783449087077683007074954800051554141951857886029775674764660152947459296928492780716940053320920231904458189845822977408056996578137548799264674961751703422475425363298810427159297356140821568271815890195490930493128371279225817060113020201254868436142781469363434002886914186501683964465360447402189355972444421114377359022874767062846916216166295561561917187028791426823516342158209061865522721573109936085269808304930593981379006147939159201614185533356139487460639181316849600601377258033695646608107137773083663125204493014001759862251746058361023487899241580878476913797802555964627866360898778263062572525678700194725885675871761358548220179217007563165874207607136436953140836784747195291451271982562706693414546949295496613938552310370724081764411675373046490887270263306375901863632611471941448969886067557028693735076892921959001319068406229456767696513815333280230780878799439360991481095009747625550969382944283217243745360240041092060230955619063362199600108456509302016662065003064710827741700117608415799688515800624615493047927982275290407420317862534739304123154447101049284814275214218046247385869564806500553360145383134455333876420544303689619544755010142979020077188510907144943989894147665711402097103266171624982626616872163687360063481305547691528696206251599993271128948365260495838740630261583975288173845015483339652686371794943237376546848859209911369455576876052400228840630519875718163280200193806281485621607394820386723005981509917710633799535319961555787301388984885056350015928789036425584294093179843039274079591281734127102992003315666292573666561165436455536688352203670554309852858501510410265339877886826102961237642314741030591695546537787379096604113937305272381673259569410515935754614929370348125648407493383254352792476812563514102938192272185362554048996668193472711019095044189366513415236140566490322278735526928507013432563136072347493312774825870522362052994468106258350673311670524010312040257524306388427346397487423143628847462062256574257350130001614735090308233683349806403878266643514107990681201040892694731887938135248153921088411353935121890500845754892090007730676246269726278168227594564973853863398737869493343841621845833687112844594857884518395137643997671702991241394505559720705211035876395810545988982111033749099873406382383623624778303257617352855441987948085436075876025920533026596099645736273842009109379313613605065169463925126901579150386474699383011403881579137984612937328434569113807188002929087108545209188307363564113559302408833591338440788840080063790960493184460550903413522251721992474577710309927249676368688189318444929275271985778208379561887131260782999476720720030641829595123664772070442328734514074526891769300558423149103310476734974200463106741610783084142769363084911051396912862932667712737283879846208818785960767258516840886976757242411100264757216489493919225279156285736484753110673027186715474445816866776525177554175735200290198755336767962028262155764434866727214962285655157021788344929463371369690887054548223466811026254321365005046418759278027951010632527967044482890223712426429720878191210101072238770310062490840812521210501290417636598611659539703556980573747552617720078050768064374678711357313971146367512199591068296952175654907964708448524814739646062255705402668842211749077738740377464074517870504743477475042112196230625701490851247686216491541134728174686376827669330124110635787959995745813311893098681331160735313446073651409890911187094929382118413324862755218566980595514725355464767416242169704610403652737233547430136327849756023782425746815011202797444597462032895377710122397015224937481391606180901556326034520684237196160634777214246295333664895301989830819520079971456462567628617204396332790234547412659352724572229470007908944548886084583031203001118209730594002929223766998247852524754516659085668630102250839797104493276895974524452618505431755766185565592982469755826342448942945429723756000704262856078147414992567380539116695943260790339594127043672530962050249015524440246172357487798726885391765130383847875622250519182121227196405287840411466285715449321088071701251455199015890301737118824995173208909770208954780274584710938993343345247608263662519080229621105681521003501478305165654612081203292782901261081139429051118197174138829494452938582332552630169583234272197724296816986122097959774963196081185600178861655365512985995051377941724368478970335024306263750836859325585580070046293584873288070828907560487885776504287323843164985550897086470921074636761846656565630652664133250351764871075577774987898277657308406606365393476508121573244970260458529747444959769535853169198746359154150025571787232956956376188962554259146523493220016922990915472193168600976624583469353903782144747451198058713671430102772486057677875882528810847214075273571894061326134284178460978496836385532782542562465572982320059825257755409048013102454274864650397894362472127167376835284255445884930784653753079477982660815105335711648787517075515928704999267147326404136226234638958053477308879904886328512322833683133107886503704621932416435563969273998687599354915261576855951927643726213953705616906127433268521399569796054676024788426572000364921446754682490134244912466846177132966073691990801974048675462779601429587347313437347312442334047003177152817312649874449129135555125270319192144487578906483166059708793966504185715418768681664276695387304160461751791700297826690515315713007281447920427688588634258005541396574768374410364947003367735215565013709033417906143437036934259124771611192470997143292851355023229409948484561682540731820589350823917166829062819350729429586558613270112988950327897953787352703045552144443423223004977732740646114686590481475217256863261537424424214737811476232931865415398968415207443385435170756623045290169171989160374714875691327532102812267567893728695861894293466004173362691976702006168908595909939081116677749263271915226191967778726482216117020101086279532655537906790636181425895295019679743922837997247977049854464408215103799930586635473772658826445711399488581933714598478791997323465086964772581906861925545339657544562325245810347576447733094265555634104710202831242925867959643480906370356863850601649643255819239548985218374434731495344375287200918466899305437207823115568646264568005487653779070706352106559772049027375432795076189787097844895906089522580297511246729725275363662183593870431634979113742811266515795235331817324354331335116792134756509867615652899588855526851440998121523575447371356455280256070763958938732311096421925421087891955961555262066075472581029258970263173596676587129626539492647292408477867477181878559522711047844562794691817046346563761380068898724562588195498257657981843361499094166815401004220867009474906521071671440826459343395418406053761815876593258093172603459287560166881788400976494031793100490624551417962760911881038511139882325798403137772759509754091610333525988864800961672866064903412304627413254102477603880260053446727336245944461887753633153085205307564040695295568709347886501047263230086276234824648389895065038416016213477929993733653345510896488488778363176016380986307686744484929029499119786212227480504545427647888115711604922241022050913906925707610290573758553967593503280834396794987038496076733798793846578806763406601529230488475540967143314524395970147185977323079804392708613026856336880715940494072199160751651309514289984581057779486143002655341257471647418262116396302239141656080138199118128743710427531096738735417926213936205091914435272173610854327699847492331482743482032522272650699717932344343835649512335945602326385265828079250399389922920189341865509777665452505714190684962688473850182663996980513658628441909242217405948153875938424279317987047704193222970751444576924781342052984132270201144298953290425254752383120345361386866950576112717622653791519184544405564725319834628127064243897234479594637337761411971456715041447094163965307952179023793081482612280944180318139534972875554410031045389391954027661466460557594323246880470526955217283161607790514974498258430557401159863583151001288854840977353782543151904233165061928693613373727620152938526488284455085533309508887884393592630552364706766606174100250470982277588638243427130347086639421962205940695808346561513146791099958201761641922589599962867699206831946390500782387368458160723882550956231468249402532505077297665966205239455403029147202257504454909939698796667716030717792174571411915467668522199844872905096936751141130726273719588350165575926439007914421318347123487500591243441225734013831814513292459659107591152079712518935473184220869390631880253693438767371828660133860367300919716104487362814614896093703497657921780924096530328860656802232920604373257717687219367155354452459496125629323139838673565157666468972949114918496225433306848670740802672153070413588036203286395053257540056110483112020968500706549658938817770325182667924626167790147049182740775162674296689442001854980619287767700816286537867481335476210287479378075037049352723016760656633349150535460365796224611592150512686818068075331170540020832686610232633509204109244361988006422240632465971358616927060471384520656065826298016459280168351440492077277234865583171258313076955869997464420649485317659364208803356150024719657140308938485000044070669360080076549595788612818046614465538595950665720748634997815224898716837374409796192751988593597948991251599242357285989452878368509295002191828605468078677049794971083079859462130368081771084059250533973167549042903369347773415142631224722792911976722138354632866124018833846695657347530934665953706423788979069965682140971200992323301005456121966012465628760092889108586917515871265023979403900551891931652379499104062618283915419919951119607496184436752491435806638763186634447676960478466796513296626060242936950739913926798995143707306443612971390357647419173271820123337649430215238514847472642837978747748442973190197107455455050469598001515302018700752917451899857168555645182489471533625606946094141003668160606052600629667858022270505208114602101649252542156465655210237329040200598599769374820595381742159449958138735728495084638364386408810599669777375449412245698543485077607028696352511583332641731630607318338774477673662732023999065910252165718535380490237699372226069736720258813538297326256499265246451735249438633320538581638274597179664876390064773538114915430664452799557959219024438335182049219890245132396167660805529772428207510253634471619296474696225709492623011085631100174217724110335610953326214632804531023255215942596023417560161489116820813170734871425063163878450697065045200114321537965034226473546240655335119027057597735551752614174422553763475648157839084796636536601660870590718679927749359395823371119300179515000880276604196122117195198896416464723090596984230599080772710805864825098395493659562396290061349204565714296282444949975065507635290803085885834854303833015617151757298972814710762202648116687734464606164136557601642150781842161261517557343659319257336343917551515217042469404517145807564749914341592513329252553918450005290272695261139714580886458159797866060304924917950457739849489189393028906063150250577793204103016501473352995206930749297632921570221810530647084557990330154838832598127165406887731021074710185366298177008340745773545620557472053450497776645328270419260026753453831104665761085943801675233603433144574320561850938984382361469807941529644164546271908324806799611407121495010165188052069111852176204464075956905135432153836861749575869902084524242455011243412327937415418745523276274143085864269387552535851456733491914419565061640122111819131667883086514619088339004121378595305583781090768507861588591299092046358008965022489715055711489441360819529850502007064979400996487377129725459900459210039220182475537314640969915818609285958128802614257780107939456854254750118566111746434022609068861820648041089643159477339542709841553098525684943377312365607454857004256097332182557261442754620159735267642484972472739270709736967224766039575215967316917319355300842413060199753811359724837225453911353630654719974766681417563130321087752469873330161970924828877632626257276898264032232175486273239254691074106892219811938293505849565455770637386925125311037225647434630463272912597178075595671385764111225046927821886551678894242629881329353601522551343139886939211012093597707023364025287963706674617717890009500473459478646605060861921022449966777998326618357349635324163595618821828356575741002062331427534478927965850857898217942732310661356376819870075588521703455954089885724281989109713786806640624953323094134859925245042428178744154462104569834684304482739796321695229934471050781723182893283586529037314405909161619076718708288398870966933135426053787010946536811831542253910569201150132850862493633202840550425035989725212875079938883159661115147489478889341374970632396130128988699070114123770773682358751331604384494775895126271614782429055567195861995765109528511729486442764707679989776418040809449320696810895869355050683193899071966487457796379818245760674223417328407450697187493292803737219019124454870234898534166106449339537149857702800687144189652779170814976290660244827597628214920460696900101686900225676348851600115311880019942254540093643705450521673747672854229508074064066152744068958627979408617609874044460124627961436272749702552486396066087075408423875127667978781221810695517711946945613835772173133368644003113001513875750305460955689777602168990605706258197239852371380497144461712564504040370768019648577401028260318698268480812940981152197692881641857739066908135458483986697030389922847043246244214574007383711460507561196897443672783621870574128048227111862056056859667956837265222528848305059292392952075229090724301463803027623233418591262411608745967642573811619782582827798760986107637332057346749866129260835964022458677594616267728445609306098286428473934866131720207276918339119381509731770354267371137275506458288181659881795948768058181201381640162926734860421967442254621352712947569461060976301151886116232919545473004833889885212147358447598239550364060974001015036615284163092211924560034024202092525697894399010292453448790255261446003763068872359167348770207872462000383329297540568831241621962201771683833563163428488115436610132287887956775521789261026380826489171913801313149885308349858604007179038564287826007767376691600386733711237676646680240325501050257059450582735835813285942072426999814134725576514670539815909813164590447237234238822633743484419688785376782359361491588968125766779883010787830544266500206179403090817020775873028724078788323536929675393798209605056740315474463892063491559539378951972570398209859401663633847881849832568435631186102582483928563849763231520438595348322544635732981198977662461142749716773802377324350148251127230452322470290725486012635733377040089807251262192134395271808441482946911564368169488714181758273701980248127054088115094585439787468127260566693478818832986720306635722691710703679035954441243009336057348108406665320989814742783346016062911043686836637053528859457024681668518044775932370894940098703458149269400348280488107070283731924811311924648322307143662701520222306829162215133099069160537493411210591518923806822537105419948886227581777677262401142480261411495415420066257397640627406947791413932758279608125278731432533681483311685968309877967618318820556351065645280883014335553690370607118278479217792542929136981509797704237223623755084054161255104068407240614712630422056054460385729069953629085953784131008102372124852515854650330313629530011961840991163752666626222753974104638896167969855276119913151548334651566199168230602189861797475583620742900914459925164373916149650397674111056332151469220704932622556901652556750737003070679860467984076545697681582268022278007754389798649558415818590293205281553482577832744460733837821264972409210603067978471715867053140129833130813733732108373017871922730873935542902918169405088448883844915694817562940627922878189592918375902889494253113918945664451567110101810424143882791629069596649905871548356929065709082309153321955936359065337079031821179707742128952216479599920879841169290183082207502098115344827559408207052073601517334760464093176576459656385690980730756688398222781154097758843805279891240105787287726815194706114767068590114231999122233780612843853338071320332460393518399116062245217013544980991663069795657601843769844637214238916970032762851670103381158999550426771602085144065096552400704433522288444566193237082528299974885908395765342992671109091253379609560284214246556523370820309601155393167657995861649367996570918116720736975598613420037124706238206651079434538266360321429699993414049250425844384404516312790030628659401953357801616008897499413777163190254399632014150293193593743284981914072252176033036553123634869899415565156639782970000810959121472133206595737935539918050289271733464160143722097686910710696937746150672012481357150285759538375488090990111862444104925114969880497061651237174209558516370512930862036381410146077117061261238631721166141649521606287853743167981146252122446568568697209648590970039265943919758338031201148193608471396207726910915089842247329742468170743295716631904530243457794094707859258541564967217138599588201942521147812653056061960398006272119460177997477948347402180898508156917551194063613220556379950723059121511299876717861639043821981246873334882219718700397269283057883874453810304530019390804718151712862665704790696965562482183043575583495482695128356141308709165434649309595845064076397714149215326181686348618787323555927944361760464609169686561056856209187490055444154994824445421780411843644549507383270183673650719690991205426962043078361474213804216163022836935505273108752174078440720870245643734575941713524359100269500116353714133128028873716986364676303797622021305349769109052450545515681880093839941993113396054592571595670745494481614484109842666710729823062024337766012092036263851533643025263305104772859448085606109635411128312320021696178907215396176292252307756795576430849838333423055334436304247344016290201471883621044370214743307559651155014113355215011391297863887056374214452568355798158328294791712823625447276927472139902786206320982120979001540879684827453939875953308597698740517062296128519557690486513769127388179983525233768799390597874143390123827618827753929991824445763484748361782552888369232488529633066516445251185514126946636631618218411003393948216022704959740625515115272830860225718785643403021572724477817674018471976579313238170712550818967533341095223232311023594800664439406175543511635363264316473188228625207314823992311598560454135321273521296654280203477641114213555223941502637804982339361107205560732686465938657471179041094431686551014865561615822381964792925715973028862678298057435930730949274086889118011911410422868132535087388681798598313779159610761285566991623289004964672071469734914728767622128792514002803636905205536805837535366304676525306939628909618148223018113044575464149887369419607401283773252391749816169212322123873680537093285464249863865648220850340854997166884218594674946773921536335400890578688532162133183619682635617517408766825249039805841980981892009091208679212686841746327858945840722681729551533365196654843199085161769159091704146111025057511279553310863204102251104001256104618289280212533241464489224134559956123801809836378657387000846996311171392093960581379914525099691045176120207168458554719800767456126646896538976596616249240926225163482271313456758562700064547965898374186733288964201206607366629345817026930208634698546442697927403233595068227102798911882271941888060028516549282961129151101934065613335251991781511428931698159378992299573964686963163723792781594645777345106021448910244461534191465461214858230654087484144485702277316963709447455313400474942798108539804339657876972021966563693805676426519920169904028210575479289823637264124940724515015335204372731612154999425604397495177353049315353662557437414164561220608188837161860811975893764912209177188275826040213940619946435789656686233873140670763876577212226757718430850501293029019849299069243752369621760575232620988655906039644628763579470797083982783749328152636323909206482584640141440889912908538979013688874273513491678448100333317224825329219413848459050364255422116535466144479034465475973445215397725470713443688601031298196290233300742212062434506680946546331857024159201961822362422842828739212314270040539866497073749999400442520697672056563196611939519658867666049103795134330684720540187898406940309744407000206424525999000928563186421255750323124190038035817951389343641160935210705536183517872413893968408613691425511607910416896811802358110800269467235977562658789615536193437031685182354609592730293228065960325124858502661708571487359042292393342742793219258445808850675365394940265001342708297729618071582528087073412216988849684896946368143966550516255555844292352336476239901776347717603715962968569732558005559534561991510878904551157588847107081569515479243072596213434367640660333589584396988259640887461101110994040959868984404032401064624564637050348030855755583623820963631831814541754727559817432499154687378289170918244166195263517955243089021515459392181180778271069005673255530400713141897403305172405999044277806041958112981589440181870788061871428662544850827253882915996401806710434029235100486704202707260842838353630431358111019961370073982026209515919151485396878608618922610869462585819737047484070161886890916005600037174302732540985539721770391030013481796309240218769479861089074506003299442507329554064669690908837898209892144266094273246326673064777520822706061259960863174357968102081840425307668898766790394618823244271796885781870283750216918107183986238130155434867787305753868851948910774570502828236207415607296374989407511370849136895930333446974040793202241567788474138484725933589194375036020980070123485358230648545282090649015127771599481657598003282996816143706032364854055952823635988324145006585644028292927086859285571981652069294337740013268243813567467510662517241157962896869471333626759352835703123030270776723197344385210094605535347531645731298737537726289669127389753451116385143147682508069181424814771408277714556361291278792123426358677578064154317550129725540801795652117365250564417904492815524766093512221359545704080062808275626468681720694344219225836075715030406410693557113345143870313521200736177842504725677809326570615984256566201092833054126198102810190398305356799430246914189737376630293993773213291728985890107119612301870932241443524574033915281247883853542291199105619286720419144860992438951962904815322860998138144166670697542619897818557557493757775218452627632538229439874467241450096572888250160118111892715892561231149555213690597692219803124657916993171705411726581907883300937926918868616115724741770364786294594684467539154730757544935735337100767091351222769468155342936952620151167531509776011794693263920465459026227863743643150013807908744699526805512147192550036536693286076004193125916732674096680901202418758906638516459507971438642035193065558974611261772040473599863961797798001365649679980068301455675603187688357269415274026474324308689208451387448453354788183289074951253352725100946312921477147211762739485970353136085087981882827344135705627506229429553896639696473424729963107437397351363870049351448932235706171958219686085747866627116967331576959710764792552428314194969010303397677098740639634120537479611196130089203680290742683886843687770992047155760536921004381324743374780889348688618922772733331734750996760382038490421473717871673203248340280429922609173130131932027639044534929140649860150910516547467304061144755853505316179061682472457640052403132532635024027815418732159527432018749293891130890651337790594222381593879564394210130242716638543217057381025514822130134113927446362811695700102101668991178799945073768192773626774100928974158091376355473355195454587381927726920580605611872384202506000615514457402085268514548410464372749716419012732728126441236677018297629204656440661900322477689439748373071346737049371878983929251203380956539827409443403555674383265622192643022336201864332597440797363489123034486109883911251820742474500680188889782018969132710016396597376168030834141806476033250000613627070253563480669744606090988274379009743764466474408869454896422259779535456359143870823580236917710518751096226995198370030848089913091994656625776305689837914344530289879264822016058673496594819530042139265655193565660594657489532266716147852760646260292402146656073241000566295958649028707147651179152263454682228452635063183653803085537698101744935158705320920574577060323438033746606863411837822414018492647201951706203003411175915501104017749571562020562487346149797418572023557350952821632572517044933577865224830500007432099081991463739688312667554308746817038224117588669077712273096612880898478450690471084725138880263418347521562544776343258141736541064697706787775192420173004585284640265467176072955265166581171632605162796664125686309784454836879907768013435754479789524544894815716461110478435126732620653617051424721496173692049341446562839525250392973692558610662752535399898520211468495592731750547912945483812061351906401454487609640092904756080016843838437810015615839491328575226669706702383850393077061532268073424320159470956774824949384089971044725462983163517013667840986751799483498374818965794873543923700394476996738336207769318882119826964442301713164975125926198342264781152455374873097655802701633269293470415488317247155655694464568262155118074057835081539290941282960386020633332917509381977683114215565179264752780024066504087377435445108525237400376189136344652015426196109650748103443745189274684735582423839200711158737040819726749075777625285066213885919139052677975872559111895104342351128323418797586904907049295505622840112954771999108975119977496011273869222642471620221437135274139641950635500293206965085414634217508671185474084638701299396848777854883277898256345729646873007690341301262034102916376339744563722587103489784120688742141200935907663188467968399269024610142434792672154512744324408699486462445492515915734757569821843454837676119442984568568733067614966136529234915918477198464195231047831777727723449994716291963516096407110853211050280244647415448117903912989749568135728415491001368831320151232053645508542420446158910001388697984319324707399002136806429119294910658935367496987125845558592610248551994958617350967656521404757990443447939181221439268108117345678962676891740359891969835993593525598671543855534263138400615007589127085451432402560211733995579209684720639033004507755214126742619591755053549352331775724717198460485094321617757125990815434215581528838261621751779335995968924869330120392069617553674759296343596969768989089912120906600127102210662892077301377712725307068273020995694232551678880588477706316956002808950893851670562849273120068322839000927913499179660285801365242947995378269833000640930976584398941889212306768813877141973847831921252010791295142511855987155794285503902356935334960280336004659490175488509517038014944524893817823269860694303506124277698394109482993555062916964342904405312320641990188323105146143725805888845411471814210967566576935586277661622177409690718246000783092908748275413047370426914731715593788469406001519625158918565586425873855540854494714640527101220943853723194821478485821678221929806703192662175127086424470224007748796283162397459459274288174287726372416734155768770264159891883872514454874926530660108910605111734273606172712367045189576221587470603759833489080989396160269094867963893528300137157898315012973600159358060906088829191159032177630886096973099488224795125425965161975743202342675187868555406133633198486685957837669689754282840573401103361022622039088291898742234480357981469365697355813325480695651162751186662651167729688165827077136599400636703420947740940644372025354207214624435053058591735383419665457352386099355812750765928968829635433131940223778913741935454028001579604274638614524954249327195559633335207664980091059526924399444260057806317069505517834468461370419909421765759385404993219426746672380892472392970907166936758588136144697513294430873270647266613999106304568842971175108879228061163333407594234452582342515989463383152152529943831048142002205159575231712437226767419149876112094596934931818784395868549181789513082002290737073114575117980463292500362020794251686647369667419545151778003319955607272159317053274201474078897393993939201279674673411664175909673337368147959973881381624062366833169044688276209410768155104098471563164786227342361315088125916574048279267860694378912804885318771880206351824622052851299980708641742012601537862052265495433232408064856379596280395835586008879338071089220317183636417505607646959229468989084218159073169994369339519875704783926747761843571279866371816726093463804315103226522093676108707475253613382328844258506492245865665965983129813527108311977166800054702271634837625599424868486897463065857734634169255951191934599080112116209814885193890658477292860382165434694904213343658846268809146471719788484296916125952649946888571638263136214519598199336268590135750580664820171841448098841181018740266734485564282931226356161433732182968825462401375173585463445669905491659308024802308150702023501716671118741842235769571059469455541657426025554613377555154237444454496206562669551406773037317730767748141897098459015035837619355256832052454980032138911264958522759838711517869035569299895885404663590669315773457370268498286409241510848695793294063614964274570686090833447179496726460731417479789800269810541582913825828299530530694418114083046985196559741442292086175080248821027565207422258753275611994790504301813263798438271568308823023784664695737513095836960126187228790077968681126790744758138186477134892310529584234780754980504140865447369416472800607516540026293846496665155980945745487206392774955365724656890623112327560103279577342571121150514173185884659195911676950809117812131830035426056592760523602414631719481963553689142900804976335889903098462166001079884715160507411259922007627848901027619546373435242245869795567382800101515665979600088092658928194110313728628979493019923107053889555798939594111596080833186604398439922839133026989453265226114772856884191830898881640280212349345236035328932784791778222631143905099437383146643260496659901775335838246366044753665846874000490301172130734623130950927799922947340341179292285199596860686676558139360071733522687543170168448167040282561712744842627771214716879300263909275916211629822062516546515009639111902563484781346526822110986948293126456776733114520805989961500371899327937000995059723933217642341142549074551093054313836034064303381808631367319947455555089158157784678657167854579768898153107059569845578075525201062050855878427067012043651791148390913141589351798058061463920343750716920369777806850667328788805610045438246311526832451535972057412509185866595604713511471767041697390775463627206329203093375513383524172541093953233485756070556371299429213446756690213710441660083368241515457525799968065017225568432179146865895248395141111073667309597420631395542117215621415239638127437003431635270041336818596991659925292430692252371820973269620997200210422177632509315601325951107500363958537004837638074099585020624242661508906462385752996836376699249663510736916545163376204766576266441036617558785957054832152777368901271078589823228138131558795245490131388805349297719029430144275519038629310782801614962081221340918916034064411338709968885271493483795188798745848337209908929063797136984004204899679733052287319963305049670701888091271963948451264710712697364415115578879301323417559848909843850896735317927294543661711591486225872626906223395110882992901797783462520130718340089654242744186346435478366449909556648300177334224755221509028066336921526600072675197440941233740207258872729355080955853837318933442842752219182581128962760908986842561576221050381962716496614618938984474493094509368157691866494809901393285721114084256324947664701410467455685343856507790194532767035161531651379916998345801319860981391146958928023760260911350771505917892869157713581962054861411869195336743630010354152506618232655535808617458145275932957575338772745578001331138384689144859005586119460557055256087646519782353717953213499134855762439852303284226870118080595255217003654572509702452632644159560411880073213890094414742989059365832607439881680169496495246127570148623485286597950328885008239877509156251711415794390525349524043492355488204127430310056589701480308371918705600343157675826940915965255242985316621261590869809772902893234771379862298369186214797279335187361653475495891699364678272530581924807279777472083809733485916921564984594303238023944314561757139383146837882368527151238533356634614902142707748946195682980286559316749747035941014882280371325048430370015285238566849644207398185128872927784996116547540118293351296840661246172863388394275653062258749695714942264146105030780167213422695497428215445945674472280776983435409854510179225240858674723337110101619098305945549981137596520725000354769531997750866430589249249183742000300347585417174279213223730941398159135270883132199089251238602289203028311119572533247640100901403718534007070896249041227853611521359980419437457989048330551958809074822149599760574669764443544743777758787663613324127754448653495951017961572956557841245902036414022726971928366115836101491012142275499474867022863449673253398702368843869726369868029772107797651317162559896948278624697796942745983333885860021004693510021546050751649494419069201656865593347053419339658359789305353340461106489223518900080712621942069884514287282246374991072904254160229975144912439811082307509861674523326574677724596735220222201896001811327848986887114834111216381304355209004063244007248470170886701247473392850394399091610257974297700514541194082786732216480257587773589516720858020499498710010668023258048189728370926450900793245050468571722245053012629609437586643856418731815938166833461481619109841218391295213495411510202409072272516546390110468114032756570861045196629764886086739570488834169958584188516660194082231101516538101281680532413453655854091241856913190478820841563871837159521461326112180325999273835123374666177769840434832854966068823075114794824853880241573580864511184402856225612190220965688996313549305074291091326140210398583058820161262999930402183236349352661034650007737771365029365945842578122725131797395810019566518049607863133770866822755857512697669537467248817214462548683506317289967407690215613838846882071414225295245693234789932505300482382080776060077040039344461282753726208299091648878931176569091168552146409571672082476953815818146562326898672371378829972169072722088600740752974121482065295604465897159818684734629791461065009344101295836189944143609014299226071967496763785700470255317939870971343559718970171283783469740643716995879665190179571938972967194895546424006521926464806481733526138502588523662499136727336603756395262721048809592759993400062535649038462763151856697842770582909442865294471775887170061401755688446674270564370626501629788307302718920614480371730103740212885485863377498967813268005974936376010525642857286508360561702698229367817244208722801599041754920260484888171853896550188246238510988056466267628289318407876274024822163630788612690130702366614946556785725590480337990020240631351978435605254009999861264731478926453816981508293873644990117520225859461823041658715583107263638013842773750340071706937813259128340241430518911085163168466228401150964024870898886926490528045489272570615988035850462922554480435927198000201017992579509222127673434844179364739761216055645737083241929822614084949324363506310966426354316968453801993331626413917758511731385691848825205018405322337129276488913509409182186591249811229366141239592646153428536232845340466609110012185861782777251249836416938439169275238938919985767813994206720702871706593426976268716938879498824744139883767795304628521568430090004184403048224126067321721435319596201383371368702490637923964096586151867764526673855782241834167470843125237433520374616002371067552649312451696813391185547839335310453479304987194948428083779427400959795323509291135328995115751917186810369950901429658713768173735103650344962937188639290784731360546952594806008354894132699961138974240965202775008362256521904234986600712456870919166758802583861696468648026534008884956172983573716177485408673435034390795058223289100358605198894104194269922807579331047320479639810147432317768061937245527614759573080064077865034395968299822811267674122548461032566063543921638741793653242531475765506402133804864432445619135263941300840363249118290499099287215674721877985335035080924072268094614810985006147129485230164046902579919167617688067682445006067870158272881047781202869026192444067300383048483103087387558779570378420401411028959801329839631631262500843943719174137633307439485295453562460626569941336579655713418146390319790865797061716095422373257105686148648255188728201224040236188425748184982561413227341245798021099220366385668073019974992545891905966092381218931023703439486325411063602830330665348877372430770665634176700669363125896337606694814408146672378597746503278338805360561863727244466547860194299271837365615106118302773998549185538649695397105630495439539784632967308403456260943954087531888843106824966813008876457866389236798192720650801475577258420277729555339158108614626897514006850294513187760351982950373513205855591336487055107642303704990435233870333786237098551601654895959478253706534561380827016531431805871217823731630013440613569895131605325870739047197168030971960670279988915640934467907054535931252946916698134459945425366423551697651961853541869487328153502401026485543561135037509142544279583772961133011368524203883777515600241578034806833799185484209868950787159150988964827922845004498056733822268577511997439944664291432394888065788032710997175152732142332035275025347202923126471014976787011078727877843486477328592378733305329608222446724329198092880648550671869736482889691558560362414887479293448453907832122268259620609222039374307961349351533850404654236433207830946162857951239901177735215458960800382043267391910614696062986794697466680339874317226665347370358788576285277270514817576308019009889591779014773372488598385031074482242587312088102784295818590964299186555186948937552175271264658566491712498888670018485064073804327868123394575605972904049748279250375915743482887812772072309335772566624102303623291967890053213286458820079349527029361295873309828604171158975496836855297718419781945457390502031090134076175464900031856400063493076798509807963239807014401192152239209331889800192835612952909706283265609628274654707796356253207002905435917440563768457879571108042743182877650765912548813953616438716452115873617609739674508253056819533818731218509050872605880336676487419408280449247898704937655643760878477902238493415917675993840757516025315778561692324656089553793570794562149271045867659604243868867417137577935340884243359186402604823971866260192810132757924851940153245361165751528983392122129908109482763244662870880923887303266373962000584251671497019406449932662216334588242403742889429854393520700475694382426986835262501647435732518079348642265877789525512704705318988588209479234390612094277834761566187157106573671956835882992000871619623981352411302223691462673209353099559140556262414888739886843541762041251356617312122267888322953185884736900190841114950003430845695194993877525939344059629315060663218866433710579830122751219428355441229456196929756077717627282775948042621166732886562518195098395030550786074382203909406164201172629635036976287016502802565066409787218950147322031244894896605224807947838965759818104677093426772108631372343320475823742538455592535764425206882728412763404386863609146481879808299322449108392841460473188945741316225028981081732781547696706953301342366904013696186448965322683660193770705614611168510953000283062980746659233420640819089160239964226393000776389746922239327667505007825726838483226021863819538617590152488050011212840193102197100412482444257412922056329614930364247716795453224718109618024333872696151565231666407376334479667421986303137279124123488422791790302582327802395041748805211754748480543657267980413588119029872369185251993494164345936560594384532073792065120377542348739287466316093948591345849396468177910488613440455789752874589293888017030880299319609546978076204933898985443792322113597041631812549897230257688416191571554721145155543133212481002166827187242953941709485421458622513253590808522969703797770627577216596380658962367464942215869947107635863641914008177829938552635447528519009371039922055931590317404843219873488860201962051194660662991273356797019788445209617070583046679799585442095710368692531907266534292857273057068456425186820356651177362892467642553607590860736999276970501768984825627328322259307403515217751452450513632981447911773784444012774078483550276932934129534105679966902237008970274672804628179401986459168651554723085384742438755905583902463852833289863393238565051547444941051219025363912516548163290897303728316270608283885961808982929455278612845545594000017095190314115131750786385280139109964963351075031813980505724682256155488709248649539591319085076957288071816188487792701641450857270129907409005437605395063019912390852245377922293274494218576036545947934581419197526951515491831242719412140717215543822357555456829904915388748734373038424746039945088194691092648567505209317620807317815334860681901791352890913260750631371032319807076232076460266353773806485756495801381348473726522549975525298605805687190023291774710487411738342685467181417040780779765520314083624338280192056981999820634555629204344687887488342556125608500861483778922080713835586624152994434399249534408566878896047262895365699250328536701902476139663931116343958765247200073922858761766730923583651803676747087665586496034879408706332992312503408322757924106724667193004710810671313921769693552039241002344782574208259932463918396683553624624400467853528532197752519479738663545772772979678309119099415103281023839766561557415958306348579858943117601856343999475564110634639632292974511695685604976474652637300092198802063536092528308758027192650354577880683967554080610839050340774163693425721326209530199777480753594871250972541741954079309271839469502825749080236517498343552672065954409936998596125274736334110628777956274415691325764220481764692058043223278034490190494525541901516502528386200764543090128919985840286237048309383723368873083723061628837866759860145636279753014710872846408221315076707943502617487349895185293929622605630484052574130701832046496362962760503362383494160961538582104959446379532388181769605443234988079259449687366680767364144849922843656326054290047086639052870532197043339384888551044451651096193790603692808518107479754712648880633830404969094960258009203494582860592953547232348422730496909001602570087939643347295509829560665949463401229312433404732391990190260996139075594753993728328277723696548073683696096768711052207828559759993186286578710661182913725470678349445931095477639585292266288192954827008434650015932289404615835031756444463541464282598748422130182246267391825816949092597140431144317294569774547271473876142009545509605314853525727985569266537232935794971597960933435043544514651524713969482725038890416879652176684437364429646287267912193190461896626738022026131047042916066793394890799071770962919416128313099134940301573379573985093099602471600474877967701672073445902775472994993860943050785447173779453181805166648260065818715149681634300517462931544387747873220724737045853639788285171217434503874591381409837160633858695599884555277622643680684235841936112808102508753481429933313343501886345719775032701865556162156210831790110980731871272165431827218984815668435252303924082099213516039810224897694024566214113212471987116122463293109987983692637859108823897400601550174995398074678337177653305728645496013165388492829494495373016852244767944257965718064127929311069880229117854251903673933349893893999384722528934671275644601449629113433372755907535235957450321973025122220633734192296406141907809045699165119938232972693078270140463400831005174383470799606701710083884890470445861704953666430343468476296622453226297518511650651144057967353405142690024114448554961221450541689770055034853090796947810602201899801392557646620563996215995444399604293012164255102269450997891771462275741312890730288300898038736987122749005815240510860942225027648786189521963343805012431019603577236690724718509215914640049678851070627156045078006196496407413598870264217041644261249771649038691368033907203220905554361449177575838950380203881951262360273245032254768089083109769281329130834721934878339058245572119865412465090983751235947126500238895626115893650542369565198799299095263394439533659200613210514226335573720352964164788042874916888868142782717299446159851023588075661883675197947121740836999940664612828736557466924959923811112901800112800215650704538168854719577989794483401421419581200926498562768354619443677741135789171604995343296136407661254822482406152226978338890027249211303165751854751442235776448533709748918578807816849259263510778666223425669840888079681739995416924858051029363014442816326175615759192349495553341915790359399297106305235335793539177863788658347423309737323977827805104693285165267863728366122600383742466659690211622530266377488411155773623324597147459563021215786474359623052112553709797030532473807871439900364467556203254272367002803760240849705098913754824627576010679961820513615028802780668890470496367092984957864871423548582208662233519651924235046644352278166451478449700614894313018138475524001893070486538371854734093021278976405384218677601572716799924492779720652299963856859622247961609249623581390581700189987947953196094570623127049599753389744758509318012430262744524972612487444577938199748012418753473119589456144823573326557796939347477029824116650795312528223385491382604677226668796395688374271219352493589997866563641846312762685780595150254354079426936229548898506408904444951569320081280771351451904880573187798678098180240806154980552538039320346308193558996391456864801148682380486204614197457490345539952213518550612109929741143336788533891836351197465319060479439774920597530596568274827506535040740263425658045848848132878056289167375491269443921545245714881749324183995067913971410101155595770046955463650326406190978431632286445425929804904958380256375350398902161594256305974464328651653885114947655644436479817782612493181387699250857927633647514484773593932575621494489364499655716995732674163698523118253999841624838046422514155853655740152447266436429618541264363288253794371344684548007891377724106253902663944460621233396346134371355075002519751923574921846695672263397886768560159828007515728404162372344822722282129784344087110949610099345847180574053542857658597244534520900547906604860132100884532056881031218244838717553610947682203723289451025734019676367536851996534397646415054409392603975636849788588265617552546772985287086379396535719284235466230932470570110756375830227703441336119339111921270243563768633377739857163274627347695752588923637359709052256011242170423506421089096915737036502828626881091378050856151501438331717223031215831379993539094640347971235879871175159727655267403623894336690597842428782242427590177624724405781945007148760261578834360074813683683646744738436433271262944384693299400566048592521879213881137352968593924219962533689471801047745008476343915520004720556219038989593218523254392232053455156563309875765953796212933220222120797122869955329308523724354696817326583224857030305532343192337432918833203229748686889600404788576031885641868812696200040481477677159454909428530069035609109623611191020663680896229373467152910225000766320601185556551161632271133972515436991027428312495907212277508133398905266032052152917972755976891698597422223249621041456635549359161050811520275008388936716487784215993720323980041594291956364999928906237151853047464954451676584736329312419998879206614733833208652626326071453329990790622346551032549825487419814327578613427892380559697211506736312090630948793579423383028748088381805585301229663883704915368162431993568233372358929393200860538960028111644822114403924712875172955125073926415884206514672927743218220859124263778180587093904608999271322275889005039477232651269487046702861441968330896683719337237060325893980412327211332653224181421570542020012764367392649803930914578143451954365643018797883268258013824964818417122174573737798562729596214971360717158326510653430708858682867445304605056122300908423846763748854648681288441875944910434656048912086812122431654866906806435726393154833401866119101002704123242535967361974525662208103749595382997504216814311984214188976027908362783983104260040940667499494478662998881141744957690839401293818638761473796906561027796407274720823801104564456051314219828049447471864825172088638313241949726200904035339878662977486049269627873845659337226440264659685288503941108956550449810649342437338163724697968600832821471395529546654175036051016669191021621141850141289508994099347818450375416469783978573546468743071989458675726640307117532523695360010781654048488438616070043087057389418439372179454556279837221505625144007838568202576801433425046370273049467897637119178704789916265009884233611211197833782393839437594975007146108136507314411878465620826130287369312445844076198964325282180851650565382857851705841896390228402649994091108770824433970532859765666538235791312280863809789950450046692262946004032200644375365625938676425786231994973659534903211358497142856117659826798673277666741750625724935840480561623994662942308873326027202451057773796889318311017603980375031434910730142844284309121813917638363026076617513087383287289651685573799895140902778228636394835482186638069353332465009843933276989495797378620258947915080235178786127794772134214005775252654943238282216612495427746130367698388887427322077491734372630624203109449662348655701905328780749023529436523670392357110239278131568371418441943758933741856949335311279641822701231922217850165498371397590944123031582795897819702956030088988941860202762643459592670762497821910672271289212940599702482594031031425422735983441947304612753892994547833035372572926244637845355167766241995424395326419651302431967017731673641877061175051614546902223964188996792617822917638793997052636806233808857648813118767102757803749931201503783706415497279684275306943203998321169083359389973628169977816397104222413866704119230938242035292948199732828951740114797673373563790225351874915359971610397636993507727850167654568283673541803483049768834893650129177151885574694050928445813740287998658362528014593798326978073678896830948468419262975176558149836285444515728377452134702412560598566796581199239625234609735055422381652672453198822177560959274787737056404930125406887807118021918017635444201372150262347266556239244338945455086887974104521926058489616936870691004730682406686683292786373524689737734856721628440760680993778012808042903820100178242583686467276697258082824844824652549307584535462251341017218565368673637218075696072977053096617403613227598005382611177022506248175781587392099218143429330499696628963686881224193006929756060552014072110330629359703800444745069621608472279787818292437428449907762533410188626343259788154688056999043247676994377282177047182001164762091240582125828313378787745911227342964612397838802110092642433494119873928593735117382342999435711899479230569761047321388129284222264540349248835757534501185469638515208570300925486181331350193049840663103651112273520448280408401703540068173629874344336901429480586854383793243021399142200886755193695782551934006617857745803401069663273643717887932036173105792523044477222134185149749322099621262806164279001396325407135824869634529665996936017124471947532797454896793999661014394138785509785513891977992521109236066518954577917223044902907613732522474222619360707819455349094609501237885707356832241255636281851577421819215739314468988215922655207864566879189135619774994979293488945485807161272873567328477728869325788592451873616122368972476881253617343820010737180839390227655385625707753119644387027118232106054371932395922565066093404010531827082538462421193002418820582975803047295317280190833171024690162970329779775091708076013992645561974904454700457510246001370573066050696464205541046542870935361528053710557558158052214071661433059800030475796905860318673367853653068806905949955881560077791318261364231393442290339223167735692208397407574169446534645783983774397109680031331135739900938436733132919499903561063353442997848527639124002105063318297191815173947234843032736194236284944987426212638823491270995907924597595622380413394038879908618900153821642438374491905646068839756001476635428731580572062514778862515268840167305175432628861855795087246740274193854619884682187493841789767787096383792079140434095196064634725042616229191742416302511128940475495612312522996653615440927742311312405243875751043539332010770533977461666930706941595523961470875571788778907157703696097977153584598399922242274243196390357453518019739037101827907066918811925085714968557353659825340652231882460408752827387613328223123606628003772033639989971754024965039898856212524635300512262491906141958047549006725784702384324677118873265423408612838566197378054905215323589751079173508842791091795936066923388619558265072205241596820289964597757973996502093896358306828325883703466432378998513097329370625731658119441078263887908349910670772749606687171973267653495144847316186780296207899167865560478259553095529015198277850480938672887898259048449485592875039449366459495972405082771565330575177047227266863693080966376974996307465969304965515098237304978197287304116054169972429470706953294598232193647310768411204925398098936062084831098119854275248794942995259733024491427032006626399241360889972621097924442765867562989438386431245092909826095802668755441222308381737425406408176761125619021907674711878109837440677849404714007098433023724766987891963282567732558533599433837735907655860472335017303712590895850865007676318012991490550838054238262783532628919417261035050087767277169808230630078235393191130823605703560048210492406246395231247217213224784897924310185682491883990300334682405248109480370649106641469456556086230602669315768191118339156792290253681792994155647859806852111402906395346158375483069356441484782934613201475196274856069067374387661944222815649743056770284316423589785991343410833959503188051040416936213299820241208355749683359929443494721235818819280431767500878774652504632093070988706541485195464230487492306152368484931476531360398169142636097746302307637357878518207547777163867793765818700256919672452460293704458748047870615240696493096577704156689793739530516469675376501437688925382954041874445881013323429087546615371405363140668816692945459626047707006937146188240245090425983352143630851225939564889971639167901962913232345131288357483481412567732533522227424949057861338649362008335205720608137756972969753754417725485908774554383095210072006028744484594920936417712855402741240746912648134045754933663624118818621910572047802609024816876151197589154314459214110486072727114231638593057145847971257010493827405658713499685563135054553787005465817401970161290079567294001228071651479292220858620681086585113357949636723654351280370578017813427334651462639257453879137199875432890686949189013439646249909538002149724848235529179223981372927447063736013790263687179682829094400801992997322389385570529283515869976118460366193732904693746756110241233196888369316141609525182918689541437342668745577741922884195628862008851243084837635884897437543558177411114600318975086122752786848048366191690947775352211061410672778086259721702912876555229596887107861348301362293617538388210373781969805441128558458666000225975189640459582728205430010833478396656119324265556824672455716104115616199242726849180158425061508405848458395271064475627168773617659217592585032039005529916599358247019996405894677064450753964185967906224727368575029852797402150638138243903197102336692982565867223037452334488916300862255761419378414883646378488162519327825797082376757195378974445741011579468402056297950954368629373806349550896919343869170334175466699867115674199400470940963109716853999315944791877475506397871647955030589931208460286495803138815230993985687841781977692946273954947717462337837296354524486743696415978218116476645545585597143920324171973510896238026252124953477313407678876055829066526476254621581753418066024728171253125541497151738858164839028668059898992366398074661207437053235599207540623954283142354286627012567516032207697961387697221041288012521764193843847730966406674087752780875459540891294304698723620754465651134613397948614390183994546052694913430180356961843029470301833017058238836597204665909941171641822862891824412920409523292241894560103270180980841316917392207571072589453116075370830472033602707065045057852643941217474865713216129620471885925527346959590766247139366141785804005524574841508040262226832983877156572647259052962804671852714450948083942633607688925215145125728584445962540535880351690291140771731251993690414046892642773645179415250790000488603999047322984431327643921704609820397889529746232003510760552180566641445559907759279473363999253945860313495419723725834403054913749569483010257646871052720414103731408197639486118705351287895577521136808510740174419929788055098022855937469648898462403299618813678989060688314306435367772541733351400487455010707766208755953916894506098802494060045458076362286311610166449482339099350545809644952282083064503221772269081922469155513189107086914910042527340610807138861927551761422455899257933347655362546093214220845325002106646421693691271055556975964245339358769561983951019362483529472332211948912867799423003691685054765226596641395503113618124668796750613336676527596212559009675151434420167325573648104292921909695612933904770400108972968084410715836954713944080829542354460305005169174408669951847200482698060852539519961838359142894831441992162940535799981541806886426065811172175424200943341923521377582173663063799426064431242364893509987877001470361451606575456604426718379829069981441149473823188013181312660760352593441251588884561522527428535208654730519793261039401973464251132028757401396406753090537731228853246258873317730145960244619872035360837775717154052626748689638894844279989655901931897541284206737952418774880674786487597463677413447191860710312433370388443492349326764276788809527933684147011423541219569587707233584135064978787000254649815215829459658925350102707817092065031582199968946606579460882452524452088889566776550967666889324597144486888044134707370248232004527482968129102544235220769266053315386782413865308401846278292065648572812837241049101166672161413838294833864407639290670633478572591530006669120129208349465847582709432301454505157948908072353448260661157621836265716605056821157212274264488249144971145437578593715323562140052068840352544602304225015968499723340234749516037250352946336051381223719899695812159868044264054273038489390061584361577540253254536127215993052169328051407707203967570999921151112503333914004054685686282147003183576426692203634119009304157172713699698017169337678325290787674669215314127359693797157997917053445739411967937684533496227273753236506072423784439911170753253003354640688565996620663555491041101959366861447456086466841543168819396067296280175609138082328546920456522779431600468667149782820840132305808526282077404695796585479975216101186811507748436241833604289879488708994293971844325141526030447685419884353567549785654518625742016958823265375932695811228914037854433693148525053446241324160516409892898136298788011710290627478891419863266885049741031744418015103497402866937904091364820413813168719762277665828104910235783557018588478945700650715214231998779832248842986453603273825412647551555033226272850836792570409128984866273123374891204166010176421146586944054374509384198616211420258657763554386065079919065755376254197986302882485867472573405553085164415628499474543795055032822564635371267680972362717983810930252031863638761306701036436535206416042577454091431026161057799597837029891020036547445572486264032478628958220684650315556080812236524787510047993904864043596448962353022095860574026643969304524786651631889578057214288871809130293737293647879514333713172402437483565983143454608851891762257722367223963162079281409578313876875121445745104965444082539020255139795688150992115641128983188337580062159508174626921276101368014388786677596567169275281411504573683774981187490719550028825558327436204354355160048770989119197995346417661988811539064420621332471915804010134605208601920409636212681979284215263891965098975583318164244886238972172124361574203108687661518288212946909191976742898605335713170198390160154492360586231023703408082419953168278651929575012427601293484757967272935571676968569417238312896712792772872522170338976716902980526365522854049796968057114804818748342480086824102330304746210454008801534839280269784703647520107642383373759491965906733675950109205024817461044025322013114702794851908051368442462720374595256078828505710860885872856667457658677058032528628506659483708932255383203720811613417164071687246720058689690647371292181738993636860568207235601086325607541514180391060587572260499671996442361802135966008833954385062195117207602950084941088861972062054905043772395448542830280072988051174250233776112874986640475833603938590900163519450136333864156401668451030650011762618753201292310997254325050659813025669726476511072922040242009651638178948847683831972234114121070282171816065247285653668009651947219346589565671345911556543594257602997763786498959534294761730693810964735128200035743266349365706736093355311002221953576963970380455825620289488569633360029080510964266134966012471863426937419183445843728433870665969078471249272806646611760411859550822014775371795538233930636433273512733136846167587639369094871740163645920688399279045507140822578901058966041763906907431894121813111123858863801345464303624154466460473148273766370875046876878221013745178571883429456823855708007279253481483764190608195889443236814729785667152728219932299603978418129732650674937377959541861557051260232429133327549756386129911650830162137182512956707308566463855065881950652231783209942862722352123846258557800280670732246970024584189922294279372211751962950875828629185461688906393658918498646588706200433501162351284010366654713399835019990676208082217396340018296036044069907345524391099550170923039861143566331765273481756564097065953475658022986723947974439655991896792848982049940796749692925730009175761355938632347736921643945324551272437757058096846428089454807672636732737996165592320809639738687544673161401904663481112005511504870003508926233862849606383691257283350162573200698482401367960509643651786142763793172646383443914677935691916344403909666857013022414887223973532963306262518253062367247272119047404245787391202675127369620289231404471927622832848852992088928288481290039388529428472941564097702726857882530520319510242294546924806231011316497168407183239880172362514214738013736466496870316917165393596048826659505776316925844995733790056738677988601155433378403506000348528564597701177122222572533943370915391718832275173906653315954585225318607860445504423103031728992250227869482775085829580586819360186024986928511490365095231113967886440927025432461116155283250708079817591721762283332636542285403414508971845930723430043564662560765787884517755368746700216513256461545821321433065920099412740351543397572828923482035114480388441963932706169025698057957889696373548739935063059558031824487683712773442224813107958843805053207075259624971580402224853448943732132925452185772460379041851489431524067659032700888986678304291567294499801578714579105945897036179985803534366679383859082915653020453255685963975449878122270296089122950888453229773948153993447536310904784241575034842087937939988272461254603007686927281826762901364046380980496411436749167371637681517568467047230507916098335008451215411322731957834414153801689297551113345108400382310473264956123492936548737762945287656262677979355588955448050346585071175069587548147616084181813812757894823485309883385056848640061012026504827184078984635782763065320915111164401939898060835941680505949121112971824027357395942464509087865325068221489981859099230905902929179495645234316866514565814623739353342946237501907348843066562988292115079250967116448172819691272490064219307971236450231526957340681162815326074262316305120395932600521605090835410340540872551257353683905914925358790339204726586496223486605820987317845216788567721036159901536569821942892777301738168880456451188995015807002533479621096601273453295014061900055644004352276111523950742878640642628382018056159707051817342470433538345859010341667934250626829409383901761414128326409373125148016094732310700063879225466289563754404781231595304600307791119569200757537224512893776712142914980626788762589795725306753314243773024040105311996258479978145676025300513255042198195866244647623630690324121898230853983283405247709192018903955988214472421229152299126774068045870024699175434586874654678531517564040870909655230814215632214718135536846769010196065383476037890734225869207598656715227482974758541177002802559369074351613952370475191160338829686709661235595625473690504605276850452732809000360833944116222904705198621699013685936786567111234991496207153979994922375815646116915586061301771770547196628824561296625011913471798013608058684631838914152692711148790253254121776169475752759652490678637916851063765360213779290558133219209651694758847133684344740411645616865908050856953596138858040311456428034335289184992976560123248911659170050617710899064004834176930632765988180025349022848245651268417367946489214603652783405224242849857640143569713838192042033932133272520587003077461516044142101921603371298654328213032041032728360500574206154233885236659512819390479293509680090355854457171542215726824308089647786206602318706285737384256263687579139577522382852634529575276291593362160256871807373223544324732113319051970599152307831959786400282817158365996051364244041663619024633532449482946988951134048953615002801243241966425749913255106096313270301093703835743978776233384545696452474964887683987869612964781401153898420835103555576354963112728110301666438359597725029236416470660748750558858455663938865849388337430481806703793936850074829852080540590041458211728327601485117287055556514599000075256361671976845043113350293107102911968848296868286397931293375753995462149524002635926912052016209811657775891160695683352701027344607400995151523655496378504024133996143218219724306297081243024467068800780324861992114323761200576310101509399657742827392296569498567082711930479861531420161868155761219985873681558412886972827345235553923419358335107926625743749817239835368487210418441317846681902022361653031055760014019551568931506391761989232774812890404558786557119281175232467698301215125554522995463378072594823537619080715978261447694809038206809186112031110552160954019069183641653296322213910067630844130951945734863396685489122315926851473193602750594201868112776763357799338802573295204718736464465497178434582370217856986344527641625060631639732126858417245605783124663611182157398956622557126666696054929882776191163928686361850551336324818372898445147868249624520869635997914395521139837279124877608035194380377903445784294166030278809747375584412339486451764520817188733911612176372651128326827516573906134203983980454671094275135773146338877227810375116615072660137544998179220545584064235881636980730676727729630050557596360714076287707581579026817186625682687777016266745634591593047919010290278782436367167506182429413980852144203233033119532550599759030835467849342556503671702741835323147216318900903497766306525251343258437466191279856476041650546587109462642178086750196955986851479026286288421742963110823068774779054161368741247014338186752670772443954423386231890743818057733259412565680000940641231946092437342469126554309773150942244752712893773827253040517648678293786063183359838601092208720554248823344356987852348344261050991730104684170450700407243775096963079915537444538694238715030239465476190762047631201318512854451415105027020040419998699023013681387227616788630462465606024155260703642244589907789793012897523175221545591498308773307420413197610630955061234626219476922437401078089849500180730324191478766965003640575210691898057716427363811233708952843529898822903686463526858991546271811934600650383991931114821956479970543852009465794423608437128162962987900147547012938107316757879023682125435318884462857508216875719038971391087386430736820006158771983400868486948410216738384553647279449131521163835889434665210372703596353633818947783952901268684886649220432172410992871667960173936432235058310432456892155964574926026539589678152892753202469310157661639375734141309802782797567339652235381251701454662491464699199644980471211904971675509732072367819062126420976869142570326010271084447677268017288932376213841536666759031205202298492864665717955508497945555897756786511443860722124555530972624634921520447238643232803476478653286380519757491135289913026639700628699904940903598613626617024691255076903806309517920129721968685442189118041375202747152077043773266265952763523777144358393646067866336704761156753824219994385811441472800737932953807071348228185815914529354413420621962508241516079519050960442632565465291069316784755614988248408858127490114824684565729031223883274287625987769978907962731359556977607504738441891153208801308654167336060647962898958847564836359340254883197892889557144916400184244868572312432219257227194156771888315822475653456959584570911122967413788748267226582011726063753972411746532307772083234633841550235866090828605619414563642418172942034054909217155044034702243938699321345252051150574580980547943526021815358437265337794428234785916521943558571625437919759201386727749283977865070619186262292778958554417329973539995854899340384781401550296228971520486639137078203473799707180442394444357152827389544790511185958731757167954576108152069534709897064443614260568166485954801650228330838665188188254014301337649289223898019944912229359236310874840774002491135802512669872865488935122565432159163506380132076279550131801471153085975517455098577900274447099296695196713249584152357088769684756589669464358033611827653646563421860559348827220452960254346314847263731523689488579423445494738843985905614228402690712377531594856861525396992780874819122335387886224711464403381547103518746259852151765859904424430684336733878844546711503167349705948143156361004608283889138239750640592812375818998765695417282423583977956703468729648791486135201778859426971804195731803262509611371653402454665907279580211294206016544571736583969793803694989570933130650903265791638737641189354885816215892857844328782939660999865454531910924326042908389349458129044779405928263657192919153407754604206240635334904278056427104846419485437856340640660716716057581271475490484457451597953364435625488902786655373316649972797862162384094140125586790841511994187196044422461198915424819627908925195423383516880046914583423846758124169835001047367640421148168589763691607216167070749213256093727242011316889978418757479261440622748860601562062004139071778675033906277763095965480179728898733424739598720916114150299397285893325424419987135661762037125199598491804037942534099714310395921240038904311819140131704779595826161087281086920400900690015810899549673566229923572255845859007456607925447088511733901974344567190528676243158721896665091079833700544868141622090373683427751638506032258592362083880203250470002666644636499572105751461305920713656436746533828494208335748281654676645479440540144837239305569352229792321789200988900361443848049133954767750654004545887098620628993495396495050540154169920032170602283527879175013236796411234173398962377657698186735368438858582246970963972194316558991568876460780105860751180157370988251042284631709244604129776885097518740074392519231358314981830500435425201807595856674697876219022838357961131917520090964735830390361449457284602018092757525249891775249101251526470653695059916327910559326421983343006902732187742178714145734277343019571984477197246749779356297423253297045956438718075643970603805680808799098579668997524339492436694641932838577614324423184678836812699856886488787345438810449484567830156235757977045622168225193307364574668469308816441283117281413243282495343907157826777498861806684587505222579908972834638798436112361463846889022271788292975804235021643952879517800554752108814428121660364154408116008819434520387381979844690149873061927153225542230834793892596702217830617642874242836588890543078627216954459268296278578378846133836977520627006038334330596121645108146571623311347268805637371979457040268345097390878248392901538087741979322114822402393889566600055595926254046643598536254517756529817356880507366354489566119688641487884215206079852332340756284674998495203753319475000965443741236691922170525359588123231642729494397831746437028110524490777750842529699128216633994395444510595391998057869419783182348641695815090907043796123027811897097981724014419198890136914366900265295584670275292273541198902638086695565706591746018756631550980363440544368778401747678637894806474645034831912568619687978659155290461249322316427484193952388975983617730659592676075620659583524233605220014112657670212487251244089094009770521723445905479354382166388340387617094457202046242930606921191362039719573650764840054619731864893931799345507553361520651940278863387883623219512301118463560943562925366073302927712397283083331267838357055405838892692829542173371840361679757768316844704831334735443033631914888070165003554925225869821573691168804581673493526058695491213655781793018983870586888021611354928554154684666564309491508381948933120360161514008511597648020004997732408332031596182851985007922881467657274583333537766283230764933878920517498360765768961449615387168799745716522072945011009640382235533420405841239260465760353200429892960893923033606363007943763206577131708083795154381373973128373667407086882952871258187718513544972619516211945895379809681872745335904828109008204595399180313686855380668911425350374512977083020281337634377780688549816261082225396212251315375573746314178528496868872465544651778028878412988257251855504317647122034339727438006770083883012722132172132417758064306891115928982032475677576353868997888611842416214316541955454896537801952865835963874908257122400213819192541867187637083357959251188616416529651202167262358391599483874005846388944663117341795408697369335517129109337848014284512531887402736793355115447905779561967095523400355519825028686897027505982894502376021367260003388374019231066263605488840188580726825078578933218169412939785024189898880692472404348894396565684271332316340392742209237572046986908195824789913241225994428205494468761145054085377684288612316190510786124048184770383626234578837421913754714427658875370400433808772199881322069933811904095298504791360238486847210707426550530994542553007177893328608691305464083196588306871164174734584843609078771930210609288251804102305458092623784793549765278040813151111941699441025819104341064967387486491660260452277965055555056232600646985898681058500239223172560521806482291693605390237021551501788059654132122875795041367800158971908120957324178320556084197241012265025016363835666228217107246764686423133285896910010658102815000090178849503700347931352647642694308949446978299526054313768381038755343651189703932765156114939730704678174745458365060993254982455487493969675886724997411463188811979946550826012800446896392501275727393150212047229682554347926887324333043116139706097755061598363109390913265784377390781718656174372174879247081486964744342858078101523201892806628521191500980416823796996419914435698541627744892832462054863433125445925827285830585004505110653389320754807470628542262650504779631084584288022287856497930498778033296997902233221100914188448133480210616406518682289707722618514620186148964735381366128331637028751874066934554011691823836934797559979306585726410640667105628832148207947695322521083071951700931257096477380501284412263967170423378694247169612668605495599704416854833861188074670198152591057533262876781769024737874051447500332195743400525190028248043491965747195963830217133684067143644383489236744606494972023114456239180626578930130945624174313140346859758525977011658145967725416766483370167346520569524056132076548065252818559406525422826713198990924285357486511075374660284616820721179276207950728858577813455026329693002644128803424743540893312179266491600146091897585848961901547066167010552818535578034264399788563386677260701716645411998676584187621395963485881437498707830035030409567097069784107654642602180495340222017039671050040120739632626240800942824480350179446658353976893849885172157077867885214610833803346693376544076128419293172848748449732704112084055488661294966477312873434723321346336972517132304780669380296317255387888781832899894256870414259261748224459109314942929982934390452680437622218209950813080777091114513655815693851550246788645882684933603943314209426853760982176300370287394471684650091218884358147742820652799172982130525136216992007643737916350986490928578790247459279778511015330755825721966482139490308430013700521408310436638603256113605585217659306811000617086926005336976263045601210838491755203704857047614527249859850719489676927660371042055604966932003458017207349835123927049464195767496590024924001616720334424275432554763923780025073837398569574385929577113082982850320823254253214683344223340571450774449757796605857366911800018743139516459009331232213326286905875354213827639645870888919672859830858399863142772062743130361660578143927782480790549394556642016935790667657521297243933845655357805119365160107470734425012135388217608160967206855552403911786935483153837711007351556552436743047505932249958186487128603494828263190158485252630400710207302470052469395063253101145682285581257501156089719609226581104123623720577961502189044572000020511045192267130154025027919372391957820799203534859404355059591803624838671727769335410134981139425294261938220851347193757825003390334014688958819760190310275328338964671056435839767745112680998088177291354019906095043981445266372968878257236101864361138357053269029306563652486254561182923511149308000814597310856110395303973411035090568678270786862566436180255270613414092661696735115218369586649395044364820083812323906884648573280013652165203325853925223163329610626334277178295678893578706518890550621208130610157890668361454530157650641045071406522160993127513085855986301959687028287477072308449267418001969853105038325385860405153823978121018990640049159377903890925983569266795067418262339840442109794309645636450571807101939079138208683416553228693398587803562793193842462604086226895343196537233474117581286018113246881015216474162190344879365925726572656820632314906012674427321214436500874390565742500515860749296328256909301979308487840755196575684303030255566470787713352765962740852196691115082285082661692525613931144527002905596611876688442753640129366417098817623532742301585984933481492600657296541505430834528243157733197351903600665014704046898830602483894078198741952966971472775622934846177404774821653301266682893538491054456469529707766628377497904470316771093876394694795511278095759189352041803341049391790188432828869827972619423569918094691182090891056986189576540256945104234672854284161505533760275848085590399987351222579867132173457904127006537051263988436283385594354523963616036805796484521459058105229209119838649936798324084410471792036828191475550044867460851756077225427612952578490703080199485297638045578049095018806280602123335274266751749727929189283251194371959960446013631969067123121595477214896088048268448255597394354470438514883563301156013834615332010112741854468466419289104212409701917176720038593173332284321868845954196183095006053034201088957361158741006317689697279356643371776174956261236895509373053503311116260055162982977561748778784458150576962160563069413163214513105021190136494874210207245891814468474988564073714746392569105099487238601227138576097101281996357828203830938663374044684363987709255878445248179416473712513411455158301156700991357803661181355303678718883607119820860136176913756666078846881744446860972429480226996859806007722241932905625278044869381334959185637637703529989108267409930348349649747248989977746463024850155431396078748776356857641184986897304696370183389365389120118924830048197918498230938870717145926417497747092805426500343361744998610984532510582198813037300668597587225790853968893426317086878345698293524638848919628444611405327193140817536705634974063438751778283680411863979714404590206779704501239020683525219630315842011821595496116024077480625457052078505904604148339295679441065071272164801595421925252838772688679312604414377857032176976058628176521548983425499298333747751620505195045109216849104099827062415664143047461813816557120254365493499603818314115272512948837086579742536000731691471648290991335904804199296356322417342378796191435393615416825567646950491308307612179345260541555257641278513531404912301728709708544669493515209392331887571164225390880747537833287510393661664771991045730186812724836879412637075025721233951200499924418994469144866045686375054089685063850586261854022488707698600652794445007284066637759117878407157377233437674695239173354532763660461151536754501956409870897907102461690257608023072153103472773665357120420200235519970941691001437327424620007821581945503708741361238456556327144024916077448893821866455411370250554525474637509586523016468419328886040235213371489554158482475041901224354488732363804887159502086072431240198912143886117704552374008028960746976032977852103308991538838303014765974409453335336241686374550951947505372497119728977058001968755287874769099870867209341911036879451789156631886891835180488826291673827466882991046757026138542906385452687543326339934614153289187951202704527194366634522320745698710880535463971568976042803371819615252937614594658065992958833239280752190735368642192141312042448876868141460290170445083614396044415414322705636161032186636821585869736216736174813081842774651866082348541637400698511741195930096252180971960640621527543660369589272350370810451930838383590026428946540252217106875996084135235862964233430969558890880003806916505059329174698812510020994590675225669973774892612900860951510275619986064380868304739512338244594979803321308997945582247508242108152328672419564640334720270245045259148539296854228467212097834950023016257512810151554929906551241559008884185178317313858098804432403554898566011112358669660756843000311547717022724617320423931440157263646869210971664417073764387500254719717794103312820026153175562190728644536993859652647397870387130998982584935904578589045311114533594696129789431820930476676637669001090682616434144638786774294413749667447838341039713487791323945704345766355476005634380483611811951502872074621516321143222214782898066158694341444932150031876715888646552365366377628760541345815976794417093629542068648461037506245981878809764306618703860570454870407906023857913021775722472021422917476176630696296030917731060964530647056217777033543892823076702853131536249649800755373463133923381028896850277948152096989113997439702821926119568985845827010126056883864867690688890997452522504220617689640879273026058551505456057314767140500317312986474871703429639087180918566658986538072281593709939748059869175214769841895398517652447024770101826524397466309396317626944381750476312951062642599862027393343838687477014789825682909265319760634652047497962373850755477816083938225983652492976096287643867646634898254638874014576907404154947161131530898604527875695043083842522099281480575432837259126534473821709288430514104128751398879347586821004070374916797661067026246464913458812933872001065084232258278395027241953064556890012973825143020045292240669311644396180100363986829835636021553657355313982675970849186970482874994094390147799993712043877395785989909231117187840132906086845048339997780595067736906369933078931577910576097701632051327470557015245758367241717976460999782923461780774556671980026450042317279575696862322150280575675351993321045184287860025987088800431979875360606697671643618095754885204859933926678312305429403969502397647473397883430382763682361995519368339295813470217542378496445661270610920016652463089888725788572022731165139679957457814174411750721784413536902195221590361599011066316040174533826285065464812845578982168228618706934524177779333220565878025964965857769458290918016737972693449894215927849782489918497194062853941654943277007152277517068898320502187587068479820544251053730640853868568793418631371970973904734570618758661800259674690185272953251152547953283963049794857125654337723930914713595131672979292170089575845672681557015147095734900011021241907090479335297583357983385866113727114310315013415712745719631658509691356927405965523653050840910520588650610686980838852362459584181433871562695406780512487878350333617121599026202596919523851063828378344471177555015303344649865132559974117534138732571561491085721651575766078750046977298836900299991070187046240954430968196505624384721285052313423080040077607319681503339629345643896838553710672278801172647521580800390560987762745857697061615413710756863095057869521472840896114217846094210774306224896830377983678954731894201100201978161992300642934688790290209303636516912077872011519095029690417308409555396502511305970385270063100000608453413714937329586339461650911220880251743612287266491154411566539413823812313100563421271326338711391689650601430307359193367221379288210064925614386328879305370512021630451246782506304595810530213381885748382315586160562131120917547242538536798563693612025315044898730087195042358659269609269363474966137059278477171935326562867204694718917791403524202099534367600054947037034318864087621700384268240930393139188558020846140128833801165176604514524493479099074268157424146312283992181982814924171205626111732277344080018362714536480530650735775134107712278761370946893987339678376062035375844802084602515670993504612302892946496637897650153476671595016357668184210094896830577982453701743029868359484151073124894968352699231243615534103047861654002617212919166322373094126161762069685639519804997627852744396897129387754040416619008042341390133411620668849350667692364684043896095683817767265355608409928396203618398339593645955734717057599809071384646610915702086796333431323236427897147576420911717961072940759477298022977909023288915588608598717548014278604208356991607493570687923996460553997969756236191495125051603432228671054542853035542134685672696307602443328827693052662387850626276150562809260484899642188243336635119194942863285648774698737731075397972456376209875684655179434825811006479072388918967343956742304991166316751998590395974090675560617854708873179358045571870559975194195482890188951729529289783318547866682910851315637639218450920339385224815195468276192203668472873152636860649590165281009127520721410042174600896546070548716833482426410222195002719049753067095291431704513953531680573979406920512887893755453307779021200942037995849162916255016081542029508501544906715432130085392143761237730926324707184760663058747816538719296069983799606350491731446786339500306342828190465752676948696430381668740979782803661129571116212925495181805908997388501664101503438733856965416017237901445813685849784217337038288987335538433478310906611179511245713743568696663935790705575522917509335093266369766744106569293340250466278018022293118329349204937084280816656210853767342639289958864828625840214510660782523588310637926275476760355979273366639271270567539060665614767106745856183055133821746158375214104213458911718352124939019211306408429530666636335867692341459072542868061452938527196968567727344931426302333624952443547877681797041248035274255772931283748355337704312727918693665518576973640686218965696996827116607243482968334306150341905485658623279361138736406930975191991117181236626091951392551120361840102572741684843305878508516284629209573045410246568008077726971982770686749499459095041805064859306831425680902526046811144516330952451520231881295831267606112394789782842443507981643051112420862221530309108799009555629589226434078834445815106314568814508683408180330693250856371740216350251505854631396098801056915409342230705545634447741910151414244139604618515907496460253148697641420839506176569006713941847381087049933430535079752024726193158034341133690383531139550914500098746800406944147794188460495308373085707074118862611947372545850223253672807240363220961978545236942081916259204928408764721086813213257286956209954715574314760860070506008131848536670435236479931600585978779894239572680947305359006209031210403265872746311943789055663977991859485905485817944657168320100908777114036254730057653239207966386011311710687365302543669216507259829729649842097700556665375189628713642851471166524143526650420173335194108555154615160621659040295283192239095531639217504928348833056538129080669876375297292231843404720379037830935854962702886562298486373887601129717862516396915295231533901042534177555052970943371822914020109398427515314408134182504154394856650054166526317701067993082429783426199591190544457459376834058169973878738135076737137530234671324652969857741681078486357804720452962056993852828759689576749350297909346511045039379957941867544125738830572562371912211932261188479014113775153086160352193634649554259872173461831998782549263671711546502386813647661339128641142888341007020724877771673038970194927740372086780791529934326546709012380882390017191953048199344341811802451225185831653779139090932365568849557774283448986618460052355365926802583175077597799054286556790951053461193789219134723003776283414551614591448549750375199001465447310506888102289626486175649701956103568178922234457687054283988890952517563321790711005535527826820773251526810214520471604491668791142950787223545307935386110957937464505912637482904177026843965889783457525203715478458334494595656349848798802414601253434079703046685265239759350266078022642621340729203562166905488614980609869001128328307711133346532645184659851853405754866453481638417491742203963536491968212502324411904337355416312306948456509558170249941981894789815971954275032864017813108881853931594987557330568057627406810604983181633221993910123840619532457201979982918529960034112816694159345947001401159157955526717006008009903292333567921301992651962191774779622126782262682230178227116144006101444672966334043350942564964835224869230377218852834592206100766082529559904884830731792024017555903078715699259662364890774307297557660440204331681592021213780918301485491301098922525520881454696399632100661272715300706587721394955891051624062438484378711659630846041984681385689265635951055394765530301317645998157604090525088698530307063018692035887246416433345325706295196145880894566604106836239726578512723528210974126850180271771696469378106881025476150398047696960905618450993898410115646500118889699430923285072270119538073404882665107490994620010529970969597408312614534676035641099573366255507666045736206506159183716614892759421834155037270385167674085352453805338641118110208519305782443870503180850406155147972529029620303723640543767087442811832786936298489134747282329783999179748999901740505461276673481113468437623485007957222058435065024032610144544472658415888793433711789047350506588327526168523693169128369712971912560796447298428972861167139997372102047832412620183651257479538576386566936511397682403092253921445191582328181738212801717496486764531768553574779876955715731152210875858097363703080741494256209377455365645699272651393204464568460345405984074706284420786072775739601792057283582637758017832899429098839750939213915976905209874339810287125696920160286124250873774560478754615698106585996428222899265320034782409963643181302740999339370819467191310796019185384618085201115454966022748063540053390448919012407907169155578034033419619533708417857926276088675147004886697825642199202745331874834288933741305005175711645186902493264723144170201920448677355495985008313309171565049272237273240938715477379787353137143038400873275329181379945745077254949854569908975683736681303186965580021015683994190109896513054250196183254563539426717177126455188220344186549305496522907264211652527334543391754592334356724903249061038776677625505962062549768302610206770056279852855129690467397434979606168235149178090233545823727696182877569400818439350004974032813206150196417675551114252927982553344452608682838944397772940002549249822888377725982674685298571220422941437897219783637527571354560641514113664376143112409352215372331836203907705938963668792565367575340982647864976806476275239181378825134795370683441126322044857522484468101422203537494771998705205244978228228118924392986593174690718449492817609583835241291513964726340811572055839937039496905290992362613964267921022204578176475717797419954741345857258683361283369221058099511789525201066654343126234499986269826563911374233610827804773242695324281641964205897787350939016514442924451246790704331596945130608988387852948738626436298922026030394559918608715899663101410274848648127228056486326676383990495304503313808386701399498508605432664809128395424865305995113299275035857825310166208441959846486746877261232556578915258261026125868566725021970721440996512564615567009352403997355600315892267394547279530374091833697628900348416600463824502079569755339853405225409008578670149478804154998554208145019749878310793483519185267182377300649189196795831281199246231650977056170016340294707342704635484436599374173430410138137506083181508327357549406506850454495320055166442132221510702984657858747326823313506686952614460652215711614527579018375175147596108101819264299827883594217444096551490000540340142751250115906852885999438396270702703575620887160863795302517927938395759247023205291536564227528833974919266441970772606741581116865682111464415184067541443904120604182908519233547838419824818091307014090815802818270871540366764230401232385358440670847394047478453158563530338797409015559109927725776697253106167444566579227122998164459936695704199009281308138791456441245515836565067235738790945114867595782595411655509560196382442221425959893954148538514291294784786022661863198889602933748814952026401889830790361370358254466748707805133544227154322043552726401664362159604329414086496239155814085721433133282426835033802277341706480965671684821224015281206283808958693081103581292583289080795349241131527079779084966406630434849418242217246941798720729216025771808272902772205678845634221039525914010513378749419945757975377746476465964287831929711980002105871200349267948881372889231198233057637378885291375090142683628221958252531090655026429663502881377367379832868224584107648949879725066640478340574673971290259417920281191783315817693914002302989444032022759422044352534095938306405309155300375977470120441268218794825643897571250385286571101362580869285227182148524948847224188384896630207634719764889799998544072223825997458313279036911673183672575404807604367089242791622630640973020274706167050934145436878480123532280286156914047846144091522891781059810286802900005149979292553155911254523429259449822681708980894435815784635436338095674981168999321541401070829198786715157591496307203985978081992103588222051693733464992712063442373585052062636877576984389135903707608905100948288532586309478119760223338879927815178943943432547157987387075878557309518887722769459961645995007579758866146052601895215998695633158765054016719051662851995339045146105977415248858217505686117309253002018719044588508443025754243415010836241121547837451447119007322307972472765140917671922833095222035704523746268093837779869377579510444585535910209025670816958574032917205695989417775883868450050353798469444127013077204768370990669944670107739573765018373386537999537741949955136668324988605873982710685788002055812911460217910034983125450216228896947813499898232083943101225909503085437336134016535891291926918168847876013225157185144916820977911022802750100521795568014177565356436143287662133782300022796198706506717821728251455692033583742336237537483585662372003660789853178270233949986009441622703115027597749992331139512222337742452880276805494285761778069859032110875089120432842243141588294516211335774988719172808238927503106334684158809452462989335525315264291746833613901401378967412118226846664716291275992590914608889516220863068425744344288937639457237576725291977456645961165716562339285347377642588246480930706129009268350787156824042384823092465970472226218584365644645100385230364711937065423843190908723389457701207864799215262808977013678153426923038970811944434683095045997125061181825033965964156344733193781440633861747450574939100796094804722521214871785568539017131788840954473641684130478939506044633343684378209424069776628923659845989892193502662897049883514180127051507174337833867246660294712202170728442585478397478838389324689222902743039990179553504023679363704400041528679276258373394446665093547434979437331060932136523342368349720289697199897109200681529810347985762905715668535577021468787852700178064984764753920426085316230883724647806480476808517901299340005209833007838827179198611690209194611345841523471110651869144132889757229899448049464119480489077515007462315991482350474862740083055314463655946211418076320071378008851971535777291002476129257230257504204175896448745306741367356917078205071531965007732693244679335554261190539653124985001280125159965967504631376124125046338155653753135490302153324494616215349400651267601171465897506437086546114192169729912564966996533763639415057519924256507534253380018647889774102152418977408792572033713321761884204339974731034205816690198600734927989613925654400126683442411739498838927049090264900481238644455916139809867466994250547366262401087482886705823108302112128391709856294831540140220255814793447497513311799893445057097182095344793006650678813427638024317730291837337382319509870171699413362588829718006460851170484723615782519944156337053061153622079092860744376250844141804586037401247462750486616382272138326181791431992581134842777754291500905671707771636725312063132598959528876060140115475544407602146765207366044684487749860116429802460398834767296104935319869075740953509348515755557933858979379209816189613625677963234274235724887439777902967601000395590086562673897241308899979586695656333783586034578436320172365069503228400477629310175670002894315990891359655777664413121491014626236061865813803646598360477902617714009773572464712456646374128904902395217715345086121700312618755415292292304239204535586722927482024709520810126487551995695526420067510939603888018584099543737954364734116014598927864437861323808020214481924118129819989253066047387016456588434561777343491025925077864040883408950867533579296598867554168320405853703829143020480048295720298417439000864003239415524938612893848661550255752661066205793679641959008834042162585473478377849750833614599954029256613208306363356523033060766332983236897937324504212919339528738044051718120429626697955009400165831088363280881652791047177694753927669976702820871723950641264553109774389338692269970226089031576159702436009261384751905276452509085830384560057276329286334679116642734325784316862967678204044558751443551239299490435469432599650778374821700705043864811710356424560748365137761116266715362706844755261668845389249986853864253313599096201823501132376314093069040119718592958109712294215352830642550615214873795759584227769975241937955011581245732615979870703231669483239702739581714077627860371796350185452528817299514840984902585291184897606185218066882989806178989225925341133576633424374519187016222032926454205898726821134499901215050254679850898486976245347253785533540108280206219741245453996904049421251209643015971816089732730831786689773098908501358553243653146049315999563334617856807237215983147588620305546867374003011140746491474463723390350175289045167368523457059323313666493460434534498961632090998573999284195700785015843555022935489962173247745272282374847759219613493773871551005737826463861390157990865946486394659834190017931654279152924931884965341209135902927874174552310475840272138767948933098614749433960703383742696776047001279268217701838654718393034469642508637947302816701912518727767619649800789646881328982943410610661257337668866056276623621251697239516367789377383137665576475268488912341626560972792666483831641973251046279317291291927483139098196113953755315287155762475944706458516147092904802158582614303051864333987698546590419098063261790110248579072970752640986307195920525736116005733172030272427239993883193084652361521138973097456783935876116472729704418207089895585882231899950222219504257114890941960226295980071461189559245682938765303132303764543398548765281938256080747789745379793084945703733500828388582199716779701806413676054766457804347492636131838957319441231148419554045010337337190298394958839675813566976927635711125876240507907800378948907233004271645974886687259774668788097003436659949808163813474788680390932518104694816422315495011244107131650425240672936322411558717214439185362254425117324571832678036457515054668856424718479611281722553299798274267790003924486940935434609317724581467929638398336011912513559314714646461070630778404658187834847657701651235396984709199886013802450908288290655672240555141989361882953422973039027515098575317094159809854337562601547814722250650232552459629644991928547997750690838033227322345841793013070867155611811718235953232642793137667261029439627804959835770455329188416433103724581099206717332379746403125927417871648407825896604544354269197716158722198712236065545816239589445465549950652862198578137585992367915910126069900726473365449786828645928694190704616660181826409451109389101283870485855323326138063121998862617801990356538442690386953379659377916213272821325262438258203607555357530802571504835363468708031258727151151898823367077170241515641303879862646674205907988455893814557951809201566271376610450533047594860883429407182708406846826899715380572729375583948326975475785776578915880796767421890159246137325848061551840084842641866984944257786593376096639127005944188288164052214647257524417221254317542445473760192775113608222363823831058716496688825645593434582742592388910809272031828098565799566878457260874220129644752862706409655344303369257731123388099464352210802013987305456803041811995261794474410273945165824857683291066128619334899270582045380503854371072659420581880929044446661634147837254094436721497420004701205925291239363495900332797537545590458799450117597939670849861992404213048778156595111354308642299196710329591727731695627978876172885089694033168885454838030663861842065676829226253434708896582467041211679272545608458214420293427811456580301688398082862601684097446492981479476395391473525496760495532349952618945633670073174631154352834762497496965045198992105538741091452480345206309362385266591229832624647025351859823741723624721880832158404779453415536206150497167936613957224980489596071298584645780158481747757648336644276550901847339705251008030088380986398357427886971902038869185027974911228986337458433860457911367733022067203401759725690046092671798318229315577587951586997281704889174743223685321627757001564613374024178129500478632189533627753612929933395290895185213926525370650939461449107630924129735751045364765604870627503290707773280352766546416826602012251315072113893837137858527510393085750533284400763496676849919211039974884911855601038938816186907692750150385754840620484434658905159068073084813180877154437086735485950036160182614675235516405390107886661394957030890707894800096811603918850615374597187245087444902745310715384029905563252244957056207751817479048742715189444137573924197654512878127004716497425617999849385121512873793735328939018489383943694152605971367230175318041347486738174849678829766395805958017429766909845634523503022744113784184861438799332413352235257546625961483264592668677407729543385338261267487063244914170361607549185762514486394385066633217925394169261232010027878293093674401748773753617030076903924216641603582510778706780298143844852262422873932120850191677380793483584280666544119659166636935590864081857020290892903168040822137212425056158971219769856763009690614474262707163493154354976906553889748765274535592088926153702945649238623912552509589880585977905581530738070763780691321581354102045337176378002313949048063722880371705647691132059202019959976588331311110621129584662009029064465639735321498362594573791679599754258280003590008015967733189558725622143696805663513747907451675139393342374200028823013446693740358281089260587806538863801098886863083073491193952307057396543559116674125544259994110823863496762317243782394042738058282820765915724703393176640212678549811287614443663554275548834647901197751049305727454345482656041529023869980790136668942603232757385022216468574542840978547719811406633573837507846755362228242833080036701234243820565439480330820315663472029141390440522181412875056675898869016244244942647051583426866490352152296763877861165972102200046102082124049882387636876102455013092129180414817936597671520741651545138581616027516366545837880960562268751111422560629122887630686491189826137186892640291702482851614824837107489908649991337655513302068890097215503423325539408356368963998902586675195788949561374235139901809440374534871649498030482711583499534046906218180264056114024229433482639027226936633097921776895708940357070009839669247467103696254034272738655247393199759800956567760411785726908081643066527521335546964130974897889616161920829650719274557170740865144021501251110320364367285329087502856745347221656077387453571014241206946826519257365415251607767023468274359151865160972586207458911163313567974836099932895998788971403215637880745947863682192262350225930888362658560896386164730479778140419601432374765086079891732468240875503232798461955831881665864617652402515343846644497756839128665694324155947310053721333950399960944723428468572035469057955153621895319301245212523473896602974636913027929673978402798473536995613210696143061722831240957409709104377341388728625289707150058814223641338598892627114701526943241127685291673045361515021773787985443654952191963070746610794022966915907632482101113777866790281441909708764022711184440186057830069448236660076140167755988863804930282615711836611025209555212822560610723624218098089272002572817533550786078050958945158613857634412847898278189470159816459511613892810550334108428352635691653149809404425078102594746727206626206119216930244643986808577244963078127394172964782671760514514699459712621103663147121458595922703892192767027588221337697587583651317781664064457484673839281967484655788924541295553869672569973940630926904703791674254336104892645930994145001105551932042050562292939346970028791738274225652589806970155364013866063708583805670626197022459339888998139311391333652954332618304842493806262114645863129423905705995385881565046166617011991835144540208502429379323843546490848068717583899056459368202457603615982449036739587533252566164961561576825757675362538146171619705164255046004372081946564190729640063238222692075328379632736362040186380695228312371515587774247529792595572761340701705783979937154802259435279863552425352557646417815784510874268530386764020861899115934325950356550178956377200533378355390739847341566749413576384535645469898294715025528294419547090985734584043352109563399591960525282763290727400615280679065074441759854224251192810529059547668447781090179771992380989397050017223955764953872610812922598612643437570418972530152309895447447163145631368319653484134698445654996092683023813284299917004209543547336537527253462342231648686083822681312122354933690690743575837631982559544737597602763137576981225189720960086533511713406133866894261487532456200092074727479487460424374777939972250571887310003424902908925146881100907569193961624490727607120547180404746959476233347341091409933064507367702890080935571805252312087701635879159072320653987323260107096779594090827810734481784543740736748303448223342561797659877039684953140976309847254976415989438123349325292882143787758124030081734386912519415425272628678179592611151269039713205974507067372522018923194188864768265672607071878354189740369562312711657067292353544305470981779636383013323828191761067125664455096858019251374370758289167665354730037541762848492365723637070440490720481006733345614584305158763683289807948047840954228814343671088380254323460158811645914540864991454828020701339777814293875087074923733231805237820658846513877124624688300423696107215946870817032175684950326035167096497368119018439563190851295011056697797901049578686307696117837199522962648809889868204833610866949766247025144415384881786254887438389060372985522243589824702350119729910835925140132680781217523506329494249064492108732583855574672260020400693470686824127013056778834229576588163605455072512134433886671336868593205228610628026794959620389070534113546219270961587928763267109278678476925608168056469911174407037693649256764629836262475418392328712135037822052542353786291750884736458847226803745676102232209596145658728125128904046774036617917445606521938958988265983679777506859963080853164532846296728984125029012907436711519894154430669848768004520784148029008063957098492429304210832404758927080898825067920072591356902069220266365621241253716562955631479900200195054010690175732254347344076938922166027016676482813924788543071274936118797278160724668120782505211721994138666091735162145909988169430848241778341744730117434948260605068601073857018396493549284390364099293362707107748839284080403499837893995347619017271828052597343945339771063300643195208603557023428007098147448323569922342950710204855623676470986990422935539814804773840290500399174860129777684807847008594118829383601461594406313588922490352069786623935775112563910525226649902738382687400112143803252289879767306043057502586323681121162755856756718761974321711400899283207070259503997396517816542109514606320348214860831579047226479210201386169432326298057170230164865527323303276639630505920099868134704089754356658374216929250266301123415686946796486333743694577336290688978060087894245511264454470715561328522233012534006052108544978788360160696691926119205974393621565027881556008610562112239979860189712312500966007320500541533166233076090336034562613113170444450943327921168072348879785103467175622344115315945585416227330235899535746434681717431880543306409368298237394650695180993172452027351030694100024649627889797212690580228305448392000091736733978054302975292027924728425382049807498729353387764988643231589061911797262666157581251293933554463127898254277407955242645230417109515556484266003318994518086023032164620284490224825458437756075498501280477618164191821902640315109366363199926664503845946032263407418821697260894858071663110884691382070436370069301906618114765600126637790705368330879334873090256306604369874463831429063419405585432407269288753057149336888712327385189494577489444726840801051408355721114330159113487567278697406895039295604974450960315736883981552869363989692903241688852271218610214848397834183367102860395817164337433365645498695634538457833712760617473450793908258105408946674963636948403449971745607055045090888692171613815540794448306547687749248005311027671667682748374310462321168648920727521780361121258571522433275085606441017062795268720472448493149805170852894063623626370122574589014717224173455635925125350275618184849013166571384335420303601160024546480660647813237422026850642289845836095002360373035071746101647607704198964785044497446433673231059846621328519677695803959225147783975536574308835939565194942912200032755963556315654650352819592151830204957634101881372881977007718302553425829269816078605993985731800702472863628286203711388015923457580190437995069039365315107490444921443516044418691380989180912986902886608710955692810156100988826913571126420512897409102029581394807680637856450839788085079795563409772757897862906808269856871162834561335983669527561274800547442101218058692714846188478273981724175097121281390865711524514254046920814079149404020951120504940270678127297195299060260442095914009371626922912071919352408591455390773075310408528418025943256704691858179584465302242344811243495800165609833126882364985018701682658523871996931632549527162118393462350948484478871018897023428871462279036734113305774720487943110490236583335370033486372791377047881968789197968556125229234388329355387607414497192880433152499393869146733204088756262286897616878934591374701298841559322688785702756426434880337083026300237278531542142879884106569493925863512082396651751504384486875272660370138148962946746780911249398177548618405716574700810440201722149979333596266614890722730981819513894782339724714153512329954181510641139131860242557905763675065903090530909440846573001562203610407459211385492918760612601479999588763025760264253344997408763647614063360957503431894913644359644344026620205735945111146673774267009745407463376739511299204605270340102626751654797767094351139107604810335158211640618080309136256902247490369220449563642385216054911226201944162899280454087279871307833940217953310110512135938351808659507261956863271290630269035785503651757604319736923078596416721341983216011840957214060736624390116458932973945142491389063328344787769575758906862628424587864142241691202515406691722618337847569325398129106847730810464755015292735265948055515229758426702182619787656306727621142867845608473838621249680199609957805949939793535584655726333412803689688863467874176927585743851422601508275521918794150805071094683735844133535681605119594480887630789743721418245734421682346468559354403536936372547169346042295017063595818445466550972934861847168466103374522579755373740360998585845838843872694819269370030700263856926856158397631792562673649413860611578163339665320300448546560780153021261296700337376331125785390497319715473394612086941217852503985705874420580982380071844177064345962291510424172734324619837871575010474382914088925477597321244780761979766306846808959071214220981714477765024378603557516780102596613591798499589383234770305802801172954259672161808839074737636873421172894612500464097125840491991857794999337678879059313529069101479248937223686779322547581905555910138268094583745156742282683191500884232431757581324225189328072717769475196144711801136573687817591495446122763878869848708718928861637229435048580676242656438260949815217411579400382532475639436903900245830697462286902613247036681951813419256981023653433550881997071586205617975861844080902538176332101145338498502300379597031505501180793455442940226156967057363877651164808413346576025373221906926720374742370278062376704591052518044444609226150588424637869817445360257153770980526669881596476659828139681775078965935304334537604478749868220874761853686392094974164512253295427138881529317835653150282010011680838870689721424887622285426549698700377510978834774445182411399406268301256304710875325045079851573154205037404253739348604849170605854457577813008352589067252425136242261499467003770798043321445633025172425354076607990368846686862806682745884550637063788945569990795052976494988102208109638274762764021641724131759683148626275064857174521401926443354376376498265658537664809896292633703515445859600425944136703922497111322187015289460636413492233275149410264027631131118480071955085365444322127760815917898219302066651722554287562644031023941944715783545557312406422553394908202619804237638814521568351757533174038595776505734136871357468734896062615974722040023061448758767423992127543044498004644296672523697032511584561287713861877867878437446160858137883695286021391839788844931243909141066987931144788865001766863893058245770130042455424989625429453368041491358170494704562316458919538040471352089835421921095398507661163045669936011619949761100250801016448302431834900010933143311151910098437638311847881647193537396300028488555449977101119532915590479550913964082109223940874582042501352466356020753438948864999962404175343953350315449047714649144809063489437680466169613322220211892953574291411956144265294138460595772234447651686828235007379894065591669532681255971209265629912139089996753625541521349095537837291602513163979142554350904403563558030158420710195488382549775670240471389864522144525696888329833753134695598221737544724752768777026073361912482447860298774525456653668644295656709805758960894830874578150067022718655020954294382777068766581726624616688111660739234724108195450901012286844139776292288872561970599550348755434044699343765002073600079195281684162584604381490932484405257998339807967541050928633932796704804732312692504343722218042907633008947766304429556210738978828593726089048728253754275807327472619267703759783573063775494827430546418014322647148020685382587820121395435815472358276777142472854381048995778873785484966909264615908657288219256368244855165052012852360139689093090202356590394952745801258201469925971679627744107383137847679751569642368191169283033176080027345799451513004493382132183853628255961478753671562275849104275141149551056119401899072526869572791061704652959371902985275204851916178262945040315763249984299339773683429838559351719092539894016598220374989365874263573625781590954753296182278623469344510441974694232653794350256894392117972884958450625112471051311521664046809815751529316479624949913991102134044983557402383144698856803144441161611769633513955301457196894288162551237887081623047156576498381892767503692426815224004721402151809442571713518988046070427297358165369210333427496964880205348682498392885606523493195846888544681504604512037120915501500736663116979893520852709703449209774854499074588301107585947390478425337001615423311696870792103153906455588401499164193047227422695232914386650172513746322353799401239728312119917046926618795188628577660052560204391499257117630711635777849218043531552796093237200319119698750299231587471731351641380283034101673157713223744555088367098190135181936546058935938959381045512824676965917681180050791107018884839201856337153551491848673397142355933784665922012740385184572838170989071740990297074548746770182570145693853420684897226446814104467820833896492377207002534767927001161167705763864401742808580127587564467467119437021096005627128780489502338731308800254956522790962869857058475356389390644127377754032854998640243474672440284486988265240865158065352997269948331833918484982739386011333053390852150083862753029646703303195469202028746256627012417154243618581106490660199825430724226600271783728251430707959734037548658328905479193545633052640262706602330869248208847462993377610947804310457076237010638509234043645933888651453107938743007377921365496541589518895767421539796942627034182672359595095321127536019681889334073171157781157627995578726562144265656753132004253969498275428919491759348393027794375377435383920717496375091929481163914105679414318129581556146459561011115425038501708605409206767513977842303854518691178646026427423162843867910109428242013170511898827477122328669079933437421041645509394370929738586089438851854465101216645037925790141223391410777185452990783907367157669092168737242845981535493052784073912546623223098104879875027095721826150401178868038684717971614767852460508913858904070101052614562903516772682022583423411249781148490013533603934405935169870056486520565705305811653197782746262097059681578012836763289009758798305115909707413712222551948426094671193039309440948250530701378382029557198651209416195664805142643684080492220370934370959844410546811377326412447572103553105032471881366719129781363518318338045534059988460755223724486155401654173617248617205658123018631146538537822562631607587176386264634701009413362547819581225267754652645092354376856997560484714549865020505971531766137290237637295452677510665013455204882088695607280256541837446454135057736228472688141280431642709762094837254134635871878011524643287819926617476584510389884025604298256259908760489001285688751140888833840125490269722079739387592670699814019191206828976851645602027423960079383593436472140084472525136454621464026406478132924913197827879642571892083372808510644211511245084956310690961129149150615221879249435966085646682889764632939009620050143111625606825450579104020998408286024609084311919061432210778728081080194525887836599869623936125090254989262588581924469498053292843222096036068586931999967088778658821743703225685069875913544706811989243480103610858633949847319633133212970444920675098852156887226256104624454574286534095059528437651180422816658397595325408396696957298882646424137605109355126326397464377496806343034562719079668057232518915585671746233598363318750412475231055593939257680865162426151098762648611450963681499674683984720015508147458775105930584102370580348544150764691272526971871069058920022236152955670224877685103065808700826988926620807087859202539036556194493079653890983204784223861190000893456721878250482069831425509730606986863049285782429720541706618749006733847129645580902433027495864296906812883624625202294128662223877668143685811283123928430914033347335456552324648030798802480467351744694466468509445588438900315761179248974005448836708302090098794691912914218534640897637347255448199108240190406114937840875868133630271987794368038024860828599509936470035239908087364923373079000382050178192061966742470325475783499014293191406421286319804512793382636594896653267673402594117362896380310614675182400214167463650926469007616449870100517750020825298629678261436030206559041320463623166847724194112180839523538719508908602227436155977132137478579346001407935389261255352860733213386331581490899626486419591713246529381586478887660412296776239817002277755464870317122140703699072576331631718871160665289706874540393116366887808580300049891227190143587411686166878572786535513991971752153800499396735135356644911444726203334364675810101154347403388057168661818258549957945463094893004386572306082786238598472159706286163351433998390025664038839199870046517070065172386796698757034191702351543279321529286769778443409000663379616117889776464343593204277430720505093482787109261298035920356172738747985626614339634169746490221971344196304558828215358965361918753645446205878544561066701090264273542005046374233823528369763154829699431304080263707934373765171856516766185905707901154767448834941043174051934530054517017473579218482241327870346693890068760231305481865087086638996754331924882552958769478096561621319305591629441820646287358326905704949026799632349688633704260241664239921872887112081424295778567204136648082129755082440889388307139260996880315130402801722536034969834036841442022964003135427657983866525278869038345484617756305355182940320865747362343048276145228925699656822793979054678867701816923488643929962230780773936930025388685640028026411672013050145520804035345452269216570107491358352023365945183049757306426804720701319590452586319578744563113406669766315376530170033271258384424600094583528757409601439908389274040224427412062991314223898629014945633821526766664515746784007162476828806521202118916697732470979495493745120990244722291036943684768497261543770562287173674455750207382587685536447503958696863692400908788066436814266514922202558202439999324149468213942411974497353273008307527038876885010874510293336144014619531122304697939476879369129824819266909721436292740072402730953865675687720431758515554720429565011373316826772584259723611076766658495230016145771488588245013213197089845496250246648229516504614941453810128765610501783302874723807954473408019289615691838550468350254809526304275084511024324215274660714595514183907410045094924961164246297001831906403318347596690840209960233760425161292360806381557687417405730433293201727447966589383484191709980936618864491802733486028667731665720005717623153775047999607792656425932669697407046940651183404107572981995535968878357013495225589128475035439623564197402920142713910965407989828241900556388923379483726928356116198020303774693155633679603230454055127859657791684347017486905250062500548249029045217526794992667236844067485850359017184621013549043802004862148632449863596967627076889428013720487586764330873885630931989006349574276203766779615414258476783905967365349194450381204957375240825251941093783452731188247718683688423002652930123787197507482926363152839231216911097423260200696996516444906588535257265773914652884026139537186402617817281468339248939869133611215153945086535988689126957121271571565075021479993932102671340559483872130314854490105956585718374940746599069147498383547530823922323283932976391737794084335698723043353974908109101597830600911817880611931647096175209295416498167261660503967408547040681211069699516583546294540198977149652150236660248964544518513010812798127380501962029950897150069288449425501541214189998800482172034175435457141733580607308342549724893537557688521930985738493400764529767808733467183140342585279631119598129486282736086300286479955006789261569376036593019193440539081554694413793560394545850506587636054609319271168982476460845529137281459223226158491794468429741529535835724001726719504475086220481767686656498045444540493197797918225255705692423179080935637750558998491929740625310993472194641884507272707424519317814721870946579862448157840269977475777441664136279272782355719609502430642114391660788359756433161158393902942215484575592470612813135207890482719880517417646304911237956394049948874287874856096813121058652447298267416559039364952469860987305625518126319895972054618853226383774301222694654077589913454486918276114459660156236851150245822971380400079456857409168941863325995465459270725293772864744555584006464961636899738879640817432213229989899404786427737133797804102323488014917384863881988840239337596401147935377039588000729842412661085198025931973158529398664657892622275648009801199292731350464046556537502107012375050828205626377218945787933180123330202150909765655189340072050804449326878774470722981968072990832371871031384785079106940336620506951905611515803431473960355231515494563713171980357653962983106365875889325559117338926027443996236386305512534168564282827303407520041933773208589877930898840942781494792116148964294512175858889131618753625676076172697661810596071103061304536930377604019301603311346668411792091220627386176061645688116422520986416716959870353268644643697743287134418342079998765667266822832741572873608080560402750753147516128260006712666176470952972998228699748305172762461896941336227857517349581969789924947391214703450271465233096404530398286862603576940047657620153855460140009791383248011178581449937345027737130020896371438466289815269148349261941274146327281257189377303837168702675268025275028667116296440804170651630652425355549500132419092479942784277333690095347432156747912559341189281674047901043408892896597208584002507657395299096248228064924523117142554556104206206508794371785436555442934455979593144746573735016312778578427378551489611479413407736269611131395785747855607087578928651264622210917371811100562610478353364031589443549052130655890543611935634194537444561806258703085633170989188630988887488841960412929985158549899985985135653188970768910444876423473397330573237820873793242368913630333443934475030427737179011339181854977481700242298389939206116293182021403137892939890604272370777734230881903168643839873106535544308916960322063618695469290954856355316977338379442235772097923763030395599519223049966350223472761135262181276274098377601628389849627581620390193469274080863742811030124816104967410061147726977447332268227170332500923539669576084474288120938537197084840084464245917289064780890902038859906751154590714216788827965235851460996911323499094003468561694658366395669555517521431601676563110746163786181069101592316591454268095603911045017509162353005303601684260659581314282581351684304372605391901907771708721275705041204720989838580301746397488222292699241780804656311721082057312750782536943991078487568804091594600097683596827652864150669062010812843708328558712845204723860431993172023465791812595084199051081135229079354458301525094250102361156955939939495929747915831694197513084055815854668715486668772252118363441547066632331964227237865958522218246411651764733816492253840761118819321688354344023531467669687871594855347200232219559199094862228969064834567224552357776264728356738660202778034611834652286469253854284556395365253765215094946008056062611111216837768435232083781807004993484729282002375313880558017453343101887808337613874003224005875293848797380279141166503342136645798711021987033120535678943698154439909425745648941260305330278678786372489955283404646609852062219729092171233048241049010637794362891132609860740557095738997883840844671615270455302851086525575998097681597625856220644074515274023764720546469534302987717586308476065186662668338603112471698484186747012483088779025679110870674962966290702707524527758266034243629844256477616649548385393742830718401152011057947816158424223462183523009732774261901947660675312624999181426827062267409510180145797146178676977583340000762531562840255673480465339349797650949392344783026983588317156999871530096621540240746677070676691157519515704504972992249205879410339568938933495223679586661018248585810719650476807219008359110403588359525903427372356889128826187177868073114021055482496575516845590699725215267323201699142462218032023747960505993556855818933860246169610159044709676169655694840022409088911300834216417958259233546897194046393501600455032047022072432444605434132683584643936974997568352152076058718374466017243456377544650352273268165366975862433969936558737490030966681741209283069669466044218670529004465822986151153110349252021227826148020775213362882770045909511816084677258555072246637398266913944098001822094930851919799822838315051615040792086090063539562740046043857985964344726241009741289262195859872471177651843982003286722157700568061941876732485685159243065841577570113830591752775043390765835156564475925386325746419839236289052579975436624633850495996574623263300426873489073100565791544398154331479642003338329333176680543982895007345676602763122980132988941085996537792846224653549694006808360135169798873842225318205465927419253530496559513642989421121049930874559241286459065226637328015543954000055794200027203189980742090715979961644793411180715678384421527092906584481768405179243845904034543000249975450342316110265459069136492412653852725323997630955922057300979904680241452212756782554090350509192818632331616098647821150845332899387477492080705855140644075275760802468983221062002679926147475765831296465688663906070277876440509306905695929905252919101500712313086569196581960264200594755859757389444856808301814347197778066851511809356444310975531813895932250326202376612594836142137597412393643185718615403003382652989520505456630546067742085733347458159918270218553689580135957162826159545874217532596270038049001863263445492458157907013553029864171867133273172526431838247039048705707368602562276543234802225433295439329212050067353383348365911268010710863108322903166935293132929795401324484990443683093511053593600378426888175209269984997823509881690960817999153304866018669571356684433382193402309984643054524240283911287092554498867542385590189780377805774797307656779614742222425972468871339021668917923128407046778588053941688397632555216237386038414594403504116948669540960790754678555511343621090543994271189813210132059663511498529256897883563290782565430366115641508652279514626656328614685344937333472835250824176972204365812457680009952319202143976461400076934419455940763004895538924127671649986015476603201584398143263017475000362915197608912995171709069770778644607469666858805849879820893763024452208978536575585537480885250599190538345570345225885155955537148586043849055452714464230236838307338388316149243326002300544596385637085865486751677416940376429701438486698771778314822115186737036286479973991792767981756658282919486922327943094284281327701549333639687513229403788293159012419557369879110028896263417372584990277368208325827935301340275999216505170790554907542550647213963284946150806243411003447446055684280817213380951468238495626907346429621735189876361652857877714279232188546124017664239426075107529714890971657261422894937861724127076552752473105535397397533776058437471034377219132569683899262878629171549557116339808210309081105029325742695780837329763445936034530434006341851474269497887834590964767972977957378247586511106204314012138883364634145571637939628505601990674057153090139132751177600084687370527742355173383932907072863518505384158664276175754097648246876954007673875722717816484315141297685170767111765436453728153982691414864265909538977812842552821306314847838087095729388899121194514416964371274657155218503377361123509731205367888733158068971227328086300915167763757194818972276812712300961882257560462957687892869146985291421877598613890834162807763135572720983860489312039408850068204132952128650039262299988466791330697489015885960713548323608038746748349121525808980644317763521849749845466794680876268344967404112069627754680575804200547303791289133670985381353042878401434904443267914064244761551730790315724609427234377620644641050544598516229467307177706076858149625251038484755930427988184288316279943902318229329123267186716767342760422996872263166052250359571169294266138233688980075349954482979538919607353813134049936977032828090399067140060397579281050486266925212315798972281198455478857187508699181844921099843459854113820082008102377114362042093013299057275080550756759085953544530804161328673340936624644855361161673675963816424955876434217283190509388293902022118356837145811574814366123214063213171207118624999710591329236528178989894629646400787936111917797811404494933149632706735765457283583621765834236889237436025354820835271893731532254821438393064164491646544878533117027608210933842290508043638772062850106648891448551806237240275647887016546047132183450721755163764376483444299656797789472235138634083502796809325129621990162110657862556650122150247901582237841337047349484274822087743386228431252199217872709942732870982871419019967441581365339723621879054016168864796162672187353455289014558218035866980145456475645148070430901199537713524231089482883589218873240106696203814002386227584294069521741247587744780494924042735511254077796662960719717932017148308398617226411994277585227811746966833778568310238151062617868522390142279351111472234643926688699395913954253200881083752001110688719811190923787871503588427763240881937798130317655101456906148698844085970431921139680437033431141109063517677592777685176671452374057952109316173687132802754205129690588310206641894951557197943645187834746468467429963811256354290321960049782889168812049794017502389439420139912219684971294820529681122493134755082556085485916269392654149139535207337688421071391441655116771726589454317509734846787702555762016631644579596890206079228013669365275314420952746562740489924047517380408052015778292241235643110314041077675680080855848323777280312233381899479538545535461034393248856687589804648415087710290178092440436627715824116183903865677304918812263925769427163375411921645456003988665865240217363087310697924095509277438345973542954847483847516782690293187373610506548341074583075006404350057095832013585891448768990645173279342353360297596899154653133673855830545706900018943487815753329552387511296624847001837146040550249494961063122486959083159543272249455461789999045650174303818949243990776500471678152248034754279518141560993550015126680156701784854289971252380856628971928695223121311077421544167486186879844459164419734734722632829612908956461461521090853369951264772300675909452735824587162617777864546047805587882655334759100189624909992465881028029166505364546190887957451689647318676382734577912508475478712304991091210707651185454293791015298947520041707092951466510212947789696913566139232516209135697292654084662833230591353545169482995808560694465568768952854920367046969903586056720798049948863798359292349361478188881986671728739113244716177270168271958264922029777954242275154105104357947675920623254178685352866001855670082731306929674912954220499684526301769813352892264680907139802474805872868451456705341186379840039814631468908569075936881803328832849343114773837111928807322587685150928887573629279603632323114083704469515055657900702693925920469560846114671996305588046175508716742125812883710639259754007590920672020320249427276913064949310541346769419985073054695790451843416677784473077450049288409714257735748532272271810020537768972774411745523016550805177472818226582763624768472300532635799632895016364727856216711412221080676598275033549861124217442607321376099775820382880864898356744503774345217911547926468339196511599103935176536804620209807597683206288335894779469726110384371935667941535509293605177766712421540911743173736251436240120230885968517950404436530644598876812767328946878702025456037515322239655509840436918457769072760976965322641656606049178136734785048886094523459605401522311146349735772560346203780471184045841365260428729962972701943593116971083452198333946654973709167411711254694401030420017894171164378073991327100713466128926911954881754112022779581512984254438569251704147437450796051467187120945814668512864955677904796370327824897121196491221726288941596815865534720978122498554713518581447943119590181356978885728971418032467006296490388846069672677145937367887170011389627330486554074980524296504380073257591731648892717963445294046305491245335605386983188899261514310870436545570860308749943839029464833078944747650882492094003123167994309857126923162582091342366094114303289129701688173031675890266854986059348882234851746790243444975066550785479282859767506927694353149627837930157175285430596451539820022884450061161422876207092435245641508050510017591128451387416030783402883407569846645798723704821643217297788954047226329010340040770545011125277688225773410516190939095055682493551541399764265831421376530341335604234931826372134315326569390726917335752808973917738866124439002099372030994926180887281425999645197538174089514645551442333460391338855654345869716756215114897577981405634690922349117654002648900328180140072501541435759833248046556466070432962253202057330617815297016821872098172147396358403917497280566454178387027614921927058228405326652456401698318923834888500101202087865685712261981187194457442013122882629241955919904059919161068473019592712234550041911622651444479941719279433805040310768528787301297652551823642959798069065473335637915973032891676075280886353915045805453138166166936844791106946523200010890409001314037180090696775993973615532808719292062960025455043883890883037838940324958488596224005851390991634589961625214163975444296389541486128779909389287776201461440105799244972914257656473419562183832411976066350005475188263285122515540703452084179147061617624654271042041971597336233597301170403117491605931699106995265104228680073128722358316999831835747013682279915253766556203656653910180244282047700519453056907081711857870408780659539993972519481940263421844096821270074639671636190266208759987784673519129736872416116336785712694388510908699915553006098558869542045628245081013284972477760407740896961292791757960281481672786388066704990104317026672013888739696256757290956662088361864865309824166305252566076455054132051765377436537566222177875930056298398986059078191268437534288337425136203162051754618725909356681221544848055614463507019088135984439871335423632493437245311993094391561547849632641396809909866736501407085614036032758804357310071263913980278996476358516524358687640380987804903467626163730243454926441223602110188316506756690220855494438813654503461372204704023182182158889430740726876742474037435195642472818395389754713860080492160393839774056068744384609661756638960960106804402418319091276042844022491597739390295253539088747377261001432427219700210468956208843083157032542496921354190824773137555422687325611802298648265147407860058367509779497413204099331907398614522179046346016873821635730013366773942241403381656919969287396622780915752228323588013744858224562017769580852991415018326954150055877017842066362819169707770631442800872066932383305664965513699269338895837008766918404210929243084076192787828817540688569201455746162035549644387900728130036222416734958994509773717261660135506426412709705409222098146766698272739782124977345554633627397215105774313106144666978004449427825804515080295545166662309401541804493512817470079959725542067419950324910353900979308583753634603592887460176311080923944122261732292456739461229837990679404074921212412659437345372498344525613229119997178670750770183984659453361012386333000329751777794332592698354575365321573679015674526514531763807980321696206930923551053832136394671963484387383586794605756798260314890292712332331334162736637904405557618477175507420750865600576754929150226661855545287980987307505215878516092450961362531120972141919037627726510007299955890588621962543833053124995278150854341357093533556081347311584276624623322474396390555939170890449833139268535232869396878216384572642288625832406770271660593300893365367871215604678519471607645762535478083366229175652332525101428614736595217013244031460983134890083097860667146744624331989611355382477896769865988583025276998867339894021277324346895401600438932661681374726522348887954724254375450955510625689991399619291217427340127989555785335998237061866992801182705580961076060202623245383150245782393705590048460414166857776270050114082865932755737501336361323204660946648347146144018012717048405171194305977259325995443189727019311009326128605997410706200998818247205859395785795765483099951080911390498510258527312371772629463340275883150944693680335486286271894897330427958711052244693750263948303242099367427613825333080747276645768320279132270805073837780527007845104691440753832664098135730190633927070601692253789008029172247944201739852391598024923769161158203529268136749321928274474491080157772837702661791004972454757426119076183348311443340256814807252335346062350500636035274158174703514899831231569142594814368516253155386673820708382935104675399265257880359447480659159475512958416806753711730683082907197643402778332312305380393786979694499692386574289913708319594747318831234403835652105360006861446555956481277094477836941031608018844134330033069357189572630571031128567917521376889611044380986728556353503978016509312238276507719689622341929304317181070311863756823148059349710458762748658561839904167660383725441388436029446999305972847705095924906173732825581994889607540049863872449330067501829386445098476609358044945688205032783807244508509031692893945352592276612896135897557482985750398533654601574291589034849961433048986463093674541544398580788710159788914433093885137754957291145561143865474940250824902137755187965555721654960334173231262291177227066263500814903314995529833156939836499288434059924723264239399719398366826852993813099764592691370463982348961153292553472815286922494497028100198727426892232535280087984644858667366018689453788274859300209976812717378408093395387125721580061411525477342286559278449204930620035679240095101834104035654635684541905886150446767816252650100158531465034148972183419599361065874895285735372767022962853480091416635434421448960314321055224123011937350600644847376732386085493231802500023444091341453251164338999286893043951202237542156340682990736851568446925068465291543660869868309966551196494030916158305094225809218184211068748096345580113645049558888062618694905661792305113401510447418043995203150373978369188584369271015639596353191344854448161457274409392253659905072491783722211890615872251280772138750885755286692787521367446734674684303272687212190173961676760016957000995324649158107155793273590562402512452279459437800471744725050913852197348572767681207425679899350633578632180323575946012083856533555112634355103917566259594859380344074372300412072665290234970867003202434810703752117564394090889032373882054800722421058998872353846410034804535226317656290508729602849173575460453463406819585294216226043377573028748458522169765118736968521282956594811157063259591683531662956974301572627067773366075561149227419347923702714424811934311469191881199418743676490574947455977541037020625760701941835827856131670943189346219270281626202073866999288673073091835474853248435400571468725441205146245077803368813989040668153851741998231052863914578758803921222156236771180286979115587641590286684474514693631570138373992703295410357802905355011913229678099233395309497552046790158020288744571411661699988166834009716457768818102421542875874816553441884706513571874903411784218993426051632855464168403785130962963530831452679681248778496840878093140261729522872315150188572652803252432396697675596500199063828982254205178324866142392669987406802981774808345245561178985670878406901722292140007576124413096336842592069921211377832608558179502826622474540936326299288832346007424329964645836897022741793927285081122631692362974729374243743541556436724750872172754492293983657243394223124052636464416525635069010648067762862920874990601392504182736241835113317813590436630884710915593181140481760470143863058524008514810043735467662467363207984075637213286319165155661667876659412874105464514028864203890639896347822309934854393004270808846361391646060186823415506758373861492447011212101095204230872058760713832928104419199861191458948886430809442724542671688919198089425088363668595990796785498195808502017897589423792475910212744206314327331991313117716537147242986019486359477023307673196932275449510755808811085747510855501563796457246981827067091317534852971946289741945728463515018873885690052088752172151526840576152352143305496935608713052734274497466022476671097941822068794556309018947723104591151485216558933923003554669169471902946416183395778003846960023843713095964346838021705159803168236800462000545983322399565418722358940945909668173062154427492002318036696181281223143092574562899431656094436116462410647865074156757762381283496466293066079311178526385766210498271697630056789521650867694992060054393104388398011920026466884083892839545890555988546097939533452605484326998745410526397071386219619660541042912402601163746025134864352590943682956040789477872423784893727931624317024580718640174137973303578090563719258880694993740356660094028050518521976130369864884130825896855946367844080051388804387490569044019227088368645670527261003149258449049769954364491919335573347323370893933759757877432161217491334616508744440532789640367384169692134124081456934555816742210217885116589663941197384688473417313212992521216676429386366852539999429496903394812429263340036614533867674251661438538496605646426358743121507460507277168001164196666354615829848843469137166742656370466695514137285208313142583015845179672348192878743656976652969113273174623651641981506825450863148567371848005915201527133896168668566401614069427361606254817584080067335874371307028318428954307575839811654778876465518553392849764380654578525586797008901312657549757674096919844822630310655526645115617639622023254927745456009345567098719704829209877729625448590944023556883714115188345684242502266530737173690185569612889820009593028749740877815372072411866884002404712191243369996290154064790298261947219659956113819824841883791871921998641510842462564176968085079790499811348051137701658837500861087499521481441633477414404786451372483126594483561724041110233707587396333974543912660271878257850646276054253059246174739561555093344906520478289413771183427270981461515226163088493497586487782658139490411889834234193650930800932787065568997117352607665063215757826622204934493566194173126006565905160194653238916999567657034301612384914244903734165398225792903978807646998064095590846098993487615524748164349300118897855576445459607271867383928430087707019842390064754952692533814871658929134311508282626091620273972669614586567318960729853138812682141205769946887652164136903826425157048320723261934074680772228068154825504555859045391303959248396987131771570061616142768766708618868920737910243763363069359888083412165838744985038484780153780976473129172014821624002264380466535312685528903713948968374303415663108589366712764796904589703412874988973995113186071131018251020680438140059262705553447726270918864719146985068611862322296253556965465625445985292045287622486559952819314395071001702195516068943691896660156775685783791528349659805430782288508797660558359097638388768949701161043205308755699252533675243434006140104156654487531161699105637218700248351431556613570951213562078403162106072877027744552844383726230885138521507161912391179571991329761594520880383026495537787335986745942513474589007627889198028176802410558050760562378563988184566075559950549081317017165395153738690737368408829688767698717121210738789354726917310960636270023328042328686556173342608974657793514874997650973087384070192672559424021699817550021207876581478029377728877361528928023046235394932522306833563754623327265470780202531485349486425684289883472207214237669390612878969764401889099984846667606932690464921320043552756435548583586738343308056295001878736633376634611158705905389306302578073416313006670122503979871505100290348798976196078595472111149221027811622702315723654615867792464792272417449925594308131598125145308720063259252447813234024410256124702372773627824407252664009001611921572932472154789551941385256274292251841075650818074890813022937343263315851876558708921022570408723433789283195536351036223883231912730177492548556415854690668725120207057064143828608444036291992043827564660290546616332846616457115042735808120624330823882467984320046181826475530156949893376203370716647417720423156448566345617663110505859706205420189531065993694163030829496914586467025068123005073081183671394244661601208744542666591729493784937728477078159208461078222575268787280082306557291701516082010821048853221265307507415390411729116549632190917454318270153129525923367620633757420158260419764672621238935570766479274587257866515754990026265077252064284292446860159012428040881102194762463706298314994242910424548179143366018257175397894920927909888543413680781053397047318409350018467300584593873874541678371449860765473579727230350697071317087444601466004969964311583134025809186248873552742477486235747712106481273034940060109878657960294405283941187791587736926986746190804965615157094672668981915794187266511105057969936613527018623343997946885546973970325349040630218154119889220658223118365520978182342657043854544838193638010786487816902837581984915386243752214439172856760812741322022009526238746592206306573918889217257507622778493920744022933131666408773744022314535733525708343913657806186767301356743269418483171812843059197536583593887495952189807105046896547051240985461364813592489035786693010928676940254400038126394694569968525582735752470401659875660575483115528893077008746439037871712245948689357299662914120417677746806626127358124092221031244070693751448171462138383807543667506360054188814692916171317444363911616519473692304619062028198755718912473624413646136128387468588888653989507095870935441987040371276552417095453585761330492320131232806422061735876754181855174001835539131099012223923493879807945719925322340035359268602966344841620095839701445718120148149698562259287172856135916873147988775647490104712476837927386604083303156095129221587316733178859840897991514125195748687248133288818482000592684756888866228005562792184957572282438543703766049205199637349962931740744979747365218701106029210706213516193403484837688370834679155449604858033039516013811850109177144713293707435005620742667459907239805904605977393950075226002789843939700734921651743035833969957198185810340704939260868787439425205035041611923825244451818742245410388573148789583684669659897537079460965688525800283941845044863496644653552119355053743016870412815549947322058545596891049965081405022634408370620828927294472486809262466528050765827773332938959665039052570138627823284162596622348492872444779415437236208728545910734113281848664241555568287946770288983103178678092565392736484615272873568325421163728912327654256034345941832079297561929754896150220987260985478636941022082738072762315066942955503141502406900642567936173058847395828508469020677393095738941292872460372730503610240164479234273832907743117856646179828770515783740503923955216699844385305243334360694623385380415348983075484901189373728071765769309869549181507067876848304296217284536240077594056306555688510407429148307476179751085894833859138994360600514020845388961989590632455084541296980678958233415633570309132469794438921403223111789600175566851478420106456629568064925629057586032754064721716592221682695343568515477124142779350486709460712370237213121600603853014401762831882381554170046530344930764205107424366324088131368740237321469755869520368001237344563086501823606468337363466702779763282327709449643968819981107386435128647656632694827517585158705768597601592594213782062948736104169307061718876465462217772967180263310433638254599005649445624285259630517998056642833848843762606595514171630371988780380625229431614469327613341438869665554893159762082227978561667086412485875032467462306801412770166600137278048133263856149165329558008290976047545777581636113473913527509075145870511221893297417271592691607899110248254564228479689645865842390467863397776514937845215455340464814258633238446722686330418191557678911929593061618157277146915585131430505406142221678462931072399206701482071262508039346908500498314792349174162104362910898340683932587629125679225257084268061591931178818752312877833370064069284949651166568669858152999494405396939511993155318546144543868949546328859155129471452951892455211746886914975091763931080423507519189187838339631819735366491077143678390554058804128784194285331472081199956960226056598298788155305375800462015205206840535226856642871035464268260106291128985979450144701986805388815428242252223910502689483673167124563678206992536994616146105218784312305244426968861779802533305662003413487526176569179148833009212909510517179638777134903372319642662488944339585544178460339879280752649534305184001827083049503574741754310583447758024868627522984834358648997341160433427412160347114570513344282220635765546405893811356066840443408781831905206963844101010372901986447383448675965299721464877674029143891869469615170398460774256770212535679514171431236449931129082105421166277351641516383613885361794308259949001588555162196982384760602968564588480781230441249756293106395279328581766993012513800777512118077856937643826790172695401814053967107645591361294171762624867086840154602418281520743964725173333719420171535819089786497676925868305909132339533798190255380705771868555437599157017043186948809886856002230018265115453693984689379419161061500801551765804189101106440508092958252730471795182317552750507766998435242571350234197508545763348209658514338899473917906636781300906865635401600370146763793504386783211325576395853051160677872632397136227831097878108023502241320654033955113276714975924455567483796607370413970296499195465545116640791308686036903535242316307042687532316395814859304326818019960599460955581049433188856152418928754439294678372403963914846749282913238658122806840334349603008089604711634891442773328518969617985645222376488778417004268551600044263243155541514683294307634793310137688084598924045663912258065546296760460368576535520822852905516051245483926306695969499720429613557000654030936050935345396060797645089514058971092041646539105674428886866498657777058639121722052442775632161048691123938174257314812705129221900190760560257738160584705523373741545565422196449271235265887828998438047438572136687605729813104031000616449030510294610513716617412852800945037414195128501728127107744518078292149292536266017200357642153842059643385243700608468139962393986295000075034289835123619662196921759479605864147485096922106361065098985109586297891484758413969114532882293925939155596459134953816569705153997433500534934101903319006425969145553623080790598827060264542710948064662525537101870760463493312733972973054524128443476684547727797192356889332495915028231684046204112563586272679842529841303805666663936869581834401328704949039505920841924406985879747761907722683114288502488868065124851336599961778416498462736283262814445088468998336066163052773571015559354192110039246182357313250585494040024877066939306821499469191045392111042777597025335554017981472812033461065828214885756631057174048498487629322758007537492376074649771743067757125275412292927100139653311119144500377930113574779048141456026114182574612127896653732306433437232900925933381786512290317646999517781097198185408718759328998264484112422587472350986494701025221859570957257733978984758546278701158776916171334566923022299063142523901705663675118656500871997494518099961739763387450134106382446552015406738741309852649801816568091176604728655968858062874216051917262869041229856694571248068750326850174386666694286865651431327865647870110633361717205862495999459785240120074586072885204959656070295512504355505564874887221446114706148306164307104466970224533693788784642230767469290242975394458402970000293562255260756637525428537510856715927444350640539670124062213490997980783325097974541263069074636275282767295764179238904821309755247856321323099275252957395755735815674438650030940633663046483427547276116964988959398495950875998341320954868253194585708663032652089963508140373520091747150341219459863710911343792039264699844305401878085820467786494531865139694412506204882389124759966984296466581612558118997762024963479697675726904061122854601970918838842012457598421122364104963267132617453111350902476214351357268585805405177608610272611647330693958830305536409241744950499810299173837206139221657076484116219318186438683390531926014970252687092055385495674568756855535509587725467137746005493125021204828613388429378912476184134613703927362049000983766350423760070055933366840887955289434471644146902080370871964988566277831651485701984183643863056401572704128077704241539961106724257541039597655415165388493976616302627876690659069761422436526346190388540788035118491244543744846806239233327179987065656038886996496283817775412755466592895555412372766300233972753949636327599926296999680764372219476221469548822338661630471308026326328238515439027466558934440861020304248732785592952426920354926366015183848188577789876260155584616538964233569171583605081308175835146610174563511371667590454723579315349319204681747592758766835785976289356800548841372626612734115752485078927705019526638039822302546787774859222329827529119457403600553553365553186507982255981931359028692855335707722872466485969408425864916306814255713380267742788553194897771901393955256668619557598097637393310913757959246622702777184871418021106337607056209981412078088279662927820179165322204274188022939788599196856194943351728259343326131993687053987316361164161792588586694677477207513724357064380283079963135815494330079394461098411790167761837818354472793127915302556834701432995574872369282363584445640783007897955799112241312608653471150336472340736177317128789902258322529055053746578520282222955129633236296674751544709966100962646266135092559264478392137340927283374884743056176348835488434073181600886212265239933674404529836628267947727076663588984350172654586404766476241501585653648061256932461156962695842109073876575772192697493533661168602698644679325747796352151625405485869132652143758572419218865278592275817255111155460520636205014245293981328080976412376851380335540737052928785501658546990319755887162501266923627971314839389726433026843198585372710062546814569451509789690122215592729986280179194371995313489657511799902840209589192464827438157784779424412246037096667439155792608369147337720820008177105791033821485451100912938353321139908199479184965530912564438630184969346897017544055281888170415396485976858369149425196859174317891152956658105912725038769735407325253899573283365540337471924508673403600270418338166348631828969022414395850726441438158345207049097020339397315995598939807772080839116501430590331153556685062534124151396924389628803669698592984890857648762281961047098544619171993936843114335089838071944585061938988793832251939840666183325430038582113098415751596277047144864019597940818284363710364050334105344595676809584487009908137534147695851277304406696634661665675870476379192198689707768633516747316091142932506344218807135143641741835453967346582781805094331105148803093989028982254892791427848875156748703713896702515242735621274467383945676921314209427462573601561453701724780489377262213637138411702305129536918993344339285610998250594067936853784711574684510269841963379619445871253672514371404268569784672695904092042426081456888401736724832587802455091650111196693766239460143812623262659472357498095422123689678890982364019805781912659787172105455586921091122782082817927718436823572817563542699184477558760620497967127321661382413016493423375655685038128993664324152686101816949803731522206609671637419761773234740562235171840077442708876902678389505506211848165565466485918755657369859322522500667636037155361355279602335725502391063856299589977239808767281830594712600021289461215570324998833526531512552055322172677088472015133613411515323130538887949293179520048702588137109124876875683517440960749949894576245231713005214508784996291389775505973354908712580627978013433814574757359674712605494208569512690317051033933596302818831669476739062935463245833430016581419226563205566746066172489681545858716111504592500583940546043497050815819013105081952277075479192102486551440631674553448049745304604564350368919449205423159623886593090759461037948609378745705687990093264187918239267990149145965406295835661142300966271592778362740080308875474075712240239866169716303024271600990291895223413223070672199944334637906901706828536601560384751305246961409604742429857384392036493195093609455465965841911810737216479187872880114992165387701750370859589591768157911022602458436578211638097727839871532442860130386261242339863228675234556915795557479185158669234131914611760992498805628875152507105204112975328766778193955762147383362341589692456053947882629897776085936932055708664976013958644186214515864860890699527568399232893621089829429268735876942582383624989187833214506947470824937991825351241143702743122743915494266493764256695053878225165609216072085710264956102530638233329696448699131025730190051674167715590940648765905550780489355613696182922383868213171572397081165941756831244819098589003868349695941328699620053411137340921666096659431842007851380514095684322932931609488172174625895408115994197005449434340111967659428011247246912350985908226207719289638901892631107888312545651553954230523237277847335132988406780164131463083555541054653945083003477408876687411358779695454248557004983990323305673667834151040496341808609160755534278666422843280876069012006331304691250600385513384839228652883576539931994328099306297390557881893377089151800216795960104718115356694874069976737831062328899898954403459919638639234291745280040040782484033532735802099387336954099570255450860920417668802256664362280994814527280790758510451954766339186001417200514009698801646981791369084224442160490041298332922460811469577161118384860052137550800353838407172741547819763776767491589958208491106704138631430103885804669347487693515241946404090372173812971007111172179721686298015746203862024954852477067881913581678512381160534872668008860034952175947814774240618626814622135665789429811623311870566811694051256370600601170086227379512667229943398236949709531223201186642818074546463577901052204402053185532937929720444102501067114446606206770092790633041503324835605825536118267844968759344336268055203039873716270279242034473523785523806546742466423867542057828748278548737796080604968337441934633008760960001013842314938105623026756327354951887235062918283740017862671473047699544242863234530793113052855612093635184516251459914039013936586088415281561339532163775563080340451848262071988192599777010825900715189863767719776426538861263448447819270040905935477976683556783415867583418593893606392858298713874222409587616829721964545153360122188157138064603963890215604087412198473997851971642080008365359395900556619337272262145949800302116555984217430112294333120142495451952005720283105387590564243277781115299110313348211969728171249729875589676991791545865258433616690492489367461845787764884399854089303982830476321487304656733264914633142572161434225717879846144500158756048973815668436331540431314737455846245035016200570243406948564087228538134741951647418198712530420498522899404028988701400097342912356003557685341136036169410053456718651792129630800761659439340900945691131523811131574680265480937913959546689338718461924831924938867625589213745073761541000314313681413135683295999658661082793204252367457367923240104278009399266043948312282124879290614736052041253670152248863710728504009955863070785005804434148107202316832586852873426663220715179061781463281018553077572022710839407767664743495511138893885428893533219829273046824894561444900704145971233743588159489854938666113067335299316953291668282968206157079104808212565907002792000098300376285632771845254123140930620040238346853414993128311679613482523113865066788812221140670763196326214461870000349556042316776736030260576386344095958695727236031022643914930431348139260499819840991876567674345359098040338602835839469568433458359585109431151168521406111575202453775898458985487345435129769893339026592496989800600257064787821215313698366998132227911192871036563480325217899056210926981278160139550263965919280857968772380841026797113192845294654350369520563084135982375392967513302070888211565937259092940544274908321356110006516978020554063395028418167557872915959789817313504826821144243100443922328133906302938623494663875961974072378810583490845553742170707491364324296584325972355297668841454076431721464731513342226144354452917342611322687977842385268466983649232933142739352310753026330842575425045503445733192725150822225568339983180842075785454961719196116024818335940333881770662212485634004077768601285287021224361006750114528820238248835783243393175486550493627959116372654403277172971813401680745057575924520122408637098115812505549266898602065822324936565839082288756646147576589660396034102739611492358319063490286356036269920581688647565258379515819825668805888195997306903849650441520604599554452215321182384323847340611267431922654374653419855763036591554120985483461928628002017930348733142595077227875780823641439473530664085199740895434531235156777033328593583222612772934251664372399704882779107915215452863237447085995555662936808809538725815971045124717241334261388036830077527054472252407087263815078041986728532749245442059219296798528621749898037457259628002019101298345498923628227928232960618449069375590311526706107902799782568963796858362356286261623506258992663763426370963288029336167368940633946447966085672359869596972952579242126335857109338846603911533685505849842470533984741597989747568102610009284226266185947547316568635797831427092530836400636712683832883596759532642782940848643110257882674002246790265873828908670613581999905449495993667423497260325743664532396212637436876302107782290952890314268751586368565850550979777348991117378885798963467520575718179537208643614484555121632417864116103434084079828345652734939601066552865649178387579279374193584277599609183069721256948716323408227628044750338812272783814527249360162175304662349775827192555995233557424952321071881149658236256573749623336985036228813898036385490920150348498702124577477762399196521808346327185851867314230435992204104208432401282453069584397219236611193452148139068593158298042285821914133251056621379819306770882108614933859822736849063923069652080795332858822747721702664413032136429389240099042007544309491274610284476250926709844122547929640943279384682685280555297972023317322606444187905662323344820103312122740974171651126859864638604961154685649891994469865497078251299428583702868833548628599398855298086724631303478425888480246038549408932512809115536076500990754617335626879809613822228341096347579954641441848591098455534853496034552565121286349775078840611886287379553349920876189171221912897583358455462755716419314997401613034787995605967740071289072123203597593160109609314990169836157214135434420054016788832485594064745005329791897882210419692701254141388697773651068508774625039896840814058309129506347988709959026365171276006068202806407177254892869204409180131142154518407829717426188162487060235895957411729924040900896026908567073361369740917138179948531859195757996048085118867207147457348411558495913087739097745422208236611013419227706386137284450997997017418660070956625423970598485954986649709339884340393249074125356792404219948648998739507664931802702213808802493634585066278719913350844779475540677248315195528653714785109297801267312299671258685032568920777849747724238568671289283388152990868882648890092458717652211647208965382236105533778072711454094569358163445291913562432165421686512314380612959500123620448342286852098020187265593812890617329280920089895305163366554085362738417590120922804595035893008133557018263180969891053277967557150301541880042004437289821222772002322511833867909572646245935870330893023574712960134981451760375291968549276905749108354428398753082303430745183081044363904341200882622282910363489242553323060492380948134520054710118851289565608389571779015670056341047323039972916299351273442109009945591026596964474360903638491517612437403803576953285883959253329372524213443450685949300406699759635394809423070111491687003947379315979633657505643097877871979017439393869915188154392950140790584871715669819518935931174585377008359220254021204913763711911748937043217320966584298613173499735837510895421489130076274007912445647997578789001612628412783826782340470688188860852135123043819604033873291670507850973994872736026796911113175576955198474681968941774575626478667176838315408314925557808349330828510736023704007287443352976966169376680017147305279620289840436884869679713130073476958405551233835730814549844504014951518853796180757840333684424596915297133944148370912817653462593096798984837133299838851673186566112793383388844508154998607489135796038057873596842996005520433692640100305509147372020561150946206558940566204087291621451684868630951322588329648223620301439427172983837560633203774486025294582625237067586098449921342909892265985389377840601963846031728599435777993457227109199037804214963755389334811442005962269535188854775610768660319923768155427063834740139106146461246416001047667000004830509493699247021547355449765716223443728797708504205263393444813298751729742717017803309920420517172448632734003042586133142489206722194148070229017940415436889949191751420726933377227790431827236309949882251107861011500510690331773019535015718939361241265327421542437030163282526730896268560464401212042716606194645796853529182803287774198284486589158059207967947313979598569447333678365634096593468972683022067012664822886810429106960655572873282684786613657987950445085782427892633436765565745631630229952574527290033245411773687155125254442186936229460984913520589514669485659909208456127166865470367366699546307565477247268743407135779886760019025266799211587735576703078861287321706858298584554441166159445412023519921233953521318231920215927982621486133287373115861517060688951940278945562075149247568481605951654029943789653465400548563441419377743209403708549282919359293544311210048673530767963551772803241449754223791986784836957083398246198185592986541619831279675374337743406573525727018763609219723664940683356293829515953329752260234254639052711739786421824206884755286102213469677937656977570973933197555126853208209984546599674505858439131280966513859291162723283606100189922504474259581848556561096122223906360597663345964239799220497477575535748090888595575470873791218724725568258561235654716252701319935956219269277560240692810724506335384097286194002198875604638100833571489269144142544208829159754557570849582667104652987328475073808337465380784768886079567943101174012089583625632258670053298969039855185847507859667661598568712318175871499403325349991132848512446342325688129751962825836817706779168443409521903777174644115862162385146517873551193007669839948675157312145972321906072136718821826592089727811286678078523715999762828067184848286587626206256928866434437921703521068545063299290764645307010872421664075328153885782374451540904429354121208538841556730660660941643074542057628446685861235452764239675108636354063536414168036380453552398498376457016919684381800258017510136347540444530211670732361723845975377521076362823991449879213994128307338702933469325258144177873801072619771025627112600906855098544645579735799401351655321989261356799596583043793280793618994942702992215563647642252100260597539962383537483750329344069276437877185344698762126765142653989849854003100496903799180333223659347718733007447002644897201157471553818868620299722795673091933775885456092951477351438145507063462176972978450972946084715362599572443594675458073132166689353587901118397474114127164318631333743747148134847191511616425219878790181316064140898480582967289553988864701982059597141198023652983006595442717219896944974765705468965770031729047280925633315372206132783749585342345352027100956920154747124148290950742570693111373544643597096096440735354240086977349000330526908161672785249306407469299277361563224093679689721363382059557126289557367683194962495162494813267169044393330040822866615795009011777552276383131525152115077689671410895609568867105401382945221223014953122260847387068036405846154534514218913471727384978291034347343772734166838261429627960264324668629321788939633149638795091491287251589847081777544425197260594376669050264019252630985604085676422421953843666713861024429228183820217616395225579298745983633545294246420479802307165424542197355144132708455675585934508819678099709340626335762762324844776923711276583716427564327805889997312178330218916945559457556360347251471218177690058984047032876231298062032959259778107993052780807992909372326280361906070268144975250074123139271301727943414575188255033675925548236778341183036515867221873178214005415559914425256227079371674098334365725597660398674440931403850860969710774443647575188323529954174370450252025079964263104909124368302631453166575388720422929047401121467599815911530671900853220702334058034385778890836115685879429662380472845483794938949118916107593089954504127038240529149594943391309130836230666648022848776932238857167004665399812950975157828972187072358938495330021272327906810308679185998653921126276722336101600861539947297230743550103490969887905651532647889777910209140358136727738856902324316732142589695281882578146288877509810906245503207009814488519385755054472163436747465263964382594255515696671227991740871046421877576899214211380290610319954900172298040071373310908126391904415564946864439903347884866112739873610273910895749287421464956822588271503358496916730114260636518263390899656979264331731513824783391146910240502229411316063026744899679060919365784494002416483510546651814747971722084625547631020319480624147067081889198255929218009081958207316821440705119967952960354669811031603224718085956761072542583272429800220018121201719392674568422869732192744195597153735574635421499224082634191524371621762302980088389903433360991658952028967445398103941286459698611764021084974789246388916639014310178053754031664520682174034544240787377210963204523047434542059565338573778640944286373238812155674077076061912873822944910621857934802641655088630928558021064844320499080914534947949032438842130696598576518579052200107595352776140532810994567149244077393894297655225860075140428993491277687778219625636861377951444326897326067520476068296230880482042168383873432506264634496707903001800817982359708351127783131909267315841553289775346418508251401437214508274302820673980129981870709061101817818379155500406744218577707423010689900134767910708613590803324741724430357434332630665666037229253042423181307899372051672683817060104214965398754702238196527994166718047932031615195119727622294890648924766156017915528414065142935982201199123888166205862152119680901434565582070271346556698373624225827089749805609815208095131986001003679039495874216220339018357059251494014131955285313887030270257110581414344154309073501914765418311338713107887916025372492511371051164174900356450210144438524933935303159423373178485210924835374502036383137073503473856379104134736262714769047503146318851450274030165453979639751610060925863989236630520670894139662538461463938340901938468765556161833050283269190766158277637762338714693561108526429470138986296285444724424359449170387621397571479919748512633449006474467399895733469016176994708997523465245214296393017597383981634923496070546294743517742790290778163180624616600318210378846735003050322437107938614716426821148407978602572128271959529456010773904855397862900041271132948235100560523283294440258274969258003801365726511758077265799492205283920026669204663149804294600510204149917807433180125037825233175014990344507151150654813065312403635392742434020569867650655015646774068418019506098947510025619868607836332505815917469007500653782869658047427925510943414248636834433157321028832723365263072369513596481030439239465749690159694043716632183805997300706063385911827374233879896964231987861738947524161233785963535456820730999649124206541269809358941837547435390831066107034103208144080982782006445622260073114727690417405943295745368048954472466654131746190521209197318637152247663994201373921901554515326510505456072847088576537234518548634996135363629493862690987196113001567980424751476758006984222720325147058456972711236115554815588938089794422907838786473763087850093231406914903896098159490697277683928281118104340482728896228893575772384308786365085133726307881370344120914456689697470234976739579734890218381083013471230546275712195506723994214462479688691365568426642424091424772363746974376918604707017294555239353076496660887051942170031481284953054383152599639378530472845860175135293244632076326702663775454265970287290151694542148694715420792719409969729132336801616669848025908089860947430106654075782445265664507473600140390995944477636925074025261307415878883233128094120325125951042944909652547358669847294451362979855946182626242322456379485452772983806788423230098222735673452101316264360960090754133852050838750193288687783986078856497043618338155917594313000043458085854443423485443670916226570856946697948923110479579817688772854159359738819030760061316667029912373861371436955785165263009665700392224971165823275827683406782896275078099138941490679386277737321972371697371472151275689251591855209787398062097347332142603102550736130304221692772036792764443838080117252170243634139790473342167693006348044614090897943738115607283004607626683527054817989085526763785495287478697506836999277988826158525531412262192651192573433362283590764091643161409666847966696087624672580254985752058196314757616009512424380225316603973925310427322410389687775116320808712588158453622489352966819326821816386913880418597383591737123532626134358379071937707054827657718041972571366717322132077009161386790707431882495290790602047147761455196904281301298968316323211442858283828729879423280250979682441924286198127099391158553250444196297948846759475664584221894928510567835963879506917532526903746341960971239390028822524186339677837453649149601023320502275320814736667011262017051403254854141086241396776733260770020110796030439450346591175777776224894077257556780836670223964859220111894781772741403720966025971061694900174179966466705101715989454890847375943743593715138196451269905579914258955581860987556261295206700326577333126918169006112725487232376450233798462831344788341421849483432618608445978281756265499081782196235591683828276969963217361104394076739387886900708840876009359229418271362080777979027264434727363728369732291001911166644374504150306258993766274440550901213393933178205645143362615358347124063354788786166652279733269571265670197587716579825907095905308579573259925614473738266810221804530886863039679146235992447240076412543696084788589439477002085899254025275524542986547917728999624691674063371761128406053193981404780902477562438493284323045023314120458961755146550011759658378647680529739717529436044452460294920225524497166044352311116489460222087753777737053568155434803489421983382645031873622920019820147471250443352099197613969696552209261023286141029674994398308814765424168127621546590862602576107565540617510843180887609902474505253794483000357192447906306449698287740116741887501674480431613622578585973377187663634730556039333602111870729873363117065484102347852324850667849623025361545101823357088378115313205495786955382624806937439260061373036443785882824981859893635536626953008757837795819074658007696593600568940812280366196016088062416585286155319555676485561185014451633072973699798427283039334450181077223331005011481028542891488498512485556744196166019877770751328029337351231561867357009026577055544203749387710773441033107720709093219134762045811017776365619117140860993935845954861643303840965258063181457148971290938724356368028072624250438271364316517055177932613859497226151682051564320927932750032641518187109704244207842658258085609222546039660690012355599792686726254874048338989838250014817616691664032004988615576802545945973915053566650739751584237983364987990169281874718593096289848664494233893434820234098805796103430638058926724427815454026252143223477179076055126183435303449385296788044231530798682988452963538384946540821329633316464079773592962545336148480788457160316414571550678592941520398071393706813757318767858309934982508254737334764712070337517262785960132483463931252761384325039467256265649065262502652905221169295013424710720033338463795105068166031494230183966124624372036645650335428244990208579664142643938664582897686134202809810098787465071701884638984874901940529830036886853934853292686853459097539378485668653006120456632426336108960227085907942972204467661322141505713226095397672482407140285177308843267709776605925198048685169220450498390249305635386847959313102228236389907246599364439421956019790307537631124703755448133141417481936872824945036620409889332133947153067426189161109589422816516734706676354674806802604080156995397241786145211890441335137729884149089669713644977999334486370777188512256047186676553322148607852930671470486574477707546666356324146868256248904692866698546441653258742715297688145816635670604530183770397450950370007972224757416648396320974540124513004358659039822779678004704639224823776361757558909358210704304103937408236877694550337498626101304218410621829934870164532021259831213418074194963268839720185262612727913298664462167464724268470749521478743384800458309774312288348396874720335402062302555146994687287402022764607932196776489759085353197551516797540650297965263007558757620225002090217732234462348365370818661533952273923862711450184192427881435729380621843028884749680603643703534309100011260453891722370216069838834931213307657271022835764702102770736042594996948789302531280665215701173937447583849738092469925592266421290595243736762642511573867862594171521817628462256598931782085503022916935466849028068505846732362212105970460069777544603729630251312183988104415375050767343089382310291819334093152775107206244327731947810356957708075353131047643462607440045702007099618785388013656903529881837739134759881782953828291522887137847734464502456883016441875341418567213780382806434957636334534619787326472883552884155721485975047157694520320892885566477919378349566640621847480859648871796578690683479491669769599307547304250558111432179718376890820106425665341700185626405802315203971410675207006837989971394723414598098941100945211549143234724627448303098701616730761669026246827395706037894697925070430277040707499635012479484621416062605717603475087982948745142771360306917457118951042999976661058920180689534916641024391874762928584896616212763076867540406265005137134807204539864289014801935863949895227854341964579589618749428195401538085399224721320848213789727110845749190825221922874329969543683581960247216944656060629853749868987422638018876631964585052010037734655621360391749037229811277342774830317638062516718091256842030714655022274301279780644324479090509909714383817688357698395630181280709186861412158136229346645867309062014511753480098056746393208383182495872923625308035686432549919997594078842238744885005484032015245739285765895337219610002479095563261053219247968513419165283742652613797348723417716185176875361757665099482846800506188241509860218303022974392833292539303725387385250830392188722192493572297059339453515604304835907889919436132920469931864363455380159855565544404419385216346943440605277717606090065610330236506956843851568184387986894064650973203095720417048522527144981712596003339367035209560287461866746229144846569281585137513602541341826202832489718795593452848741711774408568806582063821593155049925203471924264555197622151334885134867500794801377588178579896341897712027349061578940255012906847806218571847348605925366550385421340365499551989817761211167649602384514190706352228688542048213306287443353844075273634829228625222515638668588238913876250154906442251050670921607573710478992665534298084684506036517953849417484736576428262064233023171585519501997482153952294501742900380857693655208075489246865428789714319307532758985464934286377760919023835541288334890810317892472953367513933136675922428707113595883857168741740067529789141349073868037216647165135527050895919990125129407481208789740011094567728826337878526907578874912378195936264181962796162333635340896596540216768802729930417738653436968333698752018521316966356819539079702810144771510367633524034770061935583518801297365438188720682248781569708285022945831056475095306103075861628811133750902809160305162876113764854743456047662416610891486676163176163586922145445485988773789411280248197227719400300123736989220357264552756584140582796905513607022412426104418553629821017964553294284629356231277770659877784767570003843427386384020701036251742325580834396501922513563762310390722414804525701746407165208875490668802474663461727537218199418578237120658723486885036437101611775328954594396535805526753092278824426564134998264092017009741345985643159122278948844438076680053311182429771510902361007980874814706816909573161760200119737989899730489510010395518072204068485193733147823929485230054853656215995564540078913358223241023670049267880318135805987571400308401739112334139758272048580420138294296642994677935210483185640137860254279812672937864228960456441194159038363213371795390137332921556712576201329107099402811496043188968019377488367382465537078302127008141710146305320326745467525648569632281318766640789646460294833295647685729368924588795577679663401477336687211737701032363813388264890232012967561083777986592497325527716232996358982552228702048508704209704729829813072838356453835057859651124988227265162022652831530078975882144105404471239272328418870347614574072771311975945970268932796050109380108375385546905622686702670902647670736863006682079781771824941380534563609366726268078750356969033584548819765182469967498188298584860395642232778257572705457642328524485503399684152956407716287018347170741245309854387690997700756996773975567782725893434408562900902550234567696094333587816134925367518372678037544592126832187345204948803664096441277505956794837900274851639714936003812829410351760780659595198149572138164050131711652689784029447230272046385505585052859286575817552910270651473130561694472243483152930998855029224490835590849637554631770296131847064054125520815226261419714502621470073844999264911244168754540486367553011684803450811167366586607241958320029762737948132361939747916931677535482145968861984463041003170684375270312238122206091115774991397801029327975166000806463994022499343399054348885904390649535051972909070492118065832158108229329482558004461956736960040188422362030156518141041608725704332137470383743508420702545981214632125275173446712552375343986772234893958511608857981556087568452539184569700303426696543941715585414805304214357590001067289668148346380844812925921608011697828140298307536880615223611630793304458347371463343716511321170662078853405307221835680981859127460202324936866322255768914815876744414391803704376408130223449842467554928577056246013591213398105115802154647365233688589041144981336587336370342589839361917823496474767396242853998478456999821122732999310444943247514589943329533886904755127138880548522343721308297685876569594048067921765133435852594203974960298763379250434294894294531937878932789309107877331494234644342388302195049537010666699825503332428494517320864874048955244189967269642868462283255437157308454919146353985948965458934763819606416777240870751690649287288238391255469600313791501437311303498077962206397054893527191781634093835616960180827218170941106378921670362657265884878379432785631757260316329856009070359532851149287213750339843529703891247421502065043883987063758867680927224985151417941344361885742316071917436080051296748421482352670425427716596576175846103243006247643824340914163074296401410644912198187427828551342775589390202632639460106641014732760281844402581094233898520171236421433522273324042963834402411872293636046933501877060311015346977205308530599490616818156259556089529646953081371576245471423130436071016539465182129496206122563673021564631132398393509846387163441325057206845590969872894343107655671428171001695477072965604706375747708845706809163715829216251871314563398611937735862770340313374800343769579444989547195133224095512273564324434389592787333123917706458447315571473911065685599343306608817244955042475727407674541575942057073375537804316372089921562314490894135981286420825956745415137193125966528075383415681653749004129567876028758910096636224359962707723844368411786821520972550620336478279937174893370858318886238006834945677130404466418654925379666505782705575537145526161820852946339515693947376565872918893988049483913099016641086971333647452176286780692475127346876830654732617606877207945674325015676206862547207507629099239207933024074051614638562200267964627752910202102870505323410088201089798892448303582548879226947947451572473549050769336057317368994218318079653551013491500306926390414243703784603513433850949944468980972411842830086361894175688565715308727377218447259564991134063520295577171874848370997202185958245315908625191810740594975526833262551826773884631967972707806690654728649639424162714398516639604704095716586127956038154968699145522840908899369458657144732651006112909734689514356402916717412855917685998649762791955887093213480020798472145838076126428621568992294703982260469588962670229153559138535733726725786678336491171322618982317708539748843418244446092461842389619997426215452921982212750299220149847729726117193264458695868667639148525393325417321806224301452390724455742809189623606027044137985176136848326105999668266263940886788387716282364965323478392636622169791103703641398163125915254769591370172225414680297970474751803138443346090913316147239647520586284603536933525058649368622321506674930970307622343600722385012151593456330142854294248783312442642121858444938879921780603250656137138729968403344991317066454763672042654999704266709394269038386297331531004653743643895495080465249111450395313640923347614829233556035026887455128734385439685487332900672492785631604011170676363522857577031282522681120183502717429457674500677178879378520584900819760925853663436548802447728599556063186246219649304797344428300578820986729359803928183193874326708523116686174813258860693648852546553140311549930766592072342200998368640924040615993768718674339817046966825329912901710695022509402473445173089340328147014566973004850088062148815069864594853067126907122897616514888593678997891653182661416923638895477114594420228420037003592458572360969442946737830483782026833669312871141352222073914153580132689926615357987636088554980661209845609361433419463226536452269741544307892661809870422307954572315343769471944701390924620200259610988230825614827778595096612364189788985531032973060912668837828756903976436729777965333107363553675450447420196287756275423598448031925692550277846604006394091673704505661919737583155112376979602268548159074543745525520293621259411518627989547612177189338203512080102708925312901029918146808111278122626732338236759796631464400978942036259512892410950473995919987764453316122418141029033728146230344866087165347338475892123265496165353991664283171894868005270760231370304199401156927282901897046852411583367180597237868919894989641917862029500595074349787881699061036722413635180004228836664299386326162048905564453236537345651429455064417895297188702313356135824321405730663489811307209084422985837007994388006637617462126304670771830451814717440677240751870943019299028801228656356992648445192522170319153583048228439582266393955010990112211165907985700282176001682997368447333078256043497312631626762731634683013500191498799036676360919571635735742351572266174131245155976822906829653437617454174519900616398767843612273145889907494814412145914094889860739656218999032265142655264358738182683654007149789034812790566919344168031899396668142634573131721422402642457308324423270556856704812204494957888830303134853348319327710182054516730171625995824335693848401578301800777813390938250682922725620251044234526757691316515994911970034499291677489855179362034085328047569502619697883604048643533098052452306396404960920073896883567855797073585169738903970100738393838067534192049344945141158508010115083915399819530421590918567839951752788930279989610990973981254174359896760515615368276002740990051280210936463923670241123425927414994895462854500064552579521618945791631110900049725185700717907803703810490974714091867750689095013949641401304325185267906036100593291372634729246028560121111849792003039731434484909872221564365475981946550426475484473919873096156178541870320388963425769696754167262514734474935948465661951539248916138091384485113431243174728930408489065186331159391690475131723362276576824351232711605059335511084816903977471107400080226393331966530696463138831968770478576343763506949652441327487325791756268000183004826956719541250289826144369893649739246396311969050898453827788785796552657678661977635815202682723222577780875692681367579528271584726488676097292325628326974004264283701415928616796532328923164282508919054582900378821678783872475678872214768902824216065536718387598749901912793574792958194674323765820856519904759692955703721679478865220452560063552873142526410757182538207340943049888193484785503272338201994967397288165174780708268364896877705463003219452646122534680898014522312508943868118341476202794917092828632129828614183179167886946500715388418230439534866336772572049753254411402573766522606777918947906295797432580914526813454790477500878716240878382200012650670270117790575119043120944517353443190979772456438412466770178060272205547801176600521861254486738878110901978387497180162620162764937520406472881732560051547602420367514990359725384280144440631844575055910860783966471779564217606083530114905187368127837069940358753101935230124942832640823111628693949365787932365094628864624727740866760197032873911857862683332335410252229860341724008624707910632320642222927008527043987993226166097568891878688341262893753313554331471883004830047592274643065376937720900079576424554175674052890131233287738221178004637024752022828611850430493302809940773560285263015571237040006357783780053557736658532468776427097881253066739301112792330064642213335122488379330906785925688887041294088664778146248477578032801852548322711546103494999652194083140485378352404848336067775743464677244805850335792295589907843563709370677121699585676622412379008939620021420613757876565734381882194067326651023476142014342562798285880394257502672346879364116197082335452054131959676862772486716382100996109787870772947285287472304058166226884844682912366861916229446426373208424626901151563472594232376225031630023121304470497909680467564334741917428343433486804844941653718368182521796420897996525643625880755199501430563976903130217335134895505205819772418735199943982645694911464562502759274693371437402617124577507921594390652195543582508764254372172715648581880110839344657952918612362842569492694050039440226651284029628786174086867710992440064123717269202949396834713618378376176845243555677860651433848627011252696182812694102349194740608557298340503506901398628501566251920879774016469167403739851040045583880191106845755881977647939881325548928787524448317334435352415836128621122782484472772004796605614621765928277873299766562590527410807193952283346585291514471055114374431751571525068176251250980498612981266488067633291614877093652370145587501444550587807025850597545161738440945973787079877393162619990422613675403619661646624955391492521424235301294729002662069490388576446726158173606252130953449037240523408457307746754721360996418947273967065535620663858351870905489279700549455349659161025444162623862443726848656427900409995608694727524059385651634031900252432565013755742179035162212835354914485155137111650472251706884975338091403378252290239260632221154983418788846581685981523271767123227045702912955110907396562421709459574430789187098061140898793863456046443455118785923921083710355256289254516343005276488589135553768630948052612495179410686647984027612483896299074093177678054037307573095044861850572247243330300444041404196796626727366296671944839900847784773727170985720292300226992732606507112417135183599475449688980840169317225913545556104855105332634706410358905927158317178010140259809575108748096861246565516550476650171297000661721753563769798702082579487466798584275285433215843167509158923634282636242774029341976730757570419898815459717860931489569507580349323593156654544234622910008679932550608885291577675479705830554919750681000594594514277305776570435901976291067851746616344883154440730018426922215014678660500688110107742857207983244562552559824359008535220190331750170963991274954348701474212820646063201918672072711464626008491896346840514339712888553735057878741050466938980636073816702082235370885453899735696785943433567473144939572662121465789159579281990165543113407821247891103409189504323098275538388142972599129966897439914158954204347009643999587184917036866967984019631649400848989444085521818998909790553898499287511177478801440430885271069839310509452361377744338067476466506864716164341483133269276710719740719389109720449234329903359918162888331764914297932936461585702976188271597716045709016073263521371637531911454626251424608166885009027879612017365777364779903229182505736200151025062837862817407357826160109374702912364189586648626098256645294984482697167277724636973902860735866430403750975092130999552313405894793670840544995528585150820648891118636392364397994464514182062680954806493564948616740613410060561035448266246635966139293552809584362354972563946924918406134794952969651901056939079869159710685874318380107558254890884851550763492302208275665156288156608083355808921102648536993393655962580587998990211585473298551174147606864227304930702567253396452588067149792519614065251813998811280510616019965153432880423435751761079055502328257776468457463236623035121886182086563407733561076104667031782210863498082594303939998487572574738349791944476598480866487599559826485591645606030873345548464696220837431961539729020780917836572297719874192381735458749632530397699269251207087907964690035375434919081085726099215871296234895428960589331707669575997335049825741028698043758767257431925933980216433798995300791999633043538038338532156129551057263528469971119134984383546370470546809040417817593781165348249583374725228655697927706495938893651541742775555525855021818074849160556366583616235206319424899951267483140188549460687232506012047052683698090012617119577411312598308840216696075754385184634427436280706123465835982532933707631649767971238771349812525930781756657989267605321293898371185434997829575130213416302256746458996184178564875160722558398373926974431619410000127430934575736996215315910538151523871739119799187667825026432436052187502144394009417297027128118684155844327721079027885680825388573322171732484443766924632132000866800688770643864764648260749229031547869674204786134288180042350744348144417601684564219868194307863817395485806017509282148122130592591093423575117918376515484673071957716548862146120089182008935858164398614406117691896856215038860349550186334318823807162704031616989515320743698035804440358863636296981441793331046922068905311429410793938423638117727570952137437201288436809863006857378106622270735349053878454276158840720639967202234161043892649823949552211998793436008899856966780420545484511254306621045682921128824991633465661953850959921808175215157474484539244604039206845874638255582565929554190003685746060055725940827132614083851446047939357901258878100163634027138161693267277390251912876211422835328033092859195414984799232908265866524956085784093175884758933975429390891554283906495502434242065721321189203304142606420474374972140897857564726950741639183580472567755768378931787514644169695062921162808879419839658519189820099240506044208110003511175705110931532004081855584240392948835448216217586838176152915788373090806756100732796516655036368306652144772201620807109074687083200280590649105774024009804715695144146446658528530742682156083444864565986791621285959485208799517119328323873492357311746333583155160722023799052382388706251241775691642888221721020303706437996819942769733064855573066973760750095296214905930548487934749872448757810850268228856572980071609383488934337872850067177056114448473199226432352345723225816530034875121760856220602967302560693501350130802286502978600047362177036134096645100002832814133087251656953280120345515009596309787950450508020218506218634343049894585146515788630155949127572395643978130817339862913167220579780036499410315553408436236259892087913185009155620267771610659603017087852669652705107994208572409484231636022444427074567951961905356468178813239030245200534412695426508206200337631692769998780014748445670712038232647794377164617843480386435456958790847302655168234118094164123130341129351776215926629385805781154735728573105090679929782378787023209201328648004068674135875817152702051546090168262122333909723929027637832150656203047841285724051721954106625114863935839308940842228502602356758827538558629820376383536994324702321590521516019427276801525994102391975597738553726145979016409604484054015491436239316353859293100788762178471154593903873760760740467970247445760950143964222050708305910613150233318490607520068645058900975641048825996492405848494259704578900164499013055751919816018680028644415377715773283697883518108773246315284081824460631528651096347473543327757745165441370539284855638965033643465416604808841893222002294993985339344390327135113788495304855091421731505066136437623507701623477599789920204188970085314166048594475844764225297937587339148542105857900945333748680934836055927854806285004134744419948233816591317358455417440313158019279508372858309346203941437091455613063810003588339294869915297982927456007042119377184788114966278679160654321924298734511335634856174655630325050760396468800376727077866005830862045350852409741215048146568217003097234304495922348500937417606525182574754429593460961532300842791679010754986568534684812449704145749999525923907007922648483564632467782336292270338020787385509034188234124410847480152072305377380906342124202964383290142550345977062730731721886571377016424163302175851131286296540327395021810978689582504209123209467842401272182168666813381785843161309397169846192008807910551913071001374377596393495917233240317702323934289673840095226370438851060423906611953799430555208111370958374944617311329017945046952200510356789555989082884571377024628334149633479058713058895313138652723198674125636164977252618349280426026662664589824226054966440399410971566086914082758414236094538942574278415732543331611668534520351810085079454043218225856765756099462034118209553000567959850383825496380255327067875733949621921829119386264889771382175483530428098844043112682339053438708124708133593265306347635889318656948473636698267970719384072590728328390536409157302365499629368643766076724556760489256678611798873449556048490435385960091619739376773447060576765636017614978081381674947075512759306955318838602982457555999482960790701254966653336575259792874577334343833633602827460926649266111394109152256962293015098925168933102023262235142513022216378593909701090524486730319974554275652834180925034952704010233308757221319926717282291111006310339135341608534757705222622839170884011683395327491850385809342352123608734379424997835317993488280618124556760404247891821963901193367510818971186613589404843494345421188330024543182089103062383714712376557031009840760527673546534305291814877434516093057124263139351296581728111808170356537954850141944662354107033994701428286092731811890652127976518789526905465393553572325402042501102241731272400431293666622186575937222051365654170558478706108424522738504177867498807749324388568517038060366967441118921228216050431847250185878139419222685858030094617705582185086715085438194480133360689577700715390762900530033438361673115698470420415379442508031879684998200052116573763122431720624951893228278859476291130120283843516515382309803707982230051197967611308700742085696029567252553401747787370378028048854227489574460131902893251304083258637015838470520481485340129248324443165265801631093541037253222141397209808390116908533142658947715119384718634942572265781418425412391619451553234141067190846656070243364556756717991369529417150796129343004033373309134755535839439094507498895305445693674560795127578984819450981168076636338167840293988874131513637712492416005597002965709612004476715019963564528557382509317135548159984534023999273467153604092464775118599640693883771365511808009481469489469136527057430181368520591749437824402966071836172271938300331423111873842952956373380586007883055444397286478175640298594089553689766101991444116419278880085043242829531704803341553197752142584119352664036842992113752115477161377044654687221762779072469941384220739886512212727262432804291915293626572675707867470201868519967975228049409716205143005507553276194189938394189050894348481783468110163241183322423675135799122658399997119417503496891370006309543329793279195803202209127648019925859185705792998764813380621733366028933200203124811417553372785597761237863842647581249852299315549533331511935852123432448949698857725619781053407846328986576764503600425086685083374929596813128281424515491891971113662961532095228992382417463763421230752169871411883980336198171944471551544019857045169044596501072536294240638851659581888210779235061793011724359773093422504535884832418698771732142410744783203042734792968769551668115224315778251598735874689384657250113249534045445659307019140504097470796249531836436804140866359995549307059447595345622246328598799824439809797951971646233320633647583647306055878584350508260419795033896015406223072653840036216498959615370167685149670919558923213745240798523242343877136617388390688952290533621331153184447076200889814982065428830377887706563467312530493166788554092873593996071060416163935506846186831086604703730566095399740582579335703193069875276459139100924515438387321186455175310754318166946707491153087743513421841713720910911423458161379403655252004135260682615176768077921349663228820250899516633153006354641317181013362207513371976506252854364717912457360087489311715186337249817832807198234670479154756097434212196346713380123271011415457701462402234416241440593401042188806881199026006486744920469408963180129666156138293836470924196208537335505096276994421078712929421470006800298170256344356680923801628651747754918484443103907774327797471774071875346208675334653577983275912049682477871322894017794878318903149444788387023521234331325139578068588215791645960108735211829197473620000421717890845243707665665047988174291085540603304224211766862412784284104853025299044943328782742096992163922554073227137053886933738979695958977343663292577012350445665529167325015142076039876429923572513230856379896108340455255758904598451500879389192337938271704300419672705809293247344599595879233609532601487903132060524980382097972266156532186945178570199589346975651319079680976979871966942520513300614934019369708219252991010008106744599929559528802677687640552747675443793328969439619801529818917661418688945626360424145977430202737630482618531509752227722570559219510902883319897706458612577416678989642361000295333974653762416145514452906447087205622697436707739390552265207088834056718804590181016495067671634468912124599499998919890608201897527294815386209252501797145588599345014503631352886371901111011046268519402703540430760046104344894959469802191278159997444544421897949716969651514777210754584251309612520820917656603607330079206102910392167857333744737673654463072011396167783779209891251820091850412371260137709710844510596046101393057157032780207264703423640259667948241861313686931645371656450298290263987373304371543972165002350258160011520430714449930931162766827772414600066039762384549136737003679095871523979252811974397878230155836450735318747214081018515340560854430636530467263842708253087901571119608384484318592950640599574978814265226066246570906147506524294548106873834252937313290859156619261052093090375516842290715707074372224565600231944200875777833511137276662447641506353991137268952190472215860724847613029604774182726819467187010199276062826403001750622478892727199646791398640669754695338126279848651672370534854997481212207637413982426661761315071045521543217396456580644542624538378888442841851014359336037540816979515872336585697011649849540046241348872270004327394074443344059979874402195340116609743501659189271950338821264505932619130794780251503452470140345130624510781771179195920153587190701981424676449712866363966205174059672005248829927813459429688614743647078390038168515860707893216457320082693048150798410456573718422803035710093600243586857552062809923507154912745382056595772374354730487766239288512456932492976579749676064009210598550767798103217900540967131329073814190695644587880915386193155690828105524130660094956757865372176316063217457939647368684094148968021619569416570305488868215650194990358776673761712683133070974574992099324644481826297908107665126079465361561399723751292376357703966289294324096222042780396580280058271510239810925317406066170627723808841318181095094991248307945023364289670094879738164932039775902065887612947174739513088072061399338743540428058177177300303833274584179109666743962703895369577026010884987900732736384928221189905003745423254082248079137079734373464255664400197996998421104642647518790804730492081042136409370249456533140647552796856358365870162750373139980278957598330680924527078515500894677872775936710341656199549749085076155598507576550004258814715419475883688903177909292099707746121424987072729246921714799579731034978210248088949653941612565719308580347410876291487905909834538066053882616463870306825691800368301536471276983490878852686223776361764876131468159933031548524540997982881239250565368350268882159580888663628120292877128299547313652573639267761302158400820669528075062764221352852186715396959314748476794455132232117920270148917929869633576475808954111563912646342465778592774025224648571815166906944652113726202012760104912903414767230911127676302505991574169921083674945751550361905331180611888196669282991656880525293839823388521808644187303115884195583726771237883808566445610729029238002052709287015514158802148126137316745834274804029505691926587775521756960502190944188701824115358221744733998768448437668516206358416005187898646535381015270871940314265471626107162482185188698462987128323687106933999094930279454906820155741503201655600630133936991310214443265221270682220907561725944293101427783288044833899477770906739796780617461831683085652021446125721166241313535837072226632211669430906314604849059258243810720702255688202099579888595187584717453450910953867058504081553844397486606851458719999208251252284730381150981580456274765479920181722045229548463999066062594363761006994312434606196151785576544603543473968675161624463551306384069254241369596537115411810390859707036601568307449717733346581043274450057964309194372689952670456547033499502698064731704947558681244371846365730145095411918128488400846041053476756490885655779956877743689751035385780542865829949856356021624897784403835790853802165885826927991526378061378461772132804730932455593838240268914243972816529337367858034042282577081694787970512143665345550169184687911552900963276502885119422023679031880664590027817089208893613702842752065382811320110125087388651193074420245019861474087161663310224099665285346298258743117042953583443342481050011065650290253426368001401170768562802182320186033550314444855883343374003459080071862979990326928359508584391226929463617352604778179293245847183442511471828801578331690288024140856668249384582447582601709177727679977148743337041658470665752357292146761813959036890645062710383343808046183524203156253770427194697791861878830633229786118845516531565869430871353160481283578377474344457440968083958106815192595502225194184968419142449457235137553726943469673403826426178851635990203943327314169458971035882372795614333901022203935566063396921487037699369998187883512577242551675082387028212753023578823095149943840024890379165071534341841391328810071222846407917636447941504968952255734022662681199542403117351058123732165270330619248186684220269155038305317540796278772212998642364339563202741093151099836692591132047723671952585244952912693978208987603301567479245647098414344850321346902298909044228386397097764370317372980134008901612870138253102734602026660286876866200081382889263636866810830746534096602861803775776742197118149086397034276354557518282022950670347582408601805778838906669474011306832448565049279542675687039395069629380769648633138045875789595396911645800921258643089567054461930906234429533403776380689043333047490597578501414740091889698662873563400919438219655487313033998338282440388767403978335740480868050544781939787510645626378395645839459781862262365102750566351386818713199540474767923031610521448459175666549723053936089491300951936277215589571215603489717841193626682688721998130972817882403117963376686533205622525276738445927880385525392163783819420203453141388195073260141016355972017717621082398266373180283745110127922770444537999186623102140485542247347482679663467128344273810706817697254485787894500846731041403545690952116001671817183768673808292004924297367495604794939018654571558475403143829235939735684156730081751742088668312928853744868288360593848268416757029061981221626986288872183789728900383739644413550076229332499040839355849028434874885164356579320910602640182069515812998217810140767289616320438153600012368382705150142492593960321966332987421498251913289854894029811995708420902252585068062502373088724243249889026296602005316412743797833097050586925954515443894710079243814192458201618920503463147805422778711767117275297082307858215169351913074130980028607131940965846084703012720166241004936557444271311208011484017980016920282260403535632850421452163900956747564558272495825672144590906078310036737213373382065250706214103601405281150120937767340512880069350879927844227364302361944413446690881380866320656985308659596623731151750217514115324906547866092159615227550131072026957606411605056409811881285879629156928209413698373536614224476234366229171282722733794296916414660224329070747377792490496003677711562766302956935365174148102334904250575449150210806101950660793127196380970059572169464737085768720253342422880548400151469961595170320910845907026818460536739428683891721928979632245825951603371132927557374094145432539833054391189970753321616500768346959384523543558376789039858712604617687642835208534251820250934373516084545315557544784630156946270451132299855441659268184061317276548553493971337107031355463480183307247086218278607920822347860938494177524952686819896640545606804298513040872832104206240452910096838958423280714378627865882253672943808302157294797060911692670280456598192891593149336260664293076713517260996709238315630300938526847497108651986451393591798898685515058847124675189165187523382523025962409323674727845519852108220328067239999047821569315495336442718056577138450047250853767053890478705219494173063837006345485077366899862768904297758770535947422158055041861534760471573351621583164033579695493909751606896674488792371815196985142546703724059661222829964823455543269258224434896948225848783725880282273292906532506622048442181273564779483805109065879902667252525605409214531655049712735962999148480542379303947666325764992105827834146321999784759442304444530458065374713722574842142317430366284557004044943206986047230012946973854215828622526058664737706703618689677962094191582169098868765919535170523133985183496383988634874239407246143046521570252232550799469417391571400359076715359002730172599282090367760865373121923794521088797597468733654544684765869766357653280810769563919967838720394112944892388565363789100269698373422171729673576443802102244848300555681651704461956031880316280080851733693402883401957151248558549220391440645237384914672459235971462248517263876710637773036786890773840464796129230595862080191702528988259785187844569564301974297651707863189612112562914755727039576566995237394580381253648625593740392476618178518604997165570219324679931095062649302935523561747737385089648419662826107187685234962806404540321231930046373583251035692970149838250623307500285326235860219905541045720600314660058788600251163855497535539665290484970873174335782973111580406598361779850409785658261085852313195411819582040558382705625530977860937547609089124077106043036293574404826163655751625669902923381410425090906420593457010033908524128705263914969399132278608994629331908913269924732249188104922780482070753318556103095905552994964267654293513954062268595836689542273574309258331071610652602114217118932814519599153972281647502511758686843624261247919228411617867096799565619338920674758195261692568154323119877221173950549567047011629278564090453012553750152132527313782828311964008006112460773796104610285857460999640881346132812171442862429241370060745941230108053466387700782423604681819066533711727119561013376245007072279999849700155695994500130464387524055659518013923868126618292049371247936581088942799890733427465237754345916708435667606415429141293739546461793651837570269544321898503360396359216505399732109113426534913661885278799914025908484505536882591164029891528007434959804417503065645365488194385305324712482399234173890271337891089951129846202687957073872449178522115986865330051831527874915732926871714912864131445865022559912285799378657328904963649071354400649916803068361159602595950544189454338460211583693631196144782679917524519475005439271768214205323703185115188044289274654743253518574859631270697476606890610548264123090079221331153564078094038395303310238459213031572116368060554309189897735096894549135535611477177195079882045730020165734939952020240462022108721652422843937049391984569958871705754903643087501687130864487692534385878725924197505183549694072925935578424302591370416171525958342990281680395401907576211217041124774370036818625230093535269160838245501600407848784591323813469593088770279672384354309001241062982216249584021740530658646254314880334344842057494534715283442889532198507945055321742592482099995760612269221364664586848053327640739706575499223481593579053908152479754789826347072533291915428058767432820613448126216123370412507922729829799692606491317889484081936207392400482690072117068298655517132913375809841850478852391389221394121267019410074483835899361986446516176919399199515127578067940928003154363213437643769746948220852682070671775279723061042541058308450388500721342520517258407471486870713632929794152636775869503248586414265885472901680907546994831736287836366660934862575208379624450989629432660357250425857365321652285641294855552513301635125568916751549947145404653723762482512869185444518712418962034989767614334417889471521763674920470285231769198735112218699699053536217033193844931467331977545869586981317628903134894525051690937854272103735208986414415932130686956052408649296989800326858497787361082995420619031751208304508879642475710287025401270382464819927112804658212137858897846347856495842517122499973968401764391714794724408060018347841201652320668880553406341516767138758860126160418231265241357231920611185644516584144649780017606360896842398143021940667356420550190112471508205108134659937870957402937111665502032377259287142557712126962507843694379215591578216066540801365880672483751955156832156257859199410130824238860223842984784550534834057561348292209647275676764629382790411562440728584796738432617615968761392016768410007627553369416512229286291685570861030749003113279099962926230366373498714687550878768458128631040330222196855831829101225331815824789117572932864570806087920205978440926026792623160250933273825640364542227783293937660237533652585681185237284115149727031072997985003495488388296079036587459310572444062207978456616428287071958012676878178124595312419223661355754393078294641869322543118082763358488684321933525272572171519411006579014587748741761889841117702690778288668335060537552727786814485384046667002205803400865002649600839332097075952780462576391899991842996305852560843696606046676762095672960724052537193603816206239861551849857357820932848161428109095181481412745117277730818287777292847205529740164410162611632256859998589754409600445154343902666578918345801487903362390841627936778402218664880610378524657892956151199224683724295266467541291993215300421481445501875598598034581964965329295158898324303027864583097987107180755869998786506857023678678001787700064567771900668119598020118198735306162302626479287229962061118374928562425050564677838603740352491194941222359251221852128119682282116050563638708767395618203804287933398801827079105660545955043550371482762382226318343614542398523076598275641037462909048151033967080403414806262494320616117913818710640306949356264586521423232528303093244122715626618735681966742466148330423089725453222558168091875736304939808063946620669930340235119996425387355162579482647316531111274876160474016655046805298672279018952596185296774552112583996098011094906190147649046678934831193361633721725411165824748428218575112586059690265737332557935209625300048453788546359711006268429623192314004587611590274359119623436420542426982678910901865754979465049783043157332719911060421329372798068302212817735322514019797891059147727915019904839297313976458982009967652835104138580843974248213772950600891934145780099477477326591006366096914107191705715579086920755301407700194014476230544328332500614220824020703399241425184795947491899818679635595805874430581337086343206395572777269306112192843284736317125527082675588425315815848355883794682378044635948208651841964539739572056255975824139212142117488864536850999794305898831346028286963656357696582273641589338506400022229790138326621966998063962108336606793160132827115172329237479412141063318670952916083263235450833442235917136560849553667346969380388668494199906721176683043261613671810531545574355064078824600736411022077100418950175482744444352898190256787985010645986757223658520222316095571360621574105452147477556176763403648010970121932396334221005634411876891983109272259708237062311844263732545248105783688947505663353556543473009429460941722091134633064724099868263209046576396446722298935494625976449105388870713863807699104644624720620273063056586730092371966309312286542155705325712058240479007834173015645291948886964543464849554240682316792171555793296067604149773794922880207311894791687841770181460828234490605093082577456547698356426691216294704540488367992012620940246206908681771159103513376921863063836761784329244516781907644140687336465464464673037932843691135305362742641195695371941944055139613111642280113731744743845930993919514645317577612224255444440692572856546318620040178416414010814931420741881804098765923517346018078215814941115297295206291210114936814027052762575116207248155630943655382420888243155162832012729743030534516040396837590444095982376408745249603896287540860279598134556848664667340272684426711376591522626281062115835166248936680130474377890937727177235714718561402765379319090318850322864968423513184103765711692230895026935496667798945311056073376161567724898116280798744942487445029877863073987626379888443061748420205455584273917306502217904752726816793373804366834882534574884049965706449206797141630148457074012428948065154555916548086190781232671793887941202438069052792140095902575366203338907674439479866677302926833553951296604454382026333636525365431821206179512059730858356737733552425158258343108395521295421766688557920629816241871488475051555513567366651881781001345344237047411812246904806456916545843745069661717745875962579994760271554810077837956226200377434277242193699524533236484250489076007000724833186607385625264178933173147530830055047935297296342985117012737372668495957958125657934631614762207245691796719966817672972137201767888322937101631764801254198274227670383325861099823667483021222607591209324823040385135187008813665192758003216040673377871745198667973406689778752516953633821125725822737604641059654744063909270060545352990997202109706871271813322693912889353368239711172165911862676942718790564491519702246109353908826250629931930188723018312392087927685013747005019178525994281307516651091344167467624619162255961069012170302854436002137741446296682212972980014648864048779772118239534162735362291644354974423898580240905071232479134300592920080226554092082814104093647119176270464911521882076611014518962265098715599863031782305803131797053451876877735812825046362605675450040964725406394733015488948568826277854065604503078587817246494442891754892611165357821549229503916477541106098912997119862236054471237173879890840606942245808036018931652679670403584798093317142069477348196634488211747641532282008196987988650689151713210807317444347312989730992236361058927899161332651922222490836516559430120938883834530954805520218292266737023729726017628831643703334052146897297955420374662129115205192072813192834044186019207206714826944223902002559739664760890720899227346657817312243353711866685120124472739876493128354981215697872748739133992311043134887470316801981749073442319868594515166701268168271351965685456604808656041061255842048135420546858711625426666527911290252583005163396481042177063075435776381503035806819027442310824015436917586556951963778420860554631089175051472795104002117851793559238847013162916339787740833192580196589213402426660916157975427134230560521192919257457639144036273585587312187399624485576306605654975294477249631035544894924956741958383633773737004508591743791614187567687686859298050518883007502632433709340751606451254167061784735362164142733919282549805712341811071693178214486015367638651977588226134193584767874387423805799316077845871068292435367548727972951366783698138486608819135569690427848478378157308689806934578307044710572440005967237355001158633143408871675091189687771051778685707306289901645884720963598738256222473338515151975190477190119198429622199894692997826216790348472589841382079345026834856174338964671622665200816100998873740519817373594749180326276893658185459064812865095636277110740314071880826058937712884098987051533883554636293085928607665338339158881969667918463606516126821066541524411900074998218560067986696335408799892253635386238521278788973055706148966653780640707888149802741029355966806228347195023546847769633700917915691605511305509628589743734186062659040574211874979835203068299408125341315586590384624784137871545149193901425231066850659614220779423389939638157386216289826270917052643063838012341920259929095831936289970577182613297180978800326171305816091679557762872633089245381477677751311708665684174164125044363623356528045326162078435866680907755932028391281018052427835145919408846972446566370304959841868309746569832934013195859412823743061752879269257275562541628775825273477211380613792037508160796692209434742114541820687652570841098882515145671382367964794142033450802899655727464266037927547519684966007886697360282109140460255561533073398037108180374548636590773300947425968088513334473379134321933241604305152420700819121005344410260396709409258194904804668061761673823437643319914130268159713895358837387816313220392250572949678305671194559970508373527216583961417542188876343823862366503839893136473720416465409060958912780204996829905722738776898969993703123048951630803407668350388431791413320191311719918164658623635415744997403464927938009459934093454102566208787374734434846227219705890357184711806352639904489333067042162809598572526046011245438551827565662242750363982458806457384561035425328702181620247426567197682767277200735408476925502414231935038293942281944873678883054020955220544576846712462039736941129479027959361509227958091067700821639555020672908301949432739953547743073773703318348459047325469988687484359536111680240824047932826702099640569168319633154391041883911967662980988797387201953966042234419827634743427019339357393522679080575057056199156141197533417108338424438579961266613176817910810276722420390879118119076183037760686224878765440287097274012850209588408362573928496903032418741684611754452254883976753064151170011765385495618383850379943581924153396105276224158824093338630596660370272570996702692632120510631226320261978430278885137349929823404467005525907049438197483673768427913653428068265826694960318761789812886092592562086545803551872959028776965970987868362335202953156637883593195642075438486682832699095313525130580765930005675502751124314609010622244758523150181287460801042760983272977184920201840385210304336332894395555320443282826792526266902745940662441973756869754461947536854108394231971006190206518469451723537231909380116611150185903793588210269232220783510743579822377987547935504381228195062213544459838493495460579651571923329165308572030349631198619741332762392153509841956408090358396693241113869403676731291532145820551571851515022244061065265304840995165649980171359078031034794043557113398256407581976713980714822366341047749067147251492989768139746855552304558957027888279277417759580721765856172999919708274267536809724175251601308422363639352738126418599146133099422827286579377351442883834832065912897956261189610305646558476122451942595513060309920747986467070818142383975512448816119669867111904189773358296446167342167176069965478897693696566959893395426586022993006835652482564761986851043421282125811730741352438429654687019889698750678094965001876276623821625955005743642852495820547796942105257710259558203315399135786364838297517543614773866476325916903646070439608315089565242638909003712081291591191237759500606421473545275847205172927892650858654090388242315677013683760822310285039434164168480582501082042669408360817583437553386879284342963546317828768520720365102233421985584385912948378920425774306729215466916891253938117088371743815532186785843188035557282677254924704314955626293719151862973088529128023586191612202667337745479871938395519882545134684416918967234944690341435258440583834714577955018150641046901789567781947245078622485925817590189298026739987073228649733308441838028201178473331695055501223714908554920631201962317465799756099972850854825823329234032218163180085087661976035313411242383825563605054876569821597177632836571329331378140719137691199935068017026689462008037257814399009973925345260965558319607765126961140207121857610936570364339400697064797666404630381086369514982460362332747351636937459197504928537463588614852640387169428431536366113634883094977192407869928286810509866736398250826483491571653975673914958965578997777547987519633748653672557560476715740637664026414203474583762673414556085286072126842769045468177291920629588791540657330817273247830965088526948076685420143864712397146652304762684976158375797166044184186881331163970975743980594523181714233380219599082221737394717098727168825139604665137037107793762396889093103133866465765525383231203384069177922305506430129605673121471042600813335276194723450246009098585614832840479239015847568674920280469659002888001108200375240113847640893976868476343440939665918651665461929431453167108907984415761470471786420067943638586123117009852361322174415105144682189977327876737860837001012208137026423947177967918638424101972713250924495215369665791011809576960065450716735478750417006617230383078583613069772809233863530446610768186900573550206501197731287011035285101539065183098934734814306367355675175846768265014919064738630176838163212419099489462554080333364722668151356583305036565440889990974026452194747855189883823653777863690960217673727050631732480951110333173924520525221192998545895908765301257722108171384385122316284913683864697955537921021793027095144435401657348827535216735435911155503129281568634238170170175472852864371999134174482699235495459293382264321436559736851548610117933726089522447771781377344539368520365892552531775089887943230850592137679129677851837990777859932981851922913188803416581543926094476462400447821954044498457195419996631893524490376831725330882117633672111298715349954715502598177787032914956741705638749613329936044696739034313782101601040811331016001188875655089594352676544459367407099101890349631820916032105377319396919495453571523648165363468110589314209257376278474332208398133646944111833930323013174359633954380968839324051799012775166829051225222539569936555504364692324339997080677163670383715590064143902082978681198583725126194905206393836362168260813684313613868879349579804942820927781174058630199889947518070383280948804657857170092826496271407408532949449494621787587836468486982723993460685763690049495196294415085684082986470503629222081167922245292295453787958958256583475937052226300477860206636885266042525111567745561625323032694058176421603718671022842212483635871694865926679291875925236139714192531935387170186433858903243733244412998196596774821044260103044318819641884525768196035536200015905111555400183584206992235686409676519223412717568515158705666913813299428599822548971653552291639149940567674783281264350536077730350423319635704570964304005926246359341221625726630942969931806317311165975572483821314070951265616138095778450146992962779979246744023932784939825080961822563145358340144909438142215193942588814690057470167844273503062460246408304025315611734064259107689320238151023654351442968634202640285633249469374500780232655061951472672132702035152569620680073768945788308277419566580702968600715700331625141858732506042313732702655370209964997655767863840649935018002355836649388939889504861190054665366191076275401781095345933053280509413098613947864378448988641184002739928637332250953127894680986008728428443973978914127130470794583747434831025130020895700529037561426308593840801209337720359117548901584392899423889814462378302775455010847052206768144917037526473132794172839535493809835027157189129282498550016069082141907309502905183509781980338660887604190069701515395625816920345041125386449404262363416686622212027786815876966990962620347094408474145180745322398940533296737371484305392581068997189925576798455745861925348034821959502836614698152106820691941351980856989928928923998941554181516026855789737396364558107843303037483003074166573348090644939216560129370326263842346548874652603210372891514393504888368017666661691824276285789895165092611795819467629094940043531708529254435366274251648157428952046868395349204585201550218484003805979149050379469328108844632433454588424317475426221353125380220811471346048058499818991525081866136324323237177487040279291534339916808306947960263544647175120161052167887809184569725436905355096623234572397055116213459230962981568528323167702068964631408460141897777511902597702248695630623737211157604039220787018422690550447356880934374065441894379938400486175418543137104073848591875248254478928718095007073930833748139718622815754270512508799287757645184906401472890275721052226586762111531870059589414615321571531553775372577102879203384676706577814498038478867374662184116342931678391345922991237901660780462633051572450980097409626509882064184542589277015530370085586647871091362979991271308501416756253343576870317864335161307271242191923268054719790682529739658502566500952105416431570005003951526967469837656107677680585483953879269442803474736640952191774149239478738522724150020203856854617496658180671413915191748898284706516800531247782080065053976885461074255002939509947373253551236286772957027974784524851604781250550393495301502994719503533379858944533805563283200175139040227387706719032193739325705142576798121887706059241340077614141364316638004670611362779238715023382562149527245914081065396926049924364123595484082231408861233483763291421321109869588292367815580508182134120268234051491516370497569519512708769712078724760294141425365008202340663678958490953019846555508952148168002958112510327477292907058363024748126374130721141808159480773313077410564788558776479478951520661706813044108374999977688053229533615583619677397199407138790535487495758930958148559366367412029605471503072716017470759119537275678251168926257416858787555056315180206977068725908623541057426617571933749010884972343048841198923825376124496644775618682967402832095282491485895375173130042896523563407221565092186526951988450385264039808091059759793458357303322095956525309872449265705502332656971731322620033544051313481259493693673312260161421021816080913552439045116651327985550780959022656678613841746405932815087914743833296371306383990369793587159295845339461541232836266573090316510126647484175614970841270413314975539020084696834559495067454282459134267365675937078235008348870201446360931436930380011187948042127946835144315650642149348732728402275170459948569964335383527810172591825222860019852976338421572095800085107916233756882019093358497221101592544680457514841235731250502583502054046766816254821829571714713876009127486379930752441571357231350055873237716704776452697632774123232264618920401222253047484522453495789749437027187713024994350589344122894532574635118172437887495421202386778543778999811845939601660479943860022543163023607339526965020601433863150861718875803196853790455849440660471688961196040209430049892998006007302294599009652301514520309114299336336792585545181880475581001224425996111962322267648291600945793422576878996483318706312466023146864343500444248840065462868235215959905724392934265672462789148378270285087049819703048219169452657251763078194099895394075985634547344536668916831435279402959934083367068679554161499278716028864874807798862455996654871127209637431893409830930149936137469005369048024243489366244855658573047670962418812234540425763060750186107537180647675033186591793721481791914458265644793860210836070985656553936821332703663303273064858859836259987027929125786408866486281427348288993620454391995271605155905313956422933376547078657860860367675260707741749525095024461981419121986155539234296297140450285849543994327850419980360134732395951491158595733449143772622048640919864800061862499177104073001202337087083689233830451274787116612073548210460874902756660542515317834160607376662661207445896909104261306441198057303598405659589997673063011833409598826191948662875751649926949609493523203013498413275614534150204823018272415560667056326004260533068890018117512126540132449444651236599762060650169288706427589987144742349371977454406778074295527783473077234645165377388679335673186659262475250618521599419942927913018786540139080001101687504279679285632669250333415774349148781529638967267475615385746923420863175552830510066241210783795549284996809081857168779016633281691712512797552553882619946908981991104498653103436999911237746612197700337651012027775339478021054832531644583945230508321158696621963165588456067254050355216003097325859785698930697702992405385938255936606071733533680947761585661558213609295460852056798493223242696102384325279630501721144995439442996442143529116756813542866339255073916185165229911714584088294723951495743530567948360340036837392425198617396087463595792612159180447377059965372958339714745974783314960256424462145275580070427977512611465182793802002047934961657106902010818977227555869145624903260167379823085255549846577024592324084277323342402880911091585183616558770419950955199924314945111478183903025812648896996261523570268323959252062388261785237847267567308851502888638744237779277450502299064887661534589589751764984901085221655623006654494968989632301583865138648835198197889472465413951481007207028129333227801042480957984509047562793855115084646399396848046699397251696272300342841575526834480143292536737909738564805328452858052944167109848725768386840470254548571898915952743771835638549968987309935328411554777530488985984567312976078812803963400775452922038701408230856582750985103698934903554247601722257987378804403625337696916416740504876391896649921179276188476849740058109005384533585986145991296248841134015186535703111266635911212852731814982596137266237061341391649955624477910166251292446955148614832312096282664341732407564027853956951319213731229898282496923874889803924073693620361627676916133343809128861013055126783197558000708116479666829666870551461579353569452693322837447975324600471334976938194194115368720999588983427750932129554277913727611114973468804285536221949372442431432497158187754289204066051744316814821096640357549576371493214904119272252112551898614775857541685115368252733700465649779242076190547191034761202537282972723813306655243452136811250838455078918443636359859895374065150934553703514870680928320852963711942308008824694449907574755228027842291850974289733603969371020711163133952104094359744582195824174534305963525176299745107534673442896013441929194173978557113090120992075851356351856277316937469911100482073017919153161588034656354451323172774366142307103313356981035907762333500254861900741292867607499599922772018587375976045069517239029859728406497223598300159113085508046832544047438780645967663323141483146883952463493777891988379330731755006706944874760374950324702837172870895654331312399601413448604559888202328737214146878729298248821385134854655358218767239282968949143922422314674892052177659294787901005116479564720439812866747388471528557971577676813431180755858073345804365465901584426220180626093541303802298170494444536761709146553034664281709106263568698941387051454098509182453011726644575140686466061606809363983277763280932036652795727084290384368694160173804598023738438274347036191763494127010657129748977145815798926591481980024884771161259209795539404671994601403275854285201035576606390258234581894461219936407321191683922763700007881858640521345850531209439902492859278503557468607222581966423784616940589826355266606421048182002926818071008409523128923020082471035099566198272786435825070174839257331566284985601816368900727373270605876150165188959087086390600860503952758951570533573763210133478196501579705785181476692268723374513435696538643977731026160772464097959293610483862318038996360078757053677153170250453649311585073084855230863802803715511321902984379420469200252743387522739752961942131861108990328775760146331991795306883104636336408114602267046455277106307792726406284940903200128656032161277385052614114517101383680327086344396468410735911190400704433265225665710301670266664944868184045295230889184208152167973049889122331941188070226939964712920140624407172492138915360445936298283496322905369494842390964390605557481591721905448371697235135613128943525169487524748460765849161568119258034617453186890356167759296728964205265181275228546940095892099749094222120578524214877348038611011682879806301387120893763992895450213375942080350144991894542796292943109232259970875279833650802663724988942000197830431391154749959484663942719852017866260133204768415261628678951978034271089720529833073108928830653621476075469788013530127216695670218134286110593905678260259335130252340284649451307215191475840284836037734267538094181545033735585678913150294885164333007755854709779041460282601066284335666127733246083601222512973953211193094572489179662941880259588766314233957683085924832094170808370582155996816692581594731586234415336086762936003319907012171551814912431553417171160661109803169549953885283375819158810474640508456300786384495099246111973203165044995694179650552723883679629579944333645302423652934428731488476287532485832484332926006366965433683489818260830469840664719401405851282293515059101777566368949234724474161589625296159867184471761430563476721529556916004441856961723328391819752390390588885564665077115168392286335975889727518209347269035034032652411712330104208789431530806593779531250627199577721591159019637222105499260473627179069559651915174834198226069411000007134508786976404117593773878447151110995066212776912015030425386791007901938273706324955813957622260571273476921133495784749189860078766626391723302880939525102194958398939872047681606175872224225905634330879174630890976398217776631973150448908266808698609273885625937891961304594269165200881568982510736076994735982314223043608752923653928878435645115291107896834958063038362723325694538443887365148623444928032957257590893311009978007863512281171835979223591912729637395489842488006305646543266102385225847971419787857352137291840602234706326857927564768019513183444228803282383208906250925200104993415644260561595384019021355193442368678411060942956053637030499152760425460285644136708983210719775308654324478446146340151910310037132469624651878451585853291860385291796952632522771138234572212853714027923068754365334015931918671854695496158777005037715228598739404115380394583912766324672111836570600992860200192459654537915328013359294584058313406473176450603640629967579057594588626991037529645860180785160646926987355195473194198795822031742736063955829297923803548577493001242688131743603154153927042930376928696239034171795312557656270703281979428050106106707940728939550098054805079150942174371583558068671977480963016676768781481642927490004306499859971008687498231505877135053986208755817171512119914945612476183982422173677537786635997295035440352378393205996760661938905791172249811608060121268326814915095340191790254000437642130629593875359846018652188831785437737937842971239442250499129095594414406211378641239353281367999997187926771956079498208600901985482972887934275349796122522616031505547197925127410266378747534676659227152137618671370026871707888957453259810234586807356946582503567154459106384042161919383486444932013787627683380371272248180955599302400012158912761175364463295403586194256940273215430006816698571808297314617005022280845478775057645486703356879862194808706971283447442557876127769929686436718616739320258464400077489717905100968159272746261926480724336150098034718747824093626328141016953800621717530582243738017957920160764164145397676171411756955388715718859172020332180809585849223161675199213337690922342688024982285180780276386708025107257397974840800554940328473412603926779341241030196454014913052902152452639245520416705437883626890267658105786628599568975487880470914694381773897116832847356224002319865272998142970743163052660936165404583093148509264241764648633854051427149230513202887586112631671037865080611331049233755284259616811921912713735276722043265758062192606305906079214362735880193634239919635793297651425825664827933825632087532209125281835235574619959506991857180536879666423541413551924396924563827202328362457948645118042106754294448852057950612167515129719517927839701417439739849677435690486913562317863278898961631608536144215918025481901628908798512819004710099582780065492384314354438214116909461782157791440726093751426414929737974233199254829501427540175311340803879175203329969723431151777487169187658299725137753299286385634115156279337974216093706272888036957162600060969783867395779222527581242762827118847685890840505440405948047450170852057960690306421600686797269973376620806935570713806670231455042320822389136382240692782927604197189648255890022746687295014833343756660184758344417159038383778820880135027623524186145397534013622836807426398016637603781239115738939439746377501781173858036199391512689198242724986167441198766344889418378436247534432438345181038391623328206169439995129637289028825981081279195395381485271832795524569478053326467036718615395939623368494479851153227137489138362364828635881296628096085956946015090166851052807314755267233603244849008814751195151002582065419031448255154651018982519037369522401324451810539546599617414683087868372420594109970359834187315497652949108095301816198077396523953454613563012845352939688388420599864071414472819441446405159081984683158517916955540472537772857202217097187456903350616334363986359129300105829552471842750095098966795355583851557249487686732715702739004911629108187547682544658456042718404339948474186043650374879568942836962456418191093605031072422847022589591371592208400561876102157895720401788692561273518426195547762850745116595416017141635664147145749598329502942613057528189426140654402055165737057736174861418978237644004658893518615865013469469783140442960828335599947253024061487453306719418080499644964002090962996941472839290962838706014960097945076603638580863888530410173831860246585860516405379844968321457761278573174774195202342343980033843721493496056949987016221307058293502984082534812867615944429385608247398826016274446547703512682709302821350101598448881808226064527478084180531402949595325054614269055307395090247913420647497957425821079772325800559889730559442716312159859552987711059515874312671639011675825132747943556359452889402182603553681000683305877734878289458611929087242055041682665341280588438182192418537973036689428827919059029468066406874441595168696488071497101860370787625100806041053470211951190399205410589850132298389486908712809706554836810634706562966606810142892594045904364133241229365068088385064502869746900979497209594831362783815636296483346772915779338285899134278056912715793732334677615614343521666681652684416795582601121886063088448047651377145579062004314538847810175921848408262981004436157673287913919890105858707871829347385040776146896725838216110372310921059513468637178151624336082626788199200673854250600470528954390923040002534972887064632189484365200466454239688487974954211276070726638345685392743733395196200771453005256061695640378664010020117457862502435184466666514355482427155941984357979719214699592016976696467194578873448289817052475360820662929019305556178933455315354497721541849004610806240474880413378162088531682475939226542464067855116495200668954962666868882861399231270650319166569562563942086241385596968809955338091614176678053327802737508041800672925280154595150803216325734242151880869103095319162024508818095175182209990152904942210924719045903272199172992200335501734415474848987124247680528099102081739271719275769167762767256208187355305479571378392121215967384555581353560652441385616607655717496505873368703472486744075108971129282403259497342821250998488244508178707664016707495044023721980591305886183078622714897525172653878200077002885519571383333089955778053318648070378957008787895090992759837401943610756817799526184373933313726003939451397504825259058670097592903186839624219163508191543165818261590556306943822675908316059992277329227765875359145283811867378308973327902725301951844943774645583222045179037370783707692903301210992126685521636422946829464873776791086941837517992007209167301807458171517365941542061980507629522546180763758848902433110627449316590235274159537811024986137411671161802273032849788296818371898679716345769591799105620623522707973038423511418708864668296054388167907933883760313079891284020594545535394496351662851049013134032760913401357164397274463443910708788250825813032019822355883212083056271782924353569492825875514821679833776919277538916234826630849255747791175409160221302885687049859213706401637313750095591279890433577510112589266514177081317411591260646735514739085679938694460371824955516211414268863761260874549026181344161168744061459979475649378729887670564624231248786994940665709017977646041026210320744162308331658474127065520997754806335261707950538617633859367067402197173638987431736327026408698006241403182283676592453878142541047901443206657408235427684098207776694716102237020311809281245288014584643105856360862273456753789135409965189399118757304319339630026401564247524644879460994719175308264609245031018745033587024593086757537182325800240396829274039569199963107040690835178231481056246703179194123053157534205747410745153738737445409152085504104879397430654639029189949851209457806830495823628981029747203397116135910811314424870717616756690982226774037894309740972868142120001741105899361827873337572775348285860850387035150253748896773374998643537266563228886827744898931262399901897348038408037575272947707243963544197698630334948946307345869079907125509373781589593407090079476814767446204971897930919930562409837488873899720220920339006114250345485976912808124212167006974802836857264021263043227343870493080386050806352145454962252625283972555138409823410503556014958520166160152196135583373872506530848511633657891118990862731098004778167690084331426982164945751991262216549282961736842096453775051971424128024873757825208823848453840342800382097459465430127713900509897164757937284875461045118408883123551906826664063240748013607682481230397911995770115770122393421878355164792624908688897328696071217830238209239261118248712771375309218999401439271701792608859954245859555526379095740140827980123905905401446491159096540371000274271851383073316123952151744807627667275265407564810166285795709441172276835702856992898830941708461176214747166075024959094364949076651994236883681064528200691386988593256221066160915316612278263636175012630244515471923204203503411545827584286039871915452066268286641308564159724612564943813862008747306562894800782626014038209298694243240834871873903868808671042757321626814374711833206020504821322241855687191118862900871525893320235035696434588378710350216860371621906507446385360147977239586468378946244707395411088153101128014211762468839832822447032118917541610674831695577690488916392604054994798674356754543028701998622860635163593936317763677670253383046803735518560605962528535442048219963558684674827234189929220742710872722022861465206972183858493729557899835599062588109589709739749194966281863473852669215660169372477963789158327320363660957941751047484308353141513227095235850871863059639324893354257096297088400553813373859895697333243183122893369981183994643036542286305020082680567755475033783927331681697220255497707761153201473750871632038877049145004316160380741422803721144525409720827209587447519679555805773161989259405776378672416988265818083586606610398353621971535766169501930512574490507830453842440788820316883755619694216177082769708099815563342532062157244862601661225926048754923656589343891441646083010716154244012359659428135485239021637920510744977992951045569038130445016316466619395373812521000364800141214470113021839174688172499495296159998882643917293491513842538462640100623770437661198545557872099991649632663704060164903436435375876898788964229311918271234050548231252624592947809064409323086201842995625878984686643718977836222230900547994508122906763233141135873232343205632233242377801393559759264294492856167966295860793185947260799504257961882917569193322898049466358603121476402994308239084459378861046024098317412810032919911512844210733324015453777058333931138343080947184317873452250197636304234959306195508159586825282191521388879513953978606793410666422404373710811413713090156695289324265845539871611514471512261336355303267951871469771659150877964316422942539762765144614846353128443381297609097656209497869180385236292977280350223532736598900050778828555525628112461008152628136963681994342505729577482397768284329195026940408754659608967319179175182008601406674340144048244199847485115801721607673467465312512059664225334039751249255773035660942121381064997052018281936502009650651682343505562326996402462400818838468400010367145986486157696517754732494908396679228499885905556097779907765026695311323074355313103686038715963311417962759451717460472463366816840914813012600558758321123238377734838630235006914883528804055961590473673274497000148084192159304613714770722967788765118520435279611160141487282516063724789010782640867990276587811539613580256562284276890233200443205867485084698755556905468662597130778830333223719183017422320732140702638961011655703437088126589353667086587305417601573649699788916029669827424143385037497042515864036947969283697134986633180219242210342493471944554699687477300035208151907591748658936986933178467532451703810801812355326369678750037879614784737477180380446559734300243652140355226297358162940050140136902310691661275964076377375687252151597892156977948828263978807038421107617429845596121016273849998322595660948289831336552775607278551035019697574442821807907123118066916853323194576111032763798880162422543796892057115965791186583941647253786355565926105829914079657428916109342889059512331380845081297928553799098508720830635492721603598947276656789453133240207106243437565689015275697097081121391454784587032521466282661702607626168102272682315169979016486456300150026423670197676745848639154098049195869784796697031879148697820538685388750226364095750631025185919590253873318731516875334525776613952568818892612967518256868514947573125038768421816899573903804733157095541784709803612601618185337021406164122160166181378241370320118379882167874581423137891137612248010225683923490141594897786959458116461553014991203660266931383044185518008894582529823640508797075116257870141728574261681766363482173858069075835936990827178925271286860541299084751839702020082611425302949937632126772152877961159433016604058752643105261819591624601311039026135219677725698188899033759730736490911185491885045445845668370374231565439388959871901116076141448251710046279171677748289774332451070464156432392855931590075538801118364402312741516419880009492957590185631007637806770702880854466703120305752043068798828477840482899899249205135102806440351540766658772517747352708099332539665854747168811585856371119350987947693035712804634274138565738894666325851932972911787974253610513616776666285790116280279389099437653008038650478536677299149031729226356987329915301810093451595132688952742852139632867078938749268510839529327204063334624148504613394114861034442242999626909195871759524907706538313047708336655080529050555390193875547580162494077421129571217978059596647738876521252067556990124269056291906808251417283736935397039799765018942002161592114307927684019010870542611773461659358238763879075827937697402558354563433709992600610098526713513070512609634026362478700830143619110614176423572246842665604213451426254787157619904970329636357917450750753662478036581566540541633550322032161127746292236661448850166649246366482792910622641528570639028173216161323940186470666274817596561047467235798664146175142633062516617924160926722101946630165952321350494669589709301362841879281816594922118162875644813855097349342749213190192899771843687754843470924144402701504675926344273972341904580379688933124540826229607437819739729623204580680443410711953403530547826301921009467963451521999020020599589834634209702324994561378455516943540886497387694962286766994862071298387282392712264338962045905837499183641484162520048585120509634779833520506813143487110735482185960300202259614501158422513390955912933807154386145068536555292006783420210949119068286358230233189609867218557473790160780158025201084645967213585234202479416816076743425804140240996214136505400161049056510079261787162265783313593036794139994562170264086632399334317735836312142612316187103139587417465515140644311237346937579202847548728534363087853242207020822608962605379630334966138687334798695815667616440959165156743000293394879000367370363938714755848078267159369982669846800864578735459095348068535137806472564002722141152591045620238645821411235888282267941754248408431651030305857299999580608038481382716449199298230599617538001646840966612834495650374072970897000464837836918744788372875870796117263341572750825944461927993189315399801968975554342506026870220986046597401062193425407855758566229796279427403702742645423094333710840804575477193274191022888037568721713896391173327480411518152509075815439765735537207361108985222523200586874809652649643263744236767476887776267286544204961356325676845966814158127638487438377581145609012584744500199518546108630962195192921844609985091587199942147375533257527204125331859990558328539513959231783324503907340906862077977138182436461193186063370647791541644636863976658393077190546586866207155111646722630479336533859132086270357942099266824761234421683943503768233805045226191246141154018539982340457626333937400815277641846147271618093305151246769641892413632635438824623699918169815647816709199279238774894769889612239794499602708454444053718145649300024121361888033213825808801816893015204893045597496798853762711144234680683072586463028695704587000093625867736477070636075242809915209274043915565209536079722125498220579424534267571863802888004408706787403447015900046352269933616354798287998293806061583783700938081786223881544055416598468432960744428610474608947017169365030464960118720152334140973923139148919045929863757356711991305778257471935974666324194321257029544993062209044321919991506125781308998424893330458464742445965071479763017619680851798764648417425824345043014448386410364525561814947830657335819226978643841461786985616595499662674466801125140207161549141964193604135138663038206287031039810304882803545956541596855156523677848677417472325013769215746405559458641657283681814971107846778067242829566832116293428522661142112373458460733257513838770117599413349777817002837246235911360001471465709310412703311950534308954013873341127158568002821949239613848277416040075776351333632678361568692507420701959413851105927980678592899366385110137391001450445007413769603245557341199521849043192640482386703518333871210493555133917605747876157832197816125416603531577283508044924516100624504145886218603920562346026779750318552180692741304149007623047931902682650604815144740731433382451286904245630288431351707469077133029000515280139470224962545153863238837554217029315089280247883702261672557219561449767313647462633328021443851758316858924935508369078692371084664860884409222931483064597528629287758800819124387781058723291739348433887290974325903635549613517477520705696978139215071652720026762473294190689463375655084666430513989607705837803097344171890877246763723206031422646791319673618731174772145645615905466644643085557836518287158601170254128927560085571415630111472737825744457610161280027488026150902635980743493448877773482975885617493062370393495381950337561167201058287768542243561613476240463404516075530196216694460636057643431045770027716842885908157641778673348245194237451300990329940659066341807002408773726238415508276945198469998935995497909546242900839360998034020395394102481635748897177473979517447826578510619779320571672672760226325830296853007419772505832443596316338490904186998996451011263936860475549323815373165944376327327473490301209435825398095243683153698337933672963122138501542981182442641196330970258274768482618283049115174234558657435226298404369155429706129560626914201313934449327469410547195917941636889958902446336116914227129809318127905875380479140181758022140320153123410759734981287962042383277790619849223898967589787034306766433827038809470477952373762077706382086688949983610579284783660800455114315332654044614682037834184664321902097793689365048837764113503812869030569761768121442963995851075596882444977067119477311932803758456617326815914686924993285724233333333615606664303470763274444388387111365599225161685359240418301785272520103413580031368364936005596452279766462099046794306679209737861770108221061072162551308433021848726665489077470270211185476431475226615983650019375711194913575141183355344845517522966520266576643157246784177695841235268379307060732924035341197138971447789975555607277443823907414181659429009850169056321052530281018066128366892075293526122245043346492805362519646323144317570872589022345697182046341356094345092475773821218295896032375594120509756054027932469017657525602981649530930298296745839397061099886732867426126737741128991134799558470362310607336682183319383727754425714774556705236869987927148344487730749254975476873699863103822825477111843154446573870197942834673651833042663716310132482045231893499969685741217741760265557870288161040463830629998556784515290168418020287245577375339403934300645248815971327896951457734561070336911143939464292491035096987543840125156092775028080914996469502566206521044025333677041471274129458694958370729630009284246942835532474714501595613787436436698943454474373377548209521575086752354148039539209515251748138236571131462562069624823462880239539567251000366981065834076129400748295479713580400156045601053010267813913586177206432030988446943203654876642777898251188969171028153613310290628923576216936529335787406088837632157209355754452401287982809383021250682642686767484003097457751477460697918111494337233613583496929068610749769066437682457413449672370509067955015285754227938525245101390651953617283283396961398351211873214506469743540169559055355258081755500966501623870779878015730288478230542643396650920114179980478877987038927880805150112511842229426932057752292118238598962012430824310001742612221113480464306198495869010188291793649319960535117826806543289507639241645945423052797736747874531777093202907409789709530887842311182120557671066532399523402875418593182023559689315507934029304296632769632483020471652017223439474100678264098375459543883510793323866878090523028319694779375201163720232096635866556539011202942425912256268761456308922141818030007575702089617437814200468498963109932177451388254484224883838380710071180079451195851123395621526515789532700240456422348257239934242301966664671955500501632830610958638027750862001745027114441627615997361099984331936214389676542249825851970439216620574754799548529119849355650104545130418008392133139867026533061236685967229210895335419453339308689551024125133367960176761098551135454488251122091013960915038807458387253951164763709684708620292390146052770971446589619821573636886544058256591896794626639645830594795279110081711818821512520180151224744224024889000438452841158522699663563332029943810083242374153653937376740768617533966613469334391688616022040850236679333366394570063796959581437886547894014140150112729996550243092964171079937090299673318256447859813369385727480379412798102829754590015751806890398033640673952935304997589018951738932261029921572982233290636547269728942124703827695556095505954445524154633408529450712978310473080080296071464246077760207108514742208347934557142176302354752926434189911771013726251574056397447208484084293436032998838562347305143962940595724077283047053337434852209450281168521474729611459733891899434250658368887892379193128650625616517678720108571478753625272190930254749034195266792538194484757631283576087826926290997634608711480810238839658100660726314545895415743278611316288286777315658001612940331640479563794528958150380617136796461193085172324499996515686074427043384261769037601696639634507880567949790285164900534952440847638449859383065885035134645231600893816789252046521175090934628411929730525600122686881050854300415925240032472258208724716503592202551228801542053043040735717462688723727834092987994768947038472571141772952088399586979487288259171872163231988038453058887178037082699943026395077417985505125304965543626838081826752340265600300692672952693123376993975338530883374900470751034097407243173291912645626771274163089710689245882617217141182526212930379126170852799260187248934372109235957446373911288477360141631291109828763499482343938424094310049152573956215946663869467776359508432878329760411921342603980153617375449062613578263732789444494708651875325132321466027907888519756173242193958923270710066082039787358384055219743531328137917069563246181265202466572556858140359067258717569567317054431251606355467194020989019170995681147991541223101564158018653380488881288934741299380266512522269642604510348762804473251361089796072527766520306342436727296731208669989741141436185376095769535334381767558314181616211073461894958606815770197063844375971681862150945677059724616395734787353083638713538074161250006636854093106991805712295474924323175148327141145116961324331830859998281964481928784642300677206036877303835840388862522497340924374695048741917992021376610599770221717198397535948707571189581184468095748815941715643012308261038768429765355034231613804202758234171557671755318045283443767416039975168819281054554414324665298735279330083219806503131155482900750403919478975449920356840078334909802915786766535029237882803786387594893090464289808291124011559808292959229531013832832814003381382048634230318148653011214868796759449899246773393766162396344418099119644631600995249545218309527117685219343338846070313494484269782896520728362340287107130889847671953016712280054133119304105833891386020943117761298982141490727792337414849860647597432573748375560581968949079845959749717474464957293686458888698951640057450725917502337958902697535779678941090483601623133308618593309271571980771465857656025234843113124833235189838666348699331762830765505542167218782487303891681311088418526349912225982008705657777362504848092891243570153514255106854662976383549419064764549856079171437324397174369943735574816397208414536269694237144201927175612310975608325054235595763856292039288700650791023388219208040455309822712348293893847766254064684840483579472876966572038053795155436963086130541814557360685540541162231812716174067323266245700286378098121059626825788169111018536562155378963797189265073876868310784928737878170193855033195856693043999311907337894266931196424266294643256262010866954098462573989644598876020953212651915552912536368761933092535211679807444773725645043327417975401394703843223938067410846486090883797289897730754683578600003934959808017566873383100195379536002111605681726555394718593635540335638724749628363509596862379979112711132159293956353179866158444682914358624485391103829055989462440778358805785123100618589633392797600404598052094781879781109591081589793650691136786243742917870477379560361602771303071653059964275111681563089482870543139669687092239158203772069094347162469638831404597956275937760406821417198006033143675801798018591421010826346658698592625197956327967477471555530041252753508377756802540736472567358767077021920178155012504378080547308405547182776979437326442315779069315311318398036486550689239794056569525418795350029777043772261837740698500376987106396689832461613875610108529110788853409799333743011967375663402191472616155439330195095206660692875105890751276600422926110431093450236625470675622942753447415346091336606823765589450576226667937263175826169254016918347038223925574543126585756408362768436267929765163377714708830876113936099311652021686158839735031404124670682769404834671066531623720298773741337912388111189899790575130515670464217559028179947473766106477268834927203037639438771082122589621532901790737605270378790531532924348589970830769202465425399412393228191028555344124742378145803436265462881671323866011561558616784281408032741333222701886189247104534406114397531536907801570929961844455924359243437651907407464151779888082028558289573607274500809495283405805261425136399794468710255358278457173613028071687860509630356024831801914703128863509027527411357553862373327284880891692547607823718229986588899457980074677275892612337367143669422176708644323116989522483181621213423793003954810796943527293769213688372752704153034252674197399353250781917903130903404722336436182525905180365945636950779895798899796935051264142310196479293088791817485281560254258093818942622360277258049744914513395550766656188455762166079094512318718717690482490159129334815761179633053288349606168346560411343127323057863293796051930101901025904554863216615307845948383968519980764279449242536266323900799231569722764583470224503439969833114760824596501644509172233633750695632577033277095922280519147580338824536822593002470295100367943808002606618673987300638538998899510307400154068860621156329947770563028980234136989400248041126095153075986230333408047633863755266790046357083652110282429322550108355276390982765193183103040250643844933758178329451649265411714737051025070697744400285216299731898925221667108621788682563419758435170890114789688570019844245278778419434801172236432431012952911403174436203193257800421790895911796208922725150935232977733007615455348127270403255233075170072498078690792200698226846984631368380152177725319490443354326116573135117681726095745119040318973498824627153973511816668293532202003156735951559422289352607152010309268970428105779823312228663928999302831362857705030773140791924077509954603490017432551835819289680162224622654385744117770332393001860321845471694317012235385976337617162915176945658725837109510771069668988936582420135219571435665998098578862388906457693749838310558045488036530626426016989098621889934522193765124951507238517983310430011960102079253283659878851872814981884702789948816131689884267786178507975712488291813234744408083822732556923814965130623265869228392505415124908136418157919617484140713100362322566958314146851748212973214837288944793670981975874648467992048554743234670277209193544481765061575107872650001888254990891153684135118988491046191984302661390587421597165978667096939481269196552967191742109635760342310246953846345615809771436985784457697137147311954836239824248322468855911247725960782750562575101344698844485492247945488766398968360710443643038650680847833655063263009850298574236754291896910364386228605650499234043753045410654579980906701946361404425187005005737207030893375235470776167383392461667420327300106130717517714465359016574588373361075999099923556173398838413591453615017564187590048813077015877105108869198657021307679092500777393275965201255450853851815543008067179488767747898666435446330316712785813858661064152904429331653469854271284975794440693535993184033426349899684375041979617853773615494758475911172398240515935505333542415459678300265762003285268694676948922513684673396489366752864873592458633194046331974519286582617242302893511224292544784502239971304760249349034129960311926426085800267108086392693851786576505851887826271088883141335615693586029725288496737859235052080412822745428605109702178463065669921806060520305169921783687161470613159262606866451439568715345289895370721986541583877917071742038249858357247928467622860132605745439365334616048064753537248755836702169980283920102463810586301392176715524261201012483786268417740190168106513319782919150250578060862432184201893946971062952848049418273716218772902761761295111456260059467112488593693587668804686860051455759977130132625537554905658835376198104664730827910110641813023995534229775974247680894455423154674206343137172338871693916933127887680599785891731012534093903678162097060961251410477248787892744300998833922276907177902231485315216092478595523074489743574086788141792426493449242127475359186738714609057667407925890935530933342905561800406657714568306715478290985763234753927084199572012831564963571117538993623802605433072155903072090969311674225499198685635729211315130774673874867035314363417474174179438759761269859317351939607674899323846067079424125325293796247997843662491434844040116317707476671151752423160498476699434583258042875397048331154491577116763486613853807342302260628982702508944089955915695714976230588203833500621098890000671285897623101958262931647298727197983982139306517871020746743234914588097711797045866458052781585200965585337407314620026578895021177033494175554564994787715715261641147306274659853668588156403094612176154715226497908446682828474716149333757983189742393341265354912688130076057598680861587701686698526965963712467426788457517515395084917779279628772240858917612834878140328916125417551184644226768414201632889549666036291466493801251472139744552304070830310528813143310649578020116771807748423153150560914407425253117067102517300795969628069828862103289348978741940123620551131736740223638290807247490198795186048921040354262738259448636826765760888229766323317507467655044208452151263431616878386838499551423604979249742500966017553829693489193011902427065802664817130290940756901493043634016365534586751225307155636526940884977447652560120681506890447446966452593208495545085100179297506568767628654373472071074783318690398498398715076247689696389263105103084275594590190635533440785695579617307734004365807857532880086890820026713195539308792340847627490289568757457052856162732275114929616141231722462568046727405393555572166167203373089098320782627204969995961622711114452506594075158791039066640392176598781843333956181927501665306720743113773474570857913183944449762402171844232132436247290022493023064915934915129730260505464325269353546806289858125120339718061267667371048623675726368171737443202478092116226534507684808371184495483060586411946102120787685933917702003880199357074160054249664053947421959664518322184911413434481325690283023737404470398867628940489613355541559239712001148029809656651119728853101611103880068790135795443498053159043871762450249034999248685399929354350203971711553888143658216821016540821566239487542347534002993981232976896680384689725311149632967327038358500571575320339858948831368029007378893424857719339807923925374451116784869980208402118990525562987133186905721954395010582245941279194894335778802055725131589970693734996993293279464180663593312168751379673349465913416053513645293066989648724688450270961150191645160698089865747578403607584587046348259670993350318812470681239197100938945634421934009921757152243321560617037326134889243248808852244561062072780263553053340628985952483054138867091487967478132354995230719611301816631013130356089865650443273168447883279902728140120013759837375202409014256051994416304959998708888157645217353623940908132374918924009518246553287300674097329877260001902185536408927971032009781428078879621432085456139861215685236680122785676104519017628366875192427750952781471209325740953328720240675762153362233729895447080282733792605585315144499903351531709693735078354175219480342453267299709337816706165622511870649193125912880821383933804625140671753661168846345220823680948919301279229069071277443457083750095897273013123337639693534300623887676379481989477912783337503899147310681867734059607810827969433282853948028279989225325602531335786209021561356848798411282552491955768909045465114442604731218324865123193833859464905245432291978966481168647486031923529332864970325261028083177572324621745276792700926783360278030233388646244013958866176295723530122632454831786978317552421669860475950801212941009257288926164572816022980613758312093045569737246388178496584083087509261211498319455839287576385911537957039860424335196663953671341512451371861073307263786133016769645651028633177290388017362558688798481768432847948578901065873284846697122748368308201137733686853454794769677452579132242723647696909304850053227525181864430476699568854072720810614544025340998757340933388773514348328589964530672019726255217303125061836978017028719480519196133996419414197972532863635170123851778228797091328832105270018241556611822887450515052537656039777456483067743317108626869872298538404850082657594823925219455520673617631411351606043273563402437707943150837149160219922601438177725553718679857040071162355608481587003043415516780528770404595403507238577709511948417885001831141669850277885762037841381963906472321641089968852969653254453211503489147982262341160714332689992368320578704326250539710936650516619209696537572743146688226365514352229648076944793900395988193082522486367628926277344996596575608686145863145586054549989076297099890745368524415056194705749066554287888378328547920910831524091204290488596057284438068090902028121336749376885832492472391009151269820206711775913623354502364213127231009053063407420308724969245149831203641319817710004570909750004994984799595538492190011261311046307065998838859797283697839010392612983921437965923974941713619990426238176821542106970063590603103307105614703024714872214759369962116134574688769649462583074102345303572025227544710892323089658359283855735255628989573629820363570395385715784649763934733395376395629505438285183775150575388597057276187752992731111320543031105797204806661423861485835451817898379794217102765452150924834839951682126485649084750192364753690200695215999644035804718701149775288491477647496751587690426516614932746976043981516252600199449977310449936562329814789340975735043501133387411203620406849946102524756983895398839824105316657695441619168561363252099897593036808442290417074226062697701230078373900080891885639429381310580894270469946279841719579278672869496178851673820704544544812850173437565084120166795855775174180222427481321037935245273080455069154383111803848789054750661102601352116459433629282747832716360841301827288529084119328952411917401072344780166925909925049338826307191205747745140925237288094128631130722425797431156736307245348172342362733614772664543476440652616919478108559535604597350177552742498888723975637631536817193346574900184615381971173074428378069402922594740167906927123569740148399868291685080515531039875865689547588253119719265755966609776150651898023750572175146443923483016827451634685625009848514203981581995607579911428184074749122580494610440440847078718049276476490517135290044150073217783937758219697442131352094499083095293113789326106705586503424637117356453247801993786351791012324067848290827693141749599899554258413024154598764401366315551828135618228385306104342355809163629815102331008819748655866610323473071378647143357380127793146099069186308308353490948155549688341631576969218021710650266631400684708071848812786206365428926787637228639394978661734735389244330465152352791988711515148316758854686156650666715029842604138200553945862710797623498412655191113833597124002406056238507949110913760777545172131592873203192639188869813076106619465606934368668454368711559293922549358248095620849839661603603115722594549643963745783764550097265805346035129430624845135822280660117734707130039698838888652560935775317888103365089610962922256378746252517705456890700204410159732881299516907078636717192144081702849699768620799326308664728799040567529558954875477107999566337283061256207749427018499857541567916472827690718854343537083512952720406889803035683348661252789120165277758258572216421466319715605681183716644622121530242288031610596851711079129450603916548395765331000204643939525039890359663788831481598515559481816590481476603813159365638272659421299603661957003072879174664864242149494284630948377424306209327068182852520303901533396756960201919314382530981848820336665925645263765999187907425329418452455810449856715646504110271718290076563423686824778376188239038475276809483737754552941340590099149134905747356486075325956100239931544974528852933298590500102406750637964745073182368168610890117163025092857052348998618617323855141586364473659685406697232765281004940034949380611433938065616868268850163921059926845054002816947019987869328300126859060325688957926542884758336194292221590104044018021324329273441601024725367938071258741938111738888891556286593091096992889482738977794172678266455160695864702253279126587325438767282119853870828724934859969158196990512559381284646685787391970047518266605374489158071177777422872888131553749919455965814584222324170315951858111089857127592828485980485709941723514867854013572100999401967572690274767022623843689805646075219899549875150811568500571776874973392153348823744166410565487098275888302008352371846543355242817581830953024167740080483627402535899565917351696233941948178778084754219007823336602634313680895842862208460175272295555533607630512238402906936342818436990877812475333264914656304765897823506811710290544301607307995988145710562672148938497880624391632018098207518161915625383919194781907216056755253089146071526332434802862295126335676056590239214784617109659522331767810299921216018482618677047160764198954711874925912220120461838385755153039788591368111635906985950501167431235589577214954068496404482459259052884573444729083309583889752499300401451796459188056816291787965652340112006374968509671539818823628491704345717965874519629370950388812694951219480462556579782224160767571356271783792914356233831677895317237637576461892203806550605670438943534804758409292940784122770585538479202267174561072435136421333925653254408207660191685990621804214859984844895303182528672504237377147767305007327247700347961801979138299773130117937816772533925160451038709019545446204142501330443242003601421855925588849586080258074321046779682908442187872236389309101892741541852350569063764177777846251261158582680067039625391556991933093719541542767327230496737313553169267125886591518926081114133386309432336559086678622208275144332982942682897081061019163271699707682790674009068292629529643473711482326714770447181232574427160768429110617763369121823501381723123643435756811180445208917990853932341891442257502558057951871620597546330058385870442582504069341422748505515622713219627211559102841517137950109527507558970889370633965928405438426754263790596421535200291093613514646984429899479697912738092054825084224860718716026825197770157652293456293449674054730268137264468686452992423059711477880480685786975470388130755834559221820527140806942551759680338947800789904701551300024478610135329890843197548025766724101966031216216798466325466423112372266628384869508064192581981480346110258928360775905705256286254680412396684348536369916574856227746604831644405222745770004596182484935263230393714080244041377258424010031162524838694938638749468385545717979178616765789778377572918044921629759473710308700272944700250907048753031446753719436937201269721267457349115720201773318628340299027616358713269099837536690547583366890529647742671134713908088686875991687497546351323096757616542577928026670083924371655278590534481794929572844779620399947297012056206611703722914419064019909802389224852458951125850137569609840583175773060807208197402911165539123916815665487557945085432914500278528722684366228790143777511171156092917864765358979771481812438557899629086932031879462532640319785955192983717077279994204658031122689508010581921601262226666207936471129178528401943376057454789072499023188856962281297405349335494706755692487390555236307850026489456651265524657311241244353020750185816529157045793759004477556849479577799509956554577522451213525958484668814904782063553028159426317548157472489611864362240909848505054530069114179963705927947059168425084285675862915793620595560877518564528044223598652779619484114144952377996550382369048706594664241357546528332528704666159614177431179138533935549747811056083788778854784586971691427367557740435627390297304913472652508354848945201056431774211745324024112908411140180644509513018491900525444509278570803880433322455720317456289663721592524251914430340458738785156574442168834405050778979799789175005616773094925005719918055113447957316566506026506171390182779559986900584226608071929652729274369923215539609866987453993548096941923622307901278930185112052505710380520108320618300219368933883136087176147087689465182162571550346660303559841031625801400543056385912312767286580846276031632256195262397086360159324941715351120853776502045140806487022089977088992932877215942557085308369116159441996458291113244063791456844581275886211578202940890842042265346886108494522522354619278490337522880409084951579175600231777034720192852450567770987163199774058730642411209319788376638461513315808587095590229035465907571704231102294594635965381207527419034274441472207900021031967403845736884589242742202699748083391219850091959752955251725745947271021559568909549444889892893893354844427042933498713242294916748063960925209611699914338112160367142169622216456359017279610441122018711323765035922743153999059739405064829979224518556295817870897860008676095410631576506701679983334101850316636180224605243977643577608948248584658904972210950135165871329905989573082053412402117493593392275532167161062412093068686961088016886204546730858885708953320180618539609056697590302557528617747662564999995390447637553830053759914324652074118430978905506904052881058158392849033346173287379955124857889807913186684080761717039021619339593063770054366651648313866431139027672382116514877592385598328744964109050990663972037760468892620567756202335778880368022179427602901341948550433058234721232501176218779001828675751141529863788885381302221050115411484260686880552424809588736162073370952516748095650475771006107343533303483207113255969171577426255373373636737029223490515678835241265623109062759999954657527508830663888195122747899662944869808673721694559294348102071600739122702203558014614573915929949720715653246165785005513628207156537355191533534159953727088097676444114778907575132961430201152661384423618698308322454427894705394829192805257274364899082746013159342522272524773610510382060630658580564320952347190149662605750749939782479331907590007278760429491460098045043783714830658655036671558882074268781356318202814703565725023016045756586445907455038890164321899933762052327945226482169601421841534618660163618995699227507502133633700682457102182768363876487632931430810542651540146329802283541588254777200741567641122338934213420374405712699862764141736568897545504902405543929134721483214416090851728182327149076526270247216276053090611788502110711903651354165067487944053744103023151995153825903137370862385795828817055648038087192741392580155063906930546485345208460902123787157877862003097595465684697224362637279121372344798381714070349389892726697689131819505603096770617575829033572397337740658078117955331807206776475437534439830571643302625428395724912277900729074803519687967076765441042712835276240985243489484586686036592051486967545714685930028802440824582465952867816223045615301007380319028363381140660704830384556955244697980636121393153921615155097426412477542593635560481268711020394669444284970713404998166930388573739278377442242837364066848558332610275558451741753933788532522002067997177654496263319119006513974762769997678243127728821254892112810638552540712949352679574248628256644232539343141912642732452319855933949811198341094613885725184906020603217015708713000119814819074278332726322850183068183580853755890984281813446859915324322969213498066431430074656244946244806322479527542363337604501208469030292672089983789632108179263822904001877869741473319653307190241481121976509222219044273264677521009377815257474245633533157158935687257287160926839925540660315875967694257370645727770206275834265289261568984705661467898787150493871643577428170497354090023424689935300391103551910182058983207080980701075597786895963597284202449398593232485365016260214892479391921014840271848973337071286565077634663766796710256755210595979008632360467384511455357471675109194296357742517751980913010818239187920517689900434760321584543404748968446292416848701782074787474008648948152979451685405400816970314365365930493022272006762045673223815230005598438139603600453288827635579070302611583597078466739456613441861604116715908892399004591339487372537716860928715811905490158892597271638396755412674413899354008797439249994201941699471024755657476646455691485707728709382849830901223060135450573920068548335234820663076532340667031585746029025400132825642250801486553449872132207818665585781307744498973511275230720582168198840564824182234344504356017736949172999149812240757195180203020244623068783916246727471008665089688864973539084446914853589677207488751868473912838628520238699758967906122252064915490717018156271340780751812352694191827994207150968361903120312026892931232004702852187062470161838774890101858170557734641956702566533937082425931595011296743780191101576399497642957684387979315834592487184345384689214336089061632429536431487737559628095705624653159461903360908105352852653771990558859718005349622385964087777467881096835810250159313910141596974815176731777010574578663874144517773838477534860298395392505408521666805393272841091629156615220801269019723797628089840276415424212446905136046699336415088358940367991265724899317604202382237107568141250004759603274220545598477972012162330698827827993538879409886490564819431222855750039200064307568840426112876585629559631627995974855722389697727647125958294521127914197558346182709084524261156661416515541152792826788641233171268671353468753488800359210977349679697396570402394199376736141049294576066361555241357452235675172851714092390844556192875650921947721957709692042327045348179201291761906114715897786359688678600771845496616016257654823325892523719960328497006351597668574687033045531338640423743617025731314955910720881886034262629090293703806473890677279846382984003922006928994912510717896957689317552583291506795423890813494571260476037682286303936568759799198173619117503286340083599819175893929147567661897437851515474469101081005690087356011967546903493699551699203880636632634991305471200355740006697844055801866524531197332655688360467886402302759198435241334493723682127893140007597970363593573361587719464800376029576913321730907107113672818866524358315471287117997649086288739497470077573977239159532346817228879690157683051967686549046031058275037487381610078929443464332813748479627234012021884985556655255298266741035213019677289465491619819667309671834119164911900269268489129210901100849778122874044384443492122378366610153086027203933492983757922707823968409041514147880589516163982906819710066723364852843225604130951533765202597153262912425620040716005806984457639167924893920904505648744224390444381286732486837077291159397458036827249487872257937975975472398283343715469529482672564061431666317840546057776407550211322927466441716618702344904856087062597326312305373895404038031496107835049007706554159801788385834297260084903658190155388082119355836924189736311178763167142475718550216463674201942929001713102638194768044502477301950243452373915421682231618095315770119447722139026116691641520442825770177782445704567649202492427411143399093015862155101648571638202487326784050899517917022693232731861717125326417778632662640615891252481100070562934976201181464262477792121814998680373781468258687079978120543366095597739645929100992918166864302572535113544516808921332024991046431414611419341437964931450430759065771257753797657237469426481220428249295947156760364369577376916393695857074271875834130845515840222034994571964086233525736761723286411167015492795928564967617199817518524154148632829595129017690836209989401373002911716555725289488377506438977840375923248006757953222462999240107153886380441464341359084616249177808462382955485184092080151708637249915360043354766180492187197852512092814758959426412396064329931085308441922875462676426013692673838428396914925647469024874896917731528116456570018254104884709585218582702568230418727653809904813991751052118586578780121020150864202961375438592031592298529684050272556064153380566884956717672865594514237545191024387406303493458593393251522747130120601670427648265866436419216632322876150088219217064806803597086667486285984973065776444912537989949131019604769889295008513189894175516711037018116965310609071932371587155633673522381743426714938070754424785650676240046487448473848975892733820718016337894854119541048330479075102656742589535233997754795262420162079068789403398377481507067602514685052646855144027270856834843337823789438329281650575940905530687970337960658241193130179558812627339071616092336299521415873906209133235912122061304899613632611763200007426604704285530508114293554645087666587167619827636288765684974884798393146310782257812917362921534904382458626263964295550957970086892332218305652175119288435252148542355618158208785886388953959791059800612060831072478983427040270338886388009507387607839738696508568040582059972180840545042445943649578049253454106691738283395022121189678411993401197344235821743956200556554493513186001152942688892686547346551040187457439107602523917928943674113717681182214847724600307863814270640296310731796263016494337387056948121593364953477429570585020324014618639738380389591082113238920016425752094300273359931152699206253265800954336882113805146542086972111148433140107664255375371874708928360238168908032370277147278033177774031343982767641434442210972569496598640057163339032241023484140620803825419556711676896797706731201904214389776849882852526321503936692144331580577133657291324245639433044873789343356289290265869578032962159475971496325712933471279448617096641654261682155460513669238734169816738901607829976083186574569361993140956724933010312048785795818610568028585107137391775497605081858321940422678604847754370252352068750797526728430746097070409939075873544105900942524392630367391540882884376837395126203411394690512296618310914607945654459425953217239167939654542836291162359824212463125663758467497999496071341944026640377366418686272958133863578388094863686295190278180540343707604157324258407486270103361818504614697233975922009641202313513876687698682700811898348311959268850981782010594284488057510117287508589125671806192446658823921814625075199429022554835283894738228430580434800308094269538053876161898197481089482606209711455420591825361713634289048275034671961788191854746014166320716869781205753551247548269547851720952586496232847317537244692483349278534609461578539385350170717790291437668916052857047653851851477661607734109457470232919820910463825322024505793592089088549678100689573980732626642542364457789462998388706444318665034387903081272538464206099346048969772569385298133822011046559626662228087530342921668514082626380666430719995092715774808217468900823470133750143385051057033878146362745791657626277429655652177473713424474215878898876375179697687079000852373750963629949592826846019066360013790854654041985836701751472457732339215416622329737961523620750172714072719896671454119897416713354011620600471474429934744241546654162338389273620606085311821658148741146539714194355999644724263036186052788025863678072052549978071211670107238367493583306864486791361590143045322233751822617515617843194997206943331224073254242621658086585604462237160816879745322245877930278689555016344741470027738614112680914695781700678066626207994709965205424837179904748449309083882989397197961448658495438827028873923859344177082393310918803119282456068985561914839173291332046381822635864656934613669447937570630627623232088992023760334737432829730958541355769099691394973563392194953367986720994247802901195709766885501514415439897459483036055698765443585301467504998945471269162566814851692722035344036322062230324832139712730781814564701992840125573807706008579622433584580164513830589136372150265309229463010477261317847056621737884234596920834532804793331792752235852616650787021703765412904714790267845684595963282971359728528545565166075472421655418462319360568722197691216954835158330646527446339082360627070299058237035684019563823133682559891124355600921964024059079172579380796435269955304651097377471294925333528314304913209913811310801229913366917506696181759855390040896782246979389758655496309719450211810199966588852990696624514233503062379025793700743201154841796883362361025463880656686508645260998079712691416389420544745566351811483821446741233283186778564532322859729228800499041708725185967139212342969062382473515966934939163841811563159488224997163976224380151274754479199064647749222296234128671491525822084461199557700856409121388196981918733285195013287305181060645432502487279963020528331974771707503051331996596073037588382761199683271352851190009330913861343066589918407293652071603011279371626415347045579713968978035731274524971261008237733050761663775998935743223295864799672032478481758991795355356465408456308642590739407323277562438357210284427229143771258115784074616752267018344937946286428692487359319064629968185265402300365891035783493237157022735517285185768877781799169763259509759637240598326339183907924353792397539814073543965731736064620915378504759472048772874875551927600326155520521281822779157471310012246889665481211686238856283156781154301870442857060431493017376274972100057407079882369139949218231043100757110840110988597507830839267320985993116484017360462900535900128651906627734995484250534913822411628933875449944607391135029857195758497646856677422675057248733008802524428428293610720404439723686853553356570839033955866247201307062768454446805776052236209558876729716658727217044160794145979445936033579390080067069176339727556956357328850706039080670075960552709853604534857779513268571428304088648078822334509916439426077796295539017544429385618375681371475133680715597762477251405662822535929597233014697340201108491426473280297949010145618622007219621078477485703662364793008999830675860234273049158017672950602232028721116341441039974631611864419975288061307993471727613512453702324992453565719640617757892933633085137289332054235224007951509929031984536345872871911572207411571518910698886507953988051007608128181606608877022308652318770403829593448889537645208224670265069300428601579690071028105253938215439050552476220784247737273814096051609662821986555243883146810645219083016652619457359832922510811811780716108849768744082750471182745772373249985597015521082319666342727066807723271242993648927546740196989271917577432468270381618459917249919364315993396770412130710197519169360689551156000245133218326477204615959374266253722065049476193809251757557777120964135354256292394386305459245405095692071733343103996931878512870249568584760084254844135534277342857882856591440276227701826615751935183529671407956438741972534128882551236268741893204252358345423012440337183614972943323889513164717307388789941117220230718446052291415754031886138237929608622430899065224708753656300090217217855508682028044263769930411835137844244055841027065580531382465464841410519979054890661854603966945855956602663886922391678768005163907530186214185706598862832327403147570217630445441379508029153750141606015019778651747018020145120414959160591106664961581396023114133776072038628033996884387249228400176488136092612955812157613979816947308281660529150804784876293185324192957083037988294143431491923202880859415155667646805022805086614258334500801415732929857176587008913481091158827003513840590649655877604377687242567817856272186780434470486678694482759298485800890380371586949184842055604104450078988560382861820706588247859265049202952769560581920848695870678795579607972092119642987363345724525843952586676625504277028854894974698824200035964408867288484161454408428715939704283820468674353403274609895931160654278688740463190818310365190069900067099252884882338059823032073175503921541308392067955710619662673035038165709560294679844295774968929981519596377946211665313338618020972012848145353555080954024081919542829940770228405723593113853912184688190002871530309825218044336451830189279525909816951180172384237332993993055013527342438927372262825196509370431276588886943389472931995962770718208729480036393681349692007002253270292350629650627346757939877362382206920443803393474711487538156828388305292127524771449276373492599999547621784948845635186799465887601953158797398341877989620533562813356398508878680390198497234090783474332760955574008916861189049190759090637028970479575814171692703767291525953660848105693061929554820587885775118583112416764646994825433490295939608926225456752961320907368256296134516508901215548963280603730089429216705722274700464208442807703212293323308633337355638889815729512648682732647357885644062610351675397575785655957837269110637684956081956017494887338553402477584070516858711992719135307457024204636891714236984999171503135516590806229182094515706016394237232026817413129390770364091306333720887343974294017779122684094394434403401395279846899748821371852922772321870382057298381049804724908445287106680171260207068185142736485077442009757648614846944659874273758853560780350960811925103109407464407378692975672530510339994279297242661406216506763573132371209125849907200835249292192470831886302530266165180407276541075840258289484696732495063967769771650691631719450483393672955562337919996616928138911965753256534911315536309324920311092175775800684518820414142108168856851813327025740839674721128730594157364140431673688744344978441215483753462283956532412992361312257750491056091508006246755587421541810944378384079950225869543461411987317651223316812950958645735719246270208487240662906546860475358702305899850172005864231703110181856503425496132561371080839699305380104453596184969736239450969111656831190734912567254941754018103807275929157762709897748553460653306244141439283774970166299868784416871081011675155150963468136631496592595167020248708898185791718107083645563277138973892841174537533269249767669314020729341716375692167093981841635355387170650760193281516379893130619623619234705876459655402218525563173507064736840480914009710869292210827889741449469570101196155531165573385434441698524969033791164104257394938241217740211503678487169840611180060990028453017252922924437166832678299560996341848629260233465612382763996052918416360542854572130816567003087517607667098908130369600819051152631937326097879111252886559979768194317867309736367417057467158367975441371164263607085703783371068797253642840199034865865704395918654046512059045727225081462264171280067365240584654554588627593191082125270740403813749706298131203737965070141265044049428086422178607703560242568358618649869143916633539244586612455747892876088385311967781646020815417245682349686046724189308117955311254668035860054094494540797900093586622022556236723452640149764679630394137210891214214037918465640116730790376171966947660231767156419071527407853283214461226363557423409591928013927579549464385538116928420624820544105096179538680760645736482555099671231077240034692331500167533437826477161506306090709737695726855012258584653801143526258367185495240020695641522617423992498458110519970211213759453067792418703726686311304889355402550463708831225004379178972190298267738363287838576518181157141345684856213873787457128433331140967536990174998239488958151737531067645726548862824257049136986294018161895161598731700703819224404139789197313467247751756729699114241923906937377063476610285788969020217049611471554689696545295416044958202963257480168891387728280906197074825336787359300424476658274498390913881530171977464170114522293955729398585672954710932861169169251796937701551068758945020551051540484255842685424669420765671360503835300649652831004330527889487367501140734365856537913073780940133851355204643865650105791908890590145519197717436197971027465939431580872083504802206191488706554196938181172665560743665576637020144197354469915931045603232592623846500575700244828522684332437734424372128115784543322232863996916559576323613764908727165588646585981195631029687785386230400737795273717048810164842453103086428060697391300348771492522144119047754537474432077384921714591422829360688646349676393704920336367776045871439735466507459203291847214771704910278434134672860540561167333793902012072138948867854083366726184060129892630340429019691169977830982245695589292970259602465991228366574170238021491057225154735855865361141462240039642329995802178045928918456241785294415931935310187546938268960269093268372180145438158611323313626721040119790791733699223944752539961607890126874229175127236092153796363093555950519125779397960454679198686157736382891729058125955289160024426970765992945987528233629579201238000694566292154685878396584271388136598353339592823276419554778752102741753367337665377920428601475410539544535482395976485816715693373031757913739287234631821218231494245164984413235683663516880093109626257005852947655926888091700372095252445581422279351146388545774664807427643756278608515142500125833262387571814121363648412326276710368118988509342271268323154610851312430010537174038060135087613570166161817175950641016547517117204629392288598379508689803579275395818568379470677986780419581924451283129302407755319671755656803795018609082928521363575081501184068685470045287077375356133188980489344668933966236028347917496372515062904831891681103729192320243021722396981450808879933439880962548314320315096185700944965145169905915192918624716822644337695246782480790227676131543294709688280489799207366523677171121665349279996475261442983888840781098344534139532558929694596490854246994048420600023315226139815376812435551985437385027324972158072971964542176813066473355653021465334098709173172909758944528196121905755761807940971379162750834322483373842000917071229131856903499678286169773948381403775609243671828697757940358043618669112850820796842414288350634325630966165963938610921182216138779343159516905681632657987750958324509966448237446765730602063197646794042550161101871747007132706194839418539307278904692783848406166690484459443724577773456449850979060144845143480660569184830281623431056284546012668893348303778759155583490565513187278822897148753335981675949838740764093696858111538819419985481059520307452773188950203815441452762309815464818799939437190675925067678012799975078924711707034877712837630291545691114899103532992401914919687477317796843942172152852920701323135505677989479231756308346172634423735014835915660578945392985524764635730977152481575102166775869517832099490215728608657250091424356372839782740774956513814592192489700848789073014205009205360754223388003181269495023481248065216985843121001933718211052471896968101546500846776974786518086354214797376998216971122916666734344396920456368746952370572684446264615432296824006548931270653801236410076463694136130242893930166891815558590684034706816709902535328002025046808501467212365221249132319884008131086387487015070111985792724851695412455466165383116052318252317639626601702694360914466284196194124007605743365877492212378877415131579370149233783086666216880668679301067196942353701353904015632832148656525225263898191876713879481500019883957908213950532222470040129359206273580165625060910190995171538438208888853168004970446894040255935375122731845212381160676337215678702348320903250793466741679029859368655330644428724299205192693524065419689487478913836174583285446295253443463414202601498149086218163848811832637394975214915738017203459438123737011895944664619945114256190939368714403401443694201647084706914247150467696495178652232958415950940753975711970674001231665957652886208105675639204163967541676417315058872811707249872572952582876007779863996072820740063089953058868447732970633756550067221119054197705135661543401828791213788483206489781459535624124822735875750159697589904069111529863180033727713097183448722518015177813457325205230561324841075988804994206926337575230909302405436887817630176388965433984437475292234121099072892846511720154695944190335377478502779040285306864804048195305842677494635611903822194098369883930659140105098908497617106020175429182350607439046997249778568456738900151553441041899054877360599855948541867940752459074838651380335189913963163053713569660080628229103734597448264222287082493060535693264001078274102082882254121079260392763987208058718720942783163032022348378125873974615376291304588039704766067927196772811775183474999420774194064299005320596933007744208943005979947383792489114759422693361531180271428935780408602195748605693441820482267434262937906615722006427511274841389989577764165760503607580433980398948622986927222977351261130272324546517497919593362988559718038838515618503434804025504261007793536579809311212969358788589149421521896890636336706787309155231353903612950175478630796785585433989330188306990695861035689877788601480349637913145811745073573516801803385862861945321591456803666314397440201577315835034856431110415150739407210499835347871087882348381980998406066406345479161656216184245533403002406600748560713340393716708179585978225090402547915481376224997818649307892048364107028830637421419036556563451030125061525794077643352701849602749499183223541310005408687321189681145721613220067609273213955144833850658376996628645236974055106953139465315434445428337264173838638216566459868750818713397866517599167984967068093456181464703851491785308847035964760354361332880827699159547310152084018232060038918466074976598106012405632338296622690941879203988214925749875372195074025723743640975118347948933232553478947789443433313188413126406649502204820946987320102219144251723441402923493730180230765536688145689158537730613761054408298693238515910099181484311249508295965812111515912650193328665430785271259402393713646060709023198070334960739741070555048709725326741743011339522006503480852564232762259277248112499048668712544808635231890521575545294699212019138119784342580202518407578300612089157909830820209646099594319596153548315858803678548283457498511198587277083659991102068319325563235090639545118706421627338300609060293440825525873894181269933135742965703971354988301971299624299045943900501291250905466782001099074821649527536348773733311111951590814824153043557071682061278254370980529725218067482457792335561338574295457384265067350793338129115476834223382653750769846353997183360832994169488344765442884856156925749494580907338903850865536843708313811209201274450711536118957776676053827780898705449433365233713869847604671999193474690997485268876603290287451673690301988471663431476297369364367246521048038692516779268504999084543922991000420698717228446977629856491443448963280750652537663998161412465023775652296711383330830641233069248028355025530566566485585053129037369516844439728265217576368370721172067791292926506096016832944576804302796359624060855223427487295784663742840973349529014962281171570510088252581100363157091440991998610988704002866994599446117465667313693946864602245883408442364680278006971174501904420810012206224699852139389508427237831751994437930677524239350917252859088999026939802002169080495391017971994426552077251588184562312471449721376658819640586666212897264921625357194034231673465516998423063219733495916430220472238365506043037966982021053129661084159451467902400295279824272946253131268426495651823587496773518399942694661011906699535934681857084540366902848231038031409903261893110559733221425211944145449882031885118933875248841654824974421166388635480422222015116476632377373787323226450342622901720437717309944965925885845429918727195880104612806500000270694452948696947180827469673726185056506899914962460685027323230289856489632935036183759141597357466024557602619605270696285152336281304879390419447581197290800906437975916021157440750558967261912759555835058365463611574139334872997770543719395957097479468468184940190391060503356500474168657321536042185041848524927039228879471939566309269907345892706030470937741560426388815894484934011885449990703923834768210810411222534657694970107561796500292205666311332391467034203923767470758783510562358891307388865097933868562625211860905499442051081957851509789921714435414084999842835706119681576628917709734323196322621776502900080869028711018222666456221230450088916921114985301340116746983455375970264203821184351858314899446387286922081243603136496738945469282612794829127741022409726712448992669738796512851816338326296600976127855115026523282960398347355541694022866645365624534608152230003270205105402120155422926793759888736813546976667227452605380606928109528660297390077496760612501170840440717651714118497835905950555706579774259798689261439787745035617077698581771968887983288187896894829741902661367673760850252697625708122751064643413915012879352112351251164370644762564732216179699162691153938704440660107603427972807993582374471009889450047329800503029797759564277047387131710300886019505082873408340551782919172164466616156842455120841336217834871896909244946224669324766119485588594204933500182917644235740362177562334336362063758738810126334528506295874756923141722270249038818732665973179938410554505140084854792009870911756937192517362757298953267324556496730285526586107315172955199562186679172668287479443853045274514612915668962229091471075583737401151842446983792514854714620295531965078848143125142634370525018029014247539900517527755001343939640826011886053727992710181649376513427657752648979212671117640477496156504723889481080118445198979860659624341969466211098451488128710454064056704622474941911725731963169408208551557427363033673214591327917703746711196931601766604279946514739953625271049262158591607891357246681634778275962701692451614656266273638317427293081537216237961889784764635423144570604709599380448726137926645711307326427708625367455628921065723877930842146535501683739587985601474902051283849121544727449421006243811443281226037363444643154156490549846463693095405864769635598511986004302627347944751290048668817851778043648912905866574488813827185167615546514881806931260468027998214309619712389092757383366198498399227679562420197364027004704080698841977648232493230898190072379195210357896616422727184693350890807815581527927263341712912915234456288332406610798401448605153333753178106816021588997634468179098594507263857599448976183080716049604512972502192094491102520107157724566556664183084793481735445240220191552659820545059960741388786301710511800345355041986280102593803711284371948854682393161497364889810615713996157833045697648222642170456673078058516706980415032697161264871212881303974795709298047762650946393399833552334845958340913041335249564436941076848857827075314599577376351837743255442139582078935043790022133868358344671152154596946404294915652972426642463786749738341142616368041243778575630914706413060580192002825541132850364044681528137345121276422431356239072515919402619695209238914417028325282460270921945660747117256500217834666646134704228843257878858929431297459718729598546729793334538209861267450975541903005911438692927630444124538305175360983637491320341962944094786819371945469273265768707466158487863321266693712298075207799030244571983289995449164404518576454433557402520166434055444021152920245567673738929901315017028436220502667447177248212791095097576168123721986026568496817564250806095819980530102862873321404101971651528681109841266461550286245249357212695977658288599034175232498432960361883064843795525668290722147296473181044311165240920581824381548170754275693746076826501638207693536153466653992827886041221032175956457323784305430850736050179113319842731493805435514799799214940164791920695881846450914315960681333776222799279547599262574062826854348337371770541120775949718009153251029961613565247417404682031538767954205046010658387906883507284825735650965178520071866571177392998180189713259833708520986854782934309345334772591225131884500971317048343637737673939439213931956289763619316470014873886314430650761533000203144726803652908287134306283754935937272040334315863580651425825578776865022485186350311701837480063757708284526653435755216214397405646521493601274230666060020420257886217234437355486746158741877160381153581436995529184285493064515885352886435809228349374822350819366318803408915414802757688343102847082251897974330649579384966958337440891122278355499319139737313186084020431668796051190926484142411019606580114023713221372656248870893472314720810670137446629935792856686620682011933128005623613184361703185128830095109694399821892380974410944330728819421588686356366546661050444019241595089346851350783937445233684012672583327803269389988794184843353321956083943493389148876878263369608047641675808423683358890057436228870260261925039687810363146711353001400295938467797772511608089197252928378291786678236115350677528705532359220062808085248618811796246640882968080741538091211840682670051267902618095142784946873981172223163898226676183082419680474931340690527218897442860874201444991239048261293215713527672875787481245262170787557579314715881945417099557480876699930824262989485510400289283506825956244290215014584375337164795401168246363683441285585557076760804823622175243167205972032999037701995915015884467540997454733155899420180146216557572044463578855950655210550193242312495374413856415121055734060731152181421987679750951043748764579511453964711863088698952569400950716664042136237487880355249028892459702919507822181987779484779577933701084235274289968733855937294754548083996852457215546793535987759840867369140097785931559193725696737317306215606480912575984477983659047870475238064029970247380242186615915657942090832543145281401173099105303639414721713898734679882654476842849569470400507886295084496187427178041663041856011788141127948391603272421957886334371143856573533714368273946542799802453994162484426551404855643906350037580228558694790250683067457151872669031422053143711292941886725117381227507868543817185410085177125615562023376925405467911488874230614323624942403348048594185434640022504752739529205957544280920903640605560842565670659092380873262523523113042990316029993897546431658404832736717799564841250947303023271531773387213727250414129047303272687362433348618487947241219295123270500418250869821582079252431460318051270520340573872843200860097765682333877844248186051961172650291897689829883833081494720304122842180127281711343840468363246071830676993684724829852818077471005515888040384990597213571346743923279663862013368203560758794805085383056436054736068847613566671602983331626499200992237858377686888865805039858725899567533137850377331606323149660535281654661300856422966628930099664087070238283907898448112739450583275554778217703949423851625574199312264376571377545055378977424680604912289735764488028570264053745067382829163826321630077996686070207707997946473151729814646129042387510625120407991181886334985121297839518953813013269963654452695834873358879516582926291672354742828157175959842524411547588494908158611596138798187022410285316234747790578903449288752926921635325868810779596622743684923577338833002673452122143388121667027895441444090888727178575172494498810686836908310287827195850104147033181899264318164933025653319780644222187346189007969756806389356650075646557859727606466113952285934132516675259180279486788232208321302843899235002800566303408794521816913882635544114227432702672883900923289978900886433961187790660891094541884188110932933666116891564330812720186521528799925608057526882604009432721286079543958782235036287799536620944880173037575142643123553182668271884982144275862329791368673311922669117587071647165564027323051353336159531547115971330861897861109477579928612980855531508332685540838242210115262616905339060138975019412352340352695168949173478310395424374782999550707329853714994517247850175594501406308809775108949892500640694134619897991933010115274614925360080404213510900176750667578035328492943624495193326423696150203183781575692239960944766361539496630029644055229046631487469438801286950819803334278093457493544051769745928467901370390501240123820227810477220685734014228277041937613280760037020849390836033810656869856094331113514851958258276759816302527795460652799998886702653231120720671607541882905194968326631356166948139321688717519037284727697729388913763481297877044336240890832930580096080854566816795995132223596787092011052796311867310233139652085478735640710302625898348343469960472956353948292199580753199097980947275600021467188470302248157940165711675391018285739784167729036246665371738688144146503344762070672806152052977391712633711707349276933495430005378651696279518355436676694958933819948790846976740200711003966345706325634018454843163147152998465051584804168837316458872698985341398177718414589178902851997961319217679155909240345657016560571582552894811925421437798257511834428538332030413312750887543186471351321008136309878507117705125273606373726456413404377609324198265878434462687438254668206821320014389254651730556694764959055986982141294638512435329965827616210306545210121237061044509773373590703888256776506778216559216188390555850204305913168928999651909610740011665584766542910197007704057556453991324864038425389871810835833917224986587573415446177485445138998175679342229019391251897712029154016803540044285389476190943735658706746130006894479187248958322145989944225156794700342659941715879758189497868017722648179773904169117350837870379126686884596337548075682855367217887213033563202129006461373465323587638625226454052370219906848174152556587750283066619640970650962531214383047839717816822748152828397624793674321625685439453622487276043628004253298833323374355392984426445631378853085438213525945340283820578780759995913057902531585567783574500797931465351675016520297298481809413122149750401756900870340589358503325565541851433161854886230810666012036668021670525269291828229984252179944227831800292074994024214044693985897717752301163466648526554884411483955405103018919942750141067275169301579011294850491136123076378415427698216944756956762779778677457171158056519737362061237406428255564894067784742140404956262645251197822007932065263992413122050611634629576275848225163144622911297863159268305023080259947522226037834429567021831702790688099323651131276860432298220180843997793897602442518669440187294566052685052253136484793568576472864699004907291378388758953549912857852217437702068646862288729732051270702116722320532604900755330672533783005419304093550401340401445059233309901021592913521177748191311926207508540968828932336717007189031984490721937719087605969443485446727540188302506363162528924451889644038311238700514940345647796413305229253942448726539793459999837152461864344574140491160589793212953710004573818742473357209439502468470291222199459875533777194741030588865603277120859060454084413966379441127403947567444520416948151366015000964646693981302108944007750471523041861023669760779385001175644761911481591015649336069067417073619427687765130985166216157068574294441156362533777095551304329265476627097600912451444128779656158493066041504963985343143364150465460134863497709864195271069297796602914526165721870171489087967209443459035560967336637632868454036040291632106523700336736383561814033369050748245427216418548001526046838425523921878357423387019866503756740872415202046064522156559769865480495001864295955727939383825499564854755816216783144973528001146219714109024198788638345959415054443115302195951491180561927266236639360395806844056590768108256832341147611949792473622631713363102875144455124035009357679198705311797165169332307577312532275879581913719349553030960211116686090513868356156510668922358148876939463900048880844328393379139869870594956265147899368288994248875189691005478611290250482434073949726044977599915452335429741048159095788246874449567591291634649494052016737341303872899798975202722197788659763675450681130384210020654111899804617085571529642640420560244323835790450939428120112369478908420175844450318568832357616910385522975041495406666349507099768762176153331658052248203475123173842882577605193368472823877237471937133948102538304299615588180282405693275576327030752326011154744271540419939530869076848701576302547619729495303179460878989426212954808290228003719302481428100236976003168505013069039380281047581352892033118840646770027460183736228398191079774256779615134222216306780854802154839248730210557540720730265437503780580773302035491768322846134768939935366515343203912221013373727071385862191953921019269312266421210566353986108369068075083845562013366776176840516215938087626579999750992000253383643830628493402249045863225352218493062165984539714507019754126677436967398934825840812199830568403408204243977396052663810945501670553237051266807309851344240301162286755971095949370677487476818994213724801428197407891338320852303650088910413904999900154646084906581328502382152294434622851188088212329101573913655142627820499107132055888324094317696748605618956736778183206267670138447915430519338362451618802341210939742441657065696074020547662446099765027379919360474618624376800521499514351076265957991260450416937859902158511704349768776426472809125608715842837928273033469082200415655792161992516731288296447065968311908650939128369648493921790297179288498920428479070102715642283603348163142145971205387568023477278844790991830482021352719026528500999345613647103812769232042950959737479784167905648052647605906077647901152215192153237988583142721401155970782749874402867096781575871269459527749459974036328855640399083255983501828356804720118244167381387062665946630320917125482103004512374542388290629553249741572902919903871599480373817530247023188876059721347341855424827723039130899731196838487941822780378606393003700890143462022914059484434679002182699332839188029658593026817754977872480653980881620107380577117601472045073867923880076432018366379278740461729833153825632826163795865803556087485329016563622619854885103029287238817219853889713361968802013768129681909376167730718254340082321706799453470186363540078675290069616489981234994957878847951303776039211354548419082458531214187105251361022081148526410269557335853692544414774034373938011044428438711504252524270518403326085378651616551605008747090772849199669280210983595956439561952650198798993144306068578353044621497389381188248535392788151080938518239317668783017022275091888538540851174244839596393966497897228671745116306036766439835908587170455298649192580760687588428140871048730596425035065206389675479992187458400550630057781768018260853413225778154582725937323690732098349867265794025278180802070951079532653606600897750114562700640990212528208069014507326521619581658916785828166069914114754127784796720738591214092718898458432420127108385207311313035042522510552155050089155372501854672843953906999245274965724597647071645187825767585833655889225153880779760732559285223726742495341693139028836716611031632696938765097723101068441458254270920101943889986076306474455333651061553366277924623599767887502240801915541696529640621663472542403352222656181959790268915718491071116684320646513250026094537188456846566439212509251140085685511400721899973354044902310886650346691730307545741407339509450763689602419168181114406833015288685476586600770181962396957407417278494225033371922306111061888458723785139400660029098200598244669172916539965464545432705708999949098844485300265077160413392637291960231210629177588157240829174138782188192521427927099093363655398317863826479328042207634963614080228112455601654329993347170173019332024633276876289346884543914898307384277877511017268263362278453954127506664049679328957009815840422021759242482139141112235505595445134465619182176348746047455946990738889305289304336263107603895138513707115904520285197505140538004592377682175313787332232266625450030437330951873285662497542311493864678199464388809447835758397388500197626616791864575692817238443946583185379698012677260419807499766734014549238465500816896976826585046210746932440940509397955488304161579653916378915830576597509143163000909381209148100819563224760005440064350894849076446303852955318069682558133596117369724753826205424346771952041150660530277659337993516425713351164057361324681147295249490545943093314948891374481286512172773438301837184403901795418652540325427419454843978473970447990366444739062180536462281089674831543544104918110033698393724542457198380675574217348515314670520142590306031578302686099865147971042434065928452327659603204687201095520065303792101293539519419562396816050123947321654255198536246576008329085618211174326275792188569788218135471644967571426511677725098701911335096324776340155437393626787105526606953586965220384275141364535478781859415610736923841444664512858347435344040643470914202176345994006172730112484335713656516428056017302295672584561173025237011898355580737406056231009128982725204708075285263167976260303254000207804439597867939721267892165587999907472120943496547039103945771533151048052148091263518331264366023684099595459265958471170616603072964670724092102589288050610972738847046280711042568728351582409998382911624713501719513812085167938892047402492249227369614175097143313384439652590879653140904641094449872597779946509425788041272869212736683871489785793426377696344249065075521250887145441138158903302648189940982112536242047030368698634718431045902082686937034661420641217988977803421946524605599912147811424342413693222627323815838398757110825282686926154007570989088639827229750340144620018550941882822562965587437222682730150463334514942092917477998700742907506800693748473650421193557373163628995708564137278087246204223731337601078759707176067088883949763374284565499770287076326793150327064021779507633145028708635832686085817026553868603514239327084000265338580090461896208904723742951987455903001685607040419075119845707618123316852657025568777027048814160174281786547621965679304567473292366668626388339939424177438202450412531350496747471157669341241269474445298042134437620728758493100912188092403603607345244308620541279683119946490214137471422416942419217493544055927663398355743587160480006793299269588270226852935657243067701993026361794035817117260531376228282372160474255086595284635704236868727303020847140836628687618965083706691649770661499368537073720966774461567425635304816248318766230739314576570927257465601428086809056506948303265685967354348914325209138039780564548446162535341710535296238859142304386984600807901442083456513732845202665160151578575241379720356540951973143850176779460826777544473373717638178106771953594765334897548407755598842286078584718812395869816361874787778752872477493530723638415902000137687998189835105212563164293840854335715091924619956141497479258092062702850603168396717585338642284721203391677555551729381798773186481551703491351694979647256992523214736576354323531474277852657360970273784729193321264499405297948817828840181031400172611949669930169984040698142832290695892679253063476936089482186055273315736510685362603240878780464079473368845666695955562278623011739786112279015586140743095018575767036361586052375623716758351078541812402451465575759481042314529629402183138875025283914001979160286940701904376313891693971382408625045871458347199095075568919197775570158836130755181836425636953554123824013922406224939592863948254510446935086826289074824139404192939249779623563695785810218030882254865963632428895370558155873683761089166329207888776882324960294265789050613556981620838139110700151409868282905373142899666206268656695137519213643243740814957991207701610982802165962288293846514048072234946137745330543484951084842658943848041335483309568985818925799124205702522408777737544903225302702164742501401506553112446463274252230526634870958068663207893903628496468795532331295480164430939561042087523871056683815432151179731057944386827553068933226402035614718204767861541514736137889747199971671306688273869669454748670510260688019334342261076868458419818353996591212571242324330534114794469886218115895785648175102598662502902660525803176082314344255045020258219491466604491535717278411756388167822277332262181493358009801273747441060293678343203072395029889338888955116409056992480981164633191749501258903994477277759574779834082237736177977494234407662504259060733032883045595749328771515230366478165419456345281816866529861063567318608264332895000820588244492671774450902955208977225627275920213554880514328760969135718069730821111390760858227915545972611735456981869893239035217073169650250934351316163072691481981185253659639742795115927303085605463424403602049418596927705750914493301287941595115956878695504800653714630649905039169525142065229965712592232226160724007669737994988376146804434973653283637052368856628296014861863194335784725468505406740268407271070868756244065540020817617284380231808694237304908106532318256811336563710020275170009648541508263857556913680619455773905097642453558637379225381440840411431947586992825026514144655744267751842305539476026859845737620678441302980678145313941087376943385720518530919713384927969343308176896146571597366818140142361758477527944930757362770467642646412486737389013583199842235547480512321819554733483019018561521824052222693556397301312692587041787210915406984992790454666780373715843341682387672958342625907692564493179509447690352629834883920620879285353094667826557198640562279009379095840659601532563150524873617992707438081540233723831595341910138305506444758621345286192567051331741828397965853865870894648817418010890684586723960139044957568030721828398080890047666860077152193924393070177995499951254244969108657644352279243604742279161322494512758232929298026218511513186106122399532875848913210793248706536108648616222628701739610664724431679654650927732149243104538574765017562775563025090705461890491867939519641565689642861797243471541288740502925955958478905925177024118896752109639456008844946906998365330571789357151919359987418011693021619002938127430469993101627761599713842478326304697244622354986115501512205457732903827900275742417679638008791344390096440220421115358481270618901548125942734717933764319972212704265750748449119973719169017960370602231791721350860283762885170169657087710586520707604683696043021438449342118030540291888728273441966962427520104402882720775957232077540601510051167872830178452058600978592547525064651072169630984212108050878551292879094479827082687108220790039660257629539602705351607865010082171285197654953925988288758265708475505690340195874956718505128200639750488125787578923414263680698857391685980667389086244750651095968118348782266052419066972562224763359760183672015358622405225066059393418697893547005003907071145241335875529864328043096136443613203843998307836458102259533851805602746242332306688050672517374206915708651505727542340311094761421909312886041213586634103098280241784254888757362101304246085249416221461492916675035045631552362270298507530563902250107904373750592455729364566644959224412087672929686867009988412348610182177765433285635127128893380068472734413127002945819166310421860612731446364181235358260808143651834362852552433619170396338906729267815826710323947390282492589961440127872956506795624174494967743779460170442610708074923741358879804082959447173873522213556168385139759668706146144688560573323880350657499027793709501405479310940745122684092127890054052198740338997629191774007348941156118205930701982198241023765545321958691782317326027645295463502375769961616614977988848071904887068353202605904259323948145378205381635352818061164004538297224729632813336447817871422806244090971119409351957844164628560963764486363017382823017359937153203490944942895830910769411448771062562793210694153120591843025422921818007745455059628926982768942543789318518403409666045474042630153242504202162350841519414905641363904974423316434435088111313396329406360749213994828102770987452363444256719994985520331756494915380657059824747610507849401919298080174146912655662834930351156506774781056609570329301716510276774783707635388939605056272070414574203126162831783803324838388896549184386421906377805137518774928554011483185025630575935498593521682374564200367257323543094706871103247476342109143498578489655888982623653281434224177358060350817438124441195020513326069320218534831512864034556270916086699423287840745721721701298484579982537360917789898696279898685649323000149076587568702863190027097196892837179161918902475115247720825163340778736208412838323294808798172645738020803552500323693720320849276057778094133617044748553729763761583837160950364360977791672243589354599017071946580268756980667783132366291656462381682528202103272995248226096942694280884527680238927227801819196579709366860534653731911557652735005246394287257279763047636010298026383571722667689369754342742664668777873598968026149763589118929530539632756550679720387156812687962120587408592937423422998801554460173184745107263910841667689307000500105435123482735652960999274528042025184369773118827282121824036273635809939947160630484737029306902414290665185977402173496004533514526658481835258058054244372265248392209828876999561872267092296643857687197655114296956767653793680218576162628168176277948557488091766274727336080839411132030826772025421819504798791316853663524203891797597658720706544379193080006206168277516816192966904380321908729857725609272057494317441360898655715298823143559905613006586507686572608503057816961280296947702136480315621727363430152377191050354523122354482485892082292764092044441054985042478042074800189335820918088610716562359566276786700058043870801388624971838720888135291810244649213674251851521171217966611782935470139539666972352872485448171434472871147931308379618734161521896869248491385985064342819855030614714873612987283668038432348931846250100855211640211732295417410365874051871305129349334398194463429493908709150461325403231129452136919753394614038424622894892343664736723007030149757248386907358918441239169696442005480180660961808432377307335500055838023537870432194595370029679983625528447891855935693953259009644924685356201696587051364519474365801511125572744693180889487606278546277617689897151080948218680212692200256110623681427231951652181963331904388197401354136821409787735358214559823773061912652419472306683095825854760233523585872869722947616186648568320459764059379536862637639368104250431532662081521453784020336783243307060911119782416580380451130057581235908887475293223228587074093573037033863313544159385817821436347698402906403024363797936804944111251020786631983410402657165024199956469788965372032393679208340021926795320786088671805120924909732382964620595239920480343254952499160147358226770188010867834330933169658388119755136028306013656324920867183132426584147796921480334334024966745334795718466401989439096362930459253742208815259640214037918582143284160283072372314684862501827841541757538498664026443713392992515181411788667086421131299335812119227726711124356439291307176458527034550249512885393267888696639160252992567630049133480488804451829705778177669514508320609091754598628796300532953698466107365732600229511888170775607431476910629164745906827320328175005897321404365871238285746146713681191085833326266821055225170662077032038357976388923343040357526249172784747006663653069038174648059599438048211622522768929664662114065340819410856593998796057453587921793767768062785030636589585368472583142481896586561455670768289521292431954735998739030376674856006085974925710162990977396940782050501844116820087806140653235659660810504193319065313705555614371745651896527527188859068601290335920237699121329253180187450668171734971907350959087562597098613680458211725645040056760752031915017161423890996208119146734471245783091260098267911126182973874471997414866681531710035159331317311408363887997062519915182154208279883437358719503847628114456806637869261425410610693522030834836985495190051324274057113741369817767305429249988479397989767936185191361683501222733015909244413093385022285174746196379827020666589424713155533728126042267450537168155036284213922352919819208496544533018955272609256961660922592125796945385945465500571119448356555550077637770976372057761286061719031710095936921114504680431026445696036989579419989097010776116214398096663686201873491070309073818782797689654964727237765254164325326791274758925586669251459724107239099364138668666981148825314533473900095712892509054597383617919422064532739813007194845713717619461015084866779835379047322180736237969081820332100694842552925126879321207247422953017544948312921732277201289053460479196028857664592876977069205770694590288867037153409633091819708710945529621363010911487058321797719835189393185102079489209124850368530379675891226514840281843726450786741280802424487151295706392418973318176100491646110617299673217572632894854662954277092221056025562694223901399275855837279953564659773882543831505103465104386377056211350071284172056579853660579902413758064292075755409868830391606911569253208788952898248914998225075480072419029860145024777655852817544272100682181189957017825342103696119201530244978530442205739664792657021704326544282532610648800064016955829643226265690083405987536133391969185049876751357955907578616706744410978712436730847182527113425728049722351106743136048492386427862395351766957476933489488214574896069200557906503289725438589293578226109444309798021847095391360438268979875251406110497292503284399421392811867155091596893370158581751463070522015531287142162000789356944798735594521152288173202347607740583182932732147793973275272265098393647388124472319865017752391271008123701104647279015427519844814874953648064565546189445027415658346314512609079948527506432990776118165810919158179222873053512280048521561839600430985854311822310379584083687635549820526712293275659899432924838652615790210898504205678691129390923045261838330307781391144455924515518757174227148644422060735128619967867968170057758325397303972900723975430101418322325978877084451946999712728876705874620834003410988156280048032980016970393441649074834055454752274866210687629511946966697709868987811458681527216196980686896847407992537574442863347065467418054210934238813286702609276343678901810093860474628744645848660173747953633412051966434120828571479362028435163669893421316730883966550801408302899402716777351898843938891752259229776197248101416486422530653644628192359960351489233301018848320965719243393273907458789190624630431613700911915845668521083468295791947603564995719994394308768201061735691905328521314055076822096311587430982783276384013313598881635767806648700638985297441969365111244330579217844927336280602302724361584467084638991510248615505630690531455228600844573026232763401225716924222734328775504459044377839064627166926874916227850727863168037028801352309935118723879095588585147319114163792084211927030060322723496901603532659848575067849057857189343126632023029472493018959319628760559220889424106335561504501520257319127004229187577767362890404656444185461155297760217479543206921651581314830095151777585214095070745435794770974361353313067034084978978324139340940447527842973942632090685494839140202947852611563777438473599376518168426026175587464652538450215967524888520093265901890592816703876363930753564395649632613341191437322472883393353397339814752574227480825366797247150052908276220879395407216902808128641474187647562378512099566966029304506180477468727958215402316653513090331322694133318042097952574604814791803776760131015624285597780817342146402772177421306240311627326865934798825546759984101686423627984255746159730857606536696773946198763105322334648349480906630856870324862013042092136722237635430962822290000963390415655695352962529867033794485587216600870883268759109513179996777302471491782244240486004675392996516643342426898258231304289363233186096508796801099438251612672964246305497905602877491152976353591491797413736989180518402127653338556398287183673556402910398387593559501339313973828612499754578220792607162728211133955576021215832198865085232456992427686140062983085687927793878076395581017816371107224460580791349139794427530479094102700786578772794032684328523789355848706980643921405663661443770714221010129073168383862996120247739547522870092414070736946045702149881911300331517031017438721728165000874233655703754074696824728543005669783836381725761340637288074615616134213431695462863915666324289379441237433705781967405885865414315451797226474748172741809903033893257528086339251533955905560682713137766570958415774589360725917916866479638306313564378836675875528298573714501223679745509788646490389181671750354239952373794341853162727758265630388175198147995859861837425604928335662658982270449342352223461324175048364876149038436393575470762921778790281971778286102201042403527560207610277651397857719321347349185365989044796051443635179381585272810271748167842693784188000086718741108583473123056500761287613772511553092418177214829587759747894478491702846768174872851271466727982412993127144992079318147158179050479595481233997701959110460390185961416856596783092410620369379094107793197530031470148819667744281575693538292350951070908088462949307922876629013441030468642578610413756272545587113974180005236160746203106243636906689918037220952717337813042992536541818542083637914678000079918180687286010837281389001384544737995550598473166173466098353072644539121628175384606845241476578446412749970198902617324220857638093883561860457838120273677701092514000325163307453214617266138617491896320124148813893094747334085190189249988430992515494945218803806226012880715198967446379722345855743184256828067755085825053313916981829013713931012888333441723039782175111128314627625252206122821800270157592307976389614902702988992400426653843955516809958119360270840799974807335605817047159038969423470419619428703597387624550607604604816368942158268809533747370844729151953555823409670379836418054250993435791813975746170288775013994781457167514867290957985219828369914876653763255808486717882672999812243186547980908119702574997860814479505666173975446270476227275771889403085570788269400184073287620064899476546267731375294137400810690087737898140416583031302087346276031777692748707214158493446093057384511075999751646074701072818692667494156055094470332486244193532219932812128062212698154001736779147868555864489851582737442266789583969569030594827318850426490833309791193788062639611586804140832785493148506531487401577391823880816625371057220905239138223598348636020289568480921475608644416685850014146104158453550503757144931370042467369576577288374951367332691577566560348906997416216437981644437171632260809199829654376374460342544112143527858907162019607560246669645577175970221965592447880074943648632856110286430966549740575725261290566363478397162544274316330062221420876118822084218191882002623565831550851507484468295208821455944292803574535274649071602081831219050801061107291858985914347085229556957335220090925070125098049558461819574239606750404793955040881787117485879957531971646193542990035629835355497307081504840376599967022346268204295077391106713115376576628774098440640680619550162832439037001034135940756306476636321228845110284438759261711496845324579886859519315748729398535060863176804544401577053604338120537439981790240128083358413418156716595931375494008463725863960478360130448172546768462787330524773754054033101214140964719212020030649507224587818388794363233085037281576483201465703452333880662236219880360804227836318208261656812924051876511264851848238839763816121457971420241322549132770968185179406657138180274259910331461174822124381509539887241764649356876943654939642623704153682122752243068737505721204751856194837530527739519258701886166239723416513099592192181296504253402090400676052887297338974358680289391576422808730593297530558251145902855711602276903216532241738861231711726592245007546198175407540334504940131576101403737677971998381826818469372300672571150342186952644374204318442672373291782404365090784009348627501365406328995082116943578546202277526560578813925783925466643951384735667516676310337697480154010208337330541464022353916706588357109566982297710393472552246572150487295228636504940575199660627705611353958283944502789413119961295444289987900683307497070955696631653730255021762028268369600908140059365183538436097684731119035289129695293937894432582792691187281125750673864703302261467498214643855387331682398987480938158614233429862470968514717874396795721471337173283842871490595300237504628330406519216283515028752878923121830414656968107467598826756309672324250477212488202923639570810249483139655209514537134539441638093908249788742182197838957426429541730579099967733775827616033637631331320827657464184704056554994782414055118051962171586806007644282618602789746443258203793341854124061809007153818502478155226984597976588417707109174059252127228600079335553475808946180157608559086268295059926138623809030643560048665972166740706188325611329761651903265378748466047114299992231914835670324408089796169978242563671926871558187905875089555266837294009582001260469806051241418892163344185074424887922699613743720259741082685789566483382602661032975334648235599803622611590651040746247154393186933286164452803888098584505617320402517020889968148558622109140444056708686358913703095287497917628730393881789803978549383232503157024032785902258370406201401804309099303514648941218065870325531790450614385360270729916437553861501322739076279309389688133851509413608119086012132884346734105889753088982147524887809891566610061244587149853843043989078854061605725267233897726210436935079833325310814715125612981372849639076828908618799535909438588683270283472143742721398980988085138454506344366742305275757051890622945276407673725022181357416786500192264095229187825004018159287199173912200832948632291338977014282576244089183178380437479649090981344933359644605510353827246521340323274592863793208243253127079803261556657501103676325084173075884346478386486116083794028317955142291950920462471011624291744126955318344427433534853222236892033099436369109948593499776091763524734456456410056412757305107843181851041909596622359189619883827455774323787590706738252873273032021581123123823726693939582508287525717051406239872765557334305514772060936640174451859337459321076481583499493460040319211932769070029857014347858731701115560273923416317968037771593825140829825574064839202906662518275546050104377907739125817908281500469288180099868031295102997296741757400960431314604235946585683247705110022461862660581899481640135661424502756684264666133005282387602763701532101778401632692021069297481050587205968732138804949350625668617094904414113746538460840916563577283328163136969667456045311729819156340301103170628727050087715000357780114167088176078654799097193054839132238760925677174910300525611789822848225780751497885271422493137218046795117301103348649743084601650950942671117697786682128572293524638999391999175560050541062047118571666157121955096975950580604283007802992200419541560242321264705751274326711289470708720756891923891051857218587037661915185249825537142548036261734027896631672661360965993097667971150388468638381545279685592344220251995700974865865547622795447240061892677441334199439371670906844750533997769806594331888961979743771383802960269488685605405098101624204980532409965031051826833270393234857937893482961638783676511199235523656952549212102864667502158167419336919571569327448612217744804343892809897148278049705038365531405332610824690899412095189092826804171293314586831520176699159040601553528704791130124572453025597729093961623026049100633880230247861622513794878403976568916577238863234064406251622610814940847303123755870347245572170442095774884578726439255662494819194482491660257560648658588847665413043577852321347168343749394050359445285371010712284950015636710587853757650404716974499209416683634400590509444389009637988564021072352416331249330147566040856021828620497362951255999209805729141114432881792173834859367175024984162867221101699601207027804550894547259610952725719739411226926607235705271928901124419339335530440403913780289454503076236167695890866143045785767879861813290063056172354864625656419608060238575408546589651247739192896086780123736639223170928687195969194412228297175006372792649709423848378962523747263293670744640768843053472929134966035975174258595970346201885295076355941095579126165392980930510771145565329137286916268605192066264671402129185869207941142469580116719801348868497036323345371643432665204728614528250130047281171295369136225120487853935138598452552560061354081925768479424186050577063472680310050726056725398594739431091658842725656931476160810105447000214939787354835231840467354547924136827989439146444349354509760819174677403539627985370220314290160053169982993772878996241810777236971080058135949993256932790882229532507163767594913269697496254909804167913192935906176511669509267767079933068232825886794869468464179763043795509061460077090387642987192931041014542830865093192190390713012707840042066443448079299939147448898733519633079934576671405463323572679887788732606637735091829700243000756855116826091955467380740004167977817527230625238202726533642861241974424011615494324300908158990709020353783028292366152661884583269778299127681000663831620870938639218899296855072778309752339934682131113321145992765025859891557819694122642796796578098691122375925959207781970187775446956067016936765327438655811249676240274258085685453636885546780681053001872710740179766041478079143555484870126174185472935689205404598671996154792394678739913330954197214423782569462526886516440313177405366356635300776311092618499714154699796877363664437949279113078734792413521922348828661518433612484217136061006163590559853237326340535049838398622629935508667627059436014415857962208760820196356913467703637350028163941890037331244621822242694840893904412352860754844817908026169180428969446966725307565756783975074863369974140109865071766582176979055207780759605309465005266655609197591414313639974497570629697622901663333515070164497494528884840914339464220083907711707311132979131833673327456240428066398152784192116959859488578217580491901784472809852428335389596010390539555732791896799186081004726906956764441623113733467475332965196293707599086361553226330052847028877993822747109808600048957197028354211194530287216280580291759755715739281281091567238047513631305428824167602878385240874849364670287795157170553763788622998952850438570891808490765124218599290403693894248081805997673350957932508636633183413256150664769350812701379806717830003430258047935671869216120472857551709512138434705329351157683627437917567581377001515804726338732763797477649993772337836130716605049701133484943434278207629210469888096118346258483917684386957189582240255711050254863678857870716424194495235920957356823998249862552954845458988919986046535054895656742497544934305397899219908722420943804028597272553518495920344022812924573481329117652036678205036103353013852229716562951103925943949933940457864464845496611101012896659597659635302282252027935164249495811336526685567813751319773935324880843170139677907911038773398940873245122930585514965038405237298519463584210346998355074606706390920231530827828822457877009134319113469354449916267483889306683581317843119378580481170794071689545140492329013020740957492085086128008886686472093176681239502595977690522193141756039458894381880313181135659368797293102707410008485005248280341983560422996978634697063390978109600238196841582872795411140212312601763619127439021633780761998999778194209479446019739245237875112176990479847155052928184340637740846064012729621204506034266206537947326261112623849543098141501929330673000781437705805414577555126539812073167622122061559320631812387670462213411063655828099630015599883516365672705601931410186256920816861235003513153129484695353407132957064034952378689244518228740095188265995219567524615705294837863548076519734300375659224010553926700260744930977350398456712637502514683211958459747576343463501483823601660113809952906838671492354754970912801991051183165125500183067505769548645317031355887537217294195528898397921123690749372327678352663886799223956033442585026198776099803369556119742683819022634618357762015479502531085906057176598499178083816151626307820902917053940240834491559691715727081010774734033317844479209541842040848651315609367139464667149000813556471448842201989964576652466603325448708286291661750080757429306478897532555282290605784548340565937229762837263603488781513064046171136556985827593600631066752258420160002726889750770560779489076261218649228366704091517079636607047848429270349980948766728268370623982148111809863471227932613353395060075074938062996410031993772173507536518192658755306656959555008159321683755808193811491094036949726530027756903626316601243954165189559918826236591148178700087107060121965034012405424974901617324587778561742643118894481480179108693963790431741480683527371633206943010901810713760823340546779133195385998969359376851577708365690600205723510041776705260417908125857137809705177239897125844891406862177947896241082771450266203707712662061362125246784572239527836893195803708095132202103196546524515022071947519010896775236529288838191522691333543288045283762132260872423791829102003664635947850760748885105515547813380625096714529169578706046617684348685663774809602636121665536644625988905934735269418317470723577919688101695675084719114144300659286727821637420612688515667912577840160419035563088745674086909235235609177532665356558673729010005677072307278112323734083529773445422806811485466455566843487363471138546898026209733861189089445000943545269025931203494347848600158366303618492008803244009472554284976425418474372682468966105430613168912412257498075120589148967101695123595331653184817115746439363646464202368402349751486126307953427761351204678607058768805919694719157625288222496503505180477151120568049897256599295893251246790101073674462187048525558642470617934135448976589002036721407718360005597466636344182321628294977190765814059730121649513154430790202221200717441476649184540188630252546135660006871473105812169292025172415219762537802681924786090664924845441137379976167089328242533999210880226137593917813380375230171854004087616872007790061271179407237046705223968918742303744208803705526010859704304996177882588854652960159966224005783206753960649681803729507569112650887913331439389354902606701308223294179103599102759655868627435731901296673206067099669722649798509292665550077747576501776930648306192393684760429280354816657170517871449066734377391089823810482991206531796429804854179323089937187181675890747720413524820723031822232132221113935217912559627474813958808974433631127839227572611242298342899993844258299871067440905282749518897292881930131272483061449482711621140093884933690399805976476261740806978635418958251917983830321862979046631942671742620329556819666756874517547848398030356146259544891943751460653643224641805720411810091753999382494632280325739305381593963278889189072418387971216070184548324509728279133435588546742203277663943996253782523653561978667988155241347615483375420277892580110365191937193231107888353407892270278950569007379732912115340125083967503296991457416931866252792511842936604361347130094870889931869964558649543280951878030384633797395611921256021273656885496650545932006201392715024292539797140526242940251360236676288461236045747198332073922501477712879417021348132855932810686832915654758975639100065665226107142145349678093183922853080113019608176678949245880786128444812213716425181928790917693796117626536615510266971560807424655340901396193460778682204315996917095621182940239194707601492064205519480538126683604162190436576603006295640910493655642417299783669223198764636176954454511567683470508906300571784334537355731757177751007776705191853684507748883216443506571616568929326410545433452382680936312146219691558749913336815643991716591175501435817907763067026082758217307629879813611517335124482031513423645137755937430564227405482658049791057413055559893812959480700004257289445888809471378661919325079870899518613296813263396970374723374481733789940050652147558576091323607042517966290626198864565121659901570288176600130339292308981667370017158761965957220211467886475106945188595407292761780355681615474056508942751805294023654709357439792405823092106993561965872812319304050969019894844773408780288152030358779874143571794445387320411721997113573419010606840551717897881909921712857599055543029221106594695701634614499406476257614486125881938985907485660449620855300847303632468944103127586610475694531463496649825489071583092542683259485085978336923304519598492462314113215722634106229292732270765478825642619634384676501621511472424498799244587656437489027768257056299520912893393127819120869243398523659866139768987353845640234784587701815425179431124622705287615829322375943350748385633227780024864428148868737374570607750144190388325092788134488545644813195818879065364225012741333011092372866453162248576759648154346743470029940263675703874328069171342927171645388624882819234229444782802521948132445236766698785969691795177402724002811813981007085084428034897040743805903666459384636412963804244231869716183171373863600095083867348837261705362168478116269314440357226385449735427526317552067345612186325216074327971515713215259664392761181522438538286240008202445018622588833787899955884050285148522046058490178061028274480092988917150300932116303806350471325110622885984299882076666946144108827043757084504632686150934191718729731431265036980338745248612619040713830781694995832130080534075056426555285888548268966063279934128773965774011235164115901058753693467390334507145982950343191380346901191715146045484629927332107761511524544745990780362741991982437938031159460950578934619309933161580723620444610305794142472563611728297041069485411995364576576784360755606139876208889086590536039713828236868119280073551481714269639957863779176237284664744646678756285629250975695096317723714813895453345289938023709707262486073678478757617620812416900101931958286035760427237891766540025002813506948285598126895303814964394087031540886004391088196272813186916086548212705936567589592974922723301972285165454612570754208988650325880803548463521312405615871901829575532557637313844090485278593344358450052181391516199862113038102982065979196829098700904576806010142362746061126686576399514502118839093771588502825532848508011392605295143491961954541597870310079883751387352662564505354166130467003487799691173599843765986629062332741834407164680170963783111247737590295488451656222756774947063295554544035386047191551200963692650396387829448782821706499672043584698453981443755075300722901539323472740090781305798911252430482681751941591353043979654002126803200859156075384840807778509579904042126980799271607150911380911744239620936412745867169411940532331804498858152249484137986588609179737275697308181195156142304804474187193804017118990379189281049281794266264128259152270995284597381979470544222470371677043723278063302139596979431545859268543598418941023834492982445307065072435331490678589796285738860109180853305439895243270446761823856560658384504079814863962155548806532234504533983812600584479387457843315809891431567216621998999270942334616880219654525152941208699984177918035834162723540736866523454351060691821007277752711883787312113071859347733936714672496857908663613907763517997161798845062289151646038101057367761748042498012994750336200980121643751608651408886216079775162448269315245330977632253180089966763722183917188606729803629030169901551331034294654832336688387404605004954917481280580234212610905348674457068580673035787043861081495247169771798610888413061526225490235424458783617577650182481476102679542893109902369590811665963510963059253411274270506334083693886723760599356846554530940584326172298631429709928475331267849366613736443534036001240486868226702903710796567764558426497733494012248020619550218000958908189641593889869383068511489037329640893237106581843005254660257840308869840827057608529170616824454889288631435510357675884860611789378050753455242371966997120017127707318577049759236645747579829441871696558644065252643129077141460147586648274708116658321170709287810858926075472381829455517644519800346155112667597495500086140745465848627985614911167597011673652918090625569062577522051078039767286450738931743566011592359201103985930893177049065357054912299044897237422903272288392279751538213626653890670312520756438989604102395464278971634388604574157975051893296994281771054623407455987386917824834265203442936369589393936763290386262924526842461624444054465842934711342146513886768097099134155262144752717807386158180440529540967178280257691901946817658527966119825526021115830905030052734293826246058011662521548017370436200491526777241909180499556654236584531488472635251411193918226728938061035077570034454690497969140024051865054454433677026303547556867453802921381483194104889365441043810178312766868566797169241311246355481419587960805503186044062973378345596051599773305671762163805376786545124948215875580326939850872420980824640972401312591606912564199491938871256771923853492375779173539217682591006681842910145976269837070209319974337956796964789800862936080040278616168746450271208681110275644641332872719123279896276767745970989769918451142356729234784591315388906403815309510526470523559431723639008188744793800755544033624204690473873233730795927272725723697730852987240473624173174495741279667853122112448464690998098065303419588469839004898976277484625201929787890843052034814094807770893259151670196440091491542677394564117352288390356555188516362151336150908588270618452417489402146486681874077363238350464361156416511423483789442576315980466378070518074597302422817255581288439949813129302047395393048660813951848669161561730109540498631187192037537749726010463902517725059813401192603696378807895974982962807465910700482960885409787225451163849833925569714692897672539274363331413911502590808671422483207875641388863640741408884818446645350569610927806667500457573451658107636498757148103478159658313002582167610272463502989866927558362856963337636085337228127456035306302963760424327060917611153841829599543970179093148972214501636197983104480228176016485218364019121839615283368757674491321687986055197046040448366517140231538696566156874861373753859439385625963096569148503142892011611988917059033013944150091275233282443575949761694719185595235840884333545807373179543642447039177378802546956462417669806105434336640120351110297038088662812653988246396237282523296123258713872666654392584406253548209457852692076887850846919593876193667248695560932571810245547083790492185253110796743033481892943426447014710877006629448562787925939857245320973163962093849397379632757232775372486861774637318451467655517989548087094716280107879051818740075781974617996859078460881522248257470358361163601612918490552631380793544060672060790847152615497782386563262715911333749057874002985427874450978286173445391301026284483413309397127462363311664145050008208717164795253065383570325321903026761105462429596720775817809645515626921719436500949287927446099516915979452940375678976691806051117348170080031147446802351207222337349732721805490405381347783727947835959559173146598929483939778982764145686223891777716387758299402920367793055725577524111878823295660116692736317269467474020605944454566544952320903875092291008448199466712749387727064308321911733527257709061142679329201103033064435416166478650166736933945104966579861191333150351967877386351967304906180849845939211049878157678465447352092659708876829446608273603056075801951561293408391682561929192324712325824841605475398662507377340812633542911597892903326963844292025747955284546646426382290740654016077784869004022101997375774944985593276560598900361021803963650478971566672711603230447854594130186378023044344574098575763550392026793105330276820294767333105402342340593370534374431017867438028733020180453394196052494154880411790719343610462340494940591810870247379495231644130516125424545468828919701702633025519332889717364121545556875200441656666781662179777913774602538539711217967464044319281666526614290314259354766218705481681474568741843872673275139036223340717734940392940688072007941267397106337418695828506220058296689273585617211755131298978166829430793888971082697842800719512564038583066300299197472095232402374318047743169289699881168214321921279135087391241378282234069970744090144662873197388173093622833343235448593345826108861190007322278421883255562378407386795502393077223760503916733862878461330585990453969563989895034517883730149736049305006784420140116123990631494303961880443316134054960023219755969376098938765222237528287803639132128067910819455129694818737358836490007451202792895547590783838675546508339190808347264865630892719531444043007288252065313504322958012188898105245134472265111575516589189229894584176792206705656065589631882137549792789442138679024189156781494466546074337592870244045150758932558764754048957269817076421786014796580385462833367977202014463182686522439949946409887595149742485586095857168673646575741591400041553915473813331758471554947346889950575696722553237785347844956562320170553611483254185861649893320488129901620410345037446486326778227911920741913527203889263777690000090193351968764956002292136736280176496775572580659136043304408624763893805919629505821025090004734572056677155089746856718843327127219299895609177243899045922343988596797150797166444522572353943481582773352995316747428287694513273884913936134554571270801369400960137403310665643233086724114744029056233755089597095394271568422714513768811409701500501677011385913401642405005407772286544793120330664642922499309773744630928841733602031381139430920508152930231295437075773371135063617773919058369707467414688916166476612522371249371331096098864597962090996707067884403188728555485731396810274722350431119440721780117440195558175963399250979644725569099602598215879037965039034352860397770477231536018519338571375156664984648105362912217768651160096689177088057661915320706332973547721439088501354966258846382995863856153491834202813413790923237896214875933967349596800145799635677193582710825975730442433311657591689126585855410398337773708248161755338346013410847752914483661685370023742242487952753901019461365718666251110394020255197162869067219870346564344787092844290779267051414466181197386680675840538240758500984000900250585290345344202724782298592311298758900945212502115076444718253379371545206164389307707527107301045105328466573836112745128272931302670325585668180025482436924852433641924160100839750233301289900135671104652079570837590981966658497017923159180175210312466060889600991984086237329492301221835255115673441874777460918461791003452979014930203770715287701121820958158483537402296033864055968172184581187487952299401603280164551160861677008254729376144623419522842845723317059710465282882290373750212661005134757394764844903660965652972342243064218994870088941241574834865172791080714923033748387944743728972285343449524341812148714537908741251513373602983477494787419104893276023361437254415079904166969362470438873925950948693617949393888835338353368539513800124759309596930472752477658042650613363133326617020100628971854100499464091749925752082698823122587361427741206349867559143628460982866456005403548936393823836249120951452285849433120532914091618957004957041429421546013858551401286625208247902716298260624893524237589289408864362174617899615949219253469817502856099151664941860214113746452863050776232544859897976387907298875000270031191386052190602598904728906715985213702481691600862133716107112280362890744647544756573295994535911414990729820440785005050641809267799508079139953947291202545161482942368937432273656142269537748689764410969555924178848554374969249552558996654718891236079728743523130293404947428503361521435505732618227227786079977569335294601250142851106847636267967771893622490007662911897159007425840775189067211465977305012493476695625619512327742160686947257636013997659312478841898578644097362288727047380610217370148762711601014770696375616962029770058062972472807040374899043521521045696341646074288742103884669585717579897648910640638199347042500020460196353086416499113596695346793851876309819408818005049801795667984649184595963794750875682508511603768061621898933493535811366961630733723425010821916575646629353598696382758138324158836763045163892925068779458139729835808214834989997772944360402980990774519133455173873535124611901409878363807482490971776082296952121203066902927920302980288414545032610390348032691461700885921929041651381033316614137463040889391444136754247885222240518888820241668898218929338097667315846679896926413171662149828174407567650548968837866022112612637854194693717204411417234793295635221522787723871885646800064669824279715097693124575794459410823273911500402819385397467900813803969506753863424812736094766254227418062938307947754560119116187251523448474943567551790274467007947294924901450199093710795372993946498700466461871520221422618525575169073834494247382026596748634128404200302819246218120760759823173998512146722202345638233509956575237408315976839572735743003427698077686309221099752936105279807155496034432611617067736446552077251241296689063922492430931205326948279596906505906894488951438400216185363140467872356193397870593700366637335929841465869153466974139505934517981113605994997776802747200384167560872351580873610409588535350902758840297850436929460109831153136039393907302597165565773104980749974234129600719653811286910266044079436979451663101749766623656762522087103695431485338912845695348067993885753556773662670913477776731512902860771460330178216233759854409989127738170827213238551318747241021387325868810939558522004548491949352032349401808180334224224644311893798831569783783478842890804450111474332402833948003946726600611658957159811209630090262411036089321898088676803757204137440543941916301584091262300010648778145242505933732869076460855319673067982028690579203271951115540562897502683903497822424104144607612068479398799382211779564733619650088598637599861507118427293314948852232660521937227901259884369630975482200147089968266177853260251998754916694434980729757623116450497208929906645038532259062639183940148371685037841324325636115478967135267598551132633261634442896196998581829047774203351380270137370195409583550839074597868187488102649057006397818957629198550704129427151334867272578600602171306071912383975065417994833330894486410192484467637365867961696070361693725810444660555932653231687779327919735653352650682861081888569901048501923328376569702087196812186958416229787188598364125893685099509577514694807952341761968205598044014664729716408349475577169333661410642585352866865922764662345761723616959152901147963236954311458365376541023668660894888224967735225089975697207803329966408112409401031479694103176524469787338622648146297828937395061792457380945668997852487729727886077745233419238988847667310721654645280161607638906609775600294782155349637465810468688171567760150215279180628549911540503174144534859090838506185932350574478423773161839784500834959668144727031065090187191438817182877898493170287512469435317272223670302107047837730009209541733943925908979164374348355728167084475829425147262826308492080017519110986504868701256263709583166214166472117909035404668790891774070129431063063206823809327254711551267908321075762965407565147181965979118194737364962215866253627378840306501469824776937701726956820386009353720509342651997946955333940511924902920891734397700827911950306563180067850347135675373340319717657625342110285023508370610756097186677502848057794648824025635310748483325982854354671360466060238661664884896250319707248505343104164050791532243140173491157095062256734068052989910322103447094697942455179323003309077332415890446291768669037160519446607769975617531846742450012046047622183656806052876483007885671046679410958244454840283224423425417169779818194367468095924359715531676915407224959213910530453483736321028755655609199150437505101896385763289182166180316480660762073120437298569843470334030431910574341045329801250288323384144625288589734668226339351384135779274537078235294308042424174708731854150759747880865133038572554741870464087695510244275186419853402557548490636440266099972626881795897741634049359087750067199233702484229309331396681512137197657920808097138400201408352326607199887527151195309635999089035105190202762066194809351789060271692573367365306872064738905529734125082523757718444602476712900108726359425454897855398389760889368011631685450685247516104278375266995918966501114760202780587398248388128083047669027779757168283363543781513790926991288543742186680041072249433080165913886894108147183633688987973277895489378516951662386090963101048397602521312997492705917884596259287863224612469020033263372615057102281154988417104349749981639371594348187852757709419189345791395829921203936498556386600805837476578928127676368334715127504030732008761575174441034090814823115697602449985680812451227322659617895072348085522685158379836760046953964403175621323294204805514000785778620223579121705822300461792654678621040225378357540603440999556543908442138474120790293460927028811160697329687626297174104605222626346162845608881948851504782542571720730749294494869623162167958269357945118926580340529026298599617952267086071999121971325843300419115935211580057814914184352467945936810306708011542921643975347369101046791315039199346056885302617079661233585564861528305038348047239868397523022898370929750319413791100190492671701963288801743648536300854944903939475577103615756170665422317523435865718745725143190632117345733920277276698303685189581768879991069675342231878395266408844645476510571841543907347284423488081971232360487881680866408535413997078029428483402601716543269992395875471895286178474242966591040058242733835659046240587814452028083888778119606304481401416010828640187920196247239645693256005858814791905141493546655566896508257146811415120615858639360297004243362767781722531774978296114697850188994238570211438258349018554567214735208604713906255962936612339191924950939943403204139952609764175322023556612191836045505687094222629787480290214100923116668068186254363527786651392631060211894430012430303102572741313273098089648578516794005018921118342916343584795342110922697067170513085956749397690646442484509513107415921775613847306148650571919509221659543380602917289533033231002958670779921455750416384588674014831745181773302635051062277710202526702690172298857370870255153896065943401390162759774861555412830469522273511962912563751481948014187903606605637525702081399033973732391916729496792208940684612222175385903654863153568020909038101610106022758035899958922246957718433692487097675484766189550192829148366545690430597439450783068892270308806637237126200969285583920235213122134359909126159736279242967887691275581587060667509511450059099812797605677562628591483553359322492600248642968264191068247244093806902451100825644544029868579382249286643572269482107891988289968260334865876412810755836340379342971952011376790266721840330292948374550053571295693389237508978382662554668307688255871295657181013725039265286602331261403571776527913638824200234806068056387357261736957976530895773094015353988469658762256873110888312344257548637685482666363639280128437802131389204737465619212896628546835236311210309908774349060000093883405501901363953986158350245437754172291381179967651877378480423342538417580770898759074340293554471967120942531544646683220932913530717853095044874242300005770998459100718356933445956391880333929771094277392844673741395892964959757113623921697722096851525132634915016388736311512001569658802450364387749994447391445694390827044354263029293822238665150150296500834911569592474191491713673125885421762663523702484903948499733006841273436787414891295173305609674092323717245626173794271965319360968235314459655457686928589137934649350889064848883352809949145256621514552989900623605698877614090023366199314010144257735032561304503433688663507875378526407159998660306835032864126951988302005523389768216296524051620332162210512600755325891673033813944859637484986454996020330883214353197374053763481103016924040059056958936553968173016678980084313605940573635106945556358484892186362300069228406542158521909522255154692997284648402238850379943069331685842126454734926654434704206618236268926480010672395362850339043578928163791682152016809565121249985240528920922692845310929361554691897527719272489088380946542087429551809625874186395623209757521916226437355029122719732791822851773631796302999519090801038987341297334785188726138929368696232890317881909740846598399753001369428666484131723114826377661295334468114078637554746962362226390354487252646038909883716725270510349429331067231337606660220730851382366962896620009035324922293993674296130089933828873562329971285087600255644171605168336906887799504527173784836305375557025119173121375595482115581214521781513147062836976585483360721860883583623825609102521600944408283149353039775094458850344988283946943506534209448041757416505872605867111216622923681418982807880599353114953861191816258034517115248897736709932046901829958728042943511999871144720598644746875523497589930405257968864872646484112477190912485336474186136178279718879003622320125617833218615801128786619089850210518988480969856841204229051456535772114085071795934503381365269474735986167745808524750645809523260160278901291759859647473732662471695722725168542519490373588059249699369371059632926872304962207233782711706088303671380399758302559276779442143583254141396738658372880733684084922848269071069890255433122005550073784786339307931663551412852327818264428255929364647441066264805845919973861650733311213264089733579255806933791676697376150368408134798016670132738710033579969793728481898277872607990771288598597189867727981689690064606544471662144261325700135058290541155646327407866986395659617713806725665364093099062783941424295867469305039249986801639651250934763507683941059486204016378210833557022441388818533672302542415698934415621490769027884080467425680006065108018951858409965837086896735708650435292404441223632070773563333407441001088557216389701960753559679699929654842299714695033278920417166140947596022078261205805083181739525863194714095456350601279762465129724383726612565923155331001371918142775947647779229007019065817246899268343736395588032652361909355779349650355435472001796705111181310772851066940824829502833721426278351233740554697284458984570855521115461043370490047378800549060940455256696029875252768254019298667269071168106046760836339068549935574422941181453032737212022432829602405808130073907194807869819963326877847037081504638921673888057343364380066915199610296720540642122538846979102079706960890076092477946089308335538698020951102473596677642231002292368261476956876190871345862144519594972548311778298568787308542554849759498601030375478469945396303194015714033957868214735994099320231313976738917050947490365410111294824128872128378390229874362784705642344658310083368117474030895760694000945871261831840365812333399001948494186812388472522962324562158110569740011970400304649591775389328598319337801818187012048240834651089310823565059105747961479286832155410874870466276663811135052622832932375566663393198513872678145789171322568135180774892080544246202571223291334565691168495854203996926166999187354075477984068890918534489318554261598328749358455841613738652078194662724970491178667940587115359461141635662027443781864474419669721627515157792735852448055964405441323554196150399784173117121122182071275344090110191241349888068088406988329444154788944569861399350814994944340405293868774139030212916122001280958054560073236248737260363645794441416762559663379323776703059841300877547978764374349501589665802545463700432854900918179176646073762953205137571773881114300871837196910499851557470599226153611479068642475137814566648519871249540535044792108952443760667023036374917587030454015439588402726551463351819344965673846708312105053342996797342984539563713186141257935033800253978631784542840710968814215651783340695795042706360233988267918013405102932915165233378374095648435327718202400708459120824614237602650170654052072135188031622966803879991615340508764632946486690941523363278637880280179072718235072435617780311431339159089552545327463034552342353812971276934111623760685509801656731415087708048587864993747618253783208056138383710183658221255801957539164735360874000290220684806678638071465437046980091792622464857035733198389493477131334138086812657494987661513107607045251158703254802444735217312981014479622620521423279125881805881835032005118086911793217075739743944335474632957948136083653093440667689889319056119278369953624622074115887388666368067107103652734858269405266129053433532207339645860814943992328967362053382834147642290629307465933973471401812654705283440638049336906210112394062148443329664257904887359343220523202370592395368464307044795163967788297476102115363895639848537861693463446666283484941219895742827315893742550205028399312578436844580826678998007088883090627433081355542613689048579281525180421921784594547762539569446276986866195006105384229816292755219406315806218378418372245574437235810118686273880855894324266248939434093177409998444140201455639703449446783015994214512199946955003339947484070475238459522099227984450968250192104295153582654585754584447560108779676950177106960750588256548217167513260300091217092386166252495365251209252973176692999560938982916667260575797756199436959683411589968845357273271648371397660312777155198117832716457848178573122042391859434933432592007061357427824775136104375808686844905102117786389104482476868223200727453547577256127947995984521385860007618575109584681091421368639677701661960110557874995887838538628387795726897156155281555201051222065574242603518558767155060037454653789826841468561984714300352127479893233359942211820281503865698946382636341096595017235423668084425735296476186903660121859812736017309908787526421139337575621524514583893553041342313099646067029504870004581478020731234344679394306259667099954846926681202005499320074251855106697182563377717143213056252241800183150188821436202416202562318301879270819294688750123982563805426217983579029719560321356295733526633090895898172632543672440594326138048913826619230612809742571001917793027351502751170584682608074212444128638597080592599966973765508070315871644951932809022354742089980778927536279739199251038056566728983928631500751031079418224518672153319859526698542478553238874404975386489815233853729246853661864498687426156722058249400313598284907221843748004398007054621034206780882478876295645665609086212812307401501681142086588064821260154830042780148432373478462516568826752888493334186493665359377550897576118600205859628072014368019858420498352619988091367007349514225958064742633162834100780162373202743280401040280078910818662951905991480806516544479320182006221723036116990547261348843347857281944357118741264985959466388500548008641690740564753907740116632655875412272786225393354443747403446179694442952471042344177631837903384243160032291932704558532784426791832183211952002387110060298974274037416749813797232248438447059667876272706213195214227324664781796220275889326180617202212058594454927765388001092256816062566138895071259056438975829436070025345434620185326697313933048647692127516670385463010967411343012381129415969063468492053575287189392073297865882326982719141120741967106691155779469228303183881069991504247166545101578871607900837624292768206174343564582131420303349064951774787132794716116756179679789861586015710167257892347993377942984003159600767556334497871464675525031292486964901775130609963878126108126702417406411544552872201628543194756645714287081986673897259373645494290329286091581045849851781642410470456668604175535928674667257033914205311935834431972805951748090669633153431106976903344132291716239588888703294324733624758359036500393465154752006494081260879906816980176592139238947637817444707489775649610340271336005857281162016440684927531924378341679136594883742910691975955195429242679936916138784516469334395131360131176512241064062166803999106215759130652860014605687081221212598062933565387261680761220836250958254370164718617777972414837381101620807514394483540574589288042380979176067827500091375512800710749507394878074419640284788276032946416834987387571780764078923807997590494290156044128379787853149736411855228341058307561835728463591758534574571364279255023386067380824175754296593233607296522541429231999837497154298028244006360732954389143170405552131457184695196703422386651980653111600865245812506095815753095620080434180175208467397131279023871665042298977009621150354492411037068517664183441819141745811154745257242589612280731970043004506444546640657672263163782954803138618160872286178716011088785304972603425968272458686125948544016243793385730184073706314862207331705420129234398829687728333605168105579979407677866839418104418580232113192026745333167578257222599829499892159336394883677273763967967671267321125335445929601543251480279054953890327023096193882974292709952240242684417335800605177159515603516675994532405856440074652141296490847883154666970618459432744953132738115915170928488891272380485112440395942542300956494906355902151110245561055002804876702082492842545858071134847130090002405668176093157979536607627550636405862697608041284095731779770413835631089746198403834900751360125141504266652999394414638212906564712529316886603313653717569796470613744953236628594508765829988313519829428390551490670389126215606790325935563106545594038514033940574688821707854923744670317022142453861210247814865035364372027588341336999204922871188448141035439441636028000588450863521651376010449719810615828456453793044649176452631639588537399180843361142965818725980405843170486140628710367391556801065594812739200601334259355295747106904380494222193714878915260807537644869188170742058288855889419908508793412511921569126084627924724514536126990158147426944595536072536747267616527779373555166386542859537443769483374413495974858171135863359420313044906062479921554649840549748650093582809797408034966618924165045599815722726304724832768074885954121596058957139859892590202521988587314454020612133591519728668675546238406950459861193809226627989057490004409880407844871939787791102241223260484788233918037981220112221163639865375703242657011297409606701827463235944801135693754827456349878370125228540643597462560509383724471491672178042272873287932448829480184612818384886801109592470649885445679816789398151988827046488774143170845847956230274817100340953866063248105283350903933940020421295976567191517482575046794731384131132812710472030160945906979625880147956693819718870328047823513800750419614103651336117361552501021344615527827605615586882356721296393251488309200128923541690551345062173166928593539941301866692336545137277344328338788930308300050008789214512857082767568912311865501552858036544996815946793057929981637294977298196728169147959910887317451471736467108198037987106307338764638586185595736736235352042004202205853245725404467278043787742439336445539133921012740499070641297274590926660653561835502912684556554777681171807581314293458260236038250953003453229796175937987580671744241276956489270693191395445890141125986288825113643469953788344847866497208826155015432082131985572994201066845840389849605804533748356490331513517455552375633982319104027715811922235745172674788448874672375832885419732629638571640965641368256405293210617678058370133706257502764154032413275153056962547585428664046582568688916931671930834127500854698509732178540860905496296160182471499536254667884299234359867301270785398304022739294964415941518473757005868533919701392376369966898202056673996355897081872675040445221503508482165069185704844496832977131093937004689645387644457809367028424579093883125727346067230723259882254589893462505979790386290237175075840032246360628485495500043976989427375425019063201595591792546754513023577345212294176821984216315560620169592812275003121106811129974555742401280967631523694331651026432315200295307645622694309557692381629403216627988548188688274693047971535934147856285436790802802361830650695354402949433234057293531681463755978034893592627330022705893382977937677282631341699786830869225502377533106367125927244523009698784318014467173309062457968442637248150463465365633793543650692766437289319481608503133743592699272761319143925623737757034961131268950723806439656090266281999379023412611857826157117070744491393592571214381486413301054267676219713540316139805038116060701308930469140544479992197043767565615189321487424555923128358080956086821452918835899048100809339096908317119275522426045346458092845759750013240147843581153957945093098759196296438805850725394219013392929693587039197088232913007235749178518631159914726366888608830614154272291286201290269073672671679152054498204192886441908559751773029838788960615510376858510107478477359093203412321648672967029542263798213176073681914855250749392167172160071048421796180096483133367614118454615213006560112633001061698677056707939514685394268463177629834438792110365083862225717332188190040212609207932356026527709415941095107288943303511290371188788515345493193833289672611514111001979038050310950902816281002663582832145020930771825903543276421663588187076447645085428920095619308963359900436645374598629214322059200162016273961509739413813138724619391808370909850720380355766985424070558153464672672696499483730998735592537513042826159793724850409047048476027076799636727553966022430116340252180700691589104704669745385192090309848466990263541611938010087783171159842345911156834158571207574299191974687413119282869448119915009564372233446633718729461758226436015929144846222070822875928934184859767052471424980122337147256122614859548826279888825063104374547000918392455256341094134013379357167620902145354382813414762147684757635274839600836504585186115252605704232273239234993490437563660684385845904852825520616173808374918970894342837715828709925440372119462658279722524900836282433616491576053885697714090753107030685505116431959484185492473933459248971224961536453108988845611584102758057071801544850599301738529586266285330656989251927865849748471695643294992721578886061329480636819789210751220020377098136937314743153238828557453447468201971756206822364970811457370277089026850142523539610384546682948753251432930497229344365794017291791387602239297798962846911492923847577562459464233031016928383284958393759359993569187384748127507387302952136480789020770178105436380888414381527634690942237995155424071073243375926677258110698180217120841632486886249774998568541964556954026135349301328525267984209408355336028097493267030464036359240124722309143473126162868202856286389135785328145115474968207557329275691845862805009712085916622103336561489755025448781160110032294545582090542852646155624721330193461441314993446555044737510046267864234807155975955781441851096707469787269085631538908985691367513070740161049800233147861580347948911055585827539804470539980675405847940969960782459538048797066139070754326451481464804113238687347742822762861756237630998178840563392663553232347928487573789934830836814104640931203875165031923987950950383877683915269495337377843136296555170542701185463883256087744628838642224924432583424734901514704466956625851937084350153772820521673762634773759915585487822496503878544792655801335233028497856522880450956957518140957596617535065667234159987606451507410565139831738863808512696893193216499977284843346239238036023164736097336403205619077758073206723666627090338478562020635574297006894895820635537666929118002471203363307391443136523906512631912088853682865939335401394237355898656122895018008842681593315370153348131391889733572280264565320823943351416371093418813851734168690059503154954126150323264487243802107555426121779162367046553703884139951217778272862778007306307159658534277764124027234536333697438311799049007606316672116130268341706188787744180462440169128364182404140412676160875566840042056730098775971317876945169189682214560217589884459137841314774112013094823958906572946097916990605739672456309769468313165524198179614733698865470978501077257555762275166799487836742120501230754429738306994430208898947825257265134549378037524657772096257426357322584871896699743323033567094113428749452182015707575492416537609387471465764012882373173927282527124612938702013598506964285026635562944496161976294327185249774607529205308904328997945063738726836081817216592431971717143021497751957541603855322265836323922324313226324985946264111629340697616439128953157674142457936256845484484186421254034701230966101402362685079618374561394446770139446516613573888212198201059062336274372198300576146426962971328761133818037676041326953464745202145012780160378982936480350572855610360439712701175009261093715861473324563581685378055567146307691163901736580093279126810778703754042666454193555597978158956989852229749663413576405428681854942235348436755858377571730824360237540052176571148817176357375972072209913525027173971249352157381977838315290982352351760931630753272054542496749231598417896360484227501046678646258046995587144762578128786757942987017551815669877026762730912003946115866519105893578495184478282486865673577086122621759201541858005210900114408691667958587376400510123354853379004828212176455430810059731015280656440058267381693908197229482928422770560027564467540980912273978919511272510673431626517713747521361478491648103575817420762898151929230583214622467326429313146058398026633224440800639474429667496751501699811056683704946495330585220122523193207943268549213889915405585756805972097907475167607932109616028134253266105283871443896843534560449110533670410431417323281019522901250462650386429949600210329454721969006763614847594241998529695453735371373369894140588201541112516479192338613171592080679075428650979845140625283464353623111189666386235133501489791369899715643846510016631711787457541827510292661849210909234342753472144859791564413581169100570807416581382388395467502126227407933720790988991533138827050918757393440225537228140455741264311929490398332978656799837997189568370361615143934589332273862125530674392426301068940704969401744685507531260307560326993690100081201038825690702645674266623153452552556107844437914987265106866020771755092125919753383920386383990403765043779568740902329794044831771578197285512123820408592293768552232887846188892520554865698929742467338182758069743250980898572831735791788739574381684812265802508723640559492134533841965732616031425623443451871613803338126170767533574799673956958610289564811460000958748842172528881245632542190095282732105805957548576663095453252065671276137964030982937437420055152680267747437882753449579927722425848326107712232447529370356584880225213445503397562213578974088731337318046867991533682676862962361362454131063151643165574352443045598574022858247513578064172893609014637779587589863833461397018945413432490825249792654168872841844593590631038300398067282349042902722411149029969439824090409184927705725251952782241623312710573674881997080015142285969049590470735130659724223236518213623272777948885941822164724500350453710727195255049925326961085249896123519313384190900582963153675921373980843366368939822703789984380723687710271318905582833975450537319810103641480883537459291017675154476617698272532097569238951096986188441174306266475221929300619938684352773001275775061505721175965126453321887508431446615425834882016580818448344471546532129450377585002345419170151456233547536174596473986471985866656823590646532643360683725506614952905348045270596605468704809477532275746758908818556032447730687009274451300271276549600529548351032017172844209835260111274016367882719470536920802566481360544317206785722168826728262435195152400781646764798784107286922343708675224568525112680955416591218386462356506119204381995651638751147783466135912899899423573164220531457930935200421609092172898236002420372573319985630960285467445724193228381998331506346539532342247337420439145467964591390421974321042278996083930511418791059631650165172212896471278455722650412443655935278951787517334857735716748269141447503038563892302675899203940035622913542229922979574739130133960207728934762662463791947496170992156868751244595447634169060890074445309486923212872412763123535195674234871566310075713961594024963464963251480037255873358579965742856622839266110281180116967203144400894784352363159419774793244235276406055252325085353952115041475797203769781678946767843555420923144738955371105908257078797351041648505978247829129677742385031295990484565686686001277432103779215406428604475363990422761803416315697059952381830333639800758468405557513219263894988682656390633288584833815716731248580810320717913814941301621650483436141105559696595331759450178374484913294907461617948009075814228064617716488887945099229778810699643570542801988783601036498576146763745136702967296600646135460620814811266394746969485420867198302222656472169816388170918379991982753394634894045347176287167802524293212238451225269878771534232522047420624703809688980154527780397625040187219238497428339195192646151637603728052041753724581162826613103620417865571440136058088717414867085590141262084626203522513674696347126966922701362255985546859158061547496583103527958814018428790215462719847943525817758247984602789732132910982268907311937346593970760751402976655404506088644794485498435401120681709404804217736270378827143246244475314054494099909577166980626973784605878250755164147055206774030532259188317265124642870632659975191919847815622676053304648027770778628715760716491063628836561165811152333231720037141298825939871480212638893374099764296443961405455852500373527510085429846597950217370837614344101407619788734342793889695607146899545183542434008859038658863402220236702696212221238510334389170225551988369458832140260271608395270170666262512235702678657649557814369801377080526044344187594386650287036930468145007838996626843501846269589984189856971721387303075018775139970346420022125294515082660723182245487463457919850935691669342347292955647953426867259711145478077678223188004120497353500692598750784391520376725305958524227170904867646115988032987690493206148800801347845336579199147435949600793513081379721045821117096728878453770648458635843970691510101980504727824104138686910053634085229261971768550259300472734015365495810455287530466145646076075066779444193488146612074214055819946547995809205471637964603459266028427010597097187233601067188289791608685177502700717645654508093835070050111947984597204880300357796361400849983479388806009924525992954533725524856049884640298864662670683484454092775151796277706096716099144923946777521282410215083609122150275491202337416261220995370776729305827340576149959310974538640944498799624999350648092368704891187816403145920129086636454943783916968612740575216834007687181769499902830907660148152457203145786492296698714340937477250275239768635683909004796539442576489818284854193841313922726135176963259715010388386497461139751706772653035960622056098779351226690738739522822838046883638896304014527403003303415216318181255489302356476803538876138996319064167380120042943413036139092463033475468568444390623071549127585182309641207063163496728425645665952863987638880413012481459415709709544889272437088956981094096563029921510457543280982019579164597114979792609372382222635622203825551624381556243547761969234310223972862941244862487578480014307143688352929148968949464714361404762782044872177637770442370579908392459450838720445207956437726555050614263402566354511373653306886719556754238065374947401347953043905112319496897531464413432763525573119832415771551337470835872099956495357653524354280547645522091259924894622769314434311905130411214201741987620135296813020641997795678233330459582311532305088045452354262212468832047247427476651356367683507097077797504111392717399050510989681583854599303064711540349860300600796776785124093660548207712840648683466769380127166985456105713289528108331806027128156716164072131352325373590784321036275772815258468806255326891092753804885878408855999121866346400079000391509558694186483286125071696786639214667658934042303995037109265651743648428391387196807261600497335269844671614132355371977584396763515371110999747980589847405838036479744144430749364065219423321892648388760525744779111743362189194227472876635486311465892754359044593690712417217420047060491744013293328258643613833580981004884276690719677737701865785981393109705546162498056146427209972897298275623965843981238807655263936131692256170554322256115332355626407047705511969894396703886887129126030166153897737528189324538426090615716343992229405229687327243357138417359612959024967293777240554750016037930216185049623432607300320516555327005232224909393263022055408369768954890419746537598546843698890736310612555307202369439250523979312891975935837017737377554250180675223724735643109755522407109697940885142947864096180217247107315803140283508108202492572826835776331529063107482688348451976988245461693955302006254353613027011467725058889022920411426921093607095907008388792388937374192715853095909735884110487357589757527560002143040978544025610260892776527975876574351574822754525670362426394303901530695785082730382004289410909867624819962330482156719624371336239275965286190918147224464135623704320039761058455865021564475266278604926806981217987194696592619262422246610603778773399387794072433187302885985572683366179049055641486092729403988933582198049151869493284011222556502262830544431771605785439046010031766309178957411931659263248730579264699138293192746673190899811261005671393501944219086953167785229813425899746396985325815433831596728860953303082404426477004272143981825012916143630107983316164233634462711816785333276247157833220308148312099040660424526966155860704339750682216667920860397937811056417656183204561288264021925611380859836157212650461888344286432921998264419279063415826605853193671046490991646475855893781082732602256999080108235636349576026413968580033347755441018948673075788235589169032420339040435178475839068176657749489259253371660191163667448016996631616783317325557993708826219359504891714842290538165727111690433240759943447541353478846072307105932685845686230633014799741000577250072130428737275089020588140246107692453078526031766786906702323947975036677857340151082163010682691859825597441105737151501796125851099101614549081353489501268989675007249220528653896698572588464198741605563802137467396392262039055309238476222284883156674996657214994054168735595537127928028720198289953405757497525621357007623519075286022628995480838062267651138254254444120606138415796897002281145875863832419284802350096754720605058200105241024206916625485104266140680425637996024328076378588379123893125825487099277093939789685543722303987362794648299736087946933199629002537709667060065866691223669172400656043327163951748038937232260442094227608780727789838696138202485185570196418760629658719421311860379064542629082182548297155853021762488258495806176248534961628267308819885530025297192809576965423462360998988499562559747803411044519638964714815051829991248430183351177309361958135923193561464641244384568987415103235132101174867792955306784301779451155977785414902388526094186034656426412291852274211951651862492201388764495171101917157747246297151237393428971313416543856384670179036490733073160995150175647864874132302799327344101698974286733204906215592641137789926877418232626548800816655995315920915555892104494804044444023997247520410773861252652550762223128535825106558222937245339167392728390036486035961253024611943726706905546755610274802287227368875392057991315738766631902488958390216111145876925938943068232675444327181169014560841962141118065230896523680271586732454098562763978731158549419219996979781988233520645412441340628780059026956707542845598632519316657828175349342725531083576059618462243527197530859985716952614005759529340343190799725559179705383493871673150017840068341023903651687769639854983025166186854156827913874772724827478275039349376605373923061371223727374552521342993134243173209207880272551610705333909838378905362628889436763404244654772762622692971290892396294148015978732116447638663890558163736017814284908937945595655355822535737781301441940171374484741659985190563699007371729432812379078616095247304668946025092094052569325670117750221909420419541105520304297079998903695419908123940445445630128281237191111666929559041905429496760763969894326621365197888536110803767366628246612332779231964400575118709131634882651158084430089060485490504879162414971444221837058999846544462416225218986037613754360971047857808263617350639187062924190423971056616723271047831139066936520995972759371768199128390767151508463007659439485411259451811148100034341865575432118339047662483218384328699791267607471907062083796483569481156700817106882121545181148895746017881909650265173362211844165093550503707394434697677035513633501239386575271365714813005843230184610585178071917700190431198513683178200858726066020206512362178699671671822792472272683657928650351597728530665091187423673107872385826709449215552534531360900899042598691421960743692197977652806265881660337420890256635463011568625566438018173352845574871818727706676140168789356263101911992643095055259403127651473587957567212703207755365577624557806609258723465357774054721071786516254872437363771072729349083619707979137160745471041434980803563349726085669575071975220861469981246536881401203514843040031747011098916887034887234348482263562011494419656313416736138651372288789390273213237029212271532611662880243904706506019380432542918383441475049898727292887330718504051723242245541413668594042420344061759427391995734164943509208528316889899071677632718958211582720517402630918519707575188153604710786144511329604056709086526546861758448514619204055869035042233208865356704575237685688836095602620643310771548324741772670836066498991301600571133805233242831955380458681749913052030621313305869231189196883287618918735622854960225246073030079191209200993771209980898142496252549762868093725934142469780648645387084607389337036816230729898612676609039298894486485015414157401395478922072335130088957075771798652528338333670004834918508601525194155091184378548685545576227639077870731954717762804850018893628750785157335068124477295646851717534604252222413829754461085713117357487922424806210648373283622121418439376011222607011497408373787767874647013661380272108643897695099152997767670977393908274250851179390270988276338327538380378205586461857057360745342159412443146819742816920494057121194695781099166104926737394677544432148389753319595725635691550148344045888436004039196295468059704352228932017789774872682293965496110655105320184858563802015365066678339922576655902100041143738721459880832551875980971452885403950099754477036551821190823910845380909569695320820250586871069454222144213210117217163521444285414678953401672570019077278921922276557870492302844793702590140559731286241400661445492646712791753446506157234253405723391292291394661521214665018096595948854068278637297267117471457005667537448189378301366323781308872542013140312624518367677175333178441209028920633996375316684722389209984266650461061576372884805565191255078442078638425854302081225343650145379766224224783680022692858458576536197006611282923286487175652366710569572064332635106012226555588616339245479288965943073335444401439781982666233675140375100701412513763539632729141122343594086780057589200979556400030451705293044474065480800500933270547238274535107095692529457923152378797652563233436418648522816353575494263741749183587470403299919788469458502739060048419471557719417456488528457695286786697259797858162858136872960958512966719569584780587115036511046131449266409613208915180587141921929642931707098762193314996552009827416552167892203236755927842127921881505445159668180186542964472196089793962530343677041626971219565719487993842987699857966903148946648247893641207673323106238748907607762701150110021529189048141174201438852358914609385656535023146420504509535440877175709316537331224954990450973747288095579201601289820268871584903371589147460713919992275360783478173087923699325010919918362247258683171612527397240795379887102953580155049480637948247983129625997641654729686551782298462362343428119879365049748203567626697158626494398309679679569961377944304451907428754534497010290987025917263956615084977177991958080321889301798094903286080314089255563923819696306923571064472079084079588161231232560753866892649079916888195256116769916205637424056963205243547444189456401300248057064349206624149846584893009281529956785783189512080417725415963857632906813478366297719738045842386139781730413185717945159362775064780679199979621277924554539533727490973910686625852174316584653201033548710136066198788592381312329560689207986330282320575062943542617952523434066690338239254440904728215996718109400178347462464033540791316327986190495453279191178887220547028624622895719538176008980342448951632545970099078050253687148197200652318368929155119301980434626142710318414972127918828426564140850086420424321898662658263892314225832537077561220500789791047188545423902716159264170372005265952652905073671669473563323947552112878927425367330714918451479274897372962017829088199630832553040581945458374352949647044692905272824371838953407071733913560536219041685991221961722144537849987306403013353693276937046662241501922939356080759481576889783503035595780931506976573538896421028984778994045965160239319166107750925725782193404721099359311888562992515899418758704396779202938501782276496893785469964319679780917474425331425965688693054434207216743259467058646479972194016732618897462341276913288786993296759042910174703863453356459997264929919835446345569943374426380135877091593428706506371100127765071128384097660990421993870028608770545353467543625473955541958123441289903962850698531498717038320288702999305886128730647389575071448954407236568149824437919626129355802519893364299981901151605107822279743254356507364180678758965602327497271062891774856957705099172690521868391660887208641195292500860953983152552503181463667065861829646243408606326264322963839451361349208333757145975447625448517136646190038638803995679227258441835107581506220989534594918950420200910567086927024596492343662738552436345789985032734932100125448365120741755759075066938874186180211936282717471578507609115403067265793404176694193764998619265972046037124975820268574288039264100748499271212279315485612922161966678617798115062634832314918317747106229404732652991641213615805773500782153966091399727525898926035307648491236762732393750141081199172807578127004891654434238479299140274417988240655439319242063308022099776199461886826655680290365175918087670102224720855559629263945964801446242728117817528739449030340782816298054918410912845011728383944405926573348881078020195006814978482346789501899743806137570575448468433464029522086673069053200688799632049998731864912960591506750126452226625277948334448106934287257822805101750807744639251815993266211837073613211504846658196760418249585770118611154870108726057286935639785626916468674222830557088812717101017907368894247446855254083509286370206418668025563004215533937860434498566962552819648963042515509556384565108206164276333950858843567051521306729906237501714792730761114913742393319273402937175123363980682644833981353610369066679879919084846415334993698381335491926756976599418508333964363707419083677964049062020750883505983277716721756494308040303583382547786086813143478460062951049038453418987460290268649405546021520106565368810133841856433026398389806500798995317759883306337755558582992624039875563344388152228496842578462649100150059182481420940929233285969293208692821867948394101521573974868561927517265845826529148704962013447224456702484667899498270037552272867856107582582575644940939906917230921095612396307890460257165185522778525486656217943634613582466965849823864025121656061306993587336658246750890349729129669581421928602940130778743149396982959766957766210247009670264187667299752698971344940291125509255530827167267882556839878019513642384641892320533686333551001553142483278762420920798012472668976918576916090516379818358701856928430851801184782885119449634485754643437934856272412649911668579989343740917449985441497577388646293298110311255275464802227425841239833520840100310564685227836493095656699290439688980338511120090156985692231794813204676032224310552216147703504644260055386773268347372344635256377653132094832517284010660199836420301318630408219916205478577487052058516250927701104832127102193328512008810313261779090692679115980674046245779970172271849541352327784935308178905655459319633943808611688060243609600315724382378088582296030251342922964458279962223757612964093100807915343591938485173904456907556254334336535387455656338710346694255836301688642749504410930092148894460953548575001142768377643797120021483772691162418225825612246019740617621840081206198352628844278720230211758589193352926662415907088167281401408372326304464414439361311854905749002899412925870983852776820459766031150634826148327423036220909680729026736919405695996194650976896802076004653629920305259578323788052768951290740855003626182813140905076916748645084690839133191507033269717260843661082534611971326276062681691846406401419806024585038621807678870133214664882291146707012826689278826746098068988076080330227997436254063945444909184656414935646499897813635370572270548880918333087522906646517312045062194476580470906877406345886454740948992692235446902506839969952345633670475704665493035036900567168250244918872480487639267846764075234497236966697237615002235715606858457716137490379155892832930842443501796540854813694426626492036165638835130125112638205964692735637975060322789471528518151191766984306819595885062115478860175296491145659090221499955246784231739333282957137412505005932872622014347053381584382801550024350818164930279183714929428209942595887363437931589995237247558016322944437762170096592054395077847971807658179794445730107499138007986130471580049754404029259038644786379016506030483486408023262256233928371164178210244662977355907616021419172703688153950260451975783489359792323042221363056676612137357239181748881720108959164630027443612248546634064669065449343169000225342605889087692597814575015271502544816088733545263426499313814957431158571896180339498605962407060543109719064985552975348214947354117451803055249164186088895231973960854227389370735847990538569914707745587053107545293957037588685448655211614836031679946234008140588617284088142977892052217329647487638971777699550391491754538336850009829244355871967497799519217941389501168597219703292974739248293427539749524226012742761895165578426133516886097826086731040180716221143462032881951200235862493485396425072703035258000885991932772552118219140441360360183705995433119788990928590872186960955502137945502460495856607034017328152607609243833238958198182215152611173771032515911171568550849065878004949291169305074498418198831706184782500406393208838489318877834130751889247888011298733141170234252373158653554534594651630320805001444094385381898300407274078516805621863243911570048871304239915553839306909591320900090681304640874843457949085683008527709114463640274056219936967519632210821676977346442446403605073818640758875126501667835814954648456029776250389538549768678373680299681007296361999461584064897787027255806793865146101955629591190650279026157486524256667650976767851525339201868691802716856901025385402751010103675896561725015935852127013576582828904540352139159180555421086356432578205761243641892183342826497081571732433231206047380726789315109349868688218005446306753702171815446795346645389120209768703831632665059237312854363339636704561798561768525189116509679818201554688654013550407301620327136833480189014475167399261222218942844406861258387672359001716274161921389016182583116693483404893393446821993973077151553156523658086218893692475434132612112774513673488538865601599452788985987918352803415721993018850420340868805020456270766540362997758586033579579029047921365265664704715486833567372570315334294153171906796033966502608773712327552672930468432644281839899484571405735694318155932433305064645382567055686194566071499258821434929216502620601939441604788047763560917384088596838583091903035104369930089776125593972348217800276345896346321776589176283728862315263089303454560959400148004623783336016848042793830709805080871348520815409271897294742710039883319573115588262069293652806224980741948365626887023835239279140006267235609250589776576277087349873140671936297860750202575061906833595458198901362888680915087862541080879815709371815544241564969036174960481162078270070801649701842920728261487526822886642485066189452494740577843219527856860658296769717000401918857776828525611732443349577113725410711814718405124841325891388526665873165421415777649177758297075943663712694536950533374313942201538829897400937496979813490239704678353891375946424835559844252175500717582319455713525798964654422788938833116471532380474222296893466571500866027689360120537340637018596484471990565657831329042331529003570687261093814549780198818799563355633847885893044414941415539810704185881396890102208677895553591753837717097029146920419742945777920184450415775069938084479853821274450474516672346387351096729094633461876202556887128247322815969079135997424963202875951909118654418549060657658788948173996858921126924726954956742414870236880131667804827580803998242779470375999925444803465645399213735589399401568331471143224153087235129963284878773669050143979391402526404637485817202884414360313032157165664633167765072437562850955900631984010161212660609472980444870811525630306529395318561475597760964695663896943176583529258310971679990546234277297206332698529608635787224154219694149396870488146519389073893522116950668624892669765797504339961944947707267529396479161148013923790299998684674567580909119835250416510627178424926487546092605566622261053695391526145193005610205440913787262962453196913496867026993748648170134333199620914600972368536782597787094069520675211278837607563134149958604899460376235840434170319367327221166540138109815323449725103026549054943911107504694798270724639638551612411572819636444085669753067588234514086720151057984660915453931981431472790672149701250165071773448584199404817747199341701794459510913989573066804830528848253770183960832260670829337510209063616426436991377311162375214424385770841001523175482699851703282297448018938600607334900616904121854149853265045108474264991637160118110130131590510756632101145482659603690439701390467711996513136278856393680127458010021037160673988056052198861047210690683898044133845535759175049119803304183544682850980591784582891571641050205140439582294915240831088767510799992673486693318765903031598889217827124879035683397432013695522047188234050998762746386611069517084778809264045027286607290793421282325376525800791565433699423456073100143921014488251296996806233768844667299187095214283550794495221947322675917592632297250995789904595789773634040163025648074328552455379181879572356306622833144672099241057071068115693349496075377604932085868362172448430720587418736950908454190626045458314744877608685164151467727776907656107989811211239974874344779205791407147898479853024529948471427664163033352270858447980306796970316193139412194650210725377372322733278529895619473241626356275871288420575246265911510454234726763276993599084411377783568903109579841122016231039204256818679440704898769451689422196744490233541141683221260721090810471795004485630463780568775434328511352087132380923241420981493554707639711244888203231211459946887712122400980957687073333294488513541984404317843907235817399681394320888652285893498494907881632176049100813372003975650781114089924658340717700306890336146255126476458946462434934731937232513644627825990926241249587180413328731835710153287085057240642487082958341266633525917411082772577342261102295030852208971134390429240611388234168030074410065552132911867779321640726929234404873296671177143582274486855821171091785880730573939243593936316875330650794726018935743698413645374441805091729729604956486898528735246139070988581794374036129734974846961220375399944298299153639355634402946143502662434685941444720128055469420169132375962944125764028147212711129085311777793626030426193297548217813689987287106452465625139093456053565818958934429453566095499407045624890848747969329670070181032008508155312670847482887809515875913409884081111927783050275926359096513446011271423449977710306871301686829793223453823118875284056932078586410215919559523054007631022998466390501958721581645489933039984553788840546906983409843785023201644423292293213142894309937498494514560454881699838885359069267655727728480229102756082718305844646902534275645272033274799350210403475711633367209830586633744008576375512351160804526840167607647445226624492886018703785770584135759307036494252225211962151429222243735983969342524338202563304478230408293276844660157733734426022654903404289117347544166029013401711117118493878823805452401789473646442945408907362348411684391595360587350064524444166973602820299597521066144950501969396537474590779944009025748435561980591259166564713780945626891517999014394437065738207430219349500167526897636152981927700850461667792558172999161837828555898932637501767830387328560308265382040978457644232934000032647188558843015038195611431613051699348011576864379472464174833897211328101072325491686070526892996010712418977517446589121261912419767267498818020602826670710188466134370881576838285829829300943519691568355563086448920017916118516727018926599846552397857960253090274954147605901764347972409978610071932391680300017605989975494521367240773025593173540268631678314533971085118200348983589888529653592828000180100958742724754681411062238175230211158544943976590747050728730690566358829660921222347218674544265538962536764793053765211947066002961411608098452288952289041064356353005900011760332407815586361287845693967919079798824491140951688911898419434396591801913383568405156387801333120585673492883482062845421243379775777476633731639381833828815431338453559554824959800462858126946192791120450918388724492208141044509568120101733147700121690466129285202705236073948000952547110803752360596326192570665939044732288069444363793608601243234945086898281231980101272741481064182004050350560633903922824742191020510422897536646946806493647316232610852708023298299411136579078647151129885087114272822306467234375649480127335026785542907332688483806389840323102227994406622817197425397348306592596494845396524996272784159876647540349775452714867075841974110419854164239877566430352622686480161155377670529485338808572814823964564118580873258035455512708169851887007350144937958863985486642940634399257639535077457927888992841065119655261060263140190803411458319499778614139821166536806251554517327330063549790256794710334555431541511408563704990696125891307832094817990521579775646379947279220927004281941406058121072885450450214761301657185415646750231376874349827917398394047226465111842345658256444458413950565146980796160300039083947261836691766480808061136884191956632157229209561100520554474650977804956453833070935643145630334139747214314263733835712874107998039593731490337001370767032494164617010986044505807786051816266186496449611834831344567859542296807581259296738537267888479996686484426668991159112711903923871330566097729585019219018074084734850706139680049112737717415455417588651250326439961774992322850191579923928843547535108580606416215597945804723627464331002281991353943991001186556723102244317600004046039749131908368976734288878093952457475244075994042840226675471997867737816874042894484475488122844118053676497600216143906647534097016563007488810365688415264321173682086080925904765797295381181984727115174535090030111472352275239005523672458105258927086512575872694685613744054194210207480542701299968518111754522125584244460958869449775009569723368965754353197503365269476322195308369483509744568409437978509653668998433966925840197256214107544213722478226144102883197011724146783270436730955954665188539375519229883349018840946265961708175434257519078608147034548778840145352717481685877945224417743533758809831332334645345206227361058987244047446014630309400369413840229781667866861788067867666267874863970608604240813567276783827067764698834866132528758285866764108660113544030717815711184964836401671732818393383458828260736808989441624948888583791919877178118710547553859173252374113856532441666918972323173961816916980007435383327280619158214530033632472768252349583882877797893141334917520442352685429325525808304518811884909598270940595196234188474492239652904014587507619831924657247082359433664330510654473649803283554150042293621702906649825004539686178000505232686015374501665319488980473102613645203629633596900894695967571038024971499412316228887834161683704312023336428927166515226568047623353858697534638697747870479338082686995022137430716782212337799646895796188624921536731879256116785454300456688765882579131248249941699074952581215527778196351141404523707106748238077787463520817338178494588360933267439925885219068186961134758420725206246697442200442191109726835261048899526828476218418537749832497974753067671472515635424811724049317771925450691256377620194277554653822220743575977762679996322200101498032096494318288796006017610693463127506280827130299475973547650213167067208173845954099990928903619365198058265852137389992314303920491594649507411897945334105617775888610479385922908991172322727816640562487113107847965893124057933089556012623704165120604410547642659602163896661120517909537213683894401822400110433094921395384166867171021119321226347242350770607195620171691374013663042199225707444635712104730913862418865382201927429468200132567940730656677742650418431244317395735033411629566778576114283135046876161380342807540533818192783027909596596051791593172624858513174689684116335118319311912771262192723865146208401812712823141827709655701987842235113430553691769533466563714719279540249054781188071690619190306463855078497298890444748360970299307726341387825189868451460171767443555090468873688589503049130757059418422501851520999704847960681631172548521754192329161758571917225198972856119250403939036539053065964324085100787819553654304363024034106387338137617890611520080690479831495444269726341642745375220425289517599936366732396234405409486958876381408498805751242176907265483104378681860699170827465304074640947372042377465130775984241590150096198824502091356430207326637881268660779307533341029417427059094906807201129942201933760569977871954112611693237008616323262917451848944210633263465545341968758988293005331862837090071305110145848068947342381733544480610669662199719289717709890608965479415164362455448702395609223019943483482860012184313028188033658960479675882394432846090449529901137132784861523467024435715516254269146765767636634825499374346267296576809580132765814290204615311335298378822576324386792222229406729816630463088054070374607121928142350405799302725908532991815029566448712781582029301029917187639680825209793460843212444900578987195562202304131836267807788754374805567148773147908001626721887663335331555722782411502580461402512855909846423991405865351241557378318852329602346204447465513546554340624068698502636565555430480989815623008828559649023705009107291818752793583144199617798593447157543438425675907569900703466175277604771586762841884497949499235384268634121005011190733754634612061122301444270498851051794404015153167814182467327480829873453014929644504876793520766700716975259741505099726823861657024954393397114493893173494368369851545497186259759109776180668569374114917466165870425312761025322472462801429982567986612639618621189995950442334446348552757142474089934746220944223971224520325846268629210103578287929531659417202566577427850235772724210164022692401715278570218172085045671495687727318366754904708071167450678460242172861327008349768466660113740230421458127597764378593833008622879603547011586844128687176915192409153140214571818239121984736715826670783641889479150931630629279179481424044509436915965810255249421377745294521646427952101180653146739915558004966294428464592053193145460287537493198443714530258572649372265070046033747189699800225655925358873304635291888779406919163821492313221506581348962975928856739136314819577505632882778989502083887346341106132486580808071098914992530619591938118636519085137150532574524128615067997282845968896940493220258691153373701669313344759635200127192030651194279349071219582075281690098146560671645098234963955431604724209666851571507142686428079383623791081551438509905401855036357497108568609290875025088618972729196484312675660658146640269917963458086146000413910343379122740535308055793169197487109740226341800074276978057062872070406000964089901981244980877056927709577949206594208698170588170081600798610551960840201557446147919092542701895396511291790251736139990632741298354838038749616189312245275496841647115604350157644191260007191638573542642847032523651517987480716935695332522572501593687560481291894887176417243974618791292735191342395895622942157901095500254344368895020317039615570145092425491300875698935686321556279183066105460733105325800920858710103479293715175215591389708882373878923542555172648506475862687600608863951387940124131498430352978973863692860361969911223064398602488568497826118290871323690121168156547313837835354117086105025218349984549567418766696732918675127184051809310422839513886646261619021912411783920383975061158696154824959464883569847358513425513266691745479267417396816412977596234029488389314867005054509375580507830892853551429537340291043500744426342706642254783306930619306492443848943020803440023935443859190270356943158250544834299396185188468050473324286170955512981053304043016207650757408640731282068946313687914419280179678447691858485175185000519244394256880903049021217423154332130923381288935426899857557148975030767882885674170329260949234718988071587266079922200052684932343475364300108457526793444610858159840634766122085396569155607511059040322261984992126343183540341992236346716229434720441400848811479346325800787765311432087175170096205777894737046226441171200925035679865100674620686190393278160204387753879694117870461519771403797366855595266226149927375955481968933337679284607606279341048817655925882135598505408043369405903276020979659069223003910415256309199228531918452084170496058613591187681714310147117233073623902349416115870543559716294819761099039450878851698684878490142859409438038890014276456093173013500665490927642870842184551573771393461623712310998493348018973050800233560259530910216555727550525895637152717749161739931177715376531584230459077460307979429089860999009863279999919313414067041702518244679056758043585136061611678042574124189082758425062993303712350378090838173009701966559893644583602732495609739108647508325546189265980689691112682942136075969998746412017007324017762275948864441843491265668960921966119855152383501290769542877645360321890989617832123505476505108864823120870722513160522233366667792326990150030560437914669349173176196282690118196843181648715365977012698860228392693405971560874331929547845915953773212994428675686325416315179588688493889371170167279468155380869232257582058908761713239460521217702626294118147220791268628922517848134494265414237134547557309348427846313339409294466035738899133467898657881764956048461179865440245559894208665275073080990684403160093928930487120679873947969076503069398973259778719716036718309041002977967721243506607794400728705131650637782912609098462687306493391348211591738355818726505202484499279308349749784494880369887896762767102870876787180598423481460178094285169367908647775143936216030774531685353215585153072662415802447364778889647978109049083117286126402236290268253731059821535819980511173864346314273392403403215328328662956815801528006075218488620394930255331826443558793097328319448103391745636601238320078827057812690068701914921855085827957094186086327683096702060128364001494764379369091631675479896401708269407977682608038430007200238017025184434000779794525232054179575163595617874238802625412967803985427824989293207828296956657893635787883553969569124191957227921584263464481995717271992709475334794608787170563953119920702097972972037406086631875900056413786629855313664389297845916317314382349334672874537856034854429097320961942130660900115733483026694028789283195641789675343036513393902224757156380059762292160218704118324282242134594423137146490273077669558475043570544433200219853632976727385355659129431275061190733025476857224110719914505149484038449782899476305238644051124670640059600464769546487986594344843855227298070945366049084924538838922172199649123254141877786257726762874925624351897138258002213011611875163778813062510200936117161411214569005984001461614042997898791843193567046482397046242790730951052688572395248025995130847338419358765596301247862005928591963671308877940952122038123603407367304358533332430447167023234536208889831038709270832623883311681811972627056257816953112262318684797699676287735576812023478612505439786794863813567397504101240131230887884285039732832373602151048218541512668417912560329952212517984395507449779332090361682522474043347773378482657120331191291091719595647926558880267555458911496606829306996441189958371125450332556715311190836917160852126419779897907391761300722607692134552483277205278495090966934949039487717596125838162519746272178800443875871250994167851550060784902804601961425793020061991008373293029400364251200070037517515797847164458365600318550408554620895852063480790020808557720494837932454040425236593669655359504272303514052350915472380745567399015532584577275771277438213806643232557420965726782510383143690926000281241546213447933418011098287935873107157550047177939151231401411304133596654003381742551645115350626733977700402674177337601352853865091661469983648488760903410012520402914543932102930916217705227453195125224136601849885518712817841704164935703792947963946023837873972197497723609890725627256412543162117288466305862798407739555581425786002773706875935979577771253281372133563287724637672429423704713467882940082561034917563504889942670413711843712157556906872696207585193557194005715737480320228982803705366454376133755971694813059849489240861534561189633834039230456541997838623711566565628291385363116923883862092276573916021707270444370009388309402983114677081268013252866406833879768626648066425832152498248970564265861901598144939373909635680927218874514990859200051736264916558501239838975835533149524553730897242022767196268699909985691255773360730396827217652303708003435884082965962726902607164743691910413597146040238231172756237703189505397931813187549602279855636385951154310881499848064823385624313781796737922543352337117136249478874520189558309674842481606749042268658872688089184526349718595371455263688848490265754309209102059194152684587742628694610372484133659813768527306481746539421400045801462758878361977591245561780938255961826109068684604323228297199329069105951340092523419086548849202256843170633260649022759392592460738710074264960272128856036699401480194693326835486145051087328732965903159135573731665650807277047234948510354959638706942265276295165451174281145266285407956795183153824329382455544420540510825764903589254371529819098592934374693457340769847569969278824234161308847538099071612707896682040912760107951036919310441360429810680757621106811422649495235730801609421518900905954006932696221764128523127396475355187920092644462659919884154512354383668272138752999959074461372354320457526163503636461024053126484336397230317590933010895097698422618041775707390504089288737334968359835508798741224333068090913529828874344290045759815854425527151302900595463533924939121780041420027625832772360421976338947324674162981663796302384954927686812405151030901625754850234989577160252795275295097804870722632857252739199716748746311912433225166565133399539542548121101293397224247157967985628509878111236875535540299071857423209950116482578507088970323409767837596626482646977605610672016570669381184782142106081418534406970863033994385156934419465250574609375771294309813852852039261029553063662100241958089863661285785352028539984910898066298776820251737315328888768725982575548210933861390149097097772330959329602846901344528707505143691815608055164841139151844640682768184851068449320515623014941385608016818024764319731872252892380837376594749086003286812382104688534554743999173649657081097773317603655605724202683343195192551104016694380778526349405275065862255127931634334053412704516570117017336561127725946691275338997873575204554205098852025858532542920173112545354504824542925045159854255137400889665659630064002101713733063149568797804976362549634347129294920741654442724005291052085128256900404464491651682094672059025658745742134865404816094343261097239304526915021478756128485210375762835453372451091452836288557452508744015883370258786133348609629086473726621673515738052684510060612200940638464787502751259469573219892457379217112591098151441145749756506108822504612973844857968736674029595371085453839431334580879260515731494786140857494493613129809223104557451232631929476394153449851748644664450227361331064306615001117306209494212976240848267290440693860988470208502284799963275842606899528273809452093896397113993899232312478090983832869547835446890477506594870121225998821424336565688394175658645795376171159262281168855461487691355896657641161941685866965630655844997381830776396225753955418610777590780527063448340511591340774049693742561317557700803834333667943669406303268165179914033422176850488400449269771425536946887308419436818810526031840555633732083917330131356627904527220212313720559646822993663649830482702916760215100087716005191358036179363915558643685998603473312949220276223263710441249220422606586319550569279137248097879176542796326704253131637930532445477489743035818629279652928047527574074393152543034995126761286904752038563750698575634470750077188140076202012405315320993522730532588245520704069116222538165129470756917436110085735513685540878600477978894938872286694865849804032003574657198725088312466052652354777754381466233353934096437535614818562708389485838221082413030160093694531231351291965722531844434835210666571561379908830773376027820730451180386318217885345554134120293244904824773500022916444625127232663477530310916273626524520274592631677820183984330326382302706482720663304999601118454160337879401474122792373411874942515966928322654659737712940620516641564064800677086068694243118390889999821106179221668115638709983709129676258849750699696056474461976675160310744844522148998516713502740478389548633316543490507486393945128827842077310253091221647005584622059221222090832967695269895966376968316995414013187316355752586803234111800308506489344329440389606760044453916721192159838621026496066938931641703133409781094012348958503046731150036991433950253234693025228606113654377292909151771877531982792787144307585406911267743508129190845100847650119221693325819765354184572752073253773379575223588142120906879242156738572583536285733832251723984672761968623255588863038426855719972381508222860560355527024018394051967783741898227677768243130997933944068272439727290546427774217754457597434392668293169799281231715029701176266463735085250737957547427467999385674037153992876779756184966315298790520711929831177492812862686416960000128487385786618311575436994311598489015886592998341704411594052022098468884631437564684215443035324123656812692839126165131310053611506406553865210861700944824685549683609224102266101337178780540151462598081430061579803840368678158419804907517933224477974752304120974440308285263907276527516114758132456000209103457248947597957048762799295882542271280608464066453645746202232517247496053779900215555848321375864668124962760117172333595133574960016212587244904297883113160242807336562563392758397193752114068419718267152439481542282955184325028627232843631457332385607223477029700921107764233647495350232926980698376783472834772941821993875443425296647597887421261736501452010177009958392049300891038204595695352452368365629133288812630174737125988269490728942167077016246162552814852625138299577313757167066712235374303178567804780247512462979670368503488669858614760451851041389428936557672508852303313130816528808565179092159116695178576929489137104892841510369308428429589940818961276653992837419638968713183977252374409944610767976536652528615083244368746593337679113485769240328854281865977296662433639482868862355518814037812795118219789287049249624183524798528153270685996629969164413290363515600462861243409606509543089554132359322757810915216945822749720335178457105779459514294051760036719931591921199119505052887880830101603935718299895328365843527997392885238227276477035489649949177008507801166247716914219329566651885084370104794346097179593254081366788257082292846050149408156510865667831903618528244909630825338938238273488773568349891966179304042534577573878064077174752223595991427377962591468559726838782590472486598899438045342360524292808209048085966257571571117419336289511127854826014518728570262519319512104896361850967951341856538661608081621887381893860876491172658496489326959813548070358472720984935461926322915966433252350359946768476918873547038931425665022782355114904549490023683296511180030482862323510149391893332903310020924672727426387052128452271590264380569716822833885126936449684627197022397168925761004523339134937672295928669258140119447755514375920688970568496868699547914369705652988909485616267748322031463999516986780771713103394812247302453332340389073448189644070547740759338294946823449914122666305617280175603542388795650395809915661854928270353148233725973249822404631130686994077728499732093556405932268112288722191798277773023228084020943725487307046235304474164856837558047213896231976643527382173672224747188035748604728658164844996036175519403533526535784102478976190737666519466491570375663687034452456088695049849134215692056732325417916676195136891842716597313541523803845109218448451710763058199279599707886815562807235413352468573406248585097191643027660856494264727046849715947181546464124324639753766869300691130693667893205665051582187179381740846356194751170510197130377206616719678758358222143903136928116537471932246652129872318771342045200694707675381247685499788097845607391524355140011235656488312274701242526823273890361494371252128293927858617236060396903044373903388659801118800380724095323358376804789677324947105986336453838646068012669571262785876406602865336383516207857601037556852634541677394520493722780501921366139664976903082772222652641275975974208581675623365558122978722489738435044497887012169950952365923296383137200598747190324425667439418288178690448721218743292298553156122458593467486737185204762778594941078391397393771262573482746597971219044298455014808767687376366928688238949639332948380816511658421406962710985142343931023495548998250352158595436142237257090290923876583696558528821955886488303229088982426585359895252358236207494905541221995126090902665486170048588859231652419523237328199037967045880063896044880353673529648364335961916666605474469179494211878680344072249976388340685448462103747843385956522602262365188217370971454094719423204094985894147916407811840155328611892095444426820236621982110857524306266115771127725841797386170423281218389967392537201283444961531110996038545675573790752250194381442975214010533320121864907901958901584759959788586054779157633100749708294178115562814478346174476115060657446846434797131570288142942735569042990488833280473752802103929917994779769034348246626086829456373827810789134558216523994080829283037046240372524160288234745248436979426312467442205232327800560702423986391251529868937430852419620479810782226780449968669870427777139952854709065046577501629465556490320694007101502380144252536160050720145968171877178096827249714498385569587335400524752741098109001640980967405186793192219220399245015443423694956443357388146616371207327207406477147404709866376914140813182057268902521466820816646482963828900356987481476013608561958658054741418955425474355646211110729654696804032769224161837824147324763033753175123210250629614271775631528727243679771678005755106221738855205170227662672992632528292797669709218932986437077611167825598105865112594268206335930553411152146231435578721613051096844835103216606781438776614032085025231445544020593609153293211082687590075078854062212357487148478240837940609531186285053853405511967059876431226937376719972279365880042145114737738028581491197153486664798449276817603342169700738436718069216385058369699315717450961632813758938375566424311018339915616793794406645251772596045615672951809647495502672842273273450615732915727193470208076177169820058114303056677660673468103143363135463618905751409456417096300899391156752669642582613265117665737157879534266725499547838750148164776898255431074823884145214720083990845970952919534913921692308522121467309734624523549348636345291417211399758017292316430055025432291592899744352920059588416450047958000296763855096749563082704944066827161472687116497214125893595840414337633025646368798348329719871364728286029504094032484909518964685037294136412692493177582939625798508642692182772554938461215776655863148301494173657131869094262878606070032411165100977692408871015866996432430618904214349349753535701260117963530940150851908683147104054912138373957346163489609953517362166849590027617795117540388523624617575705035061854613029067417464404554455115842320724003011926221748097143330787912227742268314103355846980400585548070062975234386661655277060695556767124144314822677498758479351401686510349900760706108158705972336026203169181940445935557880848394209464501394632897178942407023739335692528343111183043824478885066531564162673089971152508757936064176242107149799114267611864878475986396054582113963218681791803766391240557905525340875855771114902585413625203145138353742975145339182756101663813299012055053272183635041482949979833774633849589557217403909324890828866647715264663501034076701932157504608864910999723831956545521754917024000301532474599434766039040002833738886211399772128692190522362089657576470899278769481669256405465089018940769873690226526671874913417048794314423902984844362191991067492581149747329834070939883003724778232617237418970935185635480541807818864635041626446370528419289662349353012999875768512021953256470181752912011595129148139413369220354810040495945958116286390355657892555584631250505116171820290297542916562189557123197113506674582495724430367029227188721901020284873944361595782021539492016623500627777393797314935246569847523085387618599701988821683698652614784660558449173139104349592001165133952963707802503398624333322396026554238016869143528091524550295856043095394219990686353015379879587823271391232799909412859728985676735249118723479810549067260165431789360686834688977309619115182663460616083412902598326357456094099006694515713970089037931024124260366901824477936491010679345585158193210603860589098199787736639791898871763813662164239505763817401895725998789428715621006265578571297245739167776593734192546464360051741952694311335357309486817985603200819328686302951148661208894881103049508546169085218416118549840422195113425045781262591092365169134725914198046925939216039462396955116292121161915754557740459528743492788647671035980646024302793092992687787409670535700729677698906126038441984523606072519439251681213768228831102413157951383732162412126171211043545533600027425127026436319892924352825849641446683028501393433359542941786478449578410420485116921966280171564133254765025789703323872062903827548649921177609606775707894787538343872163556107166769566056990825737854656052824661758230197134248323409467546299458839541010756868930556207773251833432726357411961193365899306473805816339968433213776706286867230168889449444607331153713991022778891117445099967990535645705959795956292766910215577604487663181630192327774737683939272346138048856601291733832194190385012884722770756645135720038960800683124763422299685220370975319961647119949458921971065747960982530786126248130088122683150969408270833044028601262804222722628988451541099724083710633766566842091097967434819204246204137696304703459071353453245497352286815100867217935422313827517672378547333193750161251913536146882083052702524174965883506355696027743005126015961469423193030867028510393292339001633961157533243870934454138693398063631809893928693687037560451772762639322579188848113368499455799066628496518229435797360986978526086788492818579761914146819533891999339485006439054501389278489453260294878022344702668612757408655869883127321083612024518998833569038604814141612459037106078838051734909020465490252082143391465571022551055235074002203747457183622259124755212377811606747333709584079040439011648964003588795666048749503252235137952819278910672730590163895139185722854208619142536148611806768245244035053662014168030816242765455723331192125735045189151598972012608781650161459095376946068566323795078537619887054748884914703316730227619738549379232240372535135714273848147819626001636650368366438875748662366959785103852019856973609391740068507171971813955509805297275399427378089497267225195745446051940478937483852084619404977326894560317604173429554334534072188304871713116737536455093006452118839672477058805570906235627625297768430505305738847466172085800491443952802881549976116996590632600493886463742379306898577935146976544678294773339475461843344838348731576977507335032405534934495594606581570207279604190920893691227971489763791272091616685953212501692454397394547965799147271359665264038180331112448824434772173683570370523415818143662846310408044206286420336019725897145451238099149914188968451335629909184763506165065649350057039431866809816508841715588331336310263760741512077910048555858786327385818639774090985217797386106369519126260602775605881053435075564881166413224923656414463939188878199740688180236450084863788830940544303990795931742850154275420487321375421322653942735845076086313049377680568688364069624855845380163263747249257903850407014249814436270064960707853381301095082383786602387283584261708710872968307237097676489040368565637533059733469723204466171339041146940754893673610965185931306540233200175767719114211453152539887552188692641915956632467766709075557134680264179618180406124485675985793349408247518635178324942356928545213732851234620950655465894538269904899481285433421249510583082538117833062770964987721545998000777589379004490538614138416481740486415627260885815137945506766753644599230205043808966884362036881545322517347052435397396743824083716434452099999383681561498235170975228263430584549246228364258348614180145376891881326539933321012227536982391657258306770626136424519807779761776892256560212920661466084028036938403520632448867060727600900137104009005344708667744438419618419667584177603746890161565747045664045232780028102685324239730915655934741507022992688185007005812684028869631254642157481994816753367639639461067411528648538710337420348500194930424942974848917818904966312356073942756524903154955911600458422917663784964347219211960476049330513135313823194313540974079091927274929079586112929491637030596377432323137477445185560597204728680131850981617521479416249163498629109103179499951783370649550142123067050201242458106490126217138279957915663256129348649622260799148535291662066941647683888663784201181199980450095815554429397548070635099909205546343033448232092739638135912846684202081235158136166835395205642547587006531138976601970261468459104848224902138398162477733157790727851750199407278706553825466914170140467585489191567463534439541700032629430129777631214591775739853552681720623308189043606454468289317410175225913916814051790938971229896755403377219957034570528554857937826208021180866672837588536385874820177997271552546850925586411507105938101691288986224516362061057255334167907014530524070220756061189095635315658773800569750103164496182896947122861136770887980918600373853312779413017514570157479870741776745593909929041487729457732027945467200796844959020033179560157876327823957237242935198422490821323184927235563361536464354205129948846523114883517035537650270697906013384149005390585492285450183477642437178844862184626589808720070859513876583929047715344280185468915129416218950273278387272550664061509799800122062567695930359244019223440288541522847857982820915869950895372600709708945860389883007166164293339062144674691958811370376291778036217881551176004103174549352922047497574115660793535072587911256844276563358388532244168832084341933534951200510959879632604386455202177156178715051463639332901485454604115889585189979792852128998689510557189262768162164147973390610799264658134213267490649419083315347535102027039279923574603636153335521710693441720946043744211484719612117347127227685476410452481316995583763551080809840868126175174275515094405623247556436113113543140214255747854832670564960840267956349683594175496425988683706804955206322558196795880979026942783852865408607039249763411385087485138871132240494834191159529310791871122776466617534327944893262684167049831904715008341740260613893751717254566442238425355228366909597638474052821468644430225650283393858906297642928734046363177097055273211897758806284949583532191726896823912497876036116931210497009299366475933611495037778699544218221499353837577799746584247880630964638433185465066316483265386140837757210685691312056949006765077861370052216227222748039774403980465887441919277612205866261338723842530798892657875538426014528157926867867847801501049768791209714997508856555834168148417127791158134840772272020551976294761509253821057339243063338890748158682768878093582590456371332050398447999700389714144398569041281145976599462845006524572667244162084064272547441623583011026775626055770569649808745043562739644486264672914880408630385750641129104492885427791783338762677913114874737761134210801730755692953255752770335566412474291442969962187941228804325853655357541039171975384252732787092472783625469232970735632223883782581605320579602028623559429636854930783766343730313028885535593037000319328860292667155078357823750521597944798140177189472368426265919015335214770353839987870230695121168970515219393187494182174493037762882642345326579249955324720561347938094355415102882429724658961435999681206745856153079403548388491699665499237278575931791456915401856792234737115727492431316592163591491993212645261139325199140404955715673437267534405015834868824577126665970328053650846101767419578119496994288718581714986705559606830637272892047376575382283424005760104532095926593549102871464638913777209709669539746943018587886092707399423472186599564574583264086462458503909668604721609348753924438139009857535661449183439099248865383530457103820392133304126323379526106035653060839084528023857622058579262426930189289452109631413845481578810408949043685509351246161341020748686909158394279555232969287007549947957354179771829708905949262627216772937109533521270613696967092789248606470445353913802221074733706404559863910183779176697807210978788130260271508506316964541131315076980807918352025138092893684620159737670465866349056342978430233306454868067603104793341872432663696894201549405292698136206323386252898008757119121983877404402743609900145549325873779560909169477264666899080788656529556209697779032948127290661965894879952606382277691791154291195057448133373386054336490615710064142652516640985171337036302261079028351146187823453914071123273384395750764636948498109765587642894535844851182914439496616942369884204773638379539706905011111427532631392955949558217619422762971362690032091490639018098047451594842602652876643170262533951984549731354997125198374814636057206298471917142002762435543925718812554306019425896247419302629221143809375344762520817711291902572187156101225725186170826804959280791345250172521396415907007394124244405936662985789632389892315720913757477085878485736587708815262255997783677206583600252178064808211461868544438452732106791571418651982437156935604840678691747201450219022327990048886768640363204728946705896243659396947583968941707921496698176891564566882536396135233907838078573310897734190152604476869401170982807191324391825696886650692374006856450154732947298149378980337536313166106175524457316590508403221826352104423632613286337920674829636433012183687814819916263116606713131086728070615230191921764235020903333340742309602626295047810379190782289463693452615432944592539020932224859652371856834981850496588337033295200114948530145152117779687033774527395064338684258082432981594912123642324068310705028941108727357828082317763906280323183004579315569531320928974700445196618357222974892826531883258374134883764246854633990029439131600859447768074406268065533338491358317290905954557683360253129971499193349861555933838023577165002416329440104938962557216730354578164368557685448989401929342003378839818459852308253715085391869629582071185325924443800332896318128165296141913164424340141963106405357506718859217358954915983183065324823201271003076433871245521061390295912603965421737074771901515590299737418754236904405889422435919056369446403938302162335198341152050106795357896266545385710694502967076065704441591999992012777819785434360618632592544335319961143754869971338100346880268099782684663289500172119567655404947804273518653552360183801698145566491070103020656954165678183581025786965251814333142938933860328446768919238175855687799248311290117198589951214447428946345035498176012235876114188378184924068523505284223187477107631221073108878935095758420180771660999430072672522500652260879354559416640001506604959047361826139409956064405682545581271143776661013680280910192913849252943179010433812627121110928638551154927996315111765393685126029453199519007379863279439990363790071828493456904099568629003478232385014225479452919059180006196268585594941724677486659659904854104487882877629433824764292606606245703381680364227369643812847989352809807203641990907095834114906241753986609411666726582103717491698059002854588581045122484493798255075602751113977495451616121151252712084501866722770129583258428774397883447163015351284862687028699099265386885583245602519661026447718708686750152908239312852294639119847795117589365508207817284028362884248422963756328486009385555618996712969158483258551360873607401360701929881969134838391907263932664632937435671887017710974484348432291109549270008397771960884099074763054696856344737447018160296835140537118242802810019737433833828290254678841852708079702648631929928676030782631099293831189699055101965562580426715935861784574954866525288037483052690339319882415220055027225802169794560412167268068037762167057714664799214121732025137633882596580201340863024284211210737245591937793069530526443705242608025160869200008386122811273830266185696834365249619577390227392729972863993878588750310385029394710735815114138860176774148054087488564819048471032223459992011054062596238589166536434140477188497147751476845060386322477693118813112444212304120785894782750716088781710266146836548946699217652368301637181265853473732195296060563300104117874987742544094298239776787494252254025390175528040184818266076079748089298394737963592551700795622384083712547615569298345966477204614183131169598874084613074990937850812958170513771841575029168625563527301316397872808637943468743823255272268313775767395054964332630893137504230168780932045972242209275341914331192209085918206874515614856367397237237828924723941435698047544708600326510035017435344223625481642691770033114334567982010888447228065374473002397330510935478846552584735420456049283858990686361638755934775852135087573357892858734272946386808967326858409001621738845838870379954200553794050626597830379153170996519360055255452376401833436038450886039230201218257215930994228490617525271332363653045777908031354331002567098462584595876247409398449605731552700662204091200935369853501727170842259609097695289177223973131465921286035949224869943970895840104798085014397877499102815236875983462426479528003737090728468015563320254907442481925061281648927132920490039542839932480588614824758418289274908070394477568160919974931997502244822620641017952915987571841755249703147932602282649257850102072348538315128440811435606578909242724761688501401967010759572170758923701067608490747151318746606389196010459196265391273588091780253754021788473802040815536281901121558342590050275830466276629862096268201739369306133838865076621896773144581391866960055157929234292396948181351331894384328696924688177990121484735785964743879661989556382782491345049189464201623384387686013898492501894921761125440940250310572079252102102550982836034475445459818565185495738361543646752095230615113773959879117806852066420343957303216441440105158316477615439633305755277168375984584598698656539281167177900971431555994191232837867194712870899105712359426862664200260336294283511174672729983276054311387548603664844664883375286796191311287465370088970564573254458812282185480711000780279052372673164081551985920489257948281063444439984079234145789570888650833692389021813334080215399674907474768284262652483461887382405913219953013739074031058135591695715139002182476866566153053629753479486656179918862123111165136223803566065439296353708875715485881735221259481270731747100934978068158837706886073608717056322178934972160545923646659463927195654605438455714523813190150262089747301125880420499831857133426519495627957817227937479679894080314047230828084186289001673595004057685935524236600327960574968113104227530233907840188836715168275500741093035410250011956021262520354884442719732731366575031640787780921777186528133123255689648606591837982346754798439434004498034077153313494122436986742502170322842342211830860675624896150499141026434220670214327143233795454560358130021777342932953863569004101500649071415366003956681125990112798635924716054265811153891922371851643660311379316095200672248558181809296213341960311050493782791727689259577456212517946881685069370732771730588353964438398419368705490372330072983454826011033897031771655660059100318359834395421694931233493766895667662508505747065447614770761181797763242911905884556224314110444313833751782823154951787599578720644447210980257586928050721636356865393260410689082852974329916214940840246061255023702520026566427844100162099968173823147103214763202537706101657350842663420666276884527993167617690510452698173474149979646377964412147205995153075170488960305859789354919610601559480442089261185885785939790680934342495679085155802841450445594087266656736083551045300097804883536995468929290416070285322926276616017083020865783430119680672178739720089212314340077069569899675517707149852601430292562729605160120886228668647415866892009562231216087988883523158916442979522821772154341173051131654123859550545818701814995735803833513858751420512141108525693015336453699664999946338968643358063192663434894826214183036380482988139838877396788116277309443920104528760940037178919005149084759163091157333647236084097665557034150390607809089270358974406331640702310049134664511032318915689020809583601869776340683294015479118305966959950890944646031088944543481745439864927481292576411572615655507353529178394433824909457506043305766640084064884284242859235710093272113865512777677455074340039456471951099790559444625012743550149884142790766720504358873496519641073068150196693910582291970558486860752828015618572442631782977002948371034661027761073414496919067645809226836823192811666572029431645567346803126712951638474254345047451631411360553071960224453205379278974174587673407683192399626295338199445492170723678241084438528586413319306030052208374615469189950590083119053742971591706450401585206327089518495367956476770581463728993689470757041700960689633126284007390984463007711397005041882621732553647236381201956934688306977371618197552188423898869717525580984872354154622249934562150440085530399077274463718866183286834654016818114802844402047566706844132344664071130329079430802653290105614228359214133971012841482558334221766076370767920352173931141604417316744999699991785952736568339081087215921668486492326401485168672075817771278046459387967969411986168764987427628869713756963651713598316047523505749068776089137086337584351601816454709325364349359329585873194807682120734911943934191230120330041342175976343081583528464827275156322957758952177519047768426422964779130039208346726918845587548296802305779982279852642557257580737114731244218581786766452538495091080608214616157936373417663083446347121496411750725562887356610775397920662243893933013263649905055544228633311590485780142750968585329198526863335323929695833548788855504924759305537940507624388650974631836368364018231997407890676037430666622268190538966088865469647578340780229938606870079305152855259456641153666100200541710145709124936238987507814007335470418031543769245693558735195002359739583407948762475141749420780246182008646213839026791313379050245306943084375125871663059972768499295156125745574863001015379863095525034218927891352357269134560588308209058056460886166237001931325239429800763897088116653605674394979525494011204172551460969483548592513935918569053064997906776555759126553105727962754714054839035382027468504954123905742457367142734521227595166112133761915472245019337274889101389889976234985222861091763348319055406026582550078927797786215079668842264616574708128230946454429828750469970073857042399310044123366190202560001305792834228390166876919379432696198025099673953409141424207447913820312152822359222576919696590852015574723616859763883834622587284819551292557792444938571496118901819184174944965122502409869182545772859726155378345761811814177290614725785023070629954319348790716420525846140745504992571938357987389927509327987442163557511594007164699608003014038169949135363312913445759489376544498539913272720260159896444231373133487492059514932770349547297948458122087168257517887114559764830403916946876687897443286163544421284276259082606835146588958756664855377242662648454996250989216222374713645445172331269739965791278480723969218440466148120035900411373743732930994200339392388476591718397290146822853891055627630587366204909343557554612405651888106659157832700741201385563854869621629311547449432126094935360033011582573846805603022212143485383179927877576898861353354599261838349993589987233428801937614150688105985150428162508138346822928371068343597587322895490685117824386114232874474432717448711306177345335042696805402343834174173281573012982711202529222880897880187801271374331022125547030138278938990257177094843242952252422565301000299243756412130993551300516655655166630972199810116259982155399970582083202141861963600933646253310010181521747049619694721059936112963248798749828542129507142198833040728518065111990965741927108965616536465800416964653422513843812719463107035959205810037995985978857647147485492948836765811481068836551956416050650872116625332664505638151019114741317270095712664691492145614097512001846123506043019151140641304135000755522112960738359478791919411571559430378286180462122261548612047107719035375645926738805549063655939049029110861084906574232800176763696069667478686522642502916117922507595678575707111480146665796457987779644593841605755337288355355634875007237037589673861032050564633649772744203471813937866337810404740722940389033214390847880279193613973751050985597271881345160826782821164212406771308408915774455150648179982194952529946137475014929971304615065590169125726930367589242345924088167135433417270003322358131082204255671869589834550886729825572636168480824076938330482715398988312162736488239372327278099085066102985382058096105296647335927854766291886190142716176190908685333280934645896419546423221678401598204564929803799549749685891661229642984702559473055152689937773762204419388042857300720326815356473382465552090483168502245645532912562371522503731803588238121233627123964141666166086823221880420883115593121139139644591622754202442971154559068118184003988374486951296218547214057169405032846157046822341971320772869240062177325070995736843727514085462265514560067491487282483433642484074017544265457111834643337968865190370754196954843907664697022450074285904329015382475393587432142205341270836151561793392729529340023517484810135178511615664473593743467643770143274877987878457178067567598826403716930843550191058929631690870019480205383899846404222147914155103856659387152793879991727837294822213387322688818252099973135195062591936881976108481640032220428011793683324010841102251658212609796476939130490020744631577696059367818036239579597317422133799579232445782223490299970740979153740355731633633121874690253329837297438880501085807454533342383532000102502666590426004431088491501129569110077551678061710275876840865210742044976476479579308052607810767701844629515483537203272665395009779677371578472416158115859885050242032970415124172956888832560692898819431241555079708533844510056539918089372952276248696644581412615783662006530954749279468088176638267768326770735920497129231206452854286627303385238953736957517651992393216513039855511121791305572455912523949900877714174404929686402237011545108766751969264986811761528964122936224766863605407668205593007454232127401784408559491405666349930816804255100503791599077345498214260105126724638826773797323922220165048237640873715082589320482575687879965104788726369185694753583125090024362132395719555291323275166902144986158042203438629164542234400843903709726703736299156274249317258984332663910583692563201891606591746141828724105375007520727206933676322664701198662692982495024188073330481790825006990380429482795450155814227358219306574870095358885212710330171669851016974480797106934383627013504266566628602139739842753657894223396805858397978890552256804148125796407748848181873051904985411507315442557707918012792218078132169503189206937029592371226133434053499996424160878855090867163031159728012323011281592069274690714997108736286056096431082146462846145428684107420376184850219265557910841695241351581192660510350001406590373503572839320687997416102241298189359015456453464215547079520441285195935007658334927030979669151249128245021798913698511135672667952449647663658660109656099324662546493906222249357720528728943549701278044676144269205243395980355859801133165061768657712474223762013722238928624598198524063466653142307052950046301582422245689376842516716653300485303139402615296347261021614073134151061296343861327713984234523725868772883015426591547955185807635898651209666097527405523998370307958192633162616798619528856128480707972678985969095622468096330623722375476677855630932006513264346875100369319193450812604741535213748131503239168684386530982244414761415782862847937752738446751452213465034337105183469958128328584351144162368283562119799561447441360911031617298466639150742304192354567916274993487608618236339312172907377741666037510443764515543431132313391589966704005482199761519784791257782999592959227560399426985560311818954082099206181438651863985211087449929996861904838289980565480025300263002469727254968288706474874612042966563165971002906912560751721248006827390250349000872865846441237301121933792268512477586889950827240388361814212995675009549236598578032774539229404683909593557770142864260384232703200844216651203965183463924359426844364583370396241029420705683738937376313920891245454360236837444123799233046481810954819852645652514455199186883946227188475775898004953798414593216252472118416664477108552086719695699997372383091455848745656280927120578672820257324964429272947569969158775341516451906495149194364184013051988956043260191212417924294050396436749516566944844051217401772809730364427641406719247895922382432258985397834019411308160504825741697758721556698397018993475717985375299566804862730860543605448727715905563661023460843976363085651441710292768903189043046769156629221205707636045828678001676422053233861529812185138950911867450165872874342997160612986090821666093422853786202116408305753449009444038001770707398384659060180951698159583963372727121208104732577066539874882677540938497882809981373646958786406901225526894250083207664904619582518082759109082239693600321787782963563808429368124648470157099637164440391099451915812729889071583806220457652704292643601724153971339106135217341301628600559819072166214766274127611898742415024205000091602408886475723453275635774611407456327988290651528070803659324637890379442196805341359200503790580174593682933787508294081144002390975655323680890198164349109720034176658668339318683705533982563297962110833473996569253141708723584381675275688708506590742425969550437093153517512812196093254642083984116218854318978355985368508303030817486622370705403976654000434368913926301601545604835034371258140571542234972279925696657442007881128852433410954427261500889685646880017038583694713965845911557776037738569621452930415028214658510219039368390055987095804862845423950130479002855113581398541019131986418513361971002397212673769563482019486079660926511116547613317764148947466029922453131801669058138202401398735029132587608927354251116937618502492657083413215584007607593047818235515253904310318506194802260067164960288297443526530886264757312213887950847228488302979433092554399850528568102518477932577079764158477861372685981316876782065448247822227279656951933078836591537563458927713097937927528818538796677861744498543408506870300677517941857786862084554043669324020851414726318949198637180979641689949029390142070190787149932358795236456903116748617358955817468571561504624359336753397373844152942733440345944348002974845346664494750180267096070686621957603401324237209295881584802942947995554327485749487874329501423136689765327158932514958603325965398248173078993798637545740701086405986840433713055402567816391863342036967924437702123961806775659267559492285675129893904185372205400214521792349429881837056347533649989659230588035051814805881754730354333693402130698212845090668394431451679311590791081048456860847742889252199497017514556252612568043381971704614240401227335967923849885217647630476102223354567604557857852837558355209580669500313452574045228958227736209569449817228587428166948626085205110169406930045678648473388081049615456959250025574416713066526046406018110304103861946979904571195800880213734222785382292820268046540482729148319509147033184876727582041569809996848197131589630785021038591115414670274300587467843412915439440648847870213102336119978837484567736747251610226071484669084323540510309242490315557562134272409297477939574044460162183889423158578315806845413754016483068300143989102320221524603283499017264168279305351251603098185994158607513919561521760608062198376085233003630771968431028989210922563193810526067562045838360323011297369075073569451740841407132796340947254153916218756304999647040037084692092713843286061902690430540641826135178339373250960661211524789809375289321386252130312482635184212261920816050006065891442753501188931759077922382203969810682414905044619164064946802029755395663808290192896595202999180363753487543207398305806027076249243258879872891266792532561669186477802616822845027131306239270387100761974104290908248237143038965865503975157019867390372704179683303009833457056563815590534660097548268377682107594026413294103014807909066926553275136656835940237756150087786499983246247787222582286946891974623345164454303346251701056084237509478154569748885253924643067760057285731434347782779718916966411982220412179261592368226750883452555722025577658957665820882818037395661763221467620070423145337543177747694744519004935418905438227121900390435796120417641290428223812075751141468894459617258126938580458997929445233286742774515682836086195290412497715763319784655487261158579723278006216263781179042298471040500723931119757485353260121615500749955762945076538316942308730110804162175568969165672530576692092558335514919744578646570650398489317282616582325777064371818520003691380637675711177139105115360873839860314146771233015153182922903976142053933850650626289361327198435554716912483122447534251678486241987880732277298458250207704289049616907971480000618913023082181636819716574482362911981448606531288303290274606459382064362887468962444969119816073638372860588110566488291858725079968062206802117931133308285551070292395481927419440232939180233622947277575814455309470793455692897851650374733945302427235561417715762834956960186622604211610249375990997585910441293628638519891676845123338056955723887739992361127631834672162202205285629185628559524589179695712262399424048585610706368918212297639458668453878594210120437220623063273931693443183688060906182406401439061173926523494559135026723192571458937728482187415627877400975316739302205514922881695078373678203567259542108721937208729784250583700890848410474931125477445672269081781862971370444078095121820055476905569843689103028539202403532635827778669237025324430229729244950300670759659599889728354871953146243822779522811635026623953352275539292186912812992114935501107666412778468304759986664149169010727371864834844076968487763079194057146817589491433172162315004626544616272121500127152789246655388030616725394738572109513114763622597917392386151024149802940283681470875257283890914395943609174471244511244835839153808280518945283185739927049483770559099945150346845258305195483646604380362244419376691315319156546740606778202668520135810772986551232059114251559762770628636266453812895892288104322849616158274969161210555585309985046125032826425231684191522616861971322746687949658451074341828821558427138628149442070946605436119486950887017578249975336261310755893241915523832313743025213526270629067557230122942478521511247916632745084460179411668525490771126565875665232152306207125188812109729104574294472523491572281980609049022820231506262058514099817765302567975167270771010565303815246173779535391492618848471137258001521235767378612773420500804258063354541055536813177151398299811950447642995835456075483860615170374229874170443989878080701025468328527548152089944757257543603322672690125548023401366142839956313933371408108240681034468111157401862397658942390010020100275302083671317340512466088203082829548443945204690093372899056362027257685137335807776378723375590799275075128141664886419475088567796841838085987008640526659710129442807475512499466777501386942042445918512312088471569590491632562639874004960089961468998519855970060448288556848033004916519941896279251114855279130453049613117465361196072707158524365404840235422027751922634529767127750790437705607496058359821361793162222058071873694494523832480307084682056750546485868290063780524655260021558132730625001731343707632568261743845151751555795059402983036886197830486957019143634439800502420666049070081486783037079943670852170051831640827549787513882457283796861672165090390898491941899472491533758796917745979873498622054677020816058504070859338517150818178733175349621358874211279263942901230823756621418921904272040630553172248640159973555282582396952511370042574641433404440465401719633795459617547938529354119262249820516022493894039709615618128205473388927949308379004677340490325890898275667266521859933085892840091555132672389506265652838126912894284470336425610898348991229704722578283783659939089906385357494823944942159146233293425805108892124772700183264153927959969186128674508262015637667455458808104374969362657832964781171120790058729473941260837656956259880484247612800191828227460472859233295751119986433695578001536283014631104470807056594854297148482782155388633073207450788851175804710100458759504734182467814235100114275884217253068718305108689746044091830110182872448160035526913360359999359264638356598114585948415319411868792369147640847242235351500483775094106443162660613106897056084984524471535512338368964284669820017880045021825471232504317721349440879211734695611017939839089105271516187659909142907283213508732814151499581873884769091855342846723903411147208363262683271440978057366368859213405566403359528482768385232001639017895023308916296786952818450707540221769647469692080701422348068361871709912431006796876125904911013073405330752163203462989449198771671504224136974187440435384528129297630264942068075632989133181118840244767658624361395727390375293338320831877419015845124512302326238863393797415187036876525870144100359801692952849456887241189414045720804494671863395198556809521478954640231906016681279895767187231716037885301649134617185030369236998515042105617893446007021763208683873893024517916667004949772519451809280451562974151146398903712494583873605747739874324058637880374029131010154421404285532018080176897010301640820950002419801122637233239507721558102335562552375923520737915810036237547824228195205757152438370002750476887508730529011744908309046444841726670754718213981567597801894379623437572828614493193873385633389962356119755568643805513090732774299449152357836766022192311847980939469970206730854264446670197732511058721690117352673851028161056938071885165175980865535462739863976069430976022227673083376541184788016027812783284720191343280801056238988010048679753015377141889669210602013581967967508003853685642283089861163265108630823505486713187168178516002412955802165150655953558338624640494204158424363834767084564611639490716196369087935985720019736737093991672537976882249498769155798965523935939139473812665494780045910536833739638263852199136466750791874869499313036935135976757444810464801823424705501926750675178910290529660344064577478961950237834575827159419460037747506890403640298830320763683865107427583962981426490304144561531125077372690111620089282204714327271071445293605979709282786276015990473303426545750534893098237580778733103661091056103029860331440457436261002847613404341812623911902378247675902301397726531844077109880839847458766016034173406876167132971041703809233411142029951663410731659339559708954829290832421694659661082109901446795032988714405868094233022502749077620234710739645930890114418024438694757963860736426951420217143993929429089603616780069706593133889530120078076886254620838741905289321369203292269144830780061075614256681046491761748438314436036278102141387585174110866227528662566374913765113201408137033615546561890256992102032816213845713044045988493527697054934207210130732370361893574142051213021263374737916341076290148815003148317996353196773651908964408650183144977551884662733250221518156636985257491656022561394682547388632988666949092238462175749007192211351349799873932007270510451134690982835994816714491616723124000694183395436465978350110317468133657723338828804037407225513924100221095595887773188744414918685167056672613317053116408096492187834625442353102003792575323761041071108579414889277195283402421834977152317883441427737291704663316161718603934732091374063903078549570854850199005086147007399869255079788312301960837432959952923631925791543552809878745464459010246565851021386874739568690575898102303522206303892106549093489262896119560684615573589802413789594550151566437336259612418148482831313752504757876911948281453938983972915602474511165513233889365997157580539659841454208473049939118328071333682616385966132748528857565291227241109930537325919733895936245983646888534824901386480550366808689077954073924966056400818075949546993378903741977956080032533487765432925219124570164756794188754170051961134538472543900914359623970129023551863200508581078259835554761253007859909427300173873052099299847509201359771023611420081106776516056825338936871187296941559058428577083814760703302934061395594786857922928637287486051275164827169956776247873473414203452687039410345314113118706091043704235526861541900305791688042864954829197263973374461065382671420215387556114827284081585513412330482747781076291315214316150000368566822368265133056681149105311009743600601338044137144553485850662307125341233141111309657021712072741348234042795468197680217834786543444365225879219579938640703030380111379936626144977458746239921788093948559726918237914370816188699182121403997410430450521794601663038951695604810072205571453191119562471222434339717041382241355832363029001463170675981101982026218315181451939404418404431817568324291614922548541605415469850662318408000980768122400083905024443463752388228834710989549581255027960632249019438213007102218698475479995485163717291756619637942089436522710320881435319496107159616491496837157834795970756063804955130029013817288418303829122988423570369125637414198552568671252734226677084439558286732984185763217035454450303110143211765361966187789555825503812549325613291255530469820305360522671219085313685524578670691995328050178534917586132902596384028207893769860915324954954034750251206851541723091288027041305356168997639830821849260749093880226001868345383463814053091434913100804922178804684355083737013224194631527215357601411656100724007252163113023776032176069207093310696810324792431932516022874607377625649228435848642543043734994550354146601361363585754995793145955255085604251548759787164103015957203767484222921899999752401795114633650082943029383606874709087101680387959723303905602012233214917720278589899784102465486162496967995245867605232217214608146445809882077854199812301795150003231176110272995075469566884257807221913306452325158481640026219567665061541853054801555037651882299993098397157349156101987328668041237117849437129920689357957257167414097272630018680251666942242269255870700008775482907004103884464183536501634624870112166595853704130045512743413588623701724064506800632609995588210006323605564000692278183555558939781938072440078805776955896470338110502809441258477103052446993347263624001953582536414269889554734837256443513845386733070942184775455359207686933158819071172856871820586930369956355902519672931435164819133190425346101006353790389963681260019947843502233303427446160497882444811419117344631537661763781306141521371489448899648677214872001779479628948207701794133052356364688699256266565522694685998990292848980698124647758321237045685547314280428176158885800159236031047528348492475100041708706279275486256428112276246780039104132105025097515021517923613934830603482944282376415522724711074247382028478477577772576197436414225955853050561419502534617313289931965794836797769577215329619481541284761218300488420558021179411334814450648576580908753995334236406256163369675178964510869237346170451584466158853901487379103793348766853298431152760137696777691378201689529242162166949317037878586700636121112661118464612446804012211594434210643071781826540977884213512073112827011189426971846037684180594849657985584774254041505252236298604688659040923260666655414641913207428396447744867611646986892337869255719588192525525649686098753326474273329135444736633766865990490228635051328552964640488139661117433101799157955237711465714799858269063414668854648660313432525671465555658516726114292766371395660477181727681412099111159040173735072275989966476882722821795757333893912917950303680951318639135402125991502170450265412038875782016330238405238200302574597707938578837448772374515289866617955480328209210384408601357431948574742231187235246753990235204812422812673451507631454693460357144697982960835437799255015040668897269892664273140262883462086781316179902924702767002330055569386591748948660595255799332174934398992568240991877051609095756670270565015577252569430957857818926696732230922474496018328986850886352632144183672870362173025623541396972793932261402215854008444865881089706233886532512820606179355951235129483868602230935133861131995693576436236005309707671807879280559566449111438655755711383510113361353766069224943486647050993636432343057601158531338020842688600975481465611505373692257036591904547279382579519029320569739912490713084007547392377606353141011233980222169962561250129937926237229313540665729103198593908098010094659366445969140503031591152757461730002074423331003238682044274049435537108173661646741455129143251121862164695302604894988477129544374026244846343632716897719142479708800551683188469550452772384989073362144996729066911839231794810027066753692585631793908726733602141935825672250521179675354888885215365188322250371380428958408783790355158726853978723724574127058956821838688061134009453973267470605892124321104895922050657404810874430684710484803284754032888114862776634395930154139769249765614412272205724036456596443260618272402055179143314477831791440803128616529786551082235886174936108430125447308781165367832615018069905662098611718234834481217472412754157752448092438959007276304424687218997051030877053253993871699416448530297229319486274288196072841149631142799731383054702890774543971455270624089758209653802703367139626385815281234967785429233281240609669753660966657720573059807454243394837790403918204546146750829519410071253102045910601116740198247440532297301206236837950826142598702502751324221497790059378007960161713744790875638649191585456722280747204099289124221070206124462399459208860555786688482360767757455994221652336146667377988214976289298756712864112128402450848710916361670188522093493253751886474996178388053693399265851387851493456896718871142080935820598018527659677127409758445224906635622430335479252428020352937024723825148622842665902531275952234791009651733238537522839036397601636768996741134267897727073495399170443105621681556491790915455190524053437797989513874139351147860967406453953643168543654525618121775431233276562728804588330902669059658201439639952562729424105396472210231704347337486642009931433399600058248700803446858523023821837762724018289722687971455062873508913430969848162852409295424130400131984484942470018087470020556508895690626906222213588503621401389773196960233142074796216473438064619305422888298722986309335383692716543603717462223831102809959541675833099146872722589260033255143260379222870948695315872116680259838320617434437744008274467654744730468339482975774532339851958021749382445280016783876904465515589269635190202119154313781598989726288174753362551030242157224519341511421850165887471451145410422858020942106979677255378906640076625848904482673408157877735450500775018911018836208164965459695140944606678559626101350363064286454809652398611665154377289176056765711024548768928049762422925307622026121338706343143740455669059002421553640741994926063716350817295790103155460475322627187132542605210270197584073017015666882443046930539430594996425737914286179664978290117912843648585731294193368816902432202920443783239184405313492284292724293844021341026338373718019551560631708463224037796855886238986698685453668845318787790102619140168130289088201260705101960599839023959251470801757101396022304437482335168397601130080648393744726358910601089721586885473670470288757589330986974685891573657307769465184031361090143251685672682920292888842597418007167293046314627191931213261801593204740186157377260509151078107756985764912674749797246442519104785478807347611808286518893346379426969819163468705632933571885583916883496791398723030410840890648057269344364967518572463258893622211478081774046957798006215806987721312523054921185265742297481041157036405769467764855380627560779891538516117835528653641768543674016961663885910869441239927928306537623517874543276334783386354002003807321888008182710806039794649755281511119652557995678201810754696002964545637202555582206610768225088059106228527933760276006328127484654253296915720580905586636548703727984241118651172273075071608615161406237088236760589792227671870977580539716504840666670182388000355705461551444324842797161363768907179265828598214069679553564903776064909588213394880691386896128482762226851824744718903847279204592744144338351807435140670223372416619079156953060674815243901010442922945316333168947579887441177299026866217463262836803719335969196662896080205335152330304308131218784139403328626478979852617757739833109892060918140278304795365164077990253723278741727100314442313629622537304059990386127611165876886026691895408846801526256049367021526098562584031409924050246272237518852674640507005485879308670062459017077740926862966132412168393692014489846439911162566472428795298967905214837643569790370135931933220163556864859679159433998680163059006987191846080037753148315214852499417183765463771908747303609280973893072120935805267249744847232728491131638289444084008261162938163255002878861702876489173728642917548499368875046950680059586640485502393445585919352503891435538907072712378045051403713967935710813595305586563489442902579803203901979434910853548782397937255792670616598418659983589187212599200702138392843299209735804855888537686596546518229959842482997364749645354025429992976961685391874119692833597639887991409723692032652475962989879413301082200542816787380985696825386827869839721550336147779809583296457320814771652853492210326163797381563593101651490346532829282861921907858070411169727248375416331553545256773390396458372186051373321046531485646604639121371477686504614858349048773330065175467111387429708953614220045862017544438765672345089694425569895676225995292459078338485382236735908968296450609978245929257795163156814930013050326828366559944108434598743195368332389886578911995858767946693557793657457393176918985715578569026936762015419422509502303467621533051338177774894271219604336631700237338084591061784562326022082710608890889789078140254297229881111426523941508114704316787811334868104508246352041459861731111082409835986693934968650206518206581291148253418808228564589802117592776138063347989006385904394396649607046788270485488393138739302825162439794635485667561347978502676082944808434433492585152669614477017001810163389118161964426181564298066766037578887035605015689226110452634347125649679059445960221768655944762517899014588430132771428603381722852366985017992719185525844508035938210999185766836279125413551899885930796839985541234684944187741751656535485717823312573045036595488545601202006928572812777828144722764723487637328123422426003986521644295713506999187057207799202184140822862538805913610290803114734536563690743906899253534089774201965159454411307248332246145178971317657403412256362604350171459564498038793521396625881332456497311041759530005186394470917764562657752723454484856746312645106466757094800284054704606838207438937615361904288590830747774577517591383833124509182897531765190394415900903958066276559668960124639684098891398983355064613938855854492168982154803118576090660593715430127092660073051079433784770889724821120516229542303716806795524144390388347121020062650782991015724087957622499451764437545019215466755022268633150887419473882188091667221952272825792554773176598706570543543262728599669662197592946895475858067492616691761286401655177268622174690984960318949539461085981643173058623503058413842117408570081915695509078367487339241526673517735492984804575864944264805216313541118032106100489722924327407589837318343487641058047956260519885752708217907911202027614827219425366065223669106853047758470052315695505565620017514033288493894918501589040508037813406380406233979750878476337089146986923161802174397643261065560368814368728544984865010337008735623828544550177340875045703532164739415168698898072591285994658169030362987670704004102231887755269124658370423442229416251273581907220605918940419911242783282810854838105627658813672795888222764687008471667278986474706271654946038707272224186412979974622374786625821265766207177706515216799546040777685800882855659345868519286321027252063388885203180100806868782612911656002758110381944513158828958471281522894915740867475963462780366973223496850831680025450572018637881477278277905209878431138873323512495719439251233677178983055483123905222200755073227571137260872948369100852980638640303240165739119989322333303232548996737070579617220745491965143178449926238935693080273187357615680647744938088397867549978751891259764183339562241744782794899592869876725417106478427811710141005380371380981864711721538599517591123747080117795533285075608273866702437448476015597358239635835756770329297356590495661227025655954144785559341679323496511539747130574280110713982664048432125629910617226729455636922475153976490887000744375745658186233686221717605103723744121201015553309709145922041961671375674076004616175621000635918586782816909771060661685703496961772818925809475433218056141803396437505360269996560389421695652056861881129472077346256737669262299132238675846409598986067409940368145645129900410596129494553156047922512772909622463463806605903145269632576804375225188414025221143802098765875470664404558205736803804368740984396929614632731326472372368134441990390435394651330533731507156401684315708851186128109586809733192350505133137449289492879195049855251330282138372300476447234375121523777228456294865675470328985900836173593299613639056551500545083040517448760204096563814794583905165796582871517599708596033879908770477830145095677199137980721674773143876386494580443288400983104195222585072075957413534623159127100226725946605127951169477595609179128399706080045186740256113079555824746225702654656906008891010791547316123393182324295591828304543169225950577393014676103037859320515522047691778557535776423764874533591009747493920411458764393146190472417390945943985784220507193460876135647144761722627091117694961011507286007794639587428946667681925356455091405947833745164591121280007124848720845973178244369112109398466509852389369863610397924981884756000793028059690412354034468313283736610758747001056103628045504225020978456539725016827666899054042700470730556538907810271404097956248041526955063611253767503425152777301721724671281651705895851713886459447863151503045286778067122839104748066010543550800000106746100908522751110138645115638112270539907805751891366754333750185545985124749878590112379549127380813616641166015927091617066227557261311758241094391131728381531408168348904674925372034574851358940457062448656301201424652151871398657798793106902114365059642386364621800605050633854029883040505134470865000925790918888015809855955352490527568058248380734151093837846534411445254347387364605094520152953802229902598035749742726653324650516562793054639092912052520146200027181910132765037946297258866089547025696235332243299508968106032778231411111360198277775664364378460366857763241955862809974928745419447682588176951380002460649463624695048081631129838154304297996592778950644932013840761404569139111054376512134572337895604972897757739660125449690156372388419038241023022425426596364364862872178052339920194861734356092064258179996615519216443302381728309797265770085832125951237023149427471628233985888182235558826098840202004579267315699743693119865807907889464186875641394610532058179510240486006056776378725807727041489811153503041941200676404916683181951912852012715506022530934822365756820265113399310675382346693865385597902170651119189145774612613722809732063283687762227869741693510305085816423797185647292395047112578595052279137898845753416414646788539017404561711812200622289890303077110991280734346497131709991987514612365528730040380123962225217278786761777560461819850876270622945185138191176269906578651863463098947112620758388373337735419994649050884499259122038677291988672114522257849347505165121129364347196370424488923028684788587778128897484393818819931669710326746317068391574780639586696639910738985439880294339459789058203376726959427688521760150617946884785324694996534473350716380380233457475753452341362476444041832372623811231126243345674148343834886830072718773692577676497310527359462823480737488964626248445781761923278356764798563325213613987025139958956223164367454396824037983757296722736908245604800232710221177460286214554514847725364744866127856209664752201691170816295075702825127335643724528161648056081286003098984275464614767262529191930682394546473672571919237570791981824202905847875703338757889262612665112301173117399463586394644082216178110209514784034125953729415444965502223164572739056547083070994779492511601616059823918322453437374082192033704363518151140195574694677192961725319060727494818584846287197980116970467345132039388822991026446885089462893278134443771569800776436366035566797050381089707487802145226972941102259476128520061243082617291876118065807899342146568477125198260641947452571542567846619952872246907339368761192422960178257660612505806642922237778903109603386163635093189041400324528637673847503300605832299593293219847520707570293759930939937519473127806762563984578789390721617633100138671632295157087534675412808002824720758128939017079280773366720465204143453968134373395316738687771513317359828335231825287391127365636375653457233114042760555019667316872550333722074179421365725995588655739078114570602484485242689188490818673530569235602387130811058870494286542638683588792714658395915431420256468329512752679952851967717783494543474494895933890308647745107860728445630017309687356948294583115474330835255347931906621124870610119291228791652731618587058376535263364017699254844624961270560109918145658533992588519722691627177002648047512933686407672206593454679717480717361729186122192175555529478839118247142319862289005328233426532285889348629321979874583808285272887924198412086527726163686744033988769871379953220473730802838595697799970648075172354119473518930801265886890943218193678854416831719956505440144463762573315671576422244230660498484586836875307230648021589864010928483324169284846535500716322739003940930187497819398431570790299286663330399465998526120171114752480161491606897974943678408712738453902637932702293606346834076075165062052578553553552229642338714476419935404862662302141721350648208959610534097289751706061998975742887568830372376170918595657191140903293682514228938588480015280738367713626693406224648020282830671680023688282537334340258536449519849742445783581749387704726908060769685743402703079664880783995765058531272278806312455203239652196318276976372694933499824785829990870594784200965285228126713962449214397264567005170515967640472936214542442595829456975119478911550530699603697098362867752871913785649840628932694888523827792762124434486691189411993461185341080852477170511642306963939761602723912925679246218591303823886505964700336883158725048848805013319904461598049047896081479634174910140957882819194267769818028809510631978236310806430145144994326821774182569255017095750357387470414027446222330388679442307670998036011564798207813666693410927367984901007210920978629227582825208791683468167189586381289021576469548157612792420103349710735957676850364811474164739256369939583334081986156236315884869886054397509475242887301524941815466912092323972612342955412207565585505296811233727655866783817908009370856545643702439618999838568519145533218621951786000844310446545393588114933782498860578412884847488984807015085497127844211539159619620884544765358430717460006154469155888850362631317795099841573798638578041434147757008078464359837267943543549546665912727913037238994618314866277333267209405973775480300965180826143017430558030377385584355328964830688533732751238074173403776320656787309172089360489637055119761173469798707049929007111985769029597772351448497625696513092034710897440894983099774484622258343067653642016029137932924996874490262863283521818827377958448287413521177318746582457921930785090806415539000919730619692229349182127042463057928371459919745750337485283806599978229844744495839053981873056902954166577347526513115902107414156490911088740451732889583110889976408661384069366338301628392497240298603554056146478090753659291952315997945563240490194624066685441714072914263729976945699420646544250601240955126763489430630728904304425540816255897174228745030626947339805777696146924356833679555714240264510521387498975106217914668640562959484422743432106154028650422607692036530378195137551472296650731352613656125566666256100190697365711966995292886549143184338933806598287606224746724204039281011379281457207385439626366749510949763292815810325622926298458718115909761841056436052635418380607991022880176345676396795068413577278431063222188984513059007641205279945359588975943748567710799141593578912260324643088829705287943735501135795372434159731453519700380109802559948112633801559522652512862323564087157730861525144951277963126759591375019975061502812032081064936652904375733375550560018951336612317032504269208819547880707970598535053232345278227921187971760473247158525648178938412888204634349306791452726884087914232683431266802167511058193249116853606751454465766158698370936805745438043821624007368125112270998573107180259014828968899045737377233295836242733188739561074054089839018376614327667211289169867799725394386719396124278603700612656215174298017270027845825698184076446043030939062300002801993342206497259555884651670128677947741955663967752561453030025548822371002896172439528513063302555803797524057093704542923626056228988066893462891508608396128017910957406356645537097378431085940399483563807370433713480874841223966950734210671836625545903084827677339154407910720285921020155005693472813129039723024486303311465278074689056168174897770140232870875784112789285495085606898311467380113746243340774509952957734210831399808184327120347336672939458234936887126635852245700674087458124824719791469868529543361793007186592995162641303582751871696242634139564820300397522591713799616420099222768410118785718212115806335135068956268603208728767862189895804453240111239708492818861706549878559811849073637858440410633795838165309318069280199622619886209411068999743656145523528042721345418732081193989065040086612153103709285547146298822049741122340335058249666948167865547827658346844140411919181224805950045165508778118384130312756149140066799692966354481192605360405552094790082418545439670260521907374857269490026882135225686039952820372287269183805726320580408570251355708640898145949576074900222758423285810251849372001240172697389396548168693523909852312178568680053266944014591947454965616363886083356887586162231350267853959234253507988162854184283048918022171481425464218316983425769528336800341335447291357578607709569008385866661767641381392584700256419091283939668246931285926124262611743105684469086116310179475787763537219926167662970560544973439360271165607113304057620862408438118984453800360722403605650587005718441497615742404314492948333347750899358669237492549399263267227683273117520669728909720360364288317600793698870821789361841416730604260505213031837619590595854178743217204208147119017363895002512917068252717969736647925263316913247621255388707958052310541182911884630667746748200559884489561632542777187310870466005041446346848977880636683867891778621179298265294088417515207339232892752177259016265729531875451238086399427519003869047274623057561047860769789237152816029306191782848329102312832831760733039206095870435649196697022867055526961978556182385295588693413854963538651035825382670540514617501164892290208191044537157417345026169273423567630218381825423416630495823254651949045981414773621773677007544196564822082680889930932658431273746122106650374386056133400006604573970434040643087753196260892057219582471785290382987676814072774041701533371052277277152947134803817331801023477445593093478738688324209971071561335947704681086198079784514468852652498259491693257832359467742190813060449839523367407324543859519041427268290721377338269968873758936427147721465384454639142545450550124485465839801119457259069973109569158941240878634193526606825922362847794290126942595249885171679582560861643031333676657968335577956572282590880289549336641976265490812462683085686931043405846540295200168507138052044907411868483472223999419260717803491270108319561612911612979096718903908264916070713333835526485132921668765950387708278790889220894420426385319167742972440190192810076640612343586090784251163590441090698349366814738361613238412021637572203785340660660467551485008416319561490228651888044066584000817277453210602804163178041631274859935831695715346488576699086206048302925594077010254599057337777055813139626245538845396420157958408370462171827578556224612182205542883049711272649835046620702435324465237606559452288671787767328718509266298365382264848501401824238284932756652190932716991244430578953510056407127316890240342664871959704819413513635817660654469109858109931887446075660390665693155271183453953511236834319663503715802175153827329976241275714939166534299890284049060330292550504847528003792027821480179334778722279915771423330869163738937284365036950307806883271429841185235522043281662686212290501209779818753530839380595303859876447365831254256567908722272338510682131083001458427107570112348532419674599944778871561968680618389027940964239361801122134382823727079098478762311284586564959718419521975607926919652056227323824382637696272437453299746555836970340458362051155054628315750828454965592715467930947064951838646848022159991591506095118479774405762045127450894454777392305917592044982560291904833990083711876990040596929373826004465236067946213819210071139638707008254072103210943839796859340669166692277211616061355118743851672189175241975310383091162306866053313169473654413830787444612675320594438741653374046689603067871855911878688368539749968875309453631794626650931073980676974378377811956920458943323471014407003573751031828274637887746721713943720317449870097009898710458497666418015206230266842541402455431243188533356873827135842113412865715287096436895071817580066844531399224681384019820070151203792550187172512505853159035855897311885474196046854601253614037973109721914933101141098096045117518049414901448136842374892737529735184393889525439696402710460290214527925876316650954803091959438086793431079065791243126045502147215263129355705303428315807864241410522155816056440165385117401494773520321367609606794145026107817006088585117708361257357625655376787339512269944371326725681515532662144869103004700702521796805732284871117792343459546400856270999085239457154841331028365250077244949622958660969353556497387263852693112729497351031545832957155925957689365696732513363358491761640344733425758061256002628729001878815231494462979716162183457873674660185466675807653886468776385718501957558309225486751656216767003079740364090972598306528941279548809164333397463188162220873499563463838255006422124145887786838956324868385458812839491654145348008139632433242590275287145066006536919302750059530306815637065496939068593618608269939448500353072310402307431415774355771407366064533547270337721607085614902242712913085840119868984704702544448854232380097555142550491302586697219866792988247549211615774627635212351683887536997500162796449079975925335129696518302580328639172516636429070097563937081042576119720678889576838296029469699583029787756546481328045146098262351588546889966375737445116145117297049656698692139703979591457311406558259741864099476589082358940389937431402818875065150335320542757091791445567688757506848724766459517920788447751978582720332387633967476337486040028498540408192007524762026810451658271731313539875471639146949308491847372540630775563111961667036109723180222502284600237037473941819007999392524685570072272342878353341365048983000504504584698209162563358667855931688414365750472328706327983918744362995445870305748020673939451526646871432357722677015314810052878508029489427299277317724852141388023771872027853537710245436001607104935799901137874554389431051796026212742920020249484480212162642036410032315160411377046651125987187621936111644268249990980445728860325118408186448748572621620151948048066120854577896632319311971393358419585803056203638651418112598062421853273643700832923297503601435627137411555635408883651301496631812158586612149013901645540416300315087776124731105787419721131241931630232894256843527431153329421177375302407541324336504526200579901421936479915183709141422975634658164855650533311140957575321867783880448998978735822951129716841239706531433266048234671162639035656037886514042674294849207504903593282426602064053863319282937308612845393806594661001607671162626085948456869440306691156871908210718750436362407663101836074138940104777332770091767032876224759737736108817485744020833394650216538573404611562737043690304664879475599098269264099975130333853770337581029688609792841453326990123686658782778874392006623108777931302121586500928548069487365224253900936057834332004031087237808710390997136842542579585996850880371094584193678191411798554613522195839720831933857252693035783352152899666641930890994296604727216630244688825485174622523516139273291189068526410858863386261575210662604160704521460304015759013003948880515014559237190399525440857196202457849419556888845034953342006795050836998131934376355343678740407286900709808628888164070517376621503095886489495657716947759815377308542656316167970836927140846777079308699195403681843835558965353388525906647499509413618235523158910846362084269954934045761666589142744015136030653333690443905903464738521711955149296953673196406077547249388451718640268435451908734927283047925807235442639710304758758044913408415700034277805795277685606334472895829566686122884415722978280064845412595629216962674534404034478700771697441732070361253698637107379190542784382264378737738615429067147722894782067105347191464442615954177744196026556624477683251168145933085657182580143786643521501189440265829896265668966677533917275559693390975151631288066499377392022616106753568939668917461896949447186870346963996970294992068041042483003826246357412959399065931782389225856639182881954469542094506153900254859268715473108971645288947705472189517435219853349228857564677931894813071596648410841634072223006186085022586669806283746154599259107043150915066196273202625166868413424703524216875617434120126810871204826369221850732703542050915855251428759994440350605207677692238801033095115481188905816185680187463433988933878648644791034980886254561627200835407311741076682185519573507289100925894119439283750136882032314404091534021708088027867931624369755879128269960206318750915331276326991833448135767078728574482328489028567986261056413916063393931095730120804893453967523770716685013523931019801268410346809626445125169916775255967567521373627026285426243991818094431430612451999098876797887614217390428099176889278386926551499649438623870331004710687797508604594150347265020417657507130290567749272920364220642668247785558900492763274139578546235171068011466975426641545663595812276232015785692855790582218501306680998692421635207048057956817968752171377421401263848041972753668965254919426768924517079467209196024590188475318135552732953323415141296898632544193194722184290159489494410623661991218650766447655982411323262080178315489025119400255532714338809137361026340042791096596821706434881974138615631425849434938325879296528317403063662856373612107288952817910755635388757359477425269749701242268459151742408088072092332440217478081047152744729277182901816468857211188893459169537481585138667323960496009265151726208410283110587291241054415103613911061528590547119129234732450984810921994402643669677734895540505319318275424858419218860091714269018312594710308941339808816090678585355839229107894488544560380489197293703565275535101515900098777046575621581574558773423818061055974641345353536519385894496949467695295818675296215199478954887275575426331945776451864747310858766106814806048941329769324496536372681318627226893685699089637520195084658883682648271561768098030492684955892331955640947944688523079678138442054932259895872957335783413215959121870023883730358654059142080545050772739637223235201368499362299274686108150827666620237627847525691299574842688378086324414136997414758810865600293838178751401483302608353880046642515180799162502499916158183433736059812021483134888495840045260810158679865353673773416494788213924282740493833330367354786035506765197481514277086101925640522807533375634190620317258585601058389623808579827204863179861311084621555535087899297634189132800806881022507979919572583537503307302937787380354146669236659170453940427833267454381226474510894760845599125167548348550726309514065763019249676446629482392167623599038211845677224398955354117942571301305000999317082345496163009668359249988178926377989743609214295769394868945391786404208035663105245879193516372916954996911849363219677981968392807502213212330725434750525706104500667978590287053214551509860949071516820166661416371456576589679730251985317559441296463258019607853797877801074676573497085354347871059316503233941191715135601766970689215986190681990982010278253810276489413673791095450956202909354017098563384509925363603278516388023049269891893381918994577101285565962110693852098683699485992411252628057814640448153227393718665295141366966044057101449577240495600679169801572859598917379234380405096341760471288840298976117773463149761771441272789162273288309596080088285023444704332806150884393648327227035604449045155321644121421873501770675294425444347144159142905103050270504003534602158402395169252716406490137783625483333603331437514252843990823387805256267124949229669168259316785405946859478576239792023489914431230622487425301193955509845016829752829442648343379232273897035148976332529429902571139740822239370801655549385820069492929323220693881735318994069121808414886909481777242889044609488820211465348044950606188576805027683086909488328471547289861478916414098041749681102421990911007887581357617277203679416125827800962884803138128299579495665830098103691335520588995381390873287447519836461095939882451127806711850213608065125939998307113462130136639655362402784201621820399983925321133928101584774512290598429455934678991355161200346439498044335603734858118729920678721757733986286529308960700906591623844942364800776239137867789339796422647471424797359371088792606525176638538451379836550116126248356864710496377277358938242782048670401531152128183666577778400538868391007014786214615795971826890089662397029768492971344034584090362723437043014529087341228302641545289021175426229359784274711401371610535330501922410165202470640662445872577273228177148669984450386002671618730765878124162196405425921274252701694084196888562334484841627643604021800105320871510498069578782469293781491750803111960362206422857733591645282786663452258373839147415741295942056068415635649226537025322622824419985656835006783865831218011559879276550232091939907833173464752430516990598050243631034148385367400546426766054247467931779126795016153028721787855046513621239233701612654683399725682429230108865184576265556298815513089748302413342189590089414410935190884791417097715669285168207024256707785020111978101670323218371919439382394477864850659568149090644868147114428289363741619329542396147495988397515283536985170659927952525586722889700505334979787877931534222584842240672812164839772132982865336402561702376840254068098498525618140936345691052108117901432140399298299191220356964883168942631627243703020627189279284958844017459200489191418008669577661049155728080905667051640738383665798451307600945030063591449342749423417907179779897690559129191560485103217959109296339375547563100418575178320135288992693279926971951836942310256150902006591397279518342093166205048978179283743918145195513578549750892612533155187827106299780475411630378406803448182435967644363494283578449603222830535531909104955300700293433538958114622912310464125661270478266146528608675386982483970038154976598427216768138523335903724402249979843636961554209847222930964993498342084180048711932313035568440224358579135428563984987469794574629996505719707333173447136994390453193637206551850379125232691453191443107400824297702325995213343592756284615620446734555966959254865619588074249012703020690945279447013149602892826532625971728061687206287859609385546509854799081171916389884294995612361505694707920297091255317112228707630997182074739856097767728574526489716945178232043184024577654490011537659299387217271424794565126366414994414290396066210036928483081043506030714303534489763591248703982471830666480801388107371924685731433260623345290030699498444595866189235468220822173550659938129615751573638481741738705715592606312556802117604965872975118784439012412983983164632027958175581384088910336606624251631655451183107847505054916773480927745255248349607469407952327998740718863971069807131249833063975495633869288268884439940589748271440945315218890078346640799626421177256628338946596736577989870881910581322835812229863522039931826219245497944859077064856762774280585445915164873335846200721621329027477225198256856082657200449422440970814037661322405672823041898494464919853924180168692307041402162258380245691771305034590882778661906530208602229679289224769665792852102150595307733144124128521164523988955495294058568006227864782260990540819954164416582079111161132575773040498643366287199729533143843074753204423835999437988163929238292007872220639230582977251240581995045212681219609541216428346764203878939593996326023040197782056599430928282376766776470496471139222507047265956950241750197025849874765425125543681884652952673662210067664639040346375050639208143158916149666181470264204907005903391025477656005072663686010190658055746477438982351738427155008911505033530281036185985613404936965805642485125374984962347874372677894659322571575878146821914629737135011026324283009532226676510705832221968615231647615609098538984970070386768891742112509530698678552563435404830469464646754518703155977889222928237427394137431091514583322948827666473712728169124955742558244049236267090428289245316074454635047932359386172364593549276534094709577851952274154701191763029666855831273434629586186331128101323144629863081003514996402537287056485394174710874739756249385113345788950403668978529897399907086662623644543764449905804162035281038336555671104693015196442308621591883781153760828926228195929186795353327923460996387788988188935667723158538317248803141690369329639959834396866335971412755664762939362992925483368389421571505984727942898293863284953950229608897044334693781277974858913787740130734499683891403029409858977801404374022025899561188795565723746648446801146516425072423492665919834943102561164864154312328652834597387935233268679207311239464352438111074816518929237863821909653816479934230437396820307711298265679756148730267220392065118169095536548672115098405451267666841783153463646339896630153313896551388431639432905314566723305666854392021599416560729724787840966039953315544528269119573471771871783797119627693147713301792258436215980301655787506875480721599779064815287904251840862696132936111834765206432770525222638575011336433252339428407423655999824281774393350498965169938794762287587317512026576732145167950035727770630414620547163154824058482948645277725917047297582913778792790483102368079903538433197398429458124478287181073449571230021551288385914390169472667360022950776332551658172701802439983945678477625331689240768744071158450778572872962834828679126155799773471521639321487964143399113475726072713180848417354245180841609662823819532246283139602302017872625655685027937307659702350908863738233076894240394606962310090033985117660695260034341066993729509051018724975015707017964984258069410424842592008360801627474504191023258640335729012902235190903318894882473301376017570402915606310185104310801555183892177591457485299819518185933525214909257094682771530278831281583783907186442588331167930721272631849914420638427048791075496229850933432479710375512477780559584613154457834004199066871868348612487023382185935543543586145661625787510504342603043010540859459077607672929119333457766002834576733695668734353989468670629252146755028571887667031063549888204556088821548427689647705285251729153291475437369418441286254708214779516018048611336397591955501460344432539443185909125477850574263715961988464679291470698006126234130623427730027186742361585482757521042874647319127089932753608971359138760049419124312831794231879908529751942917241032463382952537130920210099213368010180789223011239699760592318367359908294351548906122182571379311637718622818491359614201916589999850499423610001285108495701295000384538225394262765245240594328025836339939395159292000906591933262753917486788308820646317937682374842999910058496620454231057108579466623791022205109187851773915308541633702221928288644023255387434810369430325964265796829195941025359336312089370347966328925322111225970801303604948299993417834841591868533776688400057818686948975668493586489423498914828003937986143405058535913835352674977805864905371980238425666274344748502290843051245929248957951331810829054071564980402150817658249610976087616595376134370940021148310001631298586404163506199970374643683831312146206547707024941609346817210902013498232786842349396708438653731081170488265586271477379755594604876624897569669787844987154545378671949012787046812497035628464778512656773333403647054999117266347830000987264957213238731753633553884344950670599038913873505559534761731263444549370426762054027154848217587692293168288320873995920206378924483956192890072664613826713015589068568755350441218783421951912498107037960899865877358756199994502429565299957887279229031747506393134680971757959801112768398390990562637106668610023722345621805222659059219416921003206328900291136932564338503182109902006300918835661399193433653722501773848032073017432170228108400344830297287499251579896421573748620705763089201110660521250631889027184933834009592784046943497593742101373356796530722286669773021498653111902955865099414900571500257732104758565665199822441331230559604092880542198005422730716372118074990909883120591805280924001916428371632768142601470285494990764019227702697671380252801982020658922538174668596625854676988074058850352225289264183776673984221930878135079285970161983960090360722417160852529261895564040615495745503500691467207041550405054736481647330737310706381207990315455704117095281167646555076852154947649321285797028680053928386229322945320541104008506980943751843738875033887610560901208927638649660379832282797225878348437297918582402889817847805920380646539360529950568732380843489476501840337400403323249595917326175608961140137417421495397769341571374172816037400431624360662396610314636695104038514502378052099928826747682527635010429733020545301437799034538628932041913544424906182992740575051533552956440039657126391736535447245298906278282547300707937391475847688387049178676107531799237231481816644096962078229199297026054024626484407002268299784188353602083947548455663023242693714698108842297729074005198888985818824256970420111795908030313083050588062458366985505578323158280429967307181339179035187897961938855169061322594776340855045450234020485353140166509454730698852625879986934178338458594598232452790242200909352969332038179236528202719392288414075609291690094316363802320280626838821372836366858900019794613950623455896394794636267771386105434927649193131732810520360724886382536844030877045684528179969500398649902985935112041870654036816871781155957779653285499221543267932642232650162456454594432222389031873053484549481627050029710438030158114061215639803219022851805680034089931929868406393767719237454341609505840074274392624660345816195376122385263757817629660908122591963068845483994127128244135889860419896573829629117013098435855722620251851575290141075560528493359383457399943941258216465366468944854907434205802387920458644787800411930105055703278784246383488129969159659977742586804125124284459759359378081391888353900279671092670939053588025118062742289083484292072162954117942622340842163343430736214871152387560173347703720881587213183395147576497762544838569940522149277251796833637022851396452314666607257711253008040184704298233415091727511056225686588379726298498133970645366613602905029035852909942624458503605701048484468277927993803672595725602808720529136605743139145543975737010571496356336403175300222922684877365762344094482954767064562764501640290826341333940396653114326419932553983614474884079646099110647138306069514297283626129351677810176345335817760818077818983394436408742053786135566905058490013059916906827052755900482074779466391145703189016612144341196955162218200913328286165061195430378138592117207714748203051658979576302965357864361723363612973311102603745478065288789871809027353422465230125069479983743391620541214406867912935609469168960735692168553713788642861421081184346467512406920806646859795300789734422227897532561121724816440302895650619030969173907094184441428322199853111571359917348777600231309187773585310996283392347704485399975103962036231970715783546015990654008569606196712474243374893647137980019395780304582497046792144685886034436913117900009151076931814580113399175924113483902254187696356586808473374327698991223438125632225042647672884557061162330897779758557142026408769945961432125129344026658938035908908082283263306283806074619374456539929978929134870120769404297464687776008048416990402082309043266745598497421843070937963742418033611347551584166793384708910009166054595152797069399048758663355835978970185248815893069571461281179438108664330768390100322478274317799626547445705202892668708716986031848597474509891667551688498218536389789529161418195582968609493305960773453536066086006943676946272755355931799018863457997225915724403507207873938609034302169557611020191704052286047667693513922548638529177204438901636559659884671173454417031011652297126532617531097445703590842988084018432622069450398563991483389296165702384306918261768760740147561398112140161150737574344166586914272979419872327455994095065435887938974516691206187635931125947331470155406743245910238655740645658998399913889608365891417498685768822764961452078239574462899097967632241522257882586140545631424176231629618135400078435039373860973614838219155867708367158134967312538111658141415658893393387326600351096023015685813463124245325653410627121460585133871491135858996600158340786566154079931137181456628025310936391541685052623116024124297210333685608548612520550722698619340203041254941506511696897283466761739450835811538330930259716658365212753210102625105572796110328940517341438198037826905280687267010150412951303483187494303897492568620507149281301616235153031350424551761524006896930744224744000337414477005709201180324872980800718763301530190594232749803297876387805083333467206624739383187296892897679757166558793860870180563182979698903736797371530659190115642937450693007516222052128834978634368528769836656804281488253903000039850698489350022155277736682854031516479139120303193876967394282014902612338628295931630445869082543129269053775715421116460262936302349535841552268651506224265520043492483252255479689908853231193455280980962385139565624486038566624606881210661744653129682001079005858659098665216001187802543919428776977484286781314791695798104953756586564509719132834313673305808615012006364936267427253092131357575784369949658093000860605298307643800389118953294151300822692953948543858648387786272836119576302962670667976342884652730548377115287280835658486209881436588104954016866928900797563843262453164434517104164874593763248645833598007459972273667105097847092716899272060081075992327791206342392499650122267183614286188165740872170103896424069702740759323291822989019093175050783936983962669884025305046167542155078421531836447775820615477180240674058568142153996639987274703397339414889370746163474062372377797564181143518779658648256609479450071883575986626817426817169240788969670292236937650910042474414207536301913524285898936928813690640108133933369358397257025541139437156201615877259316535765786949298585340629823849949275631587344080421881464873378898789270857133928360418810062675779676691486795504693770229434535883071555607835251296252070407817391556545414402769907292035496087205986046271531852685423617503174282680212714315273381321191729857088370031266132720964275883415850354282733866257348612652101254454169216796102920433062046437833268064317659026297980994978645927584253415554947987657118524502788669823789304057559299586217619310433440188775385906729804226000476191100426377407433512614034379535253159563077742639700925636160926894261516591497316394627829984168342412604826112497076419827120352891669004449302822254087590993537339405880927620213615048042179938743768237017602888648145877444515171381408563314188106157828902150311793302594248638427237184338762316459206224356792034707466966406619028572710426053233928305216586993671888132911226450752985685579135514510965519580523938182413370131200563904811348283541896542529472958072216223002522735709662967933373953735733065010305026805910422673560236570220067932882968813055000003319728991534276137353232083846505238040529260724575971308891393947445403436099550070948157783303212938931789379094816185118710528518653135756925440658738671152130185561991401659238165282643443708560389805250523088462233178595689297272636680211883665402841444142175183879262951353892482910599853247229359437211245486170717626063524050691982799995897397287097627609838945952432709426836124639856255105905088666177948336327074330091001153065642439866796939552586931123699724512160837120506191577584185919863589856956560212580636166039930472857189573174646355109606308717213650805910854486506201120085424097150632659892107029821943331239415723398359849926504513119480905405244878641959927646165297023931760181497868529838090326160069312156119800242863402969556685882783852492417906919171157579879527862266963586981075378082329870140542756016253055477484322078709931315614528593710063162503685193613622295951624274223258130846824464014881333229757928679137338127703699834778098839553977180156376138765809754013598376055277976742803887345908761951940685902873922291762986772244221317721992414784042762372117299713406619167379822123067230655424428523182304718009877618349061408594986784590740428029801174342976615560814544589813987915823478115534893858459010094332866241690856315319728168887218385917351363176589545493450370836641957109070910946800176869324892743846467517154399913779487417037923404527595734133663557950950680568891284970854968862192528263538401654675787299693923503316543966768696219775103483948646850511794576394600141234589624562550953003444831624061607854111883831206970883095588536967742679074069227407867441419726579895898460216530735992682835636618482975297188661445167176091503957867467065851185940179918291018639874102907236388461186030237033430936810330026563970214247031540508406047732574761104485213805499571735203186613502938844065033220156274879629961516229041423866322784952910966944294095716056752066500514705963117644074460848614409734168909259455684521842079393450405837835829091813767504246609168392817001133017551332697956170248121293452140352946614598222016091419841723545080840980573887983804821276619234174715328488829285589943966373351085884706025652481741080856599559640372207509523163916008065295282920141958608733027723783706307351428666392385434795777009535395739931842393007679909005373926088951012486283465893156812201957697690547766953927909590673158896078932861054332808057347937429344416286806162526140033557086666395685088621676988314399621129110414069135841354100713846987684631688074180384011980023663935233407678004042967956394589877871490625222497727753865687294019670085152257241894777651595037592267986441483612959941974320874936509304620256112270514715679891540441131747710462633446441077985060015483924032713632403332938537639377067769935321360242036045833094927706138130696141485524413357026378282434831991191367661667080541693394228769197211854050656967716005169649561866598645450078870157523596893880242172317695000027024624840415138330359142607768196864099873246339057610244588381878950584154857446009746169214508565243460032771662224263188344385150990892317635911796653279925573944721968078335234167569201549873361840750633971873409119694082956046233655771111755755292364948215455991295319783761919188514775090490816975796171321694587498803643316671400307810318451944709771077305704410092946750299059446961154559127729542884563762208120088742841229310404062576932577554225673138710719943713068248715222960387275820721427545153885383939586180726079133945350394867349489498819611363290983023633026078221211323347076344800764560182711148490823956923383776275159588737061910346469191334312480537093747487493718669224326466657147165421055881685628593406103005143789485643299196895862465283001543971325345650536135860249152371058434775440744427022077390039645765688387046312494046621579411128343741477539305754901768864326490424187229726636738091168663773914333151322712101889068999302782016059614654471891247110863873996041217152149225798264455558494612632932048236768181606552385707192080434275873162068906202965131075259816539220994188954537934956760373875656374987652374256992097989357476228951640481824181108450609182151932188219428739478989380094999142414540276377816343623483294873669206568617237027824660082242530798798321467485577161960758628165016926995506053872935256142908985125475299250652467125101661396427886685060564714880886768295467032852366446360891475355673358828572307476861194033746206325804955074810934414080623895678288606110327968689156132214322737503476591703531985219576381911403630703909554167748910241729222630873372336139949318673184522577942596416534796163084806908100608233895536357566551527327654037282345171822084364777512789598354896401760835351734027798796515892803992605606748287649830407828373034048610064138511655253607105014336739664692117432919532298406396302370409586509581619321814864468957370501253384924870256259052383994295163491010316260394434011892680424013857786836767754114497104743098173339896249928858240627484897244801264548694253849033127496309740969742016533642683437254849289044161773562296131726480234382196236657418792713633648996213326286873218622978367431194631559966212207356457209544962359814510109231902251041781900656290454037286671924212609142963828828038883103626651520894780584316532562867985179585256696349308669304439760493167024642697763096900692935284963257627232998565076265763339870442583687863876637962304141624328588975249047970745793852164961872935595234898751153654631309174232113996470427860712610927062648673935332663572891318157260729354578194598914619291579498635783457379235574461876743575447822170503799858920670026421731910998726529127323346701766959496841784030904930367747963176136972277885101223356244185248543666240585397855149516199433515421980729927455201985336386407991017125692537937098453405291779629243223382935452163859122585669007116224127936422567060684297152196142284865530402182828081019946590510541747010295890268591306400397936506106123440433422460715176726704948204520905238245523447581858204794851062923476820169341160877570016248577314993313948151329083023827874359118988044372451028402046278223884733282602996872524247829589349946701127450638236098409747449649169098522343464890356900999489688204114431092311268709531867223775274921084873694728650531121456438563869088641236142690436163165620990656945880581850974024915283490588078024390427883477587158433931194603593564744987077587237953612445940822719282844353404517600104986080297367652564852666256542694160458187340991357288863000685784457967559123600895243314200173482696720978424614945871557347257438215431434377779539330918311065086242590835624870815976671903653189764290591476705234140543110502615144389025805661933461605174229175696108612756860610525447062570884249448337976014366319622524393555248221798464331832543082322206663916425963053498383743792693049479341291582121592689286234658426990770999518091480998934067326227328969212124028549498638456308178607633582484208375128829165180944148083648054567713966795893829598761587724058031596677305610802327351961586639311404049557899841798042525466276399622763480843152672215328513974274799204120902978566048455962225374407491847980307180860462280442889983059694056961948799644992700848163799125135208384311018705267486556032118510893790281344190671320058621805820408822739585677125219401544018008701937007287393648926089361417624766626762165131719822817034064580597915493710978323229046389115598289538622538076254220098817760062969847898017368635323075499743934392011407864109279100718691370737145182790455315883502598091199527720559515556139396725170284573637566262372070531149531213595988784088454309746029384912359471957287423655133980272479278675929805586372861407202077588061242674828904596426975807635901097013566068530946388958972718499221161657735658592459574991086352306036277022081938965355091933788864331690403996455091475283883912857372055517829170293501036035673982210641062370907672287608624515176448960326435524477705764822471670158136344715091512139389101269958309446464616572516334304509890711203189057777437100142221686161476966002486221534278665907727813519788000374192343643040130524862044429373251779444877407128151487541853424794927216965939349922706221671529639911606981870953046729525240478260551718012171351560329720035208031173807834452339690275106554765690615725387841938536174102286124023111972739466399345592886735592995513492958831469066067427652471843295562241513975358535916026175356959911796302047156160562311351094248314744393822063530662283874319023033236232392744419737567177959903440827889834911178099770847297109356899090359587752667900166392032172986827394604039524103593876174748980288978518290500730855786612191862122274643933949111372887416499143052616657129034219181896379109519957749349272775986013876338615288097597418235918795452198312330065912250907269287337636845868126556657327396072597400110728726090605503488179398444562261470396521074148473011784004616953074638021387101443858589654581583549062668076460388442492861064334282672984815972877709653068896305734695248376733546438716159586805330039929865577647012178894328731372971543118379835261244850637005002247123012795853015987857440358908007483794866203798088292752600028585436445875965680059737309461553531551023627035298861512400540109100784707213444569231084656385128026359875471138144056623321222093288053891893388345632271334672713874565032039921274950318431100649486621010255980409689454906896288837295641899278833233242948766529083310844593431943402619563679323716870966579098857489778377760492628614395127915769258583545298453323567263141786478272184579935713639080717310999839791158048328311570226923766635791790790366875999545815933022970804503039817006054709137068632097869067184840432968683504853608224997143984384196347590578390687982401191215284120992427988070993745362058002713957481047022820984792127275139557039858437850170580712659680119951801058797876833446557379394695311588524421921524705116260485499648348887608645411263704145100994002442603187854154645327618198127421042721794477060872215649349181304027257299462537031470575243660294611671479488407503119583200856781753974515966003303036528095315975274791532425135667160438363467512996761188295940040682931504992734725504000977230260747350027812371272044125759397419319386108808159915039954842156672688337449762873904226143966874623123510044804950840996761865346541845384914540478264676144152248028194201920622206303959018119155652038377730345580867668275113357110375306890521253707346167654578860123630658113180705012803277853939745497745417832343192649386050134719261513519188984298015499739200540762984320288870943451645980848085983649240224936679701579927380843834577908868033693232059716293679755389006900447922164775127997780287484287517288975380793453834760607968016318527029817823558369405671636874645406506199015079764327376750504634881574988383320787867709160582273677581180427257025809254854819060439062779798670248587463746352767226533319790705234077473443937637363340463966960042077649380029164800090829094293341616744339778950855652054009043825419525010956362402153068910578690856273832676280065638686658057028425144703702383268805225462047725487805100736915000170102193575502483773663103609572106563238809894698497630030300193310796093973937020247844680574157334868370766207469822864542721293347042737200186589047112173349114240038018063941460443748338350630827836506511984992463221474342709396391206815927635856240332632247280117855173026243410821178699686259403145400793414421948811240791314537871006933732336942732661464607666913774678589667911395842679847474762807257523480147846447335626811474320018605064594295344482075094311522195902566860879579678547066665668793529591339710385323307062058705776826024266258002685204503950204985722338324947890835935500195592190579858484662872532176441785441301787706239819025290536636980370406008178546510104144407580978125020519410873979969784570255895367448553574979235666896507757105986976219135424994994964453423140639799024976765638896423736384646593082251112356817261335287932279650394461273245411994764359641668993768730203582093688827762014600954812687787521285092737320494672373664251767496028028277472454565755380257005033882158254979588457952150768047495900791148057052566246367069503592101213068700128203353806419992263517719247309459766265898035558258169391044537818707104361857903874756235078263523844383983423197390392264253911718434730388019590277668785917616848846137864254695829431028476574295830609231020874303540778143049560133576450103057081304849961441142113415270216792545334815106893328053424351337976564291268864557296260000570138207490109634977759008350852386498149120832310828667882128613990898567659826677436386957502429267948880290362317309386650092300067804124232629680955173394638411945989519104520089664606114830163674464008000351652923215969211436419944167180737688983851384370305966022878002691226193862443241064010352759223084436252296195347722283359983358994453554107191178905862694452904209269127779812834947754906886788879987681357842723840926945514116119516430681151104631078140156820167512343472097123278472488305558017836865578844694173294413987715466600384344742313564861642615535984712682979323322881321499079066219256326569304956934445231108699374071773141363108089624841090394498227371569671089165197878126685955145826934974586658546002186788398605076151074863805782019835552903490501397328475990560563593833719724456979369224568714471761372037804917028697292871199828864881731264772983316101270488138201268179896790410840711989671671935063130620367265263436517681963853951224064107531380800929500306738292372158839654986774903946728422671696457240496301342453451734481406686010402488946470522543853823637468526726872144545688460770053906569786458073804654943593344522035280202675508417118436910262922685636561731378626272844117319884171085803178389394305886087256606743793356464453804666951748797323286168520853833977892504634983348851289620130442076762533981670492812735496458654524215482681146878741529165460144209867389955317963467012611533555630440552852755970977388310787942180768070057140988236614947844154186556547906052961523347277965443909029852399152598682301986864762188454411089105123682424489008997090391505368850005361617674181178229767355813582873023927006026025049598463403577402287067300625464336630687200107577212909674400887838376253262596809880196325453780621303625206888403633251350013315096947078607724561391421126236009696244802833543662168002471506889760755089815902980218098540196078588755013602507620053191801265094743271891304754216606427860745121452325205519959766529096106209755998473604538366762407306985935362621074966274871299210895094772226090269736675066029883744860222019908362477930891756485300461549610938626717217862476960431731458717648430460173582981245965195988866775306665240134772863982446655597070158965305113531347703597333926397064192353925006836315822089342546972411497296353605138004039845077679171551238512254477551405383101652417691848451558105862268415397618840002939915508200504296460858000695044944486977883577982902062549416527057679189809813270228870935303807075501977243674899991127144399915228838095570578253958225029635307602928594028144934420151446751548662204785421396541016809110682303538464491517789444794206237536508829834854665298254057819153817194560660830835236084387146885723776626543562898293432895532618905396179032737994320645323727799701546390771400659102461559923665519112977541237647083725456174590466544458137799737989526037165983954898958161196379234879128227050492076313232382251004881281527573335038427048320747998684114915479767294627242892528216228587620876625011883345559787106642585053698932751587518286553047971640981401578872345592642977800200054332442040215175282063385270622019855582621573153232906378629771598854795732095932565082222799943476388868103852361232665552195520288429318083130483922583265202493851988333885575711145751315507134174066369642989118438760422749925821921399128073242366181979226679398521844976128437319121155684902621695700333133531034847145316344558623006356221047900085010407777304305111034224934127883884793001710766401385171696041518052683451554606475121669973286836928343260230008475695285281707587040212365698168952397649427225514052199417424414027795632690282668713107746835416990667742147625762525424276699707503485561382099329434364977571781927204763694177691013443458409949826609615241055374086238195375696559135069444966434851474898802918457938468518117470749714638853108375633128414459977541164500608220883149282662327176291192288426889601396971500790540513628159869056669377274606675051176129840646622945476457006693792361003232684261311925403999954309906282535918881192607618938296668042231239183775339793111609897344386468164852533221292251885001492875014487962517672327337784015998974225445534248066342456170252223296574556390988105016647052528623483710063025253736629394615840956309387527072335150267714300890073066204939847379856817924737538032603966566374516826767641800284740989187981985090120179035503780071073027986275074981531316138175958244880389321852394583827115360586117129785075973198224004664071435675617353587959979792409094696519654855186270467033810597221165116063146250558990587706384020635561267122476089133815038924614142084391051572204126387852176608249868545202687572349654219770061326685231532326263634824818581607430575206778204771100237914185217684006892292578202478639081896063516181355246181468992766663545647719587285065617176874732647861322055148299271218040002190875396592363176423053154132415440618966176612960532239086981027740241432506105720136919359110279374056338218247310480364531302525992774535609078065107191728078846181003845004572448791596799240664291495824712968501491225199405064626968702963134275520586760386602069826407182031511522344672208425414605861105638172100518875035909103773166586970887186250674128561089362567402471508519037470928143806316640842966691342618631311871508492648402043032789362425455083431171668774183045761443538340258169804051045050859591829455595976618669794567955623586177279271712563175884556291559198395094712557619707072848234939704880489742601542677020894988334588164270632777013309568084060442797046133742496141749833079268999708448652239466890693842212646390619001876887331120809449538767045347353208084318716206138736807744718752152118333773865888259467161797961814584938450334313214268046762810369864679208718944850337725163244616939864035930206507327104063798641341008076357146538789300741563694234644963531291413732608714594815706652040940973999180200272387284402655140437887816220900715105778628762092900235477372416430941218201797505170360254151300676694812196998202572558801431102691438391031062926705209557887330783685987314471943916206353084492604004722065246001803119206079999800967280606070619355426091225444652306046050639086954269026569818212660706045265011879504610110239220006485916587671206703573284148408810688307598491872098634486756753239331979356066753744784961245386016526253927090356406707243564921560467328357516894017179929149780620145534636563489341057049866179887294494705592923330161885854995399507125314426226348739403070188966167809399111211410715734639440032116363648993575553149572934128259148422268924561099343157072137694702773776063568625013242695898465459479311610202817038660118323113434373757796673212962988067905367815443942233947334861018530701809568970603216255741685268052872872821954820545936817564994251716338721036650286841880486012948679284729370156661965794026204958701135889871440394396696936098511303555056653959570465507198844093683671105247740721790139850899591735540540503590442123591267333581598926286964391737322088607341554430991171156980341597872632253877041838241225261744923168068788433738172677238385922989004278766426462235082855387994956164058858690284808066841173504587246547531587513315236730513168205425661523722095927935059670949318279131551316282886502759558188813119794040277688101765557268489839039889804725890572418761116330874583218640294803778364014142198601448378227969444749264766857353661967004565058094667911062873323998601018078524361193483235487567867901094549852455201585331380865110637895632396175818073622477389664925171868673737143974080029810305616263615847089416604479263809598066641947101615361927877384689928382885292928136820286819972092405678882190877876544131590959822420108900032907690473395998160308322092576922188593282656078095297476637715382064472491863144492811900723978744550297675365633819276165577511592982230106625662764314559900455525369046404284463243140333510494461656111316239729101040345006238836810798968376755881342438592556916995073429658514516333152612445497495722872558732910694649380222777275883186060592014385680166755329822675601129398110573454744853139463792021233658170598692151791044151229897288825450919233180865507389922974801791767758436488531366542755932728512564415468299178773959967954711357888111867072932888554299636099322200540754863740256209312480241102425932181482669826882632010747438460666089775920839519576595417389603169076285190856705809821760905040955732577372190091758319003064624455011068444596126542127432875591266437667672948994032164589248019555592927690061931288396513222568611026969526205649535528457308678977598738867412775701674255894826969294613391980276012588110980640667681801280074543665938931826906273631657490713631934653859030480944513905219011187181172569294802297211284090536496185464767068867590302198363696950233423203756632724461786535335068253447912572718798832471428414238180607642864154435409295242499535872872218896911533956775645834494952282828514826377189886806713535093409952713498619168662390219655557618883702131590540714383880895729975256478400414485377201436425972251218941406552776578244247027755367537035021795480641634334630940724693150197428852716055159288187889382139277998582415321640828083106739264823603629814238138050939592120367405483638739095332173983586894102953273184114678376413209002197042224873064464543831859312368163251028085878610087236467061904092137802379857381353207645985132523109128368268146092032743360939001926788349769493043416994464787898183264685581545344702184729750167434729640682824302730719042878388389642714854122301235781516086134359108131817743079230938263238939652722011431693940297011391659720876319877672268182933346424279614590227142144180578290687910597184434210248838422808146531331433773411516976986955202351835351860789298073059543081635730053888180393485636332290507041686864631795836694591727099338190614463015823354151916722683723240372752700939479157737659377457109772284915107229924453366250239563989092303222079675900003026009015431778735617435662552273600256497357833867111065636487109277210638844969633319353859633301158834976611318755934771334530145976449548255191914007955302769557686641732187906013994440586340530789877148382900194707135394906362619136172619357746155490931546145104892210025077046714827398904533710806445058891251393685291215268659842222385662648573307939509319807899280817980392470905451147009176303101134829094091892281573072446174565287008491847948687457518047470874488683687697863560030188243250238675011003074534574728560693930595074408004906693947333822681992258729867361129847595056132999351095302497329370899449908303153581980570480453381609860332615242709558219820693823761699924361350508477833838271107562035007042612896524057860035964211205203052170966409065188447075745345170973821394468672520812767450651246675246649022959673036801351408684351697656219163015456799160447141341786149952485788670644772673593771703600229751104868224647018383602265055749613256267917808785928204082451901134786485317547841072024012560636805341106505707304984540830693391757605269627588832557670759706650891056011313338368827738510457350759026536700202775084480642940023743786197449179241502071682802183255542903428130697546252718597622276393800548110787678012724853054108118043346493332995266579345401075327680505982141094709055662395911072105828377072668442173718643486871748404697424791899246697229019509600016902636932043380347060764422389607310079125945411834601552351082583698568953321153572428484461790110334458929832879819352145255118027408024481113144517128618652313725286575985047765496295267426069704093771692009256831612158118378732752821653615567704807805516388552048478743011511635027687511589078247922820040470775843685109568429048179694507176357741381782938943396389373316471643505761127612853039861174284329160804071293460052186060293372314667071048981660709144285271213216494369782568636562918490854000751513442255042230162957447379842091394473550567065580982749433297762302310223362908860147293685023173142220396900043986102758447217080773927299338762447809206842996754236838971099546500580247079200069332878210994277117483449698530020380882437376630822312583000422625867967043397012763604107664151606226670375977441997372406584919253863620434553779728973955856910500752987825437456194180796087408304028113075995866127698280129559773145774504985160787344757156424007275229988049141495883773859182142148383305906235545828512568468515921417350108296912825912135858214294310919288246284751052636244730331778362083181130234514199309747420519884878800786692745971881723819752141356026980554040110210126472808063590152714636337728142444948262893683050560350555684246792290157091442396165677129552665327130730883366883188056241279541493850594575050541362634666307183899872812932253951202520901448238622333302755236362295793449935642443229252962524208391858974241159370487197980061222168296398422906646038523666880012537448049592037241381282003616399919555023229512879136942953869568664553611710156570582558119978398627252408624848551478970597938047188010634077149902339334053933420927860775552371345014009588747592044659825590948787325340331602645313770365632993055007869662498457587515588230641185350413859709644564064255970496752495025970858094754671177446272589193212417046676927104403961775294730991034102370372788384959637768933612713085645096006971655929590877096187992411765482837267158901469482530672723061094130753443060629458388640023994993888574817810846266401933297229889377595516197338698857844519764654109334432776737872320870265477367897570537570892817002096707478738584434754205865000033150889984112070722963157954692572603014834044151400662561716640286600946574778728635165870649640748172376174148913875280198400150700312131467444961854195838212816948942060042833416911503700830679084562403516066762074664072170230419753463007546667930424146098316432405047250586096136084423275649738668800878054338360616132738089291222845421826505589669695425415340712469187620324005228959949623717298534217593131213475305040990965647196591960745697137861289518818965749557495111977639107082847951788999004037544407583901780143220236230922610827185279721780359997781356897892119337174742099349126413148054180266347660709551375200133641044108746254744946412622682886352848363933474595243431090484054898655336176101050008099509761134065679370738641022996836056490854325986826562456434268798252204934734872295639411446121904753204299344166512328249067071816526960151813981482919065621119276556676996115046534061861167281635195294687873396487741317209741522407396528394501942556796317585880959007819433272129411311075118792706153134967853913154530589098319564476489777683819019804393743491437018015320519875300216900999324120036981403661114858724186921880645336312465690445739418809840184067645505612566574273393385569212394898924877527372428464366662655843666115034221086563931605631000534422042271793416579972571627827646663259031736868813043355006191020412943432536782313655811435747022390779224008063425102030835020338579652677039212800606162331666952201635162659902630006809869508313041760212050801322574286855642965153371584704233962353030806491106003345063581322400238203410269950477235236159540161130292891684296803586983587755036273164361256697629908233698936092929251200100736063538129128000685491706902939487304799318537024487704494893653277845982752503160839218770810410241315392059831203360277919426367180947086525130237455022458302931789463073158139773706412541483097494181698324969801415277838199507762279493713885359052082152650719398535639186373654012334345902325424997694769932225938961631873751668715005794258316212229414039267804854692593905679182855973092489263539682560493453889527538032637852220753717161012057625591174132573142293619540955244572109723661857295941052826561885353035381782939639373127886024195563392158377877934798677467789210397591950303468388749352927844210803677023443385144848378491584090848222528159660548242353368164036477967326000392436349168805333675374257008452835812482802636036430695034215971863149521730196382305845464289118236451409608598703102557416467041720343119414144593387255728124609659778062531180121821125656950721371923848861235974762061278258148469151267946718025347511579774546406629635809794477073621320120098125911926254969504891177425177729385557629002723422034463072598795944899356932885048102460049341955043109281827572922813889748184931427181418552146651414376438612029273248052992687572194186426056635675382192487540358644739596284604695274425939933073185029227481670391931484311715992047768444487239935969919196650544914187721046043620216023992917362192661683440658741831873791938382538585678027899677808527932537480246026293011552126923203080064787206639098970684868343791753644585408511044339934296287288348434220651813420671664266177273952221092411740045866992350853029658671123158533413073788198552353604046172062972855951278049644731176036408559194525640689545699339551149130030411073816532179079883510757570965538630010332446981633702069373165105311905343534223747528602257771292420861341863941503360203479585386731983654262605577211682358223098526600114912404623903906944015039093317218636505510029701950046758025199131353077683681790698076786812605004536876919872746784140788023366496640993289166648999945053964638944303437293243070216757216391507826652971551555047204064582169615254336876238149380446493726500101534605211939287865385841632525954391036228958130369925040051075390298760676802354807972454780218153438720359502978114706255087358467702039327613545139838678081181719467368743724911356130253870088428491389278602242927762572741023292949693499653107189666385462700198807211247850064237702331175951011189234979994853477814910220660903916268730976298475863849173777395316194974310430282076316749686753853572888379833163277995483520393081487117803540116878348341257119416740882704403997096104872847995193908023164210113166888364093603756678913045655722861309397711754965713748612722859919280446650966833147175934520597150785916499172542636015006184778983309073498344077703863119403149225791051729470754176622524548988172634303985761273453591188546013596051109457909311509493585566544506418537955840176809115803024679239100998357415194202764204353701448357070007350507452208566553328511910460883964331673005116507854739815677988322692842930761056013173325982362571993027127270054516442771869173311621484478691789306368141347140081803936310245651149454513993124851347913154117374928626698578820634894192317656632794868843690442457698986487285997071031117412368887283930972939934753348729003595607031063594832320878456633274482147872261085305426345172964799903431091867639537192847310239003743272983029107110792020703129449343488853685419522376368669311154720906981518814137453760135897502035971065459171292219841217234011063105524113041739757164644980924325222097561167329056299910342265294584462261165502753781566767325855343291741370563743914304093774362836871022628230334324878637771137332608981225938733527178766996577436232185722809986842159028887578276374228147574398530340030393018672223732130635504118827617213683287061439668123096630376330566042879693540267724811104704931728744371039988083993608453358524320490570838910920843830737264047824717345868488485881022925721402266229127427967524595631059067625233561170237098912008663005042303312588380284415295417657287598427310163496035175106009728896729069337223243015303138566360397197756804725036544114076354619261388977448608635052658235400389750586488110679243020033289086846114764624466377791937049673196994037945757092033626037627002312104864177798935514637475075052051264159400230647806402663495852150863287237677274335748018141021932339440011236604688672880148585481689462929889425400156390336940534796153033911765727011805026014187556294794140677518229157324408571928869581813206031179474850755562288431056738704799222726155426146724975427438256379497539250730636469393592641357910146648989650810452072287499918842884372972909639310168966315503384542809878724150978069443030335064479278875387809082485788333094756077505251528915496736786554348297227335440875241797188871173123221778922733039019083031030189819495460170956558831716944165292897731589222100214006674800496477394031525471684089670029063185718928778463758675623618425968430017285304494374938802974934620361108370650607041547633660872571841100465132887321972700866933444557052051739489696643985936745741364063037362057174055658216712688231144408172150803270055142603287058699307716807111050835483157679872151505114343854407438826704676923791420593551059906761763070511053422376129309948302930132563571935093289189636784634197551427823899822554553177492836003904238168380098053317818106888423458636529668981767980254186512272013237195479022760916126200253134075834063964281097997275481350507267361172440346081649845793767787775668728426143826201227546266081963285769250747764365120014982952650671651859986229998926407856738908047896906680040773712621218426994975897832531988013997022645278897827612146183228963016451212146090135866162647421758217404605286713884463003080856449527604223789132968359075866074373454232817628720841018685385704226355512398428880421421548294989348427251772473801891685192152723396284116906325799889244428900660216251150795730451448617434019115679101768659456823438230294388841168899593939660610082346244610351660800146878830066625596721768840175540073538331762064880630382784072277979943026716044531323058126250506361565582961571582957558401912851866198137280570817514780435325995695297137920271884970496380566369151326180460582422181619290196625056385899485157539536802391615374451017537706538528497322601027442324654880811513877036925561493465099481844032879397854844957124345542562057214164573358874403524083877368186934391734304050544691389431466488256151400245194771879819710250896434663814499343785640915568342775746527655413230463621965818304442251643593180992704390342034505545229377704322522291973985447082433692265807002871483272769855869774563054080527956730103186712123397652733224066753223384449013024090638626342323295843378196590415242418649401152575018770512355913404033766315018232860359299008355213846598664062119136927923120430253354337124594461086784314985823732433174529721651207457493150478990774373132977672349923010250529991489890300564832367645311568614098585760672992211397971876040486341761413734941602791256343376530797943301542531847359750491253323800820596126743668698756602364585462661727016685255402311317573554669710691721548381610878977202713165106888964996519937990612155723501719684571810371523206448300276758706943398262993048567896463524640265984776759867848745322148661382949866840614263190941296671834277972913361903426133248523882485505953543475810098404042672732816814422166726589760737825427387575920701591954556853047522881362860925684989530569789030659692818399109876258608962192299878574261225716730182795625361379891232684441686573044434584578752470468415492455067583577676523312984014375207206809624778301717414625366717780868460790598414129700359014459955483651819732739226950858149833255249428990269637654744724863688456592802811592762668020548288866341801380091877765124129106190485161058200839323278866459048327223003355337930146437123990822919172688145504502108714407612950263876317603616101581394364900894741026717521344035874470597512304015500756978980079809120059267720445196565213381417597661919368836570586398723506682718203116010264958979735071841063136046826163090859964498695878908959573789763699689122003061007358985542886715130779797380052737112003400757051154481074015685673635550492465060517795332242632176707937423599429950821301681724668816072205529405066393890684951634403649410951577180133373254061916622006365760752745758399339372679203994968986005711142665857877637606432586998047435194898871005344790851167944233514034569213772470102803994347751916535647244194643337602741223416751428283224970859397334232313616018879007673590761715831184712529982228501733985010228015357939540915556900911793069937944208173878308773384143801602035092490787951871171287949715566545512752649083601678155178686989066207636227797625556341266257162709902644990976618854160959743305322060123692336389055514820898629540672573441084829663982622625181031801973750252267314847753908061879314600402865480314672213600223945812861409537526340563348302506383568641344526111677386229638421848665841871601504230703601364512273218111905683415673967851321137440833992752967972628815223551182118077753460711039436455143272145271096711013048322412620670870498372251060735832526897596967561108745864819191136455581005191661455425760994461287995911336730426173871549147706149672481678057508256505362504467066381212074518136120323476172001131339838941014941307089452761659576215657430020625353611277337551428736768846156494692439139005944748048407255191287300310296937152079712373196067371922414649675140531063639914549136644826552053151082666231396883387222613968007132128482975118005935549445922557359682702867437762587898040899748828534323286282627541151763060014121871441905143913743069479906305739121215771849462576090038628113071460046248561378360063335127980135239680229341289354212163038542834136007411039227513580643091701831298823815408130227832598150640974446179048900236267684147350009762034986614018538967564594322601507933124870169216453515695936723341951801625852458176237334435302095209696282664498466457731013815469487088509356619030012751006183163676943037869271104672726812304274770697036718239566927562752941117813836813936913937347630689620161445391961428268807132463362590610692138842963370577069028941933066086094352311767527791320979355475482556265478037418871243603243598954383809108541219763369434230554115044716162630903026929013972059694490456823299640363097330670782415577300884828638835545880277265329324543195010287310388625915937322549338092688923469629240403180838590744068036094600779645540336876699183462550162597373338159996275711141324542325584899920582881090469639201127717354847127885208020918731815939226589860978965700745088149428453356186231767004536533878167289000376595679308071441615619722243424784282897332428189639670587227881063610709907129422867510003015226129162802147979283328219660783450035605728993499145380275955628688697962325894775769851218003864206626697742505062569726223122529821112729352228376316892481737302907757141041635165913502519421967881300375639660400804107904072333897217555762004029287605493382776367472071214750487859417233741282638727210952509930602911713504717024617193902699727441729497754431618884251470127692046056686127460136293560603043060758728967110228787563216976971211337107982294849849456749425463462944231915983251436697665653920683235708940280277502923155417516738735606263716314431034130038764671519323586444536873590666606994578821106620417438502833893129070441999835995794880433625800588213429081332808586688522111337412901464335820266634646270229094021756473082487613542007250485809936297291101023002372086009512540710047319580529202758821269063384655980088154480883430973736466702111809540590840508911183339067865540592640999352195191506942455116758457028928868529827337732225599300800058460773429498115906313733022448606783297396330074935585482102486242516887171194060705842039154449355621675326978243250234403112322109453301660043500534586636428484676560120585178714263473168599142538441238601468573440146548463726442775013638948479017657227422333406554071446781320833182640148379565486043352024930532187893848840154619762168131062812907857165790560264270652386884809657750011511768081632205019881674010390933195077202584516932779445817888387781383446348279877218713146915919638808321092305331793720986806737471117408114412890813672401461851895379626416250680945209652896228735409991073653211869564857930831894283271507110807445489304191207206954086556182652731894171676009524487030527359856770950981121006172240103334902603833938745465356776304074471164629027631085068324790847514818831349916358571890114783801547592051507870599149356526787104837366928466757196493409404011257324389710725306721820696272009346541456914163587210600210745747769950045627065379021364199157122784774887685781171207163815894246932263494898510721061327111034701021828096489280748708770304286465228279931325146615336729152199573988110848732757341110447384585522275879038129915137776180963645125132809603764081665040858224715624815885042675300571717404464392900803466935353104952532046102256741008626217955141067790097318668391857454335806689648701792309077522050056561852614748562569659453555459097388112435129819266233979117999494875430725215685766906829884429716403493673826448300684382344166158734876308746915201198342607631721476323872954258109033599012793667874479752582539217010735980787274139388488464984974354455285288497634726014597582107589735006981916674020732259499023304252229953645488164531533056133124972590826113336294315093868237770436545757508542269341770386540441826799206527100862499769288251897979417692055186386585120045042250340967016986198347720756046122203722169528085428074721364313407012583313994462691041108449921711890895090743519751233056026328050397537879934726140174246509112231040210551639684485678674148485991847765686250757416079591168673077011908180922385503482991453183547166372410569234390406440124178986483055277480040471476170061422184376423171152993875261568222915105927660470592434025737216673718345270319627636760909764674230567935735463786667281757609312317576752604088552088866909306587873920252304401707104916821465704232606112804097255046791073380360040109615962555468815926703884261569601308066529704257294157878698141688469313709157087367114742146514990141281952189400375324137571972143859704615541323875998625273843787839309875836625379023351560257368914146722799168345768612972953837291528400086526483494276753674834908558483331185193377209429639469239238289999550504886133508926828969745888777510454529992190304134146753388089653553702352964630637715078941592257088184038791185245844479639716250085308942582071702364413936033656920356943459763424013058934896636419011903325054049226369714385147680955870763172936827457586717482287269592853854409620888896128565680740290590946418041684107459221545665038794110420342006049620306851777509237739168534574543964888864396522666978688726458670009454425570500782159350141937303118114000438129991000903555773159544985741495307517552509042023196297043982886215312826254715210462397414732695596588235802114011455489713187428490971082751658855480080824579898564412898793707945703452543459527922234637469521950128224189612449506123721044088240573414485978030053054402819162845217832744005498472326790079531173046254930952607655901386472642551600651125122718275912691207282557139005077271985324110930125546251985969132350240369221603002902460116928515885240622136033552336330022788176605256818115275543451484635206889551012900846448108188356200363290247248071769956624989292338604954723313740594026692035251944696916303163636956628693013514610779152357777226460218987653868507243985638842081972335994518149374374762759547904467081684171135776787139956317250395898916570250314481119171375376433790865512082470951908347010974584415298595065700781632275395263558186225191330748141716936025086905005929341732427859874078576318013730467140466301386763403802238705074883653090237042920747529453958745240166525860666502377398176339374535722583335064206816810596494764654346273162377051775444743630945402877210794728875188042977234774181422098973874597057486787370816904630818001907467019812220778999033594067957437450721470405279055092451983186739954090983544318493244017355062012512936286432516387515873477491922539776323635875966206444686110631303850777009041130595950724370725712353885360375151815452356932336110358973699040024479161103973109707472329762102045752185579618347624023204451404848455564178973985151629680656529554681142093729662020483957772002280106556548150690624286144639661523959991701757011602128999272513621050799624655763088938296444228860090819608769642686602703583729884513053940783110119485885975856090300390539865345395431526031577729662471500529712202481873507548637072730662772641097939623418969246061693316408653011907209066935690122390817170045470239403853369037697179655155448726772361102520552446402929221152907637134528839918741806400085428617804253464371280738796702587410889705737829776639578003753101994634632922108441409297195379660418416848910543546053839483156144101880238515612931816237731394295588895311126377141844205444250572745016528217537120882320445417264442287220522342450489239396580794507474726375133656931382313975263679159175457447275752084957711649452924872629498113190295387750180136609961281893212390365790526736525113436851450707216727056065024371219637435082931696456329727827099297872999253392563024219552008867127770532727795139285776442408508008844114947406389059875849564013490125752350428213986021195749139897511505767646949965731078973875520488185394730261877772734254154870397302142844864579034883822201447921833125744262560734590470236978392947153031893420367081978148215259541077714695596491035729321476998112379434152786415481118431608737556878539763618427600170148160056682938172278950572121392035438217645623595888226135811657947681148243385210875674009174741540572583231956753786961662392469539298626241192352138001162407907254050012627798516138267135082939110345053739378704728392215211764275741736636453715689152954941316303679116696598443751012359441303891041767032741136620506581204245650838076873634520714563958911556697482540485691507169333774632145406019922871017387686593131835967074835394121278098905661594625253364666673786663411042018471856803217787983762767428468237625319976350281559586062829512576662243413426975683615105121749701832671435555195572994850739330994142538564444196562002073236949391068941521143422453231384744386100916435379907797539244694311849579381754136099198676802333488359741508171655318874529647368737003855382674212937526229772977421537268618066000720303275259580592483390233766277865332259366023460322552914934543364054641607973575077066226993061019241123054784366439483345272394190460992557310795238466490226131928991109601161386290191220744946331016488753728848783206470919039744391980714696322512889044804708204278840548963369092878143626495892948222900596933036272499336034076806756610146835619577303381847353253835110301696003346272872206218744097428368997058183678646120349321283157456396209709989876798032862286386891265306282779935897732781171810168349604499373828715240500971150083442725042256873053676219616778832713578562228328368023423961891284941051658422425985957684419353882361614701460918788617560981300997246535223049851705570902534865687100257243553609403336977422508652139441941355028363563729840155820977621469890261820652673794228279378819312869467032740880403570230750270628221090055686912075843085476836551267685993914971443190324605200745905364099265985691012793020206824660820200643289263360488717935116550256596365062723869524960846736929264816168755514889928197634409042500699629171119616972232356529741949343451379113695333149254725307616271787461452603730595004481483186149515145062350666905864600786546047167535065081006053570277674449794810102028041111741936823648440426302740978190705007051901363319698383128398699996142470041782634657407466585724414836602167266134929966230111506378412954727464863383926448269339220607249437360904257167893779852524222363849251339677452467336215792937817111634456018806379722176147313285475434391960069179076627174006550877518477616962179834200657355000749799297157078604339185189721340913296351128228315929090387903607110589348714168427316501828590194532385176395894956989319097431186952804395541908963004090596379058927472632126255658417119841289895275707918008613469956519226130228995259587605746605292037181235153871809776061687776745539006332718157460044827813481117741705960823527810027283836679240580617758491065628346737714772811946394264755934748364822631951799982384607386833353642115506072511923633527575121616482922115335696479243330633815995935513534635770998176265577924548244066186726576144536233527147949134322466379650638746643338401727517700170056928114518093302782408819572864647666191004327596429507886797825499200562220242388209482412945828685177046313334886646344863673037796858234002939056451023699005257102588228890864103088551619754501278981545056330456629013452746360274418071260956036046680926539147175948897116917118146123391690240264008185551337988568167231041060463854164990756787823769521349617078843883977835510080517274029706405119407657990442360346617934438284441531531425207613428499192779540791350114704580443158407918280890837263695513553460170769136020812086338213493126739369769797718249682141353096646118681706122182388437221434508777811748120086748947433422345228315552109315866638037695755825554621890560232910951492802625970080360124691790511860054869547478629742756611811142694300695636229438035262846325395574849810181239004709562472693161152151108573722238921077856642442913161568286662624788712235579695902808678237352501549107189866684536533273539221597448407453552623807196073470554180840535804582315080782628709650270174421125699365204878691612666286473108580556950792841047298248353358787937905453047151467381665905423754511546188639178451055610547749927916899529524214268089942981344085925546853491738026793076000733103808166637453541700559327515739421140327782208597682278697240746189319109523498736179743305615579645042381557450077406507878906375586783164592935260389705315064623322152721429756994203957573466141829688237545507008584668265942052075636175087585359906245300285672777062046662509835712921183516997110718366140720080493493708760271998077159988625892960812124638241609155721307869775890535909120970698700305328376410248056423884146622059756750159531711314417283226213969831539157340347866952995805501381584135322234533274464851853522503314892737971543962837572499965937180383840668713027693280279094849357765412601772414527498498614373140145017506492438904071342196241991903586479324138512702984658580106177475494286215223827732613371985940172451848664981554911587515654314873584358434949803857524045612260800816733193101014968674613974871421712443615845040717201834503155223021637380984230729861311395949194558743634484084056924957926591092734484781641758261146056037347710543031651448195248042666248437087050494007898076991097943747664157386790427797906652931322201941731404664218480209391211056694054170657548492005516727911753571615312899335032401960683831903857478440811517242114282055996736125922157154713572216642767745597749484126385260236356789775678431052105484307582495656574383864547076479813512958477714847948944776038680062447898722730753658589416041250925293782728605693438206173559173194253360344492233082627685382794534688568446212888162617233850784971763328143824451564964437918816690266377695566059164667798452245241231090803583460541782212601600772393657486924273371026249731865076126723341907021315226796326576223875215376277949549465079143625440581839325611577673815031264929848146148334745595322730447860501216768707070784801059001053716687333392533580520946809275137927486127238609489514761712839596726839145845839558312283178299861625157323198627504137742657584794842732929616386869691322024024710272051771791648776169482332402536794606822913934319212617882169229470325180725245052359855116554915660915149139265419737823742442346983330639633956194625252537765958773186318281594678439014560674297541626635483478754318192058922274017757395653757592414703288341569916548476109609344960431749815448040423720276673165608197605745445239079423108921820735901825388264167876305492432126936171639104886776542901653539041275711640751122634815218164176358779952753686322078754604175202728618269987844198795544073662195599718206317987216018170280707128990378934122181292128583697977093582750860881384697752622409788774818857066638309551037929041756267385472111899760071610616500433346379229451838983444321564893884811585650106573563241280476312133815862720022048417003633842600438647217938118322484354666458004137291363333997619590070719168900815962430522933233975972803029541410891710454992624375202376402747564068133251764808782379089521192915820530526518987558728611041833593709304129174643039053721587083777021013798345766589363121889164524193062943725955682185013741967256113113965664203068795470194755464710135639371600820570717366334536125287867193502844155089739613366152786119707149753333261340991108061678547993980117717828236112412780189919700860408804518829731639848896454969440044693444520290011699605950650242140103056619248009862393774057642265866671496661800968715930830340805265914423242899236224152928373410599407801809411828025086705225475975947920947054527901291925474975664093886076575503185531849716754657045633526483083913512801828944454772473531142787129926939314731470011030627348269888174137551348856637736277127795447858387105226514562040244996577956812952927553845205289057658594606589471015411144116872398178573607734482395684548763639009226758980324252043736960920395616555030565011957799611892807676487243447368904701902121998338948225469466354020467477421789640436388430642766509150378770842369849055641519018593883762588643044601120677077855432379259697528636893245326653132866724220066796840296606123284752078510273913427348955633517658577350535523895253289466971669532679972606631894006336915672126022066496569659055987731975296858996361525425741006193600984779478690832053729016251079460791310193249424620730106530196102275847098757367618175848042849675259838614768452282379575579268189776577131865423447186269607352186170335691006018351415093521665535837587886165384198173433791041531221309057246600911033191767306248282045507671225823865491328944803164386175985128563460449958542940606069169146029603741264670398746039207734601250403025676616055188478618685802077684680593643721563861073338486105220825669705486350819420207302710377635793668934954525892026877270924357635766300691137465494828957996856901929049352427487760062098521452106175804101207443249950042831566075861661077355367260766440725786812688924573923084791654776915436588816008241533158831638427381411974739112515664989702433047969825725145305419357006055293660011273498584404008719479423913740307998048487832415677678957032985089352119023437366374791138433306088103322029244854987956824958588258182333522245955748490031190880728674606806478462715036010465295869040799333356584211832217359628459658879734091700451800551411701241848171289791420791949245297920355391638449126826654721046238537379594427969758714209394935356455679538530184713710536195749115876811241080241562543236201354685512663761464297798526541641252998349433545241008382888781729698244543617214521020619918014580833614162032249698840606897508550578189359043375780511737526140463158454907501896607448803815832862833849445817993301257239097104260869896878553982261422247325418562176508361943653080737891047605092445909485883962094009989189648908898482321433416825979777507937668440047214361511102729182216812986075888432782573588105465246590236678555785956978472937391133706264197524717081338780673037967748081455622792667140324170811867574110571479607234913452077792750814840658583719693408006222434731947823635351699121189421359578622711403264934360061858007069964600730862598613133729098629445781392966675071382152665397078293701690312682393810392872357118106030151041249656569154864009716882378650991453544910338907909322050298101927233640836096937546793092821354450190108117318917298342394932177481868578081397674364325724080227946241439619861072154985648339167966153952941443328487322888228763510574504976246890673485131180979889401807481446608100692102175770606754404313576488523504429561246571653836855756058110788715416155251071883344192845512537092502093416935696011172605364545618312051466514202093494870317634925920484104967470798738673186618936640021018550809803126962491601679578528824100614300553825580345079376222130422504072409914950250165311954084186249201957819712698416757785287586417088419552237442007004398082522187008347433266176972071649096015683019700685880452282014594085258043668140190603049516736689174203469597434024032521344716063460097171787991010763887458623956942507511535677433205405497462179738976963621425203406532784902779933348801056003967341864714125533531726515095866367548737662337663710331866793673787701750818105097752693995826265344684456078507040265320827880066090945738509333469630552243207041446983396133619828455364081161812882815862139453343916818326191513411473089517573661156429137630748270662485131843511978808082055141264095283226909622200003926772680570205317262010888302465537995732129485904553935606166577631785303463355887993782526309040578890602890610720313602095476506062837076837411700487288337627835473527449327500534803409351594575547775631777380726784004515929057360958695983988723259905790284729946907684775825327343070243711895838552400755679212099203970587303251774605618863054258488684455625513865130718668535912228955360367870059446549607884313558264029994144451999550063935131166534139868451696210178929735995565860247071411616873981286012913504303443201912421301241981870309334856700332476375711223276111678771687747371165248374242017927792884130151502790013608646349225704923746589645884025455241314900705919107402399674805771358934828084023380642461083093271542349504159308091494985697884577352851952420044811375227655870179658136046219404783834500543055406193746654951817560394838332987913792699803426338123611702841201116732751510834422697407734290126318545203029665194970088801630417571230813239684153454001648746440552006480280656948194086103418991504821894835965888270684511864848914991822084570097963637982100057062206306502115037405675361258059059503487665889588122373483908594415379862953476486062971685948626602846477441550122490044346564187399684233032053411285526497379162729128108654871801584387430129001772498272292939383840230771882663572703670012292957860122460274422772313165224378728737882544287135033261621723476880807372066090783897115239334775779321793030847609226577540737684068304115486205243680507052323011744773347564613427346492476599991269786431158931743881578657092669913661519818668352547808095565509644214238716991299090565278748249610257667164489394371991430464352231187493393854001929777358919006122418489142945337313972370193686347963616592451950693735934165524434965893027054302067966341259579655041099008289593270790143188203389129625605029303205028333119982524713913494440483764084358305201563712964918393849719922670096406718531029435277295007797135231070404493984938889408104048853526146502595676186790877934616496311134197405837683673344226373725812891756209139513830558132217807021226525235421916996037642795966958671358035582086388420894747705266087896906627601520136044082643264878303925519730540914535742646602133719595812139703296364856798315084680166647256974310535863597101326598131553967010880219899647901417915316781681636729855646063225470140879328938439799497054620954677129434702265849067101882155103868791463604166905280859915592645514705304707437454835450860535379592802803451748153996286185171792414274370694742065270398625007702610009724598460609931665272368932669528147671629459095286805715390673032982615360782082760366508000894428607347805167720363856901398965092353132835369099581077218112202789645190027264603011840938345831259830195916811898182412534908813264725031689719112302119117996734989749697446989550976134827826795318190237820775810137606380909824769200887682340065161508791426453597501218555068363490673075277083566979356927898769222096435050638694779239233768169501559343739299197417792706024681709754054897287725290734288341834679469507043794469372632676300636779603686856824720676720731598321069283942609136358346199107892944642876116054609899629880130014717318973705291484755234456070552896612447171435956241468050460733727399115887404270864382920444782013569282676428228289409697100452727728971015514140014299426009314674862990002913177433647140576584748326307450681563531070329341823311963324103625010428474082970700739577091269634997099521197408566510964986349880673059594268425755219583100491448918677088412082211990456105460003769413725981472373654109648091078103564229532638189609075684674649803868822264940966305704555676094179698654054375907643504179151302146983151327428763565437804128694643846093345414734853165354208532465028909483935497546041917286302347246179307245739199332432384251537670243383815518341158429401776067865529472551148603443506912285893618122692259036197429052080521521978472248275777418264044465901065973900515533784715821106327059622989119366014692634494805015926106761885170731731111262183006730871592373413939793427837263199171528211521060717375121307932827742865346100628193718442544246394115643796878866742241091875767469128883023893086942399673185652895253501822467837590035874454786849418039203684909255190247279893467808289670563262504275102573844361517487446257163312633160807135251721355082901786979262305657447541423494330684279187224959474883906575792134821633447990579777170023076712162404394231630751165224771184504626795871065435678999356339413379202167643093380530296896033919585229463418261518509128837025244981975930645997605248152214497953443010310752928968956481264393362509203048698969913106186136270112811270808438225274962061032607581615179418038373258266467460495321494516401651744398751223523683097271443994316396289596440068862568626604404262422842198700744195080265656668388757529163453855822421918573454085357495880587143394460065890435782919753361425098454150101121388700342881758915419927009283351410623523406409129907076461482136260739408050363766125628000958897685476630810963600600160001338985337733777582754779226170096080354519044565254584479574124629999112618499821362273725609797892304291716991576017230743114316110953948550339058364367155133569437663993774966425675775167100850380000612629799425860125351482711446879182087473959243633499424985450602456121483196353743524305926514409108402808638969332673295528488431241100589141059893701440024734740466839267608409599762699192525824389539813136024421901284166330098950149872236107362968629718753296104089852969025685879079965460422746467134024105532581320684314905016358977163109970888364195338341591412865296405042954733043528462195501783514595334877572792851474033013708170284982526570011975388062747790560415001084049493072076990474922030659912486407176088172114136542512718219645696160232221222523158817951775175213011010671516045963009215466373358968454068547265339494918905787679083565326113737880278275261939548887541503910099973473392693775189815291496726877335803736686454598200955198934521617799798078051757362162790626946645804995155216126182384611755447336451685342742687101816446086137986438336710943711386867288000722265304782118678073684664016354822155341054567205004685881010055889372272360064551202109014445507775043553268173504278219130427924787726883597972552720545339660457731425823466152312341820383434788699504333108071611388309358587779087129137013016506319279273241107900994971406252126726055916908946816195394298435163868338357444056479120703981003630980510842867039059190391859624423638530424516346669089885013311213667428519880250772754906322314794551605439429603522880978009252289044940352805904151520534905364413328196536857575274421238207727745554729698132147301154906786859020033190193510111297252856662337194558604477706989799089325604129538557961409662938541121523627305178820320974462780393875454478733903950717530086617981265790798338576106811877359345067057307235158927066906901980557798667377347826879599961551767973427006628116195207044298245840135479592724190700757539189001577487930964266713274759845682111620333350851870898072410982902423820776918214752197518469391749186424237128765867004710345778550257318061249576820072297929331496295210903101538651621452564816156920463489790890122600696296178354615448358598420829138718927902654443675060656530384669585397917820153467153063495340507495811091170713662360641826063105240215002474620996698208178480610239137387219452291250495978605530281323823205142991048696573835295268601223597325972062656247230397278050956904032795909088733607575567257591171186905411316945242179671003371852465472720739828282814079065068435271167327059659157483345652091208879856017761725865746062555124176624821525197540801727488938233799781901924277394145997195170601521932013601740378884832802934571997359649173784821710344694895504044938238717708520453569075170307702677375392509927860194137902808588764352313535027284235304114366898920346507402638005233685155039722600434303764026594065984410907262037695112461661271777122910152633993398381145469490159641616940371198671158380719907789237344053081293582472796663781898179656948660494102043268871415825652449785320193245154725314461014394418822562309538275650287042404185958558122989841242757677712816849372864301811268465811341645212441522358962459620840703249371107218823223460388449870259353010802244859054921554199830945461942254576203712425862824739662951833757818309728793918594986768687475918340726646112112536507959826240975967289655265644376078452872156909303893916820160293723902688619212930942925635356317040996965530007193529114370973163570690935996565109137300131584533902423014014375638047474555797288989308740905477677043126873817614383527191680411911779444088804290864406208497322315720387689752635442513573452551653341354532180064011191735153431077414669040086912543157516869925820997007143834052208354218982434055242833736447147949542638423573413727541202989230808675520860839500797629917910298545425821281119545347736376333068002242981675255393566309415820049314650113635822730533702192723756468375120971674133551578548329898515773266101628158360714238293206652990870317806808666921309744949351089017734881406542436375566551187584163474677469935766250044391539947026729858334659354679634337042549023609754892768357280870340247785396492834935746758222841287477567239643178280889034573133532493764113053525875868405409638380439230037291769277219980090850366492813297746606135529776721674448462010979269089488424261653061214373348691748570604001191034563899314872336946772849118870951330167276148407014828302260636622152423704273340542505697208288707307185812633536543255842324956744620845559940112262311665780132678854942759241643771118819507676874719371880072709176822248365743651044333157379506071780191667761874487542163918657545330621722191644322458606343339318694015930713605272131650429942286296283040995469872671952286330865518178766798810702004470966098869210682853241730004525354087408412553128762097322155545846855024248280018254241703447744856546093251676702296923142725677500422910089984981119868707840356603790216916703720422666277446618796478809133719540050382567237426166847237399789477491709906084336720704464670028140037472770185275650706562324005568225819010523085762442679515096301816386529009643394127844878431010258991579087995956717812301113499112729406693319079728665591625861031317933850409388102908903980203045454762471355822589849862078762971290137016322310742548031775713001291877340895507532591737256782847082960592213759782502175096231633923157417741243199988693519230644549877362432178378164355800189293244655677971015417955969820356842247096184286976039934662127832779416656340729840503901609797098053663427194268114047703045958199175141067377497296838978237355394515054977804900711408456394600983182502309692936325312814971727511499038126017985505082090691951100892271127977915267112156811484696981967587269148256197428990326899004178023484279685821752033218274252160180293685188515906136617009250504939247933317127863399609440501589480941302419773734058367056628936493234924578217108206638129334270016929911026547152915523262776862113821745683149391992458765039231412436842094618914175284461026967484952209092102401498662974397007765087249499415305836900837820511760678613458601533579199215696467087163680014728164227563142589495972522982181618350401995067442604795222417202289946836682709745786234722508952846610520204627020913906908094724020022462943561377508062855950804823993443294225745486599599291444138591572093635920948172570557718351173429955665983501467446109750479356650323757408690426909359602889059994774347414536242208685969982334530548054965235579560198649421421141132883281818628391728130935536891213811934567416508980486332756737817601185338677814232874789266265525334180989988188481388147415926757878938758733053852315999669120509662593968730546727668542790145498112966472937732289965049447684984692982224300845358967420009571612346553326195103120432425097486385979742959721002900416354054227232808008188619227922084416290850064135800173218374384257616249997304537728983810002622759933383554749047419530474545556774145112644389601042875200242955989382117645861465285723721883945348456223858227474609376494942496549653932137429467220152301569621308895285095007620995300596514555819015046120256899259348756976518509147257690670036937633752924148538078330735893153103065094253247928232765896487516619689494820043730952172355199298982466991004065842523322592090160343227937141931970436210048367011028402124246529347773583212277285644571052109049960703686303134026608748498962932224885641504885513925988330999025271769708539400233525836777329532732557404255978447038363041675138921999291842274767002235389079252271696613974090458471844458860767221504002988685552962012187622786329649676133973083415972077463307951211077763754309487030493767289370829791855611992524296835280031563263586624133269854511323521500266104964658971961087067105684330948459195739278920879235246255418431653339017405804028792949195357677785922239236104751416040987203021042871003547532702884056432718136312988186797595902017367978420468489618737902638109769104798572625674998559964634991723630737821115146405194342393578519426810958433703679099491322988988746970749501814707025906602841578123728935303436205474932291413134999824418998941105493308268325168575983569570989033626084949611656447094640089147086617803681572491818222461008046067611142899752211737991943664243301003380249999577869773996839385889612775194826942914604587718217919754745743147091796507478432984802681934404768850478471680990191712839546154761531356562906508496100755078253836472852798056681852334404842573333433687198090451937091463920915238697858295791604611098429602893935892436260804662238351921444282659846440967534309058900594939969577608349230857895883850847954290937942373297298066975643269453237416188698277549160830540569790363261355304283413601966883765583313070254803847766765976724655477148500748682876423129125901827241437676151433985392450166511777388221704177782879091826741360115358513039281267070407489952514073362248486823624852264029162643724827841300075234929828399888105741963336729861544489667027117802215431381435081255311077090383507122692972157835226333657702056716576568807130492390398933969511750825568531549613103025600635650043772827448621834751253821996096920010610749204831762368375374886210095370589085258758412228472436434391480157279520113947007053880084067411971474103885251149948017357485510431339643614025447659404090878654497336102396082003236692313445285259662434419763809043769458653072674352788424071605478498438388890936127834265192696965677799064581372377583427650129710680741892276940428142826408601331982564986234771242887891698167216723361275208996840504947824188754735592561728947821929802235647306284547027497116678695629531421594550568627561086475420067795181639030791280297689338929867890932212665622410955738526613946951354718420091555163609425750853050046787467159423362217720735014439710588379588139192174729457258052185495986862219687191910111708105950049552594152191818779369966050432516539653532011256715251047404831641046404466214052880152483260055400787643892687619701211255469258054177758485402118730680568833427041875787739290511866005663891084039537079761862481872010404746883372666910754595025866858370565965822622837138530030860139680110020575833722107774024979312871661110745486674705719904328467705838938624856149879074802182738640063805922792379259863750480305899166093999390965704953158092318086589905440413902570963617492754836341579980265168590614943901539612276324878423404383915341404470794625360250577768236294889949694898819271731845539469596345297839155435235077022938014657979887289420083179393105351843811708328118015344444475064546251881165628620196071816259974341562694855606296111521706647213257772012928948609256748801790363770255618809660704425843958261057593993748617921646980369571761767961571074631919657025048996966616188459176685373892454940834787573210445621904867172367563217866352635270327556223314954871823876566785847152647564367651801360310735061384994849310138201807746666615603237840263769232725279102510397792543128133406553433454795349198415086773833835018582284856294832117129719203922778789610274415427783917473516579904282870513205518940719979223197720754136051726779239394041621176007331966068350861614546915766246238734395503555996745446763379442585350983372266696248671226345237799216427805204824880746067050585254403049060071718598642379069572954556883193398120437265864078114891638361138881690554949104253668499101252581392712161523997238561209085275611680868128423122383805275482420499429419418150401331688604670366575322877083214874113214206064853484493927309834249804201152834445794137213210056063294844813037746707730104212058960128490637325280807047013475631381087405418586012708415927734464360673221826348628397656433528088828771657974124745094771355077609879232278292576979140297099798237567732536159220369157361381499344113627681859422105069941206172311950809976869405787468254370333911664223506823724368814994723516742114497211685808902921961299871975084713417597038308789469576508811484256056616786418928320182420804619699794335552491018122853763148621313358174709314400033559604466799661565147886035781913041272699345675989018971715424858373688184290057483951915299235256150580653586963990948074096994576021696883914124436215609687628579348541559357163536401110192248507514064799715237175078617562782857456563819903545886816958857692680213590260180081196210385020940623706694372409920270058830202750465818575586394745569075820309565028286154192734915951951022249933231620331074197974668877821207968774929049831940790255175000670105996584755320156810952559521809437539473999257435199663122049489493832166830759758820367535660628324913080975766888080826641721448990642629836052081975352026948718833559837545579853636820144526484800024397539615501521755963844316436304206040936330541893494829287110849312931563076738986193568236969532367627536261896419714879907265567173518897338531889718370674279298284991179317616280574914777875307393811832480349813922892430266914182693549847636077436722325981860423093593987731110137191112165065690238861479511981425654678658185828886728773164586833659973607774351967765694207113363983096032076657793614827602583593943546295139075357075393436672862053812801094648222917320004150856526440325395890847568030684826299547689915821769766845538840113615328110529361585676738995356852819629858671659172977215947094708414964534365983628235000288127171645176184419163919160798542845452133251793649070763412244122789193163126991533140428456567900160596871649912305636161559397015855520507467816552400346882894813415197884865073837962476267588922466864007235832347564106658368441801349184631035693867930004321122508426372035600208028232093570053478407163824541990275654365682583844075280454322884403535873977364787080210743811362758120158250998754137893908710853514405458477822540285083722212937032097714815479816474251649772007155277015119725373519734165943310358887236176805889533867456384865438704160347249571450366464202021337457581060171762171134019106908362736537040500213298497089678738551748835235479004286384104301217901806750346930481350386373044757754993995279964346904965900221654799245148289016982620246507447933641564803207911779571143681651679828144386120104664125339452822348168560161910679566336127134695363370500882464650875279676623507844034455846699759111656717486826577167014896167964079047995903389777789467299580573528538375230339963558565335821275055001825063612754849900749728996539061890177591337418953162429143237932844020715099425369962950731955602309522787994028032904784491174221936998311904186787641279867628714282221789010882618850603107476213525224220844146291926150288418473075655623848191508584751159144156971456212676185545266998778984499167530940431344867330178602025902606976049924799228232603736608619353261710934384502678730976151435408407584902506729627139238450356083917280234499496370735732928215144741901547812894117309535209063431958432746395280081426988820733353171299177900801825416974225454934928140142513865342967330604205508786417072865990780514602789105210824387631482258682926542051885843011546683152552867195643774188826316539886163026869521313101856430748472904116632043233498317412592336435027528521777966276193991593296108683583304096179731119968299726839955418378405144353718546741982404734780184826334746283116877862276004340636655554461116944181601313228007163067002029603269150118724684473763857636524312478530523535105180579011039710361504253628136497058395985364157396022417027066298120926368205184363163050090219892440548912125500551509796940654464164552684342908048439775729039471691140344021144981447776535681520748795523201430656265214946313210412393464666004224340511799475218607245689617852107562884872828580584570511475563392937640670161481122759330939662509333698576315135729340286979967526953487418053390947591999774995230754769196595963157114036880077380442024923779695565807188572014236020627209416285692890331793204617421614939587514212203072798377436287619748348219283168025296498223268686541240734824911314882079275069959626185398832087582024556684526100656161632977274935378304774848003051198604079203696541104837690096123248396826054739209476513803699661128359539581817521077860011243724690241135642914904022366240552547253358713070510472692175286191616523065247646400986992427663059544734818156210418294376625611207926605014274380943475025150899308021708048148414966390001182449102160719775841811478319876211349541791765650322825927494940943393439052332382683382248706460524947723946431098960999423218660680960595145590215900692424006713640522474228274524521906554657014106702338144233632455569986988955868704460877541177553918126213846580833462467036661182196925713139465452389575814629136920591429006273880931945799523095097676062034132568601612592959396154020214146667394850413580786690441633507027715615464813377120985860810683475072229256570248147833778323739560495983081532856705585395304217812429410101741973595828031795589996274830930074447456358170150316823370252944360631554979209451965294018176793112936368701582845349257718886119240391813663782127264396229225213107238909802003689448595859111034080958359736231809990063137239759745201078153225776692681139652905860666147164437041091686775885251130623338024516985330937836921724762635406263353254047826894851811434362801271229189422986352583319736513925676337710597200006461832164966763140696506691222266821151307723329292697511377901105834537976431532643981146725761227660270285551230055718234051399284080763479922694110093284486358103308553094647832755727231370988893321586220278000636988625298128621128615060319331204015040362146961629388541204477212811866965429268977717625078486300524002493540176920160621669715600265932191963366911185063582250958957881838116906964674488044557443298937778826258090776598502898542216713531298901803643058201072844388725015251668529372806786004698941352528948251274521222567222647809235745314893263671680941017310184234016072794788268680556442268436779728593515175689663448133496266175646295360248547601446034783004311515052668722430449443096909151921090959094130632593203016259198059058472505429774092035997131646904731178759686628312460510230510860185409982368941708319121707545019015136461514668730836418996397687314887204321567949802914730593949309032311451653394250066063546186757034079540987228130040092513710360797245613347844568305457543931565486687207037599186229854915034263293157234276514063673114363162395068763535801456247265504242486263416801163599241147651779304471656956901857575183914297761858394542741085816636496008091723691751622095557186736644801724141625661133400300044992260931008407006685868325295169825371858654707557418916220827440469426742130418979045217604597688971469747089335497443371162277359309577581715943409769338726435208328762869586948979242930519167364120759905791848823642089750662746378202504988699142818625131775377885489080118999766743367763824530516719488604875635426025295386521911371302922577695456629309847317517252389594093373826063953025404910349572173932665619900654289109360577508136116543269002516272519196675704127862165587780322907924451095878228107062469889416767953913292141688415443321027885532741302241959355137200980010651954565396628264244648099784479374314139128899443364326375642200800312863213274128824652698117194830238217223310624582626860740565979985266189839097756689889511204135273585167294270860143131579063120612247416265894453057214488795902996299646243878001142331985444213871706190183110066549458786381714296916624526098564359515149820081169283635701411749177385250759494236348794369062044946719546834856718067132555668386070983969538983251840829728320661404947665909593582249131389128319221696039100732301111322462279436294453481519515279857529806481840727767092546611812703732390907113570785186708914883241379936350706436972618887662931745011634329599719479555704528847944678686011697098362361140135714197591006524767905177880351481825032004105764248147204540714811475648720346387169982531795683842366954545812310144684764743195628439924352028077067662529233163197854069938952139997965036825756262899838692737725281721161426068685325051132676533167506204412773525407915023316275647156303543658039087321709058375671100684465790415020954786169017617443553651508869454358195613299889423563493639587826774071397648972227949221512548181099586649534037233560218293417405036376708281212437140915608995430637481596021010565835713661823413643989615346169358183536537474860818434802928229372932534333796576997190791391694667589888871297439687135062023276988090337346758913050272351065717645955687191633037413378652362883305509316300485233117136069528984174669243588843610320786052122760286479670495981466514499442675762660734451554976319246743900367970773966327788615866468802951830971809053600857634096612267780107405689757981789831330993437438405041562331242631843871102417750030502566256502529442501827220959509248728256504260763327947962543171071182437175668618577466757720024623939750864013540253186225615600019643404370581866926878813638111147010024936062895547450409112337291791036784473076981060585506560941692065670488487074459931183968931583634744931468452998222925470659656991144126221611198374601141320167368752953147757760120798726204282568438684157512791664848510655471576595222528648638666819835967267346156092594516255716307614323135469524587063495077240427023164620818452429834462910745214371447437811999776919754468995461022209741212432389921277811397928610062870245430842038489939044848252210263424955265047746624537436317499189693017737910650677978015389843988398469762692642453140062280692276895632621598593327369394333466251002475661848752824843162666881334685518073128665530734518990719776595667915469993396934087156641734662264495089647435361123276893667774725924966250280565442055627411796670760329445359233446371760885735833623889338844397129644560860752851706390487158971360487934478307752939555638661372333213663040086360511015965130617032318095319201030707966687786806893634010759028829751032633562343400307245385434227270718360773782175720143604894548220956828872144809051997465593985010159139311350786913243963576548146404557720266939527275042319293732502740504268088833507805485213342235660321305541178240053844534710519225448403593233881714818361930917774052101089032314910498581363178104326887737600764226827008768777663981397907760103332700618915123737639072031661259920064367673260279059688046405213995228189295263517820456246756306430892774666846376561648403806724951155482708006412291305832113788137409455485327084175302896612131201713934376982654849365497309633853338283045914121938485413695897143823565524221407963751927317154754480353115779659609829334291859825010507757457529718046803837521722244222643669657694738708127483080317340979283713201014361142058571000612433361917231607600358653408636469468858765072635070072956274089501815301658569219467553195514928975948332425985917859385431906490276425385509644953319607036556257661297381483248446207563593408259029719874131653347469542225718833869209511940714658847386011927972365679348057277878573883294332656576217646756725723779704074708385832896043769519037333607060890927703653426429080269395831113985042923623343191972601708868351921721581880273739863635820457496831084112250763343737893996640691911638999860052149191916789249643347263071346090060945361206871938200137985960542627677941937803092392568531732974229694405415745380687961689070269630301122918491002981194793433942602524347288946054702306332029611376662377932723748800388275096964156536452895765344322845925818669351194783269874966490297212542703591425446618169644333764770827951528236042461340909594103354373575433291106244514392695201910639694612756741175048817338408692452734955948393926875779794001381498365177629514433409360445644412712513422531521340299236297320895643832794131794985158699991980913179134721615497454009776029934720466114895235619507728589103317026254583869043607719948764134934822761501315664622379288029002895559131635261703147708562721579484187741115815636924564799602508712095672084359517814540343398604393928815111760729928319875419420119142164089543734645772091601918359603268269636673825973243480509431076346372526924187017538769246240926944037975925742902571057001458458206802685550620139313043782198848238300418781284080615184707542337406136690581288693250278211357494328401227445419942810406274200751736142416197801124489659475505623554735923905361811132263896667729216769686281478301134716176222425114046383180985716676470759963253015965612610777591908544122026969230446625292135166592914327036844986275477934924297338761971859119177612106738871427803513502022334598596565722971443825999912223695847469675606078278914125450999458608846656636721990507651822618241342421899872922111952507877582594698111505985968707001752573973448029301023693010191895101214696812399199713846975128710481387328266936699864954740130173668883214401733844413304514167020159643296853573875232986088213931495417471150440294434925496860011503338581886928471853320718140775763678305887951609627242876346105815402099162528621391286428383628032264045744111871743668624882897907866377043312696992640881810634132191850172040794178163062840005428003531873704760492854138020242394668856453948638725745626004500331093605508527562881260270811108849541472045599839035807735151690231081010995808390649339359028635778726802332942684332092574269707104629257131515612745590179764750288400377129712504742531894801444917905533228454884641603525297744775778655520527118589664544984120848768070667155607135591494135432610728196423523339310147396260522062943515671953707114599590119646776193260225679549114410189527572601398281101738939653694589852759587862073246533848682977956103629560462809067048625432886746447750030281567344256263019066343731488525166897018446199759585442321783050836258636298154751892214226423441973743074424584939724987272653589644690037800229300085816616774180761322097573739907088024951792833615627012546139384401930764151885289478149800076427081819774450977287649945519870363527736032075405066941003815069374725525665319084732087091959824815183258945320745229231847327793989317718316589767173844416388481723242327716156385403837795307685453686893988244052964578187056910131331760563573320372949694001487866579301331656423233430507202413206931691424387119775443669921741478585563764414332252577129997038173646321383777061069142082684219246448409159677911665934234029485571603756770187799844876219045463982098746280853865984455346605524599817384138996065125757907074896543282520398970701984688590134204497643140562505513404147798154299450538622418622509405069624987513306149739075908642846351246157581198116393187000147891770477776991744972632474377838876227223210705530393407796962324237402209740233566441826632145168893408363086552883320690822578015990053223366848511215403406422617774573240120443144424711401698200707206451534930727380436154369203679456651188479782415350381975312633547668541870771890085339764861542566954773509484284597459877581153256909890751906340648306602720872996710153793006470762855989084770089458690683544438660199829330451355353463958202830668548225869358843498410170659927827481867686629486994147734570838300066708257590828998249647183132494940507073492794234076481125983495415642514840288539910984710252224440851311226050670766864023102133108168885282309058260966678022647072652088849915075846433609171033488657710182678748406597765253054148088729854952852393003554460483629125263978745283710585192285776445415704759724287288133165263105061858175243629886164033437300877405008712640466864414447119649138511649894954186123107902617814195040192683917503837974527366675804408979917010809204525937333491173535743340137474281946231778781872609611075188712500900495442783618408026185099987580243619406423684280149868013232453496479382470937570022221849600970692638002905630783946771237958574958751917377007925681260014109242268791573625548001726211588221321507937772456769759294850452676677977619077893872730497072843163210995312594489446548015845778911942107763449070087808520467650456952525068692610836445405288754383263345728795581271992237353577363713241969055543069369196446786639152863595510682043635581109026404409596640734970034395247014010962911959870174590409473794470507881901382884711324533226816611183815219178839226418654855732985145904821689035960943746675421249252849551094988265717212430199061343496392593011489880575012598701750103205068065200139245630838232315525857387533154917256909200219607433074229964441563381566715494388339587063751864057028734226901422835224063774525162348921834075141414058582623171266523314199205051483973587076865621564308903101840775420768296320668846652960303307321485540629336935955591194784639439429940091766134406948355629137541252945872543271077706634017298989856064289217680900984823325913802210869934377186583686441268238403983846940806634260639325322899921150156473570059038054423973811018045278334055427954056436402738301845468581886417766704174999060885759804682690851611728559490761293835045855055539043314833512632538879045999344692765887323368295796410651507168116895639078777057320589070729076852386765308445043179776432280740411822126594586302387780249638494118765553573845940544946571219400769313161897238896104206898700466297812765715408558396315659499819348336395246928107156079952660318890566515006435405478178957692832299295579920262780359767637377048153130310889652088398689659472573255253386111594122537507171723861248789403362042528091726898946692130622424063812806307170549606369780006439323475192432937014532635113161100115439505574193624077110192542102181473773528153096469926574478371942028136628187206719287785070739877071733125706502132841914795145314843456213439320532577828597469566258202252039190708617798348990480536836383214582424169929461953126587413299980397077657762133766327741512714474086051364399916907182072489106626224646665221584340220870121633146002359494911638428806553471368086901738165272715587494517826629595788475636388157427825970917873302181743644390059111187893595758615537756590766235462848603497106145046516716452334124203117164783991398235467171472812698185231142681264659081423054139146995625073242228555124063232649754208808640173630837048938124425949537286171492131250764528360584886098504111518962326422420319026435068112484739282330845985273328812611951745637207736505307295037564962862672976635635900698889240996062026422836449885258573960776461562740814470986213009654563671418607554455639413814435769924995098744970861375895566355731321561385298148577045346469232582380448304123905128866761399926664122414011204465136322508833340246944720071179688298170569067685644158163308383806930143880641067710589503801394914943487719666226474884422129425700053038964647018167876188932950945134999987219665154213123836242375749310531444324297784248890356907026893715943437175480492285545942848345207349762388254251011143557702120538666869680426941247068076215880345135512567238699936455076366946256794014009997881309337231917833039531889153727190228993392636389630839750935258629408013547116849763688441058977566737342063715279740407726882033121314539176775327501201395259976325274820389469836764436316667272663181566975444962776280800213344612163248848464823986592397342841600649872037021024235954469027031552979729267002026190512441980002180871081875786480029680767245498861164359663858974519640864059013953892260310721746971347628646023344897279878587293520536256027603090294319355649446214104788654573496981016122312039094333523034359946821905239830984632148476177966113935016391490619663310456734100315695406835948536802692399603683775450407133015231503505387127981483274806676824356990300889307834481158021276242319574688784991098733175137576828601794549611548596999536262332556241378484867446035605197154201112991182667650189859799867329694500113783430468721551707194655632210210808956416865199919386959614632484604770912937183750012858217183334479479482564091032961254637604156837585048321721027326132603866582270987510157075994683393555614767267737347449369016215351474322861221659148661460451065315208965971092692661650271476783263063283599225158190483990972788291141344017543325066841629669506120689629680928562969036788357791728326764266805850844380857238366425140718729492527196417768843818795813651743481875824028628106531843967141740222864133056196204599132678835857147932297090713283413070205390145995221268022069437873646123731496373876241375258920995857575410062859841835457683838646278901748113415912826076297709185733495110392386297455570503870563367467057187296970590011819181063999991714914510000746803621590151257617167207135537066204229434009954773513152604519500684928045046887359047097717679528720575917477072179404669095416538904846680527722866103880791160625561292088383165960890694683433625674558733773566592671608145760471277868047865825813823465915690929554580013956136914621033380438843843230658421501558416966156566208004287736427208115071064454522543808013147348835250025595533338528034565443765005105769564372109876784345317503007076137478974370421381051291268048533643599909531916686514057913386525132189082487298364801116785573384900937500518887664167970958438572365094231360397545071079546596352526444424300090822348539235514239610553984131699467621481913451768946333235255300610236268200551893349812080619116797200883769139680664226011356810911697985118384725271664603073982458515354293171544212686656505345320036258935992858905515191037517525030269250408023096131224799781340705180311900418431786921059670261090166026541744079704637897360426730785449092426023773055113684979641830607174439381345601777940644813267875984531669927656375468879000789957318566119367159367655766289031945457916486999123392213187770111593791535635934054426925962072711688052324738632873331358880490227009199112541294181843798074850272845127798455991995494494468162142522764793284868271851309596957298948469707766956534634407268480225511113235056292129557679276376395098061354806105483647802672324650501819928192413379869469991715382898921510808869771216988015551683085630105678639926035891777110353715181038936942932222444949997526750421751879191809790970906364543134793930428007790064248198608830634672988496816718141394876902537811896919551609721953360714828215836461213311131405096251932053402960760592816877717219985346118385451955860082089271537241857678927200231465173534376560639479014130553052637685501424354015448126831490564855006994044725961020992695754550943197484775843799114439280195304627520366539184192067675044273345339876231067520205622746072667496151222093590951963927130329703672453993395784989336071022096241119225533973608845298750784145759645371403555965793959875538725411485455939749790670564344838144258984441613715089860900740656462573475775059814769889258943610114856759214091030767825507472034783885477971681424813790962108191100594549687312203583904425844769269611654578286470927925900349335062762986514920709988216424846438954042829075602288930935511615343704885430794444901310722713815627486281445228955941751074305288653554668852339169617677130523781284870266414505402317400401962792008313238379923746371630329546872361866760983917079370823965013459822211670435137718393244571973092102607538710213221747161456387488599976472446509106232684316746709334868960479290224305724201649969086884847884062611285455935776007599817346294442315305778063408225269770421675751500964179624484057813044047025475745551629748148551269615367573130828304355041434991954755778918628148654561841083569508123064292255644072733497306957718832807377881694151951981542185663401819695284622396691049818124719422038378431338969155913569028965816724805110790257761900635420373320986200135787887914541609548117158485144137589325700607842545921856678515733357506899242674620347757406241290428757048038154506377956438809510219375605938578548744314624421560396544792976457424044363981540603514170090182029760259902271891843631939774347206406098895923815640811729427282195532213871915932978417852628719136753448413074090839167553862904098844371260626175161099873260430466956606350541749189535731982161772273081774524160427723675273486805279469522388471738113319935350004662100360060212273308962969984949225871030251806475760229696770357935797668430337773582082738522830304228348557712411279144842237916205531893291614325507079425439442735021250878632823859883746423447320495677601080048131659546788497241033909807608348032212220690248373984591190690415512257447316932771635218274695000932352208991028437294198490680039901732691578995670989691032817586861350180552935152282636488805406959689330733232572410577494345826992019895312549764700946885028010027871395296976957017558018182370142089880169925043623544773387788009381993798980389670473371906850612673942559773788680255122840289174114789479847968040132431507240948585050807824815615871633191408511366432005466236574005779690932988394349238682457836831146594821622117422534811427048869386322610803469055043798855050396449838125211097900833038584062730470029066914429170649155113103399661144953179190720170793809185407091416555361395558539983995868095604062099522176313921464410870594715268578350420511706924036034690207225212777151351193120859984070331753944633396234185015384054991792344690193184116718347543012446723783398498026476753373013594628377244689846563590991799474027977191028260682363148520000878847415172516937579934163430398626628224856957361562665763380921721428793161077146755238473094681478944504967725433101494101246995516100019905116139571006410270047905185847673178715874511336664302539532955106774191277276896774895818863384827051338946130299549198165489389301742942792496341532200353947871903706573483778307632865476529613572833104699748075269187913092659349122569145776068855954835132855882205539045462896719404061241626077452006099391637227701946391437322194141904170400913268692755032175323465004793958044954711050501209790818019179633225513492281758063791477093046079800384325631147704057014930017584697939734721207035598555223916685491544828803034999771048924858221364849198480091891173481979823723713727665838115057670206027019910411886006213259070450975435289075708691113420240746461811750482166563770773282419385682329778227668788044721273918465278225239628924400938032936877850716862361329883955650032480601705051621388449298319644875205779439853483930200995683736795190739979276938331272260776895369825027302053653026863908405364169117664048923149125104319019235030526850020195272526931861857442158622723210910265279933280435062207973459615873874473137890496491103384087274934723110561289516978780130496510533710789212179464638441842395485756678976737583597268028281149636545367240661367455316791799168695690357943182279394497876065653204998661306721167678429432764284746793588919587459634720314965618612339340333346980751879730727275457539520039965407152340760974237728162140876680405586005702135879392439883183166544854016445823167569804515321930089457043901267341642213899954255107861043155298905450563751002005310536239213129663453300055777286027263828503599583509843976528096483753442179783556058686849191348606319803748716898524859780292663770568076491911320992413988187605496269205686505121236865232681702478160682449687617821289148097188852856796616642275741950341321078430347657051393699058211160470887208233027145895856933676715954197498907758116532939446180934942294865332710315657149174699522823195941290900266766238916916581934053735149640423794356714038948998835205439428050971997981531877665728189868833988032188128761759907589707975735047263927035204412925058166515871632942039183837407286249662500529379262617895758793712496748881049712286461602144108780803028347706759389984291769549038987501543041877629206419748662295595603803627415110242353014699994594131862784119033441711070806752725590975718903746691532533541307826805313606632093824866033442835763586796678880275823419281075276902097532152416857415078702252392659210581391491327639998497494353941349945048493710115490162499830310292524858560601259632241413107800520527584512323682739946042483749596705509178026565092033442523045999082804883475680343525986844215749333920794966281538796679939210306572201948815170613266900059985299155495185908687500098917238172712574967466752004558653663467518910470513001901317058660295220411412312292917586763550054404303163040882873328082683820856391671905816364679009953363176342188502282731632075991373079225463038767102063795556298662674218097774856422614828088038612392014844905008679525475230171718109982203956925379943343618424074474662612892425452690597739271019895521178812236369974818028969459459564738310690474602753329299848803868536545797394081987367509470674710298155187591193057798361758970288153560089621275593681528277282779794890129478961659449279383707655609640862419860367975653475471051722169907443584375756571201521728095162385759090754973046722348132721963303760257557486976133878282631806757931177349929162605986787302214189371498609123631309303086848633290643035458933969050129906501258566835518207425666997759772274391833716334692057452617194253636166403607282746676253072278502411074425520283762964314801981350340071300980618033646992857330453082177497810119833441694692943783110543177103588607026763649475057891367212171565226685296031515796568522910605199650798023924064568081856450857679770451598773857505028526056212952556705917399119350483888555378884126006829938672639161200947130338580756267705834855681547386454725879850851261527293497482669489355160789286461205450148645680650561105744193730838692825359446418046397192446082521147518426946060658602442674831537945066208103845211761319962182598638001725502862981445512315932283418938940370525904985955740606833282241783578146252079479936902832623841845497406777543621870342752177185114524818625324058192276147929303876414752419068629840639131889737198942475072885731029950425071906224397319012901522705238403865931002330008571998226410143970955846751181228877717907044206754785776742427330928987696486498141179022449871776554151224986492512474107741914587011909974505096157724911583673485452147406882324834311165518118936071269902932572490724892039774108603330648149454683971719735520975535383361038435313506799109094235175248536763677417674990968847805413186421250451570143893803019092748406461410353193539987625956906603940614305901788332294508169692388185318733638826786895562898638018112266028541012338435550188183194652304938961740298723559857360606818038738123517349589487386318161144167703863037528078761156415430063339600678450758705848628783877283007042147886331978660521069327112597398595630676305325201425389321130576446494074435964707468005691602755432455785572709296064951614415351990258969803218784720030408281896401084412410000967469002113743222117786178004179603767506907586990066626195784889543121012459669775020155620497469071935879692395168225921691016767926909212054041368401586549183402368698061971722679360576215871450243331464010097352143220803904270271478517762482641178540020509165204664694068216242790635298623434755696072898201496154661667085633909001753664416164418667970791861246300772719145805985332214642502967602096842126253571915358467688677545555851828238997423645381510353856910364831594975057122608451699924491910173118799280892167314254388245665805420332666436914430423243210431985408185239234955237283779560042617160671337288168652879604665693956581213764124712867115094069977642540506704952489261928972431334875160472193602506965729556856434161320958958570357378477393862658521602446667629305741663787441603172896316596749874308559899653451764977378593297613883983317710321355186949211258913200225688357499402237022829078626807326416896203089057795078420184546949900371159188834059217886813940290745328977219346316245149866738560604816215121248840006460770025337794525887386192532834199191881895608689200410140685262416845952263433471952632165837119878023206896168129468008491763203870309497364756548033241071990602210936525691898781544824434670599237207428252973797276940706247343040231786915510066543635899534090657932694134153310968554770067298042331226719396460774667374785107489339536256283928097147589481776904318418563858486814019409772614553933907308260039533400509905206271415541072296978201242064942831650442415922246549619980461969528318730028214572948553235352906874612160233960673889606425681942170167867830282385226687656643832440529643499031870878967303366361297309258651989449669583579199746675402560740986485961567599750578954194275941773063753673364970963784679355113564345550404992479414472010887356016953876245871944486406280684550722625364974209021887501620412312632297956212012522282065959282015441847209207072019561564067191950627409715472434270854678627882346756121953389454701475273152433937092910676156153723425876952270399378423678730322070005525895031164739150570181535967585921498219111198921854262135086562823591281468449455170582388085603206650411378899103922213667094692295769380552026698315054974722031483722096336861035715698633296761180402140176821151683975952451258760543331211992530596140520136094947964666239292344896816636942446365736621661435584749073917794635316701767552541989700995208080759316155535411911660279591899937396590421188417298335804669980895370280088676349319246830975307180090834750106947491896519257361433666621746662244679231428535592293139360786310218088728208541434006512069296678784251430528353009359382883109435713078345864514522025015575959348925989570143365443702938370040280032194445912790554546840832497945225043450714629140769073872097372554222034695723779011235494595332240192609067640012178336563020175496984974400232988282557586594911570638831379951513735750796166308402853846022133287836645853569676787842319082811022234438944298105094910105243417198542948546487285204990312226134071551410664970282579644331623559420490814887893638651951325738732631010616936809969869507139154599789209775674279393223604917829897158532278864991480703528320611768764313744779578469096347088477584000340456962374193908732667057320861299203697255074825583931453593868794068894486230550180373724086240384122875544207555711958794100902010543088979016228379426306761203175028608634106493967754797451611913931892693578178972903444302360796712881249306159890928513467160040299570575557697963895532492690978583275506009374360944230126173227011840619362986019767351883647686221071525907663286093950265543015010162363622112253944272426774305672492258604398575519932317920414678412686720075330617562469022427375911984157452539602695125559059626093331224233638162109987584586397816228346943778322492154633768943229221059743883913942734596136669785479741226409563271269451513626556278442003818003045009320124868868076126318137821743303308581488916021429706847155998355515883873849408885719229381709210774141016933163990809210426587746119363450949675423755056305564912873236026799782563745089763728535870232824370928683557886054609817465394120980526712886829996536780205190246904633335522860136601965242744358816924249886512171829225889567036290061329850500180514430691680170040156353015514613284869625567369755836624189025811320643101788288878717216278025514205951775459610438803293437309850960452372990059921453537782021367216270488215982913229243405006987357870206109850978694371757308885567237145000664606842194111273687527030403777555801525555543660726915603189882444262494752566421217859445615496323341814799830785780081974747026577187296010358888198360596339500475494703244590213066534212024634987359318285985250550704080906543514320365751378165059594745870234803993278276436518626563473693281340727588649415772859889312843135054949498356192317773197533142479655795348573014194646979706683804453805683693162775378399638516864654837618554536959196137851430632185338077053522753094277013500061466347301189561532797317386531838789944504894948366620310724689223825259774265259122170779290001885516950433442920609832574593879898430566360637469514429793657381514323634018889530839988217389345931136397586216720543172862343748574884183706918305192055519038137088805767829377882067940653056221470780377992804791361061496251796609605181313103163558724826365554515310042897615955581136546404051294181533829037679200813045000107949804409908063733382017609934661410704363144417905784996840776642038917246713517350670081060928481532551653304626219619912713907932475800302152882999336397617122225705655093327768089120552919582428126282336030694684676139603330563489425406154212531465377969175243435795113080223520513481967082678193766781595452620075105822572887875429406192286307346989231357119038632404241508136142280810807060708205055366549114166353476595449731345979841828756235929965215882213902316552517766020185626010979542182954880885379705856468576593565881340401271837627041930447467828682622814658778552226178945775606317355167009901795206737947161972408655050333690751306882252535462864962656387076370499265715996587535661635940003131377101394582445348043255230920595685348652831072291358631323569091063366604977148840538401026010180084770223821323017522135604069759560561318350832052710327968702445607532817751208146781920002594839921012723149197561675272084178546025090573696735615364412408004112914040878964082566134721798977458590350078563014723063170161338519517619686333797175373627038099223481638062927252081673030451109903725432885756118042256748062151224281861999447498362945874042893561967172770219594508913797803196196857603168819100103293649892221925714746153152187865995634857811705383027252099022520713438850707723358303235587221612867246792882754121124735094164906017129608175112223650146775813570461712263254454962536674087978127740083385995777677524744215094250044004846354558234547446232011146473661663829635691421751712247462257472834170031834656821792815987701879157970965133467199210830066254938544637649284482768235057177093746857341579693032943641511372645264505999285733405014478278736834802185799455239747101378200461444829439479864762792965505613250104448765927289130026872576163861767503619071958989986445395448261149466442011008250006941291188413849352601942646616602278078005959293521895960224719330943173520364411196597438915152023326235939748141384668612113999711074399954859803717447738184548499634176631647868412143579941237770297184220648497572762649796720162055058480198186821107793723217367732487253743952808981067846116681194632174098472977554999770294568475020292570393279302515458403444865310947660807146319095527892022460419168330376589229629668602292843008146678141972501018785533984396738919111746423771051745441687405667376415693347475405265972664970279734119157254584605810419363680749029399641888849912798359848303110611191977508868227210602461374971256785685610556748065150335704637853848523540411393826742159000599574758774763039523774206541596374836763611212613907307976250904390894125512942585977685884017178934427079638888984256535307656025936848866822151835817989755377485740385520922694161551732764338726788566224138836874546970124581813182173972830271516870658771159317738991460023878403072697930095831861226218170285757915687633409986598225626584647906730266033101928057239968160052499708903751293797547894642281863063982577331244551264200658085793136220360295087325001718823885531821974525605609738653200808921867112165156499417434893274338498003893043953480139412579606544087042431541169233416630979555627486129028604331765464436431174726983785213366271571738998956708385023545652932467662516146674915951430610472493188697263805411556125936405118838824700473067515079551255677222121422094977391790760347153118147127920885495853431850116621879367862082947393365643927234813278354612539771169762322655976385132716510006968246347279054281844393513263245144328178144477514081122043153895469455017367834300347685645613137282009829926484281068042859203593133908757498787917604035642115296361495349477232239970720833398060865434622265413499545379466730044336970717043663592455355841337880291048498454520325992851521237504896242780136220392409121107620294287144653040761784749235232733269736185410187404428881997716969213488974488162797400895711899128994602046198416795575910289448238945561542206916647522631509063865622369625926359892849858613074530755442565779594039289086914404652211150937302186226994518038119763698772206632011796621562116822046679302540333213560981931084737356862018331609035081211790481384024446638286527119468794817140723438701281062003642105735853390104350471914773487973939534450166127063930656251369960996787295868381877815827595670400610373904200905647919597935416207762216388877497902112154415826754597422589920989582220783113632435440113569169533562681580191124949423578282162944642200489809710940320319788196250189365522551011470925170720837110183095403068826514419704358379642613406223767402581268015180614604553406193686609721681814159098146465190146044302820351860188715583193521996062032179368816370037796659945771601918331316355077234510624885144216192909974917002141123726802403656593352037896632222994409812082075258188595618729927872209671878799316243994846092628840593197295552064179719641785006089060837070052196404441921905163248570527572513412171039774015323214624569048977420163336177180802924905920661184577168271152068319303758821337997027446166101181192442034106255610047837881549310597547344568535226788295720048660547393028417744606660158700449222032600878664342116621834232068377220266131982429437148863980958040078189236625546462367607669538278255171298084242411710694322805674541687232705049953092234816163076935751513288524711295178570100824885479312880967572225671291443210315245993117323549856944529553537703714657681617323412058699311887785355526217805712675812965860849940464953329179419692582050809003291212311932660468326550261377642626140610377619533841325595162564172607770583061254879072198060517533603227680873754913737049209550526061865421104474192176533122782113723926228128959677891956471572261330057032213414577596682334581275361616097035859656311795767305116471071119635879418360242241841202780926545225566557357029871678353590059651388281663363275206316082443413440620139070496195262792724982371357860271158365597462255377668710448487582051969068263485034735257804953836866759649521882569224652334108369036268743083006582463893638346236825829556542855358996335899241681724382237692544628996168521581980966392671707764098847075084028767450134059241396905353096028570425688774322898495167345926428460842049986488773784094244177582581990849742398747444142485206010005655898150240155435494868495377499618910827345484301265966064768759314361590545566118188808073251130345080598998737193023049478507881217249931744121093848591827258407377867256040175746867259603468576605123868715184596818624227791834337809501607268982314458818475338082503239203100439089096701166544385641402039015034595787316477960110456997620706498721173557118280796667268999947291341727805034341468893757257485852437245085437360635315867534240625178617176937534198993647538733320943421050024570100378940897508436302265880426432869965898442903028849101268628865741802297293847833180743526033362450307204766298758440312936721904730352337220611656397096998783427432652977884356369572238879713640668286011071034680204549034782290305882534355491978441970944509026729737406455447686551986849422676613931176818471647195446647072291589497376405068525218899226033316811602347583412848797775085204626477673726691268221147378386147593391474438360589177971923397256923871738957578817979087642618936927972923688291948587837132827624225250635392722562709251112422976338512657610086285044628283234033038315567775347382149576557737324716645035828846644048774178682234009294871386283844925345197956261771420061154215160215978883584503286307472244948290276949918690764961151234108947585215863811692181438705921322176958537576046974425626083308170849142591673403642535559774913587719089952555963944250197898893845245829029212833620163989481163335112428787755185307843334738804677456316481862425848318549714346874579664040993888114639526389332856631274705666282432905891765352481458870117285927527008308335206976863029747010895499395142597722235456999203632550538802305690117150663929225474438177437956728140175794294480108675410971044291930002691891290894381916812608333573659624552582206087670187484612022097878048719313693682032316082106730685607490621847966394095437897479996682253319530676626648958056674600497803724719462477277581572377783779251663999325016266318578906056886284469665454275889697294784923341135625729183742498473751405226627925814832531197951740794076561683664376034759735879076690103370101970231698979903928363953119024979381944904192226891467553691395443770686574897280847238362272851397625669399528749790936526732887150044862327951659549875251513506016712556175727136093137203895962586781637375508520797048360271758759650428736357453146153432585713850762150872190739739953969064478729715564289494810978872287444915981383096645167942535394357084975268111673782833059463448265416246734313042222604800834195814796311880818186734476556332220765951424988410316566587673904822894946126565598225092471903631706980882711614291125166653416201347643928545706813401606916649412075243697690773604857578036754290090885256375856099708829257682105444406574206428713825429507241788908293237299928287003911965636169895223497040443318895005060325952521342308106436392064773467694416537228600802306270296585746520900235049292645907335024912001009941896604343042786312686450224124301209084425107539274887624864415474829086251041572212481291504916496754590356597950652126207958721297068807590739002142630336633808582266544438876013333618212369226922050634330568894159981558794497450107646863460956322662917649391328003562524459957356270934917280133754628788127521233674449587100906780307197539218995075215229466839417704374966291083163309983303404578210663433570993727902267899437157533921833444539889880925273929641019787216359467332761303623657831573892833925383637566054362097196169967754443590837244557139930282971553958227218801568850043397009207661359343695536949457846538416729999504536875264027922534811989624308016594829414902628353191009740616620795248532925827054861086695574755981644632330789306320184033230673113718066279962121048876990580601099663440583088952968774733551439903404177579273959001054113031206235278719925724564348712687088257034234003861658432412137788992070506611333126539644491621528985731059616145038789182912161066387758164598436127787306146268738463975117522140397067160896960353238967568132264434894896780330729274156384208244018750825973636944731440755231270624091967891303832001878622149870265285095869190260596458001857858237623701492187958253888510808459492741998061860524436788838270483087308104388640912982120379049695699860595235610925669358371268199136272916807800704606786341330269553517481001835731209735708790387157545028959226712730645032836718627483289818947387619720239359281914608552688049893640001823295252553088414058968477731296391363401780073783699399820105658712964345571655908002969831962524453620775272659087383323730150950957642327492953560665651281316640923161285770175035662230257775669263354347380914829262785109009556527461494413982539918996513623460360218179139737321598940964053642097817379088394197075953089684381134198368541988797574457422681461572351326584944882181083165046023539637826168177016521355852557365379728760044474873555675078006785731395090956306354856627595229723364635062355305550472802985316769382012888121590497704839125294578040434790678607692779594115496355644127148270871126506895249676319285513253581835080462708190410517959154817684283232654684606720667969237865528725282547938227275156739840327843109183718881290276268989080622766458832101336582589684189694142763411541048399407790959480862159644722903081061879482139279131920233684453849783440787263075029068060764680084233483731694449894676307848568640810243857536190814833418947461418633145678642083654780013942150297458234071439324336290673083584844665798615851504721164052123434578455568897755213912396061165771199888505449734768798934990151972045595031325010337950268380069852938699452676286952614841024834528962740056075027023353578801440399786390183602661228319864126363872462714667865574956854919079248062534428848726975915014550701923247574220393383102577168029973375146107866338184206495157780710028475491775088236131051652478264881147255206978147222187449555210236975202289346081194099088620332655439028742357095512467144909555090963680137301263562169403998889608451921847070585028961409017711310116224869952232970677163249684969601408995645885097318635983333920850638745305301285106952527204695377497116600758733341585431889575569383382929460667364908384888162393979708788952242262908464553601552426090481688455034597303975885646137288571204458890653567822744727182944785010321808887155457578298713209246826848866474201094364549406714301737416139927662725660104829867249232754709901832069212820816254758887982839071523867430442540770520089922747546120544038080362840283238464866514724311270807122502686573735832208257136364723427318669694879526908349159749650830993943594919178677085920076621049068051578074919444668920792280923686525775169491225943525290106992258541567808765143012133495125873008192774242885002962422291572198725693776773051414824484071772730404925994622453061114394028030414134163885938905191767339465842983356576719853360463551924578164743412497030959798851164226411277424051543315985531357028632410462029904901632506085910381223687852872997404047494760168548934644767187471453200379487051431404240662048141525154513670653302788025386888851281996996199599800791534099586367590566302954369727786959713516694804504977802883627694703329563377637137337250775934377638750241859299727084913093868311600983564270371162971542058055253732991317962892192851679831476375251390746692555951947871709760982821887072341997520061529091947467090874358040953679686473707247652978936990911972206082019338731173809176735515019373137326589341816491215060684036304732849028437317425487952410127140972346171786720047837247903645507964474309979705196853220479306274362771050305053667608502685811505837593734425152269452149751932401441687863047013530655422435095421759784902711379783594085401220595442569544997720895307154574806106389696446747429187581091564617963216319739943218384110210468741141146346665982360520782484646828963059149670893230691245352025837618665556254106989276865525063596344698106684508665192681861066937007340153618462187022505923189053562456755971125063519414390115856743551296798560115371675401636030958917103169893126605054662034529285468594602647223368117795606745386156668557526050303521760706352729797441584968958389805668519341378530033537507078504860106474365530229797771494143442612736872617451832303200264757288423090425314341928840636648839967523517518620983603610572019671391023981347204709386119599946652248613330956791069678232345064218699909068326333777496345174877555028236483207752487124938233679479175817988570343001486320049239273116218456875796930383969675078668643551654636188378666517292053583755421133892992650497323066149572250514870171804438163102819621522196382352979997271696488570940872910182416102230372202788523109117960121103082633646741194735553973964092108621545231766723098017540717701832378762502487786707864144946637809526991749715344619621584513412884222559774010355557137451806827161298420940864591920238993054728278968826311311699432070180523426714218858822618408815208408213410353213050985061238652546781263986718204844155962269530031166470750958182150526061052762222878967140217155687595650027000285972705567071055179260244806791879035787895124282717715877431163732417014639030985369422794678714769680552049976293359251252644663230332564665323923473341850163831440687956430923030272119719194438059170345523815700262357189364624611775324846448677675588856876308568565890382920947571278714844160665951739254937422026641255343051663156232400886216019936975862830264531979691058774479861171306288902190670092473093806995002876065222624027556541149793472600255339426757729320605235416444294833404600846101411318440315276765889522961140677109959505885158347713175879337901303048632790981516008926197801628306280687392144698575665660908746120766790683417018409458767599526053817989156182890165805987497282311117563994318658079014723829399730257281830715192760423090245497733542751426044664320643161598093451680130976829272446251818092042791155587740495560564211070461326244715374240573475387983239110764782806674204115810809297195772131587723969697260763040015366656160564250241760504200573406947060723213003523946706051034588625605917595415435549303596800106546782465212712793747182564271674712501790253145155394767816690738854121209260233400620249726122819791818941367031210399103912027211944013878983333919037645536178436582125423458666051089154101708064421489819756142684538008208580133451768802652181976989355471942177080454247161379629310789814406284821145331686995269554449696063027352298900137015398754583553630640356830938393997773366704283061012152744746052522385148845319777989480200408548236647737701385551109740554022586834318427163561358023475397160163292358923347599363969168970552778478773311507260852292091136275582433373580897520967383360791803020896115379803491253063598886827016819420369585655111831451073891964452238187852727605817409860425368411417509580144619586878005716339793660783813271808361216154335155941238619926665147619816053326072305629504390701100310767169905079308416170673375540605152419955060282736797086860489770089152060739049737860288865213183914638199752505877134241218766281237912892945159014140296266915676955652054525630115970879795611139367180793269590143965049282311671777582787918099748017759930358567599003377358214532246764013565997337025100647035425538584842530189458735851161749615761105206748270242593602385656433691971264186125654729517364281151464556876438961789590183637696946917541510635586233194851900067696386108503886331151926295772112552109372579050185019177866764619678855161937373511219117454227128323080799023614331293231450869490239131887565811938473539887305365367222558549033126502584172013564624583521102100119438093172719802704470369893267793633206809300898076312913017323113916622057445734382412685068362571150840825239091432540497519708709809450789651726283036616157839761059312187181216378914487937973431968178731661159515521270968906579056896303292229175831890020714534438675440247787864745160775583207004552371960896267217677909194718172998216622268887056576031188031022418198407553121031377172077885916645963651262109612171465917290304213624538979928446334337731570458048516104937722927848610320979635294505118852733183322163686845902470601672165985107382261265712365875979161649696525701667393068811234019834205482109915490640658536394342470849667674077058009577655596218700817011594046499099252065109247244380825486371165175533813998240232001014417817284274039254227255302956448369482002790330762592142572084466656018279191517217300449488485598614822749789874705123750239465804567372654732094810372852712624466261082694811917448717399206228661172061715383385535908571878724721365878062880258950543488767920759547001756101691400648352548815684174718334145357728573254322310078933475397367407885833641492791675712145862635270435868985380298061809650341656131777700103491394552797447166502519650745000303127695822136787833418627527533569369597777210704454048024833587401071905420244223512586220934920685304908530152915901076667132901464739829907443534254066213556841086024484744746259157599409571344362453434342452587593136765961463905371389038751052610582877179492284601521156197657639456854077397136675199927214012447413407396899015237904387067190177416953411336229291772780479096691327494544943575985039137562589889980359069285063054137634193270848128349144772782408771663654722986158660189535534825467302249333022532002497378413283954428939682210841086866686322205499091010094104505031581514939404743433921458841093648870617438951245215665096458324090685708616568620378637417182668830115448275323385308412235978984428307165824047806207025321970423643289738059085465871655352690788991798055033847016579396616140671094188875562148138308438262483619755299070176295243466617928197597663475089404387777346298124817217903210327029934789038505865561350292896001505250675565134620123622550250655184164794074716161049151044155750683110457313633120476730479015220114308051418217523381715299051177404408392458561843048425834172379452562125500267928675532443894475302507919257131968528579708168309788310372982514403211232760963438684809136398953292144175060519523411019036344038783060631888604911510452305578588651126283297427450285471078866139015749402999305532893797883366253834342607158380724658206890152916646065652547358083999109799062931117872561161562519285607464856924743380508655094847039641361182945713343643679588120499678854269869599025467285221937174867204653571103864118163046754514305582946756036685927820202790050001473510204331720809344920333926337698532983168878327816485634315409152600328824388346072837758367927227848401787568302190469253010487209982798845725547326428135166627331051196126438898304606265769430016531539107431648505005771579614245099126990067631552058508893785755999638601819092370218762452845246501495222728559988948953923593221347175372349073036932502685328272223278784278965755263185893149633522294674364141760019404240707866663771507485217115416209485254328658561599767101908529478546371427631934635551125448664795380775198147569304664964814223425364058215107170043246818894051253469784785746199305411976544103936714688293910961266907805005036542048105318944424426214459793070246465727506837264587680414794146263903450687451180670848500510698559978648965936057616198891051468157374447896785833248999733334916668430455728716539031750081412928042862140638338162837775111089167487975282289155382779340193575079441026336243383474977096043418203617943619911157008228575747198354632526466524448153228648085065486981821830600582786266480986776368841509840718113413385969697070303720254438191785913298596496142466048679524794106986088967461022508909646044890597354058434529863498979817643329082773434045107920804379361363551479108453479109574754511917517109822601348415666230305576350206415464280920247026271336845322899051321047327747682651421885228413604575992915314491013685133337813443302829394736206599026677995735454084275160003000133763801334713142089140482948160781373566116845629056884650180352470392162499956534770358662353316268348124380004633846961601917576474537888608980991602683069467174152629038400862418096953971497788580997252870442062674694576664590935381985430769335222848718883266804735437573083069455231359690787880484958645242878806079229115862555623111566147128120919753537999924951573280093502658460768651206127851669331633218438214968071691777744793043327358973375705418030152142642699865148375790060634138853349999343551986192278587530109523692568436998875168061446504101132072607347876437956909525861019033407168587693451427961666093839033738782275218618691682155585921599410636539210806645571191612683901743060867561124078665631956491279131440596493164727937526266399980903438897999899299242924882476495757304510635298886210926812125774731401208915216182172464565594278651940842685903178051835224811815712526787824716519365358902394813821877648390426070848159428814975892840812663907126719840065207064316757896500938604445851284033571935232920492336251236436346357591273019733237354655011465973338138585079560774095529750761529202010238080976673986939029323439546847818276430949235648232260883421828177695910826063529381874700680726182597526280195400637739903565619624335172953782026877133835143796384848974469063466077776134245567169433744181787877827120067137595199404024318544968560229567811709278101180564593515376525279532349623642722226499741795661683168757151586918119742905656581740058990534374744062987814327093539113090500005343854143354878575237522531326393021249064693798397114320239338747749351460286936905170115997856268056326682250106670762419756807887804568474207388385653414695667873154690945191199230678739591354596395549143154662388142060372647826566583018471321997044379602317651809607030403138478885044735278622519264535476272077596061387363391834001036541010105723201937477899956927156905916997351077171300408375265011542253091565613731573416575107932193180871888936616337798585940999559819207330779953983370511274061978016633743085051398362229318401996798845430292685732744151509568035807920605689556663293451036447506868688644306979858790448574887005879034422133924927572037865892457004846194444396756541605107091380095172574593556702049876664521560249800725442151003618699746299025515222269193284353453740958871789681184002233126555197440072889040251431685800667678266449084843740926036491863145968075626154085355229766376085438246809746473813531635181218298184124668457020505626392798625409140418032466553883763726790694948083306279075587024705434717318564526951072362387427052786934479548892870619316488914955174680852762077126007278985595594295302856332804066820305567686063707706835028833218958800237081662624963876014004431016595013135370703562180129619546767875402397383415572387272436556443740016913229838837035446090714415429016674988954571974195523464832808649237129957617969475521414066635705427621100171114529894865276773490043179409336096557114707510418644569539519646674539732430676913230704166046876404691174825778205911510541168220227124560389620051150696555361514933560012132049455395125708748726260650685770587562439917890571749217554389263274483640811201142358104675149101700144153119460467285738558857211081765664178912996801516486181472232358687288445531520526795095134290369747376553535044074116072745276436274376815768246246516964132825739784185363384383590058981886113481483911263026420162624949196726839160259593118699970630593481468755948220284239801421235016092206396617373818992237264263376899827218209759850625190804723263069798916023743950098812597852856401036307740969076986422260002153123092383250513630301251206400711686476327297264763162668485364707793309856300632219393117814454574473522366187188367186328464927554806349188427840459709947849550277876574474506008153689898802254636904285554528349280395259228304093213266386448189373390070678132222718147945194134218867952587562565306588534958550930418422972480559995807501781960970248091190281481543886854572733494250980405977971066585805925688146953179760928502968872555588236647859502735558607438770294796174161091065554629543086192673340212429118940750684622491686635560715332114329798697541327125631743565829740939393323508528392681430770589199721574066562780339506400166993301064485237506774933583493961660753095733609536838060747975561722242508477064461166844604740001839440472286195541547826128766303970909215626807940161195616203093804447787067158439412372041438171028114197377808308478238770016592311747999611674143735965435057692655134757939557764879591862600750083444807514930120375896588032331891894196765041426283816324731394926685187884594816142317291453287107492383274945709555810854106244370351873158079658971056162204996221828709142483612119487307039419907941761902817120613303041648534150505990447771546325552907250980393699054034774673877846654889855861039165074538919779089889566019918190559730253182868663520899804696326399430781625869580071777522711405043363824285681535168937343082614106048515565358782131281650385747416126767222231429278664088409258374080464585631350418433250822739320580727428510127308806373617803467712497606205161866219424859422700008770924306683889072443581184151046804688116045917568179541450980324312131911441300905368661492263979036584601937534304380129382809104134911666041574538667342916997404727185134937443691141518396258078202529308983085147469354228532107265071150760558614858858241644722351821845386235892234997859390477178078867748308852568848158071968126196021897438829880533774297032209407978266896679559105753940353631671243338540665125374152294973119446741703894289486472175527632564333447907706496933812855162486127544016305227096076377690815363913113693072411050636811976412754477808681686449722505520410095555093315392765143832328866759881748126533220402289976523929084659413946631864979554404622095428379210760079046645666781790385555726072430529845021166835070901392862521514465760757175430414535473093848218062530450998388615874452790706695465536139234504358633643343988298646289018297411160754672079252449664121662421589175079741017900931831336454853118533863223852805830607982020230591685958275017861291152375172189953917092234364332240032144570502599955883329212253287858592743293294852834574612226156313571740920653601534416883095089074937769243168163255615543403571831814981253711489131743348778725507543063761389908610697789280583975200466921474072599366533536580363627152799500724203640749121114535783227407429593469629087915574024437634908344232065830840895405285269386879813517873731926849436287910793562856974893144376383850308137971507761539102376016711439228102203227507000809432062465887969949156195340004495894662001530154773454735007177200636118184928985756825381046444579705833061553220214386127700840831221634551231024389032627677659768649107305806781162486363221014652597892989252287151349908300956180431006162995475426627043370391956011326160627906698657456430657079144576042281300905197110560223015846312893034374995165526321763764613195475260291411213070353473251234762659074903147774509044860738374155871581051267483008534414497910388607264987274732711606189647390655558735873706568528638736402258462788440496160683110997728957239332202838961655132648904555094915528432720689717632171721430756662681425518141725636827689819628643664637626743424217177761267439182602491812817717535951570964391584317240866088956803817374237068819116529119971664139723759122399088879588411407012226080804116130684979522575489648168979271483269742434198162618878627719442362679001711659201612179934969970928344557553196903176878470489132972987994219404445077669906575849368373066115355110309001113745643454187336438087893866822150887343033728830455610425410189400697941421470071959181077700984309313550298302670547564101226143740120766125236683676135754197220381813745105549846683310151193591416063247142675178923162745196692042602560075684473789550225030621987623920378651376447224849695613558122589429943657243329284599772352277089738759225656771518827919165756770605386169778491004636285026514373430908980481311523374106245324886735021499108558506894618707052792115314736036006387660337372635934970243269929702824273000677724751588055136383357283356989589949702732747357889661049403610725624218555181753335232798898570829131615499310316119839920991627161056692752680847859037323993759426056012892130909243081077191742788352305408478046767684973017627918909664115324236812758947716006881191693859109050048071770167861668041385665676219280291968218191549538390650682938679556047205695080724383881677706323551140079395815744515143429642873079395811461302020414490808910673659499912524486627925422346328552496395775065797429845591492084483187946253573277336869876898489382793246977045980340676542176317145422371604953019575936466667484680838778544955558291120654687677191861534517279189986785657346044434255207001196357374915827354396669448093342708301328581918355138510497119159631198876441509272106647502687361370224320066959750359309516627485724284532810823499379433033663531039146622617565282400636340691316956083069977143597935783265308591755793257044531569972429934135933804329032129634577070717556109147873828169408418605908407074378744710086283894848440182376137292302490731644311343612852600112327068093399397965817096862157750477907323642552593203525102534630520988256367940377412636894009667045912779273826383501774154469417846573897379599886761081339295964716561640667183410326398369930596160939002501304969017198701634557457408139375142134573327128676276506465531764242966025064258559205528208246816073236938131004875568410324689000392030232619090569685671733957962258231882695120857078678807424228878359444031846125437829929856354464749185176714153593867806015247049073439008207765986913769081521733986572702210613311320136463218738202185266562991753738139026144659767834373127909582148015598427830878285181730804291795117758790729458844279995712123204611780991759738664311250625090705689076979207898979516781240728577948864245639096082111229451483731191226098076730044238021229002671438934490768108373932275912646513445107376915544102050449858887611855486179831493383880844201751019487503191627347989852454946985821364310471738423036964425543604973313386949836971518612568605162497980174251733344525671220042925148205775772871573003127568867460777775793278637617764977164578468913066118953953890370546925196461120319958571619863290581012526797955314564753764402951594058855095877637506660665967146607533869380023001322091756152943774840049312020893253204793340499143329990434333549268953857977170730737517385332197336052250695134644119129328089149805966662223250990032739596510150435668553881246949154307773874410704309976339031875743037114428866031024035429389512875693067218108037176594849401944922568593527709173652776380677077754836934506554176959659754594841688001420679281301694882178859511587079657973677238875251502932405788132702218220845116671808809551103700555291498415823570641787505763300433887920749473023721793520341641553223413348954607984041740975020911891372064727324606746341840062911642247343452809961046646335510787616266712488614531910431450536838969335921849660518137831740014200052970041151411938755460431300281999871524104753326455258419382558737681508432074505180427833784119880654810628166904801663677345274825865715972104574788203003626190064548100842443874769133657321016963475777548984429340278043160136492211755095245492488016660330436329998927525189522703212927658401987518974661855268695204760803088557293616672284018195367991051014758299624255345067836466587160765525731370734237047865073824882408766029252316273109462968540685796146476115240404935889437391659181587612659767102284495181974200072492105581807002929721991315555678540538375814909911678238673108989421055775677417417811629366941963374720242318999564230449119420990652914929074067295259491635981728705719128870819333858272254932766771875315486388481298262702896063359260756531167156999741389181188983389172266564586490949131146302927221194958344134607669953887526053839475362957960678209952084168273739834898570486889420434677876272748342006088486543033966381536971032431105239329299019503540729688907872603779113632927097437905990305253709812719240529165925316747298527831782418945795722284298329102221747619224333126630315341567450757020540674155487680747371572574573167196306699068707197340093640259065060059418730655216554036889679638771667431665882888568163844982263619085442568307046444055354169502047446100222467828037332444449374049107537392086330364388494032255764780594532278035902986727547908231139144618971091381534747355332092559815960976492290262721400957077112745665725893086727137467435899658554501873558603135638675119335804217473101411480064039377334339954608399004028239702610661220820228480635279286651911057485435830127159718924078620880530178748970942685660902342167588290022217701831940989634448363778759910460031888377297905145693274050618587730210304524510853436437567844059418129496591016152239226837493590803407566710670194610389735065598932476160657907450488653890641141417876589018938135624230797618423350483116078343887689598367984516753671417662936749142711758038979535794093315452818955620250220351342262545812967143658757428892836752430165328784767897536170905518710886228237593736584389299163992281181626602552886498473669159192862805176218711919955561595626171440043826437246139605230440343530358377733388220635013850230511418720118129795450652921327524077926390545099720158366280809440768670198342817666510419102248777553032370449094744832871369084034352477772435044374103548236087213936693213563509240925242015084457699088252716355351274192102004890628487906270050507328115935876852899142266527409159323336856046062592788417393072039307757415805245448942597047140143280922848326216853761615903441420567969185063661990448176376475231375829992710989965471325488073023720628012897191820698110794963908279944973408551767679430069750521910592140354446608358547517576704026444022882356402677759954987259208016913442696359312676272157796394219768461212563151295619571831470821978346581739409842445636121649462535950849759687589452051781991717361001054902143511938385229525586923194946430638850606363216538929089204492860050813305393930781524467406593257173505609096508709084327479689553685615701304482773312206077412397296039090154247072447476843308417585972703867194121742705840801471701123321442475697218528990460362782921143436691819409072370959622570475690598834958691074833260437125638292017316797131313075138937569948560445958344783573243681838101977401355241998603135528044178046423648564193381910589553783408651734595417166673485383206801417474844443225158178664422034677612351778609716522859141315281780410105660194848957324331921240979341427129329478882825155792513769743810204004225374034979496304955596847514510167987969038920866643579750953886124715294190791287649488283213006272853616622870485434985211773751790077639923329158509993782472924796415135373571691475432781469068869014193756873497695855933913409161426083789246902056711914026873314687163457598876884489009752065159267592886426509769171631507635762201842912588359365433199132047176104973428827554200745490144730560130776303709295220073198257228375101189593849308085829853729834626802170912594206887812891959468969859652511524064039903929814287709110993914201895608513220162178921134906374637695887526228431636940565468826711269497147160082433377101338895820805343115898137950340201500575197820428835927720012885265524481309054432203083748628747620591545366048055910681909909044103073442464744997589918817986342186812779126867533195842827088465271794366034843545599434411796448811707530068767116220029146789663452626802673016272412629977393796733602562795847502036612442241955539396475850346507003226115218400186705272126894776853649530382802576733524339627513873839441587840033172459317455560030095649733686310306880253716292969093283050620979811824388598443069576235642956867867638607221419383738728220193598859526702810477252527058010442853879717670216784835960348408050799581515046142472831253319160844680564477407952291819592666759109225474282520933271269950802014310072525018025948893772319269817464935227553958293609230809418681377851807705358611754220178655231428628875404137153432424703997172885068173844452120278706077162167539416761685611318639313700961883251709284192772513463200845805998671491920454783315993488507814878801090196545371850337830569167656755960043500429861240620665164585198304279144038750994810589428685700941746704265576663839227911981969211413993862192905194930985604618098645632400150240854192404443693555235808782725510807462542261037366077151495373155039078675066599497410317942310560423489049202464418483885604243000441413865900288571167636708521260179153399741194341312720472398894615104256520597870639867615704390213746930337790960046165008543671635626835337586888554677717509486045244031099680087853191246880529133219557965667744105395295451292801407000589623730523434003990380854530567246942247402778357978437678671204330554067842973225217006230317863391718759067903169787713393165449357931565481678148333543063849980472557859358744316539693301439841332048082815884823170376123811361089047269359040998973297703187668687946002402134975697528988167039333256089015986171407280014201154851752432001650166331944419816041715368149160614311445987648158744368118199825182715772186463447833140749834289547203768233820794883651577126023609425264680655568089274268407014366502027952848137425606575233043366732536570042288409838973375789398764283194301495976352337919512213791014696798486430287908867064807929926169595196514300168432935299499452986640516633738476432948088774232135213488542571498242159425213688516551773976389469912504284340279880848649450352903518944767203363317980270482621008357866827071434731635921692440174896055973382407098821893501943488416480514003924921875707425424562749675192555556479661432038705409251928977447397287728138777484455860614502209637242638163026267284627577529660682895319867793312018068107597609250734261865259806656193356234214585813790955460805144295617246866086456395681138774444561330943315727219844686375545203317942866282876552471663930806316116840664319595007416035125740983784218073997128170552982834365514171902783059123327231208158957621499815728036245237521588908392429319433626364088562565416165856098502891480206334498129899485103610531273896739731982853156252221832140720331663123360886861319897694879593544456270898949512456424185641451172397669571642778702730748914405056617031627624876149141659326600803649020163873976936359113828636294031192254514441765825415245250734258939792882774897444433632704770602319580436615352843083098599744438575822049117636792747703196622414702044994825795133469651543595273380537590609290219562443731721802240370021444749489481191363418089049980166570495404513737222880542323937937488957976931094010433090656727851774364534097945449501439384911710943230986463775822528202133950503921569971469675233994996751212098707040741354275423383337394487691142455890094995094159314708959122002402475885429261853187954525984512805619703233860530193508606347045378310995839869281972009237621735750834227504808529273902397439941834112975528022121413497573185207340435524496838158276243197400006365644940710270622264836602923570295805928137711974908527769887659752126384123535208738389805214731778763747940903921429551326054153628743440548772492862549504030581824532904133511315855225101114820576138447601955500611189891457556952234666281672202340998905225726905665484639344676666303803668123708841382994666474506238372034955559321941949211456260422708280895108565787760287311286490366989440429895716636720506022194936017852028210873594716190932901774341757754839980154196457902183278614883125904690956064217451276524908355146102391151514645785617043012328334913322760236054751659066412956003055281632707173344036654151263855416071433198280025854813343204726338625744730319408664049408749781436626092380715817540241543478077052969896466104018168705173185031162622874822053630312977378536688864711639351313088974486631676134862502020081712677752184810692852812376076488932897764883955362415425066621043201065303454025109412598986342123751247789284171335877198056342041754648903320661457829468968936823751598880354766441491695982957405608033819529967514144296302528914265692684769943616055475880619122588546656563137632735801072886432435705818241984796770981188179353269277663189248521781524854145623053632691622572907247619512609164241983210206741633565125488363748993609789270049739568657552319056326658300787365183475180220965034617271246788116049859469989201925643363113458612572755601805803119237820399182958549340482546176184234602566007924528079816233961984600178799337752255738772548312056455242830187060736251804686389791516833642470634110807917998750775610420597329427473212067728372965552452127303699671187103795464615907582294947962600277704141420428402223704108228304561879122420229717178792481347798034205979537769712561374168894333007186447914147313717810743848348695856394908244991165896328853317806533006764059944717963601679624768943990181662863632515460655386681016050328224139070755884934865134520747417355417182488297876615736790998787436962336359069344028590363633950334107270590089571288716219745546768555199160014926555159039777265455859909149130217539902672201979476311206015398326583949605264309848564740472358617816686289633223644356034692645516404680499736352876545860214491073766101776599223470017613942216659087063277723567166870861258116414952843416806589936414170760069187995798984814745098297483368039171696179474999625890021682482979829032166030238724901157840319240794067654451751607760226167141736435210494606256643451379736420118977189690581891596594615194677233861036483441611645472888445696847448693143340210635491990027653672728146916770044985213717333057652958573447626526313717434042867479103268269981201668440486555168213526484750848964988644789279109177869862017022057543281133462354727684809683801418770212277715440812371967122684907533076026665516934490755087404417556576174461214932011803630663319715089575074210214685555514160556117620169010352244429103713193402493239720092049645110446709145076899112639025764627114604409195906738593490202845823541502963100937940260985830372617942499478311579327980374039566945122672623779578876317253453940816228307260412824427309054002226697102274593333268575272873800987369016811833611552411067152844092645656662363803601678622207243913859071875425118595140026107923229228564085551708976339670396830586045800629869401337153419438546977067674995562705620488699194914394095236098716525897753721091346509112756618365640027069745712867117824859187021561302041428495546672356691740314501268584879062918086749969108582680241928184259406813026763429847342915234082920507830336234884206010151995504452553988629066956159130936604274950368841621370163165558905565519145475828545332064683402107262637454843378181044658392092986886521957721030894897421376638943736519910063594692321031601888521509937561724823303398473889931051335747572019064211313905476685483985079393634027889922283299431931660217286250516286249269098432241112320942907153940127065425934597293788196927746174562907966284057790770579598556387101953550969727782558524283394050740899231948910547709838406943138660177765558934631660830260257259761914582930662214366780900951489595627228679570975783510634230135105999036148574761885234148587103573983007989265607921796034200037259261813770757429897640230519719657860161497824191158618264768426319587063818180347821044165898704957396586823009523927849355215619805054653293579807246664501404752978466389168006242964191212837493550944061131754848029624969844010105171255887427204416530274739209568491267474451208693212140997192814972573243257947640012603253501426407355345457827398620223936061131123658751596454548388207057006542079503192579513078677373507123084441360312100545137072106250611143760493550082716267632445035337018321240392592432234190019395979938012002717308691329623396275425070560861054924295681858512890410176597944876977697563179053757613478788655885927389524727675503185377885003286199874409959003117712979729121586568672485288259068627221882010559032339013576221091642202741607595663651658457616761684161628822117522249762272719861205234671832698387640116679887852051120167006154217509415884273539648343642550314121466323167237337618290176202743630954988129851243113304532521697101131639159461719603722461335627574367596431438256209458836839737247474732301811512724589756456081868413926750596169698227479581027127433024290739887198581379246262733202126013076368408419988292656954117071643076830364379759434118224170388332399077417328547981415506225837831632167480796742788477579423780701946326645264263545070096158075602465575289922273831577079653311156999296525370844464622110161659746602782031847797410839727545553117593769175611514549287911423710228079869487016346005910151245629169632802270038605331069870532222248207829370212930519715053297605097981690893271373273005694322309742061217288281620810427980747513342004304016402623946562146395382512047427263103032605999817935708441363742016803799510717144482387308592427673871554710532115918832632521447195065512349383908359255084795578939827459313483257310751668580766328621753880377365010348492682297887991816627887684217902010313433149058067078739208606015433042646221330147516294517716906383717884613881578918213036065496937030643259939292633269829729138314624120941465440709738667846577427059529205039865294121568053342856775813169441055952851730261862409070300864882160882068661233398148344337118680495462040901714313677566239676444264049103814834281671901312294775571832182431891476473464388579921323917986040961039513050877092682707360047105739594564435968024467086461180882323165293084888461128454644878663626353828800108553622987921554295012723653494547462775455220358998155606023670629554699299164522784428451211228004336929590985601113311909851152568616193450509620689574005968708411662579226555616784817244181967799546948681945992662270799247423275316639006417126054253525710046053057437069154642299319813845235233577275855293136449542375610255760523809619505050887482544822573676758461213699969530965025112607862237878733091672234039961162572216341186098249655238589540488873766540518230967360946486792716122832157869156459890111448628204317878849021938675125123048327518663416934927361094968519881185513785264708479846993484512231887862958832017946482918798350428207178654024646306622682906007851436434808027326794561877474593319433824207379352178638926787162938050173791074939056641786592142640462965499536233973563087787002323500860646289816417057890462782783891076222528035119623456582568900867502433742829874861246959011767487015225822951675933935580841484783411050008812751005531313411942658046714042949627583704343671505638355498272891114160803554736460663303240185067561789397595861009488445915975322625424098393057813122377836328245882770723745285719140649551482987673372008805202612967343324601987692159770926413357569963372210740678570916879633158358861584727240426614200770753067617347658996727207551136447840113524021292713858547647795730136841192608027771489448339986400169201566885410309737769554059411102289764802380685314421988263045944511163610892111321612082898107276061504076849647602786854958771880127348387641478079959290819238743508702496561783748887034795926146581149917221007608249947881500161479238978820236690491499906721359332364505272766812469547649314955906755955930502522751692151492051210172704447841622142493897068622615615562606033411975548931066385821939094302129477976857112772306416086508960858027272969882769233567861893126202755616245019294432152651426742757567715371194547970461403564215711697251126170628451264456180374811717852055062883788552966962452210515091203050149509110212618413029885573783380013496974996793111130208101210526226873955232240026736594261961362356211178686356918906309864349042446566614156024605747454591364316981305806513660042089018973546656336125448984156021756643866708644006819146363863168284378178520460261558396724175306194011369344285312325773683964782071964838544502861058749590907300528972116983271550028458224318388370407870947520081200363176494212915728100043229243643326169138029506596021331865058798069390014610128391886666061353565084687005850739809379616713261452357942254200752564975933007222018978707088849622536314609546030228086172625313550040476170510707461004194346975216929618319654756589387247090139432718326909191169190873098048708355890402748976923532454467481198548895383956277136878691540185187727827659358762680595413642979009524212199016568371517598129189661613663148298235585464451313911742318151514929831240140565475650108924043356328956852367877097850069620824119961701537326196753587452867954922537183836713746194686848941170760343098218730567831915397666351047736013210623812657280874669747955059675122597057825481415514361350606757514674319996694288605880025417752961969770913054388573754847835927284089721943379893976413167911060337921868671472347237301861569810153862671869085903877904046567227943578575440253497926883178311966582913389238380675424014563479839052761209596199742871992585392136653676853546597659258888062878448434813184890017281327918614385522999982339581446973628860655543046828737571697865313664403466106146275933548155104340505421912264244840747608022530620674257600890137626936408541673179499966071438239744748253720704160438173491819077884306088965969804946767540213319785468541371243940583055020771138277501189791026220841225654676775332088045942471819140469622600738576173028358695465226760388570253739348945053667700303693368631441584137367844490156977664166184770097497906687246351491138229548480463320702454633368452043960777418067267477471062119649295518137481569186740361429382114205765479938264683183203138759252610525370187732280828847675694530994642463079588117568012524626496994150415682319513111726842283152262770974172276917201990839528184723776047607796314485291217288403999431174829804793553783357738653109309966681213826078596517674392879208493094465962230392394338428840150160159185282264189764790232073798998986666474420224986987011923262954159032801454479087665531030500094152484098953050737188528073988482545199113577000143991041432551832258024740225994207865035395799010841512750917993321198727546480765795327015355437152269776504668861022731075672418681966200789690081302262507646659924155535142653900136406776758127855726010943495870833938872330855815548292229902535111721745490734707053523380127422438151997854193483292073054793917366270674179270834352143149840838639837266173650338144056963936575425589298425399178646992216558156087914472166563568176613975053184577273754660021674247209776726653982857943146342102063541826384012790172236755913169678882195838009277875767766043014926657637092704275961737007915931342583472628922896817158906195646711367092713368388174849089822329056529043915995870802097111346553764606517296493293448980609019263594423976110856305394038834136461602183794467157062603252489713601350622570969395826233782640634910825367221650944809022217759274712089630480293638705433820162003936908781682233425912995811039154580182739071621452245071559713035086543743502514103670610558190509821666915497376154156361192209948160135174563200140655984605443134674492797261365619712233510477569688155763099999421134131731709902112044950660891556856290865417769316788778762293983528954029221677684599859309177371923897332927313081452264714868889154582031407338898274494967288231704705774284751593218246956436106080529330034224517667534018574741148741636859723078280874025040073861839614432099341289791887125181677367778414218652206917415737391886963343767243425760090397958085913696483676553752595760921717178567299965067010279447920646105809064570946823974929078072908612862557917275102234895610696154699371574715991040754530033937508351831960954624474036615956214072830406144588483232976197779874479775717852116382509533705789926571895558614817908373214409476729633722660962293038154004063680753619575530481322430281796124004930039775931487355153709303805417788879188699396998809629405405140552493081418518851246313444155868257958826263236941648365458080497693773817958004734628818872807921013929273924318022722263044209723025121030809997757436576244429056148773492846567294656038502811462647025592292567741747867799792148727677627679788568146674103371641628734076837092448158598966542785335587559963462399062270091731012937660946952622416917966061054453777224751338724209045670186824478195452834575295575772094566687280563233726447128459671336400919404059446120857811599099808782387237498470323861347207078476582673370484244923518526574184865025726736874133248383764218352709281128224985087394771820220499677285332334284079663788377094377521734453741100837489690336119264182669760928939835584881021201674371780854307358917537773432876311975593145822183080829921288838768509784704374042727942836939529086308079230306031085103820813540365732448873402637027055494275034133565989294761434121520671017208384832259427701543744360784913227845232202166972553677884203982014174368705895684791464565171393441981930688351696978924776169312457935279604786150482650431509658910045121480696737114846372097282860084750679048890465639363090298088074759932195005242953516532136968693075990435037408013920892078891480262073995769194819033174116582955151075441239722651494606774978096792456206206418046349783120663014325217083519163729252106190934310539198898137909382474368808455488726798917879482483284387379304506672696663135570128780007493668570458962467278237050267794949247998977610747628150712457905492221720230894873044228621971351426653150482176407298982746470722515579913998961530212234352203254046042079298108717052746290375002398181365658281070577993589620081106288045661502078912578239067906919265105965543684718026810409569061113681350674223856992481986524547917418350143340895344317583230726757890640820166464665275700466255360659786015806496003551934803235128506376064557254127514492672275951692145373447442137859821441462736357395528131865389441673527557297755665900029531559414465158909393703013842208134954071177631969749132065416633018028234530054321066103694495761630052420319799912265676054441253832879354808990489784402110193757061028693944674919171461507836238966952261122037223132757981975278084426220273239608229415487977360390002158957371730747717608753952538522902916411163119058652225556217476151076286920270175381818305474703217089803954332504433091957017106946923583482193065132487976763816123424438301618468298008975601044305262909814497480589154151690171763402226929368424438858103624847147670176114260087296884182680561146789436959860193777500718069182021984179450064622477784906958090425761226411934619759220610545357273010549947459187522286763444112138781945283194947163263446134528481349024490342035991964368998300077027487046149416809186154619643926363912516039391099510770108298289816762435379106293507866015221137063097129183226796089620220110603173455758819022420273814510097578185673117592754978956226340086265156317976360450332648225788473601181485441647506050378324180171657463403829589842339252396562840313072836931322328276358396518944022457144289348801635170688253307537435130211915231647750893066807511775917223347676806646220462083269026772657024401823727198188071857235521231007052511035945010157159273191655040802444765163897455167982281205791075268414090824287521954353736602070476050826054767727549383997504825583247757616182382656923596389162135677841440649210860273265882617447330208259936635729351075282270105949153130878235212177185799734994305451246059415734108382634372457365599477849815638688289252631592291007355493292918046521822390644246024937133436634066051897777090918902725257684608735976418467875737782601689495697164439732254194386150888531097641985832634834601972341366615039160570715155806835410792217814626138722861239628761912754471651334064537411090388051708488677402336146418974019211639406766365029083179586213265619803832481559815648450489228932454213945934752213444873484827050285736922766941567608742040703354916787652154939653276704889807750073489569826030679340589548742601987621223587130292598791940016272130163213471076212761916082081082927335052519697106108265057262985797414574841854067819119783904219354869650697515194317600729496030204993901904790160114593757067982704583443659634715417889054686663576162057358442764683470745730406712686328319820310245130637984915973512177631926832057689055724800766505079907412118982292755343925986333129670238848636257173464393712812573531682701565563417323275335043230750987193091033418274970154009409502940713968217186791320770760465012388418926722973209946662108968020590624521451702023665078904248333533081455165770870763237556003098370378988834365625520403374500958740968067917597833022149994720414901429615197424605408822578017979305267947223136612114540675253670411517062246693741858136826489729275371337557678444435605860575295301635813026906001219467100009304154132912304498297441921030975490935021012147524174013653357664771996179934169094448590921128618195089659529235228009028092738647785345447194236013754273630752665764204170125302575708338142893953914615024765389831146041111563735530198301516201970146035259760235086085045900882690736056730127349151959588486340067090885856713835351124988360851087573176025174803347959902988243416914529820182783416418534753058195110502014420008427031916833736214814685247618620310904550098111438384796553261116435332890400308124674549352485362227020769093349441615664767252007298611987796124159084312959031032760063486782833864906771066575507230391792403036940601222932232119422891795140877849248678970072498513666860176165614029850693507795122672321262768555485375772936063525705668625736839630126328047320560210478622865660802726170333898392421310505521758671712346258306802877923582657136911727175054069337308908356860310288645290615448357708997339330511148701697021227459011963019504919277200802725628678822257644109202095721308614517619805145273973841103066918504990394645584659863356588022651858845254082641374173108957859117819577516624649554711442097011387751295392811579161907899684724696453881591844594980353352888641526831907049191131867188749984826866056280017736395834432468736476936517806770375494616298450108311800520811697244522840419719820536016513430887820251915395488418044052374862686819221495092667164306708182973399150187624406177697252472875404686981916002196814301648524462337807954708437173285645817698552813817970468477196319651430048845788755930992165263917581852279005764711010945437691755888162520999086044247764625130174994064472127283057679187782722720369244742660187696681730050525295167684339828403886832745308560192564601089664067325418147016666532651304970007763799791043512113832457758531602605164478654982194414070822720954469683094405894690611337029030117350707369014264037260719717094668012427661775866010959239730730541857423988308311334232875105170417111154412655109154926994903258843555971513621735984291917631275106510371859152850847110938474131553881407598195852705234241151503640618486373892121635964712136796605507417034572189720112167656171353044755572078297185121325341594358882861639573130951103544502559228160114824654608371545994151339607748875232469073712622004914062487484444898278614774614238049184659779896964962942747500712839395600173310630632072494666845447234418304760029121318965306920247910661483054366473592808634411303592621259076929793103980352130534826101967414112991933582772637158463956379045653128620434164534534313060385699909467572746670888355871405846901303482833149294860367860120607524722394804470568560740936490174130511589773405913659302606533055062716148727908124211592528894030942324485460584419249565009927037303940852736054110517682534028560710254536219942654944780997802718949480204485041636643569363943661696060028374554474340929324597121365374984418305766383565713222379565496763093803415442478540059648009129483750673760613309338479435893075187242036314025364334938796126768878232607561788474204976042890470358552275044472872036512500460976914850903479400625690414289070398999388361744061001884250306586792165973648129412936312372860274227193042002885597551212015912123505523445193179863674982867290211086399762355236382653039116620181571148977549415545544831550069770665698810387817730594966136769813790202729865909349727941085892924444674035428846770310098958570181527997412774966741766168704686862149764057204451860852709230924662829795506918897878824678680258408058893846753305114506001296508197114115610210649903816858651300779181275051466377899557815766920751018163612336616873213100548848388858778525046613614862986049302591646968747328111271789373566047831146593862755889253933518962980801791371984534265833037605184064425949290828648840690074757271549741332159279950969762940030438728327755607236513179168656229690656968442447582456017341400792131212273081476510376890379186647138868683786765255359223497155652269291872651181733598140074647176393445994616568323168055728241039818992986829558597735137195436159288598205830336753081622381866662225261496405791122241547426428450990967323854545133171453531685067297087953373673222248247871339801747812332732573689210410688927542896779894426677775367978251293542640096956889367934898802033245210868105067215179271880166973483644361349337423932087830298855903485350695426381176159666944575325684531088484047033292342223328630283342149619996258923288210569462406347195269215661792395231846964446128227283175562255076996934852673905759743507136897339923152906929893412829021098027834255421476597298058264142600216884946287486967537995903270786226590930285005586605014330874337056359369229310920753937429365961321252952958946622114889796407429608641169371521658504685776790257209229995487193721218450295582168483441350399591824142858644353183334847947026964025024989701460577207720459377142072748436547916670330145783574484480884297043728800744723611556844332211753146872554663670347787580801336211435063918630691081886015132015102628327638919614020993258603044548786355640190768235994171517204281063195909923365439587429863509117634939570803724505458000271356243997042235351920140993692390441624776459975373552951447171243299347132141677952868140926078790853900381204570120094927670684376275234617242314877468778663209274047475449210849516352140749569712449278183039417033383042552168956482138309328678588250175799175156936137892609735901211698226023810808034679201798794157280985112482850862835161905649929385686252667607323837836337476840022346442389424285221532380206074311994427231958802616519571416904138248318579710153661373132083970776407589289409269422113976904240228340857122833708240234597178419504691534791648789984530019839380014225684892760945660971350104656095231820527778583754840317401995580056920822473827089127803967834755887628631679165276584089735886145058009382119416637839331407328815640578179697555095083660231140218412850207630222985287719301983994155058631724787413599298057060799615177957768128964262398812894082704284526946487849146545375443446899189357969827918412011660045146043537414364503174689145113376291930417400336293692714354117285995424465384061973665588852548059702089781424388665192083253593230825064269440244647385940435254755803366581998578700207444299667912273038697921856505146656263610232379154090762212408471293483597655423521861580823757579753107060351996894913638689200030231712685512838366287771434725778723414452987054634558956119563426711598012354830026548116646165511066580475074087315128549315723822828328452568928163579334334919345353443102906396008162052243106775059892129503486574791853320410092537851738725521916500201743928926474993313331885944131312911907477381717782181443357037229049865636394731170299964581922762843773968147965387489212994617855593177687592260743697721363543138648314401487998550903939935833966022002691850782538758861287516743570719933857232627461634925939160072641653932163500375938146385412644858852735310868577585748875939690422180206825475146986901059870636811755512138287241971228391453467076784596690722904329252536099057700252068315713843006807381550005636350038905328812920940409637029930001600612195796006269835084153965343656120901492319993944125267631837295121636183486357928902565877169374965853848898651450133270053768378191445693044647757817949671983378471321023905345758987811209575370049428050857390533316407391734114595559370127495389091583376676664738905755382466943563867992764762898533688974640875920438416404754115900425835269635461663434069559387292417330959094156754894796545579383957565105142347563835543290290986853690516563065683321725332279308285858855731890236591304074661416285901381861284103411752559617964462923342081292829782807076822377460733545306443822527352935066371154294250548708273509143327465712165063028558240499491255219639653119696867362469214985427335304131209282230972797341007634966780063098270859841834313608475644188877847149072297649133713131216247228927967095449583120243486700434262720867429642746537916008807548317202390020015243261651017090358596829041974629392365384160282562806528211089837506149544280699750987761637201264490439042517405904982229136962659137900261434403963906005751206276986394657670535319725731678572038035369447623169886755491242438537397835512217203373072400912314734242610188390276379209575469617276677620459449093037717440802396102661755737839053839767941506710430917671378171546456956490490981817752279730491409876254576791047258275856225662964802250016430485492965564249253287070478648790277355881616613946608206811773244073365109533203810582816363991450217022156465362459153040385844845575530330301701799891962760173605560796565241863915247566533513827446761321665046685054935420972075769027028680547052742510193547155868570752552412820345312845165186304826273254528479841572215861167299230161417296720186573251950308496904011857379129113885767723672259733511142126916714216848895106992632623694114202597536129911652552229564416997711966251970067673912184566879255178250025336756089910452266583012912639040608171856339502041355001969874678985994516429403895602830473588100354641761406098878740736697220343660275137511777845838759975154373966692070775074460405025962380482353238489482811642216458673122418352896128643326262047617798852932190553635326790138292645718492758898949456585696540431586855248203095507278557116859261419898375755178400656305290198742240845362284595682316090349219087646116526287316315170947941938970326139921513267627916722160112248292751196910908261984443098577142116777913876269136199941241804310905222679676231930318476129139371823076137147957204203226020287126130674746017910505563842910201430601538834240298195362225584372521195034581269797193076056764198528944724320399709909088669331563929889015335455489072103636152707900914076650048719656769335007770992527919680516750645848901046798673762730458244085477854492703065220358093197986911776614325890151825416452430974074805282521630155873310754623802189720515996184714161640473988712333129077708098345906245265034062431913329789900461784880616964993260858352759700112394613491440079296783761015987121268712835569957688631279050386225215239517030373406018448426492748337803002519206606108723137109813923411534059008493778993472918532609027517591847096665812804787386377718230968745117921308500396515534444542114870458994337456167153693540632022673101375412261696334640048384442982607938263869929876644190292603495480051280565418029094402599628876647898778787208649270904467743796509523991893320251569703724880589316055027677765449959833517977834918404365336398675576939831390857764213679643704558211436282441932756818166188062215748618719994338134337774215514771201313629417135870747952279540098538503776547028492293529082036149468652560235919152487670011806252607549154802541866126062193886519561818191998775642856885340795133973253420760760202176047486622019512313356030688132900999856700748620948476753227458062685754543813341310649653918725871137113269792771720954541506105078518311764277695128283174952470421336457094718297313411892901507618092514337224056014768837581891646891077032786742803314193292570507560389113296310837361661194989906911245714163654477334586996267122171268191330142220875480576998774352963707455559557477795689687524215486823118058737561514855873750580262740572734130556136324879002824733520997645811685579721226484571311370493388424122043050610823313561621067087088180098916078003641451779364502719967916053706079973458645913380852096917947148619031688644713583559084962921930623895100620011097064190920738455258032905895857128226789425129165640556221899156572009841176995317806503609348583635828881685312947817285559810337400588664348894691625232792071937655694019568025088435986632757579178460855585577965385607834816754290528543878514901915280204748854496634438021806079066669660788706680571133229462386934618892081288819917630768538700703485615250513783161674663684657743272477529032523985852599550798819635330627183729078295537789328195447927223245057310814363115048033557132615075384508763885032356239427362197497304034750982744705734740106418301862472083843516639946384415608947259012979058636639731946424951174607415270558194555496365338601780449641344821628540694127511150274238690456287998441442435108700604153221029720100155277552318197426115758313775935063294031961679235430506701704215892265536016721460190417910906318033193126614221030525164999872764636569227682329864376163577792864795510289825712004763870724472763841503298068372367592210106566126577626065377790882351321355610456726016587048697723158583253131959584761321096331967021938872045355906494965145482362699773800678578095889818254121108130673071098688835826828115095126777758718154968403158998501284055794762275850834475311219210469288752070101881938926832553562236460476313754218522097731252455686807247843234756406909777213274455684265773455906846357544612919182220757236055816480183562160150402382458678482342926382140102089104782419220393088555926139360633464209363797999414584824967822993397348936073524495107023803232196984072675883521690075911892942262382692702504635632330398951303325968267709998804841478113238579429836133260540572664469918489638387032145204121275887156480812641715656743961730386384415990351366699802637648951415412409321896990000634150593861289432862917721667489659981404324050510433906982965684726171749175496037390420425038986272159063198176944850166922446207326522476390728376316258259256527934366510865774490255362563997151503958716760214436538030408311011018733154313808859234844704022381452033716631212228618799583451582482493102688611373638556996638236112299806596562198726456671613125357639646165875901226976803779728899858594058530860013806497350811218017760428619649686397051346078487523114545498436568722792767664244279943754532475936013543794423847523156807313599914061207018962415905425619339529526595089560975111643352928078524344651231950367395975786376831056404540607057120544002944440260261521121891018260252532747729296795811177824158827200594862576664359606902245459617540721619893843434875788957220349653138075481281042478091658866067166741737478226678396135885635434345593245958990939815457026165124558304756924147423342743431015631858042359701923775833802148370526634805276112248809627657775515861508245879684083828837903983627030843371921517940020144979522166721488758878460563966554472522392759272765239549560993481872755729879160174947491156714086243705199784294342142163007166509403805162329237526750098087299077683620988161221017193406828084703912380250182355833745949730642997679809824465739696166556474649952071969895834210106673741806194366763462130222979643503361538416226080716201456148453680196045339028034402278011620348861810864969018075154832485546336065322637607863296149102120584193769084649650134522301564012412244912329862669993856590641654631702311655732331917357582981298513075960840350402688211948820932217734266194620084914276770233594877632365828223784640352019311896242548433305809553060370818206934787392433449845833683406763066670530292320675020762620204274958204146076780751573488032590745322642442882153856700715077926277628732252601046078673928911488061469723044888555399621135787135848633325697881689233166540408095000364589436339157003439706360281775272917435789802703907372481885281579317963278360453412421146914387145828094706729189104497835225983484384315725090049234210568924369497138581820177686614697223509074980666421309178452084933385004618124771626256914525068209371064920826119956095853178512650963222987435125482967887269112981900518148833795319952118345068148960104191431169423132353382701591286693365400784992114636492840710202298912425947329236670066149988704758932157334871473877018458017524078659432209697671169847882751275567365189806993917254646532371496434867900010589860599218068787173645823607672344396085952465980114252617555279191891490173737349596477843328559608410095150805358457211003341343534196159510096749236575658066485997042078416184241433300264425973579290474736589938349302251537105214873714430110560142530320294879548202376493899562928794484587274723213517485553806936120327343988117983680033559197363693789543077528123145467536462885280003295760343402105829226213950881779557866727383796530735678922138498750124304830100877713596045760503655055665230028158703019795125805993116290950663908244715316007705211478798407452979377828239152916438188470843430161334488228529241450721898062591926079512279448019914486751476561207145991715408002533161953184027409821862505879571352406227548698154813638039938050775181599155616119438898313667082022059270410753871594610328689779005689184741327322940046022303759278765105175552104180850613131218419858964157926169632111647497937908609804521682057791271649607595239760169565938165236093146244155506622306936072464504833265704780000639348948197902487729307407559725470150332909802062565848437579479099352852671411114310170821305750285967738310941042294589052682186860559062688015856161224431443482205271707490827891591071765275460299355748762625323229592283633838660838355652112542969835391049102827023269227986865670210147450482782009336260003465406928102434215828025481306082793242048206900090390774841121883648188564160017588946301191307201521880637531512338480312936030117315245924774940277109774434584617776835992146857437848043506760788461841560234819980865861241225989276100325737361226539934082699601836418041582402488883782536481957852747997298385264142170434138791005484256684272483149681893513729432891816905248909731715425199005726494457822269864029059055914281932059428386668975876496479561168553341681251724090804518506200430486367652054143770524081942734615361163361608835833970293160256677070190488744153623659229563410858755012017236406079451789847784290475626557833920763656553727982108443640335057107118692363200077546095854460934019666481629879228233771879994676888613174832375444243990728807280476475052887922407455076318239215958757398276005273314664924017486180865643812324115664233038216449840372914018054687665556485701556978178079021108538176719076521682209107867470005681835640826742193370359192899597401079759669880516020957583094720473247913690106186278367312334243086395645830908584897898499863015326382769828809362712868774652329723294427087233681901456376202961628483531843337875287025384564181441520680810800829370186580623828314764911877112085501264351654430352750173360347924535748533917939797681157309087051272898433377610424898947627303187686097443327494444113408619176522821148218023504024696829998549898225205337974396541133339173551042452128639720563757979477700848544711767084894069899768688540959744008313193234604129202735447477879215476213696755215927184970318226846890450397209033972945137267090704393673194685512774697039632927934184236706925146817521799575720953839473667974436521453043246000539936105549528487638057841005522938676071908062097547202280071273974135727071866442287978287714095524589047270780928584236564904615730847373723240181451069650167038490335670008118234813923636614622521289705844874017349126896630836685049257429151157676886949455748206349352408044429233732570384214124007425523606725465872115683909561812543797740532139543053723274844290926778642767677141956123365482540299169809612768979996749891519946678658640041566664209561588862295136674266503714133321489512268779770206008500471331939337975742623622929420089289686883033175391690476458735309902982925257941066967715631590956954538750799530195316939959229229545118795469229270602363817279903511935966822942645455050859821664238128394579979733117961817169851736694250798350517229787499854575414446439335872672045566945514029500168309334705824174364929896872893045839175148185375848598292598180565240524494904706539980590647188172706811227942924473315888239644960084279308348665624651203298829521948212511795416305856415023480813462258722066924227359826822449309360937691459025474863703534577872823993678540783672660852269020701114359936261965440192829838358999766544148348114507641962594477506656779993471204550386120384542543923197672023768795561896507778904902701145607832893410153371965921345770543896947928576014769508752779108114949508251035697852024037056268915499093837742406532604436777770826800439026799545834179143261716432454639497974085302046209181238391444397856691229373682514489742780505101253971020324944615614949459821648542627783198666715117776937156328741549358524204289485850205252423033386842793145114924138152173411334596364825330189854346998607937891628253598412681931115502217300365078399560943691934131809588656268570808874309563492807072537608539623033654703029087718246743391048939248427965614858130498486236952070870523649836032570668820498960163634154505202516830332154711580506706151702135339084397626479458324088281275239931274295466619748407589189579053276266778288959066372855873536954936451378675900539319215943307848118174179767441790938098418262396095498708549527178102138707499764390713132100693929183517732458934743522762145505696696973219163419300165306881889155407171247112264612546957994561396390281227413341594671899576272814710577819286359324291804562728428593078117667146215738546837041574843810704928912462122923533034739618645067857485960623715218323795465733645966733858585939907865951723492155876745607084858590273917275307669921365993945851271465049268080191794945577215339937100704600354756703153984269926632954895989970418387211531781218549472252844579621338751048049434532052998748430026776488400545057290330637100861451266490872627306159147710157215079853608039212932363113120267148885689575483743526375804224222610630740251166558101505557302706073319147836543630650847433488720852397553216882863968010640465359750994266556858219671704054182303537663782942062346128335362037143539168006925673172291609445460951672282232990665426520503615612641691051431885142640617565924612144498395164769784467863075902537933411291613071904948801181380792319942371081669281118048075978105035222965016048809390356951765794825696789077344851209261807267181107119136612365279862368159960161699276207273270499374769105064244755006158104409233252992449595663810198932449092555292238848841626854394392364890573339114746739098038039934061041937562694758861521826162526089235553081347277645267693117072669243154217161454361818567869568302563655018888477281156452089724960468256999266973230384381139465848715256342986382961775346875956754674578104111440426550483812196683203037488476777287285129319891593490448330955094132637200242035979472171408930888568764266259071688278537042095500733508261220873013277047455035747365866147113861297489532166516821734951825094645543006866908643071807963787634126792470527440540699039220725887281696947306960250953952679315573051063364111098854250408792222820345200079553068819509296971309897639379742617806024559271454330359135584481966802237689496125018609930481707046445109450306280902402950693935152484266647389155435499365381568733474164667161908253641412025241289312476669329609762882143325754501481930617019882092307514919136860699171830202935634407477458844791869940601210250566643223347744290115612798941675257636702623197288851616911096703900571573314550089634464083162542199383802152003737567671568779411891114274729481907806931185139389923279799818042927395020833963199070707785822376920975944197658393793038337782665250197157445761662241415123457890874613589491923349438840120810335042213129606404006138282718737261136519048872558071387615390236057395099236978488392227158401098359658176360920226473532699437779322780979005046185352448425991643187910725474188351135949781302842791815316180438085310222027363146325311649264299559181422089216480132000950898643325361430787259776046473679339217043767426778272141381945074919486572865147879067154235162768848358486603896822713094700886451315334693027182220658773144649900789312306622600294842568669228296308158278889029558829703506342482226104979283238920184550495662078832109708778617146641764470521501755753026044374703036291486281876517606018507312361104022196359342827719369676474299141202961418978149435675664363388743577243652721332894716412500833274300104733029744720179438218321482855486328707485962004853623571517468561579503969328028399208645562449097095103059421568920505866156994811081183892148037177229432138640041150143128298064035010167656654968281104510155967764096207647802225347980089912352602584806520985799309170937008257168973818372420780706523606371739252608513734273839137794936179870154016105821185809212304373524322309632098383287436053494315675070825203476688208673607359787008370473092939074486162103044730259502192152351321080850652505112646866089780885545785567866979448746650303217735405277221772352889354603026940918676852739046966042816120494463403546208449651700077207829579462470155097508611864990693051000431122409788623694220894343939947543624738960682134862982546138412542249872151822957437440366350306993148971678555537375707816596171678600471641549462479147662973953116122149676979992511389630588232396885481404361177234428789738823904929275022895626541278635535478681998343255995612113384946855077083774494600136678149849283620957339436078528395355848800657810559294468509233986351074593895704912883647633089173990577933440767142711997920278121399769461884506304987257627949089392781847425890409113243851689090724163307804974591664195512487985992283503523661053193342604706740842781765545929841844883007792651882513361679244944085011877064443016609796222500034706029088109600427621795022235808596038953340319304451390891895200390560934113110888627431313097258868070225889266576353517926231595032792705158820170771528017104640350796748885289717675210693349499008850043979956709292857161558949880069183283165890423810181553847906158888643533624094722463925425089222839731741739913590232021460581376702708735768452660669868376257221609077371886179681671204902624205272360006067865814606340033762274674276305246160165139228543902271850877955741899149236363338256553048143678991348889087721343356070831121270862812334518822028490840722582702026920362071745442489400685933468252501914932578657208750191245231815189117696719139811891389186137895410985702237422119650305863069213792987924110211216221361865310402886171260442569909216849026806152063985041060146218532800560321641610704808014830471103975783887929959648543464604908214226549119975461135549716644728821637489760326729403435643473295437662770067048819714801080396079853411252581482444242201297016765241217619754211598250869242985586947719707003549321582970931543751533889465963856897633436781703073989391556551296402442896881144622513024977520775699038871017827282093251458434558049081792085250951121610296193764832702863393364240984543030998593788555045346645085873529545423823262704760871570867899810023941452385422161539051813834626995453254312228278047529936485803251025789569708091922477361656873055095305293107535668013397625250753715096957947073409058760034363251123748063309252166992529758091251067409422911243676683032027387523924306096725380957637613669251917836111078156933518043324593520139592699104846599393088380289485825499195743216709115631588642065509372850833012379148433256157293428040264905930205075926910990665293957658484047313005628015776458163038284800202160867788691950648933475632562269369559382242282657552018935425188110604527119251594680176377644485535869985156700530123889001333209882072936028070547479319297434821059155724889102657307624805077874417833499692415485937498151287581323321199875745381719182686819212697044517871437824340932831612521931502350260635468895739815260227452953260583945853207763628018832591665605075614135177511634167200979554310501540348086188835745576621094362531331412321289394243851057573765319384591514564269038287311136838448748604368644909712503493469679760147014383724519175131567368300090890961260814736496865669523063686709702814598124592296519194704899774182352709838475501083389697305798230612526894871759024497615735288364638230635584406762441420234716595827351997600188375315956875624579435611631216476666287235318160319078913618880441664752579996284182709659021834919967673636326151841184929865759933775071318089422315322043435866337738865700544008897303904123332534407859019256415475979818472459700582196566856266071559860360742164793817276679896240323443323979178657552186399424526350467384396198279735253749740070805001751485235454621798693509591765013164957054873032793572837627474866749573910701805372262838131733270726040202647209116757955925252376932543368293974360951283128413735248693148051797580340977680285866227309904395939793064785855045692149341449375151845609664454822466532652997593127743168126834870239398614931604089167827839605860113845868639088954811125844731156525276990551808858363143297330722337101540597887534095503434826280576170376120018692737456899813867234215552204778351940489049092863201435297124296509934659168915419521620194512919187804194425184988150836204901512994469831306265053034150399866361398000202246365965533560193943961180235662733933941342385523782540626187176242782615961034894637771773955590800548765246536694290332154933827462032768977257024114972325449183091714686756292749490800034427344952967290450613792746662812455525375642568849569749751865560278495260181125197482841480304894832621395210407366362680349762372647918270401840756824123692841217819658318636124959428938081997530159986198622732878990850989758139469297400726123138223348257839120450937201520712791718397107562266755730196120732339817750569606577300419658702756834927778484789345757498078066832776812756814493460561819025016443186530338822253245273219567007057711718217339111985844232020984074519415878132804150753126068175167198296785863397102741128890061111947939617091399429513659242064868906210750878448288780944116377277568524862558529317624600304442504944953966212769474413872737543432122700045238576249150669762044170501070245192166239756579163765339537313422873085469267254794633829147604255591168431633815405823978899933017406173601369168186090747461921795849741866015121178320978004834215482122091243620120746037342276496808900797002766393985942492601400260878463184852486999528624812120532382706842013490642558799676382526472249857184322236372573393550073804860514460018876100317572499526897973978896850574201376644875654907796166077186126186900936150503461559117316462387434419086162186223605171891982353844505022410807086002004721436097030921653175739927996523683193477467369499293872443187881957984849856857689928670975920845772169026013749753519193255313569290433327666175967751847179401726268256503519365205339347552020026643381810789431672193781414220880458015198037821033639089044921822952689438263107245086281970838210408060665832287413805673694157170436321021859076876678842883087645629521898785822630268227647124721132882932244739445264343937221893664737587714890743515506633418217782799871688770913463281621364875850507277397089154678299522328437175128949140774997975100381096714196258845088644097162571348770798627391253514072168756922119563256653490512959744684208096365572014081739828444171086947732505476004619109945328594181956940111604180605805329606732327211275187919715784931486836641591059735441521503174509195816875754610143958904678065446401228676741458908878551122525357203888407055908389522375033017876372611580265815249565703097990891037206778799609213561017792103957162831556401599142137718506322302857631226680462029079868959236122366137806720940909204721415429979666420167450168895624028310802946880113112606693846530283263352626620514400228843320521393600060129893289051917963812263832616972381762705809846733512622657057658799270666420943716648001777816429001114239068746362310750769385370499369880212343732199181764752100325398708728048929646633932881109523644669033614052381620450869124084135830872689895934072534485142303261665597012717235528020521299466792248681343799188992246514581140947027015721473486264071803429954541496811231898836012012124308381483846158058622614796162275439805470439654332151176112046133402714482750055814773614167972017309944359050100541120134271076466984201379304050795674143514888064538843737438407639675729564569947907803125732544404519018586602927488591206598397357663051828836926953443871464759116287454662858683567659025681520507585509043037182506468799362148541100011427495750266386564618121590081821667215044675449949252122038832349349325733423316745306366054217322630076085985418788647790381873922597120266944009240168783505198977336667351578775285357557970622544121299511294481055794228575449831611607205641626769015294768082279222334626153813330350155693931241793018704370973146930446679627101065438601848522509990101761700175501403841059105821704861827172161558995288701734523431318146954556055404703689595621339589624015740652033224298359149340517433648355866603472505590276005180609625956153633084895282784596748553086281148515706169096147726669169512840691828457089745762746624059555563675000492847996836713194855756699304416365519807605807610596542536392158807311526689580336739627811494051849091863097344894545187488604301193924901256824267324639859435856610168599052543706558519015868150243902261186573004160931559323721707852560607813622844535170478194441926596494255531593480550546776976863540868160318187022188998158325089159365888431245233148919383926785581387493729842823530900199116326988312539447364094798092502608817578671848059866746582946228942425204760355445299499127111015923059669907684881197909745931041329524361809110174091943848757617491475309290729035700396551353864619024348078537661358483115218069301651084841983417442228441910334061193240626269620298081663593476638292814129209741227712073210634295812011991099976983792713771451567743652105887242300163150539421875153358595903528714611780255360736878045672220564519006241167225388707668018860466741964469157542667158901540240353025829056039548503645847187179651142565180867113423306485079420454903973672038995317894927825224256068255457775402122148863225194884490114482454347585480510093256028341175063337833382212654938706183177554326037491648300740490777401715014009215928816089526768993071280966657951901158727602170505308630484759168718773771963939335947216438678850890700829740023091063129377664655502359585192176190001615110520513670617204023769632081044815045560439538578618554787183873107556175230501042005745816656321893715982050711181944556067122384932958350062126966673489144931859435350500765118672242867341427142496651622464427793254512081450056457627989387809744454319454792052953050584006003137441106799118491623702604142498782249009357423478543709917987314616999352226184417542632161730500768454944623133036523305995328816654551830763697992850887577707048738793001764915095026019831805036289592069187943645281921704745070898377564247951883540693283506389403634272859638323060799797682095900194882416082999168614905980072738979899750711972101248822257017693814093923089894903547935227707910680563253725088951380777396361242501083772556759253166589800802947927694663795295436975629399273360747081289190874806534629361642613089432558879356288095309723375491434502537789679793495569565421923573016232488905657200957798050718338938702962418547099704401745253080768437509644752409424998766092383337726695517193678304831502862436028790782358867738773086408327356143572078098539259213613737786832056615987206673540856996074349520806241421980236682329136131386393045744771370627270262034040880602279976959842666756131563316127952240221991736401799584422661102808507392165951339190632802141342869435080088404229049878816745491156271115446284951452734133578936361904610022748932865325403988542238254838004896577027331201813135955106313370846221670109181514121649126694786363843688659245686487681372968845583733297535193133409137620122829304925710213108346896712076370950798881812999172333923556553647374913840150339977840506192086971321972817561413954428923258260828947226309602754141881117823536860238570781397058452510007730274902835889339277054911002104482511320440043136624565787101103001517020459640790323985657841482167238350659246001330619328189692926086687423687717893857610516744180950152578648692303929024881510061200585646146494906629293946296483161669442908033877538471567622114629165902568779240975058537847328808885695431791756932192147588448461593126243807302855395797118921409202011793734475202313648106944407713731676448779378431565479946617873368689494319234644402122785245754729435065110866370877854876816389733271778030288204164984876050265378918832787905142060966760573780363522191033573701623288643424541609275396273392881134845780155918501396081163994290924709914995441882026545882302922657021159247860948673000235819978814795503166200363154989368412655810476144336004788480718328424363141214275963898705749229365880890246282722106127315421401856653071994425949266249632609141677911416141046299769016092397394982386276432684833611221712662027127653145806300448661670103568746441253458633733324405899112388629618345379023302181592044218977056248609829870321195997423236229438336667948740077300542559741224826359767224322450554452177765209674138686855233982655034837390334153024836602041769636425497017896963372326200542015603501291805191933342464665028237069110849389373714124629748183698407447452532261813760202978428337410411379035265135461069862914488752559335028055940850982135683930196571556103344112896839492226785123401694439677507472115940226146751801180567318539217668776054245173795562512275252765669077036633564819992074734330204037105047163039878484791813317251468081007779053979152374115517742906610997745015034297007388622113936704520833483555811739828258420831993134023481950869883311199375748503805509704877366743098510636723053275399054766198476954292338631267239954298928060053111349607545660521971811264741177793829560301613811819360158248031044129235444020005948887388175888739263525641434176115052546677289065765812211479622603259372780647572730925584475973608785484138966112727114789911034504850017948302308151456764446390515274239590224737058356962821612979247006257413241693613193689109632239396741286639053673299877043384218367031049176699247862300083870776075286124745029457962984938496868557365951249869425930806834716074223165840901541140843573401145187830867182618185624499387445947854637207851784970695937086064872721317402526020229890207845580621772316780570296329421190074321658938172708062893063781749533429538266525677501822029417456447578931378692729580070966033779271990886101666569118968835508300456833167202240574803474140474913956077384795464933803711822163878225667804201163075045591882491801838449884583336777426969049716199174001550292387442039017193478870283479504240469550474156630904029622585568129912737766105640960818413824753342536586785977395007242981916928362380394060781063722738584408045415620666482343016315830923588869093942965135366615493721682587150594144356978661948110114952208587832873431990964097210333766735532263038340253687253225768855145149460591817985323378232826978301594945290556396485709593272771129448717519203437419549467267803752135486065898036353475686455698390296718496688085996982244724817265369492334469203958074444147450652606646138276664402354479936508656830141585822461899032288041706503846766586200745089950295278008775229442417958353269620027374476365809657058552255622590704632263085643784847640035737795891729575781029824165422843653331535867544034880689710077305524427613801894824061479482976203231592182305845168306431659778816378866882224787483607189364653186259093636189775843203486538683222665923279484222396026147288287902376546321903419549191709396142842783758951211280758965006523759287584738590243408653101495068907550164181742550218862585211711820684930170597779436273062397037638407753711880478974019221210821893799684246297508593055109779442928751796082331591481100447140795334636602510417299516426089170779570075447356658379933187939067225696534093042168287942220831899092146304669603492234577826179072614811513517994167741097065144234810878861025060573162267610134426228382789979852930570422252389937057855911032317925243595445064760106884407551096604700806226727883335001003465446173263694201934207279382448848548324141511381997388109875790380543485256147468760673504658338835257835820977291580448060698360112743686293619217893982295381497530335984178194612948408524730441652415318474766977960356473716528862789837522997665262451275465577755038571117339265680045435757899529209514293665604002164870242205562373351589667146832030407360456611560239426213870310894547476017596805891353180899933867898634884317605327658693365160759177090434386162934535167831724505341743020551161977842717790566389901378557090894686223679864119766248330517636515688892561395670720464482309479580941261578218132863650251128190309412086491086669012796212982276414327536735948514028842835492887406996470110595030794427792452093116041130818414093328000240635676691633571617435215316367141460389224145780022956913410469741345695066565828857532370837732232699698828962306750046914375838375551326566807179157299853909598630585441581639802811694390158982628672958713941484130110747377260437950337946547961172847018079780787737019644880374621229115425657313335272899018637805734024935880572754005152203903126326546996045989154808023497266155397815111794491045512032559189465927149756162768736852146918291968108393075556326296401952642999152900732137299842971963570218882860693360379827323683246557550334196768016459055365856380446910159020801165963572886010094439413150389263213760351802695956349838669827742627242197031286936778336035972093203704198255294280656599279561257735398817545688376746809818413603477830550935881849768977932339903169416426243789655618142654917504482476563161022318692702532757149024678377961678405463178375071011196748902820458519950692610510525956652523463656141840786585619305849015102678056863103555254532873296563998163085369060285950001020754503008387426923913080592272315271907139328602490540013582613206802572268685461064949753874390430669008967574861117361984260151686009360985506842646161022528322304526289962983883171126401142201438211345721106173276319897079497530784696203513328646782756506032938245944291383003222282933910348933233157588995665087431624079114727265719638417163495247153455580260998401597294388710649051495220240980203191143236269301491486979285927092617599751491234063595031086622803830196437444293216748322516960167049731379779855924376899269046733008153154025861502384303790711330115286260735685300363633296273724838752584828790165077032704313290052842991466555582688731089922536000207451058312346630527541907090977451095543528426492811835508374626046950610622499555211412597515079893886550954320215909491072337600138895203698857805539053012631129189538620095745581528299261459783819502504471203651164231928367708400206852289304853664261346607611263631714137550106346067478484670404721362249534798206482342588560233543194940193567344060580422863711309611433319771361526186665086698286933016090065916337903821298284678202926733767438239397213867429996452852439988492925427121012543073854197178203507079737038895763237152756075822354988621939854721893320375111043098902950563125317330104814860729981760233984921470833687764604291632993139801059434730400484506119161027029596337668391067542521751241320708524522960219601915959401799219879877773702445421736683411377485839876824864848802688047652203775084751041023674801413023767782889448523340829062141152455193159856504811806717572499479897343849258776199957043743608017292107657696347295831020787615965258842164514838321965366143746933914091158906474273599528224500578387336653652625126339488349639354803375200097588316194850833976431508565264544757553952126691820957797527619747975185419089640989321860187157790669268798763438213028735026449677228239365054240622378037820568817044415759672864936821166803832118331066734171602143531348725751067178155090052808996852303989581502563857587957974375693564823688095395405606958859698155844675679211694358287412717389951548824459252195302557278687925187119979446292503705525267934992862327340096358825805081145433655316575106164948828639293378229858547189046506795774818983142791943058284596279465102606007941642710010252477408762662215219773316593609245239686680609193338939112019159505831415034618093117760906419877582232985562836205600578169698974688816641920593060248687846969241708198844670134438325637012022398032585155567852548836187596237785406419714908184102274774542638643699132912990478289623994519760159779300407424477413367763885550701005337471005738443326689162541659557061352881695738188617874604911856301547313848882817681699589636832812867226582094813673505646202414930176931419142688098512518170363344149245661993188204847022192528667196293860571030720371403067347599750177541997257275716566782573423081571608637509934218045162032211425735010608281396865196315621092943077799240486564080516413070023817491173758367855558320029516102361042972961522303296224143693895515434998469384009522154850560171473543650155101409279401817793857229874641483406283057658326546044216674044233022765132210614016339497058409016327273535783144171298751929946353659380297528657853082216006530036759362591535368455033049865617385643789822669625999437744705830341153489773220267415835355107221884314307796690034458121232995698569111101674123596186397696876226375516768110304813068746217811476575347574550411456437532736838315820963939937354581047979878193245286386235734367210302085966558568472440882412018560338865826169724200615102017998090955111466636922976818941226505088779773988942278918155140947105504987794984464945740133381415983798087858748089039300170204782055384746988948432327734598337113779273597846740820541552399333789201721691347507404369030506873507268448511235332643134508444866478745794423154716143929487272423498193735580496885075234895795119193853456890087410001103993836453051561940670283325407861883311739393097509952326633600408205681917510436630836959619152870285982972060894849873688485129636874824966781665276028616856062709901612418123882603040094207471398301587664699864013863289158637719513657957199813647044017512288800416650776804737899114869883502643207100092715050341960515833304864363356435250204285085415934994894259369697863869081628704283162972515146130596414270326147554568086182449682866620216873905749626879926559150164218641482328293850608243911929627136647120272992428780016077073651276187482537826193367467048979494409919767266658614175976152084144584356796815401439580325949793321001674141218727051219701633062109922603802893775790923656455752773045167386141375114266440879820854523723409745153035195791585618452844417128221199395312622854024961677136231242728911450099194714274242580993156263427229843650288236577918783370340627429945564197302107841313766388976520732343935617207352776810919657069494893846475250720633276769230186537389563034143853186150233492126145408147149392727743758357737799431065419985311829548565635284873793161897138317182201889125000854889984571286162675214768834884991055649795695046719442008246045461259455948877608380268951240355050716282754862638960474117001141724439628159661202168651649852627234936681673055812730303450048671467054936872776945891692704403026989704316143664024187545870764158750803709057252050034852262075089394002577477234261911166177061473365979938549487325762306460299626532867342014522302671150710158115497500087613196150806011932556627825709192061382535936236194006968592730858039887853364985190191234659943358047051178570494439341103414101962856895621342370726682325294476137654852671598390020493848584613316529591825180550269032975587249040428248675989545940442152957901260241307452939166958843557742784135059763617930761430221089781979465286344300936693373264858303478268726790452459426179057077086217568934352891754379768457651133501012218625584195190908818130237809579945239626579959913130987015205255772165480481593397929937265974106320055084578303154561413145409254815910500308290826265436300784997928950815870148704947700843343639572685928908195381920150691436083810869445473986715913308648914046457121344168009819227037046126852206874588102972041251371384862623719050281575393091313134488380882159180059058009518547490078985137172447293911261708183311107685352572041815572031712598093006556440577021506752999562054126527353166202645533008353979201930659818098772536770188760230514967193012783064398414746230385609641525635870753559790733411944792997463404352286307640499788222020541038858437266832259143198757248312031753007423571209563921484450426055524753866099332119327139331440106478893421360352942688790660318961376563827731882284281868726614680368452916806367046617836003341410496494176308055674411170289543539947052601946021980949864549184400819535363810094311404623554108488687887983455371878457080753580232982714741256409403248322498463894324091035768441874587095021797915345435351687225132821051860932961938765898738082292503696329035291903778554854705947882983604463641402403150139699118850093259621992733923281546365040510892879562042631558187847447239099260838467654630559749499573072190189074112215207484211389285390225477731950332170319476349892365200870907107559472364016497003106176817630673396059573286463299942225900666490532894130004986960012489622223855066544091967882558234418685012170321468062758930643837977179038744032195971808021577884997428667606679942946277775658612459653719130642003300697732872000978847728702091959883728338166594590915758748121113496155985999282722147738172911144264858438088975042231755785533355777850586027240254808827059016125574656616114201282393591973357167594976146611492357577316536876644998139554927976735065494763546950182610113316009178437101102142070239707172330726929120519158400399919108593566085626019344836423857515352474570573539490117309517569075785706369123060507895059829814206207805828215605230029234575094017533284341877925050858067574712361216895562549380767594804507773781445977593122169706953495831901183935845218795580675397859950520341612564262327330897730312858180934301889637501623279305890566635290370609861697837744993070005296855037308868597895375455838901078709396370911396118872448253775685658509543261745861036938660358926826541528754786023287649479491202786259513029480520770265544641465852309438017317288489092516102108169335068731856155525587063433326764244232815169416225887675762456497956656700031018499621231157639189247562973578638926505980951322494908784203728896677994204044220699611113425080170078398435531176711269385088078565717635646299288887537587583530501587718982604534974998045506016037371151330659887115853163484402291405081283286558637700197310998370461821481790008327096337070521270976207861650403025659047914987849209578259389095316682668968068478047737827983126580401537477461164313596430846999878485959137952175496714017159812969525331787931099364025752020383949252498773481676788366524627753011347411227596859174977878776527634397561801360506376415955405728172901593076792005830273797978048854508134783640047366421649971926735136731990061620933180353938604240907655238287052477647197373855863259146693040495877672462655443973283683562225239929859122872321556791855761015071951585907484355185182122774651083166522277275467421573365324369118841237732589298428120762242626867778663964953919936661255016161050230390197224721393565551738187085777924225406710396054917216297780059339952323878852769514892253920567611254883018130176447144832668008472426535845308881044522695632932398694108419016978895660403726495798287767505308934126727807236581846672555151573204449256205265696051293543317435148580869785091561545040824647615338670735208568210539181174195870455321076746598261360320339512158236014420375294746855353097373477975022919969276942209870355870365282943213910234239793639974217155716591212006824415968222807019584506469258062018041916800341413407693500720788729188086526223182376333899136291540880103376592891461892749730495760518126971443047370741386032147605804520075575853272925248235641182028120139081806978223147003765651811290014221182462481560009548420764024212872081909285478686492078792140824324615915530311248472082658394464124240515237324375638809120497716180500574140472418722150123362856581947549876921545264464161223060747978594551023514417265208735778893612441319320840965032908207689253311689920656386351323814839339936121120314039885186160059590043196358958873259918018883014781356869808305581647217034058387536957206517326284459627395734974278461214014062058102660909209753977468935478602196047971244223264959536270490632003748198090266149547114363082376138196170023346000727835591858049166312745666176826806846565225556825715673786960321837433719182392633185518835456232578125656391728926761162345706343559563218964735761307324706241905328721781429272956813790475509464952205758319391545076150684963925931078854777582202832975058873665834088607261542365073635955008626426901334343285484608967425932035770639971333410577417039265260639918568661288765224922542657060512693606871683485293749039502987817100410608341373876299451432159356340484014150245407433003955992034497927914013008785759550463519128090953220005563504443188533966666046435222633002340101857167877517237657045158782179211543357411863808168051497319380789911438327886990112475520954394348620703357472776227008791312033414110509330627885103636480290703278309718490715065033317968022934246930896712992219156242143348787194860218311303405223212618811708635165759421056588264198193285075798130428699544580393571404010887551154534033917803804983626101464720756031819474866817607105170217593566275111643221447476743624689575075065557741932351836714460486714307619931946116451018570595790771265627848200269597440586749786344523492434065769320926500918459122001256189916306004198497886131221003428710969057892118552912797644990282061169229234574201161416426411437537834243010411936799920029864563089492685970269139602051261605443925036377011520757942598856680082131836667681744662595031870275736510609552233879424698397680519664403927207652289968087968681456294597404577322437909933107380993684486192388145438255227091779588404813175867604342783727872957512487724105125643430372091624611434969687266899355290219906705299504786977901883921277397625793605194591045595087402128737867563333155756197221196841205490767695478525688517196441928612287768690762466833214430513828014935660092088821828649015023310234619992950281874766328006308391075027642318441045895359447882501636998613481002232123945487621595938137544434497022082531658825674094246433673896565444370874740427559505975220435233387238242138472318475305514369070883471608014534931797172563698116231603857192248163161518523159519654467547489217287608377282410717445911699260222784927014130778430009072280828877237851955731597878135103475091110486845444093947149101453306066017056460346090498248303462358720436310704351965825090549927157170246297843385495089103173046932387047421341042045143879147725593585540656179622475365403835251951671655485585250146992575574057897430815061169978644435286968843244044709876626378662400624434635490056757052318620351443427524907259913674336837300306787771059717289918549328243863594448489398551244070425212706442248882172949512746108631840042167874350325921241737996652917866468131722486500377382411932692480739345330189480432879463438997428171106114233853974904742761287121164035136679771783410630831158517743717938383508178558296575910586929061134336071166107528238703505332186313144870476768078200783614811868284228816567777163236506837479919658225174538518743416400673539758893604132945121694318062041911819847541293614008213752268739574270276141063681672890002886568754160043884449731887379501316202825474144760747665226933435013765568500396987654540537084705217861751872374592016510993391760196903993185870005800067670476349298701042383427898426734734974346812607533505854786371344805272847909057786998375343268340399568551785395491062589085093074797292594772462132484363399929025175340606393224947821083055480397109755154949887539612056658319430488309883630954179015960058918786201946583975530425315065625056982803405294596733441520302764711272616182864164336939869052633915140215891691528546544894392101510011783231545098389818677734219950556207599169231053354743937317495939907346012948558998806719033465447502322639710339709768002694838298551546276597273584350627899224184643825439075882042728965991472568778559376920872806816101302165319762021761765912577144576773075284691896573328292765099468891653621940442767283163913881152741352072956219087192863135743132982953868105944515960577871784519181585841160518992532343749748408733944755825923612278571232486025112552451235235281806070794916430541294425582030952695659254201042623739072206689214317064436290791726983500533757219811032258904234248780234281493413254554707659079335133516722148214374135635006482997258045404186308948017796425292331995817075737772730295606339613517728782175628572811515934508501861265838074692194769887270643485506968966034412575163824215745394642256493024526866507466755839451837433870954166833465231137487201279702148407283133640293734703853405745037198690426778455957406115068938280108773509916969040032161958424306059343648244319936152402400501269575869860859312180787652408545611228655938497972900648162849687925657194761015249186853207611421323953480259412852067111336654055459261162843450644950524010973200022705656409430734381870469939927895222809969309047754105876570755403810783081944934767363320387711052758094364513005211588980668940065502340667505165945675726733665644158880345181609347770988199794238422478484423602118259120717837958676895678449129122802638209188936880300504838325497387900608781582850821395309882561646959754680412973388022428344137452080406422411403916929219998459632722170499291728011076871431506623223534096411285674692895511766784476499065887079807343371786297733610268808062305019632460055078274979101799428535125175496642145502264561752990964762702011767121124785313555364851772485386588090405217101312766531536579025649863855559870191138201016102718899923325020582468189793713463259362804816461086318875044174680166046127973905195721022103164341905624975718924426831867819330839851700346808316755685989849152475667643783563593938042952380296172698514514189751208359102772260971256333961305075328281355765885269133002689185662406463003926298826441568969585673096911759869599670198924427436200234312828259329461513565913657940937206347963495548240866769483644808982900259267885610192515094201989551618613058054764580700042408240882998081271161851380091133630527429899077146427917231603952427926745671290208268778747986204787796778027054342621089262775378690460404636836940751134783936390585324022835985905996695288682045930741801555633902053813800782594563396774606188500802353873122546452015924964585465807314380264510851413154186488574637238839794599936191867327339369384320562739689273678294462881754119792171585985336673750363093058589904698311093966060897252906543384900999427495792556488092211670015854880215265515393019600093825420687902050380731896240876348308849205980023317434018965423243143756558210274275996094497992796217146280448467403704260700495854351333236762044873284125987331251620025850007186483067075876672654661054455690225961284320951975966041745192507324582812522702968231065275215198598840930796381271732885800636598806518241150622518668158808574313683520096820840039749929055161569589901964462416567862893748809364824276605655676885441804903794127852593703523650104673987674616247819301112418129720682127034690014922960020078044095563196269454003507525843378440137053532084181520497467879290153971808025538965322410817601594322301865517274307163780485234778790273743422149458657132207525918094422318426599655953622317817800654318592409956468328803148236984647718023453811533521521843339333578880607340960869108455033239247158404661306334472934965538635479671592805261605375608204990914262123478803165966750880937904827595991761313238417856103952920123593593585840793264395884392824027603939029418047845752151431874688071826918551864547793192272123171282467116600652559444573102312818292527815741979146866485508242212795383074135128877003753859775710878267627382673399462884328023594504293091827538448146502676200333524662863527409875094132773452015180592303812692183472881911403131533208757622357473953230154230089854048707186279468510047366797045067438721879970607633720076170367899049147427917302595953883471309012539526494521555539291940460356065327616850209550819084307991684764331781439783339348152111442510090547716830895994180600229807030224773062890015800367107975510882998291632848857445898024500919367855784221745478373364457112748391855094193784146878178507615505396358697597244838541341508206798366417902146325193977793149650111945370545260583312838401145509176205256760396125600842875236253361008965607343093809704431363910784453210876791036270651602236172945117617046409475211775010302806843332377521127868387355198037599198905273046724734347655579443696096063496585452243075110525211195406085543508712204240142114368737823028616250063275095812407129740936196475940945942733874470553418526501305152002087439281364842283394223709368589905368732941419704926559938152099656223856018811430283020158476350341269338292233371841909675932863862627284603950712248323386953554707776216336764177739217733041263640639199568569667666124361879570098399205905006850846239240050441346810099832563923502823082587504063797398504676007348399615389625162338972002840118981646775577486030768969925355334288849972333336043592290300131491952425027271179256765001101314480601324049299913776674682914403284027740231313941396274111867944516140475308317544382857450365460105808010211493659709666125824471089083499594260820399716186481709121018299565000045210228711173298267776283216672296922739495649651766669615508429057775920588880410808280048073693027360302403912656264773886619686598590163110564210148897432476907397420226504711253573852751165062086860691798668903376642567856896572396954405424098282640538149973098118615226576044148402019620870760070894029654607648646826100138710697856931594588822061147395269620202169274881956533840460302443537744333309468709995391045870096572860258500801239356485977761847099085130266020866970706632488501823663620260626828265007523041664148185316171239240293974572271290876122865287980429954822214614483950352924768974559328447034096376599806783681885722018493416000941658491061053802706830907748402434043930860229673534849740842826740208033357967591507642963371951576675965271916709201987433247957700324009612105212566681884108537914712832508510823732387547508925262045989938515873824545916206839010428369784476828187038815365724941848337961035176118003503855842605280763107987447879126325614499906687290025524431870212236223490807595907699260183741012259441389001284674092969774585905510103600222047118182256547072133757933721832143767850089977128954686423558190771477152752434238640269031903205765865062130311140014785896245384064142189306001704140683935241016345812663423530674885179064982447849343119562256937867422310551735072013088354875584736386131638057964052597001811786044068547950093177609327936772741894987051555795622410070000140310093111396158599031103465326016040746713688044971815687879214680720474094607876095872970163808951431503204860182801263646814471562947847082318701327913745349774874378337003651414170262365814159708332101630327630247232789943411409041526691670785192806342049395866550180039438268316828706725624762242045807295675662790576558897606066961413785783662472153883009569865206925867312030799569822482211251347660487508669635902909718935123738696142194381921070350063821660195509479371116164853229099473947919986579685680848125415327287623580136527346169252760021460268547819090516360304129089293734633245798289859011992588043001358672031734403165331654704892018144326072833953871567055325592564739239507677858238251201044114028389622119464455041053909811330458473126946281046622802992662968591543375432360515646316901623066470519864667318437508912899485302379097538048023383133147796771226917009461400182998831027397882070430511393563532766275459349547826648341507511522325521423979533662087683221035610161636891521144152358208677452417623176699279024385454385416907261989618295650979845543472804431477267960495446058413549458192174955330103370347477151530213708982855619035379406452045264223841967474693956503127207766789073137692401316182686434590464492873784140502550584837572515457743806079402617780391465525598414091561384087849620728050851622881298249227978153189956089406794290423312345960528520450621629206848011339275124144550491603864393678734825410858276704219333536018853252073559661317567942866889447352115551994566576794967151450426879300006386391142815713221443851573456301668604154481829029867481768316316967681996787542767012299655624443970719370379109981796591473249087164077227101216737265136444893809691194507372627839511024425209349734226198109079314928559720213160396666022593372175732329562697243137324282789563335125327605766556276973528622316157890778622083268482469172552008431019676787818919308883505442716398822176949039379409733596040931390854175518182794652252532958947936211679063941566170994058741079799382664105089632264226909433023362970961269130968762467811851182154484116947398248773930725353447878919841839345661150009819908914115093207502321280584549652311646195468217820820215847526582451194129977047103302198202545266036659926114845815119656627853780807412407935782054178457950839468285524668741921177278492817008596438808365553013975746040760390779104337240198722733986968000695914972454459181999233142667997867050717595546781258602287466732888744677534106046013221187898749734937238531670464802712508534181057498091313879379106499231730951589460604029727002639572951416266754085271840455754599689615421988042361590640391811167700218285182386504944500582834894681377470688112888656306351159648022541143263452359675319850197375304529073224404112289577994727157042698909116067083409559288396145907123029603406985843579555291491512139330985083477915245013540971673456651365268910428530104291793201100072767181208986617611445152964895302861852693495289750809494452974453727847029437091251858120014079688768209723116966032123203415284358903507728363192499385712192338564033981530283552938986991811069426013815831650308136845749577872180850182479819921818119271486513746494441252170227365009883603847129711913070512871163358931014275850261265010113238313015139829977740142292548409574394338410201186571471257859819661376898409443500358079376318082988104211956316921400796889310015246157808856197147524121018514920275801051642757841016965211729105166309708080866960509163571422727641304544362193064120612796424626642511115109602071553545738620566945819913541890638339653259526581735558128380788464499610789017517750190000672421128115233869069856512245890273642954458762258943786377688983017216396928406315723164150742477180353458719694204760867230980296539077965113887200301689231217082163360165365027684509049499085538909092253295616367393586879923644303794798009349604896357690912650989474359369494719288991152181271707151777960740263224444493015321862533950603125331024551370105304353653208337995634514863290990131354985738221886065416598152696394913600650954007577181697771059569264964533561914598500509934046299134467842502321567255696904792858194177091909068238448090936646430625652509475976373128823468414607202618267752935325923507366847630483751209515546861714872104147211993106085998730519382129611042006827228829390813084852297675030244448258197438525624953811277652935297268707547276338443752440864913468579476013611377028057868903181482227790685494208557233973265367497593068952127123183212036418647561123831777310078080113872946737194314332191906286788797385221425009227918180430156688221810237562201494667933426144963618143485528622126665765539909981501256169804893931139600343518686337154413840950782569055464341625027725703844251556085111364773737587398578294656241424719607372132949269548319078832738494076989974958022131460025804272402317294703461109638297834864609482219732870105672867986350471853613185898306000079819662794200978793018153295883430506084533474726070236403262149509760277527379076401200469645998665355437209035001768069992026583435459639377323194153170189843155519587822199388053003230802560061712053904321888115193237112416101889270271021360428168059658243987703054542858875796662278546585280363635435301886722369697956635443759454744634817920048200652218608599850162916507379763469019742954735563707833991787677321448367562257350957502152879930227282474126005268354755548172523130625304372697928675739105577665721023896996586835396985224489434727340134205260272883621630715641839939881337302685351357727332354312753601592234430271394488970017081657319301275024725088554670162709003236519664067439916474002282326909471456389720999778779984582875479616886493383064327246825381311426902566339735907591596882057757891269400561947979164067611432749757999272081509572863093859326083136718321904318282215758135291370845542912677823231749238060725047861924549530693169932269273184064414771824291144315159381975497441088321412666911153209925240064013866077531655298128636307105275777763677850403879192036237084439431928472250967055066618498102634146979973411681504757193786897155250764132210816323187671980721366799917341330675464469504652049317865510857658970343007012739817437528064449060307191864512863880596089566557122109848692304546529770214923455634036934685266179159375646168990266492650097152537056997005218614566509881386871544499516534293962919535380782162272288966834820763895707672698693941364723312456837597622085197502471354001432252978891155283086427257190355679757612561148636929363250979078549095599530243261517141332814667394840486059288202156805922312166598031894863609436900796215373570246957507457512442227636862363822641242926306666542487681458419550225794153633574867098111988926699860657754930686080883111551747452399218622502506975060705713933525376574321684159549671721758276105092836542991527116478634220943541691648781175864267013109749149410199894864085916775329289350143621466300461779234013609145646616726046446837236991725737884332587485221433814436504764589048560574556986840676417505726023228387151394270551604058076866611691188063235078403720837037244979168053515973011471872357548494429531523853964922244682595991606890758631889120316015997062984067395898578017865476396667868027839052741539889651385391838090024153357512053424218855133115681616295777703704968057359136646783516637099547223889859520105899155603166590992436719563836089513514357296272657233715999555323165482917426881467921723138138968447482183051903701923996801823091186005287983124296316830360612660552404055325482710230026736566833966199731442459482044211258029219243560240659690990187723430165968825683862633220123199076765727009711535542094931915554405762275248142825006821661024276596527553572917826967693795382918183767277396114195504355977376534160841622997747525370550495248843288443004335759683094543591130362043580892010443212480130277472897131296211239285382008867328331727665796024548946965995764042917965529911742275122587504025864283710017507613915442082784860622412209720512225096761277109951986510270295653201110051574468040836224420551646740530948588213277842763567661184577165819624369747220824342024692641048141896158604963820038143988172769006030453131365644443777588783458836132879589053205581533018194451373683595137755475196329586524167462950778456127222613809670973130182340083567034712897067788137462304044707586802765000357596682742068982154343497388426702313767109097054461183886669315474535632364435850671531425363250480840472603924100438384470401814753236525865841101005728342461353348917557360133137911937867621072815448033626633696313985578241152219918256619885462576399062035603853999300929180441023347212748040145050679705353021792878371049309844775831732099778818413773700998112637922104056884090704557326428156748321278393620635980077704066209740043731587358569986486442675176536035888244721549999775639612583201894473364670586298760736275111801041401505193342438794711523326809291067011572552551628270925198429793225097961087278660127426056409350391728179374785642189881421160242841514199436510195214277256895655444395484149327409503829641137508549273691613294850292275604525088178949095358674572278583225654495867786923328985517343690499535071236490581324633037551341760094334519257087532264911469603744475492553261139679941590371000225848982261132415878442902460468063164911181473772671560705030852528416584190387714650140042845937631982420733594753042438630201837376667701155720702240418594381153872020502869515552945605554028254902336762059498756748644127315209604667415534465785636198749511065898537560032035262755096569986605813214382178711477068635951451858780970533026896576729787066323787928069639659472790616867815697070901292598933390765826122887864820055155514170726607533357283858184242022531841716636088344139408019043384490405229742180363765920072330063324647436532879587388498133254958211527678393861781037534791967027233019782633853201542641023945430173019936398797342982688612222744229755419343154674001427034254933847908317642879811747920599586438488716748870503007565606999648484860065381536748774342643651235350451134358770718528552459039430996947660026580358722793638611799260805946706209491261457143317102443078285444369219897362639328958990247190816364024647256994676838922553997720816540766693822998508338287391661889819794546154293344656301284777762832232257582556076339119066108545675334591431320765291369615109309054914909163497855404922869259255666159800677502878499532754476825004802187491337583657226907282086135207009805951526641271573008325175737471111969698258666010934691529786121432907907902638639600272233277382737592601759794225556303456677836536473900573315182839137339857271428547110812635532263980477718160023803628177252722308990646110961616341087397809609636811091372230345994191590028295397375668209623548602895875240332307143665972799641589120191853073775065405295057405055198944525185232544641903357562274882374107912752781917551831142030706055153766395709721723120933588648508625158292553782234659560980184453725037025772228394843634575712551242272631621098574383522220559856721816770399192250465232771791489358894769309335340961147036678790152160501209769952801402472542321319516183985206359193522512111386367530257197135779220864520495024687647104245011824960359889047989285032969620824944233211482358929588144368399282336184225352794583584641614070935771709798429162034499843567603010904029219812776725182209534798641334642882500889019049320148635089059551102253484261754447655010678153013747579742097476309095450313575620332095144183475406280928933618316435902919511515688007391974912626926948138447604644423268134751529939178548951078765314653401416006476107050776805177617926307975182507422289226506476781249515634856946810254919874840147531851704343738436457402383117443972404117161879723433280024782748785404153234561470133431447223487493061769204915708334529584569636708925080310482409559862213438243591600911432268809713658491389795621665200886148550076986640142526811819662720595499984431551473688585814677806617201447876725964929974578649078241533522984081093715263807522008652538566610637949772215858315921691296961438048072608083993268458164550534539485041265399338498717905375782115502289182243046759952161187539953164998846877742771449792032099320643032740234702759441616001107920559367952133412875084040222610344940926708422018885913114659063284398195156978655208924949589970805797115357634604228975223421622243362816477727368451451478055774686621819700440814636860939343773811863694855771150776515979881320154278765633994692152797481433642755362109457356232288202950911388077176289755151900712672842438301577295996329447208219457922210798897679533032650097793231304956562056069675962344776719412195341626853699319552829997503313292504554725901461346279068776253344529221257773104850574387443148264182547853047117221583339145445734118856232189932086236301147065343595561448321204388824948911856987963650444764802433223520186049373993310014177619263209709781234663681061760970741555666590815113332652115616094672137941224100969025528748779683551022040749337971313236423333085749235685425773218036984841060853478956670633867199370714830685640332130293372364009596175490265023970167012684325004265465001014939331717700240216095582243970416412548082196025344735441130300064548892209442359522953671586912046070485978873740204962494582400008321616337448612395649286575909701892583109157032366304968451438907354733497847662023838828402540040996187301845571192111855046344955806904060732117661707581323837988710554509768707076714121551339386572822074512248130089832599868734562885561318227371465759915828684193932967049896965445911219377274183872022480075747605226511203675835271114870133015835407090579484535356950379507890583807325048965374004666589790747088414150198187531549346707362096769748251846229391195893460298961292816747342894627295186336367978050906788190487528372449063375735560756415318380361516746413408624916852973132886673873675076080808791043713339331020304055090367322046205510360234472210314622128289129049623010756312771941284979967110858114185931688649688692304944382950893395831438809162963438085719993763051035659068545516789686419795436421739377899056128044989017055670288655398292623105103855468632596713798955431274035145023269925523967862688795499571993302783299825818861798352607149914401149297868205298146056798665134138864888257451513896914957510017024890989781350094991366090947789055722406640726809200412078540566517123795433894938956445810972248674608641751264337930728310171886890570706897059762585660709563181406118346851692896768306348860030035593738590647170186083781643389274777261432369257570679888238206506305366255780020895628852314859718068884897125156785915213247241686293330555631481281040392726379965675746097846714829931415856147669579816599817763550840779367217134277655516842726971873902067447128917086828638115808300535810257356440049474215104309980922112141578527098205197831354576820272822397515415874061312572452585029138158386177999380597238337060056417876338943212662994164500921634148341287986253624708410258809105648591068871718575866384130937380854546416993806378824800034044797938334769327533715527183105596028184940065985738569234284017804026450038449319470644552275300776445280556227123852490781199414933134284974198426233024579960747820923230012615281130865434629339732826329299207925866834095675280150386824587213249750278784504375869737283474894025926208377067722598323525220595676638533416189668886381015870328552429940764398242638417766125443032741505299811233504731005675672719336153883553878911328204838002393318634325827186615396016405956661684462359041424777912903351000643570768257413089520857622087586100359108805132887819829067415286696390631916753824150867138448333258983526272144998872067853441112160505192866548971673413722367532117044041881024781111022275660934681746335855249092228205647700163380366725177262816202870397942687150952599726099212907798363993759967064445093242318021105734421449453988854753036336791005427887153690681961422814932037386546018088459117581400273398443124423236385098696811157836024200062859577766351365478236216274173202966220911655652922300595149385902272623401900594408436212077086413177957177470937359342797761853488792266762090868196184762135003800274578565080339453386240043078663848207879370426929679550939062917484110790309203897687863043805872411855848384546529834085477414576238623562232636233098862750767224456345438244509613703976544217720657669511285545031329687135296270750254707719479499329979013427159404409431404013887008257816608861906933792104588180264492167329113198095554953084497645289949564303978907843664267565172137610645829928171318805455469254543421002381810565625712913334492105891269266490071754556520463682749807080155471974219817853008332414707341628718187679676930978926630062792075229908089109776315300350126690743905231266432318378685432954190622702108648247190152868672173244621320914131616966625060377794987914707564541666513990929893694109368504428465707384390651202983371882049500396416720538622926591701671422192786470325437964789754801100955675306950001120937611463362470639376686179123007140896464897994483297744584829838015228969437093947915217644380444030221084922915227416843051764275800780327827895581423405435741374945774552642142392199330327551513009035218513298525734512852269636218980686826052470425284301081502177010228597117802026765735962389351468073998971266045632918551692489888296477204299665854588690320717474007257982774209110491560016938673092034337549196931959308542025065412253568601110490890260812752424717391706540911610455381868501829483277847230411402782499729833149358234123136112215171144931741048651005307755776176699298935158929100806340029542027886217974940589380389140780063427371676201587458413262854655600002107180026475505380674231651368183749146535408023081835897827865475987117547898567286200284317392323504627608845909189315955468530689493389906057159682863829803830701586406952481681003009383269536038805632623776407850873828878766933366696219605129057029516054940931898448862360302353518302861461075539470851017141667207103683251262751093687277273419988492130299904221704960139457268988898119349219428632772009562629252328389416464418140422075159159493015931146427843391257746039141206380361406901384736478579984603937621242766410411056241611786079745600950601465965267973902599963636533974868599960842724376680350931611362875562864624890511506465564183094724846078296903110421917659278780545724421431967889879619909299431777654808782409118212105953191154258059310982206318364395776139656880260783808308832956324588867043190461623230660056271111668930621532592224767260635530566322718753763124970357857715224612133210164561746751486560000384240490087992731275400365253584236633832304054610819063823741538246833476922990527136304454071947365954434213710776268823529204128607077629016612590382154789542060269329463043763334849831226043130205476705404349420964140860015118552681967949558058029808216985674350268830466223213120838069260042397260509345850359741094241882479206814286099331609088997959646566471285380041506776368464669005924792548606153718505671332939386076286779700808497156984314607597656891840049773628759833157786323519131925410366614365980990248483449613971601112377429288993202197317972523386915053992249758626310925221302096912238941883590150057116258399409335813577520820445962115622432957809469910769825650967588492357511693353785161721517306713136220484974667835794986385275566994176072574877226813404362838276958742470715605830894361792527758599833353909818006460474744145320500156716142190653241160575472724840461247807072684953270824476812168271292315277902966441915497180348911148529296819539320855358968503644091325820648418977391636242075124943120061145549733477917059889056830032710373207563823487724210740462877041247206993550903433424216665245831860551414388642359342384326995938519237347092834049705757556487776255650241955682902501450103027804427398609057651527058419294813548053609505607254074868318062180208045331612381105622312985132917903167760207318418950427246586296440362793468408176912465065868017755552864498967785235579332450196499233192892718015714583735095075858574186831034754877076034493340360152641335948795800433864574137597244495389117659557146099670652303121642961919236633169008760188583933356708744036791131369572417852807555348510959470034000643707614220605392400281343721273142683879115141187190734052131843539058673297949661703956204997051962682541520906701840588110435677338776023507621626251807706169062809379083802444385690949964937980473062734770683745619133956704387017200578196027757657680989836565175313583583152509468425400392525378432713613394113220742734721364966481484954651761331278511360958726892201035480488904134754422465910109046025658287605875091483557694906240750322966642531207545130007607572075785517834579967106055918747410307276792414648069356131169149915327018998879755081615328199772277221517147699348867079509985875313895173598666518868853859458920880268652727501779977262561402162455847061522450331315269802367374624646946575767928907137628109139673633084739089901896483319660781283805743720298444302186018971292895454515966813246292337457276727817110549812504297027573029780853794187531622080486879346146748324823468745751454096341069838568923106044526088700372950336876125457253248339589601988802763333146811828870276791104785228714640816503719612711294578881007592410276599054156323233534284115515303935451293713458898875562253060543242046037092806114696330234048472426863498681836012479776961979149562851703350053354082389325838140390053978036209454290620657657087658821843566221021568493049331045795723096174759318468390239840374098420681924658338846282660669642296114939266047256742451314807629668015068740689243088471371663763097290792711539304234632062136100324328443582408448695028131925854996354984778840065533999811772758664269513085082186724211271377959974477953307506051235897610241675223714205404510694740543090227875264501694555982083693077657300218527552161365609363820609247771065130401519134637507864988340079603508569945234545797608882580780576943054507580033359109735594872146211538874658403604143072435581958701645691188861381723746959512372985164698691775206468614775640042155515388970181228889779445593369352847816275066741464011228982395647294595114025522659342533806961302651984250424464721072104966415491198687518419625168055240675853735830932196241077676679961448947910349430232356803372064226556619347855680920878855560302442088882303623961044611777754401119856684439627158545813532760269194257963910552784558062314050931965021705333381572229604357821813148165291134304173061299541719270521162184681977899786905308575251687929013111924814263775480436037151521725756996863567273796403549921155788552657811322756444343717945983520169399695147869504796577850617090135153008984858111415559711047835549782060639597987465230488918459009944191789316429589406579452453338524974048894756680706645279283536067551754768081461773056126744639208881683584346430684938834483435465845223367018109508578966856461273120282515890629571211879383140478236237515645880629097898119220089486376177262856141985063186670850369250211365244858359758102353701837064020100905289141790890045456005994527953765761516367951558390848067816447926618937084352021547806201913088672250591490878086467772339818623927889903703377106673932125080921991676235303819728708444717895712837431596569373031004357824615033009665439763510672388822290509479093504129062331266802868472137683895160975759658921586146158125334537402579182791368604771171091844554694687010178745171571865589409572633250332361153445250883362455209946828283061142372860487505907484083131931867873997142551439258597611340659914826646091022323090198669017962866023588252768186213857037405292623905726322423539621547256195934479399271538977669102583158153505977564954869996704216915606719865511338401755865578718384234524381015853258650403485145179670094880308053913261461769910981131314329116438971359329614138252987042292239037470449439793440920514983424364276629773261278887934109105839278373963628620447137515080569989492285846365492442859197434060403759169859650736754717809844407563478132927352430875620186540193537470447644948684514678947521312301658836471672064731534163571992980197237115373795974988643678794246882010079396555705752696803692424265130495619071386179560438843168969117444314094201751585859818030506561034946005664607842899921904540989139403230185348192212407103723349909220266772192491138781745038958541223844505038388796063326489336757849113298648358774255432176098063077934963416567805216930550264701469161941160346507676686325535646682287895932288617082874931392136008666853265227244319268222178847045231021150382516831267873644034596818291180740148319904357461515506860656442227351919912136494359749871988156046372150260520691602052455645156630835790614121350455901207385017633731499154564702485131142228051588581785530562735001509256516943093596516966894407530476746370898498615178825455029495421705251349756644681796344774298021425251779144442131687801210626753053525126857054958225969820837533787819730961910647970896307206578339671945884323962474230745403148255903172714831601552052830672583022354613462153346124734324762739481890995818146344476885015386878268434538704644550152835760185645711377417383285051452464192668851974380925408874750766091645394728033801101458446688638021630065133869139998575002488286764059686538088028362221866223101571986096074250706135312138652730222205871376140761071388158455982663219078475217163076326153706447927423285171742481635405719979028502521134860410770399314670434446069460020137181924100560676807746289447233167865935547716826094621741336684122926231008960479186515462985873307802768007100840374392217586407328508917026044669277638103672763549115810057041598171675743659605469973797641689631307988651279762861177680602970388171519009311299366257176645123485781093646791021391111109372701670453150299237294674999774037796323447601560856500894803941015365642768502189542780175871783013799294095621689186306606691703819557921173540651601557891180194065378590093866235754764979861787642800029945276707062451972405781666575436898307950904945567035508025903039531436222675509247147408838813518812001406065851535083398745546271353890589270757920938681915376516180160176951001365330854909336980071808126034253393457994327098780324840489396281283871996194708915121124407858675676593207821401270624836048793104325384357332659751438590237087539116412224930995572194226422733045292310682155816286787949155686991297522630910317808718744340204317349855240837602899185424194461842346343656556352737079779701624975371670464516286939394339279985751020033743975112763654625948900267274259267510856053539908911891111736780096273962980790963917017806442624514512828367124134195382633964890368638429703693289370791738567001298983994006510377296929431558786085284659725001843673278764001587846738813322409058286739437284851787425656535295774966138635955618227782494334572660905165297695764346469354234150380663185900130453958780311602433489125827292161007415210163571568084164950281472489916702027759551936526780021132924992848913966276292438319545669973947542574922217997446538228156208822228784400908761752758812521704703595724081270804434374404448834996778118550378634940736394342367987562208835712139366253185645079350002795624839083930531443796644547729243514627122900277341644639711750629280973783932460639332091255538195644057907092258653090689456556441964877577494540190364775283191715381471780436947421349252386404118087388571774438157969150798953075421690627981385669859673343039374557719584951863160832774063467661382885223862595455428977172340082371401331614778485133778190573808338053960364775027155567582639885510217487587470565047725692635288595127507706723471908802272116515638805815056784350376870900181887887245597343991990097982715173756338826526353414607658761679990098825912367216502614726558906234614023791223048092794634189083539948060322055475119374315964609477593769562514456675791200295261673289015049694834795576517466124282542604218266797299645241298364434318573770524896471155908778914358722489352732082731510569158468903448280362064542848182570429163474346269740362939330624783604199064696418121287810893792918304490611201563612558105960283559900938935184114798964996866500768010055039891746168081033842423612009435095732056341057275886165580281918575490858135931106597164057999718008838989892570350350453121770662448887855092108637731116073244218793536667098637239729986770946755487774934699237700861987993590304657045504201171682992672672270785411868451717308906259768097236707953872643600242103911256586930068934400858377971963608191433866049041495763804052258260806297858572314629426769025607407795003716459821360611776622612905891336962168910455665544792252025966359263021415690713978822727153806205841904057539536343245645697419744875674600667477673199659395694047091156485930815063349413516787584832073073246780408588684603785860950341804570141740143523192863808534714672944740625715031178751812066254384985633764530040586748782074824472015618993946045957176331366585834216364782410429612479666739290624940247054430705323960970011630547888231173098341639611568912094577320246809440412147329865264968662908227056812243289430678077256543651949201978816070333824905632731781586235949884265344953957245922608676294543748250173654435774496618455357388635639768097058757991222458505202991510626448828006340726190812365164413059661954447579291675686493557311220880282758804046065069266754848614374768570483194462655408944069804459238837099788096268912355180408856893731438652730504457936205531087015185979516843866737753270619001603520101009963534277764900142329828444399633897148412764472038136002372067076390182754303854894062747534205018465997194986643324954932254521646846239889839737721119381206011488738965156255273346161367399737653331199515927210590620989056088869154006287372539023098863893430485235308206622882510836547814780399358169529444916874422188679525942679973989913302598928819346539762401843707351462969870717753091678164559116119606683506570879638441647050666005613779259712353774631881420637502952764663111884129409829628902805165080283420714003283882535450064086723556024776085239173156663194160492212547140290516063856190880216409189185412337515487341660453929300768781662760571560162155990440812835802822536330426001905731008606782209789987519927789974751871484248723610165942744621333203260730082843303850161994935921585317387499247580316171281852161651062030748973701037644765771118591391793081521660066126602891625646237529695853695611856855491476975305609274423772581238278320760627475415601995640688692059821207893802120141241175048484562864147889732744250996913250917556037843088549534760585080995250656433969818475402964458681792846028478428022397095800899434632613170055117874676569771354129663502444640017422634792007309759270315370058794614816718975794076159154088740414788802839552693990779386666726607976002793485775573196990574806420283995528874372183626114646328337552024492443653339391519325521666790316165247360469741371707149953109578714238679592676122735088050728062092497571207636278415066963416754799996668464935480791544655332351086870242758291930747913092450856264869479248580645009399050261628951689430296663186571447551436758296137360162783618295314066697266397696948709760779938783943510788372642899043774666102664154927186852402021052076978894340173006185229600443595339743366989674172096204809727129814592943048514188528165634028955224655482590418253994193600216288054903038168594126189971783039332009134886752315002341421562972866629171103647902124067215095378655711506133934805007381364147563022264098810893540524120108852080069794124083063362125985848452406144403173202556018015109120646371608361140178697059951940795598894524479625654156802118608418548450318333084643984375570453732439884682356901800193998568723003318066189478938683436396023969508671033877360851019607423609189762242161338470283019469353439181137087082335352772228066868322088154276822165539766134701702276826857451162345791553938800994974366267963301646239050182486141962437406419966389517002918772502765205526951749581194504249413607355707636125165300009729898731444979448028201834581509080231061258424798706641282048506673624838220243661343809308924962249001236576462332731071028137349380509198396420156384905659026688159081685788032089706020801296976418165951022116086868908393266911112643190105060251253335490159117183198675316237783150501586757313702776335119562559106429030260414678887856292259120880216088764186403797840627413958721928259454130957550522168755980255041009823108225352899697320291543589645324275724599498710258093529978046586288758298534993303100014322018675434572318510977222907625586269279534515057752390622807007353741425206543500074429310144174252636411582172006251712275373015142055541940700782307617873260783085629591648601081060716113406981089262635688473381421080451622913760234084088978250174864760720644451531997778676605585862871921625206368416849979659929876457059049654387865669203488561421643961834188042300149235522811131283269240574229168607893774577904891535505541748785574321271477065288550163838748834234980388824098520323085629198346975228107421795753220806207134103121363377386545952544313035068388518672228043190676917882507454624638691358151181838262497015415547461047810373566405271198144528000374062987774336127945923759658347679576757380417782420944881752898739221080165745338934061704936098038912574866422913337787914957691510945480023112727465407845041439204687584556248978238178057977901639160364463850114304672827848436454327551305172389124262155064341779162422031660079851252720286706905506878084288177159326227451476172622469876266086194005354562898071175444203233975326351202828826618798394606805551978824440872041776756539947670175047366915226690441285075160106232017291021060449748612621990340578546184610778743714068244410490962610868615100458042173465425408052168628569537676897638544080848151337481416012534000810649958328403170788136098354893023046524113971012751419613838816384277428117659327535441182134700195785007176810857037485673168674304068079929128139103233396920649684731797857591835555181250732283007077773682545480646194175086676066022885490195172424545422316750677357940623186056067595641433879318342166551311946293623571915998002372875733241834662724597580210088596170202918134342571326963460389599952706571267058440373815422616942283571739897473934086675144253905798701127179117106369256817556435192969473425299423342414839410639223888385664906243522072321095829330584937424485957194419224149409357478862998601409315167251109553466360531761146418394634686329577018052861488042160762652856528366639822947384993055753282935789643853260533472432358355449278203118938406295788104055537060517368024381739871065570118085951823235022805885920959902245245904087077922462134749784226918831084816702245783391404732980030665180026527200634565738768409267753487615668956215681411923678721541918977203193390155454922679401441023393878108502191928691156429758824103890947079870881451796135527276576856444837765544205143212958701768356373133748457610562666698521857285779052174834576766544405780740813636945105989002362493009863079168785869295248889576584515099870944584776256008426844146281413367449840794340724621918293306200159632049095296383932048082725042496731941875086990872770059319297765474310541134858830539504229020085907348398461726443277455479809656487946326144025833765073081070386378332060793923254349486926465923880366012260533805803811460995548476061096448442988317123751652061140263131290665379134136141102683204011387482730646331618694787633054764670696672169848103344792197936666535894143525829840095125480027131182456075989924418040077938698052877910909837107313124220996065466359883177992464918122297758741617470279161877980426477428730858262257781860488716166450263670774653872318130294915639351759654103724179955667871071175433683874228600849922955133345218037194360170093519020428117113163018546054604595847312464548408563512464561678140502989425567453916242320239539133964405269103451397093922304883264090190052090347868174493107610543428800536746749983147551389243223533930044534230754706496348373443991133009340234620393621863455067001482086899900593742945865915684268106632240326010312524494490610392108225173804024563563098476658105605960248605772971963189885167926569818084502463185038000125338591321270146920570429107102588022773869277750647144734678316163918410766323091370004221477432130738328096652348418514585950904000722803543110818466466222866178904868722159758231795791093157539116238631492234329520782188522668004590330135867486999790650374142814941938151675454588877194792700312471415419104743773026606733144903275920221176440016545671206872130209828671178622754279458631918813656407926129271188893593598572525679905127797752620139971957089488502112321537443682887175704451061647461988439969453648572752322274387569910168901090678924758260509104837812857418917814537816320916564098238221595838309811518628397381870604797862498251102702332458734922121828879342276602375276738122137162794976407737663722619574978844678205245258580889940687457845421569305582084001245250885714902500377428662506278300944554769476547551340094574747141408954595931581109376244762590858117519048650250107694941775871645343961865278633119086722993416273091482092055649675094485830029935347750894625243306393983465824733105705245261776014467631127370351489434152197219490680223166863356397182300470127660251896920874986379430786588464413488581178523911220358925336194604162601830399885763746313769721387421881765486104292882527284107597140544676574048574381467389570894569751272589626796004452240485613088840599143831115794834915474950143546702371313404502471274597238819118182206076162458961354613576261428549022507999713720229212571181740961214854324484704488067251654736013895895424099821694632045401026136160883417522274153959272266565585369416017214622721352801655843964941066457285055623188010422912862096700480976890486428516631445665035522148815175725685899023994134095246353439064114793642154050076718819115600262085491987677087360169603711164450748989742084843426023495235171728000524720861252101361375472883982964311051404879585316447138745659280773004557290365427021093475423661323603124981872233673549963210120877938448615638520305797498851171180083710752297927465981958864636868190321379233097963195756493148134877966120185033735411965067116620749244898786505921672930930699233136760844648850479973325206785843033488007834002943147828174627694882997827873313020327908920905644406514036939743976014783954798204982900852359953919622302092559486233692519497779525366228348350952448125054425982743324353656103455450270202018413000671146613348186055791445284143062112755050772046313944224255286525046982926984283462049599554362816980789767187256463608062002244370889166518054838562967300226404230035562510282321889228248466603050417250252766325307304862998203462407441915158254176836437102672887986101551046419125211443269463478224892151302404182268563666899217200562306731807579340659869454761756168916481411435766163313551781927752534433113768019174163443348278915073546518654553633879338389583353965219366010143549963834894978083867444754653540096437355737528043733531466099873322743404834065031194900843340886076365310980611959033256445474928622613188702098290806051575329362100460047258987003888546181491739393572219404946437433318386342913691096057692149733099954841991649118151560252557005598252015407751489539349370505248725210166977519761485997133822358518114818998441571847581124724428177783070593421800245021845422205065548540181982967413811993394835013095221654106161054353383166026737443001992078333690195885712718159577639613508854736604357401666040556774984505108257935399336220317519006246920145333957600266066038236347012858655525551915898435604648076462494064413004570544634635416800257312809260844182930585050183832932276472416519657111048777294000569562358445828610567105281419884385577989489676919041078159968543486581267530331752147465739547880339747054404321702416075001695357290566202720721229602358221757182769351113996248420772748280141746070261142090231577176398182621124155752521623668051438354412039044684926382544357567726701805460277011508266120162614517132613449939063032848975195321753677278139943015458453353799428087552490321597664560780131048312313505564817901133542501031486783724513348578206419581025787508277779199530825120523388306082453073139766054858635586836599352165610223558324129089010466170672637660417510434630378360616924790587403216315933639947570359161365389694680395843377644629882987936016233104078384034016631262197788787045675968362413765204568945468116621279928436665147810506068168079713050999698648969450166052878409143565958927063708945475891626224570489533548321828081994341333734907189238324767541174125401580923012964451127714120196459274897771083590715026814016947548207213600640163206129530198456444593840284721257912492297311236537897137615399425995557741986861841553993016591275344354596781012295319095980459974306338163431517571519425071742289520622755739548778676285596561897983559408343793601398230689857838677204173154222660070611165185300498947982422393583464885796613539189916956725674607993509517765615627058237763350679692823615189014799958862735662240886380346432286303912851348164094577839887795975940811881765386076989006165755378965539880676805425512088510236085689535503373515757277826763031854809677997417262965162248014864364847402333522654457415139397149166155913884231860044421583633089020016699300906020726945148156364643064233916742717954312599301203172088056974694447516431974830001873526230761051472758834236378982424811746460559351532800980096084192112935137129247355987168606334467218399292784279948653528645621775761745491127917231073316877455007320883919376560156758978899194981364956001529244919336220664790377025705066950319215145478825651998946168441553306441225321179281902839428629165913007654781158900125042495683505786193819901732857573121008866086683677516612199961552451885603500844122595235228031837488799844695457386426688229086755647078633528993326582301580019235426067058330077957412931807962910192213208065931967879895805383120545160282408933274296715701250128955404950623758513517976042571342078597782540710599900503465306763372541948977601559976896689323027421291828150069026067717899530927602428521753115877575059962990677396518481531152691985303137413490003174658017682888141875443963345721650127390722397175786904507868061969906696142981527965106380843725672989778690299960244774662786769168571523439358615568573147711896144001330119294101252797274874522625771962621551900032228054726630648994486534171757976636097881666116374890140884960847915214906986430269041227439908773387121881361475523364971036796712451410000364109005311746423091048705761758671269862343931516547233064922557269151916605009444022036279860747998943752718950491586655212656204381437932188932056691607655342716345194307536735150252791470482287273200316170924314586618283045125178971133332090636881734651273000413971398463479242603392197253114050376714156744553611417752951780277478030865206767990699786613127295391994662530009106086488508457593925552726609084825254893188433840592332435328019808030537642099341088868414938093829481274140302519438967606747084006225340536188855765898944140201669080903023568310023389415988716409135162728337094948044944100370946986984433475791036204126174097712578165709934446710113530108877581648783055046780286507541698088515783608791712551257275101690780810316445487268821083329367204528011785165870435071853482567726512374313475612457189089004363346651246207925053666328118286104181237669697353383757461052439381345262308260427819510947011947404109894636641893824698152500316755306560649213957585079597988828561006374227907679740216840103071364551453480936176639244076624773096539548885341648434461450183914366119956906432805579930588019317787539794223387157956010640075364070429153254826848515162690734507811732714380248865352058069984040177120525396181757680144846276949773810895214828637494167508648619508911389771343305761652069666887874234879503216596623631689974204883199795173600537171057963051687175153107802223630058549109288135742743886179322592013892333827573722432559918994730910112812770165452499756138444490509355361451970645352804162500210985159964230296792140437710418691187447411082095375581128539234769600640354149415074267025538519726100146152415258816833996063497540264332357405115705192191525256620031573854565296221337856429663258875721219795222517459085942430209874973931277012444873133935096994175071033392721622552711115043523215568456663805897598568495860626780592741003899887707392140838530594748696244959232063589377244020415869959396378163369353705959565167904640983662544149859634313725609874644642644814841354136764477106497959087364091947381024639162649777174310596039365600791376158529742214291488752703529658532437087720182808150201436153768760725499717228112416072337978533081068691927724542006668619444163789752558545238323143122787578365279519842358765999296771821982805967048516619840991958341251091687051630948183416346779864387321086926785732688280943432626758734944713987353927969765468984598810262890613376020518445451053548887720928884244800945664326280767814678304299709161178363367043765536897478250153375612460966289022520481033811157383221633992534546032691899267285873379792726202346005915181474111896300764986510119331325747442649625840477586701638477957440334057191601016218461526400228930987578844146698938549778209393007022800424628057854682075696764291060163535407792398020184127545473107187118918413420394766758658368541653296727383562839651910497566367631747309767419828861191985251288601282025848020354257137971365432673564573632746858472816771854260741035183946933302223593929581937022502162895392463697198286495033589181028439927459277122886215739926884482892072642245167353248555266280590169850917772426562956635491638801607229380422648355250053184877955813116285570506569716075617199174355846467386187728650838727863084139367548269104425467147413498689643954623139795213460593792598567930065277016153986885917135567050713408289551737412883209194450293441520454227744984012865849870740448370359194447965143242022280311286940818382557679145056572582741254895860057439336038373013006333945096123322612244106461925785430006497072573166393047716607698639426601838362476520295594930126292804573152203028230387330275553965970805330563463550643428865870542542161437514714742568744409351747507968738424497108701298361363845909823422321915860977772984094260358362375296994104425077093465947910985385221807816015463596174957048803479107795743583763383435747414359866562220693393799878670563127601454743643850020181649634854512754189345401936038341164526404586715310341705438618408726883628859725742334657227364430260802237764646617241099259194639184787516651385854322778611300164624629507329905098783760085365850114583363266665971138201918988236378133349060905600233707324558326720456566076094572575453953103221563880457642267520275691621105942417203031083406943154080282408304526624015081615112033906407734490001535449012620645073447508735445400393206339493701583911095926429015383877720784863490320314090126419567043948667338296975257359632442816179647002856440040693411736186270253999858423800142087552660840447727572038651655383869308696638961247773548891449629381751090110887724364962206252276555500769559752807696259771998907408738118498098007821202673580965794252415468858750186688918467800194914845989673300139429995740480746726824540465595062432947785507788570568046223421857881715721181009695776169810691844610028036944207526864054053398785913302434436532854824742204364285994721196093001453991564102910582688168273999344856150060295434427107602073117476018951820918506589328620838263733131007023928843263412647781087138943534087683996982684929710878477622114121086388115800057881866926997016339473310049551695041211731486586462941200615678386085427927291894161592713994862320226975525365458023903920082221655418511937071607079786107020975526820178053924340897107884809565280336211923788016795466592146624003006618381678075029730868612117454284874749416407364951626663567459448794047136166980792708145090215798850136532414514125089988315657421427406113466711263275686762120921126148271130261060216239734114428400524062201660765054486942704152122922105582634887829748583167263731082118666537565010805143485503541336534200748774686395174389808520287632022476592689706816374200570634870471406662188577055755809617956288419273574142185500498159617344892467081701999389918103234066586066626643329425004060044814663042347842551564059221290698534036524802679144577825345031757691482579399405870770269572969025346841591873772201859920236741769119823783559813795170928326951017334154852341963080148517234851066713761999783554889951619805130076411114485356468829964165282938559652525741879689760699271753861526095642483831051686258864700527650162291828108887884447378776096167547618996770499219551554624180099744834881482475473949114680721958407405476642578364343393197267727858571781125701516546655505683666862938926642282849551765408154291813924607103026494819185400110613790441443448715140972962992845637076631451184547735674021237044164409229163997131114652944403995546781467281348142185369155188466400834897099658592068437933701256072563048345052296940829052202103503877506869723739545095590766636622834531196443531518179030433313382473999806221242475821498611210050618543694736976788909878084554107092510404244194121645249113404734395295385487468960896112742464893149124194367469086022286713984384615730697282199320935235806755269692050808993792126112367342922282663793463399652224569678157843085405804739019432975419621747496678002748007502397990584340506338134699962523821698417535645541144977992367478088436205825931999625848156391241599077462712254765468250494482583287151417712278370533026573983333676117977267473069643241128741263095355608368355308419742647010023205994688499591211428243879585122444873597543235093800432368164787373022914564437310479035851356944461719637167145198093856826620508169529035488562718397022691761775784595356105452546328849048097974696038547497217513047184550339038035302882117161983076589487970702546821220263796921042627701657715367935599846122207964359105683844593150428735643069694563871938782814832220609961156289512134665936520940807435050999549222167519225557099142588411672044223770445493506923211605116209250879086801663260480714057908173562238248257275906000548824972475077218285552305438848146910377901504387983261088679139032906281636676054068873068315746709472690536108383071777514539858800999450139418125374781616585298338031295088236350983255782438388422049286183699629246011127663011899275779141535206302297001781980280383752233064807563372179169240383365484773903290868465152388900147304551185233647800100686960733985456197981691740302349908789657817601128929510911072942698012538371119788282138966032934157074302874487479175978329909487024087721850635995362192883056876243702860305476607167336078063778981821486206245493216893442273131456502331445212664808725180218142273062932260651130907260849769863769140781125933700927000672411145197808986199170497577717204344394614041906665222955051242664281576580454010784592338545941637765730473204454275090479294664424426367987373216393441633458164800826321238182154835329228100609123443604598506840374550612881667402157466095633484003209365120537485638196668000204002253671593655129182966222017183918558981581313604676693156472558872581793063203621428059645512320456383196959872820900541089819227410102307440052253787178526037482631879890595049972899710860546441396758025470874572629171992966161471825136033484608694445181640053985501225405414651995563016501654317268604741767668644964679703386022838935623827913466116790767470204705263318092651975635524765419681918160687847010765074332412065738034588383015620486055871826924097915241201210453151372184912396918218489916442604745157304045673174575535938451344489837298807933858692288407311602535366637958380070099697356414136058558333916029798680673605527610092036135554837866202447239054656254530778871923952464156704506134523657721942473107556853730119626497852232659307068162166852277647819845654456469781660588712635217293534205929300459938786562894160037995336377494602800674548166775170182194044236213780513543039777983393890882033470703289904018061651790840663812668245746489021126054230630852935338907297430019370167451275888065138380085427222366106555733064159052707162216725410683851345122547841764377742674033590790349077489576420281344612947312226254114411694796488488678953366893952428131499324302654092798209589083349978007923706002309534518216395847254171697505936598268250497579102841288253530219679537944115358858473851026863527487450872535878166486648230678613732339021668342054334917762686748140905264824700943632538304403832294155463525343098795639320054501880455458941020915417696788296599478888405950086379361182841464284440262540715034054650248567130017309694648466286162615763221766044516102723938552272085456334026091312824613348974739342380626674100292526680044238263066332424222148113076594406976311494575920746546604799628610505002261542234416325542369940692845374966169647558572032977627679712153797729590938309979269578995134353717370159399228138132869738204501803209787577167527052914583168975462415858639729499800001525004125804133142778471189859754971020494502241621884148020684457761349144164424571817035653535639258573345906784946210870884274554348387324785089868319272571803167277430654043356203721909028969905315247526531505294814839144653932965920656289869753340701451274332778663714339285840862481124011602347533579860394093307433562249881226590470307060905626094585038127510700277923240324060428657950309847593516575903712219883752879880663325100095629475744282297537942044541152568487190919157924374976089273012567095589369350134467593552697888452094882988872943349900852828754133417417221837423745967557329720873460970199732043985250321907448362020827375571530133590250339128833793953369206256276900063291154151364005025484064964227129045178273755078638217793953871692066991938274588325031653043676486605781976634463026010502130908412509075982888136602453601212358423809393395072616637546268147672055639420452231373119678707481961429461632144383311763863278686214566234803657296971413607822276601691462563888113098989690877330788095283161052623587245265079166213074898383294781230887625982696652970451434231905756171017518986826091417255637611824873827857513962888872540472567824106447082312142862956268197525718377985994277850519883290443451891505085105590489247243685944977397886859631122269899771569040867419511297117635270166879067989798607199892480265527380561750745665278444018521242811164761938704103835348126038927018453361681319282330841722078218117741681560947145503854436647721963014045906766719060491755684331183481694571971757383612285748920844740904846152259802345664906740188885896457611311751305950180471002679258153283305753040372193165362118531110584193206623634887026530561602012040845554143881347607626004652778703115027957494812387737478065507911906070714347465407597411531859821571114604503838465706032583671664735281811869193436629365521097031310544168592735398619388382431511516070488833522467037760523866870300467820153678853551950757652883537287023361770537808988363821965653590394817081749893584586682725987921678425731419832152286415273892739160119155868957268464107549404789611516442388560221255716269823336601806277991561664640564204115988477652653240804722683930810418561669870347677946892947023690175793923104304196918850613581795028996263541243030492678031376013371468032658516194432151263159403524765591413908632381289658783025245915716672009635167267714508521517814548589134830862395780904627874612013237104333414979468957571688331126247610028412744977679526182253008252170211736875122526802235004110909995453232509123445309557304339878610598026519233783362572258861425270151793348185275215356424926578888678043468948851551836382259875115757421845983675550626754986936205053147617985663234310205712737950114290502871453377628423796560179308835757137359686585065425994427439428995870941601618181504143322307749619458030128016218562560221630842508844015289724982143297772817420366643293884325054194780201319582930180447244378242862774361567568893019728473558036437600504654033962719566981607437105935230880575078492938014792996267899158261773416514928147739762840941197178254542056409709593144561267775024280030085111855441028634128266338068856400228665567658227036602659373931746373246128494076877619622042520715188535611714617384521931381968925977867065675505448335724391640255157012109024622819097056116184687257534776493734787643535625922924409639848145239134559971992021790919657019824723148190545505289111714305433415112580153506219742873654022880026313784668791363726091510451034558095134695665395752633005653555968034582279629339395368613175205075658347318523124055858980021743442286713656349143322507295988946671303456094417537194808693580227281398455727638353090991617461075050247392236963342476191370180454556993976757361741799941067691499730042532305367322285539944932339299602542577571763541766357340419168770414955599406757897823488805141158164050990227870398825275706193177414700121333085495314321390651513382915388720729275010037825649371386002277730203051587850239219564790554917758006176954432684060224652813428068129234575430441490580236967904284319338216303964016650370716048707767681655068752796044318886806426972438939214285816785108846750411255412674307091727099026600882468012365748468997247079175352941476294012232726356719607874414999325673759016137102987119077402195170881063843094022132389772639721678822967392885515859570423349270236786249375227443305456530340418798821945682359262816005431877733532341797127804233711160869403281011661788532610553568419309909292782741911166357512625740561081206751777062717098441644632336355319425020056265069819533737254842756195871344611412561512605962131165052682481140513914043433169899347546322259924075639787369439645848931681848897582628653491414175661362545132839998699732916958181840722502077701909130787093727229044759934294225998528589828476482811441472952816199375570663876361240349857090786513351731946481143229179044477246875172468748434039477812949439128834275056638601153990777865924325410984197969288259749771918064881634902569462554379201139198528232773728732422670732675656768679845643245293127757563956645671911165854117870782804314385586147192219659263323232333393425409219008145060179935788919328949709473389028946501215564658373773190752041119931616413283174723048246393021163472838884506327774964698987847458566626362475270670348770011376120661605246055465074100921918168414576784916209011147306766947773534207277510078725236446274826176332989898665410502766383363333778774785747071238024717953036985422916930709147831457245249253112650048044140108437283983372715966129055879393253111040345452277823567607031848565095168097252899785950187537103407109045112985459272938091670751308439660069643233495792020022699737526693945041919476743611361400269592705925793175358325301907401387089301071499019020096683272187460120128011420283306421372602506848842964590141644103182756983033884093655843757363139348892405960897332230550073615750948030373911077907083371522030516336643810350298103052208868508497126395552382860118491160713615489565418427125350269165703235970843790000961732618123833939572102331015285016440152323376260680707572794192472758423025034904794470002665055994676372520440343447062416857367629003775753880855148595060852160048743567078765136634661937020311515969391376727777191969428470126921037336090706660410537755663194839023910638759729868084194170183467446240949757656689768135229285066711150971951659815362333840933029953660348399973808977074768194087786926236928683446101191463737476770548241466108878676062241302921731626396440539919720892545716148928787717362592764541261717526323458903178827742621614044182128005502308071878979259793896433218229487008619582704782322419554649701881907468422904492971333686451410423989974803800430589644863632802257196691795510152179157300629961062945203879461877212486869966224492192753756280147719484516893639739899224582612332569229452096300325962687502890446485891109382668291272582447685328544167302031239558610219115582858194611756628043716658520746381634727554433280892200482222196781052189381996135240924264041765406721386282463464093197526269198916759011580884691905035384135308737939318991763103640055339347173540799247192225293939508043138468858065569348853858152073566075254660420372272729190817724627032086114870254187946758949158763251702943885013369960853608320588939720632049097566439162518424398599013621855981460192201182606466887858266551325700602634629970696424775347243362472799901152715478070818387812230058167243340280964262100489393342705631801937561682154582050808858119681517933329340680903520945129740765665386942582274290866649569477112894702309099329180023053409584649249233659760499330771472754445291073568320520432708392390971874107238523866208441491654553147642039201457476531887673411497579979270663892678558120789091218190111579755510830771357509850315786718502465722621585254572412409463033026136643856981636479931076979148375602612850018344045559452535390264234378939463363964009091118246945637776544331355288297238070055813003232178808333359944353292735332854817089710408152656579112653154245697466564018481165905117420363174953699270275462778954552552411554814063151803808120111082447378410867262166548061649701578730376075859019015546204972415405055812331344137774310179173513870825644227240438117762015879565240224630871823882949388063021058613664144713778824102650640894229913715395168260287855360059454851608631076746439638557181416512117762879760911775002968306488043247875890341286377435312095905808449203104275618973785553356115363826379200786697731042091821004745101975567694376823510611865911065998339631837028429716831372605956585761764936012460957595723777845673352799961087589942000557639429284043262438059528071308084262322896745221804133791765404919113485050093683974884568906387128828338388747370999612356018235633176546661464364096249831635871047995272052782357359632773146581482828333458196357667375289686493562931759962118504291569203083012120408424182653674324808864850814450767726408169267169020024698757311536035064795841765454648828770832528681036759597302855409217028303095386391072229240776741587888403577750963715074723694382163348783871106816427124597110631108897368222189921107905916097001235538950694114274693294613783005027392737631835610162843549541585789051651275783896479972511375215393349151562578734160613038006557950519956216118366284754394571921200846633166042628292194243544529257606726027916202442960091586114095784165113503318935805029298234148112368519277448702550738282401830196870939830700026198984816474120031458325438806031710045450923709120577747503069250633822224823424848936920879706414864160416008968930279619192943199910778970634518713784172621531465822648288016833578991722581309911431611831015408300147347967945126672318446153928589555828908378054883873716427398913320313732553738158481461630410961347651072870030923570982788319691816005719073355417452358377785981610887203494610146718759533931134269886069048173792814138389045388302236201937031473613981178397176524596962765413737036234527823076903825529123129509804994046969280433135278009133819426356812509189113035306164719003998208880932075252174879706002028507460209166532802855345916788285003416630702147165663848063412510084473916949193043612987897561015920626193923511032017810462758558768687202810909280607597070284144022795711544232188045477821973404718233870724581283909533891848488859969613182289153006728638236749092201374746214841119259718589977821886255566287039285149200170237070011166773727296284538995363026535817489901983467880271054372186843911645710032778980834636422450980275636125344435325486606011379553140462065678572568865089407737905453144289784280471389005499835899208273207931532518921060711604486645776909658101135976251534124795988871345146258069489319475562160683868982250645973877888201671170205406258768715939630173563679430021747930629762489985521660829415210048006054308682156211629484493470847946849284182848467026061828546338384614680898529587863501464976273306780204608786039730379306103623582117433079010275890673203500975473297586004707590839984155562074017069697700651797513624712439113078481859235041832904177315259725103240092915722327638412129878081218137244876946112439112678697972119293516312387328882915216782371976466189459646708507772557586033282368049861384720286285614830008684261715829746452353383648560390888374162683083855384909071923316575380227663798982842806472281437265103014014742845280200922156030862807590320867286260812754803679289836564641486135609362339156573370513098468349102629610799598021873396906149719147397744064362750707262822729338266315539546574324082058045352736726237320923152188449681306259121852938460896233221852400380329646636837678097665890878722602436836877511191108915982796439325840998227488853425115484385006460630398082807908736612650528870223774851843755744715819017160855130997581572620702685165582780854912612358916875310353196837609646906025102230455225403992439627719057894441056607780152917142378452026653339800419315491710880188658995620986945098349829309370843038836019914072286949896819139334889030187777387354645243196647580065619329647732617608058316493672021426737108179317990451799446136330021957698277688078760906912925090552622661280742595675363978691638423635640749194384538185953059344465815253348702427463365860468072385186007310211018458754717908428273737559407187748995282115812676657939434521676021664474719889730276769137448666032063679040786437402502881972807447671256351003742890715260924325267745992933031369071301536398507475435028048061958338667882933484936444255986219339564366342306991204253695068128789728703120231954900837823651538738048972361418198349093090934227739137979667968869872992135003871088427753489574121060011046863171170989484901515570034507417071881762044523717727238016441105248476042974481396663028921814191981851581339991709445109598304227125369370448720896633900269121225653443813368135872252281051482755624597366147164906555126450237958357203479737110775086078286279054475126666386962324175962798286023060453467148596925640417117392246005119900303317383197010877276597935418960860235878829972409675567253776001867368728305497930123860425775225966086846228154589771634288973424606410688253262245451225955005858158185929492398793756009057844444500921289702498182283139830516947241955302488725429081860626036228494834103207808285579400886308898817389908002220040312650700908394097218313232972055146453284169703223445646103505322935589654775935019820142695726301634432237228851712771309573116306300553332671137290186531826558743802373747763179633497772212850468254264236538622610411545812793780647297299527058128795327110721393223789838523135766199881170122525613548632458767638594494258290582426102152492746683617282418292670562023864929443399849425178888983575060853947405455795270712296013319842577915536728458056302323285069830431156172442346415931510024965468348412194605965792564779502987644206602309596985380805295282376752890685082210461752694429964714830523940325448655034300311464635002009534355764976877822879293873417986151843338718032320176350586752707898188324256930506881749337186901504470819227355191705127300606418251418096607525652224510903934375344314176081717855222022908930925408739673314428208826023280338293465837687694186522096203352320487569094509182309553308073713840287328583596365367375332638282202875623574548389135514818757713253961387912038213710980419003938806405888816943420656016724025031529251644839268124128550831638986307745988406337935952976688880465713453804956533356611450084120066843948694089458799472128103493264232057963249020112201917370278625325943696566521564163260103190224790641492759040522344423453269190391214602769648637171372081216203241248817224745155814624809522730975051043140181610417916559851633086025276844000657331476772983469903210726386739627706628154693410430431961655208064406308381762505298122591477531560674703101811791419815356766603307974670083119502825503768448852183596627318620208729940856157326525326715543515237657693347932218028360999015771870702835123869763224886834565650398387900949098794607336786971963842939377000680511318699517819541197037098390995208493054538955473990972743616841773188204756890894822961385474327715407314193269944016023568236483604295047934914120555192095100183309014086630549808562107785894330695080697227655231911342830136771952805127409096095110634564651001381024176394132368453188109891570464431148692258658405667989957966058558713636542862651109200889756858204226434392493896263312822252082773780296378386107026476764981927159113525288980518148978797279529378658833968464977899028238697113493627784942283488643820190726037060483292122701403553063271304058277068380016614906702756156273840630991673161285168321204940941889753487969775115071998272212053036489895448659061927915145861000071002343836717454629337234670672310058255118910919280054198203719459782120981050557416342875441164610837041398857739171653496788609108969669290157999496490089463641344744452226895302819553587955477681300174829691636676884357190136299954274700155887269231497031682623445579025951440688850669878989360909990731707994135664149195749504214991522242100435530168614052511396428665279963707352579750827342161076080977485458263469723243233723777774763219605631332481666867541127370511352107371084746114629294140233699164674219101160935645963669312051182930010760109119216532383818555634658487137983238050832226834477706463402644718306510352953475269826491616574053047148127536021291644434056555346825520667676768123300149355585884643648462911984254039213556247445760945836420033590656303838851443897974598082953201936316825311312698692154634665416353937865177301373181169926892218578494972413984284637751205702594547025110850176660598199701635971496318189491410073117286260445221053292826454349585946022829454149746725553968477489413673284534412200293777901148307581800201797407822045710750435298668185490461234044351860775008262911325380743412648330352110927930104336475459126816556794300523171872383201786159729922408752645200246296006668315351330287011271019718284710409812982367576646949436435942839816950709276597084541007485145189937702384101857938533060357677198063708501591600321032938746668909404430877255886210149954058592933641671083979115036250114643850256938819899015277519352022458616953669616183544946497002731267611902821372658444266737393178427493205898517021258132777707512275714687421536119870080087567531733153751990672681075144892304298116179665352824359556789627621565036103690737376804883121043052048384163282651924575531804626958806086414108196664538751495603870069211612811697944538344161398191817366513089576522480812137781463360547639319514940883227106620042364714295771659997110998223606528205866257840667370606522708370699602187474123048416089853420977031037365081806549481337058313706652876808056789962531830996016614258544040690632649919902990661720821288239762231873559719937217499469655895624567378515805220842627979542425414798682782872062066163419744375766015820275322505643627323308476375880036274948010545783541919735697071934922471614914237587876063265747912731766914616336889927682880560250970688238819095186300525707154563393455212241922543446632537414273788286368406929267337530443743819789605097431478795568226765892186439131507218814813423002873913149547626923678855226385674010338291207187461962830686804521585873366638700851963692080783482122601979467607205044384112860400904144442448920783939224382781620783191805110503883407378124020415595840691904311993821882680611406263803300794937095769764170277808069017077157171557216083000622178754219394953956302938254597729965615706335413055389912014085424185940402207651174897080785535958047196807938991794452347566047114120958607128203909382705349405643620028695064914135573810648940012781305317137729353760091787885430195148758299058508039783575252704044156556136142808240828801639967690016151022195081357997129574629076958197500653406952940322060587627757525079029017029433658037244436791528866770653996689580278767472139899949702467516887718624239643784407398560012756889251554186620886339750480644003133167904886804993993675545273592915558779674708706704846815232025391419596921138677575699528895592438107106294822931766073025334532619458342577847024542094686455053215535934925251350853037934810217326648613894156058804137321894030392940057817124005029052491133887168279329593956118392029115185604045804794383134715596471911294496675568517502000680068852927101202263342770029407960156447981182238819388086503009815690308596843460743733679141844236606869465950701724002176639223994130332669695534974535845643760165191758707367815917396807158048962188651019054242244536516264319219571682665558402641434006892958217623304395672410606479936785494098776728477445693409762231729352623001498055573191117088293216055365717371764342492411487915757886907681629427564820796287828820537550227377779971826511867726658279602952666722314295010713790027022683978655765850972813000141427030612330871091660671031415483487257544433909345245774112414754591369099925954112908615315619134555410500012001992199607178949507624599893431524203199550433221017490602546820838892758097977341307090452781345386713403427820807089059096998736512511525019619217231130287936549626856916381585943924003915184996905194534682726278366930689499605702361011844243423073866335470699889480266200198428729680725306107624351302717260768495039861497342621885715905839836820386509781768439643629796154322948630295373275812642479099056626925850647060792273739196333204132812166248929723444766929405169348965668077485352168996989140432236234637801219539644391637580849552209934862602712274547583276001632768145428472273781237094497360097901493644912042947190651672833830472197217886966321606254296375731292439128599740512099996417865656759126427398067472067165030991166735946146560035325703484239322400358190763633951820405374952173425045524686091470507876192115837586663728492075067723591163941253083789268062100078543048898428020787803221524478010707704804121842969474653480828185255117615435283524745691868254053531316565536299110685804543923666817223197045955966967554962228499858165576252587312640119290870547620995280949500630152724734094310501524329323268264057161871293584718790291499174019071816407632051926041288131659372279612648097153912354443978289056527375943855422777010914078937196957163782721015824331731707434618678363618518155818143958592801188596024516305403805583442815956324294018117561719875053527215002542071205155341261250884272407415966652255577691742329432231814521117957591263823769031565609491697928342621843639818536149308774458195568603355648026892504172639696512227335002982773272918356147168301359141814739250211695953047534139517093746678560064749904703742613591257514805367222222988246088821101088143103323424967236759656308179840146950199480728780723745562844917943872305223405976134111072452449492865857009707545962975316296344589367253213574093829483590305535060625540781440621533491541914678354182811289133098120238217744080400591324706712832924950030860228618944972392581040454902498915789016973717617282762167056378406497087986376276291305480386920269635037723013084601980420202418611857132703325588669454250267162798777649000241557023725300459657190084540153037636981995959022778375762290197886865604399607601843612420520631122522719970226065630347388492766253615902452531754483055243647595208677792810132386854387946334233535671948598717393860194568747437691893250261342131421200254597284374473321069368499152512195664962714984058410653514394118094175986939905952648582262072485381472399864500513593901775789041142924839640036135802146446599857798410407840122866375522271145022889924349036409185733894255618375320180827271895734576018252278828390424951487067277841600206064113753754865152284052218092999668503652881738916510338769485363938135364106453698120653503214925643666522086144966764432868107066731771354228919248787482006001855149699807585631796830631452371349907876375418146333845066226926499157014355505186234121142407803988943797680793579749023302874079080407907146761061156145199506808226448304100455073011261695165677673041367269529031957696868177734303339620047624306056185005451789031817824938000169718261028111044235773908506181999985345809888531639091161596106782603671679587073734287963332610307559807088346265920117539010458204791810802603955561030202537274779236196345697246992042323593374665363957602219911410354365533963464964394518737090741366703997289148838343253958503626383075681951739139990674961143689321844943898753061781725203823510569824671940154722838264600144255507874826216084731306424623983769148895062023611150466574110803324752419409382147064157451207445919859143980824184847485023421132809398285576824789804441183740951289379246894205434942325636882639870851225120947679358927164574260559010011407190707788226971895254685061648641112459512930058799311294166107390535089718745212891374185661538988191911333958376515697785417232271854107493290016605684429177278080185362643916495847634263605678612506872517167525855814180842595433795934785925669445170066680352051212520688543582798716455697993583001218500251641964227416900233146377261889891219233511352957553278722103123262706099364795960215695476273038062021452214951260201741361932237486769600683898925034516504356066289687233043039824400888853452324388548618588601415698286556563423728811152486555044168126176025583131989514885341354223596399055245099471483739211397492692000527302291719871989943396954798496393393337240156481136809249620742494504703447720078563534386365602187670528848057170793831626487241044199539898214503441532623593299273860463310182759887426087522978864877719912052508313054179535808934136877927364495631338491146789072650107127843722542985747723552285426475566581346686371425915181632881404489697353505972097859919911362018988028123769532007018147844579678929732709817829161847543558957108660061184133204186676670532182771265141488316657875941060887772019603656054537598803455927645450817447773055241354243806632392406294780262190212141741603076224492299357418065398736439207128138220449509920796763916449422620907946759117723837673037902891618535995468295325282239720371018838621472084571272699585416149157608987045340928929674230335710935092732505698346725781522970798223789948164044290916249070621843107787748321822113503025070840711504009070770572278998557356262571855043786293337124024853635348827433652743733038699481025733050124461731203845459378557373026863837088672692694637243887798564226278089222720353329646018331180365648418056411278713542114043196957019337784132571761158973687464591586862175172561830900987082260347248219003500036422282140244883276750874657572219121736538895847662356220874493952931664564835312865559609109106960452229059768698366683091197781524678251017222861470887922923822307910298671540784244762881852470753650994652716728797379469627994890975324708286475750213211452831534871009558933182717097282405879791738819135001514654750522766599446893086937694825074121985528562343643348044945898022218331856009518259880360684632138499846841558495343032061837508579849736216572618387538690379795319467230658498005580589573761219505949886887318175062922585663383501564457845626719777490170056519581940824756911454248285750887864467963781423568411296598705505620490323851565161587922676967505060416347907202745563682310533988210929149094252886704085504543595254607652291013939192827746878201060708992958661698182947567849833811100041096207672458786105478246399080521181123406431373430164202880053765323955776203597944815891213431667660216051751573735750252815101025996844134113688923774445886674545811389547634257849823052182911125639446952156183490360935187785088792365417613261070664389040694785554555024533526239395096823943772386455522226421564856556311680722273125230195919077633246031358198312867050764730348574426779124017197455768928063935551424039829376776411860697347156231596379553436886876611632057222230036364254610673700852277612724320760472828738462979255015085985176930812533310069793588782662884131187968150642440793124823627560122080304871118349942525329916676104121075344816142871656760410827769032403032704806101596831911141912801726801192005246868885781662276319096739399948567711797207120379758367438781124161961359842710247890773001699671830725087019199383530947800978002810289406432783079221406473582046695475793966377928370000875879256033305316967022146010338478816145149318061991625123999552570212843955640713311912601744767348707459436339912272422778256399901983403073429629222561555616645372991322036753882548983778475810354679987403744043067041313115852705841460865751514048442068180603650470715777716730298069329611216076885418811624422942727083717481208148916464808514513208090474108614480287652564548663210225755270806860152674387341164851852274455839181099243530066073224639877641348950761484621253493627195172489946174707541165320502200425356912878432110183575429767154228899271938729184642034369777155230352711483511306742945944918028084551336550803665146909931048524459235158746855008589539443700182273436889768048479326142909242062023363556723314816901678640243257413440770009392401807165937938437238319890455070104636428654503111921775283668587609332548180996681636486868148303312949077227111100744496706676410707976367886798657077314123601181319822741327360546606449529759126669689925989089565109962397107865074496383066021222314944394738473808917919437815986535704039700731382835832302227542159546340352531473847723116291443676083026581305167848318898520898465745114177362108668303006809580722906468662318892471403857841738698414724708987575639540320218621471245128303738229556048082730250908221446475968846503038730134762949455301448149539113417692579267000052348153240230444087992140147058083122568251130842254079954826517747241627843144075595201944941898029891872678438302410332467781609978634630855677619561638027476748518021217031299720772166230506945774285789325343768115458646513754704298591496770092614949797694011295939601076074649358705681827778445524999271494591464265655035628010932440880259178026701926817522149838189164681533672658696244755749878830411047023379274124748159749319434722175633397856670316924421761258555130459338549903020272261963105808263151956621447785493684562098065521582233593679571479810534463444175039012369651612880052670727580717456464192187618065115564525144057617315583136916793342665484342208714170944032924211198179183149726707424657823933082851589266986575863319172980230783142326775856822537562269806932198756872058907658902877907416499746406880749003013084334833759821235319954782303976825911454985317179970196380350403535667874917546312525367645846212505691699414474629535275823620683279827722064076939633709862309529818991586832993799725455243010972048172151485164896750775088072769708404988693075501889150862311886144680777096923799068167331907387883467175702399664780568153502540303676079204078623609120650508236776754336540788500464125527841178449089770829809842593748209857903700425335688222354155988413015709652956713683472633557646493270438703730943871282298606475346054220340409542974883979869770935754135047565461082565262216771200612787774475664052460269640003254053861902200258372587046142189403160449593155464120118879366255271107924039246555435883072517746939732987478380918985835045429742702094378544366850560333120266013377861096621120928074451622596953782814709967220993373599417583421424518671489944765027423696679724888702974875080800434962529628582843817556632451480923949350623647819271675618257086273492612472515273618223333254233157163561296117468325586621566056706804935474110968202242583788445256617608811922190372625563980537629266974859243511841679556286401556524284511592034834111083827472551548527193543943031496328124069423913930011796727840806179130173141655942034359369392552285770038483870198255034413706242642419721140092771181218518864417953684395834922141399243411423464845014176127496731938978210778323702608429124190417296224278380662841556958305025791874069546152603634808243743118792525151710965677587920545320784696941158581371993825042101964746534748869554147593974969175517741512231200122958499032615951280658943299202797234058430997345376152192930931785866991628358189100452128968526516598501711532537798186655144575496493250293828691479768485566911890243029859565884743460513905257333669646977311347467182442184354175342120032700346374592923339547019566242045846279985491374459821644181509914995920914821430057621555870278158633963363885995956997446929502893487322242447791268035567364192680471897952511392433006665039942659177196303475796400671604603267551649716160345740625933605404430072185876163626591325135315953642230068780290049104900800911210026523984388524680775703853471521526010997788070933205006730363975522067706039218041609833747596614678514029861954038261592951928063028383494126769497498303235227771308008816520899991225379863292186877991109027094956264264165114935321684522199083918353181583644728576597859098751573196804117611327239648780147291444299273512862856452414853133923707535724914615634598548262471639615802030216776760590490516567012643125723517546668059054614388698630253038114757944258685045905228086070828708599813056254365057501880155457523882703108221629524642726078764230449718911691050049191910258551657995600064935083644945645284505289867521866559606863770912230337437055772405079877637057409518701335250751478286474868084013869946943880860852187755244953107801460235650254369590636790206154863610938848386809216755012944603534596537967542276853044146301063092838230808280654532602681585651508923501433678911528703874773159372724515420233735755837819784351619038481308387868591590071685616096057282550799007459116513571031915195789536258106917123456885676252042936916569489918169445992013430905210375012019134367549834434246812918321967044804584100105803117926885302367003957855681804366230347159723173528385889782124784795677425679364156019847867487334542376111092275972160435612794976592183916273704427296789407091979087957511516864824875492568136489111647372807493619185103623473666815384936657015922161761184268297469783141292764381747124730885870745037406346310562702258724202788531675198236631682651038524447057198659976175598011788820863547742096801796330908207843800055665583798837799898321814450861186553362264740835048355019630999663623904781012304881655435685773705888985216842596211121502745390785304359110240628132267376216987328335342040526030541487163809441606123737271588543841431590982524464180988711751678138468505337772951663327580429993291686017887200410118761567164808927039458284717084580155633066395050860696887548777274833229125706926929587884694526464414335996485510555211111333370041824820680459980044650636778341391411532473705691772604763485698926948218634549264961651170586265556673121864860830361509695294515433079800585532035829990544243673893544643910738858156024030066297777419473762221997469913317281931400959398442632462205856976469936121960110489135936592518304337983733449191857814823825749660017781812713295103436431578601830793345677090205225296010406141927875467418866025863127361347891372241676719970740444322578254887093445403878912999361069429672396710655531906732682184075792624112117385630196446588306672330567319154373236266402215881257647231172738956347053716168059991919840249036457786999508589923388638900443849143082771969361971422553123099342536130104507581376946395839206271163595310294205599610702435979300139408038232830915411232409211671211359581475402817795048216324627234470167407493152891891631523636645469396018793677019971891462582160850219906453681610626875427619848576967177922877138301076172792785883442703624412472617128761305139269510914989970205826517849307055286113911859562576802643098741637876910469735988022023498758649253584275014937575293188993027984852833264360904789095549215974468453128834043211082274091296272201963280474502276444205451889968959914463694213013442514252687514101246238087139986839027774115514015927727223159724050014722265890670501106673462595382228219445553028828631761845143760167501296867884568859944238264256443457853453608152585102563996853835039571480556332854073807664392333842727303946828937759454520129977468635855240148366762066497833473350868553361285411676047076636219969340671807393639647821490322446568050181236982545197494641275304325012554563035450651958003347010000572011849735052682754906382547871170840501404005195220333478501656099240357890639841125420248361306542691202617328185956379409089256556030760650121219933623426819771134404221933887010592009591333898773172392579780143806344233201133773975536089458001973739133144509509284701814460949913860482440417148128184533137515913414298336005215703942342689047303369461065777986335571918510666109557403764816266357133942829148880680195604512032472818886713516946145349683858319706756897084069265097113441718915254870085989118678826959412073176460509480491530516906257804376126635624745961857096489694718724164769375879058601920060612779362302227460648257546187055851132589076601525705696881387591283647863711354037870302303408535888912337055617080612999650922555885419895650922506707273705095644655009200211651970101304719283453498346200790006302433160657087540764316267068599441984600875111101461394039190453894007332818462590020729774900874835423678962917022014693620929418994943812011152713855009571690815302854515946429544153245035353787748585541305471602999282962392368907116927463291366019551911084058500440201400071425051709930798146484102203469831650439715929309097064977984703646087457409223172549563272134128582677454399982317884371546954645069214523696415346013375891783725499180885805239906387315296822939838691743045548273094177618374857726904505142060501897996348899444609974571129930969318189802018417826733725460921379581736439936442381810290000302159378536939396449378631093584656893046374873420807538742727586906331858209543363399082570826077600461159771639828086968656726538292657909345961254325230795244757133393040532153267441604309741867399126413270464624469668484294747768038224745259988066684091317913570894356073001900607808923490307436108745010705238575147190590583271325261947203223753199120866930696922697812935952108939962024055033500044115632933831193466606922058738251481488247739508192869623513730892601539483462838174136059405808423535980556453799136052811660240574814537901674901140076013667649555279009259039131553933080522784797066889808970043487292560754715566681965109046625374570930979090580321085302198185453368730750095537956202325538411170223098291254233523477083062824338116159796483276619262524317601951781223541741874187249572799501468918539587240571362130769507039134737698042637065089587972102478526585809967855920712724448237801835134407862694268889183461548582756687072599283238589994381990649388102638281927647190470373742624089352521389055294618213409509029106459668776809880088363113043961762965228578989756205732021621083087538550192243620608125999324631857372234032641750513369885142156471303704909340949976237114387077687970603373957595741008332317610349785184934590991480477214538543663780906115102892658578255277295273087203119824557855176089996469779193307016020987641192163482016365441771666107452611143586554929774770863917951828315885575711179757180549776380952812850976182812801521298977203306959690405690997503696622202647421441328091663312917149857708316270836108595830314024854757050672894361215346620605476268566082642608862659168187362918787403777873067448628160283356233293690495117542350833872031782519026919017377013825465756926116586802561689027866548755187792680178470342163628131512163747982252913928470096593499189168351061964624919698934979343345605972403696711872316619400797360515255279243611740945576110593822099336924026083131923213218949137159070247726858851990526549195821806912340425465657797774412113924466615737747595582686256430071749884333227224324074918478911170172478918981098493956060272498667505087525995875905117271484147896477616487104215102299275376945716480723398224742074329502189916638079307984693499920374360988397718395848124111866226077471549051442610038339965902777235232583441005452352380568563087528393003117256344367045144990291262791177300081634042473072651544086166167302536181443349599285633675061195810264003431721023605923387778811929012168906786125749573994607579644450700234331036405722726052745764382012502243761612125525980603669658619042197917662280991289003624703243194749576713240255841076420462059238216396264470777511079413563427753044874931710235805996032938665762728432256390935391715520271485764751796253267236146148552197673652177773695135580371099081989893362895870321042026890954460788022600873107808492847694094274043183122464142649914349062815874574251254623150738222944334298217120493905911713970586466588827286189205169020418089849289624173844324344410573152907381252290091730636406332014205921474890901746606086476828497453172939927868512565236181830140190967775277582432216611878817195129675502613367649459529557952976392200404133700446658815488870107268917682412703193463981621945269971128389793573200297209013183455668328605522752927125691166196853224634735049177230074882064172142158806527596891525317119255967885211338249526383547024000983982177663532834085153319804808991203077707969357335662934980005665848275265990170118453423028451111666115055033573106979362423246989587162520667308790923071971447659798997297543112913906797603119206975890990345103271828261697787166622417595017654335722175431839316545520199253238381504523527287971819521414081994334459355283403394673105769343776248779996171548824209955272397870212770285361871401746534376153918079049346924829208541423040155552993452793872606300490743582276240626955438332849588218247561547766881473488568585886523084608862464657923246868358493537415417038763903029417611610890756372137076542772586848173683971480410486474204592039482470212800730393883652735183780338157732931141215859148709157304162463487417092039953679994705785827755419775579478392647145255821016205395884597205067739698903051409917530881031793383599495495202154455834506553963265440253251245216737080129428493612811552153085525167963234979948500242265725964445129769058842391830306685765633931047119541617129875971410817105500621882604993531054659428599375700688297667869727493452506328541678033824556534010231378820158279533767550704610230454523762744167252952653457123927085722602324870565785643149891229397332192427693046067589913903861556144118377619385569180637101458003845695556888556304844133386147653838817997806643434170106228249486313260322176538711083208334935610880166363715947225475862395168628981062581009875753399628767849630534785935425699115523204937837658070976070216848307762353745218568158716630363092597616180105605886944299823871347488680711903714889895284247709313989076807722240504809011304956491656807756623400041066578735873267367037866877760063126447576056724611394959336086234130482272123161503787078783194315815841995023746902071714420871343476352848015504077566078388043055581841667663616249680347310512790918577635624188811919717866153946828228880870154505476165202189362718628475394564964560252506359825119556425132913222849039965733842377870846581480572963741847717930241417129326131178355957377075087324262190262318083002304764015453650641978927448665449008415154456849191054744416111200017981575621351805886289912402455327957787556570976187078375915917741138891525260965972295092187193711445243714970263583602152822951237364127431860819250327819322879970542938871013134515681708119706954411542389483181361639809090850246848164849290278175875604496853006497044441581790991866746468141871567610319801694307034890251598530168453573316158214795273886907897569115789638364408004096013279002245331686639533595610893142170585961176122579642113634662613870757010423612524443770750491019124048943212383858488659872324797749382320472943455307647790752240309683288990857242541396363310935132902566600287237997282016467928994674793428827412363773892504804974579970549480399672410586994868779654038987361580937021350094522618632389227414252577974541802754421025144954647793401312104911627630883914538061429936509571773694625550596844201990190457945012507548987034347124959240023372550657905469615737834038831262903070301223503755991359058667386872663429162672716005116372567342156389427525263631335410561570633983604398181549540756205490416849202693916805295110588448771341258686432730010112896792317178606632819705037710227670260312798524405691377162092960166245279423363741828975326067723623932164588602447983627370679114687416808278059163076222489005481382732146558872611093918265984335612656501878786512875689089097256969473137477761757154847807239329087564621441310310512370279807311110474177032425085098702016102465328314367252423465728436612469006029722034624689155730604004456987582916228341346713302386586050644409788931572486353251970017112450589548797792458151504511708719856553340082761318939827939213046767303634396164045110198907765186027303361711765944927260701883413526297439539999315141190280703222788128205007986171760129359711834332662210443775859813423650050913521031465684264621621573861129622437820342620161225554707815601520174292664572208763416837792031457822388946621148218163303140490263101296793563021409659572742117009925026595941020042723383676399416855302083213521344516800039504283401110464177375813252181938838635241995511318623068299779347448452004263679074325704683115582751751998080479701679143377058718823746522323943932517528888910024482377019281155287094688292485490756393379075555043034512122392752344608148270944775815148258015795512395506326071269737929910557569239369387751301243995520098876367585106997284511783348376960598619640773847748321363671257619913195409374828828310590387165262005704675539980735686478454068195637584004535787956407254717313759747894175122050946217042050497543859791101242633142954733931039456437489028947673056482238628427923293607074985443493625334929183147326438018356824762878784639846597355525806809703777481223827200680607637134528685123838249870142319575361286763768793166478558333372486201052122304013157397312970995830152273025470928172507290754750284029345862452282050522003175584026548340268554017017977789666135340213523708985123526662742594285956420462771456294475353087028370117534095487157342715713099430688107338072541068469739930342312582931460327850356217538667313625175508280096270582897492262884572723854810036183138972916174046380193636553216619307314975982758267629823478816289564226594917614180617975248473297395100748393880654227342115406986476068974896539492255465079517647344019300799648156204348278059864728456360972523098583006724773509635303240632366996244282992096591258618243491510707908196720697275041064018821882013658524522065591471356265491509230776837223608396516824877228437348237604458876167637948806508917919607899481056479773195710130823850529785994399605272496121369539425452795743064558165877963601622071075570301332304388550054602529145677166567255629383647311568139722964644799937199054056936369917691348064282925754056583985117742254601384446311424907302386493991239136907585673982228482529754827258173554416644589611249156334238367921113677948517564836651367427474066929111159243839181254408896051004266874934539607628913560307918928625771149360926460913390846765300121719035466951177890046437163392112131400389260127952697050578887755713788549824647755200898931139950891779437276494741353724622155814103677154702782034011408351294845951990982060793159066846800375118113031336499452885764806321756161368598048995842860553065556962064496622560000359584814736440583074248609719584387475702502265396678484257237611327060467611585789582770732057927859513100455200995465804317198633635588550440263779089395882126921448056237352388206019629593013355212044343127458600534681937514140637046295151290392505905678603888422648169325654254773895673443349219412408367607444220167017705373991226840140306715843560466815825988888962430604618646214326076919419985296101557622209607655650609568826122113723025964441396712013807314048292855579518593597531599263373814971439771219997986822405645935848282166798276619384031968038644999776301520752724732054329444896878007395321206428097200133103656206640826637207826572267234767728746317322070095321701805386498245609374961610986789852002116750953369686473685067247207624157719245663104128199097668033117500725454272930091107418663845847978296530511110995563548223311220044518111719192546764874846345900866710244513880690627868791594354100379196033350097975470431127043286158991731757409884230601821770149698722222225103957400155930245256663519707378380481391193244476613790526132948544047231685194618993595170659823325291558419483770054254178312648099829118590598868752379436788197027694632681400498229372006072971154511346415221667942637883716836448338803324710227012032731283457767761602952470305217501293710409432785768152709110620111930601923777159388546574349148329131934932691128451961452586105781074422993092726045757427039620217602361377980268296006545356554765907536747928652991462349137190768131885229118294322264205097434397350976605165394004849432093587500586383179915167995981778173127586324823328325597569732558767049167043154939845664268380864965748319013516400237116040548015286707572486103544220971896525032315408263294722992665881218314442733241232877294113092648807497045274875989250231350517269994099828865550582560304164229706408329432954268827518883311279223803221587402852336473824364465321733395120237386259007353069684222947910356815928980267081043611083382741441546096218665308993511597934760183891223346724641388831204109222607057707026767220480812548707006950278448773273736403717164655680650151273199157394913444492636664360406111924232241176881800546951464716877718560409991529137612090357854584086656628924929242948068409782879219226060019697898181693705360590890301498698872514386259878950639356330024584369162432891728749150776301113833460275772130713019602264456065450959357689248442199399021901998799622049154432594498812823071963020463360809745983527344757812407765909166868735114479082192416667330866970397985231074851980449150867013190059632926993304234286892245182018894749842966290508248567003711884316311933838463498954830948740202815671094352055298260620840811043550962925203947607701621347670557549827721710132538179342252803440208230132476797522365559356759903154878106455278594115545489359244704750597260102157834723505284967823578869491552014420415362440259348954844101739310441775417065332983872864799231158475801445520244850801534365914570780510388950815605242275210590346529536629547314399875550012666553914705735943266482687969132949954096473356795010813872911064100470969998656086138065014443226021035559812123616564241755040754914046275599484457440087345707734475907796351100601642477704073574538672670298172469030184950943373495124862735459773241769298695083566082017363660682862808474637519217262877250804543735370115421290317890012236353405578684571513724014022175554141486105160711615985161007131932291571986652512526959404414844924822990434950760439021883650715591033237742938537772149004757348128363933741331742270550530281611900444163813723903694006244769316019545638741141535837097504882388193913845811541347860379010928010551076053804185509087675257339440353171749515285673604160889293298784317754309761516090129606204221659220122453041339519822206071620463237777527837663276621455561322645358718946574155715441885931764842438924884221847630276745563097667293505662328357806236566808183852664980689985488411731410420153746765201779428637187183441144274763968282623520215128647607791185199381287890247726234671670342892047521434392692883584896844027228724534292149356550358501577923033683780795812094510287972449825081288555256765792351323270167570522029129330082617005319234436094549863666748491132198055507619705202618628763064972325202254659806371202209789689386547997782062219269239161433103878224180749482537809677865673588660149749452694382441701006894694143312711901642535594473539442470588826566081782700068973702026597927324979345279609901450955832367040689925625164559065413275894995289827622281080778663776379671967375512439986150772190554674933499314878389380433722933349422316727650601758294264206698187847243873816006074932801495929634692693876730245509133898416582134682382067995487985651598767148987975394861314419013919673749972054398660188254783817225838555762406542509986693643138432458700019591859838493839514662268127071905970408874593379067496056321114798796107216037083972315455843517951721017225147088863405992721029983297430448816725561894929728256831445706312339434799536386233643589626525146626161701266184277450443674928000834112638756216879947661247753551045044336894781067827939932764131748662442311000218226082399496570084282052691657503017916020175691924257900683852709558121488574577314163886392159959523044597153528085122948247434994346794806459409883135746749698372010444475930935355490635511090331372017814550475418782595039843550067902934496783007004950381637812589140142390934906028214899705925571023800349472878980169218051417927541692199531120930717511542425100448785283981019653658608655112980186460026371951566356126767690761133399016160553089039742683701094705078539832658226003763342488030555799470394253271694622382313559342287214129937162439817630892386057926427744142511910911969641572323070686297951212987784932538175187728977718676762304449042516091266905858487950634131283742454614956615328664132314593246097941420013188747037081812982560915551625679626737072975199763382571296044712142472448518023293440496464366451851757471871954102021016427921102703718193716125699063445637904170822063870032953714470823395706876362166206881347858679389924562597258983520300992768748851300073378667290189207168000069843948879892051838763238312241439269424876268594926501280898946436658024153358722016001478202452142041732091596472167272198706134962071505377096523072849488118914923929970846790793620937319630700238773131478141231702929007623255136684098866535103462399820409579207526777576238026520265548135204898912933902440698279578956047196068643537076122825432284459399469904911666672766332913115513953629106376636030901156084929862685709013230647714275298972394777376799027953367462298110447860754094769310723169800932748759343927211771398474619113409875047854361961467229595259500823394926018856287706832230555923183728300867859918732116334476177996839442917785653583964854573967264005849364594345076826554426320147985656541042482117573884323941996433580991491317526208577296035383646926639557879170070238060636961926161360676249621018404587202548423784048063469073958866799223787876615352392142768651704950986300204907805458378732918326486791707744501282292381362087450086287135985386322289163592755667690878316007510040438363751897611906806613749410248253930947679933737472636963229371754643814523223877817578394976700138331398333954690952126057738057943371552277451988388693556993317544662471988407007008608899161886870961877640045168192407655613260277623587784568223569445216541944518777462336571763989179850826905682843294831644668186027130941022327117693322804751328781960957885728520003127357142228293608850254892409989394783532393977294360786464053895729002997181036478440480292511866270835570505550850322363624474548464913090205565314124268736477957488061259134605685773391668946032137438075525396605607872366734272708884350842051984354141317966032826277368986394747797190169025495534916462850507574821857230452098304641235359248355490335042744773829299390150749265958297094686094311328906848120111573775848077741038778788609033755518122778910861946216464955832880112090118996481772099953132397232471178137928747938170396444473720739035041740944867834716525825616997272661024981314285020509844491397744542462066966509325289670653135582128488416289500303456730001640637102431254172987770279906865823659998857436285162979946112363059309400772513555894402412314094019376852153739536005494429539456429746515329448367249721490630739499037886807891196575792869918100625454506810633811776852594113984250124424749810006981508486070290312620452155208591339047415870665994681346836866753977824571844840187533366860128740750793712342898405851786401919653465167049465876320448342198797702011119395025086060827671254622176029026611636452996572710147493990743713911536899615074951429021396561385908396903501337613290174126201204780262047061037909763312914252460270697471715067354601325436283035895791494142541774088508481117895227442451218723043188895138013041033283757852750661079016236324823337729706567203465926495530055213887760135732168167832976592485394405001195203230362246052440403456857915587302326722290125122103343461486265711748704312256625882983446074795346891196733336568407490104420795653891652038870162644575923304981417561956427123411493859994104902751905752649388083520217055710124066605296178958836560135305337746191666062108406051608565980393482607112781374478536434965461344341846576098980123017934116722321615507093601825901898223455471020886439080318369999067461528078448523212439346897338133512842145796919340900493495853654588834995301351804797854644443861074068703634762311308501971348082907040514101150147488291235983383293200485253502840808030965521426751158624340786023621053239252687789765254747815756014984228761363848129480676451163044198211669586378994157690031662479666998783616601999035423916681750825411372940101237148253785960051382975046979675550468656165942774654674318581863850502694463146831858752480375713989544358958277735208315898521675197753113399794825238948448726240272874263061716282415426255913089424979824016505844175175711018598256439717460756673319463947005446954396628310645475320796261237126870847921526994904589783677213153896851231985094581108855727901549912227600978267788262664157533486733360774145960455602073511027826371558022382614496643132385925634717022813540347156515253454571456342716581963922522323789651128350235280006837811005132201157202902959786599583718667937799008755200046583475523410280066726436183573786498367908991972194597151990041191959250630083349118137137173530421423504455196549459142150604681320658212083551259651305156754157612719158580761720889869020131437807229123463690527801509128891977487422507003731912895948807410110820039170431822142282924640139062752526404726102509186059678755684289952948138767568764562732785615299296427467410469689215335593366002806167629876902899172819753121254188086232336969343449781292616615568457447513615589388244320823106467187058402383262464004113769766673113791232011630926540453297669610162949986771941017273265852795324593677685667798420294978917454099940904413047865876691887234045816540925891765610810644660353670008689376936053512641600489786643158045753459930471261483440771495895479364713863902444773946572748836544152296287856734808729692455912320155439881065451640677313236039219578276875059810239076924946635829588849543518738351820967498899658838933534407275048527219505978691531946579710568566244539804330636096283050637203929462655169288032227654067615108950070435193718173987347702461416079559426694860799231803787099854766769327411593855510302016787139868298712225679905908530501368469979682390098776642886895245919664392033143289507325758775935086709455256174249970613524092138343063590784210772775742689002044800040124814963299726149779642378205186087698282453462645892643138355303027887171508907495410154783242260412010791314006352754184772063438887023780693680415532206158287806671359122796763168027120652069473211920075714335612220864136090726477892615531763828315874126883215555741801431569998994132922191260676327143244210380384215432623833830207465374170266454581651520916314867004035008139377891993353198682645492720125700628994007751801317387214559728007426180315484891785418054746459390320425476413336005323612729043361993440072059968384135299711710810672840727039564457135793552801310830026504957832360371267130662420752572448702994725113255283464264434455674104801375831224278948055196394024247548667819453485450252104622460954857269907381186961691564685838418712993331051279265063734899488387693550596863954482595551193594973482701212050738615703498824386484246675848866850644232999480704038482266290203396992899869931935506052769371198657971500423752198208463999337948426048711379311486071970824590119376325535972084663874014953575283278894457275584634961830590883981777728238510684092747483820258676395802275702538094330115640242085213514555508117817089972101662221987639888188793258560130041011595551087081585290086922107002589490462517597227037018616153968776572540975887355119717951395839683256723394978024421352574205033187790267140425016531081106930399355766691868606560514674753529340799078075874455654587616398283549484856499881065835535357595419260038203037609062456922636836691632771019623428363863199749761021865692318101808923764766112872036351338357823249957186930348405056393902344801975069210923814516876090904296520414328852920231157351564110297926522963842359203092263291318448435641750987832912339068738249916258490169539638641602928415021241725976767242994333726991526316506716870605385920072572387104306039836892139389687247492558864484617983094433598298819023516600526867262676502590143170645919680379509214035316417866793323478961311765134660568616251209712255699827128417744460005146769489368159604629853585216464108914604771088270102674822190917014763278400266678611736484529165250440360221277251337853676897473810137148457198041065074017450492914226503510008314080992177351742299982984521932464242634705171130493688514761848913083330742250042300713397496487264521111093549128892001425904672330822366528003733248142011667855997065452122828224909682418051672462351757407240925348772635299573927703346455464940251454957452320285538358572884466743769662730777810035069863217042581133347746268825613474991805003442490813882983303071770350374307183243007563802303905329502019530287044187916121480835189065791241762750746037733678634371625368670147442315744821360721043552704169349715220397234684027151799152406765979397665621940150637076938292773831782544733762453172488650529537115810505711782389642046422321368429899961986895124224402328302506807876749299058656893757684959556052446773495204841403950047775517940742535257070182546156604658065241166429390318928222284430253222012286697195153925220523648638995547401661727732928442659576705932468757322557413312363722214479152613086198881084448966234468595132714216832455076000022540355711394934952719514031087721244190625039311232887750251440097831006924934545938814205736446955429441823736851308236221477387434254212202785254371031883386982715532916466710912679879972444160757188342165135666998731449296142256591243012386614329535048773116575808252774689482512386496342457521724700323808100614262165041664909506959903813890403901676025108964890340833469572486400358648571439594345052485257516288649513366296937115519143383527311284465065225862027668028662945172008740901188922830216254030732687438825145444915627075995926471827315265512960925773039604942638817446108836779043349936643777096918050819742362848386422360107236864063039691012522202619295057288594907154603209271474402489946399451842898122886683785274925564754148558425291658736324085082659213860322067143914465546808313586925411350256330305637876213148569569869334221114535864862050411129929766272944519140745295081604795757789492279126425376657341550749443712539105526376524885803624862855616118836234671232165763653292236212192090062416653309933985579891535769516690713993823144182420088797400400326483571712637441887636563102127761491278556356604670571996060860553958312123096490033531039267528461617807965225455195172075115990754749703217411792362044674723546304345044499209547696803354624675222849927277251408591166508275112519132236629971351258898691524196453156804496661853925232748993553284004265182597120762722014948978014065250379333339328713478927397619254996397080059998162097362402180542753827008780685094893190265994768587729715167708013241997803303687813163888363746286274195461567001323572067761483897860931394817622482986569861833690803055654814989174012260617556443770659503255320310340156309674446640987497293141272143595549806518127465342102396798838940876171180848976821206847908947776411758082028005715682632998598502174450139881167623627284511263078969185637877446667213520794438207254914369548193741297577694611777214187086589397535057844534419042686336006514709188973992837494816011048013058517101051296970879001181104249405509223139427060133546505708850698428986617198652678622965720835893052954384979753164149189742522232092528666952436928511174959147063560996997329752144607745806930910181143813578786847013860252247704861393017808335180037604748898494975105672116327592625301160549560488222624366480497072746562547824849877491009164330889382078097088562068364315248468222058428695402661461776033853204555660346761714379462668629537773712335669855076573518452699261952934508465618103756500829360458275673242317892295258094254099061341998624772945407190632332964862970341214836349692839095802086468826008661850924081548204296461736953119661926878168519562863520206533013300623254241313983883004271557211255315222489940562186672296936052884056540726242077111904822033447802961212337612545755643723045631820947230483486357783975458329292399071181609752406409757351230149140233812064517633133310891307769531759868091030354995740488034071538005363222999835238811858327530215942646619461177671638751884057960679019132387788906220122206114091527513310467196416486144232781985127205960390332031428614558547621724294623525599429780032153166870552440992487551090177541096619977928732630503100017447277969449847786846466223142218192256992583418296798149826953696104018316269246855183222638593428867649460520599352506915484289142807726831124868636637335739565563168264702973855024092312077713243993510026391801536120436251035745568253444691970683531365134029300462496473860596107148206652156343709986262800649903803825269947032988206348104058464787004430047567527352164150357197486936678583202856617102741629267031258393153801289079762810353175563108913987826492264478248801331749975101446962101931593950195956879894737765483110680050107625625815228531691364480536451574608049545972142562753798596312995157322099349851631828607494080992339556935511150631259639858839236679824407182391907013631127551990602687893417630425145703200492228969778252543113066592860346431980254698789324877688693326780797788864522599550267979464326266512717119538559658932346977482772411437407259878443095170208132633011653035661137519945499948323882811030938972161042593312407244634357530424461970430015446610587188064738209619386281390373291892232812180294003388721214143070535157098352864101962518578386259595840512623640809134601256958337626371002705984767107065609137449377151348906351596468895507936267892565229781159614031951250580862964022795934563012763846304197993896107499215200083831126836097299590231021737007564797249017221306224871691092862683449909332593940954396323307276340048882874376921614896240904711151337190594898415048928872142235028101510682901385621532307458307162713180240806301439584657501908277485016888431416417042986736706671215347161160757007749287061002841938153793882276460674951895573306026361516504447505131674240133044197878830207488202480026994163825760981437362634281841757284631677435052816325292893066930817809577254122676042382190345064918629200801455436138000249487954757993478756760241512114762787184745268346073582507989805205834429993668655576493215991501374899489614926607092480679188615622072387482727894032810717294470776450576803364987609478978942946856217316304923066372393356873240885977495773603371555651754455296427513419044352192249844275240526530298286762478103955878524968837755072447444741915667231964698531886385173698429397347986631247180436543787380455669868084006434782102370629029682327709812205232091824020498525549513141229672746903899882462254049042302460806386639388384363253520237483632605083179773302837581861145065787100463921355439120530523938910734113130079142886092293195495176886350627739460162544597155421696310415006197380187836656658298769713085760657501468469279856089049315478699311632265809359206962183004210541141350763844598992051287147629196902051709840729308585405852904454140754415049576684279194406050929373540955394581953223648051924913864122556467520345115374396622723807462683619042032179580598563330554966705025541253121301361385139146698095997759856655234183115889547885467284734206837437422090830541767000783278416069098781130847343215679243539036786852288202454330844785941759150074813647742127457001165361513024811625274657554873629298565954641333884115324715164868673502812256469431345829817495249746118078568974331792752048314784404263405557156748981953143689968545670027240383293596956095205653888945517899617645364230051831125947574151151770353293463686599577926088748515830647011220700302172565467510578486922923229299622190771362468549894102820174824672768262717816201073055705671207855375037545491078630079966031273079993973067483468879279485657481408821756283819292275203401009076266232884918936811794962179341462070040865440005499520764985946384188948431524490891756029187115885963085674388828372778472533317868698509982422915871932039549963381631985270011580360492462598733447323003226309321363724115118864384086971036964751818937781549275593555258392550374186455633502986924523254389061079313185678385593430706650508977424451476319538389037193366691357924603835296986705069481518012245652328808909661989478603702194055310884115365430944105366064432952364871885439046422271544987548112191543949854401503765085974920243944974433356954150422996771121158942168314228485630790002328131519221771856501565206318333665736882809006411478062548059404056713666500869103072006709623099713397180375761860138874292711326478440793982344319514593185676243883632547866872902232372841039598763107880566284472415951346258740467028124729045526996474486582871362452499577196469460344776893596984451318645519370083761239907501541192062094419232839855512506632190726790800632639021064329105140842080364831326821554579036384427931766192389305579722781517270788606490948845079990188069482479810483509745628779565441705150682302425205827515580240072667567761831198660057613453682855936152065970781500900274614058114816571969712533080549571408634618894949003848333398051125606845209649934275020954591197401721118839948551241131297244024348225303401444806000235573512726876711108764431682461309980112238922406663494372585764789917025868869823377549583915409808538217808873463859875583041361869054817274323484427965304855762662573790038277078265886010540673973841980084220442085328941463880504487383221961100594072497084853668767832477463328668599447367706560723576825493493860749196892546685761745377156603597689900659257592699017689585014491445072632919619523865857203848754937293294530738758131126358418848265163465693532213208464298508721186970763946739945184017610751123001150944962219789700395156691242749285173771420287564167565367614264174142222169931930661541266870030663711647716266643334956401888272807265100320569208077218077863935149448488965353258737579420738081164358997983617135633212414849445417146335415716652610165087505663269363344355826951487292146459780564928816959117461924072603082152249487513441854336621553632270545746693822796753548493665243511615205076433853128945676558863376887763582853227352634405284753471305812161721263196321415333918982474162555138333343272891542997922745456743715093012206861975359038196121768490256078955376659824819845865272948359998872765157723228917281561222238368552504324921288164243282373224093446713068606227572375561296704597984455393916489881976349843525254503783948677686691352505405434299412233842482418245414406534060787255821598048372989509423599165905112518965354406920686511120780068111914624659636220400421479898426568632779059715879279479196743040049526275447679546939565964724186760829806142627709800863521262062090768536940042939288102169896770495341235397029460464116274207096287847033093817534057117825426418460324614200176196752851532550338448902296005582724808069460586308085393533656901174160117244996397855834757191004508559937703009296155632063405458677768181501899355892203434427213217456013031432901867811520929140335295332266775574647933112328080363248407354761103529285951311697871687071886774540691054600173872632958934675849950642889267812453890333480418839327789185782157049682515858350776331439401072339190075174899003238559270774264945461856381356415518124112947835605463791916892012468790273629996824211451566746842025577746274465264932053814926322209688536462910686534959223178968891213522118225065827726042942505882512532978099595275136031259240770264754623416288977375450066501047536762655209151619975072165233096278599859643703554363904199011765595652354908085839353136734037147317628722454283355991234624999607607499167908108586086366244037792347850315667208117028546223581263340140648855300178534169826307233075021016912963520779390223772137523283085029741598086692775108630643688420392893747249252172208568324178295754415114324159739225161257251344790599007491692204769927001016308041999686410655213800529414713871428333400881000026417343220194299019770545757277237130844549764918445112267896733886429549471879062927407519348197021492902734941738317827950217551616033467975483423324226206217883208495435240783403504763404133044753267765625936280764053682104178827802678503291686699317123300995717770423450932244996440051279299713245305909974005124386753142998769933159664737921123264826379687079582528932333889726636625992540611353288591935018205309922464103087726473754890093867711568186163418420218684566854707721264043730854455800988067628588736054472515535023559990656689065614214629417780586934252492873670171006604603258828112377998926617408497865943418779897464726650548784626744644137802148132034212866399724033187448565447564618919021174323428463116744783941098515084841185457369823162380148056034294870239510042072053906520488212536173228656459319433162528889103583931762854189274236308450938403947529997487852265178139609510605604645540650373107623837286168604946299539902980231683034334881277264423723128278033513734393568459644323256725353546648798515891102148100829169632437748485639512114370320597655893412448067426908345279408428398717199415791347800741255042195719375194315632500108308357310695820200256596467716000429689218899377849836309475233816241837407271548488475653354131853593119654879991956003061444553950969196099398969097131180756251760271051688462906969831850001619540033010797992365092472594827014313083452089986159257030059725821804249064903380039512419417477796643459840019376452338760448839060981171283040042451392806980716389361214425446907504477708859232181188700377764734003667927902331712197711344024124077384334248174824935723025858061781278377450407328395039668281027917052978534529990364764630993318287493072175058087126443692290170610200847984233511426333782306965806544535881887465659297467055038630568570275142264776249624948565909314230157078868259003896471320082271430335453881281287333117965974922456080414364913435719849072970544602556595820905505049947134799889647233337876679154450293988533841506579534405978450889639402310682462338274632905140274460370117191342390556010847834992097941428597134638612818115797629492229069138558427169073884856679012696725770457747607765925963010111146241242128635051190392278628278627944390706596281128094252657924552378709342425709668207548766150136179101388373588792681798823677621179019507109583160036540260254718000358253101520066472854594785797167505620019264929356921933981215745877922504397336945819910861525331604799669724447604406530817873907576504319978691256772479152200099005154969625067201175735955831665328656934265465854579705155491717537879418045412435087443821020121899454466850706001527568389376036950221723109040678402832928447171081340892958453494286768857339740435798133078857091444163671711719610972310525718083607753267227654960900768955911621287787997980205730998522364303576941747491659734302984330270279152064884417380049513720688950697141971256121273036112877338790250005188642981370711949285596954116455345404344838712553744735811566607954783839748609399876906289528463787812248916725522075239761800198801232903782678073752705364646095260634491340607775332916236836918554377509885818573610585656626916133862118068007807174404851576677122582941188756292347463176390154134767701375707097026554007829734473125799750630230286638746694725021448405092239983383708302500143049931994836604815273082098506057097117951963577817926507490075783831639694445662695532799505314449349472206061367167754481821133383793683194373451715547272455977828651088782570207317212083451060518513828675732582853420271957654606458424633869934261999276484282106462286254684882088102836611484709773295254948255563205129273835833939664928002285218105574577046110157340149267885663465607221149521734748529837351264368541847337426377105437677836503895298274974632976718787169991289960398601268745759555965620666067073335527078698759311880208583040080643277665790869161599859749085435817559273807064449425611274871492788577516247434730518915589110855794875234523892641902962486303990255496325274283596070825605550291399301501872665683572537806160835670415905519486738093467654278410936380370870346367002040973547515515009657166377185382308516984823266163252826239610565220776267068497964079138296595941549302731896384477858403662718173064477013761819731912434090805571858714933997718250892363116303939030369987192854356173550907755840923629888926027460626812427878256403534494390971457266200425988786006267727729151015583361804284509303897208870566081741486420624621588405938056042209118695163564489326104105056252972456795306889136622408905459082298203574832891542929224785477087502902115165925999567270914036418702589826664195735327554929629802787550060295909532872933539676904369017849568305475952803900210972846926763527686900619298833876032475068086892739999639419851525728918535831897341650979554295349762488215336044285242421986641997298275113831817292768396752732072286711364497344520026936510863448764195499409176598671975625972109002883646378681572193815071771724789975291718338428152187037421020250166011369550081605518646249213220991716072405488742222033528612182503465540932550846683110924843616285586486093098948571675377903570722516093716520209589741957228548195628326315005295686895256795188683131074921992335618161377244297162564280723539956757345019648048502386181640567697420494958005549393433974072930867324649806578545050040260006234598799217318755600231394624070484926330856883225088346335655607224233243692387581668200006223517534946850314345283715658477281438613168424367983234249771274300874373971001666853076225967518812089335123152966998393361723888262103078293227921521023270625078057660350289982362492659129073609688410349383945331347716715059698670202651063984938593942210580934143553429322401304244450726712873034400684457370473297134867160724657635328781936178050460091578070162210762680741466297264492308353993128629922539216441298322068200672439558627457318959683759606726598691339446549686999364808414454956797058928297389403474295504268677567473365600893103905103084627445090125299525706208687640635089394586840232039798025610660633184503354329487568163048646489144703474495453074240592545175838708099123650023083336358044076102640404699761438965544529594624565028302223184351454638131767541599067176268428122288246477523704702643273848283695422821644323968656586755609073538913781926549063554081792250921252999531498437062960871136115724417958691749662938445313063681675945881804031187412438581853560858336210807449778452534515809342643347303430766290357152106746586293529886864758488362414471972593152514394195391187760867562105916112473634409276014682974131662745831585157236703705508171277697376915674542478416151140480816741412291741000525194155244615596278892944622596739292197521462291351943405888252728193242808363853916839008568296295245531724905297005920684410628114670175774618315262956698340030453313351789699695304944443209977882373704398877805610210532880483771942284596211953877385614241728875577413268180393015933518643185833542723495149721556195762153670944652698241274231289140242164810770081785722574705119840752719233236578639279653328725664091481194693155420808652421877637874628501874685228125158042095071079208544869758608240094223463770208526370278613551688464344269653875997599646058446020480380975712782968063764928673105288723659886938015555106664131108460672971974775136389392824043426080379651681499556331081361121037556571956560582207204918170357254807094697719121683510016005814717274814013268239320120587269647242659534642692288603540240365963975159834735322860413436362365578762700439071876512700022799137607815491158344092733863191446095805785811990047359340052320770943859674990308932109766427593551960476405545760602522568699247572347162707560710352821715606750101713248795030615390621700709581297021332891215183765655964014603346272666438755532847498176891975276359085016154553410920557338635629623328611426357911048705021889502671196729541645705126677389566092687994604309465053659410368875827871536729082812762324054715240004249479450289098099746149705830742858635448424366960920922527478490456899728347433335775077343751483775952026783510038477959322173141021723512588737335379489674355311602735557387917671433709486870165696937853117728595450209493520389212310244338944454334738134632219411517877964557111301823801878564608030365860297751944566711226252613762808090614678078999962962365584178574682961186078856225913725051239992036183843666500847013439150357033215429897415065214248068521418786211798331210252167148109479213410362935889527053638366039315495706705544060241497268974703970574633291003470515449385572283754262692065761367525657766954451752200085844219025724222820565106027902025977183835507532787881846859424500255712051792432500734945992942186415351075010050215402158775367858750135175070330167865444534511451031186637548855906779483834198750861074903403650450429131544320384430316323685560678169135055695617080880255137741165264675487062456699709929681590032693607601257549699557575213253639708483149153609232296316090924700703384762151275040429804360944967695965150520686353964826575615592994415586723774431827270494074299384919853251934075649084899835594306087712124571263707530443573083933655830771482431467765330564042565877686613403476146604334031461609525171195690633139608670895522427363347249739158413451313487754697661243716593109410128657464633536274516016801746930667201898285697777576898403882418353369246548538100866667536864845977049554255365741662252770738147890515744072547559483329044339261864462406964954366737736122803410969487535292954862824114928490788055522732782188679528405798407239329762714092863542054781149414180344541719950646127142587980557645324057753315311854731577546663999370418913296412498875582210185703106379527451737225980038807045251656144772394280331045291495782319190781992782816418316093621879927170312941422107589587999467367563313830262921260541896243948921735853383356570080133046909473834608192639755909282771647083148847136794171216886918276609874978401141554073350668387457249758282112096898885202889479986975250343283163394889915618872307015662314445146374939195217374804630074012870758399294960399060525092830811849371125739227347492224437867812304429682295114431397713879374335854098633315182987594560270437825899070276187626260855223256632400985657840634367515801469080639681619651121013525859547086512802139471666883924464253638307243991777296010095974866736091829779469592760409162534098919096265996634575776484332219326157233075039400362103060903097267001276343241108558092305269482773765004378820311293934903714420868282736442735752253416969866224640203412765309446109739740789738697571037577363702643315989730433847829869850435889790445787647963278869030187653037282233590471767308290749280240144256151485355821592996581777938480089858936477627267333770238566694325281648886120626013209335742120191088511173589774520095628395385579550778188459943484556344357070123489257466588037381075760306080156033398029375832761611186317789064197548219589187520532245867578092008210008536526478390845582150717590771738526045026445693901532491040618546852496654338366890791850488126631103347742404355667837996712992533807794285313076640866921688123490962434787377971179505319270603177910025480032016901002244101883469384119853931988157142327369273814653634734609021293751315898529111968634294479161453969343753389859413956880499788407360631507037601251294837209936021550897951925108298728007024970234318139320700448206317118757410391988874608613019718197874285768334136783115610028278386046304001120715309282731211404006118020269849270547567450042634414691954953326009341786728926170177471308597306948706819013182794148263361979561221724322326312031828131323910932526844278002843667283464374779621743547885893470429112034083979284604346333977855589932929184016246348443390325253137704540363876258899485578570821671887709057563400176674793989571440908894621678805772996648178987685638898764236176467312561703199660785155657878097712354903792695419381842943691743758469515925729985374844854978219226929571819040292304984940702467811557983081176057134342117608073484114835983429305266549567928217208737183035173285662269681556145812395032589765437796711977999637568621087032098520713968130749770782458879179119205317445712299799164834771494788799343532867457333762953232450592492791815783369984973190871427471926077649072357106140828611129559394471754561592573135592012816594548720133644198756175533291020238218695096623229320707031559410819922028456495441157047392666874079042404672240924668150493151504370584194077087848488028370908628817158885685851725395166303567416412596626099412289498745986506469000736848671454566720781302682291064898944065719911798489437306250273288547306401997646898741403540402075877530935904572914356529921177499673914465903731186081339139174811778784247323149857387272992459238283415284684776285895397901488374574169671251024937138382821885886763202648625065833341146071103186582311050650792350203878633420251537417805267953074238722987347773338259014866364517834264529670069482218836003655498214021392722188177981987130622569424262243498086099561699880749002448355159304539361148842435713177241616405597988135705149451857525539266163342601193064176613196325206304158418550773365053946241014883121874724660587021267920204156097809201206807219716841092632720750887631716604140886999718635959616631919337317948091474108996585609701398113188573930397735165727085905819549691072637699635828376327976532979103971606363993035235807894375849595242998399386016475664009969594633344479160063161685031429462951401640836410176105411186052854324967810146242497677724007525218244574978632611308816919135151910908746568614942240052609234787840654368451447649330951155441021488788053387098104308840836504716160852881284815698123189302883075704130475524584354556415264431030721631875569843356888956570106028225044663821143006626184764413411799438830288246753310610132322112408687072873295921887021317469632420562082532975532547157367185374191076111843868504528568502637807357732279279693010516355271952793578074838369290126194940902208682087705462070649332570171692953406006514632512577889734989309163860711884528349503838015658602893073064686521396930240473068139339033239420986637453444981362634321963925798759904737472002047927513152700852537300368350126134601754834992288572991667223812279904202066784099656327307014848418013901913682176272667968761447940682183663231911625407043147091536528428929370979250356662532669414772530806682999976779659361458779851014664512320808588201709960453363964673931973319584741405979243541491566104322995799699609479522656373782153396516515952120675341259317565112305767744303990532331179900685230080676652229584489782129242855880693667232198211384651261210783875062379741192857297225409532649921764292324202103428259318934789397475623116654060911726528164304959095859202074534823524278680116841453561176739434198903904552096936617103347684896719881643411951081176089547385318257950078096216064483585308707989664707216085499598513895535003125925077150411846579870254032366769898783345174847962349914507209907075502908363454268406460547230374430342645542884390967905983408478824779043191307405270311129525641702091752539186615053629981825660702287056052872757192583508793024541319368864700633600476040449405590992431690790372252709044284923303308336096246941414689430273146919590200824625463037302433120919156332521773465096771158321507219506954295109384566953629375274457247737130752631224168574263140431785971544303076884090995703825733227490703691795382981178748428707337847493150280140882435612611692538978795046728684308698801527826276180844526972612242623713596734679072453743743075034260599961141189190957034657694917890403104511155713495172753229459292183232893394633269269833407420459015658512328458437805028217235592060570289381627969506402429412945434471749480006983810722022445626953139480622596459902358199281025526936528524837985680623232232444993110915098862757248227168677565872708040043564071661938760468915237918824311219024237709877303804232772042795197063013849619287650381783482699999738853774562604448604564207704281895742363503717669170804727227496830237160322621570106015922504705440484016584228248741027806972728616103387786208973047146270145337698007720320473280341192268705364202774668527982980919744412785478514040463252437171611968450164223693706964314580377267619561394930242605860450658090630844242972254064189145253390580159960190827563847703975022840245094378587888669042758246132169752807693062162765945676586477978793064207926881533236474954715793988994682214518108464101566608054726426814076030055162330497551128970141897115535006252675101219526598127621312734694283963092472155307291921060662355499018713903270933991102000607791127025693803103252334054424253515078802021084676030896087239116130934205725628459686250875731221327535440352959999799682945068509541506324348106531546082194297491753216590874960521740160646227697760316364613629691135935542363156596762068168380391125331558268346700117500271331466443503779049557130579561481432904897749553416907302328396790258085432868270959512043055571039812494817606866813044905118693281833918036817948451031018632071142986262107622808619515455005080990378912212424035999779673209797717124311747960072733746333011299820871757930916222489674102463479497216670120516308026687709871975250522448467326506014427881889683057840792562690330722572132794175981511730120165082099017606948153728903314484835213300760535726080280140437767702229705237727115989277825489129196752941881172514438995004973650006617139024291771444274478408477192344890751329154881745781045940523218444050327324134223239245420973249754684857273212570617001256451665149909921988188156221778111460694281269296326324704775724444563758791111401466143138545704481454813249263843584314129471990106659745247409855982332386744863420185820121834918346227313987554116044241356540821221045406901458978431797195175420809229027318103743702964705425613933302201762159749852634120286987493385151242459492023018811332013049769845440203072647030153444975348444181592200897175053880761986810622748292275395638767388107003976610636883817940998886786391300740953203698963119061409849160022531727245919668210612629225506568906082770564204408562520099846938063455823405243755952478765985141682746824596580486931006684828138754502567320987516003836108040686859567230147625517014899607469468427579111586390738377869142058313039868634607528379423253730406479553713450816459709902658885290136105014997234283464009807951042671061646948730644649904056139777512086297780979360162090714527230543441195579291797327865403124940556812042695162552514076757185899210380016259297111208844699761830892552120513617520375690399119492394653091564881217068681960113757170803608297551058238762044352622625631749765334105219208063113198048151409386641194542993231456083684296336326593812310880415320670906486105760068208387097453203020526307715649334840867262123699397698803178017483366562006755951091251618738837185907637612573590632200012408737879807909414283288424815455927017407846427572116556043521937539415422120575687229839321100443266200898802032423724727335489140540639889903789995886188705925193243643456850577915836986845551782047813022125896471561129246177037102868255110159235823790692247798657238617359166886898649452812346598264707533335701928929088860632803286494303770254652507732796867062352541485606763172314600148943630034983647535055486285115906403425228280702657163354993157251168098531091093980847709996156034602134822252687118647704453563641127703875482974386666543211621213572818456937301067061960657694472926989495302819136824382886342680182211551034634219715547923732680606343409812583231356643113633074142466015530182604432485107868138570757166409696056057000989710733989239017692864021996130902787812947973531442744613399314563409737956109074024585450004070299764264130554692996993160127152540444260845383454147321759839416769707679203914193536549346098340019734853289631532671808536017889904372201461694450492580395654101489599948140682979715039013737492327302841410839362688573707141325880009592181711770857027060297182706796827720820796725309309728803757254507437793114056942024710477884757534263538433962738937098850807111924498377353375438873863910535827069998006296131154318116610303933238328055282515680749052948391681253132881820582859596681286119974850721705862889782897753726922208141385066516761137843815626237081446802887630512083363692672613770717056532372075492423839831696493179072502129778449323474231574182580155054970814743461431231172448769991371111573578353982354904519705382626631230076197260093358307792359267596862545602860485787936774033849465592253604388759863418406037263122128128722564135317395953923791725110876814698914393611493369817301586778802914459119885270630209784360230097821440485674734338159878925530903517363129794460422505289728333794456551161212547574236600416154369575193282771172961655117510782836623356030088253537546456911849576440314798627654918808246875536740111789400628005052537451251860836723524222784053427339123339227188485605120718661752489357950937903606319830512652065663352560589315144012043352199782586969339862543450042678069964033706154736190511261704200643515436223298000214682242130773735687734760988305738355027275673498501323780101192462140360234428846810645310104819753353033157582161776410997096410061992755639693590703164689985312219585642018593288062223709718955819854846926585688036941358861684945132543379063251375841174045495799360586424270934684127422152753858535092849607736945267616563361206835420621477448487004714079364179294284386863136334816270155438566169354925123665066831463142058936519622912458096618477846946540500762137519397915240756988005124571856808882236005171794701247092411451879803163083010724314082844366251521947270704929354433178343361087485560135343784355804888580550119579386674615094172167744182122101111445335275401146609547452836580344937791553163765950021204408775596478423275006807526145794534833782134779889344203853653198166509616828914520100953896051385966991240541805490420804929884431965857318425297531670360080045626300291558169915026734939043800307836373265101153551216201640398217245125233805350801423133100085195951176299631319350570560667685201424899664183358533614473265220136254771973522597792472434853167795611460427693449620982740320658801395127234293906926766058375211301868055903593782252013590215793391592611240446266626275659682471135125845976431655391484331143907719565986476923819412723697456358643979390565506606891664177796145009196576049052564273225544750173675325399820665875610205857918707385106340472987127594597103555358759376924169958191074805322206057802193846341301619384835983333161269491362087258646673084073797042983048746727994163458012840292245395865879759522333177681793781046920900734029937164108836521980254514299845337071532413134821363109517071729657403041312632149727468482475641766257150379956230371850954799262827817225774301844830990937171137976415076156372910943501902052487611219913696101818661339229344995580497636017350873671867627449287454428348191623981119439944158203201827189685027015389274994224057926987247205984687926569365766715366610489314363855004762895962343153537358894764444992063197404635940265792247382342974800956546052604188030083248586421113844556909520890300576962738929813146668825564824337024320876182929353177593642391868890978014016969817799157908339036908341420783401825122260736353001933028839966080005514657845111391061931098255266294821090354096201006104341768838273310524687341830499159800954883246165872668926704450616933525364371337798278047909346774892185437205613777824557918075585148878854539973887884460350933411467067332460001382750517737485239651583658358223306511373709503404022990622427907104362989048976294711859170850133177228714357751963223680860810293939063913086686290843659524308159444414905176828447399848146945901668231487554488029986586435883611379165051415947156206042535170990178344613407358198068016997130367986722459729634145954983567567728054349690718866786413150889973405274218163021014093757917670921321684562977840243162859638197132251317722813460360702126286728290917640362781468989361980445641241721630871394368282272266633998278834118421718625940124486904273843399975621714728641010573883582305962733390034552692295928376331081816310894339790843979700384924063682402939198819357031459290875796164913089826337460254526079020566814862040621182111467778666911356078308137572378261794886999530529442464298421201551766829160874046264699454055107998401686736959163509939522292100174422897380954299647006894618949965223148518474090931501970042054462875679378935344814231153156735971408801124774194322629623383815468174873725151806026831427284087807984479212515898873657280707385407655490786349248683236190033668705077512554875418674890747402343013087433280298687968472851265301040377853018035572168141831927087063338905930676285108996590026082197488115163689550317073232196258045125802716930614525455620468379315930868071127452540603398125964723576977119502168338148656718542115264045839768029161573103964176255410036151787667443779813676810413592829867966963492716456105119789632928762057357141024281803096467621587086572991976648974806813946550445346557018721354434554499080769319169802927614822070510242619204357407545640030928540724136861213804722213523788391053391794301431162011606590739761099143749358918526274293657244931975894284101632982382814314105082078019528772966360122271458138255299638039778311456512307601352817020413695088986673931321335747603872858262220732496473710488342235012197841583793879656465174800679168416039295130721378013790520391294408057051751160308685657460258778811800058454314336819761360193303760532938920436870040711531481250667313889041130076253251434657025803312862680481224529660451429277852662487755823189141222848992251111707455314897012601925031435523659785704537679967612073544256918651470279707729385610679289342773897730106276328235346836028473706048836360817549771280992151928074213066391619259981484935310437221842012467863746373192259784656465723435352817386593718354990851088957670635996756599871833618840023220550900427833342138343583479007375868990393432292684594005790269258213070910768352247923421837568998687674686634943297613913239712663122158912154808232968640895113507583127741843054863415176894319085038711821757756828661713807729209210298424758752055598395986704111412355056043881023039077149554497071950046425217094949187298700138902338104269943344377795484194723056561464758278940722285222170189848060595348130369194167580177753197814992332856721216116768150986489627936339387692437913615887009773596872947431499157317106004336787158908299954170195140116956419241681601474244458146079105223830922298812163679048484102796116389442134179139956670463997665068515123926715924983083676900210980623191426750021361853725950865645969434941610182434011536838463659199640816533187144742852010274133981691049547701242976785997910262314783927956657727311219184241249042697772272776152883262992731486510140575495864502179296958796034054424424133472152825226059441146445724254854720888054973999440895142455988241337515459414959048414565496199016334252627873723620343181333260521424190542568543363669736890581804425592092201182882104058137180670932731655032532064370865005435814294063251188013288216898710269734824566728366893448553683609145262177012699040373649683989325994978023949176370349933756895051219563257642316367554318196713330370928862886221619216529185173592634213279418963228558476867750772322992738301657632641923896079060606544083113106759382485559908586592654746905193625710082821553850174493373790661923741018263383773375952881329931058008025101482611670932803023224741520694152336798375938159373224919805762359974293501357136065432387618631721285780305563749446035182924530344497145052687007860015228264445155609341322775674814491286169107260210122331955020032076992909354027385088826033038490170985570692574118943155607212809422918836880553725417189905051241501881827985526335607769782419970863553324109967630847131578503694640919429316013219376078898442848523096677340813018878047446266408768269476735250252758403386182621241449104725780972087528008610773706517388921742849348389557717211880477487356191043323827643870364230155278299442588845914721142968230315103523772385784004146638880303812077146308525083143013575642168487662717350598645450152526502124766813404563208303258081917373353024139575885978412478512902196572807494063165142707936673694158916876587427676305607800181721898733105738693314249634598477315348457314717609844208383183576891207291425292122008302125557488457622125921083071609621522498520530896082751855320790328414000932793119055702647470264703421004889991742415842874885074101773346528484082769063687444117513923564174547334930459353060090820714235248708502597698887338124709804280187362036992991629690622250936195661881070938639592697333821508923222350440674427676187709955718221895698799603580401180405511658816149199036787937066448847955979861668781992730976811016741878405994990642340707783269149630641937090626020517921074649728132990209504438517389982041652890733633901338464690813839282895440680379205465423988628781219267793087230987177827856401821626913203617341721513843511537408497316543612739005848579628052480742732604151899684556989327613570138849860732996243852818235544170022017902733162172774107537578722964740335878541425002922335252036555206179512418216360686260063212938414817443005131290096050952926329398978958793658696092157471699831944783166194090290342969761004599453846480089258380185742214133110005994570240251813139550441075750986446259549685252003654791516962575773070526385698767245763960612726428597192328273449996562942243676863718043707741632341988180876669990497381655481538631539832549918475796622096412403641253463507339776682930091689763907897524997688795565749956581832292647801837619068335686950289121849276915544167521660312704661594687287979298018579147969354637942332174483942275072169884094298776050092259107920839095536841251598913710115228533233158785540844016657327018980050227917923719494256644176415548811333544272966901004172103093266622158474489509883563268813201942068271067268367773061022186283256169655997929460052754576788192986071897275457058284224828643596207050551232693787251155442860318616918067088454517469785883934924564749172704350209522808863631219028896368295460455649953460536152174369750338215908436503452447260336550784841260428879708794020993882493476791585317056852050817776410811885693937836127051037197672582611202996834189922007426686567344949570789580046057794883992330282590515121914110984076036743758333303365334248221683951871555181014473272257291170538577108852821020278755589445563409271604270118712200353389566282992651097205909887471751612408390680568240618624903457581742095779537088107488398960298436873763090414281206632841072809708815267691839100043660340905350576592135640735851145277721657417067377395009263716578520136856755186225861295619519290649930015275161513953448117150885915073891591743006400857926732879428347441250565281144066708258980275447379008077069328914861038507524575651105029749520081883666215683989763503535174275109393937866534237097284014203825905358339912918182074480701568561951629579206243206056535443766775724074088092184929661131376208090867544317853475432367272217228982392338109595864039915933442323168687296393402652397489159683075589460004040713552818713582390267710104016957199367079772288543053790383889857089593829415183439541286854479174348196600665081858188660777838951331219709542240433984569610355531526768085450538423529056327104564020892740156673311523609469404915119572207252141335097121657206736006530530732961435621796651021277495426923728417977077602919332478625342074974747740254660208612300451027063252184111714037359089206921693488084406161006215315039218435220326153475145085598624177755088921251919805157339533110988828657080375339356080757217421161758696138281664056822748118689553189692965617552257389412070664538869474412608737097159825283808067911432349454682778740627174455330838262196565520556451202348991218164564823565770968164982679087144806233373454256797719236718205333617031129936190959407576412839303990265851904596251563553860926146336654380768872257370021561874716592183310962782189833096391452752791723280471513271713635575964072755596456982578333904049709669659188519690460170884206419634672768607167836230352564244320432651160398342977005381016138529382748888920888259333996144498301437376890711921449738788146930613837843870795580065156362130582195591072861729661956308342329247883967157730616725094020646306672267246927507242571080270554632160307050495216129177967201126319149504848680159606798079595788218757568114124042427201254830198397396690881595902154002659375587368945868212414663844244233078317695965212024518466554496514621506805026039261711877692863139631603708451651891563929369144074273854802170078159565597859575258741393492572657541007701836359545539960845307246327333014323922207235650409529087377599513876146063364067573373298761302088563136206830529568355445518708039263041260041918721670823868328899703186712178493936413431289139816473168674358797457796198858869564703152323962908294094578209443673092547884658480439911703516505466260894196466511915525578288900602284641446366443830989947526216189148143508327244962161035594236464768747484372071628495236590672423973285565616677640780105081006345219262681286101722288365206101659731962215234796970082767400861994786713987032306740482612030528084372745928593363887582211962773271548739484034572674981508990589787280164537660968757472588320816678413022852744157018789912675125764014773998907294984780286540850205263145334583887603163349958515066620279074929724096153199979020995261050331231879820604908976884166814336965594627446822370145501450942952814942436674994189048324340265564135274168058588345426813412055315061576223007714346477769265971860191586022711583953833715679127351936959727819704971704980032613853026005780959993599377377040649907070240829852605509489116156491518083055058257085360305295623786082300682166554153297475177618882065090452759773053649259986055663083898068929404367931355875746415259089171967940862211432010176788928399383033600496994821641765489386617541912066454707339322208265374347676105374051754420528834477083214730978557038423698393499083804097823232159960748395210615575030188467716460114166428930732471977248904201383412532787023016437334797035026057636751014115062029846567283967397157464687606539113884202183589069003833210461198474042533296019576517665324064613519576169020867654677995539693641811633814089239387349420117748520613571115610181605687661511888355741678176919522012679125900512188272339200639005119819470250806674716469316581213590444885779878854573362956782475057764447385745172076599436045816152749083204624914335614288698335900239587350140361855213917118550236122487120223711560946368541359617637143139031935955936880005607723046183219431139209213137280713881392015494268832231424767504844488380558808894016228943613951642891088616021650499768451538101293294569368059086381357594485460712840678606414621064781021290234248143877335073573479798541797050500438078188278593204713970195351357921617092815327647451037615529926815309479575875460299778831818833033086546605579892648165729149727838423252781398841639434692150136513965676111603977184494627655376308452752974029018264469220494055686804048768275929448766913326987337329795382255274880284122006198275892425969348438906437970861540315515795690192624747144816288664643376833525903426347404693129709863547685452902920358414610747429552431619849623923220562260552021799058121157349224347529069626508068080590618807153398556351802863327979396756690408526665148662580627872075079011479725472564004950236465992937817539887400649623183068141886528671300891274076913431464365481459042571903550308763424040845622175825917670783965144676754471522203948730658524020622395994983703388069205154731107317502524427826615174734220177275170270593246770171486451536276936736701936986285488612554554040443047624630119338312439281054027918053946717314207465739899790063326778735755067744580813246519138111112906812406076962846599794255446927966370298460249539223866501081541342166764138982258036337646316948283401083650852811779861959627179497294395496597465807585877947635516807428209306215348047798778703149366422579245051240472029487655920983624605152413547954233914771000606996858947329640550871749828732097687826739671299737706239320883487835865378179746928684665208558481509578282466912876151703682000305530814698860293773264403105357352978509227221105434359507224215441019526108214153278991338472987810389026009345686246275462173508414995810416179189101107187826027987001534557321493245704723142645886471417808611056170946521667241728339347887827917589109862692555602645415969268113828587008250788854092099573357922605339587206427930160990888063273327892969877672146721632866459354564041385932393601079690959466284087527631733560230223397969593626100117106370667176455531980835125206821254369488017222543959634529179284049623908574037143868609859648045286589266105968452301669431911877968241922259683325618979348101119142835611952308770358988751411726803829113397207260582008623442962227772381076422988782860903057771337528577558150980016732342300319196259200153071927082443392776061731598337536229055926548613657855036496836197020709407685879156088566531499834034752695543911251153313525433717907614448391847678129062609016500666158702996649140855829661071722196088341082509382843724885210460408797001489538433962749135991285190750159281037673020875550253934577528272902031236457052155281690351036277398503427269414066507365769340390401754475939364555394459876819858516277295191308806970059719768679932224858532987677737568319226009623241197783850336740925716428290062900954380234420963121730531009255691408051722922638165379939044438617692103066955587109124058746286517602747678425356474267876419694164384464152191149710166968099563289849891690686518985588101858686448506946092986454234928623522681023732960837129262858977975978871202313503941814744415296511232741704012582418706612624181300164070000639149938613307195662855648857390611158430828530557312673464811360423351161142631567724738396874672651608720483035415188833926614505564237041148150134560681368942531956341618535821280226607595282008268411092871440693260193544784731584139375148251182553933704459460876130007698397118776281095150016020626307844081105261868236676710085582561614527685138403137329511080693425824622779862731027505715664339566521142788731341849644050952194046034833231011656710916899467168580701031058105254756169841408113645074388719789180060251337317648321789942336273158334879994751944469122343320977009692457283148578107406275295470989239615708752717992377492241702729350651525490326417918387087493027452283811853850779310247711138301822956645491543977282389878340972065591702927862413596505422451299818783527338178028761182720319943715599788349454886590687321444488580294816886055684015468991519229926359443123825728303911174346537097868939419994760774437989655863417972279983617033938435603134710613540812345294453387209268326921892693729417736206803195426125356723665555910893561070098275744743324783895397315416309521477108578324582228343838688954989158980427044349175430650010796710026333164120550809525600506903670522382461337819974889951104208590761568777011273883139309802255833190242902890232647853574218830852882709044134481854768177534376901384386390879406249956925925713046912138498196872302524381593951763226922628099483588622829065917079697573596451406773379779466929499496110595275116142488264126289679426564092892765649842108836820266445968896770420875809459373398686883036130172402654374705181256691783393770286930218917527838775828883672411057696385064497050001003477632126080018495724440231913165863502031283598875128675564954097937877856651570871185243412987340238871566628569789209233045254213671762536431054775319688208277081867899849465963368559102089035419926816216552598344302807532632850974180904756646832440070135697006465433028047630356882013119381681024761104732200092227245579599893515801750816182406356874214908367398230919804208848281394864869428630770480390167486262931488914552614095544766424411816187087023912471609857530618044151169307364642461884480442345580934523453707760199956289531094619319577333674760831533913206093026018955741608461928921202111634693944651515629954492851522737336430830669077659944499277904560329097877096637384078924764647362016269681944189736354877232987814218717762046347855561228492255270772702078775233592828309234429040689108234537107009753465842035745584728406983438762351835828608699640649853394229228889436812223566272149529229944122469321513946156753425672155756343983060713153008135379157336990841215124323120851874736690256158806225909407982022499579421174569033163908206623047715260184542297095679702049415419179895051236415833109440019403470695436905792195328884339881268582332928558649491500243638297328936703797189961800411795334568295247485254532490634430415315690575584887401949422764097547923105516497647512320968201584355005208181211246508507562391046959543744057594826976807607553172220245312469376491025747221660364923674525532817116437474975725990730135892911533410842092097526012602969459259408476139598201233047843411475111919426491266791042006720766057780239504358402129906938776436289593293390042033618543457854232859776267425369269146849940156534444156026413574617944418433794062310472987820243204111327198679915420853677064546271826994937955462829156842081089156595598063454842042288497776126147321358735698269852115432443533675515069020377884388530698583789691082067764924285950471304303979290723095726272304527133929466111488760699447376318675730217231403266586629784757527402160259132003553147583189682837549701715168852732869650108488866323200015557387577377155415856958886823089916473314448704025887087229713638179721920827629454287397113400752159130575121905415354392506473713887592228456098995368680138142788764642717490030945740232642823800179629418317267023471612661229883605152675875903172337654480077166990964576626668463258982670362113926320764242303402936128991739278322786111330771680579860639396883708643457691497859020836723137084771051882996427335976391483732992132940000236268055638989662999885229974716184625974836946228641699457629819513915030876465762287064208585342906330375710421032721779378507099062366027008567655078440356073738700869089343465834149242108283094946323667309640821001979328186780865351192758064902561785825382481725662314736374492094099325709293705713503610490553098887412297217186343813388917960456905387086117805734088098948650126596826669375746965857452030106706999538130155123481857358385473759654647534222646202940230763222249424711014250851697534390485617083365008670474397306907260242089296769460627277195377503589964842349960748097609831192974606298529838623531291268872347592628227294381402231081882941703750778263331848117321005825146839430427167465530077956577083836025984276971462164014106623895567066500417535480197914545216920686670625387613402985752679199550614442698808860188525238876334038014303251855547787853033748904693694030819280108496931959383586544541571869670316430624819914547183311136430784998931784793968623562329031018605571164983348574375656245309575444789458235318486643782100524291342199795540671156669946015214942478303931707634631630608257989627115208742238116969586063164716043206313829214076020804870098839594573647700150994682745454684335607097427226405497583580836581647744126165341587286492632803859629811078893707662284608328014845428138181029452153924110707416945792702878496723092599258270856002840217580996320162781221396592446241866975785943248285317292647038800760527049778095143292772879584070205549401609951671657197387711810390106604046059358499254807693235098938075404716203160348000956686858422886941325454583509329436079338951774376252910731794147908415466025360984912949600376734542961681966004499115580062590789764618964445734852032599631916401583667277261392309204079574272944421926397436542372518411861493510153517552073236660414994644450234686407891370857260295667859579019642843569123091479824820115798888552803026147773710186076682212883161895555702113599949838043686492629090272385518593281782987095394257560871247135569136757513751618209475974401003181285751880124544687433598423017327538715260028567058213602348468978850645779922232410112293991708171492375813706521298063330113813788006047338118847475670248235630129739522991973670206771095094205719353508162122210356566324815904566276246815947963433933653741014045694091656918007848092215318740374849957144945513491335740692167355356234487190237729698054527999025515124795486951468158290981395471105840915457009315390505870581711310788905166067215988091830403216910738655631153380817753849443051642798215588476502129048867063991892851752346358056090583763773440585556123377996258312430949883617289653383860572860857125505310133593651795180487438786864042537410121615237753985533423832056739571035495658370486421769426300965086775395525624093153628072172065931177022297332331519497368769443032032926593355600943100884531149144691586263986653862962039781996451640310704723401402061245592186396240041804970345841613348177703185522771562064395698385496447755051871171896051173937652964539791611465832002027614590561223441900589018130880815574580445802494115056148188316036868636018353047547985650004482164162666750395651927337167501751432560012755882110126814393854241854956840423426244807483092109454247639009923115798485228729413012080470940641843162551642811605213390975800028252799964632464135580300755513926822893032301987092853310650791016956822961035305270540331690994378147152603547847748433664132004954917291173256428038836138656913398497809724633511554786970260791059602374935016517122350665535878881757375297015772211498055732447088159946207780888518803659821725244610411150195991073542902752385250908702966612978879667149737064044292220318282423438001199985784921624651472973762204001330202143045958923488330283396683114349324128844311997568635230343687779437742249912400430254297429754302975320110802225545166294926842402171422404493780650556291649048083143483202846519157214515981207139330590734442868739979616138317767618988528441756102509204791157700511866382041240350649036181282450773872217879133994156955180171343405946426560906798522131281153789364342020206068988001007190829876300580222129909752069203963072851009409694308750167295746900908146124415275096120339792867344268671479065752913924733447686303741881268111410944887980524654259780854645035560906300696589983726604366184809873341854822900401740092584125238681855573623022297269638855212851219752118678042162856917012756318941257404640547369878016799240959956910521322652236830453893865309655434973771286861811936417567047985751975067671122089542553252470659187355949336547921453292328577060003797308604136517266095652571401865516310955982328761033864067765501943461964402842859790969738743014002445519793479349076070218877454099379652487347402463668089329086845751951994029169074488518252112267649390846040076916631208412812581890617806011456212225695485030057219359503401293512508641710180398228747825096550044673895694293027793846134047023021002882007177858591363553521489937930487767608717844724765601350400556319971907194785419031845877651639414729174829607585592870582029276179755798940274114564539919404610466145824363694090099669232979380893171133596279814955789517712860852053084398023573292265704120077779825513339153997307274138313907505559477258562251360551666118574506693781039577600029707278257628160394237296986149559831096766417549855335523388853389820487853345370344288345390426120854909706774464189142795886814698711681824518743460134639066798666326664101641229859665899830806204005008016596590307029551974117331583183583280567301759079036019572234464614605308455611619385746517802254811219298657888606044121811121911763581268003157761339760506876359094522811836025478816604172713539037797549546893795689093920101603135728130294804821241679076985577973496587814060197855618637407835137606220962218758414107138766846430284849251167802444962049974629778141260199409309055035741667047972382603385335982745145404649790580014632346112637300161619836297165900600012393616818089683605884863948214521289634511559368359856073762266112847442711944757956862479351951407760359512919963761565681173582684002198614990532409753295117708137021165265904506999793102343151021304559461622661626922209018441741337285428552634779475788683516965020878970099983760032753501124356355099961141475424755822227205778413306130710996678570109424509032086100933834831003717017813518145540472683899627068236248146348665118918277927509546700843352897101406733731831111408964543029817806746254695476978924096791166551969030011956656670714763702863972113138637925783478754108121730858848076897336386286822074110165142982892740523452297150973101743984200173593913066925405090968078145730764702604174469105079183707522335978248056794610826848011025493942879544261903087678211246820969264027201419329296622168489629597649164855731833726953588795907026108256350733896244265632217059333605403134041163585167117931156781309155051215001437918766442941291204750167389823427854545096516776655032673346634671624423354123702536845256510159391360414192936766551305188500361015972795663594631389628008570394889138931772202637538188812543682106379348793093645393649140447141990082605106374421816267045180513393772419390169903406407417748185113727848595720548252120528262594822581209731458988667306179695862904322404195436844473844685488192212001553651919265293953998077413748856726215210189139286231632265090919822322997813129573175038986173228712188285288436522376126192565796955050685906395337720868220698565315122697240241700508329343989095259994123720091268466725150803437175945211305995583784195818083818787265599265902935505203768654895086459686546792649602521963443054464449596566414966846267687796047332670577743840679739801168148342118805795307284741500483206619282392558266641050838729537689399076222310375441705602821793194682618067978114092642166271258063116739693255377011500327172122275895054877929014404567656719765909602383536019325988807679403679424840776381352684763242761781483142156149977698372987090071177318327056718708033404982614493510787341225240963743321497937075272147834668261840083208096946418175095158353659798613900899293751724207615832736851508038367806362673390185661234333101733767955532115066507140261732523930625998150238469224642562439476425410934718956452393332248247018564043624527160602349864159813197171643197786336882067191910358949297560419554362519666845588112659041181514030595207674259487675699508792469718190096368780074266692249408839788847010405256396363627872890121363341754164609073625847668505070442613989060387895755442386461823855872901147000217738148565612721752306785051139509762572749250869808305693459761524407293331775173710394395918490760808667741478304743926706859419337723034132524054496909762440183432800636065652092444489907096868577431210676349597526993857241434173235199142733977126577464338397901177768374806219183194096330673621890140665307598411186954603982712464511586503656977656898317024870589716417176419146007610577214402115907074751084547056561510898287680392778742987005533379985557079820041637794045649158050567370741501857732457105396088414715641088074892683727025801400268531834968491557652948153070684262242104594768100487583911561752879406393167235687588440108222117415706569407077159160948709142288251401017106043240413757731904915578230451921871606761899549489487951326444506801885326155611298828505794754552936896491202944916971729030238737240302964977406814938876249512579420295321366631608708902331034573051379493870246370964676596776189661332123693648381074433747964305683448806925108865076353737647306635716997495899344438547029421996164366619117257277068573681234192518518435356129585335063377876480933093232281748659036824329161863160942769274518224336099057480654033471283322188306577776417268307659732294025529539719213650791920138275110071261687195565569700430651148726596633599622314629994432082411017034862834224222057285148438173351994853287925650890709835366621813161233652656559174386261097326681084521319575714080880874882262050376863948839354795944608868967154588421632255491603224066588627161837041395062002729479954272325906464495156075826409825520495592207182336968281572249099945519654682129072451407107190190519101695140388162320063213069303967169830331649298827948719233022840594830597289888040131620579389617030102845879114939194899671625037405397417809661147669838226333926182038014152558861791932854838737794982950999508858458787816007922672912161773624698913238281119802290588444824913875880360341869115363949424285258843332944335693090757270145242840442114526109137230098060337078856137189909013715166491517196214335262928626557170730799771682693817212143535249154904435572044939616927966363989361064069417965372449378031875086614658063199785035403627223896054558458792144080079958653647456133208284296466752800563282547358102485539596172861415579584750497631136888150143221254446112142695780047950883013968364770986888301217861991419251157771822405818207699965556781073872596538964045617143141962061097990330406197863692464260960982218032354719637916530022016538554722708045592435287706383896162010676406511438673029902664925963852800701850141224716682108928525911454852881178511016290582090185696748185119434027304816458885079961364090265724708630839611154571555000307876221557115584268978620347267585824340966738467168741572112435315737539788519472447213028778370716249715630558289835530825510497181538161367017313680250306799698128453495218668706140458922940535444735526385952795046512724908093692505165033461567803657303690304591408827883770321174784689517980902542152385623137857072089811567218646094382516114590811160762305398208002992886817582893681913821385423100208373083869240187319842019208967716469799295268470259927838173677513570189174037502375879729955634906523943357064004627996605185338814481878134390879660499171534653931033412467264881908728309808339511614931568367255695019140878295716593669902511353520095884502515384931289222210237485115895558565007823531726795678496379402423523321067854595472590636132931874501880834710950357089288820963200159877217908897988172233286603867997407102992197256925225708987603194270755968106392809455633814062851009095428065903869707969780413943328973016403048910002367207727102483623153903318600281564269619434783575732039082121152277698339999029261328930835181376667104321429169706444164393046951164661520199717347101535102518061128082765956712268113378165542939803277677456530942608939711147560373975956666359940897536892604711155063240485659109439090748227213904149449470834228246531645408812608102413732633948653015119388324041184093514265667127309599802918166322750989361815412074032585646740835144549026733900910285933594043835608519376064053615608459122845785161180942843002660770347086756252669111415497922152408509313848540042553688023441378310932854844338129801078689134049321511755914401881514154511706144079887156449445285933006330183144733842030981302501693803508479465136100116450394383081089187217756961563182813673122961184222854778596397863547587654674531414880243900764739737179220275670519154553419538862680633855877879330255082964730017461445446957736105402309140842146406157259292659034881478705449355180168225060526038387399858651324635465439745384709738504675897884577876322745007915852049345279527751560241184254071239338740088986506923326874915105794620928160155019483446995432163673876790862161404467947798528465277598500484625111695375448823959166896304045193043858197536058072294069308376394872425608558831167571815518400505145631846457688745116904446320680070168478014222663106290184493887393846497384976338598327364861069926965446790901294048061842484725282478700441212286722941267552543115971477226384872790271782397569506303740504227303196994915852282723519814006740791510780798557916989794675563450015814539703159510111735733427677665829394779437755511192230605270530364411432978520193546348307859783561756419435002356912778367781101592025585005062694922008093295278605055007380035770008534632073580332563297875228038149899645355390234585252590277251331580816691269741309809882909267928909750095724741191618717267241877458149269972468342270134438631267385545511952932228878676602527804765522354291032662452309996102097340244840405294014761282736974023211086919300519314611497492191075491368648464282570698824805068394492822615501888753591201420365269454229107648277921184811866686616305351832366156638325586051140777794309870126208293984101388097360060869297966945055974735899984539397197428634701063413891861329964025158925656513093181983782122918268488811011442279196915090615621725960303553541977557679708621684914101893704805550924224576140698065693053301812567992107822208362358237648552991209845058800190840390227016106682324866875635721560446957117274465587439725074847644609548162816704318284090776955174229107931738810184546946949712634748374166288699828939963812389604836734025100645993695657177041358616618075564455935068597017527386224372513026618531884046634028387984097768095898725339040138925999347270258423592792919209472748977065791830907827667430802537460214130716512589936539043621556728882480557499517636079287613707422229477235020792908301023719743697673600830284597579770471911411104636669396692264213539618677765262531767534871518880235597498363330208631293601426549383434681955751875098806439326964404789746674315303416459163937200822430787251299960487815478434952935821843298286718724379489211858139859347158517257384227138692613051748089164333424286301607181556292891294821627833215114120167151629666382520601530209433393868069821137379746423516146583009267264514913243668604721718538280859859155208147151479819174519430933861570116611505274438122267974853601307138807031247000026256228186669387202712844922951755441529485685710608772691985434707391448576036419684496394083265184237760589183199155168337861808133086814387716028149136408137089478966576587304732213246733014514546624345123609911219839020697733736692503565812020937400045624107594675522542526279454188464719662660866278580649070307505763473373110539466389728284452427384718953313662850942498642159445716199921411597732925941360849055801866924410701033149122156549496707884878012754754407637006578208133757208194420398504578516604307378574353755975321374833785124843771477441893244334187067953265153709949086764047485313172732339772765275076921382559528388181230504919385291897836769968118956159579523754985491643539028901679801217096753814457303366133349842259394949867102829705404039797272675540839032171890689025750131620404000754506286364513628388024766693065676987280262213966117078438870724568329406399677135862673675264882663705645307549403376667262922992275425138472077616573775043012161048652931413460502142460793573189811326223386308957410572773643325186334734647759818282862531608509038671465694345287607721083793041136900061618567527523275794858324724387564128391956536684818407873908702264516655901455002465127199084469348810869427647518021968343677281814819844969592807781144136441686098034911115350036329824834750621645755636791935702690068774261157384884157138981183058213629094534644611586667032524292362789139266540528079914646703315495487178441660315244079556685928808355809369627992509128138283757272667375426223424320937334885811104634085019146269645551400763893126830204514809882485299962738241951661630866316783888656761235990266695372963807667949558037444565650610812651892520003610574726806267171386047394792652118344031280350199986552429033874097507846931283414638135770360059971596855642091814677625825705637892077342418213780552110758074922988815776527067872110739848164804833104043912113159793533019232591998367584334848426259953088742118831365378254866264713625654709396937954611250443513269052596321996387071004168819136979426774767483506666527019628516878334157265163834598001690517740982309056629489475683068145749885285132904517264923795946124877536310636748081335556804442686470173560112345656381520754452904015126708013607063920761774930722250484512340787106353125279796777442267657838265375524629408116127012022735004159902004917279547361858205302679557027774727818801142419597107488122842333601702254940111793880876871711053190443981315326574894948679939109654358063895938047562328722356023957875203743908930575564032684611532495365241397517227924867534649122043452019752858046305069953448092584413539403990164529376208212399682025299215340739203473319296482448788290287853665845296830913569082504040262846633125204034282647861477583126310217101120605321981455882434927466599288577093640216563000424757885043373609754451597464091110315419582870104745470014548824813534772655834720202602468113671887442639603758525688502476803239756979754025391859253324527378429704967446328657799915111987943221512823522122279066841972133693286976046476626579328535615372288664399387149707275383623737746006193902989226915030579949101942569684610833609078486893973726846992587439899828308610170257056910554273318565954590534734299977129133649897527678577447573483217927067758889466680373985212012649984019828399473545229353777462945910794166477027530436111675187044391929061980594917055873180735585237559658780219756645186657015010056517602887526947803010437553867623449278796530970769105561111382960377120632604386985645003423102565476601653438819592749286421587347414284124217045259396752662369526525121450897422687269574215759875711594284698635180964096874801732887380761695361499799068559053751464522213619540695365473398603701188294225512562414158669499742141255059996636291081083782737201133058555341699591866621714462097684218626248384949502100888584887997672770412495447162397396859965729669442583143264933260068686617509224207971127921319648120785944387044570921266785789437082383590482626162540315934675417418339171127777774928775955822676761767380147679104763112505305088244217439251658911072407708362139109648604542760032514911314224741302642469842066645237181621170476108588306251208713643955811910000965613951563769010900224482442320416129438472752424111509852787115532867506789327447378224655238669154164184710603776818941226910723299499937640988120858437522535632662826925403718368559033959479879914615531044411076554268720501420919930329483384634945055093891515997013292664961672607737684853612156314909462300038677130959506091263725578309578652619418495808940543514523967635157513912654945289792117096610343506408633404589597036322943296145829716114341409602799921138631477703109746488913633352321505061557582617708581438043288918603648893906948487725594123762593605972224951292195133158996582203681120917758396056101170442703183692072244656926784473851279355209790569862396375935721928594107002634158443637230770624958955058265488388364837153759703101185083995729129710589210860222704154562244520324878228450537414250001134572400071027850052779447776950721392436273943554044021379316223093771334297212979273491268682495953924865539639576099353147025879428983029694510255349352338806495181214820208885038019552618222378333131532049569601839849780944897867270679556974506067149941429853003048354820481951192198678098405148951398648026495571339878608321275545128593385587096421812176225977969505322842891403495712367583384139321325938569266107790977558542802715199137971179144272189199605940503574947184649869439374613734934258992301381607702819561627895537363931169609641178882271532919356329750723423547832340936726372862751575567201644025185107682198144960787520471774539211732073964637350285848475799670811189152339649575758412541408176764209487352919429268894079483564440210936327195500399528302922371641975616135221233334204032164876696735460660719313715628949888056563695027675989387336275390752238827280603936579934316919817563481316786899900511338890784767859896128757956731330237177026469723014791015267987910021755567622905639084082647014552228715597347196211484670947859484805606422129049394342403167176678440066998416959147969899080254698842639148466903358113526899525322832945546940698529883578130106074998854281832408066260388059604176212584490802909494707616220347790051404564453170311847850959101470332413400247144742063894562449734866678505719764210722868762815505854317572828779749623541288747476885488772833529330413690814251160476419371311346586472270597937931477277571277203734509658835380499005525839505155752933556406578080503090892325588753553223170835933713810519397951992707258328493801879361940837740958410929177325295099808369240591492461413105278960591102054608910476424097519842453981505845508095516546528519320476857545843426226724187016138078496369322894331261269764752562706144032026669159010256162735079030135321421315164483616758767320512576652320121038481230505881748947864580218619159384272444815035578190455441914966829670699198977183811842597567174161273215688334118755032593963962589857267738904241820279890688783258724807176194962904248129619272627500115359648905497590416964517640746059893572326501708966873829884465728502774076757828512643471089438058172049756463425849603222686536189979345469689763588535750522706544125341204047122225295996805739495641761640961727623979826165210258382367086396560202421052026912512003129906054688206631770201134218261178855928727259265483786368531621630990049611207078545680902866011569891828942689113556054231814452885700445691382730788470375842677128181627436425999387970366345812601324236557525107249355880939629215679897176897164519735489712391833248635153101456831774908073746839978943485908201964910284897540725916935045435770366163983632010217719052792640225101194396437383702647105682878887178104980980553180123629474192710839838714130799332814521539122674950877107456154283459330298317444965862341528208796213168207648959385944740241792893830070288827645806708453146418251856361858111022395362550989841003348722063760846891266631588435227816110435311365064300417064159065448352797851277511029969320025887497022262361274939759962291697747932976402847746222010904073859061223360852858767749550730479752095556924557054581552467036099501842416896850015517697904444521730751804848975559749908135882831296860531193923082330167772993981009412293735643229019118942836995838045458977461229552730310778305931632010332686966782449520213706917485622719722470185637440549607131051691534879109377015579960762278295618350556999932703593435384091599410067646447094219268099010038908754635578093310867846016633634546806917825021962524890356572049174956741907904205312377549773251298217114708342283405842697059437111326306384959891341714774299827855565846103280097580926874940542629621493457851723044149642295838047507150155889942711346212754063522767158511052325421782187253943017256162334196645935036141665620973780037864017175044733972600044423133931897688338978517565954306963430332693835288856611418598158157982012258920251005983819521228522416456702653887813674089209136307687626001487669262919192197457763743238590522180347637136320095783643183568238431087887717540827226858928811670774662862543311450267299786216183232091205695593789600858758463493819913998652991824124551387761881345216785389221197739101010408539884636502430044859098708308767888643596779314386607547506094846290397067791059610763698973229167196781286539576461729800924305156798347882505945529759898233102546467380303224783111710920566301053415890285006285599508303779654362373263739636635694310233884144674759109441073031294746391572143525872044175579402596488677987448757509787748479484288997234657877021360364284507479000327938357040225334353647729513241588971393150165709593550879617129084258838589764940751190265706032943605719028163162421500951353159449014644372680726899523647740129638034710144102223361188013635247479830789594803935380680841892936473906632165669736596970515072383798453518701430116661522041435707530117340169940903872990630086956687014263173086450747207888028720347011402956721680702267538495668636648610029817643124796654035630410503092062799962111489484981870401526624625839433078100066666801847841552199966705892868273478982709001104640446925189214303662520399061986075648413595531426614214500029037191396051282284554631930555594567245592221701734349050766793317194897269971514517242484194218171361876801206370054037442547361835797278048899876298684332320852568663355498711759293830431140661790960069619185506745100509579633500764933088618135681432536609791178091066033611481330228897629752377876894226540129749445455426101995695739889697758381921605139005394558512593689724588133160856192542569378356384777175502897654760364767753767362334706941745850499527668307828674162466301035802979249433965575797536118439354151976509695982119871349273415501510281028825911866582790152162470898054680899631130615083973160108934843786420472817990588796389926281143229069455104368193980086674047646044612399216903029190685420808598133908743713879087636877409119527624533306105236749158232188382827585706685076806161554703889671632374586199388384399669303935953501628754396650543502764254716470962379227356024949490054579024259712143359322817030744117916228490767353966359968344730171918981508907264433972760505116214719908545055532787124955291582384145301801319879292681577743018088629805364490760691742649304122252615390187851213763005118559137324227407615569184306915539032711506869788290017275842085864580355265323102411534060216879580852374740834012398218764270653045895487423737199445994580274579031760816245412520187693392318883895744930043460677876315431614776906767588115266710690223102104176435050658763747497319615881542277458784688440313590840561794918059860563448756554326449672764576249173500952615258452225247242323010275802279433315423416390552393965231979793659891827291184863454098007608166697964768518806821719775518511912855823781033582162474717002660031780639384824823731064275207781002102661612634641207656860701675065028266369831388836860192596905742885090441594763677032381300281234728027146126246014294284830203518260234433443514036670478825973311813016404526495556089692160996141843846171339182774620954146526492258348728859871770567013804311511185466183460764776248429881898713340465338243533843048944414566459911533677822737065962733779649227956203590189811253194519974836507976569990345839736075593429385760795446438548443256337769633087059560199396627170246927093688844140991286876384755157314954849905610924661616904877709718407108645384768376620581901372426751418824742806027114698879674624806347249375726495033121142638905704496652829396101153911685940048300880406417504699082261815695770690656779348540156995845179552052683889489321072686054674575368688244679491791718294964469019388952601268582159714257173592901442266606566206573488942725521373160995912666673025289482668416882881066193501284205946766466636397149863438107270118331285060043805164673627163657998229982587075682655910271656639415428357945989037559522114048870733779577930870621095044872338119899392633188907215405681499260698515394385117259162766913948928270533392685632310616028150171600777678984254955366824568313794810555178061094778969953465374961777593940111560544810719334677848376306730443698404546921970103261316707579848892578086642344516870999495946457112872972614170811920540092800370217906355383288838042304198441539816461468309682002553671176841125047773780009712113654138356748591172278535654708618877422124843269720471276336876414774561178313124810913793748503264983743045802802171042505714836229793034722914613428998566025199872621142443992150218197634534263256366385015768666341610986722951631096653167605311226283027966159718893566374723574041831843286633848523558061778065117290217770051831587775223757726679691704416205620366640669827030567890164571810368160141411369173332521927007220098672809300225041288446670035975998374401727679389788018775167260524304501296317390426300899986328547422497971740178818034843630993069450626884503272650867238653252220930111216976580142216192365383539124801532258899425671115627173952031203103427370190579242331261503399333991882905285110115668667210369509183715246128202504576062762108364761112248447234002419328487275329786145004770449467518028845394569165697912425976117600660657762476646855392925232669381469721441887971322316997667038727331973083022239470440042503672334949423255809005781735593511399128337410323006418549596142407712878492457135033440737534402646668642283647961302907818143518501658691704116456457106381104359537946002582423659984282761125421273336953945648576246960100151170468324601511509331253050726479958899094737754485491935428234404526582574377071293899164743034465697608371048834160057332555698672287309423108192321395547489518874279688115330983174507224997131587520662739555307360558585058919207160264466028322169343363886905029177003686917496579341587975442502430244813377193096230824725554669394551882454143799167541124920445720201127430837880577909995509110815073657484814143285885969447921068548912808014833872152005001462765662390635870146150485451295349622656871781079013364103660100122251764038083505124884350375221971327768908050034796810096565793232084245803264932607343276492611414879274261903883583969678078756045085185960684806219142683342477303122367848216287290359488552226404203888463035895692349613570551290787112626728008785382494953399000390496995072896815566058191255849173745054551927624120232932208315478249047591788938496969916908807254097220490322928670743646025230187905487281872909777459134023737995134639293240470202055548943564966394187317410896993164509730809308540900679612950323312978373355758390042000226754946531269987447731755195022869480389221138178343280181342150907457892970492292024274293307380636747144139320246550355331095670195850945780119391698293833024145670199646945490129584934834928665193790604202390254659303791630894636223553594108882174746729115588038922913168537454709482062879372712288878568565914409332605763188896268907624747669343943442056808901128785610178383913639446436771996136918444023179279075100646367669461829780448075120304611266703645221036628920406328245236762116353240798009556761932011276492345924347575652355388839809225344914104020344902420401860015911105749092850544126884074741301166004604393586292606886112468244531328762502086818637559441516753226894503302247032619531279272280341395379109038268295496216468578545190233474229703116307295737606410581935462776553729404649232738616989834435087332717238653918543563346083854816430017235022758863367039910858311709518582437976137840439850862126000770351031258020913959480967297752280269518629916352833400188772258606623752247980054700253128269661233505886296011118531331009312126471862764602637991872985950050023671420483056931689051490617314241500722588755751601207725581427650383267491291008232129722530408645841969119821792131779457453561039207022554240653393403681180330653546932323190809684954750648351538262222052288245848231646330900008010192137100573656862568361118331841020878733225316944233944069870137761828647206292547156767243330474439778161168708005538480411940104125300870446666723284440175814662507424336928322310968036918204923837881474547492478857004881277669027243919085802622727335554547555501004374369214929764049307463938608981389849240731799140792597283755858797510783613086035790744664075449513118478826736201230105328514255337711381850939786940884886071352347824359102300277078505661082831537481594643043173131755072452693313002195075927820965890616470663109398315553360102105264254464574511258773741613452122616511081574041254654747738673256651823738693223713798669230017957459785180804959906636550762422066949681369175269400769947722739633123320503272196637452511145968851422560267124853185306796482004299656928931171673373710666182170017670518070431337620447739256520975780582711852160560536600914327802713417708211110348485531226235095306636497375001150533180572497252148711120324308377631829060080500801625841970309865076127257974803009154136167797142936471363763965332013569154688385422686874582167516020719468052769707539771914461297928746570613382753593877557701153195233617312560637532213875135676967607589789337852577766553168386962439912801661003551258959028855432800371440056188053831803905213937031821622903938237871118263852544496143487061666592558271164338501948578119714380514410257974394754472177201084648692614980647728011119358454224293448753250479057470980888961208686483234658613441332163159293414092780117054633733001792199590787512258471782673146234136538990222890457448175732417548343539149849065225675405622388710588503245805485040266379606189752499534141054244968404827276677238930955096669533592024553504925300113817515510953368495246690624892047399673323526336370558165212808656850109439667486521275242655396308234856079418791502671131241002992850944923458506672541595693591811671513040959349297173694574777382830878923909667011799069251471473783204275429104336763523335081305435546999877241236152701787019345006093898844274218757998017246556584875842053757354607061921016865940388598443442879737712927582471953559499011921040707941814099472527599087388889554465018862482379074992237241981622311430384010421244218724522916477137069987630418893497462837991026670775823830839521109891688103911987551127116799745924152791904636254450993811814719262797778347884340720843439617142487318326902270945512275197916850222591357613623541171592112677280323632878636186170392967529838197915685471145576744014917830592928026583797454754430807808436065060095797049042382712732188761519003307683628499987395217728904914388904807349040459334837474998124127284586551879037153965236874022541279748037685030856618350058583961659559254368165278453437400507675041073695570004779665863127839792989497531490294032922821721187683567535351737577808411367421379607071004784486513522749532151849682947622168823162271302208091993855414718327502111311994467303513088600412000088467284724153616988241553792330981996305528992852738785201747325625641810838071103027033498791594770516820355136462943814194499994844033969037233557411879905222464625052666611383123924192640755597802337066617213784564950184150951362797231554706555716867310101190621140496091474421651254325350024868265148579874498890068333452305057593942375541567432560718189773751215326005448947861943139148784220910049903907679325998243596612818232861642800942863976316535939649301847560669525074145788903319991604524890122878374164234914163212461155629688315484834595887506913915737008268596014076813542413415648704766103872266264275370031925038270858961952969711235490060973126266523849718083284893024235268589898061868847042095629166403569926319289696677609222525530802560639504513265698654898747541089780668107963645339329069268316225477683343242220314636666913274433687738971256587247018650514579474726382234272017258908343965732533188078638661647130450769742235866050443259750226908064546540778769032703280463631576663514449769773705425823498690555911782084917634261411621796155107955997943293670068986471722710106834617907877680607731371098533544144940134980201711460837115463211027626082498790258484461950081885863953866287358641910038812868193537001865108037545925188711426981291552728875330827105953869573899958309179561791331894766583508003442426961305722051936152263156016240249257126838136359290478983704334146465348152535240073282475366735591073084862138987967229092807585352314242596133742649072586916035434782316838286751574271511501260674329595668589959047355851034495004234737946954540034143060209507487540861186090844634036024632279380148160656479337143736524595439787721523641648021940106753379196139525560177645251873802505232077388844408131233401529799731566232539334499483808097856622902002668402887579720445563502739246875148191545548819715750376639565330990000952800344244397384635225816906225331570603132114020424662708309167775617640174518356729380470365545687177554060126778599692733607289568597188342833061279352844602755344734361905859036273392698092925720529390171328978417689304996132124945711354623039803875285874127855269638738226066333244357522396591011803210685746155212678559262355070509738599011727232164359278011063020308526410691436766453917682784995208763859109130890831019244058141310554019303685448100796349808746370497704499010243660966972093043723992233106878038538998710207840968815228905949247525421545942939555395715893072493911196210470803568387382209553711316094854344710996912512840589720256707499098136782861974064470090357662838408398609419330204807365282205276518641829360684361066807541375568564709849595584713910630593447145201272705755466790127820504409217492712622504682802587948448916820059647179786467170676402221412801829658448268112373947516874435655149970755679562200358577776558150859438198343782668722361489397181534125105073803857349312507225323145551514646143623146774035848437235430086141283815360713586708961877425971372179803104517772933446982222937227244752528087903720061536477351068027313645472564879118604950218227856528408047052835212794544310555760457761745978673614261417735430474811778631364334939876398889902640473468136663626662343531959004027348190693209878297262810898560308029231056606450092182117331399154301777608984774331647602857224593265696688758324056647747328845845708506039684167337067169117803763953225748885807916294743301885996106145444491796959908434974783529096359347269553898059118649339757384723600232204238631424855182631712452142778417809814382394841195349882353602561906673648682651881689534670729993644168248496772088526916115240267569326788750004950819818098677633705173644247728413408619184680736259370899801728788818263023934301358339076439068827385940576482997873125196217657504119123991913444752851451092423725557535015050624827442744414128433811739100012137215309692421002362902161817903369255013521433023000990395510589621772726979933912200468455641415134177184130966401460922988326881174817452595934961325346153384200774640213809764941004985900803427341910193178549061298987580842095110700736886524120434367947183034369069113979551983444063943503351684152555659508519755737016104609198420764642237951157103976999241588906644181708027630140438745692076403460216179922294597824052135079195082511684932183933343303912348970014612574726223795897783532401467631512138210386805462652903212183631012370297286089885569693690059382249598921698820093391851690056522172592661837397548110243769673151505877541108085680691030540655474421380384234025960616410240835725997390351046277375338319029472043725186983198645262347293229708499748510003165043135319855591533077824542534703192891806021666061616827211411224363735450250391091015911315032592135335628555506043049469959719012866173178367903377142151680171768096575531691323593126125401021987579614283260328762827657131456719774646542777432067825763915779536370561772964156440435159607637001896998248643478141584757010774274596609165090291077597764568782290076324554990412534775757143681249199188875827139022362621417656774743663625387304773557027670210345439655600396557891666556421801545758247312414285866667301521399251535290974744406977847951537114003052013278723308866158155079538678387390736516243022508124110542944817722637816108361403866372062960864520309140825133906971663929063991327949007629333679666993088820796418417530214536343843914493100255438242638441137827251563918065829745483939904962420739964736550051863100197468700262460063483020251660993425085377416159790821670094463130605010236040211195731403481706504501998520186684061331182370696784779600116134680300148507275981508231570626838287037793566932960534588369604100066157849418628229758227589623848672113271176099997783027916023731491286330176651337995075482916717988461264425408153584461051999785181812262349657594295309379262616499146707680987372624600933832645702350241841280529011267427083464560463593764756760913241812514065511746928661037969215018915816754566679889564916766937515457858557329413198578694038663933197937116905955860684476570755173724900981414437726203797302926131088830461625858032304862885914850366581923738088123246028643625914081978677558258497156114992534266475766485465662381000656258455334240529358738700035266913688249523415715100415288652520323002427225195389668953509010388219645697348159520660706296689720376881591631500513548284352589368324522665870561839789984766656235968102614333761672130965320757515696359258955821686301961607086850312133213291824817616939754533594916312109593622100383758115460683529818446431610875303475734086122253786753725861407909669682860684766370106426292747839601060899393344455521634078087381467429061997899724300680816082899386565778707958690904506246949654125898931369009726639091014779958700451071081642359589359473004529390142302621859548552107264458692913834389573803407691803928193501108221094858877375017321261745590120120922228733541593006038781218549993550649227067389613348295914838692675760796416964337146301615903336270032513289299050493589319412757509803647160870872878901581690400604763149492136098691937377972913644267357559684044761333871384208376057468108821779789926105619095570203261593639813216335217472755609340739604308133152840280104320257085793007050948946811169256580604890276253904526916000991055000466951619414774575543814614243808902316809593998342485071382842778555307241999274952468079684744247455311556118269482570785297016169883909391873442735235418810356503099642146215465417862840217788549523565531084482998597858623778669509035584533047859197817694008946502667256825210626585331414736633212361496264994624423085643432272116509954235791746713701064422511209802146819358669639278388397083505562827574923114502807951799846672140228908054219156134042342696630129056382425336972644623217105648123178238078587564174395132369380176344535120968778836496628984482976144780203033679725323232294531938623577194253991047300815799301776606026742919157873957661199805646302580676754058929961433277959494073957702805839539841402512809176216523046370951905632952658061062243315691963719370782509608575583895312714042792862762181081748411685587282067075488774346103437400456819036242511276737564163935301467500677197060684536908405572360564043149906907497515227838255683153798992579867618571685159764195300151791817437594056713735411679361192407521120449578552105311880329346502172396985253040776763440669487533272788851776633603678384142265635030367974882356270863749856447414827319345709332485187400970532693662389158032562431098742017075126931359602807878660007426845962945006362252012049671431307774403592518784272733439230284026890651582184543000628000400052845789231670881280604218275562538069175339312840651210535185844126621229030165733202430500994852184508722912538210251153732429864877336371027723004569399297837350777803942775803778104535972546323055630893298792025767914740096108400612749327335163327171023336015344806711742661128802374231299451429905734960083134379158408447745597567389704588637941365484035641785230123896362153710697870578664014767360114578824007713736801964490574588653072364585214882348393036037071765932782349744984259485170710602036244531734160345228966661398376890303939701857275232909539336963829681898892348585162235153213271841517397636855672510638919970501576040675623422376124991279514907728490056011139968777314087874102503280039439639628733926758544009324002768794650031384325310055105578029989402421146616936485394699855865130438611611435836458572534790868344018728853119399944114937803112447923396835301529490828617278436863102099339258023834058908085002648771462572272010504573702655303891854567071167375525275133236570559881915598970614620098069903508585178019476785309964040659467418983916259634605256248528003404186490791560323311339200877291505705627814706157946439439625215849693846989581652726965798837023414649094438667090294919803435236252579230490908802135228787989768101827854346735188312983841394279021853817537800093596789005588342406771125701181597887251521713181612556050543320369785252502591671592785790978598083034420277530639503016385799480741812997826208148207087784400498066991428644741623301982571551581840283581660513948663586559940777421216195632609308487636412832298216949191504711270097040618127173550940799378598791236258319629088071681396551449531022452974360553431248129629542415156477281811097671548035330767806720643753244885110315044970474815498923381626162337623403929637649276209446573491656522438094037454740223754111034637919886874451179013773021507367886272918481471563085091300380278339953038370259046612557631260026734515488906933251110794701768379045713326621433173501012400233371659269020730931843337432494553857639775059632892712799385269595345452424704443540851772146554265283184275247786695055008503139323734331123990618171395937713787565845867610564409124281424776564917899430875985323468863207874726090255516075398007320802852638700595477309696179728997538705379472634920720506953977613750467794747171420738099061641837233798994317934840751209022300927751774305861499085213490815909983171826692762840774716391576956833646007939610248805555491529932381838058876964851554390016853931558886689055605444237374623331180126586923623183168768435785937152255437330647953946574022423835311298545562439419304902676550530005651186260602402339145174731476147397735930825188109019669552811146067872889208079050227685342953613284791252009153748625300655248878189530272626212456786100097461933014770345022305556881801671172915154674001100651795581530915505380354924956562325298599161089907213678571921699063033173424154889601912665547877258486848529516219512435672321260100129012865994427064123464145989178571053416892575598993805959277096148136728754203686163913086260222336901121665785290779874005489852824794550171835176542721430232542310843968036997052095905999942250206492997760683405375085125623841473712381659099229080318483774536502932855807815143820632771763445123047203729502114564735253501636871270134009678474275229270021787280288889443709479160116594478665529130880701692928395691854822292920009432845361798721121103925692736771914969939159597296211769212994133708019376076106345326023824114664729382748921884096591637824188111894409777538760221311195927966634751661440412173474709977132728224283713187871359544504102751744615799369937293650617383316595959894537746440109067606491032834571851397349296783947443385637024843809438809970299206695952810335815972406124960579202833165237873600153556776404402811272732439549081661689574097708871647074086128056852763330669075932241561213041213510939737450244521695172484793917814709669743672668284004904045751191862600162228762917248987079199598218783247030760997390635196856947030492976952551112686113068154779482265255178650834714389010331473580720646436847148543386804522468536977807935288319360597509098747903949157606195204293255100814613000382872007917717062388948142085635336625276766848306399932588390273431730343598913201829141106721197067783816073576104936154799542611286630242587440434853332186096343665705625738187449844794204767170756431030729734018484296467082618781202258850240801427924305596706596119548852396773230055811785342747827615595845221384414636279564366261007185603713192832177049861315019446691791150170176772532141038094058295051798451073330047902515214563947144116189170621580221343508092838863489379210010771735284352847350611460333389129804133242491372671445992119519652736190405184024609095037115951719825488888607554791671874142329019269977262568591994867280284313246237700521455936703545633846112916788721139944903148959489609868169728589567432392167378365857824751239106524264708893374243484772111561097038713240111900763091937024009556723975670112409646915533487613115354323174403171538147900198825355702652558788715334760189115813929562031879160849529290606424707013234928750375263236124967821612233164337110548494100884413102747078872007195623380848900202947585907095386788898790619353278651228935161334386439233984827567271279477350648665423421207508423242438479911316642185499705842796422190631770106491442670893418171985767048740619105300208011210158173290862570272098572951470576099175462490182994316292595709161378631158264029588253675349204706474054063801338398376101717774527701749114767409888811880147242034821886445801561147366749266987144897177182851774526117469634857108922693788108522629980141993448336216507806849437584771216641399094822934356222326740448249333012353680914584916997269042878577732795389704453205883865359211428049766050114224727371864943642584139155270747086006815113231337649092340576285235248534851234411650221902671063487169236285983646438635363561689048311749218102484204512890921883533194077410729587936914999676224857408213719270400285508871815983543620367095464883228871841487907579080108897304785735834376707102920501473937156288494810398692644199870401660520809185991735794422565913308749946305445283935337054406635200568012717339412637344849794427471442994356766931580017737733672096895066711915691079682748057348170007189786475471001274288378475661009942084837390252844846796847152486244600735927368944639944143178836239403596589528389183552836688839088086356655456757003401973067647673377881683183316450819816642861399162509812763443345319061359092786395379907745314226381785923866364719977468024072496924031835987711152947611647946493955076097082816454311527288396900181881725444207845103715230884170190520372210392718542070951404843424298256575299823144188740716611223678087551608492544111339153259814779134600401205743896946797227227830709022884191600739510299316423058158775123419587411809181838528573012674989954956043523440466102862399949163502448693013845630319342770212736745465547744186909603033108406220569107282276066603447703974742042959694591043222545950713445421531917833706362957296746679124055887076212968315102189353409414121097420333574381420029337303860778267230741308477733580132644823898215060077577794226223000827834425869936384106011558405496576318798815506560868970694378683369058604299894727525014818336592543267480323871942868934061361974637050492327012792125783319223875585482348210853799403382616677697624029994179324684056863156404116661381266864836343571494353642764889739274233175525922310013317249321781802900104387715515916195602698752405703259229480045199965774970974734999227711926470018344831681360555560112849889985780018567901594291553764120388025116021373143679587821371833446892469606538099789406678623315419525537389770278190463096000603431883547454225906652013709996019684296266389012363663362765576933877732571809141890752051242094381322859815392347801821682129545128215711857072934753687009322327938367324649514988852053890785053681382305104490346724235913078434186971077243258494449093090201684190166946337075629372440264961677121925175717871862064694113597039490685042143331952235962823525788907019059104462469538912469718754687146744298631845061082719099440493178137560219046010663708050979033137304489804795870783095267510499723442912584232943506139687555545824903718464903525322688116458186519056085038931888230718132402657162291641239486439522814195838026017761653070125265554869754941867030324529544083258056492367443623191864485180388676208412474033253229539323110313008999179028311105928099169586012800110691292365456580957171339408376253993529375613565996940088036261678698109756604121190273924204972648634282396677430770852816506250613896346841238729336958164802176780612065615439715218116750991455355640388262295439269305388749577095932951367928367737634916812491143605165407152455901999388415914900992447866323975761181271015725511095944604875029657778524181771651425294233377448312705641579467081635670887562291498349756277793504655787407134219804609670791952022804287882886132641522541263776892609988674506008805453177658382828935455816328407438628099431122351257864875962533588266524947651574792082896778156661638326438974222280899054807927122902430881451059840241649049130832618983913751425554697894448621393615679929504953307991905851876076000468616499676631389580649153004961277159741467188950467276781009810680400957388958836780745518206279842548385782517532517181207281677604773915067476567413567874161494951321003515257841347142365320544306953270143117081392886417578509288411197374783829978110763725801549145293719509848836460167610102388226712865028831580377187195042048831504962657963125255967824669558304527291998145158056812122076447709420764646319848418075241635517702193835363125630245338111224126373701059936364230803334246542825568834379371195057118610959348980019230732185765594916319685890673639224492524949362669968956947453846279346881105504027219485790628996234938874144949595749479609032781684106205257555791718784459642457845451767935226603237662041922973302570176778304908966246213679120522521070499242716695894944280989132329480575222901479517457240285233029753745664071401864416350070693566794725832625364173848014169152110944583282010960011520658229928866804860662716796309032359499689320832529897766803190714709130505403748177162741490607603597387822583930720567616312203273542173922335743869135408900524199725764965163004490173689636728371103865100960685953006422659630060388001898245233288895262290768858665280819524588473795063899246514820463971834502746748315146067744793167161869298312017810029003172949575983244203200315588184858115396121955016819130455467172406012559566423924915657179913664791632090849581347434874789818367270988543889458121316735865947515608938592417576888856968003490503333964234791759319462078632539671620161408277500891591499048794957368366307416523990892201947708583488764427106682080675422801071964640926781544551957019465705537517548892855988156100222494992027844582104638903831991896529066740429358183533273930374631855075489805495776967058551747792016877619495945082737820445584268354419786308723206002712736587725489629052673389893625251201537518247715743261610193271846368843079355065035383452227043994794050716653816087766736244410907346371336907661617300634429297521746890444516052445064378440269409496003181059490548255406064158123401440978700725981386256011879638717772393358042068562133237666171205734810855587856241621002150781380045196339536672133795014609076986400834306015977640990005931976393694365243524526658382797213118889505755528224697486460285907351364680439710364608552523269327256235038046330320395290015643777737898409855435082627601073247453670871926341630140811736964752060287613216269620634159881280883706646422116094465641612898116103593130086680536433529764087395147009556714384456543354664535874349731430636473371538222275435898689656937692705389594609937207928362880701010849939873673375364756982288852263879554826280937956792515897538259137310933426324967651817575939435252613953757042655402171880131659073222718648609260730006205585171761229372374348908353865892126784389804509298364314320961035055718727729736748865770402950360604996146750252086600286887655187694669327435339726539789270685692016942006350582555077168251643085548595623365023181683016764002058737144635296224464943299416110735457204391762893408485417113676062847679908046380870984731427186193730462647396854271272551113711193511916486172218641122574807078875188938543853237445268866736569088753573663278568343585592367933451396856447498709367468187464078282468517117321882397441668422424139061442445769478015590056392935681439555805467432314563227591901456095596669675338774917136725887160183578904906312779497787514781741676866341296202339380670371139635523699140387099106469919991068328627888816824361431370794681719626061479949954989315480356238822043107650062366809000943921726525048762975713278390282598172412115954798422213184373054373192377902844977823714523703014114907020477177551388296976308109159938243120478432242581653298940715969029320572774297153049702378324535486517965167113312760918153675482386751430158180023811989171695591006499491814543505269726959108405429055716259637056538033118262772725943176154515940166408991442694171264827356586270485758801700132534817807634071297881415159873885215344683192311826027845070619977264071876954410049885562363896870789891229151043226264769020757159891630365147634042033599470096037698086934691251271787441093710394606497989045060168991107181925688376500378637021275287892286987774490592037812735785474968805180987765617917950017224301031960326834311607144572961604461683084301571535128465615956449989659984545444219066850757571720901123117103486440201125458018900636934680539516018588376323961184320392074057613489997148293749266832164845964645631020648597470885202685996227092398427864097652163517920870796098615462480387134446316904749118339037522611932300781563806128383855669673475338827805602157860131892260111070605498404124092290209934219801701228634456064668767393145420486133353387087166560832242403373090002845284911955250159302593912474543967361600383702361049537295558818272707006160835970252647819198971440403803372589868232669056300255998733794123353428437734188256939399609315474223134808827241523981202754499148825741835139501811351412289559536905673347686530314746601263512055138172010368679584203695748277577908169557608737414600121377261416080966455127318973028433238397524585281123382954498326629992421249297234222411295394146128842197553409734095772128774735117167301081979776628966007381816466893695616717548656064634216693176662933354077454640623097831150653580779438269828756427934702536668613728361190000278777572983341651322360922271817899789960402875441683831526802652575038836771669442760666829593673406723983310934719019528050045804659465006128425862616905138754939196211981605138292406641419267005539578034875140751617688021204882346200336806649433221798779765418411278063069003012504331368962991726812353965372861204119173645032272544204342594518365172457488517599032483549723777383896296025847790771917693512693814221252745599616827831905240699966461490791547586887898339302472799190777011375234854138891949777790671660713440800415025211399911798062680637191508796205358222052723389778569761896308488528192172342942563231644793847351594006091551465389177510566787898955076513092717760745278059670708219623215142890851209723821947988858665853698558994604706764132651099939535075800730057680136898631344183303095439145076469183705815003223257810730734812768126565357964087728786735048026255134006706209035339264442891196527593719558873955159161347133499964328379708478547210009151207228066665517899164464513631529868527348532201577789508309763405778931454505399121677752169648397230490214909414471034825478814652636531822431213010788338796219140118830343042821452243571997905978588432287928302602766283099790273772241290781458616881444246858185393412427345578287919972290292994375483792299072535101531597665291035943524780927019296030027416390564286142952652055530207945393951877212425919917651603507417500599628048242660748910815287717677308468571869476876846614591678225518762710418844364758594311071479017063828403838869725402031654779030146164380837629008289138313462254469096456059970875394155773744111691289566328510390226986274675626591808589587826194464961295349495258087200693686100257788286659738286382434373339267688931028368275647491260450377955673394710722250526468715969951190587535604092707320721839224299293018453999037914105447532233056591372921551988797437560927871715814896593399380763544132250591075695361842909051394974534540122978095326197996145242827775662656401715127093899617099089057989900453573612863090457280169194101460629581856490668632219407586477262336710162144950260238655071455710648957992700983163841091913418335557974699972979051807717331787581171590335309965499452089846875078207425329590944842317366296876822548506342243388098736116808994597341341253557516855583718651156770344869606477976515790695652228214131540881017227767884760253142161398592353718351845192850933732962169830448722876270945068745693791727226077900344207285840338902014229725181065351768788141703202222977159520000746132736647893663782574938515660804924838294305381335457441847443346767282638998382148158738495736251308894411981382318484212232776066681951626021314227295860022047305175540551264070957341411152121104262356180217422007867952480428886175650666020529955638702402993434650834601076014743190871692086742693352652573508259956481727854375471180069690434185347284427395993128070801876527157519497179060036779369766583545458354767072074809980915036475533573710824944266823603712648824248162687105722693386453241460677298871884345411041727561131877683208667239315540387216211752191835256891912845166949583037287784460703554426860641088880787901477855674063244290464466653279544102978495983698302912378055046256329232329570111975480964902845495735753090598565726149020006651661034886315293564758255029036328231839985746120972892575391691858819101100151599837437398126354598040615316064684305410640947039815741461534347980040688637984932742875209307660157194594086428186097646730863748824552672391384401042151691481917682161093392576506355364886277440537716679042704950288485525041261141311054123680032624465388396814960045082371012509961083508911983110964916754289304040422770015791504919846942357878730877582509755938981289607552473061887335761062812217805443167068574898879082087642291773502518503592626492242198569043385095815810436432766980159534064752863411983461573635067900982150999659316401525944161434666023011228379942931527096037625383332268025326140367271959118916687502852414448780913376180157600451922256705140695557484808965382343564267850205469406217614450148871634008350619728912262801772612863181731100921628593141132462584242551389159517696820731788678900769066880625870629409782036504922262241038650402227296993249403587127563350510860872414883130324394139724930266180060318270420926398870283678286319616028094997212913066970345068329699692753568662688266469948413841029765099842898176704081401100860876131294692782509300551065113359068085594776460835297537814380405723426967995648367359143433184903537783842679607961208186378079855858941202242164162106586607013030992193516143143459584804584193243703451494869172852231209624164984009121222660945750971922262600159907795858869540571300507627314348595124820209831503514558657825432294586935649570248783188557157253359128677259699248309300423744806532132934240535284610576041676529935965293112276574177617987467948548123560507467802801486907509965162783341616321873286767720530164504687328331279485397428674816573314032129433372367261429986422263174295136038576641799063461415371110918942128981984867322769913855713852368760166392874534922400279265410800973343699007547972549878319884259709939225783445753471761994279626487661107541559358425666674403564856723420575771492924139996319539860864627002936581255177322975034655227052997854063761862803443605136871423294118180590482013138509013094866225183053223260957855558101189426083402158162721839620699014128831023866318062617895204643561589161837421011706149243061131174727446852829540447148920791247107016780158875297829846586861777854649547638263812168932390609634003928330535436632481252808103103036734698715180760042146896909308862993593295805527013444221433798310142719326579586393066227855949615124943929635701636807284110091959549407844611697290337088917502316389382664981016077968779786166167775388300714839685064808028462628468737263186906507825592682549304619689915256160412648796980041125353261216426539140199214802034248152898163353402393727494438416115479137863069225382265211732198011490633902299404692435611985230896021343955340509532209365913484600147721910153917171848111944753175506540169396291389234362778596370695620101762219877998370273084968966736940675311946850679503640147460425422048660947270432928300596417655856185448242987509636827983285657720254986064639143255339339317199627833719200327145116549709135407282267365634169540765962898506664528081921498576593753604006284601266219528492747171581718730188794714990464274666921583129692663277009213784031874614088137956634459929437866685208170133793060488185173258070926873062622862435637896974614585266119876542252869215816242535779228750703016358399383415065660026612468215715727719515571999766113586705872682358691127114207690927714934391095843984144687046902181269807395808345688284773911095086701242339731161862704926048642391648687426913861923028207826128494742125445192792612183465305748418840372340831646695532916237994494557306321496375052852869058667755221481373056106568264763399048273091118778354230449953234833127606186933074625913739895591339140776866198770116417523106227710942615914797944807508357176706370409809371586681644767439543643228730731005467931748354267218858437957190274869632949648021820905052663296107877606468863188004925314040101915267196443106414565816764436844829219348755704848982116471502777160257821565839240471790502693346925019175812670763947593998614937258702445228081298230018016711391277389821834963324480261517301827739253845942705196859531110996696443389812320395700736164675820070598152500989355464066886258183120260838352655394493859283862396269788761027617598744515493928987758116259871499810704905653385476674803768233560020616324967918919460655487466301030615797156554875140054243496404417435612654391494603235960475259829617785204383350522081237612325037705107205838026371040877758667778558740791542699011113408354864155528424715120272838776348609952587838650467636898108051335389705465736795933651762975276064934700907129543884678289519646345508508564650538793469615793972107366091709839649899574200384253042440699496883765024954555300997921328376982299550154740604500181463309417540449292057425311491860412831741963529115006170411589521073739413127725675447407993507787069790531174972197957054232616450471163022609201930541256957992800064363074951947283262869140138065281952755056083235434639893580303592855995095588434493680425906657881948178347685280304073405210834641069607182368464163719000947813325927018852583566178654088080386692901784565804410632700540340363258522387856793935653035147743584974541847799839510122391248067814145154964189941158897393488369757562791182284485951374255781501633847953157669498946453790800084227393650209540488137298341800932296082752163242387880797289535650292293872361918586396332014597207426834671485686813199007633569003546559024464591286405058908488338511532289017741270721055873266687469004738946561092071717863841808519229395597064067001211269624153131736087448860540299155009844747466594814370504718941898559602828864873150704464845020045107337573884104612055318440628264890295893952239720808934126090682465054048318863949558926673469764897620713075252518997767118329971979722686825549689679345427151052892557855869684605438695227651317012054939142691585431096093949721537176043623609283178810631875461256559236381293692391423375251303661704573768310434710338013425469167916102604386743870856145914035291119169245920648036921074937219904761349675746101816392167122808958024402265582700980912521412199110408733558803881759638437454940717853031426386058808925990881713577939657066547589313927587535906471290790626443526168707005958156983968778270462052215099253774086025119472823847757015968636780236266587080922541236452232052217381103648318487919576418591548951091771945674111028629173472840452505762237645012078419102523394843747854744370177903505233478004613161018013830852479054919603651725378306760675972063535567714112163684467385315987544883197848381890228442156930724561594026867165798604225072923980654301603077460387526638146307403362722491781286545192833023026023787629865936472895187106215869677822313784424372961600446941478666915171994954117735393197905860242778011561076256094158422083647577919311683755139923216456822829503619424578345268944254525739754543267110021967817952462860184770648992917760369140148384339768605916683698072899007058667561430729958964210949845068386384874731755613855614307851741684327333457034918208549174198006694399274610120044781267851282346069675565283197935414629095134802963349919525710475701300601178563481642214604259451259548809054682550183004040350141549924432050827405705733191504828968593266869356319566605179556156056833219113907854739687076968575530559085086665144516398950981407704723570869506271463372346401162548145498115298289771804386764155226754172347488141480530351779070453718832809906105596549511408189152928875507438892732229611586506918707574585548410492351463120408641279477983300423078729233060161927798750879239417297912180448744520480174079482861953434578237943069846329811843370042218672330845071689770035473337890639198650046033307781450196366140672824669718574486991058835913687332754031332846860836511474239511436865633361673485299959856161741359174977169534644937710038681749392255433360885810834628516137211620833203672095572981871352925829942564525071618054428921348623817809994603588579774915564975471308126900925937205224829937908497374212676552511002813813047627356072105942110306555061454895340371281430070650832541891877897772275072100257092535153337231596771389945489937791725493352605543594430388005995837315421852594999833880820636174383628600833777805425123686221740422001793405622010934238157417655913075645250254886326104345750156518563178999803217348299046734449928517297011211888723605363691973466364732501905422395716885964701085711850636207333911555750117246925345857528384126315375951997876066195965422846574601610227367160383089636755287310057061497670823093768238919555019060873342511275123277437256112194658042447943895892320373849349507958142744207089581490897950661557488061944744323883609881298658555349034937674855584093227777688257371790958595425039112700479195195455405226283700428091952995599114490112383607520968390641306479407535148334530146130486388682883143215846422654081274221310182994097105739970298354854640950468677518374406206788607983986539296614971606960981782775969493730986110390722590190984535150322824789364656097992050369893265506966504496123836884125401118390157622756392262125344766142134175644262217707428961900964213528809755722575679696365172369441427562906956565927753172695921457144956910772814251084784913325921026957094649931910519940833015810421665723273688194241806298623176060069619623622102698933832433434174350754963305489301414767226547164600378878147350355442629380063845156702969059823419490415615136841132551022619702401454592541849048191828980602863860859540498020298368094243691943466117685413502493670934247101554716684970473185334017122151545907175760065411369404482994398256552409168656217332688118217356207609730760585216879902639744145116166964707959669767965113384074939213044942418903780137686376537978807997020846830782546638089695220836655449754057126689189045419914858358560211925250934593610492720240335516188800775263761932203053652340217002698346498058441913844283322262810604706261344675254174287409783814561285243353140804568585716367257483533848042401944562112909182388020029641103986253705978382962281436426367383213812063260805285643852935008832417180580839674336084378900650794540517316463642355935704973193165366291175060115228971315286339135045238485569194332433550435675741205742965393260992574310533988880661446212649799681139711039843551587881022807983855224598894451407148309866164433944770728596630799393313724652451507938839179021981852778343401480513011653235791320790221981777870163379857124107434975370055381560061905918349201338275547603067903328615918589396074041363662254835562037765789752402780899427942826738920438794682439900861092947052498805140546420423008522781347421080675829976706451119923043042340459715255693560151372836617820024275149196551572368250835737886939637320566794889841655915766179758695427674441046551429420720816569481301152190263057631113949135875275434567326294502220111965330499873853665799892805619444129840371664845397882882498051278021560873061138130910603471671561263318189210636680808264586115732821911043149494948958744768690969409533022972848340672737397045294369805768785261574607036823350654727860228211952585858737241935298506414299712615909057673309498804732882987811613448191881677071033841008712701489237696288388302809354163694560185637720459809600923124243664780448592313449620586069531797812073896946283380519978212919673048325851756166128567932146809540320605020725757821200804043206837503876264451833350903727920705814458605913053659427393764398258589054789456186690673703522903518323627518203606867776777793422062430844205065627783987539260484323666409736842468648120763236538935369204782752218154279932624115102771614729728229905558520795458138547776177338450573545749586675158226887120191916439606990506103187423901991756092228242189375801714004523057812012292056170333258969695726938603688116075456165851460428926053529831339759848968515944281629451182914972064154955718460508397360630186486941032311232980852558582196850166922166833470173220150314551654272220620832106413623796849404715903889091191905251052863218135592016093791033256089805888630384368206378400215380598175233405261606261265896399277682400150757961106382027101714078488422901740866954049408970694291502213683897989346543468802565204305045517184328649656324753753962857884758128594326503059253842257999949398628288806476796846548186169021494001840920955482790185973470860468803511625605305880957228101612462930590078927470430989186417612726335969098155690775945836993038600233734841773363349789841400655135757707043559357106767436915041120528080690604818914610828672506338472377947359626910087895505880029182844324331847556471212731977265293531947233396724207774298141018702544956688719482077326847674491636130450135123361786943473557697290266129536765867901035621046659040830265527446559342962597254652526532535656563315935328281738591291573928663640188471701149000594487011042773448382997457595976849794880764386111089257950591112298301776044154312176159043398547383156614387512574007954213737268883276082717483989650400993624663148681206468451664468821944811177841446754549376297388338626314666349001475574148799846732185149606551040136167656230342996609010333554809515318087996564738332424854677353126464550992002799367172220943848564541156778883014306977837076985601825847551763529963743203221511179646839948714347217665380426165827786321987467992901510617779596220013222843637942951565078324504950360393186432246692251390628778020480315798273123820225648140157190484544758222340948833734913449308623538516575111678209888256696628936691115474883006523382110201371855563317402346539750374521171216788771259317866823474000627314863300451607110771145586256095190078587583657327877068102252941560944402106151670002901552838147045433200578181286758398620150911094640327629436648932932109998341223978998826823403952985932827032064045951993032199822290453105943569140505319615540240879870957381043657862131786875040957801195063186782962738689683077809382172060296721464909849181696814522511080434451518689569007630418778799429224503508022825083345646869546820230451176326376832479952664426089098661170913458140120350736392265223842012093767385977446002575630827595337488857659216695672944503554554552564583452255981255189866101143641185899879324714911369755927257350977313243629111035943901973529275024624937409253080144398924985145309186016892040684775531964839861141803986388628337566333673214495646496841591990634732526887472623935126409777090087433000685210704578636444316154646572755141009486472461305454787852715621543426334644726966341646550472967360231291373317757525246755766675700350060181769943954374315298486644621855073707493674223958205936448744754360365299744076727562640689713538569306875072651500514499595965468921002618961322381382485007149822757670167430339849162031846151555455935990509186694735248666599935567961521700786165925644575385012776777280061753386598067507373034212171589400262225416510701525987242764472399502471692230759896160135558778325863516800614426887144555781847985697271691699384561586357780408346727228944557785971896940304649930690418066146020914652339188701924554306892330580969156757192756048440033448897007522792355774574281572287583424619962240513178147504803925649596494088503503454856622508478192010626231659351318557924596228906802919852460925958809560323921323446006132102583224082710965968233436151705724192389495430753819308184592925034004627213338642947663032206718452059364629527071784878548261477860077829866982392796956513351510415889086006439105371010411346008056149405226222238916471300661116536514402109058410226642282134145632656903496474207820754999456928354599478467145739947318262175273125679679426346049495671165430024835509590337205396106305527746619486055569420304353772248964888727214268145721634136492836404359280497173861669976833874018207403620784815507438783944949053322846471983894887081160042887606475638153109885437241471646119799078505838692870390246541232693917508884757964146047405752422124169952454114988228306970505563770368957219607832981375010250270870172381472049237144418153812781245898883843392221394312104519096771892110028356485693416061508764682807985110270262949077388367847689596163437596896716791939209410091923060204346146049558479768847919791009571511659367452086528876371048165863513190160817616349570468947152301859434204581976914165988317720326023952213985138056230729940404152374615263304559576598824089974538900367033278620280524463828511254905806124209506309815568923861976892158030835713837775075950453671636344749817738164136110400017165080813886421936624262041997968557293867047779069833303027794043845923683844214284780952556082265614862286700100146583969749475461571612202871563898111426864697317594259826984720170931248949948262172463198217081677966283477581818401117090983316508864330189286382876215503094175878514603419861819320303593021230957766158737514009178766300265412725536231452923160634861881697342166259974424906598918349987684668279378472652056803504975993520188697388630150267364860818541197929137507416659448350530384756430729725856892974673504413855912515174288551681482111004074921348662657769418719852259629552934267047290594935606410376202566347021565421083740872490837827725090421783290629479755553576659264291184161822058543452855775170440722326116876684084557236300376322586707269907619033046437429300750234515556346653533799197813508134121884250803197988320487221465946881939804685798832973026017696447779479973446398904214974491850718492128032368726212912345532568024313828804154306536761649909733205399268651636153650947441061435588039839640651277894127089022098817059286288599259518988149580852844276721175149214555940701242939906819862493464719264806591163824695729274976904205021381014405001477976136880628365214446632865551574029351586643928164419572042364547294016288344411001788165103520900799462489514335360107452223503708795886461389452023683132401395054548214591737357274985540069467852387174792885878277833716521380995185955215258990991677709770900372101509239227423050738095260034495351828184877955522869324775864649679430639417124751078166689398414955117222066751529030049507268369746798554559602384735739776803322234646753715015197037919124766184126377041225661935713207734146073089184617947996830831422926163322724685657725786413929444743133251743009624952203364072865842847715148727087670734592058143707947140353414685127443198796822224631536481240844284463524778872556863561421156917623598688617763126071704552042955512487301443765305128728486877908909319266643437460403870308380861825005583177979245763453759152979713810725823753729870592707632877646424132423063203602381077382047835273783494158162689006822747290111439689555743036677204274293939249515637144585973876781097986057190173244269804148710012641360143922208199502207808683100267864801308943346667446122143363215462233575650749222237221914051417963290483603934206905844298970820021951494381350593242853858032116252513713795681547907137156087309248358001502386413261507970891805598999571452524130033138662570100385340776362315732669519216621188481395103890495570802812414401888154797248518620962381644015320215912568105352990010391706275209955903491007402039495413917405631129172666701112943364596696135325394597075920830120826483528119870731598800806803312467680968339953943117520716510801841779023102426769038351939105067745383404359458789763294514658528790008503045338109861256240498272046514467902875161179663861389229253668583226077319721081996945143486452460484352248705134109093990552759282605222641006251954857661711277019566778672516236571081400643105845467076913246425398600356950237728059077083565689562740564148582045544828632120027839598335824412335059558734342884621188214146642135571043851397427416675746691824932983383830138928676332933310174627807339032344456340687087230211917232492711718307824096056202849132100046132393317660579811377036677430069749132780859734325045238790479095378573490275355977206020934399589091943761696819197653724506192700803519099470664143688175247908386780608882359819535979143128320645521398881972315566149382144736329962109305937891260625458681057454144889843369310743094804710200328608603761995796222125496071376828279852153144628583886316537539805959702464478637655824733688027936469046680097724710681486520717754728151290974975716778011968824237131248381261078803473708310745065898242221673143139732841247930839525086720765807112798244135713678442116383777305223392858702616248322273395710232529855012761933889088303082365762342392187563520678703906478860117105319547058780827555467406180623858348844716617323731872813287808457428296322471669653674555859374748584738635192618085437061556431024591023179974953580555990566335231098452824270562325762420856990620085984600344943745316456118185742657384951854114504471586279978945059473729474866354233863223195413699172408542703085187870368965660538174544113532311779886477829175944700642334597495823243339308799355541008824460525253953024169130283902910891978542310488907898241706025255145327111219792802947977200456313648668800061972499236333753185123124000978899071259682188030275829169818393749617967073129018082852171660400818140520738906014949026466371465099792278394202346255546368607863315147007632981272808206446507798744751366994000134616891832004854673910383407711906670951041386167217560688426632791661310180812556819211433381738660033378551748976793495846382203516276783999492177150237092020377659941627349879921037932741923295347332624083721912645048369917863922559046275048205718634153988503816998862644997157682368185101156204419907900563383326759166737061634848677559323150861818747789024790068761137604659335946532955959447828188095368026941127525900102143017410201451710977273812195656099590261378832698736669890367567821155422849889128978000919051758467047699176479027427658957183218080006757688471326535452379162993473989241155043607801039564348552610024927164007248608896205352713983512022127843658970632107927810118647884628234918724767147325141106761386711751665962485548463437234954827899034511844677601742770184653798606074694815659544252879021685822465243892628496815654086644258639804251225295290341178560472785216455949914713628700671438611199802203790770638333022948487451485098638450717961280032923126241888072193763573073923779185254441081682551273430155127716371095418267778595618572918808134899332413844103994005354847526824832070150485138549723061305941350688236405927655986665883657450861692287640006452099643979891176107436965899337601583467803489934630531667214354086710404703525527771453513183981972212523929382769926518797462724535182263518601290183077028492408143547105748606107269539954961974367098149380589274488699271863416117086676084784051618730782279736907000661470948250600654340367285460526074123431767947467877902842840128668099221650815616001861991429968097566059723155821170064245435902424601709159918386823096046285923622476876656307407584027251490552893699552817066248168506277878717459576858608973991318117175900359036127492039798017874484076714866504276463266164712024553421683495402296259449828719261153136911665082094937425596862296547050152831796900595222474958676581378681374632780206374737523417003978123146697310219690677348480463124883411403113345000491035753037590120222449043536870995437761093934206119800228209334251919992538060196353341817336214812833877805602816137749581586599939427043596693816927386139729742924993865409690623918389987100603294954737273531438625264019581617836988722212265129106978893354088604256548188913646357262402329872405372876299402595841416152579558691132251608478445882599034289927800231038657517573648029819727917866686553140455314992255882919380745605068863082662878163659354279771165032507940269141058384164792986483061544761934249949297719371544757573883541351991224107445482457143056453984771946670297417051193831359933656558507549218174720948160546896371197127200255879526088561902949341285727667272297296369539448535279431436257672698929773641402147223706611762384126133119492893866842648202795113787116770711244934710635042383762376837561879869888493028662875956107147391495256134741077266853126905874688136089010812580685106110470591793753353384422316153582415879628585366157145052492287011875001534238900971039888194635424674238927465193052963385824483829843702381322834161155701552818949504937564876659988798958273466891182381085811088053272048745382466498340843356463108271740527127095646708425463855430326596139424955152525957952222277283925832860263127792529077797218155524482758255915084472933710685704287178960118129171510500052397272730828207656321937504321193885161653828171507667026185719592448894183347014801398378781830264213145248142375838886233830972975055011919931549912248246965790100682538534029609073267751613158486799673810323276802407577861099919956630717573156449486007635084720241629525469889411014599889244385807814473224923318413138862003466885259784548909495449795921864035449351825301915819071534486412885486403918490742799889586351886504506398072733928732649007308979129243102601683178849558653873844445324311538622680029889333561864572391234351604192289007953925673248033428420786381394522102527256763371292498684831496441808250452999613100813055405391997194324782633393828342544758112092528328605742733727828645497944472637789651323541212458851071726684690017719871873302673373559310558655676731487841908474657172571466133036283302928237100590729930146488670810592512750562618534772369763025907038887760329660077181363504930157306353341677262674028484117172434967058360268995189770572545462591500169911439914855720591957443633396786099242380250282243347267347714356507145918140469695389680689897934511166127521719870833002206275214152648281843873563717577911156391997987588628517502982410751223821406633731454236435233910889762500954682772836747304828973353280949565307018315765977799406185667613309226044086629953879740813906895226824461892100623105519657398117612842759454533862410293267316741838522957536279636313738526410377266037990227424841336619575649156225736290071973613130287173872404814560228976000312267287032759006659559576938539051219189652616198262138214068452629009227011468661609577997201026844693127557040389475081959028833039953181727490383751628793914016539140207456141938028714170588422829453167184252512572987141075840029752983343621527111524927616762614710400783163591926006906322441828640406369179753553901359341458128297876201143322756778935189870849287091369063071569195431572590723027600611722794301628697334035812600080434566232203821399899655858793281161694042062933446786397829034865555087694973870066283044130553933233384715806922942890802900503263131280141541708713084251767264416095483273107268134751627093904312053967262233770680729115998803405243539205424932667379288479536890127151254201942753407165950274688020011990234261461908098577037271731077005242983155597633108280081326963422973285065330255847180793275386072373531198216844309202128649239066457287063655489047181384311108236867732138613743084678778481685143071734207040431041572024157828060691986648158704522684988772458248554496591304718618237594243009540390020204552119852043593138374582476975329393716205171360054702311281957105145574650198048521304439668847916400588605025485605398489330427147313836675652450946394896343868537797516554293549106396305154447923038677216422739338942548188101734479913117054009081862184511347369606802399253361590443437666815606583363002738601798882991715652674018152130288595790299486752780093755251816733181580832485849439194956430788420096139917041056799057549605780300342124192463475608055537473217451210936093593649927101581617755851746002660769364499691962800555268197628822404485216119270186983145726244753885055853655872120930312667810224322005740461677432840246008111274239696444674322519385405147418095521493031973439032394472463518251219404975053400581004378369672089857048896112731198427792429624755507091154431265142381134226274407622716903536083083040583138309824683387898409430859463614945395909766774582412786123416953057040700531720936679907488034712882515301227927366758979224862466386490289793217147942716951704872412209481524526315816413138571367718953963847043505323233578165997045916202962114845287581149224438026178583613473094747007588281189929210766344218451706775056708203603839181690420898005606307071407616308863064128571817678395154004732177817524033259014708064544783298475272597018719977708350545368191427679467521464021582793077420409979744414324977092765510098288880008878791028763917989348477701502112042054076101938420937127550991652087791390868059669949503694021179877575247714325351359861239540464601295572341162106374144870899176791996513210146554855225252275812182675792004598929412894111175911759196407943730539494022613592890982203938417757110872222841244193573585541601206209014653030788531402304241376601063978312881637244743074182273496493906469343900958462007809392300129505772024093079836398272474490470349907033826793266466161596363799978757939545889568179824498384806846627927219752247546825584533627217663400050576285065009040905521347772285596618017800730879703465970683685972933224213658312479713058205317305091018497129963503174106141746582511665923550281211794893670549564232893685233181837135599573193489685718321023422066545031919622053327858638919198583251806671943120426714553847334865181106883452968528390742804812850518076660760660039703811792466382081216685484280324640169951618409726071995322945461419516131473626725980581818371569147609764475563669949557065376009219385136040734856139993658242224526942493392502713564094526440418977512647874016788877362960138449200445652441781400770411872743697810092068219269408576658065911956333585315189268909706700004000390150457546546833082642843825386935120214180739745477484608179319531679817764152210103442819381384527247205078646287792411401407583206125071485275401982010446206258205423204338774372608910407213546839976230740372866510826682563534482573118690908011987144753628822463958401252672525620284907889722300829192723330081665761016694233601799945619281817702405320626176230894756338149888760283193891072930005453973644772605415081962270022374394550181598094616548825511174938519197132907705716051943930088652663316681431523212192215890730219667026839948198065689959308425674368870528337756413623849557821498634287696666134732521154102953414535451662824552611844902051124820209013659996692597596092559132225967409418349803703834000017159520839492199762062300266802563707944576525044292225107548938298574852045484968482249191383399072269502019718117496325097511636356946269794780176781099986578168410163996783433618400490587267014064445140908259719257977126162451065267554284480584756681275487256028700860370821229261496313699124479075531168612114666304210260480651585488679683778943609677896511011182812527753270875135343117513659883663151285484604139408934809826519123219203552121280344764416029070580470182398734341405979379037502505745318915130960400290765216477160973704301297482654251528580397003776126062663901080943835472419449545527616355784024860618602977579768701883324810790893288135648047961789172094379538186544050630686914870426301185398096449038512397897054020471434212274720768147012384444569035735155406144352570366304379236461468924870252086515700419056955359126486924104241444450342920780424458322473650367961975011590949018377456223577280161019723488894366591111683310204763521252920615780354733262190711969984507745887579726348225121011003951110747045905738987076135122909176628299393246968957885146022353912248534759903886385084423421990982683624468156612349260907407388771553917963233108015851926960111209954824704029053951723758915672645958546272117652729483243082672048146135944951790066572782127482784911996027331127061910223213268034878912870581813599956772439474686983211822210469301896531702759435624876354159344955263256947890571940403332765863917922260127695971201477549257784375645727371951356372141340112395870912807848183234925425356782510717057171566313951741511514255648773288701853913700143371725159010120625983818451843021152315311004428313194217385221494808434907077992960018073310873615502587287013256409731334500264593755850538579851448629169092045261513363992006076719809891344659594439805284845293670648524552396454983751460289037661850616795589235346639648789852692350445390186650827982007947364310014605577765796423535001241865080130019883219922485853157685149480423326937193317772852759096754377831346724830982632833156069713252952697899346276679326734801250021138918167010383274411857012769589774639106661173701101813778991328780299192343310973922857676013537445806370350926401535358745112587088498190750688452989939739205151105612214576822322235312175173083159681685571668236220611516052035212757129473052953138652646254038876242237800503653348805928478359991947612568980928200579157382305853697728422271486837182686063825376183577850480971764968625749752070166476519592018330122701795447179112962505580721861079894797816349396316676791928652248470396867217003175949409770373512445610981616007846939860733761632521408716379859028878551611069613575391616226821361675629848989031874135465364705480171192124350418378375128424347576474625164589006730324526608833556714816647701112792248563505675862892741854404257433311349505487942174348118906019431344638494475669508380978505568189745625594055853204480491622451687292856233759724713647786064991692180548235350840455450857174482979060340985081315975520790430549737729519457414558903394572554688810116009370864793857039138548067964432517735435443344050134413900107647023272353867648304078283002429355274123328679567224597241906614308700579151006803417453813447756332366894349772959318431192658864691749408881649328742618967945478376421274402509890322856317807527123099370647547136126262412431635932102369644429234236642868418508511781747081778065581270840620362817895016544554124986768339867804682359627328703967514786245430908015435173322152712386836201156271207420605888616359203922372378469826712927911081010164502360286393341630754686624422459422900665408855977290643814897350493544435321891431907929327217219692905816652029372131823186686157427687243169612666445519320252736419301310353242061595948657335456058607820196627882518811039213891982546875614117699248373295882635254793813867811518249706148568458308039212777267294408763228562900198222088526183198519557111764461794875074602850965986244206107435244778736191309697432408457438189559787397130483284373104949478267357548425406176453170821667294100120407553045250923627461384732669287062277969014293348042918438904918092500817598605882610173490845837823480711721586021945710697296645140664948377116279497076241942885389609926887743736800668073148240256427472889541366555246012884084167069488772067443951947274675474179535102938502943406157780394085496661828762910223725522658461120085277938385861493230296919907687721715483649140654733849408245368741165173112532977210861845065781192068607955800108204866800278125880734499263736182263168166789107493003815726228321987400061906524572396167652052138837451034946870555395391847629480404986424155645221945359875814963712813727634703940853936430101630920800715280152569157625596941750114599501927828732530056983491512682184534051415295346707243963760443064877805965036230678235709382501447821980141394376990480060843096274393520829421851808753595258350968446792366810328267973180020564455905035914289251387757852423003393391322805615836446121888249984664161454795995442700904071194532210693742696722258534058596580810810784477103801824632812538815007911331736046934392626117216239763445755784919708102982301163492133267872897127276267412353855741971949161990976069356363192554902682194236113764773054703860976856602142256096723886385980401652366545736568111875980670389089636935810509959828671407705117490663784359949253039593913844350493627213952198660023194417276944749283888601440878225628882515020042446536257191896359628463379897404775206764711123142624334015552001633977384000542849384570236938235503865129713344932386194899118948094081258546030954790430404192670019672104264844578954182155489059307641546648182393984306329777377632887452504486217739776983133443815044886307437513085956216714650492782735273882923178523547883786641550253822099750787710586643703232022671341197675222418146086706342745440719574635925613166192776555473131920479404926328923948253282812881833751742416583600505368108012385032831180960535434420877607445070718441565649396157437957513798679919874513693908856611367673869143563235892858576312651141628532828681997896011948448883183070967036017546393145333803867122797675527004655828627072393815511117943548830595853319140925816753141213845031134252016964651460207207504167193414156485637473986903866267131076717394642402286114981170724559528601311277565620890837856369723721397062130909107485719628062238283301693403779085070507749728552452512839934766815159360710054602497636686538487178328291190681188902805151512261027175242340460128519241305852475147933379960448471321534109282211650405976026107333431187278018672056231693499242984760396246226088699341904233747121350841411765325347839959787428550062794703458470140073479463339897952824011040204514124648833147747455918507096308096510249073558898779296321006551756051029057328373603578201781904476767587571393992789709398167823852731289871573656010662884499516628392113929994332493770980772298958230291350626789663652440741370351216204606446446458747981935719332643888583119018189647048041320036023648420889601144246130234970064853069856036062369714629699746547770445752584323955966935982715363508074958893284055582268760444998003911928260607388068924157229118547615409665248525554824769563398025344833111469302667230772409693273233243186582679730108531446378803805545859567373251620197342329423171698807247950152349012736115685391679857525376651458516063037002289531698645329367671857892826057190288419050596036378356383141758956691324638353258956974738253507445512582689862292815886654458145780128152968494251130939767205023152684187476528079970546204590781653997922054518773350584841847326198550694371957649876270121094888411324629320263039336392309152634795873076429456637387685218193625758472426057976458078678695092649216505930657697920456357820288425932379353656158290177729181572617943170947631088757281295410213160834705284031869246097576185907000389811363972224543788681553347354883736375240864291039246571443530679695471589734574094099352228572714231429580296816862331037259289075854245788939623083472998597883264127140181799221493074874907855746636180223074773568924643475689334923549182858721924762773280419361698747409787174694742129671218755848420557617699739501211056954845605921979179890185699302129356074885101474274219141539088512466588455638769113716576930278022294707877790613420521483412947204914054344517621561128016970481765771739972438289858312135116092695664574293988723303789494093429222988850959436339731910302887703160865209883905284899955160451195704523689609078167516783164447503806890938390991787072191296919845176303739007270370476179191501485177793748314355020307927546825900508481395103111599376559226807091877735858437316891338950692057863089786983198495146348971163266969504826108815258929040694207994701922439964607740532668227408671091612646549686255555522094605537448807463296381423988185641167179647077112249762657260830575967853667075318262958207197649783495617875141554711393631792098515389578248963334056255318408290794950705197265060870510984137155063739825088628878678669653605484678278112044978406550078903255625075638032517884383489803562644272626902470040713590308439354906164419193887371541177676733215773258409675496488734416314752960194990050180803544469502483592283913341895198390533980649752114664598304970881206977154982905304750451987467770216249276175987658255882072969794527753818832811911419060041255812420298244209491914147430514851705930100701688576623875360147691599162321786109794466397274531993590052460599018111661872710493377204509277723267242932123736249183032190107281232105528841165915726162173410331842228972863191689430851889010785007979115335090943323913602893359144670316659382708551222753215028511079280894086586177067327553172367046174013602349249734445789032508355628531607714523728965784422847168258730532253359359016271639640733681231640667262430407212910067091359345759053327957615709976276373560803744214260453670833873749666470498824472591520233229275251365535234367399906775964238496597608748381987788682535632790823379904182988027614076121009694299423627867556224174922353458608184180664849541744819696369218049747134469244251602599932331771194588534222362108251250788573888314477265132921624909028010200204880388110891721431220775218671323449240192198825855783055631238259588060011745628192988868025510532417037253423584976830493249094909395220762642927547862387302416884081435312041033579366733777133558688938467318817652882730333011966633015154300355691746528094235963729462410112787206940645019871277810143567678108382838941555449210840809723953724869181103118186942141339849557857191485598907388897331295156796556390354744169764717146900711303699001435915587958528519083461658652768968817991634264555040157055097152677486783385963555887573549906873125163212208463510637900546756202296162805577462196359098299940542745437251553937555631678943734367158719479086367517000455939545111127083394622777034983188788582640347969316573805948120686528119326628674264579527018243756282461521684970531470682851886807839304408644540872916364550993472159564324819264158088645190808599216476414973155137646464756433976669415954690978697369439192558410264818131999292081781227391865643052426681718350732577581845459589543607224302057597401898497650326468869726549825788894900373144317198216020504604344767915272652038026103618480916735825408886347915613614431832638616854141080143796181335183389675707658283370804889072314661719970521233567893313024921509092150200070589216833538214947091877536942083167385184123276816263734422063038023704179934746807250513290341878796281613941257338330591219173688951296556486648723781055821410576532647597329858305686739572799359987732117545379169193684259278836531627867329839958924284812962805034851767729438551684706557302957409361540591366526522316996685031509405405978632903127691253589982715488491579948584711921346152890886504134960282805951637630851086848247243984024390082990763301776600223716100762008727366857752457949081634745940143339123251280272482016240069360814090388453818949183112671686188822473658154191619980740215201191857318634654156151588638094783185112083528328330193536004446788997900351666499257014761539810307806508521624298177089149353838966050649230864848599241080655890469256469473302841977122977700980354829757998088194646896128418188779934023086052272543609999128757552351753997116857460531201114905432920648454673285618763502424662349199235850722214731211804036735884508966961409039410646181723783862361248437269520129568074318399135722630644082115047103185413939423152983257356526256177209985295893298315240914792314396514777837033971344438758228107684487269678558358712709426144147580556664511945653658512251181185913207595418628603986152781893778018035931786955491134527560515393043300962359749793833965166869300800192788438143623682474444737464778437517909587717257587216500222712959360439320005617132873579935153617760965087340469778435583607471953503827794195953772025560634050271098401722641342532228156440387219817306465716188501132464253941907247859235216046811335032102373876608816656153439260101105896599719294541780680458622059944339941821199875407748708223532971239233465788660355046016969132853127970428591955100832794103266241734574074703859298734596266888379329820195473819234913579989726318572075115632948662816090238417389512300892797605564791007189985005908656105194577391847068147979354977998107519872492907667675809054156349978894866474010348977508868673586757962116954198981622146965628642614535258647614998064439254643591034716383439470166389485473332945988082274945276546518823219521315979426230030281616422268497453879435603630250136587943339388339206896310996032183197376897592070710439855413715564856222435335040194902379567533434378711134067585169651312102247933492408889910377129948337745792853361726702955025409555465472664498945238179311432154969113404197221773383292431338482928885071191099308683165119614219351836468413433791552537055818587307370346619483124435335500873130275283824383009647528082052138134692209495482363544870780522403542281779567143695926935859972194562768466154473977928718119696034860224973733846941106159356405823639796980070943683712362041925270547696337689188311905499931077038314781826844865343113594900879074258408381396811217675923593722036606375533709434889580244846090542387231387321717098028613224131306881055450894894096532985641997988505301980475439170817886743032730585896453641987484833315214508523137466030169737849816984046558056351923714475860110592466517955952842846495786633830459175312491296098087784551334730593976758031672774844182736393799412280031221272762478814923915586689711575541375356527582469918047525342031621301226578617918870307456465686678676501391151691412297664527712713604704921227084542486473539369583669527021857178019110482367066077681983708318045874213645445396187668274646540624341551372190363457118850309107654498839463036364737087919558839621923350744533679696728305465479932175655709223470030997106217208697267442983547817680160081825384014338681219370443982251954794866103944714965675558352572612110881668241869199949012914747711688665881781295817902370668701884801486652927615839553200885670057929027383041281114827410475835757423312730053869093542889480996355653302216076009607910978205057980680667408363501858261549970923393635772528295667373320550842594780406522106148702150739605628162661808055013936925303935774384824741123542462899236662069236805223727096326709493238211621331668446735046698582247171227817961722611084251652989797055392673393689306863052088012283030480929506537423672324671028777657434309424768177080659230444212372107980015913184320296925803057467691812986827038758415180231795876242387922485720324420155075512233303942949844111911071209123663573510676538474822475411968567887628239816776230671383062214014953205182381031010981224208253405987373879647615429710723002010603348088250487087505717278542416126801229175410097024882725627183378158674958585036624386102392421383278501150468007987771599904952308306916285590961313013685158677914846698825396138763578169380120427958053571377231162434826815062075031114000678148899133431257109482963123189749895565080540197682687812061543143585612707092197091202437890598919644869178815639391278424717054155377244147415422635573212309424620129800638800232761823352962711970832810153579825591811077661828724968645831014488092741413534291591779222200191369205768554057892132826565786117549026884003885238348050759503478994796490771599904170270384314652964878468529196814606914077379306291080364925177630718286562294468220254831749539129282344147318176126696997790941236367764555341363059131217413403821724273012372869513241793369597965925408113346974225007122375581193010244274159307815133419958391935065956053573822082726412151298894340220322247214101767986299717419940496489337142279947375142295415064171094120278519897579861005685061814194488748688386165608327729916394155066810200577274020953051644322434832308452610177154785144755002845523949226931506959915692540205121627651890579237039658802572078718711162726742638961092870955764340017968616609603124623165327549496815379071926558708120696394956016109714151500252048471958342273623810029116203695739122112538701708298638231626017264173844704855778851504211733889031855450330931134602216725893247322391160741302953761549752084385022432060863513511221845609864314533292992343030714377064998598193483959933676100080290053275922189384126013093105034081749030954068200328617584108381359029528550654988691936079965488507056443934516301300010431802751301289410343586898840935670929768188995629808233624292821142470527294313364394032927136582092682155144485454872370271410280344312783643837512968558872040729678646862838069318977907957502075318213359314598441478324463667839244311061902248593192915310766226101273550908810451597141244739340122249353170959560610690862360116106651885932600337341570913973637034508697406473176363463573103011830153150666744564566058688523627480189459123018232074812193290111592289231320851317834557497032953692788294234756227026806764755991031998006690773302867206865968215227640607308232355213872413395081452645526315555575517359352791494139479405176587813408583407205958741915247232860930231848471389759602415320353531884573860590225865489820552634437665892295769401992791772660917853469044291120755499387849315816035020577005972997744180816730301670317709269613178957514523455331039108428780131130214865542710446127020113760555960519685513304510454459622112492336019522671048429995317633889202569816099370321402912748700727288819452223216050404165981076904701402210238522757790031439999446983838309340429060844207557859862852424994487754394496708077955727467010277634897991420646467266407908016539288439629733333309121860104801722744676613230221756163896502684841951002776563605072958514561949028377383597470317452602664515159777685806890599333884054781133703488144038534910597486977559171661712631188053191335454064939635539161569600061807773153541308766009669356416816137958260786911269045119918587294020384437289326937519054534224721787205488706924590046542301923795771517184513874943889249477280496061579229909766013657462871133127442340130006356256754619361726783538047330211174303687714896863309749176211186492526984266204412114603506830355150424674466975799394219895158708799478052305942124703669449817226313317867897857587770017476949993403271199759999999112564735291046222177910426858661834073456954477403497390371122358378196376143966616659032880188307366192493799104375120102491654325817992403653595005078540157375040059166460843648425510499528696983511894473458805363009691505190944814972204689852580014848116132883535414134943813287930951248962062169107571251870583710409035809868125574517982950253167377097705215770191126467462423065995820146267276420155176899650144111482939477416519171935173136321070633548166074976125358184734854182238737922030852029883637228222386766196153963412636152908797470715035879259885320843971501872768599641556988205119256521889561701977594242234238603477237163295041113428130704202263676978444632870324217552271000135331001708057633729058477926533356745808395430441033091320455597816936601340064253933023456632989116927932023041172533699656864608710304047716405811480063501759466602297586651623207918567158468195634855153721753572201942635786872165111631531306935970216589271993250263228782599712727237521070822392135476365720380221567936828154554452422977350128154189892992371761471127953314348817945399247992613987599614956158887453690968501264554867301954012331538626369741153296468836534660413275937643312964259038536849373843813584578665355869819125071969186576626129710677607959971588847536490305357733387025622360125031080675024913552824906253084000082155038413323083960572660059010788451118724435869118545237390212308078721066478345441170732428374151228713579922694912938947677779936569267355499447686557477860575583887335423519486277108512749318172071097164794765945153601514969914951734063884170194073115441811156360118351894268672784996091974973610335595646689986393643750421009290674614942765721395308632088980331878205017200158758604967703390854531684864185699347426169699820142502117729681174687854438912480315409524040046769089438461386885081008947170248374077101848110473084679049116202752395903534553285088608663736667995490055094966546707589974955256522466097951030243007730230823711232845763526915648045729193285657234131130142594768080186725147403367229080107121227186865602591844073748087035209259244095027068734684593593323872047257333204066858301351732870487475874639120581600404396398152390795824239660323638612788731134317970612062688129935028228110324784239478696405492563136316248365665333351528312133724126861407876119897516669822650602719651182143938525789776263008805053497370905454522658458941714805659583316736873595913423306790878162891919952972077434781072849946693224337853724302495756405506570948518073451453888746365559300915952981024645643054710324400057091671873312273722590081786246005243344631089442040662428689570805490230447011153445025393354856419652201907767358832887178176766846270552561443270926500175743465297037383413841912686711830782419205723046215534108268759178653911988729261831965666103389110378385880393079661254155873304975657864349313396630219279051073234572336128430035467850761754799358432802789539487129195278582734003249986692453638714842156853814397016661100605388624222921842442065817564456853527111012312640958567318083322154270790647649937092443091085751301128366930418233317088992398380539504660239767846683554897454572624965453285576978282743702264468479675384196781420565664775270727491117557314170402133461501013088649737753857205852785708900750357771031647519629456927683154445906254938224874814070148474138155535522334742390932005006371923119531586620976705379002921160145338831054013566276845289389908643630995398009340201750676688640926863476756929270628560988242061943527326585707105710313544237741629049057441827265104560318770399601003917412306449889531658719179067151184675141289569042073819552071737188440885823529413783776572026795274802784705461856539454073594152558975931781591096309013118473618649042734905895187398176022437546933131159635439410840769830431030018803585390829155957356160651939425027679766334918088446217150820552184969907361308642301371630794724676425026423992109353542290476293340720580537609102800794178934936651243125906181983448838791230875999920207548560439888214395187108935191037549416080959795093527166502125831176527642068093349784965583369029628589228483736478500707655724986566855506283298769965624304943117799750806912387011143946570103497202100585265752036320958478371316961195601374608641778428590352398960344840877360912366680263826639922806893094293142284052641488074068958338349629709979567117323161941622856678401427148726146827919178472829736725923335200082606172745086070379171198892842429033821461611324844689859089653900819769684958483555158294633247606135195849709885279365310807549473352166952597787864871425130826575046745244510694027979824347525028324578502329964427789430595400298037437364511525722484491495699576298007309407209254308646475180246513153348572330765315635631026588634623462591182880818633651589410646563579946331709842930013069724352677618854250826312155813770323125858393152929859181681296679662035032536617466668125034543028333150359407856312743716081090999864166761638028675612540444155855601079390148483361170612974442979323287541333234703324532929451178620564297773410426493978975821836139004523627137789548711912259769141044120701308892926469016571805532624895224716570046230548166362037201696091592943510021000032839393883284327110617477932707675572905131557858051647991205952169201432838929043623393638278420563385825374813965086878915089644871148821028396323707627204436786881613289924634651075049711577553493794063238953689453134722146533320088750638953382625943390703536907285949805188026507332496327013691050007695213507010875389560273525493804840240057741757036403384837007271245254764360059740513566023238566838271011243121239777720751427650351138022519116458262822242941614565498615215304781126947602620342809048670896638529090744382963596950403936800342372766915531509478609081944029715089736218145868477811029142178142403085108533073659786705888492361131511693574845856782371194619891291706823169252274573161719578054105515188330875093873964391371475558977076973348969606555768562576697789456812627839780855704534306150369689489068927620924725883818376724596354077945950039163183499533149565631448418926876470127679490010624284748775451917020614627725774631608281309294612324263073048698854124563400496773779745673619666492878655140805161468492166112422329684115957445423274461981555171724781405077200589576150671004281267232301788657424571526865740721105282797370224716565708178095004907620538934076231187284391950068640643120723203103248243716423786985709876612651091691239838842678707250195694702884939169885333885928138650857383889661370375344164195270129630131414840565887013136695481230907236955190825217625150221819190849935434084632729328063847748961753157913225848053850434798605446007152044190172879296538389360057597561616690685968638536322466939520710853542955188340814291355343957956323652643637064970278114776174665740329913827598926985393135277966334818298084603619250814268801200366129813547275789393535612674949547138684871442055493104432422271717363440995545003354258191664404497385296094845731489337302815794332488475717091287263065751080529242430260759401388072388138823349024998326894632643475825816069575697235188833352451780447136679869571722291165937519744778230823443326169754753395127296426349986754134933450078317595819555143799054919285919986860598189645325535848938532370017548072189568549034818537667013885754482217876049527823387475722667309830767175164243701890846453439089236252027338627880071769712102442165367043358918541360788728606849279135194906166773081813541487440371862281459031359586186997568719163774573016860784801097773853855194431514928690788541732573064716245463406473143964726121777450442709732334161085834315023907506679797531648570054352030330379116961006283238231510210403891574725499327605739165152312892821932024674816493175523866518039228816881872176645408184504488166138428888068933933883130596468456491874840881146670567248954950203260162743551542171124044044324006507461335856191184209601760829960909947864489509930773863357630690119614927706818112638893636946942628708347787729964716824377872666925097793138591823883979856252182185652291482250076786097743072012374086692026219997277717471501183719740765739635937313595781432345042711549729402540005789696782283556498411674470072882654037884413038605480948443374941470536039186784083481627975639084078998472822635070153684285883553987204071874877774199864092446305809320314614513633782821401433774722907172069135242558878895661649812082764904833579235154839832305956403775110900222937244060754384584656229978855583532555123220904503137882242455218817216164965527795142421829709108186989277966156451742477143501301738652524234978494383307824847791803575466402968563861706775693495878560523451366684678513486295037346378060726810228588025484134692214821792486984827055027361987565798893307987415294043952322715750116553929006542093390794747033820598235814602905981010805428011777856949630022151245277276991735695185418061968469675502750800477067251960736133972973519388381346911184818911093509123713679801472668146721210857275191601278656330289837816416049843591091203014169926301783249653699346875149249638740997319598554917903093534780036422345296511400470595715049543859722134400052395573591915002522018430632959150747105061889374528826486600967339806225791739356598855187077940606923596185980653373377742036383332831054207363241805918227495314562639937466838380684350432368706195753735510410441597131487779573036461217350468322557327690809081228392285385364845105090068341607604828872861411409785363587231208600932924114884964851168503333963874795899022188922872039543925034449781579043461590436632123051304320882297189013739419049275628395689155938886480156410965174430939288081686524945656377833954683040673693510315885041705738006755202022749631904334384197953053858538012275857223528193191357902151125765094804638411100724708287347604650813197946229325184876968000140208472739434269196962249220694429092840894991595109361293939818648945437199198117242940701624367682331804754686345806493513736060782449722996341693905867489008027376965957019697733352472154629871830271285197529235131533229456047678275174905674579514736910739160381843999642890690716865601958157846972177322759773051342274884201301599875640060901949038109681068581173255557337871631766661516922824976439115127360229804093442317166583462724612598867964428745540906311431247895725183470819703114069584277809107645319291751365480799857945550398783264844119907847579756307917653327482774167158890143916432658208539210908436262866898444023384005192797500497570830048207534049482675944292938718036984862311838918173662020374121546843566494688240357332938096432783807642879463088517101623311745213996585013204185933677497549642856359396371484807378870693408437605757460382159600017887192119617837292200308144646224332777639920129527307382857273212935892044825951540472997621721083493376699625008324863856670606239895388466063502156450850275015711876150355725631630383034882043299685719601307314391186568931177941744819230688991617107280714524661925988139092199660953145553319196450374298570281201859232930363124407724114870321787108511798914065559227856938072340685245078860187315839363547922812308173979446008912813649371925060732144521910041539883849768960379039731459418808288868279211437994700018928261517287681902103912233467528952360487912138149243705433193437721127822923294119482940646410490419490806005793815539535675246838212397106745404433883740276350503115983458982547889860552228007605588601570801687039443514294734985276965300084132964601030303441308109713163065044843089102017429381137243665697127772377814566126204290470143584614930294180248954319303867594487431587891735904331302806486056919090417587429975430088850230336477532955485607861473021745266625808683496060336935125477748076627224562433008398590859762154649552625696625171658068290213403533419092907652677429064241148432860667174244570388679588718860956343167154211367049513081580431334988606514448798092363790554308711786777027512333190704414581839558473562998507034362683712257139608573528594539137180269190175289735458135614316589928871174791172142521896850324282452330087968525037625426327609393718650477693801592696904041427821788197062969963297025951903326418187717044612109770912566030476398443687982298358887639137202584241629834204879640165022482243282744399399373043824898088531670671816747885158080795679338598332904347364715101594803805539936127048775065910149549178805629228091671606968151374781515519317382445439194746104688750944907347902156599767849931472797815323925159088299440330678637208376270929327564275482006935293539919275158481901240123292361758439686918273105760132475845250951702187747217524364022657190051825473537427981268820284843378713165376104005592125831714873958873282469462544565552802208721190664877578487483637785385884977551970071462386273235746776128349722979939945291749942795301077218404910376937430571494447326221778998087408948602520127127846972349524367094438275502446354259188015652598526744841923646731142752333863222659284588941514077960972369310870952121949406364173543370628949859858200678349260171603986958488626236915664685364972427774986315557770045587722282419953777411851876464550488433179363912232887598595575194678398753997966559651602343136894500165415602650469925025387856222857257538871128031908803927550574413243251851003068660446812263918713414527328531971784866812652820153214783579369188396195502945310339546922422442751123844796561165407174061473119274575356556470674027813619645599703556375916001656291922967917340504555605390424455305972227069934915432771569130920611955775656727181782450641688250958348686253738708030441043651401846307246712588193670293533684304663564486898816762976442474776143474088500600933280710677080232598604435840315430242470772936567880290330025204238702755579999731617477065189708136261043265228968714029608924850149782977201139385838319609186099095944498482668153444665296305139539027698540073916062196966012860690393197113366878650474197394162165309764039036933526748414216452065601764246982509649811822969230520094901087256411075899604467832783899294041962381347289471390462664458836806487697017773287040962029228290536754990547175249094209671593409360604662285766228933121375165406852623663812987500828953029363530848076103664088374479778169515588622838203059082713791147333072965578837731126713375507591806397086597197056446608550782695217691150266924887411003825053569648445859507097872979748439357995840273978170332322214922537266458208832703105282368873343883069886010834804601060282721562420676895800368516567878812858811031938450662417018518067038358612887558460449430883719722391818397135793942925475172766335171129734839042027933365188751768636667470245150497260605175710911469226844797712049377629238572144481915784951737406324572628591860367017977512214720146323347729982614293056960100831610403226612214329056250625539439815849312696784183427956137027718682703590891314331528182498111353831712352161985020672553823753519698882175308390998394216815756724310555959173218773797101311805472682464020279887600614847042052293366781215872182652312756163048669422307546378885680934852824441042343600885365808064410353115916121137340994600579813248582521682656912507360504091651981332794236655423304380149987141216347062368679578386604524323010091718930830404051661792886143580757022325800574696447229129010627698876828659384389498891800103851380967052348964509515022965136267555965462181976296117672324756232647707225894850080271297086364915928527838613483451647239822227880984496266779541659611857934355559015900226275949127114921925736513220156711634602947504774915205206991666355611962503114663797297246970976080224519273156224538544846468178860098146853454959619239604695840346408277318309153194653739238951201460991327130368782043894934253250176191129174906678969839346449486992575891357021220429298650896816189961291600116319071197102059438010462014372292627234586332975266471368893336504266951252951680983539812401680489413946519527626630977094485616246101681785658550509965501335454514993408647248491050862947060538192573222442537882507619241153997420459000873262860173403291344013122947344034598267220488568857007083353571046407454140973625239306557490538536114021520214549717690752291866098654614450225135999317893934134791124453716564113667209803423729909706635120728602452752224674775222868062509478560222854069678484263972097938399029634741917458754993039434725913861560923291618715740127507893484365873595353944366625312999212529608374832801875219208285807723769566596868986062307179907326683207224233975344320779033689239144938303156260417217987260318467350899362488471228582078842903639494829896271731546213539633437776921120053917313806013372725368150049032803431100109250392289600618443418717335144348983206843643637006149338779123089120378487762375372780122153285766350557355079659856111809113846890507084349859367237999687454190380589933395326960221067994138156940707143499327732999322615500175776114613433046905820996719613281341134837707510845162295516743427776152892453342374933906839122557483200302196904158213924980162682991142856517709184627692988545559391670237951090323583746042007498089138287132333517661797521276347213506795470630097853980449275112315605765385187794281994950187831364062740222131873491082982802990119739460245116935214528521228788678495798669733108286172738091520860192562129900630668870219798819709219906387945241364107275302611029258549882041569542434267771495169308913235476353776416523377438183765670809844053786680326332224655095953843033568804945026853775165048915885283992234754708674903441501697818610594237385695041634538947689922145657590284768821755541679700517309350569502644579760352403766031482766417757094793960008642986313654233626729996774917757708401574748609788011470418331132164029924930515105460470987522573734711871889166768359745332619310976604211550282404832671570507071852183043615782760103399743629677594355255338376206218284651308251427142481452357586739591559602828355355153608112097817075866758053220769185205188009212125142507564436199830422649824045062183180853511388427491517747786365869557931310221987129501207850355760053770520523541205851520219223798234919799964266600163177797181014076585980456593970790809549628347101149048318914292203559172505375139531093818345589616193249935249823086593235344099101000298884067203220992010326391403386755017280162843331826065032400270218451116783519058388971471439902518022209182917891519660273367127396441433736420016841428122958417722742687163502094322457857776686850924365076522338932261707246608715075584965043934815649051081219865671391653057861130309123913058841587064275550409244562598238745929186764409414865866605672900926074060082956681131320673420612893447424207838088823536137191790549230892273399827762828628885367162246365745311259823062446951889766381089959175163262234842620044846663868733389050508667303364789587882901230252562295779067145829548647310087362184927131324183706966241310990936659654618368597211553365064844296267120479851966730934360852771972883536571759776912429676422313864477346280690623023932825091657479285183176427125628041175335812791725383636713928272997732933673587296027666407443563229314410051246701040691531959983013752888327030072385523320738237111007546159143170123719798720895354305923182821517526057555791018273350808773541503515251299751335470067540823419305193388686238900627091015251486267950116577731739222100193334882520813269869552231716921385470645611359693779566274798924099555463103311586821664647639243272298704879029563637233737079561776261522277730597293581985034736884473573040811366553767847027799835413306051031569888925334021533272834987986041774267873000934472614833215393954083781996295378349250448881273376864851255903989060997940952663639561966826750283023624224425958070486761842428044817723604124614107532401044947749961641678672733835610553542376241634195851922893316425312241198555591442619870446438489984763798422863985038860159722025398818290908940651984224401813322701171984976863549646457037667326411563925782214614195160938903232930591598694016872488996280852597358622473125980217836595907666134542548974560696321816276687279317813228469582787275695089119561877429434560993254808423466968169629250464417811557132945938434100999976675701740182195788894796693756639334930759743833660219409236611657430491626554364762224716522970836084662653665312086676992190884229337527616301585199760480257094739360501154964458265426953252909512426123104368511757519990759254070025380645483137388657208928225266355825139198305257724280633639066211436912161271771385252307477449243833056503817284141299271391364576278941514888437645959346003582874189819502532764330136286395398849344267756931382183594240223513467513856570072195676463394005631854372364034443644460265282849245874173927612645503560456433548877844043991409748394675668922321109790118549425294247676103690741556767861566519884072509081030535366360918495566605196111873082190185966613057368202393102383062575176109686941351550316980704233449933050297064888975378512161167667404338315753568858754312140923810210627188462961758466934751544609451276174348582216247666394524827315280324900012526520587420311034367800295733435525060081172541602198883842976585424254803657123637873659146955917257559830899898339895382156250480591947201290242394351595970167970973306311754368809417869934831370356556859803260413105753537518992910874676639333620385048796060603712046438433375160614391148730979929269400266276705143485442783654744475019888314580554526814234900223954927382143655340409761457300313552199139418638497842495220773053741918216631039020725951792160664665510345144871649179328349661480546587641295213635085996883245669429108782218720835342666169970111786139739434317586283746956203331813409247958641275812519456875277056299499081204096773758328426433088446348281440129160220612639455999892215603656746503318661659226963861243002374250337098897335955021092595631155926768931877017649706448443799120373735775004193646028592377959725373818366532909753601198795340945419812865430409493010686255668464850016572563553493851428189650901821132544302468316240373090332023634067182708364883073281064435243779534918998719793371908247799059403979656924361831690311310230391373321527112032454261751481078136747823994972834545207632960267473590660622934417901519380263130851860288475324093776686547351604641924174657757965742295671808778608797168336519784624777213984644471953424507060542326677198641949870898814428341074436848641298892255989786579232161819285520113749253106446680810093903352472776249304458698958209410425008440643488553117562201487271975535373085290077381428930833171998020342067360790200300665732677353777861751986861633359383971277328620898947115389813294756407636225483839082859713480617054055310050461674082839288502618850309383451151886123541232930987850948328075477122510719539410705521981836058364499408596073020711734172170464993765863663561135356601395314575432018744091983909856756622402143563163887163103657375764421311590110743326950447024014715989125582217680786536880216469427238151707325418150539860418577545358846895725053816868265744321326944502979324266385298015625702163582260308321650085092138839246012936721498757597759233959317059849840047057062211089110445219283033068029518051250742746614572602696986280009902513930413036553437633573604309318201179321442754607258437278205787999778782840311265641443145447662058800677853760704357737183647849125102630707218691390082328424306103149109896657610091748851086243156286048125614504111315483839053215319702665130473440246142400326502219738331486719801409695044404610893802263237526970953885313383652436885084229556050286826802351230119727448474017916573342701831674957344058431253930526518937339733844194723037287166529943034789436770370417670942661318927505868716573630744855290555776582090925471455736740951999281794560301888207744312902851848944512434905022079401077621706251762590752442817161865350019922747055167671137887038332612787292814045997466964040291113562594198176416520429057232779904003274710749562702686398323192756001422076549043640749119854740567863186333377715682828112194736062632406047191860252165945225940319885354194560756523102811699590743664260073938155007995819880787086326401802790587509301730829168566471362368763173953640459858754152279454626906856190267675518576697911259043310261488972347250289987591880151178774546943540707784054064396427761977971782970088627849442515459647404155011210084349323829418603762893032493330780194387981361663842246043047484203271708400668128204045025210355600573108490858372721191085144590157257423869140320031921881101420263211072037053985693943971857840482974338027856767193133641363768514755537257490208951369806300594450870677572668958048063688096171677521098745250148089133493758597370135527362166470228929702936444794693741686273865907011851713152598646463380130212753475670035069865810586510255810539853518234815605229286535147454522007051368553748334133511694538524847934973049612072850251347705251534830554493414160178313446787894610765791944899550791949369425875383711796599707339150815801887193760923337557286138081832756948795330687425390948490556774722948853338823860793294805396110729860764382440248092522169290750322667192212094831394190014783703510073942434898208103541264333414256006015192578325184239200464790392830347353585995523789322364591022988201880516974458135859205118665718579986631624341239982918229037403313574017093137382416911471725190664218905656785763474726047229098521007230642819174763857426703249410490307397290245519945080516848894807296030456589274593891931394974781192208123442079293620817453010097904187086245547670377605585652690090425528660138351329462716671082823193311158748716851857051708262474257053668794773041268864782010141417211747394626614127380199601505191579563394479151995875153785143427635728503439691442271454778570117088005354211280343492302676326025014574126849355841132480310407333417463715132579489756591061439434753071839797291200886923932705098915751211127848554244559215414963537748429846496104995197339002042131027413792746953085821658540006763367304301183790575695785194232158207162151530551117969179476856138193670691761271656890029066670952112446862889059584149744714519104053461062995583304353565315121695572480497912655320548799656015757836484991010087259022485482176423879063773733357964557809156107554542456169233157635353727889735871924842984149175903397560728435846710294545429917584559981885906033983069110220919443524177887490658582766415196617053619251376599267679834832927668540922782486762449584707726587714513480214267029592516818078508799313731205900583740977337901405382693702112952959145091439484366484424878815524281296855336695755000057615660566310097262601008749374198618908898625014664212216692430262346072894842004862758276433044830415265345655763269088985301173387979857400329578234985471535392838252407500244517341520654727519546639558445737141416971940178249074654017163259575564514400077917503971481988160865518537553812384847586822236890685626032954019148852206959872086913540834378187552128496614483394976578554486865664515646360390766909014004022948533557901606571638452466589751221139205119424291639647728812492329250049979965536625825197195642758936955016124955654965850334213396513251587777314590994869323785921644614327354566589752800136976262635610015921911882585641232120947734476062342733276354363338374878868706138241907428604859105895588011701966922933784486725312074715265463630236788737579172609216535211449295561158686679802674896187873795388737481418249392056510598881003045568089649359026158995482791191114784746543978226154691375387996322994721076477687871299612346985691514067645355753824560667946691905213019532269510261671692320352055226418712370048467794519685416983672836619655482178561885705626630071700684770876073096576699480610384544778926821248256567857373491642513745545128741330829988403842720924600471074097183063176462269628430308942788658896378696046102669132165367049236234662420287261751550570345547274211007297557024487198681625742173538773309698648772754075538421630423638166349077706284053482832429937410517780308460569176535574907403380199072517598662186049368174386403306391451461742162646324725372601512593062810613097784709968073626886311136325590030025836556680148820934887119463318109398250962155975618763192796350943108638245440286123556725327927773058178296731127055358488730417516763948550360314871639494531111812558020622065296979046582584137418510651920559066290229797165236083655835313262422892075540309457909222395932848925512681749196022581628351199126791891310625869647916081259479810947931151824619255697552858503142181900148262794863939201117506373793617372102414842058311242852287033825432687098735650417015712633853763627771749337008086599095010885464312899794104169201264384828901123548407538939344718650094056306902657678745859151876848158845937011857382999127685438940565759303166475327078082158447581593016140310438870119937952462712698442016402032123704783845425787267482188006982306563958196134785923815708130098635863249489423816515649926814220259217635536330499645624586094491397606501238927884656613221437453827134487833952611663226901696674154219992493482921918881273245685640173870879880816741261209950822608943594099951051134148445894050155991112301775437200927440742336106930560124347062048834340984685682873432812030959198808104829834451752785352818004564470184560708544803001635000591850650795753260210102892503931573068610752470197942661419123034466718158631772479878731083051518564342909155215183856054387626854907659351393779800025329172446551233777530073778578282961927666589535009394530719648989040718362435667110081231157722013342093309406779011800317381289119233111493682824905958843679139840915084575714711654041542027228206935940394711961294242220702574632490176200774354584815933079680093913694859767511040500839713335317215606416700493965141950497885453902763378213767256888900534859627820798321750543406909318988245426478959711847888844806618600842548764679197778187411699402662184012209722627779569951508085705970149295748286314591364119973961207240111594881566883832292148207609852868436546770240224135847579808584244594254776072580879961129714642625511371097086061788738988312428512206032115089489451260547101114296183013949101780293770120140875952856355082334057283256459687139104606079212625654783990219767747321424882446552049759539630976620060668853834594846571319024022020255873305500422566501558492756463895870181720051367490074825805841711264123892327922033192381623529044191315884175691769387863868539241522169396584148883907341888873001640416318636982952602136209161919640875550852960586307347516239847226477840223889971071681849803778031417698642627934955308209524053016066074857121191792992190836636560388487244132885952385158914953443665047311001226827455383912698646349720633192826067261274648706550535813615374527499794041137178446922600024929057646021471371795063706214550236366321684851293214045558453630368583026354151170576149556571786224546920398272286112980801892894985793014561377782635731815482919812153578998070421997654515737667174600453034079270595325741956848491332208276524953084511559013236340756861770195858787296287912152166677443430013335168090115925290588809261106213068522908422107583994286639854625572855641050503305744799072701353841883805738037665785373371522715673318208512285602219310810352220120288260572214986213279549974575916149272049991615198241415214162831070459212506402749290884144712026470337227683374092774968947123138715813735027578904757563502319978366061035602182654072190739637616167464211789282542736819192374667658462234612382267068883546097446031622960128595171654164019238689027418132628453465124244512400391396880390202252402213197441767854234192471990979522406060538017754961962145996789961108243674463190541615884214137476180907157676501052339378836477722165048927249794641830331803271693527947563020712083234428065593149833461689210998011368312670279107742985030509468947381448579516237998172552455841271771221859821312343248765577050212385442363297067549381648164885526024859278255717032728127859165233706029213878836410260523148822090703642216681799672788030361146161254559482221574693396391928898815430160095443049583893491632313781072908503419444272318090219538876335819263375141291884362729748805683035843050808097812239832871928450080169072141220377854825816209757918694514145722417446002415344290408468143486626036575776851069185306559450011818376511599303904108555351327944425998001332288629278629803298342366164332659467945427132961602735588852578695006204898741011556621805651933793304916788516654478255393801291387012277819029096774167110813946637991294063442723330268828161178004851606438401185361006115326115857258802816057919971105215185564848542408225566553952751759511666276636268645356219637686400136130724012241919080442119042107412136736535426897425489082991140688080350098512819923660248498949764502408090642069057775213906034224730951217597169218834460662699140751525073443487710556644189143893231459836823286246093167721397268642026566883601264771191436459620255709862537487631858401758248798640070426351182479383919240753892095860306678330960970033511751054435376038784556744794376231290878393095891397237115332404169775349414797258611431779413069534750657279236922618687849002942617997296649150151050555115506747570220407506958956869402100392179088270665460663637644695219599946696211901120077025554508996735985665608708948731857134542114991928856417708037011437596476129436461163819630419902209916594280768542439928218407075509301160446848104354674385594247985144746260761787683822533765125807725356336862531468569333745181953011169786960700285494713434444534398202063059719658641453088014819580629167202207801290221893297499129309615263474377450543480345463517958773352274611583052084903162579498774701772884941270844831126363489045785230116220984770089334038261007994185238831904178492996222308170513727413226008865384825201476640024812736803580828419791717685565869709201696507874733234495727800167166639992585105188973816070726717008240034157330119431521150107165797981180589174679188359407650471620841205139378028323928626036804106160536463222872136215829901635697415276172575584466900512906301086969809031857809864664464819122909508365981010104876812894152342486681370031098113381140693846333146084372505381167832158394236981221466316603080047764339838740100085767515076732265885010248215017344053095871549246250378838803636644355790116728170363744851493561475605108059487393300765544670566537243843332269631175249792085143178992699111647557711343100278232923803264741030854129786337720586249047048006737567931941390310658215881015373717414157895949922138267103472504054006507287596598866467578681855084459883860573567108580300688320962681716344120776703005009769219380596664917255854700258155061677921113308648954270612721357407391013888396117560996303713830845810068337469170773566639610416850898485710993281428542998901536372036129602897806919065945622660687156453747300436438537178214251044663096718761320510200121896980630865759171793895239053405818262252633000680649387131469530300055246232440147480924133345821905055337293144953510990747526722617290233313123826923450917049784526472036422658517253656373591958503996564429381816804601019527073305757514176441996199525583006443283991888109713176829186738747545912982218338416417733477087727635797473102293583812618018172195451761061137059069707125045661729357427557527098838561130247675870565845269822485511222745203850758635751025896396053367802725383172370437105160568393667655389102937414647130138718037144057454648716893616902060093438407674136700862935703595891408659142165945096543877793821909341312562259324802241558226946434359738950084122839652444284261042133750444233456063381899768437108361693416246975913730119849186462553683997756054068592137007521950583408846572944951293445601626556777583066306674302846984692647033393865040821779288985478255806437015529956956631706623860205046042484854082159886843609325018273182670562287680238595856384689712033281636392981695193496397895085400174246150943545570921104350280652481132826900855205478966352062610983856278448493127257826829499661589687763402412038207634632300807468426951261572957703315233543695602428573528496726761365871624691953793410626071169327400558508028986209997755370714180893595715195374195905175507466750702753104192912151161601344805704805791032259038416697187612090976955828873742316230640581807529584461881499213298370062284724457394719006328367460621933206938593750737020331012567745429278959389946159945818332969640499213591467049787155835292816535760003663329454433459671121291084460055519659955021042469701536221926168586015998021852109826156340403004970127030982452386574466345215302317353560011978526672797219113098330709535920308293337108358904702710350513355015369685075753108800430566755246270395894273693991822360007591858008198561987613303607248724548225632869593595800231184308917326369865038641463232202502216671768335224511108057973416757050130447656893326295844793261174149305480025832146108085339472929987231726937575531016462754434920404132717659040151275779092702802374331807734331707834234279957007447982786659022210992249184752654986934340692705379030598883288609677500802573048023576817374237958949679517658113531574789866814890157956834970383804962376212158015309412552543190167791171261531847399177601566833946638559900000366566972644636271237285891937139054967133820757643719307046209904116215271585141534236623275390694271350198741848893803643898722389577503553965744385171774955903859048299304982103570247896521135214482228494531612677544543951132908588255685423040227035069433474595274012047268279155796284334619354576628502121137531023223151371112829699866858296352597562920445313068630927333969857305578417369042110660079187225695887022621176258324340958508798744779729629326432750352189381492515373623939951103648472787544049185652646300816884493839550943978411756290548827125467336910416069108668149582220953869530864096263528552868673997686890908903639574063252882413688441301604988206874106208901490184222256261315861563549411808233727980951893937299758401167794554912298735221520249334062230007321734608682590067302697374987927241188864242456395632116331548474225739415994797465867441409185779743501467071545027942629262781740473059561588242548438841606875750100768803938257603467365038618862451323458715656328581613211010496588031010249109995842407475134987934110079876026473256117051826272740503512829691585131612576532859879736900238254873383061487589357682310934434443269763640064948553086346549469852251843174177287019040310302326649128422695868605581141534622752221636246425891599120414965353637420592444463744480272190546791782237574484668076712492954232205574068139710589389268340587934426738689321369228317948791111379579514080536193356986823350526785839105339473196863152637489244709970737019962942077591371360559707932383818106638038903367616908489152961384760026098025205443453958818091127314642234344925880047060882108763726322177531579346053284707152538279659320230012485335945006671203111404394950799758192435036209047216180579764600791740666358472800602177897228311942247483211272913868742106799984299684002673773717952557349326415945749089209251138281975300103498932118843076355956379867910873000655147229255964201031854687978795903916700805176253442468349453185033298910263648646777596366328782955785613964613012480592717225933264429284195271893764328141022500000580946494992886310291804614676061148949688907361244618531728171664297812070535334275753950745430712050370738658162899354632056485990477395500267751498572732829093270180948268568736493063331822107383955146228907151858607965359802874758233147311504542415856857218162481879822699574288246305056342270098368384480563914733216425151310327544954855132778995346515687021472156880573187497909765923510640592053564489535839121727208483225196793484144224608231744562354289294321501797096760141453948005167225232503191548045496704342638879743148209888753560685240031224434155284058440360070619204773847707202327880767220097292297236704139691978646556213720944136908842328848954372200917765567988821403436870104797264049765346062455557360346041129381673512617596604691631860669901055763040921613924294977497214652925363493638795878040923924443494175626129223030116796746942358717991197650084864001374560060440747751191273332110114507004836924571114428126436319507440863395572121362005201625131730448036762272726732172446084338383942598425192469271270032271872338551576118611932120072579171845511795193259192472116633852728801261310901391711181874059118765177777840758827878992929488814777540585075395862759098099654678465031604788533077817464593443364901378782482036266862103656385270103032426328616656457320571884961719363963680509927799369804291806372561848212298171460268261124780613001565822098712815633851103740338841539570975333915945388164237882870448792064865556082265405758564347876701692156251408006623927885001758214567030336275667029370772277995279196788771169582036268100782527847165064311104885038225068660696247018950406609677873732200965696227763260141719767375616388549767396349088662445954227955315273473100216457348790439352356523856661410541308184364402735255315887781078630153520112660787281206207774380155281074487902431911392040542366612275866919237751654865699160508439251797739196270065191808338863187408551941989509718867088552522005003595299678455570970848775328809745905237109009003878061329869141294489216783907473322772304630133577103322020862873186963816748282938403703031784647121955916329482031007796108449590151891455611950874176751931875855388515844292044107086796227705788449624661585715499794054650886568795466723156736592126471454882740741972071817232838029336059644672974740997592803278539102711679065485106841990974503178500923399428787031048210365537518265102967846198140868617513403945367910555064329978713992812035149927342788448222555290786509884612986963214901000530902313280248737835890717444803336784085589109866602326002154598602241751635025446182717800466448957094788664008222586873608734058526400328842927125735792986241822559445830279023429175891572396216062407378992376570142508452221196107218495650709445423459689056917095790326432550563418808918201604258745267256300104659258905337316293714589276830477167884301473967103741675554328401059739544246358081672587326257760971884238222457941741292949486565404719606221677430304770741483142052235434955224418357860368734932626384624380454308186784820804378754307519141485143551662834969502397896160665700324580804431616250235665454036114593777050449691879307004585723546296682438389864095655609792128937021720064735454027216868855999947380057238092905922619663160172811016186093009086453698856107445276078998007436396841900390343506780479359031475513139723260820430692530353411631120177782828189623430493076674607897186468941329767051055299818188210266720606650418884788895599709303146088479139008672692090538590983208626140610854367602437996595694280366543360365561833273677372956100116172142142941046681461524836930953701906974053997463302721753886388890352812447882095066626092195622597865065296068209683653363524222128631753705248358511049202602946297762582439907641819334340232655956144984315060594663143240133218313855254769277099506574760583777244454942653223311140008093388995831822755505627490233060979922854885650486514802345708488996462229881053653189689225945562932854310894008094795331270882527432818951557398618500742337080989145504183096503210764900139677523752035663538118642627576610728867611500647864904269046943304204747117609706614369731183068936955543787672242838931131102150031003400884682933715542213560887580248480847856773123551805659993461864571859611655370572720337414735253930905423690261651755726116691892719980891735947951008834088393602073951835183361460174646033955853642709453004816459716551794655653708648163471593215655583683848535382146992302548889152352495079332165891580597359293666350434280813959997414180275157713825297970209149755683361267291482890348589068855501701736376547513525761895477654302862968690170519707727437104043582161963666748549960579601619171618701498266747788008433328563007169054934497375329944456404307204571905537929087582569259329448975967227472329919489638409128457766870632104931612288706818592752015072233960334133317816117907134057662683071997519749089312562839534911711439385960584828651682240989266386808301587916159782229154536347943757338559249853677039693022228285619833121794826212068298874345227616509324338783221220584307881317791399324118842232804123639187177399883192422169503400627186138838331293430702084796749936272398776736856290141735835879667190651286920660050697638620556679048060923595485103626921696648502992769722410468303254775292737334910888590052531732980886173474020143325958511273090965319508195937616819624424849279498391054586881886130117758998081900118747669986563670887775182159940955954986507414768632158777640169100258696299481760990883118997837537750177085453055880410922365280541842413422798582819298565806558740586991180004379943558972340110595837168981045099137500960714027810828743592362104554061386794327346655960294908919004353243621672641440207674140247413434685605846228054918654147455002474267809949871140023236183769454053263221587761529550273351078932018900405173279157233820628503894095896793629696312297834754765715628282797144533334894704071158288931541317056247294473303483445203479461613988223604101623694198787691492441768443309011329361070385777313736705414664951622047848478845535788828761266804762231746041027800793643543816122759387484594283008379794697381198362723737840968447890631245290680100508899559922281321658440563763971822747532985003655193391537270103164304530130757035902059550289615968337442192400186969220981416135150118464489281272548398674248197014159518582230307946563833343406264417183776478402745103980700693444138200002833686466961782464086864046243211775702651305579603748932680453929306819499279909444933905534563103811280355705631303856653125527082840955219176857789133214058877625690641166599972384707524790375792850038615575093198536729993151256293404965395656984884365253436926708943633375676959799729664529620048981418049315518593364233615935251745680136905701898623332692646893130790154557585841281339256468330212352918979845687203663541173604814797419698542192305604063279281548491283205257703396759251185413931492048193878077031326394024063055589315576559078173352436428541820217327138535185710736434710603414867564965152152577928750613846749138845814367581341454336474246659373076534717466455566356333391584841614850623498134613905091136783613103116623592622468233271412387670189560715001909810170420471377431783995445388737848394574293176149246286979023633636295719508173465500353454693420371093629325583053489149929522460784711106022903585380234757609470912421065794189707451376395830171489902784049373972993774570371107218277565010260349879567573045483418570711076695796279470861150815462277754388429247133360879671768452664726387614602247617235301843582653501563233710066328772059420077643492880544462293903579067541227703294425518251505847418323936766266362174510737462461024767251885149465459150159270658793946729444119211623557247805883829606217994724633178388683875578271243407772410229329833202889688620618977749183169396948475669316637004719595400673507673354397277152734596901214553533870504013977122273675635767528119049751313780844370005873829079086974158828858668565890606084996852730218692963336720152432845366871880257054049864489019350926825383048716001778615442692253030509729324460131210116575257393499586551268091303388120500756068251186990627682287325395844528127844675682409539218761086153855562140635419201296818930853392268303351163602627156688746665172795181395957847224022762321255797536240603302548358468769681709256667705059323267439817577752063029106175215640702965058886557196392735571752428506519254340952775616233988601810400991253402557946787666190038946631831890485337965669707471415530137397326888811412639758826221765350411802468862364279506068887468202360499487479476663141874049953050245403840565886318698920899926673514790675266634254877589245764000823122661642841580410362893994153812818399311208063594663874897919577244836380569494353687593244321949116538225724762208953710746129771593627113989952096980811175847068830904576903307198246422705084459665388416698390348571977459291236376807399098148387895710890857171985384119974101354207590817657029272245292002394188649096891309518105569766821784490001326957100376905972615885340648556077703420619610690645448260433257455555297472851135665717819080930138040850070580325348100128550244279155443798400680892853165007824580916097914406859595668770364559546355874363703193784387852532089265992993493637830287213229144644571174252087915796149406483969469553539318115089687599704935786275566800110065088414726695956768590562299561136580010648637023876396361754239316196017830527060668148770602154213975361207582600096252774921221175277114659628779139165182822513752957878434424401788832705467022390975641693469596111483316525404850219873831507098019467776439995895981148984119734172279569026444398780120205087907834673791428425413067088870045092550503664547284954448468057953392143362555460883483748807020260569699486503601003878212924537661956879070797315902945391338536233250779203149762941387201024532565089342374722326023376434877852146238072822638504402048591092091673050598578610192606804478209118027200851159157773170807033761601699140627686394566420916128661130502994263353644894981990688100820338493073532277756578214467790543673016504420542712727344477282449459866891206546842006098081055470716935719112701373256678822588454399271167384497334886634989270925088530034565100991525344575409768131562259179622091260986935623711768648903668897852071860071711962663321416964858624075038677963103706469943639355156035754997230644791920966082337777617285569002484049306210301589386968092233008028297464903485857302685029618896207852343660258937318749001835560998415576997818347709009265957059355898547245073959639586333274844871548707373241386569082704534816818047901386920263452111911696224292814393899396942786539865190922793017336707499611488757950655563088316482468069494100547449711041336532612366395277602991079780511419146958263682899660675792759920245542931627422380429787733581840954980514282317017252825344155033186411832530119397049091831604671870605808079032089941788124244053400080308858127132470090486695535366437529104229507604143172552667487319807574192251162226732573447604029619313957707025034291884358704986342468085957501761082739987377706678500388274834753298446667681824540734441570103507911014948887271023927769826254096252776511504764255683038183915963498881294148980671706723121156492837925005715256019211073108262728894920682151862267249992161357430726994192863467301693719161378846440186978341513729643473762709348173161832952775962945739337422212144816040427394970151291609569421810350543430155503577615930950309054965678669773595327409311619072471028817231717434718703291727629994202680003206061520450171654486530830824455156365098881414278577502492634547261697445109167733398878967122075567319595324004063911084590567183155251809149045006329790093573158350411517570747736880477074768483250829236215279420377360362155146117509964383073778268643907994007359292687629310490555442331945121609736645259223015437290213942120564583305451978673845777292256866287956896932402072024553059498516181203792421746313736649806653968051563834315568324094186859825583084109443373843718354317273319604963574112574814309395989494335922903389930356317483408206165487170517295738854220542703861713721441982658673151251962857041892471153117900000967264623557161299629083823330495411318342127243215631955918216088343425775495050101825129057833861580318950144297500483322937718642660984537810679893711315909212796348199327572773367197254166257342311422449817010767918425284560273623201377854184641934031768580322911454200113734233034295843424396468486222334491644794688141885316556715368565330527737586077414901330517250227262895886728157359748638646322561171353596649779653644085493464367510523963013578269695503438454830167997948676937831470848665409358337735549815458428879855359940908373367143357412485037909123619585125511896551471283417323891082669064960954744677891044926990260330650331109268175320130274769461297181043320940959355005620665423753671798024601348637810336563504961894092219245451960287153194110780815972579651703653847523320399994989281620895758885210455343573127786057188890235993799037571191084468072572308827607669406545802266642624457359485176880670552260013866172097378253112252948358099226344477346011719231435580024453969951799011745231981773510585011102540227867098245524884396304360685394699541146051936962230850775391167639666650240414710308371197992366474402972091869117559332054454098338738496855134016177698496839690702549565643089698467725652140186630101228935240492902056508295960642165657861097088804457506532363139648823008551925794083172686162903079972023064824674702286804881226351171314691452481175700263033662822381780411422089321098069137553046481513380047829432892068031185991839323604908007493684476017085782082329496544053674005110815410477179978404296779930331064903953364073417712413128123122288912532330150793874500698682350495473920613208053183560629758279918195318632425189069398931795328168611142132223478929396992843991687731917523365337456658665356236815328723288292097950694814863164266998045560924909693272378170321674925756783102833245755850228712722512784766474353035491155904575636975750678289360962438654070979391687051359584803392941430926953214008196153521468144210830626046050183914706652002306510327936790243483902440629974291618697983860276395654324933088198546434017994787728564897000873128708569804746055496752726424956405781438199653285450242589593919214674494561895618310012881115472891777597207223710806266908524637700686161806536629856774609383224058985734591054613348573427925321986882673644868361683519799103741923144960360455532725178157271475622159798661752501986134407040549603758085284099815979994985794779767017226922925728679693121668390027498790256265207468228256228014963298326920755639720915284137161493816318302972236670669178729792581228326112379141896416803679282687985823940197873673156547736422206481740272005494994580822675021145794624943468988617962979651473303271159742938060012198050588551710659458622608644392291852549268782421866052103285023890751609269882972439726435095425011694900400179627074873567327739191153419623570208189306718834147400717180313598651905620681177292236333425946556999477680013210743544586535645101190344005053983661250603941973662033135224520943348173999754583344697148249341510891959453400235187017958290582047562018642220365611653698888829536815555654585154344248497379755246647939757773754629895701539622998573435824567216125285908671065537605878550031829518671155175220352371330234418953511271739357587624539400936099133804442937655972073126191903368248174268072153835577593685550627941848319217817401389606402147081411552629960549805156869501321476638441731119872237360282954451943032171083298809198045544851749794413447296861808503960980782294348182013599314557027960216579546500633249619866287434530252354141130018509236799098394352063388398807104790549735730399179209211745553715514164989022125262498302396116349244126464718708628101470656867910556145612162772689224100958193098856917861607685361726582950472305031592741916562664982004544334078697692316045051389411310267315865204639655481823140779303085650413439706909858734474409774436158307040310921674773754794800827467326856300401304828097916994840233507392725749596637375995263369177920115466638233897458023015093070314287693706633177309460245658710163312173609523495073443095346287516149724674649704898021870190362434362513401891389423071527789285814169565919652745523190344288029883658431002358075167708080860033297928034695585525298901597168649524244919143115449739958713500693558661503273125688455794785852867600712909400539152030212172964924286498942389896021287732921540092288776930055629955726635531381769859228859982100623551736170601466611093069538737333904146514187491544805203842637647408952399707287621749883323746870778586623882918695602480440403284746539910209584635879205590007578610138514293499338579035028525732732937212212136013907377076376641411967087408242659373837752512444677999946007987075202270464379328739300932646354934286469550735197250386427236355054424304902689475573419393850280362393313972746956082393343508228279044146313162994605956223284745627781422485417236584857976215752335627862521022151031406098059944044034944563820511828716928021374162190897973697164995130279616000300365508498933712608384417993547494392785641365630360976534076617055441783321369406267533073636465352201654526163041333996882357507270532866848909503149902419007051840091477240732540791242863514959004303780540223521567262990387042968399024410171967783322873205185162852402852839491544305709147474130713203557313257432275490260028513889809569304319697590895612800266307654668729548378710688703361073281481446359634365461719377867295493889866756650177212214054545749099848381976365168901111488943615045078047060647866451953066546688495548148784734043860029463952553551997912400802470196514776494182702259642249508746961732154789725331246876793327182665301758266769685750366154086753805813420605432766528743670049614362735061814800341737902433772901234124622032479187028779060468788494098035769501486774822382515049792225678367737362477518095009723459877040427785908131480138771223182139938808137962308930196283748559646447555973071688776261349142179489154263076497814174235145614256995578934262607873348439296485179390724886540143362043365558951241706646277899331950303451732110001186246619526463673450386774430849861629981360347045523597640495601444177535187892217603860974943697421759618067081417704531178600879957277891013647062759990090105996709327493624050993552270039195123154594466707011294313960462067646957970015914912400654579739464722533144211573114825103232960149754111718801866502817905239379945382537472504040138668827621746854056949600432458519427028650026574732757253830931306940011780930596174993769796761034124791011152864656220370957826326296029319865302485391319107340039477627923858055046186148208039574184737903668176963981261712688253516199409381619263186791552134290337345244043976500008042924069918109398196979627911817801094701673847231483996469680820726023124719890181853144444867197275249396658132345117786148251766181123776933733137425501805371320272440735871836197023793006596585337852138207122681624834134606714602703967257062236923885887849238765897437299447621740793499386435504252608693528870033286732700179583220676239111393673666226588521270472477004043915504534867666298105862236795882331196902978179146282536404817646010466798349396553618548437617833915398224983849745287519300814318658906392333710756692125743504848455228676917477024862311040510935586725838859744795110444738890918214692643313391108709393475063217559798506392166340814451123257152557219072722233207301010579124502526746749335478438439195649879061139442178309399389339313023344233878640380515038060671815321948189540158807384987783301477674259472766464125905504352775381681830476276793849802376879659162948173680171798632617894564882089506790717677995575695869815725695546369852415557888777612120540421787323806869750297078815779079495305787239121114403635655426769995089392260859193103657897245727923208950898724120349144551496455708727689438188984528407669372872209502338526293805835607589369301713531211024201557497314256194959473146213166575644914470598073317683486624294777293702906394963454127634233195212435801962894851281519647805797778666571931835826020138859531419435960886934662758762894293185535912263886447655542784816617480977148471351577390227991198049027482399188866399400727141531991986435957256093554374202419786799729885874079116345380256798312545288078479792724249660818920660930373477537522003339263678764873600099789909085399485505458623443118220244205718639983423668032332410127086165186152876776830687854233586101394032271746370599624463361156314933551093648538123282940833294403525079450141056844193776623393218704005417206509457770383680233161439192269298569253523124155531003638564260019937170111550213978707663352354131691630102195500335327983466724809201034334241518948078530817870353099613245954117767802434459664656232138049886596593413968817923602582089649031657269715569980221936617332222244927163804799240229409928262687107439122528063516657521296690292712793385888816773469141902931944937277414904752767290406461273162661650593910524488026438302181995365340510977673686001577827071338630639025339221996148084265499804651598366176194975274695190888569659652448566417632265323626006086089720260792227851158000011132877574576358470462510406074617652361964746985922334397552475218588687114283957562775904652307401676164731673441113251899757978874673930994682456887296843092987009776643304856174049606610728555877539366969978560810406112366692115195192578316642969714543045994781824584687987527514720278011997393933154181037783608109905134626219270770029707194459359092341431721525980832277955401293217023897306078978073167413206086887358852765480393020796539518620083934718240594042952341365638436093310288789860652374538506879202125143970663299376452399560874865594800769667355552536072813586482059172585703300211566953250165212918142706790035473383156527702503096148466232000294181675648296028976324312692348349173178461512479012940073693291319765175275692035080784664252407773636336500875992255824237157518261614395460164008519346639031820420667191759886116215907421225325739393202875707292792495414162943102403645036291301582705837726265263096872043692400455103755542380579989232500701502453944910796801860725607219816742613341243143738314789314597623104556036288409806791108404443474623063270624334203749455617205780840523699338736835485090133767597179624317638739939312760617218769794297839354307016625814241045782179595700441035219285935521327566402238740725832319561074832276567901855274944716345940624516543542299433805895427150641068280916282609142965458821313738703577263649069652739200252844791726080080565699519590960046092494524454413061999329194889496180837958001022354793195556667945156046914888648383944126394598436319519462130911044884469407602923450430846546606442404264732420730640008348817866759968721028029923850430578681738011460190229074965277155077755741076739051065175430491947089571203659919650185550173344525260244933190832819832327135435152595495638009337696214815499447259657695529475553172360752098592731384033455202608533468479724332404590446215071143669075321153088707876952416500079910073951816911508761320703018697237520539302233981368452860462261531340357499210068462599370852993370210326830392474135545579072448665432918670685069353695627715090537619235127150401335202298127242707970398538959255366814046872577621737478908500278970583745401606919559831801234482715339760482036050879672952158740829659235655632608455070001972991520761367960321033514384178399617508116952449345204369614026281169669669154481572478664844369172605289837630155093921843011158525848352605522961648720714628469352511766520698143770365870423160218967401666101547046031723761945455989010649507445377354063621702750063382345489494521085478753841502269693630228441473467348973327186038729479993430641687720979061584105987745634774245351233053249761560791720027535336887205899887848867760639896926488944259011978842396757508949399861094331228353970283733864276597124785245305855498421941129783688188730662405866099748628931787817042760932394039530339372520134375210405884758155396705556328159966985447419563757474410911221022819591465891855981968612453685999127398043613954824524909537531069399154906751132073686147697801193316994546033422132396939441273099717691937947601132932795714701243021040595372658805595470941101645717544438190988446155544281859895263043608068235440476391518719571112132141681108752855651447660128769200490771541998484573448371982492061488585651528696195703378953078903006287054476319171457721459186332048986017794876831882667049797841897368700193200885543354776585305758551794381815790231166865761060763646754087336916076492425884391777985934561306433945690612321618878341369786085982103693590975031761945697072905056622182738409296137956270996200156219344044099371229130526951871039466635927865335221960103430362985710012966235267243962315773840259091263948011303829678883801759964886129489394208248392728053997557902714000833841824576627443488835459735578404280130732801491807525995325772774421536185842037859138864365231952801922286417322332704655684893773073125066206912891894157993205093029680507427803649236886927461931107394425166957460573417527588530192306735476504611822099308538971113848020736060934029131472345781637936914035840353298496059972527259424931126839113610628892469253024560874692195200080650729035322479369691959111110758475158902427860513066013577754640125035353558222762309378955019628495087408497401567799013678030560778736674211130562731177043780951841863323210366271478672066850170385802789609907834749547928028201636610815298244605373581658965634468508510777585688018965453793638328337115999986287607286564078460152235824888438320202581516949532723516311916440819905227069039617540098120922132371503523848904926961390763829917204486483057478592462843726303150172629829726374845553587017523837816687253422321890990594003069336039155877907503097832894208758652634858861290873940672126668010728206375788481741951250120946911750789221651257663965614888172797934819860879940818076525122146152610650921242087671259495821978662774331204327259950368653342170620936064097507369296932410498536359684684777337335949713649369490802847578617341641911651279522721240746614561547853691109998603796884241052911102121017415568022344814558369413168356058968521963884922756434433244624198360280083261675843254345948744339198087059914434062545163896558014348268174399989321392042542356787995392732166119284426175886098111393378753446272567028984245823343047215499022410816158872459502854106792744724515859852332439464553423831478645031846595159176865115048892712570426699305924328090146936531853719176611310990316278336912473227471393925725500086381681978000677596891740526774874733160099621848862969807363146070867247930203033148915696969888882091265208051449475394967868751305343518208355431518882524551882092029964853203713124349819445172774278714506030406345607580681302523815561608127937539165820772074132340959361547169964021236221718134662177315568280256612739812297040063222679610679546078960299627445259417744287127410301126381692311601244090718088637903934490753864537626436310311226447546411672741897302515076561209872762001572609450741048791247453403997863145809503034496225602300334373182118305778629401964126639367803229934349464382236983071294392252311008255397263635445189717136790206955588791538744505231839854893103449295910365682629005100999956642163182103408033707616105141579794558957400625091889649553355734558628583750568963056294630522430070644457235594766274119764434994793763471283040064984363864556992227156643204832865304791041741555769776973791314532383178087003869252134853128955807555438478556764689702888239151044419492434022888201542099812628510311306582954386206032796665700322506236063125751640612827282543463629360193015028196968708947971748981206454181557320634148725325273213139655835018530032132840150737127363141730245321303560314733842116738693656550320024300144875965533723612432072623703197118859772267047755349166553610863730985069491268205775916758644513089375826804440919452099294573528013656894871966200198004159029743101049717034286935968133891445436679681427469221832771975203534387177203396021229589152043983244449915686738240108874084610479031942185402350426406958338086559337208875924548790598667079113115681828406808284931463946568544683528412039101178248339634537670136464504909087276758428739128823682242445085472852877528746841848660120513133112197386939836388508720898560253089859269319879790559384565784863055865269588640417612317769819685691501950902497946312052570516232366908726505250907790634599624056893242455663577486982882535588420449755393732155610361148792734798780140705722456854296071062653585403147051883435717533123951025358633102014362109697302660631550026995703083576577199890209041731855120001224896485471988421559228298439907871082394397762591192153657937275083307507148439023080141173270433869847852645440478179848912633358769716734072490843578355425546340890843596098799631690818498276510354188778033114991364941282806092440997440696742102853356942353138125387406312183451875059313700470135272976873091693461203086999273379971877912088417479750226138147437651055657880411464709850913258678278727630713888608471598675199503681999869556989730779297782761155815097114901479921240053039035236601680647139357821944732763326524290854220707931482575650450587235811477604161449625110114071109447344799747849010342852483234893946689685623751830433169102484237386035892890730551374223746975281017392438728190328345017079586972042541227482315625095983480892302473889648244477024575641876169881230536701509478482744745984940364682364268969974143994173073086225314479207888233806817233299182464390132357861291193397828995041975393621120256053284255980772458246257321129099924677647915932492924389361395376637053090245177350897011161582726178677202901172744584956695987667994785713501328572812108102218447827340911871872645015543663763318611817213329617325723755142170187274398784956139416190826994432498206900729495105431465620307458675209640566570962256293841991952706308239738951178736657715827417485182700251900294536337067000750597701003555381135680811415642368535548708469697282001061032764366334160545053086451630672424554612550521587884445180857702297631885219167707769460388793721561774910839636315695479118432834838182251489651455421357926548542004990846484821249193155379011110254364476059375850739865927152979245354106206274288342368361663703247219255749720650800804882721509848917019425890744980888912992771929048158291271650973646993310775145910516048039257193090176438669580478743945739400477244683251235335251292406978199334391845406229006834925561817400146328959646146658880746605495810012778427014521379085881954280917285259322925589454165135832386416710127232693993597988589264415775863066256152946114103679946254511556435015028264763727379617986357889702542158552299205836112950377898744229079943658447494231683920750250164738198953994163692024030675029661331390831056272887124022739509133970535048096425582684965277675809645097268707944643173876226421164288057970287427277492267260317452204310998660855424767772492249914724910064875273712425963102110585701752715163570045167777670439051206639602210422026786462589658801461840355681947043309813191387803705037029445385282321683996548481255362566379409649386818457737890495511834777350863946285333001095064590130052800852007361509439673987112061870379204618256883925078181708829563997033631837620722493245904493999140329144129625129704617577171744905603400435456770849874397543585598707096533444841146499227850920308648505714047625106443843336424123894720524381081566957994684015400553029412897622486149412048207960572156982601232546929439360635098263787470247023473814506655393581442521272937821994938777210448057497610348742299393723878301644155910151037353907161998135258872401746946366432877372382567505799000089050064183463561809074700073764879598653011686877634779256829230161870289287142223744302041063669139631961440563125881038343844403978609773945582561678952082237438847426162914119964519847731877924390761417751040743779637068321726435841912537395775032775547184983991060222707927343601280360633763123398974461484514647126881623611215485082229219342787556048219502782194008068657895569879722574582870098028528047450941404160323024740929961325487599462620167948482237711033814823235807623402103265077498510869475702477760471185834052211397736265564144165169298298055925928145125378470388703644844051506389194089976047209321979766657284784378953118964302157992532000228878179208058936740485246867635525904502075450561129226438840147445271172184542472336621818437451345028126604143044730415667399164742699638950690420244603677954695245160108459808448430131781891783583920105177804306535049666706796951496603126457212402403714549225250067881220428614776460918285039947431585076531063112754382412921199209020435385160916727389526130062150747216377982307885551376646935675021881304943957504169669395691892955233486227695341849122630473783526392502787683970414183130785066282915556363241638394107438478497763742016925890503243055772498078070763711112923881112218685371419260478768788952990140270269997395359509033280520805134910556500864006233244646827873760094450476433690870343778671135213311335790478724510365856720347635772576745209317034363843192050803374200256423492551517561406309543548982182156243277518611205365943818761815971300008927569313221844555995599295554488099624181502716798152619169504605678837314262223705886977930992635155932203045054529412371429364220168043395001325173966485415509863689841134141357168170955477198841639563244852828961579596481151994101678100218664601452174136569343192724460367921391252875368904700163709489660276198822365222027419454815102074194730293592402138635391808899051552293794719180104485104546406367761537029106287259668401611741366369608396704689555733222959160303625530691851410780991154004940481110351650087175806980696206651320850530424101010933972232513384752458744003649640115818021695886245653228986874581411364678198325177787687588543719463397424054612472146153706433891649943343721780974386714281059258280199785309471289168325920696855298078898357401323681510774379028677114644029967978807583524327591477357121350609335440604415166117478320236468270396468848512929968893877255408897932922949840493347607648870184998564418466389810307600209381944960869903509034309720446271912995883352765817227456604413777106246586833444994062802521280948099600851036261797132415522776396939539805328702942640582466419837792132884505661489796806552605175422031867263858401963097363055819616570191088029538455114606283952820154929498505885378147135150166197144357274765751889126769132504641551715894013071890228596528440891949145194922569222102064999912827908106555521439698174229944369418549048981868675258100349315158721367622161946219113094035335781987961317541639578176781473325983843860900718589985145644263644749792195515982236918453852642893459959995849549966759109616123792881217176929425629517932286033491870204270751474157822094294523855117146279145864426936598065608075207971644380045547259505207894047361992830893163333039037690595076895882772223216400941408959026006216877706865624283164271202596649606319070027372454669045906645830001566033020054281210977392365576082434881398276976408366085110393905513411298635480830641923585808079092785973474002571245851024394673632173200544306220287657189267463967966065529316734121358266727620424396240723211516499209640201281744790868974486389016363135501805330752426700094300727800080416404416744167559699283410041732684393816194146422131896915606280306142658820140100910319854081830754207161640037463143287357800750132868440628707186953735674795520397696152108585882844057890004459444354437152511080499132741988905895253879618456881332800100627694589835841540874741362171170121243779844188753320480900367566216241860064851870046714425228457848677883611305615943388433379814764029292937796234018253306346715496511068770732649617712289376947505061054228824093543006867668249119587906839031520122358942536649838622148314991331791772490091944475896661546709376384167935343835808714876614514703354943783418857615603008539158658263827625515688562081084491274308286648118874292994735312495236322171652871593174445602626164742336197527313993619807670559963147034862440919288810156028393411767582349890772648453785261763310420204672263299804547064969090143090318620549719858185763598540371172501800803280593938763375429468349176513638463145080586025878212251487850194659206344238764353267651863895261458408478233469771341533623821652592214955026409905856532400146227570597047057096745216987548040693280480870574594949957356234087615343507825038786481824305802190902145996650981320914328229704063308992944781732752784429219835996589204654923432036319514540889742195789191754407064832500068958849567401642868063341539325375407265059303283123629978977508520186107183697829381546368847530465163606029547643208156675496033596565192915018221089031052451683385361873068493246411940148575074997907831051970332777111266001945021972862847958644616262594503765489063233438892467257124635306830109498087079283519504493148912917208131069795397600138088458484747329351616916932395610412310219255336277940419764222457460131324986187990883042981832816736807827469297696091172412546737165110067336901240518149449473066806843255599558981772747864624562390757765260492942491446449521770887976288986672484898955735822785282346123666000651753381280116481104693154201612669050582614656593704004319418569981228276474192827400629031004017003219573556030716021418978492316248134321615273776894352832926974597859005044105131603516078006652671997757007904566386602263269646385209675549074402767888409670780627501829987788000648570802328627550671551289538164381020341773690266981803750233487834190556636970555728622339140137067664391628617158662247262106811916173133664431056394190599911862393989606024081022129374058257107293797897116351759046569361925615886757945625161380031405697280777084743803907849230139586163979623829734402724853848636736728455604290107788744811597215947782051152214821625193254766060351509350092952287268245352682051786949782381252764999743229527811961511154156397523528020645847114859610477745376047111636259917430796945332493646912008354757858796230088948464515009732643616130908969653432236930992777747041157343307357517362320328554863879981876619578215902634219107811417834420802129618243808276344342977654840127951061089106378700021963670172072125906716885856755665176283959103342004787595855631984047525350667004248380154500606307704804825884096646282851656505720167439190498582802677219257710344262995212603762199690093528353141613458301836691876761442323380758145561750455443353784516420334348724631517979208920747222130662868498523704212327537768673344538529611632863510975363044029287170244347543381445718452553585645150894808708180788140570870059885823453679578776510593936488808928631878760178025271578113954159544010548251038356545249721852706298245719619419598107262481750962321723431235341626965909152756796785136212300433737007041777125183878940725853917745722992316717423607337490246026892701823449941329042778207429606643932493238700233438181640030706924098242009102744506254204290653264836649799347403382823042366650796847877439866150226018906543086919398489084660135283406211480941330135082747967066116964292222694361956786474361258333806347909229311722380071514173892263247446748134622737180511739841510238326287680837052048445459765510328822315817699644535389371601127645269956715680400220856186287225482058732952751965344919861238177746316160579126839310099911426389099986739783687464331872582090638991762667053075396637400095323076445738086335663714559408706100718270092041185980461004713094535991062423268429415720339858744325936482705143426443871014274810909173128470178099706344096756006812668336676963685704203935485536469230929550506631557402413875488401110953434874437121138812037550060422874073918257587186662927252923781294340759120054280065002423534840762041044477030075224369870672870502667637171352156504158791658326889869222229903644234968600986374334067844364554279578058017468210990734561037585595360333308894235751170560604243699854143641966866736676396972911414279977313748227503688045218229321170264454361989134626607138443116597591204801147596701042060068580462853109949313129196316585230852569892904765856097736746523441782316050823667011278277408589603891184861248128267123173662512313528162247956814970675829887861754903445009411520500655920387196648028879799096763114090752706345779599155958033912182732677079256582585146259549367468431548749839893633838224730640863888612402639778704077995146477231836732130935741901362291182166972262808286499161421775060121105196717735547112905692339312899467764367565109883967598125118814106514824536669201044969685889334995441622978597550864537125769576084798711146422089878889198681670079625074269654166951406381155739750765478183533454851053221779257427875736991821827801050563760360758510898225589642865926269726866349888218893719999523910629182584642957693440833952141030658481206402574593047391349443393605099844926306182635043770714270470897341904338255263272909736747518756863930688890322068314077872317392755859767857193808861416607612109808518881770048128189707960694208443897243312210384954859346869934977509592693273754782250949616789392856751815666175532653302190272808727702261036666479381799863667466258251506004288367713150178980128769164347755358691081403745440473992796541536175206497156961374569226793918892407778311132727457753488620859338018712278991042653059926814041438535317715794125342194496683203038004005727290822391968813888699829122141803173732203770208309658050215343603002565505741380904424434730290396705774393290897552145581921411175492767243837909609077457492690351211768804596096774109769813880065179164390736993276027137887591748863949413287414507166102597891235959576890709190089089612110752404593125184098769597032710063171494390974602603826730253190892946207284662545733122276663952107294891774850971975331247929403170874576234382959084715533880650387416986925210972936402414138807996218747841658471817190725087157435061114329924620187347601756317776473411613434273982961983815625309323025026474297784202190952943070876130377567977992566575231114930470802624345243072799017419959296455615086610437233219220136208713179350842721765845529834908831724766208161646889833906754582678880983829617590809002379493284664572777783008822420475508949954832969406295825600468648519865682857234550153881538355543322348121745322258995519569452334206033512917418242513825106883542221371927265398397410727437462101080006495478397334937557388780847403421757807276524436252905786003604462377385676149545598384690269496241017594840915066199981076444090202546310850586488857140726586930530725777213544748635395894397369722085644253712363929389072859517743939837360863417581700194552457130217383909875878970601138488076676058926022164854114350295200975876729450546480945839266652958280774022569563075492638652635150115146034248604095828619674390831254363081591057577344561130193633955034659225091821095637227388173200597573816041778147779099717876646043051414207398004070351212138771059011050451590645012404437624550913589349963855984082807263409150050698540535985343972813518919445843174995801834783866034704065992947317580684638784787408072780989089560389663320235893998611527919990426394033590802823703181211884487651804192385762804682913919686408075418434951801481773051316101865239953731318214604513762669657214748768801251788213933339264774261212729096774634267924859052714907818149664455565289364582095616330587105337672198378087407497277485306668412840721786538227456051123958995702144477593851353183377103221285338044153575955015392441237229229958897256479663539527342182518487176179468793455445326450864814627991535451357253642761881786475189435667367078569769038481914365401293019270906959988574486137262485564692851141243807666421133682340449420299887677735467689512006772218487383767832909364437244213171805522734202508112764288767345934654570074904998823419114985117721139867278208109615604910870666613495292786492207174117868274702327312932794478517201421512853124649963943263101864536471639924819987779984223794427454194287734454544253709409318699275419732342707035410640510279518158082917717282806689311265150087249120391218240211982229180303455707539608208835498669981903481453507341635375272691381399274967027361557563198778442893035084482315508287557746263466390300488745861850798754464181926475173723733985839106542719727518190608626478393766828798707995072884036693937815150412920951675685973329714726628626968925713316036184332702924842060048436109724385282501909337910418419132194792289299401359914557240046188853786731768405644409011799706918452249255849455452235354208891616175441157377653967484541309953603436835023677705485293765387577730615010066907634975458623885498212155906335844053705771365361967292673249722509691842601439649541442088149313627482356605796368218811552332327382991880383387602464159044770927767200365739108721966807318326011666554190491388907194129706991580623312841950695264661005328080657433255422544562180239101919768835064041280887520042954988808525286102796298227769961255924646803167736762053996970995932583124400020020050448697451032040850626352111443537260240091686200467365418760233887873102483269765116188309982567745231841064390449380233531184703570082678083832627347783018040754059811121536968351969650119308524947156995619073626743445827830595796026563731226993737361279759964097028271926976804873284491972830371030705222695913636998309692332554024519062865188901034739719605579899992642149979100883077341603211922964494047589801981597080518186580692398797182077573899966183747589123218979438643405466238310124333303267000524275952107086129131572732968738302733291383123275713499897421815081965787881395850680226195768087885444621488051736805152064841233963939556057546422631364415011948560136504245397280211286878302491256980709694788579852668096623365418501418454084590430391202268160395320372847861747220992124195184014599591806662306745289734423067485030199347096677677908883347417954649034923047212255470909160872489826054234263795451979371183047315244768488422295594676738903418890860978217205851779279259858026524635693525817749250649117290237017085198897646080479105876341780350025662036433953268247834530820233130298414930368774109751309859937903982621166955211859427103625481280358722619062653941161812752471391583373193140335724244830859667014219101290593520034683254088234636812555296408244794671141200994165166987505248215539754709136999513449836522386672265447212134730231203352702323138200044598702355200415609274607714799538765941591074452248085232093147871777208775171233581065432898400331429135445969759978159228042208345822079113863063591052027992177822152522708753321374355120548044197904018859199612719819112851315360861248140884900585512229487390169253796341421621408635211034078350408001309061079693722221008334709144732952347918063365392068117803212559827090440350134772807868717831824010038136541286480749872266208893667149618637934983284461269722703912940981059334522546471299495516986950535342930268700207248522470789051960076774656856054654835813526947132712882660740557269878842148136223505921725566612026384905404518127151498381978569536097981988380135848294015029090411771808678146166115784382727422400731009693579669248469506496187458498417317432951872237045222459501061669983982521649533343276278278078838954037132604174612929579212558364014156000735232741564010959711686335819732802292352286054941683701102151847314312582047653477395106840748999524614974820926045846846816568726076192382271754335162718571265252872466506908981251585660210681440076375283990754974583240894122807095695691746881255157875042232226000490497324039213505189826717813186876152045321305677273247487945717024091930560355433597643351079393934590187573034461149101745318480491508622608184099612632936283993625658484242501092639569033735803618260529856090627898669439068205743160874433149233561588947891388893713724343253486495272571743812899744078546557095376072038074519997448660982861550057036105974489833645819410558715630519496286862689627820552370330014285338602348049105831543178004930427183393064716112998243241986823381202777195611660611320374905589150542454302457279441436757510919019862415203700975883808884980415711551075024049888091449497496514308582840366300508285294418409781309263358183616116421110319388043348576311938817786410467712154711050230594632757850187754912698919708726389684058171321183290157129304736271134451878985480885144247257027862326503287761360534714598099401061367984515273517223538741665043339530959240345395319042183163516581183829164256692491575011143315399515338532374385132694634056682016702187764040877876310495946143815834606301001257733010655724708977996813560860917789437447875086985316863331962931486576265609058784276366710146018708464160899839071274433364899889222187342159051941769800804698369015439239586539733614501017790761443937352801131305085789634471267601728568327222747868870633797085344530716995574997386740252320607915892488665466749974912778453901034986270451127890580568808638406302178243774449712927337184271877494230001337461203075966668006476329564814612545434427231793171402601447612358462529884105174103975543352918273822789791883239791108254942093280482236153886741259507443264345449854909892154339497326591310843381529750175994490017000220372494445501563416001141174513861105673537524650430842486567374537322108354050317096077601783331888912292493913422703667091307720863527662445214770011511411122383106491606632580379354346484667045040837411243581742086594353847272497214072042638806757570801058958432929552684077877545687733558936734639385928597043839529068806937832379914695795685250262558326623147803193666556711797772964249950840467891149848466292982938115392502618723468536399959495578849175704412209993810916891640808257543021997232717915086925983806963233084490521028474837404838760077764613701711202153754984538185027104558480496775490620998701366318699740302500626474789310789205152232580777656805167277720901190945052241191190529496532083441403274155648295983775023959608526157075463533255321920204136460246613244106259306136213501915133843180256331844097858653052797289997823156442742601960989687012247790609788416236165023779777233868855463791202091397187180442352285150155381221704851003731784418522319353388035412629922375377133309877602350549603211247282830124549670225319105273575588535163080500491423923289802393626537251027907976743950336819734422919760100302135957367639798558683893747573334737450373192637230824638274943390075418532682028038947697485547228197452059303901942300600395794615781410451215928039000803305856406487384133188910485110224730636606926983203498043473024548624261804652567864186338265808038840408992626777813335834910743602028105428457800715598880393423375022998537370327575044912871600454689549383164081267133469022447037069486316019533023005041101863302668535499497586617483166178597062513486837135648976672433424063233993715208812166106366693778416983625149390985295496182898579557241935402918671323006561048297904159290960125616965610509983679238230042178747221928595008537991234526276235564545947473653490950361049772821517654558639629175426062215020014449196823895992835904475226148238005854249081460133432664964191768786752036470339162989512153182784122632807911829991636244210106732305275732665574897026932658791840971957599471940688728410589457156528200072663175936507152364690464431384613353299734053184160101274282928925501882859942065346248217956925934532715020678331673538288210259404891231545421681506292092619885342836199702115510381140293726125272898463820348081731782479582794118724771728808379195176157198566766220425428971879815201418033580483340296895511425078350921423122738791418293883317904604821322006032682314793200383693072295986863488678652166799037291078038055142717044545483846545755455902812147596858221892142050130717148348597230991923205418454712570777910783391922018301307121193013182568505867452183160009261238710662761541531966452474941756773494003440159531600948888341015741154678342528342104212066836069636848901988851454426464854188326179601368335598973673275398851950271706883487428063802604111109800046037011968495650813930826045422295412021949971155224475252559201554948335833934090548710318707667593970698146360997772244382631085808600699260411130343420878822658021086525123270623000215036112034961499885186278060398347440891532667347577471897464395718189320890544935337317839226745041422156981911618402998812805736456244321095045607771881902601708610950104410248924490618703413855265854581403914899436679305625872408812238258814021824948131940993393879415956971674239513093810669422337334134209272365987452875387785837434530005935882503931391239301121287138499102267063341825852266716455375513758612769879499241520362565986375345353958599284101060755079753848109127316770637691736965281154958878154695216450788673430924148691782742527762021581850820614691899323311285637740094518588623453880905773261232022118510965788788235744162030076535392093444169135398492013767702979949347180131741851323269855022378446639764729006396725160466038032947751602681345428652833124680055068687067235931845272192570575249954993441995001164248636798540545800682769783803238626165044224448327007249709413803821934454163238513769247989892112781442755628348176658439327294357225728852347380067695757481479347479561652435002628311560157076526495483162621943240786043786760307138937575293022519751850286501553606563986638922326719213235461793493396897493646747262937453368563488697058379515501551240819610551509349177745465900172667557052287097814699515648721145692633507600741517622405028018714656777865547016742614612411247526741343361549888871862276045116126450823851786645278270399989466533981019276235628527301303858284919379290231716299479886822246984560487696524451800214730199069501127522324038758920450584691764323485576691449490533370405506430869820911540638649316175239421165153973409025555910960908658265898440182708283793274453472275999788062366814954385934409882328842130311605958085986671182947788789480450838923441028573258939048810531644413476206829120927576991652338615162380993206958167860498853755722312946187861511662536146730036234184302864733718380507150852779815552454936757448756381949900210254956096225628205875281009766225835342707498690616691782820245513167104189637727217880752840192648305969064042367893591710843615809295250409808643494434066519050412401765937859218423560384040287445283206166132556663239263270643568007359808910473182074651217069811514127053299385118248924214274846532125347562775565243381226879014191130749189771640764383769982672143798443094242568176261064062592543800596323863062733982766593640555143900842886255120505223338471821545358277534407909514906703611528958740963648667824697805033309520812313097343610142163047264584167133895262435635034808558612340969918989655212431750397072736469797797206183441432945319300522818227318658480369372639289270906733878749078983493490186882348966750641271975260962049225199383296431353033917261237021288090796486865659197000140779192059841053444537605925317075097994558917907249900846692615641703920443648148634445409553123794905998453182133057612335535092173858308030918934835124952694630596681354245973231331539651489507114350343958797224287894947675078287909362353857940525027810527221453748466317376780781372002913043418878419642306807290560749074827103233932758722170172207671569860275932240887011727404471956584126712023397598605065114119419846601065302772234214888718355884277900081671561763234775588010479232158168044770259089381126617017657393017847700871379496718795017503858421725532444747640693623465265499508219522007420431000662768591229551756842347114081422644947047194645366789642576809783069005675367759564977381083207043553779201037081416042166535445994620991887024993814997966101835506055487867936362786541615612167059001920236687769678028871348766324400527715407073049362836962850468218821667350485173301600244508461988095463855791374381357230971086290883998384634622088612225147731252608388785948673166942100829877420809395575047698653431813779261335316324731717818346373886840486144661992112835201186183266073211444072722670022504918441894942671874998496807085698185873968344796771628707917584831501253495849326396772649342772942515171069626873208318221335902032836972949246187266993199426128775448510606327907705275547367624210805475569434630979049752459233621819279753355060237424953031715110393993286493014384588465185235721656964253033797405409340249934039159310365922834721026775864292281626098447611618895581865026356360980541371030131924249099620609378425493507440368814852409871528695819726642902351288624154904548062283864394874411839680857130388305866262792229534415159127629912527036094328224833576637867470462447959367947448292745851755207144337762447581946721164663395025803473636261492719119794952065453349413421450563324547458348747564734298773191349726045339601677395723574927237528383771899333196487385267921649706073795384865937416418488238638550274309806548411647974214048417941044912401442571188790593526831002406856768765007982243011580505114512575725042060789102045362845725801822617568093605427439584055451658796030527278583286615208062303557942417698162631941005205922652126590803196763493527722431436989546360864686528110234966976530578691151354555677646400072325605266859219393836952231670198305166820741455441136483018913349009006404439624889635549537504925904908417907454024424432342222979166713106661451672055001256993059635536761175864344382540911045492703932907007177520993117573072073665592893498604561237016203434910710394136414131452622966255268586234688520292000202207882302332350689534557369634252709674361981871262825223730591974142327136360617031422038018248005068310313223587395662494520929905801207317051835509831323726932878931869064918186936284254679819334953903337405790471625815647955020870052554772840297993863051845129733497392529453873343877845407858962582320261267813266966958690719365764264282343402898460835361893478738860523557192184622822167740378125587325256039033630006715878076788365834101464351980692833241543636622349809593880405084996302197351696844142009765639304494057743125332327423901373483279207422280688152654289126703769609135326497956245291787423005349452640496907089860521513728239100767686678711728047340326919441479399003233924584435601426286524158130578449249187334211480160925025409757309816757754777029848369061956924468742444815103199404206547864150988794038751000066335534167446534529474586661825087904832805626133473639331584883628253793255996590466526988761704637947583923716193539398747056138684804889502115995381819553950822553027232512702235617781764697381658362346281857264405733487603143464073295682467480731406582937644374526459315489607626773910678534085769697368295772088029193098247856401759983462800393423161849919732090521419380671276173308859718603469527804152384686743861689131156963981099400382860699553695338489342927874258781476021476318374038694786423910335232901903146251280759890103350506876571236329091870376213550092066498046801377715566515557462682036177564592211650579114475105846406707249138889699866990647972537871518365615204179452137245957993831973928130252567347891300203767463321067012337787319523064120036883847482720153196381409945307642144581674722597229170351624245154097850625352376863251955403575077053576055794677020785037428152945902184919736469479116185209430536097406690032654300236549516533157321467842492928284599344337380079667185034769557101033775473456420793038391347052312476679290924948384959106323846876025146640649786795653923536309393281768705177898347119304681315708428351757081626147859264135776238588074664022250489233835903919016312095537400922506736154406074593904502552106342151975261210075256068978318014071606709404803902896053891531772267048553759715283462308550017138609770119937714371787718593907744400134720153126293021369157657470121025727516801540336526299018925009603087457076685236554491867384698054134347768811456397812780132062809757254791447930739442925827925517293469249185370074789705941909584490657794672444302365371701910402256877631568378589308284696577135534384810067283075273592206552788931708144472811155035663793988886749213432356821361697097053264382546279834629450244589449674420240922690852834635183628893003224986503519522700891806698699137043820536395501789388016267813483908697779817729633324259013832908103689026701444983235315693622787559238619723235303521175029446742780156750478927920988128311464031028907600468311245080525633575110905235674969919512058221614135601731977551589320361255278459114931753592492071623786899451118623810540926970594185776809511958380499749512422768966484022502336765962823337572837276819519253057159795803570821786473800793779724338658794641650592030073673478457621904540994616200775690069247547569339838310552886163219608250549577591632900017674571763353651510249963215614384257797826076699455899608145068958276700197274236543620949654936646910099790844431927476321620249007076072536752932225087464961957458702817609620332302930084603933907503399726261130147411631462406611656173033586908138343212107021472438660516809087703173681928937746184613073514585711748617273084467357593924835310802449030555662550321574250053119710109705988855187456039267890713732766270152210684971500391524513210901887819122975244529358864075476247969390215531697354694045143349897175705453989452680602305119493850020341171863962535132236303422649610487473255621696812466114232254060734111803716330781726573904265328306928367269276379605947761046387830543727362915712830280605414944665348818614698631003292823947532827046083009635110863293584240309687376136941267630441659875804669062300179802580834233658443630781058097793991549566622052306009425765505632270963881020962753022432346680129091432795094738130321406428753154913753856087466577659679805383529154856260752577109211956529044303765173542794470963557109717599026341009036107837976501286074899380667679940894413097200404135150241121871166332348378591093337789203475384174083671390292249693028687311281289162213213755403523358390007427817914891354825851651775209078706689856408617989218580272334835690248433074493476305801647195665857315037551355857270325467931806406282485800168702311986153704590935652202751632366692366229076891279631767975870231969146328654622448695033738324921902984309319426476977720565859890277014031735582537952150673661635808596349892536748945975650716751606151420180390947445450322805189252806022249910732294109265523719938740026593381612481344225563036548367432768174853483711373159492505003648228676215892571146618267103304162837142551997968993751678312416990780281608429295224056267078828367000655278743599102765855850560547529832503622891313791363829989115978026454231919498545669432961824911962414282965224188460105944456207881370430914426444830530623830682277161036418000206478952086016139897136062684015409428642388962565348680701059800068636162456904529622625068301966054992803793681558215167477757548282437723010668303456748953223453124918446441276629155178538920646641568923844892410044203309574517157713105093727284657780031326856610191289009701001840516845052717892816951583525209925538114715188594811317515205129283842760079028445453836922959563925375823817238588276403259060486695101244469906542510633582574782803987741649839540259373102046452650307551990343686071210586701820490237694233469133097782861272921184300406292247614407072976815341960557023340871036696269310891306897590033226820689668572003450146167008839141987542406166381394248637312379318779760041909851170918946977121675293156493482324230419196973766127399936556162495815520266654612043055743956664630491053318350038844929082557336411133934289063481970328210035756485056152485005049619275860047851056037129886534105603769460361523738905120447126684301967619114208940383490279818125765542421155747711088149917778876363742421692454195413086434218150382243640669249165367440698199202690271971116307061183937071450271831388756043486262452888388159476150605391640686493393546161779017056511280588100141467591570524839393393087110110318832535057303916992444311013805086424946728388952805194522929984400452366342135698136204415806286492953368869263063776966996694259087999098036271523973165168490256228150729380085991299093668539775971737507038911250826550223610744419511736604815998206377675136123632617303725081740615153587200366364621080565813783568375406998396111399913706848388502159560991216489503917015080299423194990908517773504858870325334025211342201830499109639007175375766209448355526230074583008894527559681972856381146919620641421085370263949342751667968647487177944134877098174991094948008582280422130373566102463793178994133143073835762583744684775137266036669112008480888424140480250209755358280762642504731098099463629547869019789820009727377151473419904581455683645368210804948797417592956367495842798256506824794216017543875490887641744398518137339501405635739691580296241223052900283745511921247011479852496559295186877822715262789879313901022380872835065875546773832049425710652959298996435248619521704475302797162817659439440811737144915218432134179545363081058270994778068945960530509962711923774057824385470185221735921807513332439135324982708149460229221428557540884078834010200352367401701902695082967321184125376880233514252946345099878502922434286977256654498065712186673744698191094166867793768160105523300643145200547665013230378495693638277301886911389489485538292686873389267075202695070689614151870363539067566335768891681956154908837805716558818808670050755899636088365213386315732670742527474141015263276485127441460932222271346697355992204984556402733745908934224016623079940955512154772611017813397560072013374330293166483061493759013897860117167743299886515616524889238924361614223588830965969408584782181132945735251463180634843526559005830841765329967282368073917752224303531177376895831715084447271209887443582511758796525956379209423716784739132991018585454348352200719016671446218748239949420792022349995226529035404980867957200469455808378050335599628351321133444941216746045294813368806743168648669212652381255958728299999223931087670607994488098362485863074166710590653303180278860420813070655764336965062991575612562067636607138686443721265257373102888186771358790953321331321423687858972748772759408929288836425138968896068997287326869294161886789765426634917424303637213845757112235576326539867657959584136114458930985648209073065328570291912814916773866077238713493292039451828552512954490334368424528248583908114419456548220280255669736938769222221565130587710023716951553013788374308243140828292780172537682276237864720000454837976589351120491595658932889631980475995189433919171545296860696087418907084039683544776961594427133073095131887756789159581420281649493524225882303893135469153337967939977344612919070814469037751299405202134492379492021023354803287249677018963145683247901569225098272566357361026443112364561690499910521504287178163025720336645762576225069833495192556189522975541575649072581012022643401076566958535649167587301512758462070700944002653594350487013403633872383082243438036524442932697544409057749844946918758706846542660954474027336116016090507731431105260930242527135479839876851306007266678808129738016013669849172373126057037424127979163057575725023140293824095421241436364872751858265402343649464514273805473578390420199035258466234220155585045015876898337458890489395971261817968604127090806717693484699177661073441290294421720896630210878356117514495113444198889412552251399771171001126637970372431629108019840662249139541526202942415405679197182642837305130858627922259256082498521091040518940164998231293510461776353108767179735966909271490602773018858050645823994560059456821459313053284047921311081269775535005450897216962825049543264343691585211007352168960298281271324798561133068858432149213117403237172146160811705439580448839942664933528133281070272597524017069101673446942133136338241583733739060527439701518724420551256251990509171181022482093510740127934632787495552657960401065313947781461060710950633027291252275237897744531418237780329450677697551539414682019593975494947275894052442544487207226191673482130819366620453322959516099288163053236245349698058298008865569145129981424524478764086750507347293802160165926383307459501659520165380169445320432972795986631828885514691604714072817802905784881406588730280883472288535830292567863999618481800800137698427776770461892521659552391958575540824388585232697489367706238228226169827077373760737537323686949129589968619065455005480596006521514031752252871263795481095352369550098805604473362777865270800590023333100265489328546695111120021695908909608956348869060884303690919284004586773097335544931814102921268362754414927981853338700569653513337314896493609725700572509406039605572388920499189423650144098586547373505277211298455392480911388134070719652847562348479333285807045849849361384626226142938702787879140140842882834924381729463580569947989842225718904942310656519509311837249562690032314257214808776198173502024624044400821791243804431256590596019049039434663130312820193609806136037282458159381161332544561687947700224546687561467933380691797121296988989575699870480956194922867250764874438274682951668105183260458360602492412040510922459742452150710246327955913598626669175540308550626128556791526210802563603308309906214181902167680957961660465197173900831791323204762587807139905141818159831848929397583604615361817511395827917155108820308907626623577894851245843162382000231634809999087053362038320118892470142687595370908400098990250915477998051902578083762755250936503047631250860038620258867790269062826510336132368052549705859938528690413429986559426908783441495096829004289463577248221170278985154376334014274293449230921272686850366708619097591153064870375860703183052401360006682924241908900471002774739887878525154905713385516497103508755210702397205800706472172794826971888344968616570421647625346377131520980981826559070152487132166010339276237408200244801046211762638626479701157423821757156791562946686868326131882146339950856711706023237425947273226440796414449926825785496672653109534306454982505232305055951953410643562551776180679548259871753313805688528733933798616096872094514210528542588154947981457784386096859609495444819842712893662999192681038860578390331647080858245245008051396939621778489057578521760282564638357480611723254079275250011829869603707775087158383689301624716965937228361017815311212015021493850394944888655969623199020902212992744788909206970204193322990349335112706042908261640706278582953695839585194979023279235728520198623776916675842924854050383712611199124458586929538457424049347986652864566512318697726362481078906657818691303241114728970063137074539907725279793372007566483625496676173558007993824939373796211592162594326856212255119967568865976956731648752740896836061781023063047504723810970654600564900740883032231943929408287572097241016078774212857968920159094306192525955226239589277859376380514239221327676133496270826460972946556019333638643828022374694765862358526648648212065491550983618203190073048123271829061253399308467975078610588045793347106269284026913313941061968541852283262579839360712570400356786042889330952389596340964182905943508029509105730548511126312731901365186006890993828164858959715320907164830679702391299518486855028988046137485386782697686857436431860466472248203707629234299767197210574218397898527975684368028112237103575872266948587845228113855372168811442373912134409027871826356200007630799161373473778038796427017349222929819672801498567762381591641257863724701062466041231319950966973778778489944308536072753417309800302236941301431142407156495766079518703418696209000136049548171788355965598609338550293111267862640832021071915524925116727034876393136182057911277496791383382581370911412352275355356759165808742363766443084652873982072132314737420466581169954228774595384488246905217720567597565658015561010474059514039447279480729548375442209467338045878209811954383013119606592465861657508604602399564429065476412954144287462787932422619268641350412466445684843894138486785078848606035987506760457358632848873782690281008100223082417621763279883216470274479758709136312059629070905807168616276358849329741227965024606542409350097907299713444572340866632608390104049791663349952151883152359742841929395340975338419351092070378986137982929568399149794125258687106731484146508171908038111861785464779156121537672563496575453238936063388310573960097609294343678151916255899053410526040162494224494537755241143490920752563783277140114681430284520564393844393056798409538326447464527915914863019810878055297862630828226643582101278565886747993704459461994974474274568923234956158494998446605394262281628692653129637841232011516844783298209854489512075149592523010870275434618194932899182640116882084628396930059693014315492815566510832554872280825445687428423133078470616366705617568902597029927490472700356899448695456885377956001099447613345591552562795236627305887050583608449663221578063640685881708764968464709224005573910107045084030705183646090518640210578265701668620815035046574967792149467356055573815446683740978278604661611775605976391071579455981129592883560157563836985818532291267346064216654012086706330674202354384227819229688386975648141640575017205117621191416572501013472259802691368527107902860052165598850211235921993677485400338960221918715123343109902139203782829601554841517434670979671363066139402435689366324587797390305873115933925799622078864941441261067843222338358500142062197607307690396814290005392410521099890983377522108114580546970796048980902695987362999443019680721628781308964307270804142011711116731012611367873410191934776815771359638805210348708426321976941171061273330178878316534285722387531254967629980816641335586375300546621952434347218739321784933319554479804273569290344250150033141999770380460591219572593390953064221621889065876553562514144175013741015729248714629616504105883568064286546165235855221155968748834632857451498322642382461455306514271641297535961765272343024320226433005816441145387195388570297041886953030391590744352448617367052897048501526229648769248535631282340763672824309105259390248799444811268174897363614907550961871200172457376228605591736678287222227611801472757693191736354261237285147406899802316749915717135891642119061396929150045688185605805070363136191615636007091085843638911469893144869012718517071377624196555163266525385964516141048940264519633913513879957099373013802265954909479901766347812052038135774827982397850712823266421237714681043816200809146734131383030156283827069398696366098921157767092860329713986646165323744699019933370253749588084236182046547294006106098612152638333397840207668276357263960244629015143998279795675233918027984028188129348370428990272602079720089925455594694780263759429758478885342906019565308808793391708111948510914861802476516295075270339127062989717343373795758475506604628879939705755491395923646949497456249842348384304118742612253893642423951392562843684920258271755068100269919344739634296737407273293453308553691183272550861379178691111746929320883826164462054767905302913940616558029060401375916897557136635593776854197904774887711548529498306019033635276522910644648354769477340609480002322746175703046478768170936756366568983136429510420335683923839403219491721253782094541264002932784944368961394477089364369892586760209662918507061474570479565600168546866188890265036190064080089771055330575642915939685568897384851991384338847275820844861042489835252661742536723183301473018791481191438464227348634755494771521971990441710540522905181748412915229755069665647812217249600120313808290010349322324439324676877302652177069678438021930728709914792128743537590417284018867401977661339482152909297478612596685186282041586359398895369353193294806013930325194372921529525398455567244787661467649103441951758501415919787645212883674941347989495094098692247074649270992282182451937857610049653278794701837151989441983076671969197005545261187972314473890807277808885799814446537914459058538744588148044285942078521970781720198847072406179204922749220957904354647011174733843318621085306729718275440866319491510380348566997444385373711280873739937189429590665848830342886759976863454091113638070417287800058632239769165697847834785758483906857127044987602137549401883974014884641537742400324363962064949915256149821527172699994467022155831979346858890047684928612687741832825822811337936577505471742035714993165023430307832008096438296815362722904868379173462528669716676586896241126754702984634709615788490008535730601513298858797526902010716931840611865048104134355661721860686931394312144454320471304947316335183999607683851636453681430874812366086979347603317919074983581460102658920675767999247671703162672333501829937649706520294242410434799218287849952137822861326883440544198336572487320521880063946563986016252891603763599019263560865806273040105530252364957381650413730817905605942821729883212930959633832487141878090417560317465538270387492054142177671932470827700391450436478379614247579341364332992404367702822954957506941345803083370786317882173409987063969655076750511450699399032570441788780535636098699093877471190109663083334176441460808494425226302204483249581229288232119645539609385677639992613574933247833734026514760430484696246940278995396577680864044001001008317633275412863693414041344859089901073898262568324474383936645803978273801222333176312384798059354568475957996243813741874396606393964740413083571454741136957888152382874487288236174784663334096810515424738872243400350147186517386018482123234737429982124081181315426853293375763998038011013751684059380491655637598134431148075700850469421998102618897893623277281466573956768157362902936021124392712285827346060355833743486431195706813261633882864005968403090856752718265832763647997661386987318927557068555570042488056631925525399000277485488670932803058418350341628531165416445997710702894913434485763592663095977895885902216926129745721245202233861782269796091570971742908034563788747836971430429699869264234450174063915171806215849090051598135713007864882963934310888771972378952304756972258937499653902704618520696497975478545896887961276956104480530987451959993006500156642218259859161160749557864364079738785858508584231905220331762665857819955922380612488823716004869388797020374605312997731021020858642749030232203863190205703957253825858780355592467202443329892626950793246516919315518755068297183956924061086536658885882344683185409420087275278909197728266653640353194326136707414841038484009640242604537063186715667498671697961243228767946737462277014391802591822505865627783567457924827378994802908728149929805242717741124926235228809617551076824992104301149071508217604414503382560770056494140087611042817719204520534517103125340347259150721039240187059139035368989507183950957473267760740375876898743528699580273099729097140118465495849631687705780768902128320849482800795170010269107995430912395705171901421357039948807449624330112245212673446479262723603527077761041621067704092655495687919567430914681513282006427925632352307533790033653976084339581539727329046886009362644499843803257997636858293731110316732887180068034517895485566507342542291742866027073634759434941605058053040561118487454912960092636211807147839162091734708651384446927188519815661600207118528744050030558924211460994651534718223592691311463439156548452237334116743133756397870481351355387717760607368229459650214945032858066753556862490898709995597144376560826415824916724202285982308593998126298681204345453917827580298840701227327712732821611227768477834325491620938025238109928436243999950002388003536117319276002332388962553041444524281313295782180463218605750578760800570847970052079392258896056803110275866367170832353527392671440749695948462447942537417013780953689130635975253581144526928940450801441043064992983282396649036299816388160100418169920654037865871557919315605993321671803269699906531331323915885707165070530748679577605657859883553144639925988493371053658040046769306741521738364620008450966806332996982539382376419685972629215157316639008091238234584755729000537064512238970011616056582617876179445219682248702876396745908998575265143162662387724080200348338682863650824048050744726563199793345294580696892977522718511764851420386791037114416039598648197920658618867430192362268290871320099107229320179950786136433946349957784664337102819366927867993366870549507798548475664203061414868190149314523226594706244108368902316397646444870230906724909155379061447789601778560566734291083157607066821755294482541980917808666838460251862181721470231824617410891043089249283253722436581045049190376995386270499549696990999427005370923513420251834609478413706916309684179057798929116970417071267499699571613312956924638907925565911351178171715543731804637752353872961025637699933365517943290517641078914095578545609224144419519741473034012462178778909890419206091652949164659152969150528707557088735265663561048070566528971477447638429221318255491377892474653843580964513368613070590652910070799466723800337656894855168895946124103749147545440892612180389573086370373936946111812365851915762688642078012276633868114650693548835424386180008030566437428396096408963910503390875350843016738771199486216354516507016482958111913870738473202213944901297304044410478976817590397196190605302160459730363567044597160933572095502358178121735542354108745576179873918551633605774616504448449600518813267852166459430989147800696430653787072807906291704872969255077003561408330428363706584794454944214496423050996213171922936428508879694655994518811185492779162036680255921616948283243453001639543112069324209610585555961541625053310650416079115545285258824784735200888543977821386463825532327150099989302504294274427000887542777116959715292652488064195942734821113382595201044909587695639475174224943713533759639358123047367022304488921706299486178671714267756454969602635453354943157182444380465275962380995858349940548933788537855523096798661424119718531038901335798780775891310347461744180349773815381559186312334517075055928800241143840140174862819498316618969603671783028650437396631062635546884326461264835645850599196912496068709828037921891827729019051368989382419792350910322282094045815016306728813479621939882517178617533024222323652454234045809014791287095293155775580786374150139425864109075023315307282435843104942032921372500947624567076992752817892707614362885917321218393046068584553721344635890946140543859029880384717830612111261139140805531074040210324311479161121360277829711405233579759077555149848919783390027779609703354308508016167844221368107537430485455287671846607606500310086877965376839741599602862416522690971029573940293353842394746868408116908921871523022620869246189853880149276961498757106236424551586484349856192219294893077525638409828516894679526771612146264398928505192414654437214170471132482063565056151651380051969421480812777890448926799862962730091393011377459260516996603470164993714732090262103302864380130572242275741600055196803696545096663959648303784938050100895787445374992362369886162095406280603223567274540774799925258600189777533939289801534669962753750777639296877141920420082739399004798439959029845235411132986583119230610557721834301109669787004349974565539875403722403052070456609394484561184717318264058200875624218139831539198695121645962829090954662128590059720373115774633173356949562392314893786975983978487631881841751776003960945926382045005183554900610904769377702363874686983222784591991632886988686535526585041894076742199732520421943594373209570326182558551878978029441102675840469012404386885356665390176788090882266293924434412293091590322737738828694902912538434324598080563773857535291199076951008623344692620812007193254779135656051426325986284690710615907931804842886495542975668777116760019756465098251768483515123090955639849926475046628971349913807789001011228004525201745375049965832728015013937867111749009330072799335206299826828236195526193340652095232805040475829557616031908493562534676913902230011437299768421541191242490745662712054989501443526163038736870495356431433336261491825211723237741472764459209171955213741309097908393090033435483587481147143011228864726165055070142029123077192931598120279387925953627244035290307232720958846574919938129560531609855966523842841081394200909962343923345545800480203165503385620751182035277958611123474114577116246476782123393314893191689590255261485918777228188613121599400879257906068662314243530860979959321215636943402371246539063619229676000873648651390875433696498821092953175437150473624493280241843100060162543379429550286334351709661935713365245520242560486859926481056578588352226600829919308503855868933081206941604704430596192645290730332830046412024496481477107536096484873734763784020810651609676249694998084345621150248760217694873949470875647974792981498832979995046808574629929585616072671139439309343093854441478187012009446702530637717350803965033368804019030910305390957199646023994649286119063061532165354052618251383847099532786798022894239029476521516223958730974144097267130049582050460248502467105173152463595803795468242095315922059624586956246146029075692173385764015780725784990337933386432576671382108641090933619231870915431901847322360848448590243333646431210017180940414710989548551978193127998705106656599352970498008459244521819190169449077018899924417739022070427093521433190042942964508897149957227697204437138922182810366052525628613882729572423920061935986101329721395339200057359581027014013593874638443038631932031845003157534153387910827359821203172949279837439968827642355041812187882156391125510400285956642795210250712985260496366418771157744390227286198335905240240361638063164581791354314125603751117618712444657501506999174880475615907248324007955643014250468383607028241399763516039089348198457969404137356221978882160582013849056823682019357279810657716437258808101248632533222899068001379936880232760294992646076390322377929198088373152717412618572547314953561046963719730111835085759119666895608720331308479127997764431845955820736900813803808472021830574474556273220393220936379502480251986478468285882543392219233793084153843774049802051627914815415203157854288265001343702718757006140622870142280941577848702484728246308269012865701751333093674291336087100114684383682160457396271634883922936412929415019813070262869024795684769079381805084181944716199984126827184314100808193879881277905701770940335388294355682559883967050957903142601713889703309836354440218466991932799385757363422903279076635017335209801309048499262702599226745974993833868607625666018671596951755329336769508639686007012417940367415220857204133583322814090306582257476228942080391639248041874478454961614512991307083459006850229052115804011281883588051404623166516521228373784116267280218060614761472481562031014716626433848131516021548911757240109181167417727442335301673205370921407493016247084292125722094485695808714820244637167867594387902969942096119564170240647417430080619096538427476451652543457169582413282204757407632171340641970041996244167875448443973325827221914716774614071194909564964767679973832810823486749180311063270178949084938109964556472947048026757267349968955016124022043478324286536260390324966604759323997124138027315982541896953484684757598371309812518638601020010504723143186651870321156585382515275004498745834575406428943023754326797795794366574801023151938074159578678620474323143372838109650700440501827466773410398630052711539389657452949326287227796405469377834700636228213751462762007197694890129898267331091694470460323330261310431288780777979061265416920921523842482216781362910876814052543073465562557022503514224838377842678313901302381428514607536017436642635869578380843080444376062899466218677187069096429840439539375134558366252726659528607166443778932127518169239081223968303792313416202224815174650867675689949801802372007309861616868644366192898862289258776304013174533414295550915640599400073256275040073615595768911624822268729610804480191851783508981400793883140113344136717099952130257117175723457458432806891010510898336886009620402056357929203585587019218543669143415849404297889330462851867837646871691362132414489890834660343559723996591607020273637331490246661311156222514495129660146338747915199394574025956016908515161730673449805606240802989051800369022406199639638518676500898804536565907613824873242887551737594225992096864010379116770262202439583561010362052940956525478750082253072799682430248760852934691550850616932501828868211390638427881832192364828334222430693533906004025269332083883097179406147311415937484551650966203972194885019424334192015301900963248480739682011459255420431902632141826248382403272186806790801353728005065000368849109572333924131175629172959321529769060747432165544832385354841498318966473400493150707105213611676599024220110934082867338669127268928483017954353656092875752218712976366388442379596436517824372508293381911733608786667354164266216205591507569061443414474969696061296741316472633814770043378139441687025093726737929709742346152861344412526253747913634374609196180086738962407037099393072695210101913785375272491500072854591801393294060055321136576991365271131119704219788011967618249386125950408850726132524561156147541106046048830311563521588154847522921001372365903850644830679874492703534421829168043264043657197658190742339062418162609363507075966971357923344701585256816544893515145599587651993696562310690047114591945215845675900344875106843041559198108351676703337316935253703154871057310580646326152054077406990300721101248597253617584023827827147417093578005640504997796947097702588362881100336379543807533880995368531127543886488057920082770275652200923797499318137673613349259617690210320330633766000749845402600005907543272273042452679644697696596035101713594714695190680837225343260928956990090671866700341654230791358656394060489193734178877162880246820303539080093377269985206477247972906887285608774923695514051873527219565393871204256560332628926728040296809420361951568153556061833680964910817469231235160515190882152962076399132129407094099544866810431001765056118438726778926025959982386063115881775658775030170803667213070824126726130357270757407237232440296942968668503889365746184661252814765791529056682830105079373666600182514779819898038886459455912325974851423550384183435037448974818003097184306630174246497262949302699937840561091994597601399807779306296766329325888525456133115725682917016141468771764124958319619274784879520358627020919705632780456973658501402262241297603705430081614377407284620279587133208664475682787348589481597460681054311794772611073990003546943056044565278784997728883591739888716279267529831687652493225117369401511984263549114472226115661318032990876646437832426261507895927841956306357045179228592900596112733436865743337025090835595643584870792339844281423323237208914083262514718772586853402994177208233851774817315974392775806217927695534480745192324715662757048575817527089058020814285763172876738437114680159825897583828251047767552891323534682904069944362390399794466964894049444273837872067954570826629903875471079353460603782154057112838254846897429699954134370853055391509042442112219245226976507610781549765458365408686602956840612848540008189368601315589018135163802346634737126975509244383389188488320192175868366589183786068910174041107831863334082620296299886598934487739324547528233024702876305064050193837248143666079767565223945827792131062701765703469043654733286163339982393116812075255888462336845583518212450904428115837945554774609760662850470077030971287625431584540676997897090003334346995742706371618670188955114121137875949067149679693178977156015410173631804396739111505195521806610873229522817182760035498694826560609990900078939557359149691761450810720819533148021459324195937539394098342672669653023995349124139641143148383917609455038438036057515188171650239052287859794327565709098003870373803977485016984701190082508617074266468307199674547650993160264155082523660157495529677261954901366713931139529284752965051285065040887366151513883747612469172466538214366955836785985777224937322064273103504095765769946541066992791736244965144033816764743842427536734343623969872621038553164709880249394252302463511028883335222731150665564036285800050548316555770474025385542364007538638450139129792866784863832220456423143454250133729407283991763508887861941691749582271886893588326112532415221571264287467084119499525089117387814822430253038456893879703750686209264169302534564376774323909808381996460241493445955735569520074664583221800192179592277811011651887085103966084852562342562102806951931387268929721299140191564142951944327307627542714454738255762447752851946197942885271420879159796156099246244248123067527838705205368980069517356115088826569849761174953487760863805202697315260008439729484671946782367237719376444413801550679531036071880714651811704675667141628785860780539897718146775734293466302922530925097809785874283691491552944022838777160616054606562886978950821056568701542967420121927853251962343486069900270656996743892641987557474610553712578856463029943674404495191801628402899231497290728053708592896916921034957886199264819239389001901569296360292170757841461717115716233302129192965005048129163535643227786790802226989895011465209233280562851669338704419106672836245147379931901974297810097662994575458105857324827565180151920802818222459209317156003197289444436518195952878416232914191329299450580890864283606099465801209672511848759883775678227968048318985837469594233009952436283493603871580158482698159104271266681003603102524226164130755853555676730464187735009895815006854454268904015986604427097882289896653383039855221885588897645779719785099854731935786009656708797449448819340101874410995654952162869516375291907098591703938475065727883243777135291283700099985424203124444760558655932671801165208837062379065398676323897650857263381823463020063393115610449006670315864731817543766399893220659035395251400009681965750256708191469024068077315019737371563911995073831325711252634713291946097943092056788288971147230616533814655306337874366804092431927301414177492847754532814485494401571703925847217258004077162697961346767230076509653433939196787241896368203668050182867463480039073839536824325198621852027875607369323030510233400084949000745778547678938542918409443661925619321451335540861242879225464868747447963551927813627985734507748653930510140634837556321528390286304941970061715761006428240682841645999682512751331711084810115139125628504921134282608069692809833557927299083363420592038690037156300354749818578209193061279437317899835765417925666632349486757376611832506880961135693563704393245923805939064770609626010759175765564900247048605237853702564869979160920369808818755500335166527984287877580300832284209476654904091175661650193987396012118841028226386553995520985239061450358737084701779737027575792842694882459864852093627557398861722740011266336661892726957826175251660471517966672018498418574237073791735769210330973555510193025447975399228949658743672280869977282384458350473395118118327651177881108237888263088961910087661961797169914970499334556679906191553383963709667268234392370507892766362311988478931034822131693853410066932707123530187903581626847711087862131696030668754227063800855469566974394292159671587656633286241897269937528303321473449100715794382104739273065453047371736276057924577463829592973706046682866554335064934813361133359982910976064603131338486372116847962126851180533338773062372739465053005149102430535710078721336649217420685412143028310602573876067638721035466495110457542951486746722059437404067797943082056049956710343825833412295311117166728394793963813595567567644743684590802432285091588351939699851442053004636047530554901487706783875029016183343242516354429522629425145359704808956212273894400510920823072681788927908888291728525473258169241012532269622311557673076403672630779434036324107844436107077871984330291986848193108815675042310973066850368492257149372248094847495505580579780830176969189580534094329043823906036171364101679119296487262272857049633463902779065541233011130455561813380468779274185472037905237738377812210374305189050105341450713374131310125201716410310143789626842393706022727741703303439529833620282233296161220751522132589938023555747353306948201885187229060170307350002174883539163591431942085230682619922076842763241720905742971512494693934585588824011206132689759327291662118171708925312226125164026591260404371746690827493434176318696312666950738452846208323136880645606454608472647094659979846778300087768049803332034473092480940322139278013320400674978911986326880870453497089341481348000925373883220068583039944600689732564331906271109548726933985152718961969708238322977176269594912368808933084754446832870183267391519644913294986363534189142591265299631575832180309774659530798361793422250588144652079092277940860955730691940874063801518245499767089251149554741138370191208326276300555594588352560292522257968794954149768832637603754186475452023359950786802687439703476580818936133396579278464995434761159957736518472463488833858964430808930246447032123542424264928832850376561153868908920444055992760417715252977094166724221259865346192925951785880338893172770617799081610543717685814628317827598038476702451171208336498941565926432027221714740374547838736981745000584714574556240961039057153676632826012708542003427409548094170976789053758405098820703457607406421207518973376096693043980207013273814268693930607618929386332959554384656389504435454807553192680222097925964352024874777298921722392336516181335649951863403496216623207419021130791530364638654066183140998197661703951981176316929526321832444217553380774017886846514437785827611804532052782820389100042370270978247827485879900763242868198034202563980467163487373035577443523551259928744652530478968751735378138289477578831405340496411830981016183343330826924330305454896275452098013119499969005240053937716600243417510324760423071939543494515336334104334982511330188644857545238486733739432978651284360410710064832860618581629644775370994467809027255325929260408120372803978665043230464097516842255802292863577511740850681422968613955840770957752808816819581804957345458011943774224524718905923110645976339299655863393717752984532141978362593932524143482901633290229201939895161139542403185876465026457951871166866299807499309765919334454255023202505136563977664817285308454039524267095179077095635746100550464524744225930934679924793284310334329172776276727670929381836434104480123657619007644575097008811978755810976621745102703140964578990203160313301197721802591829846249009101706611654625202479370521648816065411667563868864559429848597106400517289977483677891415653951038217662241495676266384710495863728368579920028533051929027652487512315291359441310423851036293531721251470232091332732642496567116553030726608459478557699631277872441928141110915531336540228095019173660454692870856765222504269823597453255083871867521146628991505091503998377284441294046425662728026664682769219830034577148677794491339908560719844936661201151780734689061078606357945893220663051704949376497711688779222045141394165127935999437164493893277767092520558480117275594509407619033082581239142598971780418315761183026262131477656018953736346599563879952362691670141389960656834784263397444704701869538319451748969694831456056798727959726828426558681047032821712466693318184555943420878912203677598980376943875483301752063415653277735790472646507681015314775022254519621404892103338953613897181975814831882700507386423221634732411416934843321950083544301780346182391347121686484573899113382199811554217995915168313602960610210248589783148153819619665987255565866479473341560947941369730208689126545232891498193447982961043946834443392876293092467337718417686167506448979736926563242151579445328265652509522714655438002193433035711562248111800641101962506465769241604572197786698576387315929558867719648202273952896877718435692583093068127709142785618187045752373318759227324176653373133631398100433112132591601309203179615546343472985009125568342057676805551453874310960536032736906150596075307524288853119682621472734152208042392158710573669516111652409266662895453564074396928406350079689837544153517420793414748700697913640714812649216975011843005742596023869121281132983510123826021587442292014516091372701617492566395413830964855852972316395908616468161398980428582612815289439733510433429045161174339023375378109838357804970821323614094177039592358245593483315328414768496114424399345585506039629931782660160227102569315658311413512816403318053428033341985954806927532464538567973166547231748401458984765139470048931500116923003585135355653752701502538608077539882669188084219544991645771127719947980865646481972468486153562979226430780588989419408420732696188581210494548807596484602748071046536224800250800607885887257400110247224525938586657244826671308973227661625012786727934515755699083363836458971371938719684934820261276303518767093566681817367534752445992518529064386189761855732646203516498292460759880053046417099765597378760155075926103440127770139945307736791812327478429047517146870572628100780090569398409832311796490323520024058573048463996543546996717983884970950762345979232178081126733229260267067844417308803078668487614007363458765663398991685194937322148126086970099698977131097296362136829780135788630963129421606512442553171515302259738725843134474644040639742147522257450008481587324192188907067788979835490278482452547395921435329862919320005747356990999764905952542352143252579182582285019049059572633520494667946148038134033199601994246602815040905003856925515719558820174312229251670980341119750037727276049893554901442447745380526167174416473554386447973887036738432182135748319029159908131014593056202218524821278677114938425866207687800198080384721831202496851437304933959852063057256812945657361571036769638655461434420221325114827001401110343291667499945008460394865882597768435840662621650896502955347823159324487475804085011888795434142179018146487507632667346942258641018435669445105024300173800344353331370667954949921589191090589130239029624569211354120717101278522789088976195542558318996448958686455207382015245004978757831753940301174094987118985522627422795206058978608693462895518146034466533067197906113265633487612177934416392746383253557408961474455770250078790001187698945108545112645734648681660216031183782560131512191234530543644275983453369727159666748078367318388001070764861766561987387754649892854389637675665438859330086726372811096933641515544628969563803364313480086687289937853551861322821894275567100403875617061953368428646835774864443226280947538873843988360346128890323188115220462797350213093434588140810376202170539687426786704975956681755137182895880547471029269773784056330509844229970866734158148347544512694159254701396884914211328011481777214306606708912895048807810602830950516581833246301528525233835431140264841632772927079987664664783307200133330463365840888028481587380030360588029261714067385791589712736484211867150410845023839282469680386846808426008235712060377665643062989692674071296720089251112461563681359263985785487885422337099192141767406236991078319782570541515992024964217175352467609395094746854035609582573686048832932511302629138395769717939660103008744849218316872699882645713188331730599984195112129999373684443522424541700908343374063362147833089408285121106654986583483828902674327427359248084726247199282484263646717812027895393085414096264683475205276464558917441260756832385430390790827392325662029834726823292240366543120795493411963069427635011702216608988082436249957625443613324934241259998940815039527877646254895063668167562944312660596197922155806205818912613151216522039261303140788371756962516178420034113157136319225593156084346855375170420368659387398412596055933325496663281959984319985063370402172682714992471174389718065807286205638238771644348134894403002999798763797685056799880856500377805455612983650868877181868602816415837002953473287902214672921708054536365815197845087846545133258054863345500597265612050093517179935905662530547702596649851400888022057128211416879755053076987094650709805633742775566542143634577949023219514296524123441002014662673362719424944679984802431941936248206244564739749386827826169894814790554153653178708954493569281930816668897153638563160898927425166210979818173190354964481042416592182255719733529379015557509268237952316872241088941012671089686948938687857420012046903913900739128824607936981762538586617784834893360538588011027642544493300697475252709389115845312691085012700492488885161784123093860855818410880312974004004592403340251336500802102584124995542403584826572968278818464544406024674750680721570786689581242677902117986218894731793389269349080697134447504038392250794778297671086931910385550847374650760283430026930104358031299944210971643789427937088427350087018396732919935210283159245900363079657223650990646697113978470567702282658262795273132084057898934643455896617496315091565542153387668750008903987730308978712915985898407030950845502705359446224399324668401225297838021249899408704909438665651160315216606470965752447653696407604729745273630256920810081199953577667075402364916178453439840321096767583542139856350401888972299503817205347950579271611371782350589007651291071746925948010415866885610031603602563240738371127434131478940422686822445686671353593763299266501037504771984907161643342356884516255276620699769222256491901766207521080832183122425771968409133503792420451750271606556405951598988554884764759078927022405523718232515441860313935290486595044647745889664204301604603220281721451488935068464085813181920711027572465284170714117761091302160982038447825913050782261500256103208547151175044533604955115233133574712170208756715075889656011506388990413562552516046485336388685518309652309243766256552493991362314191330993602071768809940770490319443642236685648013650589467173572691949308557197131414797553828307257924898486626816130004174070957023978672969025741759475737802083290973396646248940007255853818799129121571138414593371677732062095169760517224218718390237509355110649274586992430825582640571663989835614487352665678089398244287472572435808372749992619192332868461807366280166922114826487636514237315271215118905202818072594122076669949307095883295948871574924738125054332788780470626929152272935614804495213188464303997239315489778032946377392043279522316621804235472368754578417257022406643459210208370334564156821405995956585044575772871766764871357558741466698613873013173398161304342039187638824172787895211465858790096690708162954995023794444502561219375365325642516256012093391945621569756487567537194778305789707506520952390398613979295055020959234028891065945501174456400918606809577146576301900933920507962873215549322286106141386738572202831603736460764492259226520263040369604452408139099203322175846306475075035267925403751909275000511091123498244308717486744696436332146281176651085520899886207043684979356060867674340180936913765915340982247229431206877924512574483773837558590212958779968542125359197146915606434652911207327326856309978647437685430720102025654961575110512908401708958128587038258893976600316250364518850624593628292353306816290606479283773763316517975209861265152753229194766867781008682817516034801778106714855452650782636009182295832336609740184245631497037764686062945716628800981596039477807466644073538637657365498724628135963753189344535162027845561688718590883635030811271400819414060768906384744686603175437169833406742809897320582166082816830627716484664910886068649367516749843984196724084109483615912247128662940687460858573519336289413270271959727764306680837635662476632974267181911364081230971041136345692597063566349273190819580087631680320984498086348004624209246287280568885030517755505809689415188412440311981103440752306546499488841571520227339747055755824625246649109820771712737184287381781576960879349394496552576867065973354610930809293564904351952828416994011336238776435144586805854951417239816209405283125366450477389072249663235589512286864028628191188039815072374482657064252008108667552438581745007943363170867902315275679286353329352304150635484259044498272076374225120800642429425582699491956989040074737118980482725938428114805719037171680757524402529526485873527027378686827002792595210924828796023904845297687195386386394098392514458774550177467109399713255853139629840596414495440427282853504183969323994148031379026213784211082411350920619038721349903115172645025780878639445388400965527547061360785001623556493786756645162169628530142898611124945160749635219544577617161281351771484141042869012424182109971040501092668419812081900267113734989758875926408054337924120024143737577561440255584192861731154829725287646802114875518819019748170889337727471454768015542739392251006574456082545177555371289758606129027191161100743134446213706041182356878967848156871299224438957612984233548160159414988830114366452443108832265054644559397910554891263564072576105896871447730117519146004125480328321196755339029378503467849156137573372265460415838820439706785172369255230772372632634998360631124432533219126687218971168608283013144833266858559053291680367661010688101428907881457349334534161801802798018865137394703655118102893236891313392155235989289234451989048309657529050896863431952112632063678197548265652615558144314811792046918404177388830235173993084062923343911497866672043905201701797642106970479808114995621316994905679952881495820104510959854211001862483236195824392854226442950441184193794918620897929524419844915501255761169270345125936497533024038504674048176754238156823488030827546937677243963676546571903879882189617918635474599981174188691808607166244194278064406379751979773250316391468209721265250454709217450473435134860945758834334195952729235288979770237878923397862498648585359135847937465832139711827251516904964716417712377685603985447153092555700590336834145687970381698030814319654587090625648867404225696993869513266442404273964358003440673972190690976328392488106156636223590941171632757313068413964225435131656791666702780831834587507898471281259927839121781956656623121968576271422477678220679416111106374533574117006780245036871804403576770255998640699697521543136546569733090635044791549977483613086884912732552557162803634948193694145697189197763484637743401118219052784692529788897419502001942443364163196909577347532992226454189006749020035529223170474978595924779159732973710250449799812671131042013038832447649605490390507532306739585047620429658352024129450987558247667734636422562783463274249636022334520847888827752956959215594217882122508319268317973321779328919988673562949200870044078232428014967690719078883827066288492336622103124190365490782526908955721131337619768922183511888484778068564106910187708086052914011588154812977472990517871343122573852939313615319141229099680482448123291201680563335048890748290030774005022495115105579266658404617829544140181962971039553833046644086581237168829196624249427396619857213926132192703647309037745669039759844998816573919899115703746635531830646971269159503993429577843984979496974333977884971906180420404709897285609484791312987520548897838988762702387022767083075068862509487894538278480244940900961777219442054408583890260046734670182489651215691294474873136839656811625418434086505125852494316317343665745958740942641111427372779517583055037481321391957224251948285699296250527763463164900648152731799446871437725591723540816529153862647488725437995085083856368604455217049177872387624966744145703568231302598073696255043396115129978901711289511808864785779454472350609279293819187311042561441467690203928254158841852816732909480515762455631759373409328919132936683526359740106596694148086551013808015618063593940584535511829577776874161700784906772005402367782549883449086767642438771766966531654310485062935121550135544945642567727009193072732590177748234798490945119412347284322827058486311044992443155539978851475611026084296508072782754719771784753710922469820027937796341847007854750508498202593977988430510937960249535034599023361443797211008720897969778689439589551231875143587983500011067787601091286181102937405513305623556396851155102435904520912680435165494122937958224701143478775543804542164157440353002329994869230844388834870677607028951483627161452772698099791986388667865747392982602396295267251694600011432137990817030219682240592653534720632630474334438350437686314778406867485232723319659835834049838634249419375910163021176568309519432849751863647828687445743180503823067316089910833312577926380231141542370007221536234574885295019164881989282265891886753493166287653153927661680859794002241397721176831070454024474904883774762153507489127754643970772281130957796362700457064658383989593596098704019882182985200914566206057791679522556141364471826386416068368336968807807221888439333492376922440966714725964855599328974521754221012310245858104286691512364158642863265407926818060214647997912794438720479272527355099079952539380629277357238670243447198028895634171403172439449947373177834890722219173824292793336220721446171406814079698893326177694653817321390651976595341883783338928501018014444010198430897798969849193258508621884017629035396600752298293563708624505793342303553368905822809370733232414323848166550355625388844297705055184543965447197462356763175875904175869968563081006119567829818716990411553050914593808144037230660041638572088348031027060887099288019471501350117362928157785217288405049738169522146450948250655034282355569415803391473106504708348839311144582652476949708000153499152167660184112943271727187563020701620222474416771471631451984319671265494773717755688105496573284637764319635028971874556009157123329806500990524576712193360745269770209818024960843761269742134268656499672690849652186892676219581155678008438263033259960460239386125763679312515986777646128909586586014161956197570819616242464389239661484397107110243577572928754286559424487336481519044981358734529323170329071093719864624239382921043560880748599826117134869120310108798609982476474063934327209112915257771409265455627482775762594470449561663640502466162877609411586156995320212181268794192224017759510962117829107561890853307449456944897159508664954533693240783604582420405248994981374658801374295611602921815900835943760244388188454295808799729505773191389629417951382491971804048513928269165462619648000028402605138638155279271817484979431292500157990557434498452828874438818808487117767425966364305427143052665417597988097147044185054516321907829571160055608241902531596931313452373082821976050170410156055800146282104267982202751406061854702057980672030222862165070305699527948313238474865748837285331266347157667630843848117559860584126962461617740353337722651442987602760641394202846768060670171952810380790483409033757190322396993661859511081175091845614561071603502127426304108928026787908071805187920959951797642540585227791644437312571251735109237918215892677035561351222212772582970367036984179629949299085519445635947193961803260372885021863828108077273383828660497648355703891686254665409328027952057674978034891372546701508706727393093610707915206285485044120828955407832882834511802674078357007368780301305008638312272736359001002994037631915178972495184237277571522493964258992339833230069905881194088159914045170606464705879272820480495526098716676439421454170210825732344693541080815923303302232312820125991378747482344674158309857344660626137947573708337410667143494805760086901341269718039812667280135491347324206854944144600736378864563738304609857136983377261040969486972387554094563020933476487531669837714108951818951251616036798264067563512891984310170803472094685474087633450476142040407294158524830889904363055975171040022224318494779216171968996250782597571672482090859004571641509413302585806078512280216465384505593271165624896274594376870145592337229154472181678030414492286803749221677764868780488724537588132861144530945417629957212072226240576092501225983253249294995374977618979083024993320212586915308852086482145763917252591114231634738162443677926678096874995407274241597345542721792451781777900168015226284745964877652492717016560704643775735964188742316029165961785699712798839925100405642987183088551721726767435751763756877946552879337013219655499104372089022018207031688924697548381993583103765883623382510522046226863334891828206396293393588765200516297612863897327080507084168082332526818195213161072736233570569966889038257730777798682627787144371714524799676670837920705800804127350316670352556796727864701516416521230101152924905666395992476902486461263891444596066664002443595396351988426717277176613133074432844099535443796440174062972050737742333661337789477745164575961283942659470924405934324382138617651542697631319769644312485696100883770406366120414291684823471592772172715150657615415468666049601511118240905002005420367378453409162594989951123112309020624820207567787518955627587410942388850390397784080945780660076426903953103292020352486963053399248912476877734408079100851292425204155575850598134596258088413939265993862087215858710394086950132972717921813204199016140336491795005984057681839364825303488184522772766624010342110132200217166388982130092154674294525090302674718357878389666036781779074832572562046988042764756499187976857428643515019584926433938033950014315808535872885892033071018620167030751404679603498446690422392389691461489592912817375352191631219578808977524670063267445631944021692326152262250950989427381859488045557936699338053972177611292001714507809645477755980231262349132630893712028726931914688968409832934779529007851792441298022318110649099058309641134507268025720476915727866357987223803477347820071794582776521231327952364205144356054486916250800679631050764314944748909452972627891403075997951298140471271483567646541426357764879208876144510351909901435694220757781926433356258447606684465888631384504824397954913516136845759096475490954395806085723509186338608656297634675479700112333574710140330751796293503395589118115456862701999043444252172986482041523684921097873021751560351046447035066150243197141740393061556972027596956142582560499718548602955796495349625466160462273912033443293566123663108679399221532618137152974042179586181605455545236077042762575947058341606141365776242790141919637746128511116053849677139695391542138382778511592145481668973867371725618992099977861458841110807749555509226047964579503196846539740238061524358559220059595528405538051791370161118604610259761674452442462141383939863287986692132967803834972081503030204909085431414694688041629367811733236959660697324561709963809582020948163549757044329040404826412276652394543618906006377459739795933610389367937101463756025931757015941600015335149087574648466531892467651015890418003815006356245335854041791172867960814229130908905840513400815557916402026468371913153344811749554058950700304961432785126972688271209740099611240719406734618615872694867446730654710495754483575811040240939028675855401182784623521421085229009072427475336161520868895123301692314352111091545693248913250892782617608934458383536767676082879097334133709486562027032958723471489287484021112595388730879358409556008368649661829827174900835885905035737241069632806663052110485722064690379844639116450314900701067563783187959798288050751298821196396122392825064678756313100498236157971765462819700173014740536309901724053898504608055104680226581211352236389290747921469592241911562108239809528565040513527356699737835063310249570376512933409996590030469802828703540883846292070009589469398391284544303611487669839665637766692188208815016444284709919777519281926772951888358677005720447156387926488398403123987467953726336459835266798021602045767396440376560280540093736093490728233784196399869863154748413815218559012191654617237635176365039443526852013566945169311806261658038001922567251911391619059280693314099019129574797472466304120326713246221972595094907463391435021270034963816725749327541817430342837184874115744668824995643617379625616304512383901391895241931846523712251287400013576453749819131181655865274700428958089327855840224453636179541826458174402945795143011398955922738594809011065313125047948027881789425839472888622472159933659958178769723016660567111581885567020353124087899050696874451365257354980282963079098750766592341983528064311981391600723889025032308352557749466330983795094340432514802562051611637489253460824657454295592266773115540901542406292417179423054004514271341896962856866509096323044695881005285027875012296749708820455705254680432777565944542094377908540847038267380618702982381777338084984128390187402701150563874983632448142916000673527479287917999467615140190518129384194384471619703664501900293989371565575221916140811502242462748847096634607332134072636946122837868444276397153411534246451870238483714181121903534575144461069749746773783509181244749004608977936022714734662842491340999579273955804892807583080613898616381124745916476666361286486146081224602961038945459292586382369305040618903799183538362842872953226516106020758689350369887043690410164556118930752590192952675891606766847431518764643269883037334390324654896500374857154908266545017628158044735680607897458341553955269326504387169656731420190570315515139030851356725184032830809647611283619059845161718909210374554871270694420511482327713101938362423100971728343682235232245748648216411386690014177832291128913968368224358900220924073925673617666159589338247866690662625293213577610601172090144336957578848972866963483394584468765634921330676094109211923151819410808962555062922145400636898460408310421831648921692431691887728029199606178469267823254884410683872725794317548480680239478095141025300440076582247319722662187508362250706944066964109574992134773543581414868939153133040768779816172650936707874446706078495567727279247580805674661389687971244728717264092139432213351906366460050296872522590164012984249658351368806219440371639552009834835619322557595266363850745372573355484301028302818685758649009598710926873118670677736806840515198382363691399823156655774288227727348524165582304379206452838933391509181167775647306563809727607680779105145451510484860411594350852197434581599988656760157456752119058750162699260789362381471006435388684506568090578860405114862180619432690571744108659069428764495363263063017553216359900763760594541023730074496013469648531203608357700840416070571533582717953192837296513207078732485129593528795737998870169977887124829364933775299335952259118228039841417560500726907546490180596024416457746760954903386361277988789983881112894105028343882627623658073390533405890555508039303778890871971514593599306143856023811525429181299012216431136117283876491647230590036859924412132741224190174257193114545155533472824543891098108897010594406323124513566379086969227764716911793194452029460274050187235041681791400450819503441647918343430628803094903890840842597421242240366826183681486895631967757756227719612358541869775475975601440619407607333889504299069647366504527024459343297403762686733006964443784849530238074308147117419210206694573272392201678348768054889944788115717113338817825871230353157894553405473516284013117074852847739638788874890867455543594548210193312010471781944332695012281941069036411953155810810350597772668207265943770281474033169789559975454798767106406827186891881612101786115950414765456733840842457302678997884062318032490569298395390168196062030367266235501529283028009654160249189282508978778868613939383525063694137869040995937928640583594143819466676669179519611628436788555505076449131826492214873162087275169777271430212800847889532574424594975009165623203559464331731441802120532277768334245036993774217429668442017927494466639885887369848605355189101909651368167018071934221530006207726832944983113831620326835514723140071551195021178320031891505157492750625330371861978573514832315003528226555623840116769924907661113748837546167918456204911137313706507544312855285441398606989581054440968164577518953955739251357606653422146078359061747965470968695752922128273975154496019972520895933345834671787380077560177100209146463605407127184469090322348777299970942931032121950497464947989482722626032372688361742986367530499820360668701784677050902900472807688562712430028465160401300436149416750513272592944638692311076722082421711769536937726001778392995738335621794300721816712102760617548579752404351458029936383128412566227422904270486652489476955756663303067582865774110249672372067103855314744382638698105182688296115875286957443298360113502706616367195342275770314299190768634329646931008124450696800549564080057472538517039720146396408533967180568422650727314118308367582580406740663102376725700065038906446946058170774416252243976378341850784946008487557662618212878146064251588613822383039451029818135463701745553133726679527354004500319979813753818637389860446734792432526400907534710085473474058746242297898817861326086580335666000633117152824015802385203713403733033293118526445017474923479825418894324036708462372319738090762961465364933901055331583123297819832145219750752185731343077626200374429133171895690514870909515689843520249938372341495559627127765628956587186880021762611508234583259217846072903593089231717666180881000952517433714004218359967061749489940406108789135113830984227555190302355976707269488201162780017206454490825340408219901532199764727832008778245991552046369040742385005699359671792238112272572312985240651737113874570960263430489756247661980113564945216317711274019785648143439759549908667706342097201526163594599928936219122346975060408537606692091963462682500074464995312273994959179874360957905231766001867567264852551674773679797753776642277612981106897207471052372374201242427907980884898055610264730331005205081285144078960931780833241403405269932500091866620889849306938450074213072934107385428785602815417854253039857902910053331696414532702681602381794413180016626881909559630276383746228394850545632407106440119392146552051127538146628394849787840563139758599779735955160191200023264765606125109722561705798498952668640560360215466442528957259538972407530286174530561207302319161912586916060960555676199186808593401820695136900943272200925841900288841150380766768926194189723197564942994330122589183552633830293754062208942848350329085806524919845725621451963306241701891261819678491472874795997129466689837501937189467231408781932114599358529341658299435783837753931206348303315369690395358772260431992211527038670181210700905642828159950444055853261809472711572463745951078964200500455459778674895527597521476616263579851150387542821561206256108410180871465289837365707014491474779645169076847945306583461219435863275085594606041159608892125832051414444825287262719051884967585645298027039507915931811532167890336083534364616446064576963902334245556741893042813788632396366843802676632036389896153696400866281728797450055837690306966524148948043646282712600993507800014017580153186382406494837473874296118165613238454286484705605125802806425561498038946003503361989150722788558415945498907072415837214675637278741883531515451244579834466468876361722911300200805801839800524978251120367537913593180072173548944338937670852796903432523170580747080485538264310958132909558062466534059678696424276619711169557651068491833701371419817617655487227742389197163644804769609021729372669946699186877876095492088403027552142675360793930834187182929938476193094298856810817822947800457937529939631609600966994302424036788145294490275376758331357646151710911814506927266627807999407182029453552940179120357008402001185823820467284248062052287623718746477098724582384167100144524409795904436622235828267092295934917979984836558264796677887350314267873459328206456309919273864300904660255760553164665868962428543418825156059116655839383833419023658768198297022701377774765574651414232470601850393761009027075918876877522251529710794623862082876311171773190439136630615618898756318912716506521680321005563142875285236403513915759188046158074590216352900478413988878324043555432830757776773186274792469513722253636012957766494702297522302829804204215403446139810077695932629349151225829348535561072296680792034771045414682135008528881255897197248399882689196004225320683439780468906788189901900183813298103426401501185958044722928976166163021141388940128721557539790865847140979917901479059445888589556767397465024113846643887406831893883732190627219191647669259807236557987842890969650065551232912708323384078791049780182442217196823633813342371973740027123407106337761083873760073879366982545202246966756736685430206975045331929819883319127656890131835325734721647589340203769021922887290271977468462591642680144803740485542557205505665891909113053756400197746867850159592523856823599839655735166754403216568359169833586684921828206085625470595509276095768203539760267157871056334366182230569019538962121996781455052942463215988519626039169049101540054636638209206573334568939812263096037812313109327239923658085349197728139644663878396150243509238525273864698702647792213083867664114875625116971630390981982386237713005137829375691075923203860704909344546845423377047209696323194750302500180912212218904175626492562185066724139141111019199707598195016842510514727133847052088890424947051520979158268483757199264324239563155609206016298620998515887980634113175290690682418016605767756101766541143779832338438224254157252758379476473761209590964758200468024662767035910253301391456742110054878045970692199380152520173052573748322519221223976532204951865815163344130336156426489314856277606758128041446592529834507450129728953002866783083388778999493328889327616456174778887262406722457749636529987584331902445503133149717772066729147431319618778924922659114707738221832538952122489702464309519274301234594659174746137073197843511776509366431956183169149857689144211365844890380574015240954673842330337376163282544027733674048627643571599737046569891686145287671708754669123625857043762730899982632180430420688645265021290853729813766131876758582143693113253048021814594064430325246570201079881971239963451533381756487810526926714053012357613102597573511601031269219518851413417062764099059773965667441359928171172082694458027011825319047854742411384497349406941755481555664461809920273468463561031683388910811200962581105309414477841429515046692300944666610127310914787746254511166285148754449777959219579947394649888934384206443992124170432416680900196199850978306620880943510719342114783530359636779674613947297929595385094718515734895817659769357426859867717786429227497652364534518065826412688437792918327106690360181285023222783497584939836834024148637148955306710984142797068815087425591547270926154440367641205855012040804514273423324567027417647490175066484261549482056508709581324738017273834081173195426464809550991559485858079106312581465538760421496452954467493618605274812245232233038250438574926592084255855729751901768047709028973065929880066771123418684921557499080649595295591493386234493531785055591492842318396449348204965011634056581654645413497935771627341891812810852830605506162381788521544111685284350876531495737669117411896680030204538970256818446582591071821325916157944849185336240364875257018344138109255613680865538428501228224616892999041852323262414245353654889781999818565020051409289507908197645314214310453449521759576729624467366811848072461261117637157197505865305865276047430910056848227834599698229861098724804250758767025594146428133352863412954047244243526240374251222446395282988932736400447541419942869735863884175828796734123563290473190296520853223912241144154303149345546785772911380243199109539128332757350927250225451542572944257609939402312699117621006874183627536031792727185697216350635639017539611385676639587591632787183152531621204094637802283719827119351184858452445228498491025993719186856140726804644066802073408280215636069431939627980692139768531625540406747778371367744610859723057188038099553603953855838734602791367518992709375593309320152450724544554755037121820670966243055799114528818707423292867723020896918301487530260854120888834504007927689934623228842879736088123994802339949848114726409138236227242085903184754224232099884434429118384789197513458881194238036830795706145886196591874354212684042433183226558653442632695683550308774614168215170095731807890786701812642298872018095477719345044346830104616638520708741930330869552477169792674441169545409635573106667072688163187271963021987617116853669294346571135053919465871673315188442462245696825710100464524120717465936892578227114811615394063298825400176925415434407807244037310247248232425517795041410319481953186271660105475316045855028020791259515312495333047688847023897997292908566973057810943183018242590958384470425111114042158077204031348434021408578265498320004058881415421392599303100792872534971112192459473101159511683119764236851887773813305320278583787850904978396283227114923584719562936625311805628496409008150804583609969580944855642038531969955035459356483610202922733372111926969942999597466651851201047086779461507756567222174286822216553001299093779034405730882938942212783760718602408555925871466877315792376213375101960465083473372718170774631915912274260187368462791798156642647418878110592156102386128773676854648087385858796439618257067460006300730070545133198560237652448338546145228876182071447855705536206646014695327794214710535816232758949307956604460356265074765191725673610808046505867330637483567863286567050737122263814273846212679562568927978140163867519873871915537322976337806338367857994719735834215286622678316006387659926854047526143233283945628625948784666076211704072413282253044478046813722463550935365066403375365314239629563862013248223312454886270388526674099269353789886417888503588665730411126988419684818842665324533340325747865680976828821949663012769356919536234241951182189051611562460849792586796876302737523507284898060832116111679287369315208591609716107708196854179346338369082799294922008455885630942496369190563984123588979571245879570107508803442357313534641165124261870157689617162144132023579594683642287745658725009088034771346890058752013215673208260672120229111131917873241825802743124498585874911796975952194574719338877032858975730315615870782863329722610512129968667417556276892162806414126076045752709226103190892085938856418967698660487058263426871929551780541373479574207866335776775291573812766171266866052026143275336840271789263978656955857869963546192247170196967594321198248709215342842408398354197016242604659216311521015145297680305408535008550105956398618121938888393639551462187841852861816490513847728448183743569137409016074062027007768573476789143333236957160487072696147526673554033134117807044548968490285375905621872112557861003482138294150122423392989685247734089493419707557047584778611500274628545486053431196989559758049371180646800934292914676880635352554614013575253535269329995156552377711427985843976436219555772396274741487380081404191605507918660863410338860189236257718126531860465829200803097178046800397416974715798696622545633642310309786103023667319256163319957738065455563030857596496703663602730323021643863884097327044263919008004241898045744688701518205754992204967394639528574603410858223771372238547480652379730331003624511255562237421667642752468914797867827917822359503048151411778722803313153049317378416451633791313275930109178064989864994061555698263183806499493285408724158130148486477736269082123647634097619397119074073697610477044451155834502235525067287203614587289419381755970343122644527908309187683493270216329296604829127957529185957031337460742850888642098605736367411747244256777459905141628310823033345273745612849994242080259923762071165213296231415966702177972601102860442691444021635206216693012040890533829611441714490595077995508848718338631319303045551333936668464720068861023415766846967509858058825555378928549462052735340334566331540336533256848371952786791639157624374421488886085982330294226512554252507434313214339511688890158407630249510006415675115253907828480683683877832452377583208993688482258882809973701484728725216389837760701938201565677006547994011969027085187524526553424428096555960422051862313110087009663183730796770157928125891122733811015502832927508875611578821848258245421294850113049154547644810774096558278232271579738981247810672607868475221237418038260830679226028487819146749927392538155097376696597787916353633777506842767690679716043514261026107027248082338772841916077132736215906148118780869274165728426946830345072301234072567380032373549776157607324866823984251450456400105130257517249782783125473184317055492237187072733719944610270127360141937623313888396966554022612478268131010006831247105527986171083464085261799243110154810671100395016737932153512724540356816468629548144294457313544300907890918154761575502007291967764580930495465284266168609423331003489950379877638718094427563439426765450379729036353994153076111361983649232349801132530058226441681362856878303687610938380982361476677640018002344333155261450109529562502385552537528173655487614178855906014013922371219041240067605590720384042201172464542421216327277337500705762952968831125119652312831789849257910182830429866976323045379583010707572280914435018426108461553236021433500714851273196441613261514967217625188895101839612112773479547975917109533152000252392314938848196228626700179296429747080768278461242172494435550943876801892736995328147006502446923167259664195959987461249206344544290935978087033633399478102110664984446553041416209348719687036340330534738252764129988014026868360614069996438014560381487032330715904941241138064784152016127602369739007363847356646264662747865435342651709620554125845282397013472013608737459127252237989047434745865140812971228896353382576918398005170714215172948202037704306322708080384747454954459607687540897131025080770397890060502278428706687352568635622251906802178838158353171911155762751245149445426623335562646263241092399606727165797131837276215288568211103485457107768884798531514945120681501530135011785689366466776107834131158408537064036342220151374883424869935282042673888944219128948465022109240753846600944549119598423069830646600619584970979718190940225550694249839803342431226169592163048415092592910006809324354629824558184400499072722671225105469926212022792690667106299225644786733741976918007554584339712081155514061917750559570101275724208737710463488328108306064756914578419403292955792379283676612734415321033907603742390285298722851283572999436589805715258388749243601577724629426475641112609719296298117918749095077971233459935864976682113221511278863299999375431666680013892010666260110406802282107241999040377549236567215433878801550758593762175708979728300879047980943126899993134641300714060282562631893683857418932363149925945643913185677658993408453202510985372440722774174381392623986688765549592576973128720118294809734651283636690249087970128489904272745691286573084897538100548673442467641285342413610621677516925395128722788490905664313837700704215687109563336582850021263981462507823715443315414106098464119416802827407672254769645084370182388833721872982703426413149718594354919890517607601320727629985236583306111320275290816350071486393817501838600647006888486768492380526345201233819631256561244748044883083947720059025895694100572793723923275670058307133330919609129762696934883698885405507854274079449572933182946907871267922563668919355394780048542186081670914960204118716767925488646815079257682427855163207527639155322431314575814417081607330994639359273239448346932122302275459373783572414740526703409897106911842574796509677416005343674440072956916183790524489959775856865683289865255294606920307199370117511483658621729060779792604303993509179151776343805314836502182555208089268025995373029375218542956974002198963145231758880239694441211707079739748798795045417451464081224278773805129171536064432767763262530389875617750591542235951634496214126750145776880689306244631212862572352861275501961740837872103967922152565468164163071351991084963853425147010542634680636086195048794572070180147886167355263943248848103736759806958697994889456964423032470610450498912378554318306924668168834635656296294030596647344126690957902643555944422819227590267706646382773849482224979906417771687950882430043128622496869342831283077729972560373564095738190841593210145965612768518925222825038468590747849537304224418319927755242500546103034803220624054408653841477071969040004330850904793184673914536378374553517698213548003733600627710853431777509180099189199723937172249997630138424523017987259080762136440145923707468978935598026917608864579532860148432175382889837748993283757523972614852075037253820506803027783887568950785795673837185820131052282673164553155280450193642475806155639042138814324196165416136100925033810764227958136050554117505219498767110834326316345896811122540391479820698263014952667482137252442627260372544186273446467498314973280435761093305321857909785804399830423903244983181318186433439735379716820873351730736889875319929057118287639822434964043561783200375370360426375196131152336734389391405440018609095006098946293247831271744424818104877109234859476605446542642473603120239984207457163114596787762483188308907921371047519274035256340326816590627198323588785028661386084740032450720229569846656586478457978997186191071151815798802168158535803151858910702669543960207962684302081223079544967819642175719030555656566261129049421976447449883376192538881678746912740255990721765396801458165564524207205388001628721648311072599199522943320735961751284899419413499751064598276442426785733499002081427740121776211501553144663485861573417934320467903436019522539520239172114320574730747243202197703484666881874709858688607288232706502146947792000594826191153340847131533380007980375538428529498016564422509954691126150060152475700586808844733205494166155098482360563460107855807920707252200152925773588542064072816579682061637489309666701248827229077973499256468601551381782809384921255218115793605309356485013960393521232076447616453366978971715752924232725269353138377737123784171829661674879740014581244683738246643792653092512286853004818458622138063816987817211827003723824329060094672862094057570332943156497724622214616971415573367631639220707084958967062737249593519660540976063892659994940674019516336939113048850175735798018561079213237915162191535293968679958326506629737071711045261825330328734959886670045826416654774836528174426927246250533001971605316323035369165964518121144786217630155683079476336588232419634544181143283196040245029424382165571380036531220713242855166441452049791028445305011676267403694397392171699182637938308148998158954585806653378950300449825960847522584720436619735051246612148261194948000542877845877345833535075171871757276335236676871854473903966997779080221197227242712382820377810780616948479658663546881340289262495551828327509825672390727966659097859959431312881972169765580764542459032122627746053298405078180358340712420995079734862844276064297065171774675745500319491179830776866238049760243036175866639441771616969177023486927763661326223701215227054405946637161041144957034015329454198651254870552832822981552295885643040656906294671942054287822532344241128397843229327349744097068761292694463982144103299282900212552847505439614178371340501524586082880895532202479380324048169503559052273218391867435329945686399270523945382677166264747486838520255981593297257089252601564739620613229742290077438133152424491354846472429998255421938990378104663704449748618897390335198987464766689914294668488138032417078312811910547508029925146694589695553151686306653539092707179740365795355576289865768210070253002286240934239329291296061061391021265401959506171968245989840114174041881412968215156725575657863178758455693895739023342390723479119318352086054149297352936816571956950572201250820989229215161369786513342799759649238275910109056233627189541253939923206445702087186162891186139725764050414758413119295255353403628713991912931824150719926870660645793118434086400269751168237071336317384464204630707354042040107224415502742856900275045537838356404012830797742492121305545654749232802577705455143228795890966015499702512951041395147084668278870074197346890596614901422129176873827765290371364252774549905702612442782243662931874131722635188140425758780232576849375780670512045361299318130206379631917656453200375211287057382988929329661942349546215537390031940044479965140424498515090711623487698182619359847791865975746490954488114978377823362072248909381215053179391447312919011634085948218226006181974105537092503013310733870978622669542512586320680231298889443972649831540642441887691563561276367966594809853698824608550046270588562444136144737508594699429018880113288865759511827935460262395450695912330550530040324353812404116072608488584362158092418856101890445012178981306249874708478749205294452801442834170618207371575193449710955921655257920472134913923408189840186160790307973798795256466067852213000620007305496800926053604875451255890127634592197721114126067473259001822393705294492198083004552077977406143725299897981701535261291220514039521305964756773128842749942839751173182435741121563778138711684478297146482556087249534489542394368566970640989280284037480819608336865954760564690343485392657974994075874647147035207899756910538331680594228126445533805594746158152284247526417783580064900463239870640926543307202348065896281908216044333179391245058298148181059913555272923151626014155403130170585343217030260216867433999192223906131815486110117934573492946062892969721511742888306514489037186037961022697331163370886813144537713879286037601437259793760039946569360024566483933400801799745381694201761387737977787777532182297874041993737938020332054281612348630143533822411488568727569656927520640816255078398495026666171326999048267556782648876048639267072379060264610467612115663703398590760227043300006910298847072879339210496149177745319762623519133854857207679739933453423928039239252399278761596491012132705421922915458684453295742046103154257254258152803234426500712431986503946565775422145709375471391513195813396088171134734539002395725419380762757091116997689123092272350248606962290644805960347383690197024400890223762100310673638566313568720238069740565678481422290730580443010606503147168297878983247201289936620587159882396020051452710495636231747620460469792949474929570275308131244499042769449697189869822386899868384556244321817898716095127657317749375153491988931797093869143535782423920984181495617864549358557487987952527270156362130503552030873923577311280433334410946555351539022298831354612679098497595164294244082355712464088460376503667080011369060875736776330724447838392548813034785703263931938088244189759161662886284635384655421138987519529551916198753855152042058480539535344736991208576860058270919371802144464103350620800888204941896077134954587662266962929592653761621662624577693505361950225354848292140825822540329199380177059072363917477601661198454931242901628293169069562190551990379928113702330742853292148145030242298854062729731598991064634456255992259330434627381079256571773873744470058072518632090331517216924121182021148161824027359120681335619460287200204707169113896883686533092460058746475640402546811976327820602494209544270639371092697097316630203098426508460340152901064755246582460679721306147161674247850841592233774282494216407991741564704925103227698554784602624124389120142746158274690105493184491300299015119334652298312672502041115150016948866221327982394840594573213378815160004195397885494265315721974164469276447344568667499764208457917344393600517301546895662796668630696721727329613049119216945729122833104102023344635829229594802171344726669661695472648062132930234910151844597151480739177570238170923894019090879830506054322298374781915907263426754934456259718648936781160844343282923862234507321501937839930319760293450819115420213682754201288457481251191314667879825373179971038900437322945691919280373709998660817939791350767533689654721461395999189523952833112039790235220618262697261181929528477165844988061324025456548700992749831579673852115389597739924967910097817563863814596402096365231829017018078092737579536452418136583916479416670665253715825796377573147091209464546436831043627901684124741254369817387574661644423427552859207683838128482632230945706346300484343512534894684695378949691087030180592761899235198632821781605797765438174250986385791426027368843964344357164002868629368728041084952114784457394849617648490801016335471778057982726195017769145195814539980829558343743701152992810418055607963794888823518212122125219998338456948882130425412177132081590739448486248480521037455194525422905175229294085352836360326262068234948679867912717322220061307245733368971665375048475386419848672082852092780290334868782436024933521112600755852612667814978802609961960563074846232160642327976464252871053019628400786511849356548743920569518036043883948809596391451311226448724506689272407427027963358039251576826444908335214411642436610132713257783487279778397000050012490353648715749677428691623862067402582187803133771959639180194556851429600502864920528623274159145364035848050983576485757159745635621435950189263454871459248421330884143717915361483976359698015956822052277342188047977523437810278806297629333859720599593859433126450184256299952675467640776920945720687438312485751041479055943302109819543401365445256179382528936564292210557508617307181359304571667515488285280504782864852039879522872526197542679638468052246490897269371363331280116134237632261412000092936986520635004196628424908628268027096685604241436401713622354176785913714284707112736952725616717701729334644130451483437023155649056543301952883512889123702111466377587597465350111602797044363340428336965304966478035234964803364306953140171618934789843649944102624842277480596265387578386251853500584495746840298928148898964407637261280500910438380374931619325212487428923365052955722187799848018408932556856614831559212815656350326885242030969580999291047692085787730687966507667321896652274026820389090734560176218345429590077566266255417960371194845577680889943936687354617465797008409026037431941951871999836730115239051512270764609254267047038241497791010020336856505469916933782149920832110414448970086283821043519219090968358522263473224038513656423514618651119239580909178040002392357065365839633972508425121132356297478187308525907954233592371544760072779779766553600740458241137542558268632403107409777875386685254723949797030799758303393949804555528338611280798764206088232459278594006847883554319976807329707109182784253950909781145711251559717530796520475562177143345399504656712095888171779031853221102234078468784841673799678401634735778866889516358137716011834250707580555167197035615941888842678882121091341906597866708405096428700567345283931500641306241714568254481363493099194954695203002478121630719732736306425235902235748911207102244987142938133783994767931653147123363092218129856286441742276734715407860416573559211532084883263354462167675352401996781187727558766769584193419364590330545406960166511592500461857283902424472416021251474526850785185738016142397641459227697084857849595711516090064943625932513888701379531563902677031517426191794953216403920586765662938475094047260217732311145493344463028910272242144757022922192639293422133574505430571143564698282450494347975371044481314537028127818949675765196256133602053416472700375043496585008977198364944257706975129105972399667784547950681632029291185177660803731124329764336160301499236319107894653175876811957956022005623603662044044539557100767440606376377585694244934729862258980277150193342875665040831095172852133993679392793047979902337621525837608895086155694494675973825161517147875808260282383009078109996686377850453642329877080614073005329328438988659823435328890803075880670988518880897584441548884734542760205906249842258601113430608166481171505304956395827707196811114729279755513452793396461336009482741770039652809770371206593375184419639958190036354220812707974653847333597427994641123041888450406205028636821229080145517378534922998698616034025737908352064313704741969971366683351852952156250672666304091479698757090718930103058760960654935359744910784778178009954207453821266075022672037792549042956106246492919080929052713033372056973404178067547166105537505163535478370185260787195326226823678632828246676720258943381303364056546802288821598890365505823063014313900767966535999439757473262694002734601882091552249071801690114246982518934157892929956018378170553077285014092067034356284002802948259683491878218313776952514276665117408953814980712012338994223098865876538309267544162221841414406017116515013066109522628638993002384749584618655469800629210807696683280498890881042395933679973505918021431055657442198458715229835773324449610117101088616686812583405895611271974102551587464068601738035263043032415618159207758329482886040096775934709250546883408776769081613338888384067482174815120997033940742327796628365681062807030581350536828252502903040442287386507900151216014578332088521083095704034066495892526140631408073460727690738285179002668571583163961906566685530137741583606182265309813114309842123528360880995387870083202546590289154613600884163629754618908442957512659992458376733681425780936623164499268426523072436951127379893719119997476586885799239801222399275142870979507572115432293907541687784999042518350667845569070570445691639367191746141552000581028834682292755069164398951449813060006741124362650896529339893102111574821363784857390186353304786039489812190783434641767198061842364240832362841461308415515358917726308251212069234470898444094990657901472594565335625100575263904569259062074232445252224948024422778399993008324193493566434493973296108941641055082524160700153193914243078447730521804886035792478360281382918996365670685477628208618179173840359147091765871887566212394361686029236306478504814783708847708985780902342210405493947158560385500416075772891937320679960454841988042421375935045296699781024395680276371731319397151362793148352856321228578252431882442470032385231297122548185240605634340281751372675905720638659294676139362878445103947180350954417027687926317560549328833719578208931407051888439965835393639426833520646652240665999718772035852485407018389729628390559762280719889153665892744566315218894317933553953193412217623055278607513667173704323630994256010314691779914939623692913088945505619603637565940592762247715936072201044261870373675280425163834853141121876062779041443693114913060645961597315607637665852433755716802268551425487846021023668158342877795841996833129833299830396104895116765367716260490755370322756027959236972142323547671103498191765828161443065439992431400791202747625498815196336496737132230668632438328774215421286712429911620583506987560200229181371939408874851023759772528369793091711312766139058017894228868702937530310721272376345269855421046293098696725362118926342333478461614034228811251792319956111615811746257337026825555675737230504173205530816912944768780937312878758918090213520046000202824917985022372181415903786536782333436774899425840318068534394821674612362418392970317704658870316455120761782327462376937822305462644793147869074147155096014943155152492595263882966320198172007488618059871968180726607772887521565682698822165800194748458301948731463850596208362665583600729062103567951193082152939133920581882966313355342334671055576796629705480704100749265655096541286641110743440414559331445146654769734098812582376719932733573139129079614632917338098519300839931099153781611253176217619730981696137462387395675388614658930489786856821624115223701698845547209351572592563684254638667598510518898628658201928097652771277297049881650667130664433317131427000906327451025977592809958141403053697265879279080658714681493031556696434156979386385309121934336021882989826853569694243852525030857290131821815261550336819128359038551082678532096796303032000534580975066467779905949893211355442129644058891910551909576569210665713752102596402153396901546319871822644606375565731171649982932926307293078190403367928913898485901540240973160620721378014658229152524171569292937326374662874829353009434872095224099415832956261539168262479268889201927577046682609057714159547387466335774728525856771295991272224641945431865803134607651329213880548821221361022456658638893636489902366792903966810538677917058008360303182970707374398659740858427789581303202265495198369355030945250896798866499525509327211350309848178411842007211772224656742619697217987928854269203403586816926792364424803819498383830563151592791761440775910098511771536040191046830431499341171406624910381321280332776380410715018580790840063449874904643354232187973841269576513616518964693253519645236148188385970773772881255943122616602036343026707743835920301292626826463502370603366299160771233675502917752932721974542101404060647548341210733720988026734277487593372775080683732485173762445968320131489652013771274581131742302474676259816048551753402379872010755922172479830886154876357744310395871590822519500073425430611810514466488198050797545069860592880434002006763008661535880149505112528124170530661285829409907899567799746251659903537005526199253433322814367389730582675377740515516304868307420209251148970433271647998452294576939148127843359307221577369852096881407503711205119359711122000222904589550653755994411484650069451708975315073353777706845626932067074211792542514381982777508234660514845486379725490785312978853916611535188211431284219249336275608447371849396741656102201820370569678399942547466410428290502776124449411835711947993632439388975857556461793177802966747518560372276458914289415863837212537697872194771812910636374891661312411947857783442948277585522276574896534541556616992540693332025064708659099264292735745404679292658578803336006982622643572106199833815078110486310052339916011986249184689751657989301455483872280904863260482538048683260720991396848569209781724897262790592497039181057177696725060384058208513430528603500920709062102581818344203811055767622197367737204051110229243654273611899348136480385195080385672184065441447825114420314774403671779488958578204946735996490072329823960615903675589020975826090976709619119708264070450822375451567525720460143740801961213041224824976242297674108122398278156186198105251643076481959136322377627611980249501149852709857419191308356854287159870074913923212985671620252199559685100700898590194957183634302935767460014854230502617618930277675951614254347257368731611766659117927324350683363457674716982860527360734611010785048234918733891269939798642989411411640611191589004384588231754937010389707318871018473070763207498146381362089365647802830156478352386775597915898033601144192019906683383200492126997912922624076980516449122848504940016637348352865706946368007213289176166279492043858604257300304242911367977224025185333352411759935919068136505569814421345466822881111913044469283371013995099414174066307876475589233603639378988962408214119830624156129262438404725190975757621738368264698727737839717491307463502663973655185875761841309644812390924617432285424897562472605479037779087232251067592419189121225867677519937757666712272314410772472352493161571496859538424285477550730275723385781423571102291345091251212600744731981442255327387207713992024663699037242162931015104766824840508128599775990674426772944781501075367839292540486011884880517365436564128829360936861156132233113849446249644717892092454203991610071020540800279727568867434664291039029842880170345567558834623444996424023816967567404657867663103595492907873891882716943654190865810220747435924464002896869459238099015497067590589053923645392756299925079929421987616228486599144202570080354219340085138796528638716579807493413302075261045572927946283172682314408292100233892344670800958076952654932430775864446753169467475097664020505608257751119007164946864649322597383840146084404107947740675284218506952513499101875887072061942540930213366720236614822132685357185480759214818281502730573207566154200252832830713999904256816473044122242856957173315184992220038622524393149654560601071269441271409504551562068339606581900368431925011204707451618358857011059134337207285386827036121571728461021929705103364804592996446300474383548780508699117142007782832431435744002351613269144128157508105853972886663462366893284905495520666504251610418015488635324125893981170557289265167381520081861094947695861527561551532505587738809075436441213784420405346492959614816880008038321099227838378754931046113080420407084719732540748544740694027433420429654122188406614534091095382493263360824486526603771166616545546504003751755789489950612976932637397229620892503796148029612257144416253855418501903329224217417610074177830559622150561710814452591970285003310293110750096322099631089955414072701380753940962432885003245280464949785081981923235381385258756450873970057883608013415367530838708499013081454060751324807185327179624318777868402691375866256285149297877459399424139548225346070158576046336040842248548282928368638615941815909879150443448468345469843177209942219994618408157671867853208085268416786983016896073750221954593801618651200594660336675333729160977540597913049794082175305460349862967962447299195015198282277947056453388932571538168961330132543662848475644985728785210434511821230955223730778819069645735549107928832284303619165155147395910843004737830246845734683485069297613415344075525029342502391797662421225472244791309439928133381849595074574803135875422716904599019887259591277874836057394219387421794009485900992927223307868461592479125242571113317636424267273599477161286992404093823319736133099408769221300735300735274460409791163564496360344510942819565940316582402224764514908677754968957189166449370466080393931693140731382057354112739887949500221414245403381792509779739067675937720805858080263539185476115506427118075435164060668905849852323688281120687993836139255893930238359699315167895072285054234254856715126319136407096288019837890938995136342165076481948033078070175931452008421193359901384445642748271328228986638936797359962347090377328777740158832020730632795902947276745865117773092702800103169094083805740201012640875140634743268385588766825747861716705215712083275814889416888595821633887565065223071835115190140102532051809423084087669014285799117412965482385371169617563039247029263828457415427465478210242754710072688934103973451727454568073865664030373420500226818219974921942575556705263048945702220447779640459147546151203710105900680803000120949935285417990130100352150831752267169515244566126346830008472889254805739093289477030157553823123497974546137996447851339989979411718863876048247492777702949111459830065193815693973929008380515434384425490564995274876464314655629481333489132191162537998216715085071868042003019806975093874093067999820543905528205497708985567195097830074327562830769888244085399912904584245486131239220714331974496621168616840750424974234062720025013305051792068884146261552964798847834652960586314717922552924221907697988457360643871231520320656458217390972189621712325683562316240407865356683167842005556821627202604003333922384040437680277776905105936968832743565564294700996658126445974367513287943393971817327403389640511410158137398515298533610342985453763158356959705609228496254216911555246015318550508605539005066100992130422599882167412900844005354213600009921930597667711257986270495945495957603651298303012699925440130579650859499546712073295035382283393527089156789475917137192648978623282416298871483855305034914770176625120534652561220898252294174009042502028164870288481586209241600148823207388725932025555902977801970890568712019608406729060450969637073843119145147119254572076867700298090309539147625824328410418206863176416716567527149523236898135663115484109989211065697598887105483450602155031079258720871231592115852324756270766400364852315454528677613316301899562571744684173086030976628942553004163438579530095186477589464576921720775819981675319674043837223373873655676383142648879679396153656442367497937884007835826825790893731457662188753055214930978271274909573575357572684560304824467642971856951068867858003964043808573250597717930726287658548340010335367752968046645024927362815058900226432098039067590407373334391769857370129266377570476727395714502997886643244601775463154258457643269197646429611531462116188208932434026050235008123495936090367404657976509368413564679498544431002909625044657646387427148968396415352497923632146854625706716741361392301053944654758487944886071912473801109259551510107072000244877984812439405056207342599441480882400737253661384122182035883243971199243010215236043105818337237469586057844852875973259641780926146907268881215061336671800545251200904870812973280193150509098660980684555377943426316892955251048469799965664438403352923848603355805940002014547006711329337476269332548814533794125757638767311192343390362996354490867182924785867051351268015412161548513765865000046705185935244473879095017498160578917731149385724385285702509061428731467302245709305930760376572019423448986886414516164324902288651461685843149881771076093275580210626746938574058550183658120926859507718956630102664084002910928863470876356729868746724255542848024228728237787001159874511503684768160776206152003989710180696652302660577669327441611068041575361373083197009627306318678665784054673457103318881183902568380627299507169787114119385890059553408111713400872494900173040049929374132596961767918632213361261473103924686842447649543850466092213580562389537813201490129204559315195761536389743505309688643743003015565811694076237038404911092430892377094890257514700819495185709821955016619688122903768651868761457256551438154839700783197984195163235661434367965867723618777478562432039888174702246889077669822765695349118165374515008805024265156434987460984112855427706138870036436213350317054023402658854876942627756740698328922990088071227207192438872405703862163844370786473697819896063208273860147080476785684071396278717849961083068780338635926624536457458541839115185462975631137652429828783788570714610122528481060778848687444352163926228113845123055027930737663111403544724542329222383275490033381103997948508319482531880683281818730080295066830277784341912144971219896449816640980966753714006425777177191911887584349957773882264954334956503060948558177079360127111031625800390826339072508590688490674440393803829236393917449384962468473257404446556346229775872213672481770867369374360487200754204149843844794922803632306761687885011389979846298624825201360498405272983115487559540118737398799111999693243721367612239667520102696032441200513433495610193153821006767769894272786835948244342647448359185341041418166162453738985409714874355876135810277066743504633246224945756448492518076050541048572578835940684188279749476387042354092716343563167945971921934006530935942628901882367222538425415348889770681951780301536696451288430271862157460083364422778979760524830442096870952746990389229563233074271839826943919256099100661229614436215622943823005431547343984687297519158214049254468652909317179629672553071790643166286483677109275185839645095877589455406187850837488534932429814742554084839694078713981670137066517579077976199616052892244181748505304663133304744328559576597435316303746234775616663672763056021859573711781529683532659581000639321479812426022972334756270330012149606089463154455025884532347962942246801517298415950973504418986197144339485286078457214811189463206370703693437016429559837088352154204271764866233349789380683857135332913770651904091054653327239702382875907054032873862603817085770538146582602006959294791440932234416912146005095151903653647435559789957423535058578545034003299926503386339650504777858960836912329650896383804028873311981440123505072638256055183021680852862865722881256300826459366412118043428829897450657684038501942460772270521871212688451191976313038131380858134940271693789336948931886099091608612935818284366022826834427462148744565226665372478203510836399554593771293988876242491999850034741094912433213999123340692149582056988344839633967662823256113269944412143755208813434732315348067089024732614709677199634162994157318715621521357117522569957201941289011496289840845537103902003364570315617626950993067739221780881449839225607042377554339841304951549378510785188885383475810265033766311828365021408183494163006685220768524491152353631721896560528991499781892101566673946654046899015581224885312290005673421885497105226567430701889898419104510243655071998227852563219893283156300185940110154068682622125018102714775066944379845023328798194810375590494129004401282832462744865126593071909580169081885567909293867679025804013576409183525630550586945700828333673812094484801854330808906306906512678828275274196890258085796317656157738442024195327654506157588006083866989199244848594885415748226093090331874542109269328402758207068584174393453313835942013510448738459962279863385968888111357217236315485278798178544151710215253861304568467987252461333844362974257178538088757982112154068594410984056568033199437064092626088496132829341097533232929511342167418060554899076625041139392057511516103059018039899755239283931238615017897487615136387988641063297785158472614431606127401754408513992465115042080308812800449283374693810901161664054381417409107197955025007434124725450150293677856482499441414027934011992607046764844995761499388514880497056591758743738471069222746774667096271772629724446165453209959067936335667800410845134526784728084018047767812453592999899448736444873119638727843689300781824381258068806765625728129981847988819740572784333389417835927270006698210208699016259149560318659362860610729700172621060911457278939414496978592277832424016714598805391062130851692379385741382399077393903130143154093516660506692921886868051683896134371421012503152448501885595035059589342515811429773655634399191019651165319060108823489517696490178085115602553011461690996866896838026873866489133368592668542179744024124778105323460801132500019870330576881327935427591952070181463308587445978665809487093387443339170110492945869968107052974517612329727775925375765393086354801687390102255180109704162892114559012318443474056685868951444911779803100968680545840721843750542866104881990207769601311269597305484353254611108589523224021487671568884304002788684854400833536812497349025230451636825404716596536908543695961335834432879515101979089892886449005506721262193932427959909742155918245137827427201011629530961027485770571948149935235847205980940325837090552644813017139551235680167839827334707694986644924886471926919830365542327466906074902750315230593241446503724860435209476590967395984702506201593853517216344600025239561387290517789001636355284500811940109178805089023207966428271226479232606247562624838329329623102014412766680807121401550809754509243031738963535069983216714534987285359540556265018939542630887827994989436111807505578343367228520640080068245427620442336829949779953705848384282481251109661007782078833410131714544624708597939438421395246657910174471491053668250406892583428916438529102814175298477615046791997109857333562400015360167183307471706611394890944063638729302880000067594761274442130739224700165240622029583530033284321427901399499023020291313142831781399442058351698831943071198154230260690638661236833635436888149417884514960937848244389311619430693349305111765669510214116442297667563342669775968103116973201019561505091698983798187002731545619364495591493990854170558474195705738187803150477586211191712194534433846822322820472391171514426200190399852584751476190721956900685185943609280816913427777971929719861229789158737551274764346149038599715768450753012837554983147484589575017642029515704947002012201523229994557026654614467238592237662837551235873609810954895823763664660882296336041027134967083090092697280617187277761425332026027904549762617536468027572738014851470699902346737073250357873584715400115560018802766131947178395061585678499319097065598329488999382818664947600486211166100008013778652576759195661380696885213410689944963997866595761777572104033233579262577166001555382055197966609603785324622043673431726662812122810353206821996151513199479813610567218881564902968422184092844714019394474125340006088846491148106943495269935931753768242111730936157605456048390373344729967421133709597208058857862627596001524232291503086304598108609546834495623471341666004416921010706215771810477278100206907898446919864398994888970741848494109693907857022273799863944380499034402685863155646902271342657916381301975076342943710600193823631483341874623335083172934526768416243780351461727090339048398593091195087333086316519136848452806769487949378659351099793064093285835529786788074391835738792490521824753107194933811674750261466072685860227760905264483857418704911323934216921548943163617661424532807129234081692242354386573876955546656776597757229999209143459067570617750449455906751412942704721344541814225003008627403397869695272913582783377285412510250585660425255996987778741944312987891888385790689492474704992592398189617897357452547362452551552334924082966480489689888859140751562557885221483865305523129509952055004087094962891067430037424201534670748294295364801110698542525464461178904895363125630323204370702125989481682114525764781802584335136164671873661021562582236903901827527810730955154241673280639163944006186944259965278384852831443812560255808056083604896371182676126345994976310927943530626576548365273996601236697957074402213797345241670866008051471547412277813723412610522644569288209062645714689638520407689646097360014374954960092144688385105682140544210841715952449388647883744388447499121826197682773869040621880044713589212442093118183777358162777599914490600170252123057976095275832678951053177201974923346200749215880686851658249077789395400489355948464927009781274813853721140411007961818512961277946866586943756236226469873150441884938364991726343377570790500039773899386684320034268740445490102236651619530245088664733365090964491847815112300796451833948655412817137631174963541960197964000729629556429418756957395776220595849176270814275461852130321579487691608758023710108466690277120553700171749554520648653000231340680173928924618398787269759019804551845118938350486953526887826063377370552941172936979446743646426988079014759934768613887830597109087329405858370876419578621214594790503834991519393981628998375759197379627389127740253253585747054305770989996677629881694321280886141170530179992363635905069711092671667801540538517210699987446414137118301992291130900233560225793111588326658213930332847776495290169696809985937814387702127765584693007996883363068174016380541578921976174972042743170117989982744463142122309267003784930778540786159650406683937969327535708817588733581669363876891904159884376428869765451650247586832510292980535412705602607370137872482236049741895507383955416396211599155039501091680282818295928841169212389964970770923413710079643576558921323168042687899380954173658741971446875006886986572841919585096472151010611596203850765368310337376214003519302862797372470388943516787828378550745612046466917567092987413146409851692116620959155052460078716643019983983263612915582006316479779405984198834530173707990539652961148528572093138643534100469465559678653479936672272098616226918308047967149903829581834998617877085767829487982080681174284168188413202812525981462800561872031023073600167117450418244976144745147377135881820821167284304223150325077847757387644854540980171291636845897087968493676611824358309047366697233206219121537907479521324874590960434642325330024580862528302193098660555867779607746486617986377579015710978158432987874319182688776444434962273128873519594343347457670725867783301014659508902233307981595748157343157362698221873343867290458236522189813816681577253287700658981978541597358117394895325681153765221988777096622867205892333205990142912084781281145410976705399523812552571359781544846819142234123300842003724804333920155430702036834388716903221531487739577663292198826185341691885301912137255398777686291205004080221212356700542910628132815278211584810163304959219492705382061871676338262496615015186926552732221691704662823033897805986870920518028688414480241195003362012286926800232019655743915231125059362121461066330575033814377722764381876312999944497116117974327862134471073521592103049407957456901123445158147687431731465305512255202213804570550637320807015767151109270087066988668148399679549376926006608906868059968641339149479769301758380349820079137100423352702168660350047515013133838805632528697497498111877072495545842573025137405104330627251105814399193607774709494198005964296045695357017006765384684176977957524374792749803946033705239179569068033808751510499661429591841254917158911249534917939447614858453825715471340164423576194048547835665787999506764116348060129291048667611788466397335058807447710521396709396332497677014628868953208638550204901686850910999809768817948481641737985025709711330193993773266466156515446923208503959923235371149469565741912799769001200389415481833984257299889003891479274988855910862670712715298811183436672537860632663654239168535064957010375422044908577568853555475258220997312892651926013382935733277284343878690586780792412143805631514781602768499213615122265772828844802716996049660710231314267613878148696379363848380383399713567101188111065816682462316372277311523410696544948451420460825785266327747505390444823557160210795924470740779489367480394133601955518604145390879192070253612253374101683820829669659989698852298332932102608295737952918032475266200595335580441701272443018878181155086893502349932506602496973812472520660229135076599672146468364042646708384683758893469945065446232231608379393960462586987505906380806529293960676230341272210158689475131295109575934745110719108324511154892712731214359113517458557728202618196026082643673082639086435715127810769255701986822007852111335837580323771050784916595210198216487548397875559278338521910013206117349339271221051957906173229154522574050683028989485211377187924425408884986589763721783197657790938618813160048462409976792240202462187014379374682544544662382327045441342569556740691317453377813613984978815633839629988444493138368978539869470298305579574398459447738700489383325563555705451048941911563667758577519393602548070933074180553399434531966302940749646947642741911962367535265182295681412490605277916584178130444915096130176691989859984654174707179755612800808960813093686758117343435671363452458923725998974300600169328520490825650055876929946165833927144790160156655683810700641609274164637341841233669754029184370487537821700331759522217407309369146027744756057164816581834661612205253100926818387095307316366452314692006438121213304434159224129557453163148680635547975543126794303793490870543774869628022291764340874935809479495150939219392374287805429658792610597813080735651120875917326365990824254829657995051018618537256890889583007833873014222419784420151011109086773549656235990266343378718817002796775165965730725656219744468972400334386144305681596927086342509086030986671295194297016365729538272682719935625793992905181694961146288542248042709505578844059851727413728057611073718874830160360948186007499912308204077320846821956970505413919263927710259863392298373727235105276828003378265865490132543628580381701980978452488279026476361773491922256056037388801194865903180580371836682482009674386789567216800920475139135722575287306343183502823321091806897438267435064808002897607782481607121013612904639178009808867837812605698036570741898073865055462606089789575058460351673040313312612303396532656811342938351822633588745548384214074605034800078009935544605844915430592565373676314731161999229189681448263746885559357297820987099738508057444591769867348621153000100512199101267233125152942672746410355435547442065245330202990483404595205270502592940117627660679649397561165357207206893468389037406019130642398373991965296879795033045444936937770364780274139468550096270539699257590921084301566461062782568463998186825046567039252031175674860856193319554084257783685763275896037833879566433120680157975700687605232869931531972676076950202657133013318814058962511243634823829779962321084430539235005432128912077242936699836418906502935281097317960559046997970604440612253622907291698942655920775864315643706999265269625093583856965837360144803293830196848116235004937582677428429504203985519753450120642497649062515375062127887295029049915890469214113329529849608882107180217151093274788036191152935833153845685511652817794690946358837082272444155265175472610206234704766309775973155378237949019809994431637139321823708970254129732749939268175394768774816473734720147343065763215745337922249934385996322415934130837991608566094035895463811695589382162002151409083155709596880967578218037816059862356823919384393351314891833461133162812809010644372324482569591491061899227365359507726509179772037838043323849495556930884978076588543239530867439174242104580402038958645050793440641141476793665840986868864766144574162327478165527677327752125846894511710429495756025882388776541907166534196274747215381866216992649916207626551524758084071822517637069629284149638737603621059620962250230236885109114074536350899015681004756526960278433936520980523999817959224196972994541290376615163209224120900844053445023660354255854131280095408344884849303338876468663668192467793604349021537247958134213657518584176339491776080243344726284492814477922182136461425093321545857546093019722681233510552478756435905334107325603105607044884615726411266706400097542707703706033586102169987154910110814919237538327980654481355336888451235933582876794804076988482503203053006872658345711745358219270606677269751710802049451878851449000021209987294453592630084860483599550793862136655710186213927346480098056914436122365080895736667233422372627807719948329344563307240846761949046919858802631862511993507254380130278206913715657459650109854040189105394075574167676387350452946700795399980413962077866572910578853291962567649499060670155098701842472441469901334299653243551007778790140588099938535256702007013991637489528093524290436780244867600811795704778823834897422637570377041277325604464113106283067651988068033082932801598034137820386013185992468832642590248484237273632689908515190858753974061738229250197605569813662121334538217623786607692694416826255203478630824441777937312863569333171446018637929814114477662293000220395313755601711316003962426939201768258666469462609260598155041498886452083425771738658700517017221430204902135173449377203563757750317817082160920077308552354762227338079797742219142768822541429343227909759901227967123650044847278299383255236841285307114384492442404195442659800131682451895187759935373779691437998992012848711754510255999411982403724529793734963316646737779757622471743391476013300487820675552696597821159402476156763808329676465642233436156798218624676986026272758576398823941757253177633092376686293117448194765851684668215074917682763776724014809680469097677373975317903969810647707310917814159458719201206739206751557432386602255476767786480618086418338367080362767574432404939874018449723065579152717211685903186598421527888493965710192695140053539820247815464137441592113001326756485710301064764042533499804432298126151676917937675979957470606272391724440557100179555394280524524583116958234488578102733631351240974308648320286246915854080941492244765839763296862728658375442380631066362316984202718762015252774398714280184103203633620509506898725426196272476949343946512065584262324637252383012110949916287109375009431055793076623104098126629039164824025719486476322559228676511782713722296743832636797724526532088961948705668450251645370780353288860755579943465668669534495066597990203771438205394106708479916754297562929861073905798728759360824614639834565609133396786574089773982660686671140132849248770374255685256419684182341155343562255104790013850803506494943790477449495269570138683085644004995183399604746823502860970284464102923556613251052638693892170460685896487876667676818310894063479436962941971826739630030547561574352498624975297138653111620008905644520941754611919900690874759785080138877791497029934758810472868770465527333123290278665398575397416506160709839456774176096863726645285360051422756743818457494780879634027323519060098029020313658041979243591297380937218371178035486288201078215442536216322799052151025242449616247992667968175513827927838556621426017765926940185768215652117611673742323338846754228259360140373464188689155172317882024258343985779350716764210853614382311566609297778860826973809716911182797128554296835374991703698049517651084965011507975541994404235123929856827334756273366203140468022409298046499860742438141035129099705697188674081504881927930008122262658510423470144842223443397807818188405250337307003929431562990915764686976476101732818150094339938078061329070979672099619282878637987506160475444146993267750142155400155154923435563263722884982842349928420323641465502420929850840771983443797937230722511468543099265064699446628044462208079683585742994870728279009687819134801907368123414575642733665956824324171319808275877992492779257792214873254203244824224864663798332456496719360208822247973404112643848249255111047534425772520868019891817762230290055287752384436819173488049164239051054198424979603493782523418854096872697638631219081240587994963861528542699296959741520217261448231287870668827187938934278140657553039649894267681908474024719146730507085228734323207924373865357931946014553501389878136209907957591449504046641744801498419371812955610803300635545113125816778697793698311067926517082614079713928836795211207028786532192080293115512787149877172484548752032779020845313480941004694193287065185446205391388552631990680497735676805201341407005140844911788910784374614408675997891116348359521687779407432985904016496069525237155273146220736254026237615754302245313229638351964244706362009238671752044799176114610079937913456444369807994337975590988065710716774033664578438353572811941131483978832785344571567614101488199425580738045915444009868269873722284444222801876076139167671518146466036839714154744352872439769785556227363619603003902269256080122764470121600611613495918859770967726904163879187366043287106396544484498651337777200282412672353200182320999962080806489836677471070477253738678852458293255720550857547377475997826796320242382080119516964633597933429513092128849857157623647446808290042735706059485526801662083607635256708829239481023563328425725681482311200155963032509629763105811783908140847047223127425443904049291514356984852115031325371836727215691016849647023838361069755183819380252028984969020231254267067856511968902909677619014960467079435543150262361704679287136458124040529282821412594289329528118745681052943171346866687454607575299754504992137213088143979393606597165746104168352163749567900526356983180729559243690716862311173421445242298305159759473145227025309343735883361396000772701909699530515945844799140678675354437052759237161004529853114104638048438800065828993320022348422629869447073174643609423593946885709654838012212001347375958584837877836973602528991351488378330826313094319242120659302599576440649972853609479822939624724602425701459633889542679887436683400856897966761173596346384746302831253432416485311441082675531710586563340101839635571861068826506442547397033137091261082554907200954091819812837970468047323904188337249910504094999415478141788705373642061916016196660315298225291557588004984252706676629821843576495458448345399966629156902750217883270664422717688308691342996484735287158618981436556183391078933838033250328335900476500788097088774178358083321002274923767951926652565441615185651627696386599565069575838259179003314817660824270969472278955555938354791392274604681846688645879573593474852888719054020960374097295397429935708135568545747941349772164280691173382877876046420560589109357839961593892289961125516495411964645786874427504363709116341095309894682826529103752042012280527264044294578648811278197082833821335746691455541060544716967902792952725394662583337748932742941132684603948298615100097914912092173170729315822630490747541799992558098751156694029660635132347810851447989320184841294923589546466779497901628145711029031764592559365189713189715236782180834968592208689081398622936815753785813599314072077280872760133534400822640412848274164836984256056093815903672285359222126965881928606705877805009449236229677922387505551179850818393388969153903303276480227453763670090264115143042664309609815995908707937888537122899507712756511202406420590138535130276525395093221285501486590211773206533127709840270120287380406366622364065431992986644228747425790046027035719394759294480436914828262540991902600855182239513693761356104193592188642798733362673835780879953578515116124675173883304834489178719147843250300620223671907447458015655302441463549178319926337351207169051267301117332404940404493902469658326660291918700739033533363949395068035636995777628436173001941857532397751691702958636089413201131879155034423635800432081440050612906810494808638693721689537761735593079838007503495097646111642931103540711145141826042020964159684475912151773023460308915267050966950065107890121373924026032036839529158737295900833793162557266598662275005294431132570711756255037839944966151445987648247803530029706683915392187441266777795504135651713952922430250998135981319202956915951374118956224192729202441114266300861750327745289896702261950497015371916363310056504417456581411701286686601862729908479695477408245759943365837780547151523943361806432445009515548331901343763436233783362194872785576057902718774354579566136897138324111754631133638455645094023662338546683984588419676298246155531634288138592769084747398413075022997465504317941226459505063534140224717862250085328768133142505198828011236766214420142891669013387852290112238887879674933433048897098606041037554270753135920547886980334363448911423068472607527266952699694625305010331586040201321672598153286227443166346494792329916928854589462317016618147926714242566171234956165745115882075568158359521243550677955806668021019456242668121363275851837379959090983393813712843489955885264987554660600940308095555321998494149049194450372544885645047021176580051222459964839822479391852612666953743668104687371517517728239091797332088971213165367187375062939761289252637338865906687824781880241454345293157340013562089835077294531455759921033071079503368377478785048091903456403502926009704731327205598840685693495325477284407251027949141990464144335054804241208110963238160845976090615412214174496390361084705705847317470441899962155369787970088167290883647471688426240713017635222814266664267682155715689238527433935276604443749582611740096286819341897589800973145030671694412265997803484333734935331099022003112814274071293203810951773371520761332403434042525204859519363026682559452582447502023428211426257749896185055923892422889743627269499555464895018578509911191300386231485696299502517052437275119774372760432846177488709839176408196316961845880795692192075395260965385144752462933240033516802153311681606511180005369292457335677432542332242052240073846283488624685501494190000065978258663829121154831605162461034484608091605737558183768836917551699655246428793605568928581407015885930688478116186775777062001887543215408389780441958790346280746973041527152609419659859286718762525543051683482621902388971569317342090148422713745490442794847460585846089420778583375812337584289149582587362815352087679062196996202381068047340083158368544569730536281819137585054470740928044114653813352952783454291696646978879102288026841124791602738550353342480612336958437691150054200696525688239223794881231200224119839291882471871771376497724406159302013189903005744162409600496405025907747740543427315285565645157414384461113451290830063365751415932306726530448056687626028116862210633661821449577504191492578165818944336540347896276040143804335832480395338202704112180317326049107195726331502399738896184650208611112627480781004880993729300709480761351089784946254283255854873590905578048062144229044541227328362870101962895588440759666966563530927438649549435593740573548666346878321688433178229344186997381625684368938377445524110700650254869633492972662634791657877696672428441757689652487809728394213595108579918846166049205101696424143820000171330496262964461768485441856429699320856275665273564065394538006632595934920332368831577479956869649357953314065315593086529478841127222306246136249627999576747254580223599944499307529923927858637075343153204922338601374872963145840676234716401169109169310440713681838517093990464621209595726897224447450716995076017706086308232776119985739876150085825092474260974129144536363117939347914081502218122936218411358349303493773926605503489027629917812687012799534182219572553772939777582266488839088269724075346912696552219732672458565221540118857016445301500249941558217405939961152585641764145586063535780852743882011694006065066419511608350880574060416543511917265711037319377526387807555620778205864653335968394139239826121739180054567778692005452461418695885104549925906860213569947105350061042884938870161860881979872661852157060547316549120012322874127411170727346386735892439137003047647880768286041183899795670668496581045530529777510982949870528410649730299179766372182281673593378743540009679721818394897213624518411820849788926245556896306780607343254019524291705301397427805152116522606069912461925609414739601751553537851284423769844185631996966627491743836777190762287141876824832126000723054264164972673817606561410395854501227575601905405602078600616754051406649003812027391801335678904836277060909594544450787365569313829822717281301960100526026028995603907749555686923968512080137583002761260915310282094078811444433506884757672691511146123216002886461010970914773383791044546974707509242448096125108952981140262038961506639623665244462677368413516141009570300006965263074674546639273917803411301386436988195245111872428246977115446000998026140892034857345462001247176659198510451386787647954279501648849939301140129447843663407462232141747040239972825586938076593741487382054040853613743938873217529280743307661237017138962876038190965406634514602052780853314162776834442212512480663023180231930267811684421089184927958563657520303823769302176307712512650047850026523620470695136822736316495896925343371238862281935872650687549454446832427021696685912014006160909319394664771948510618803976719920066767627622980553218040265604177477038021546136156776283551753968341886585932624806644740201468256326767890487611067476916473179872526911199265756075802467305629486671447329370356160576973769116056153177473084198067226532521914771212368638007935252038273974214410769509779084813340930451069872671327292755675444552357619488839656327098462456039614263082940804503118807297467110205394943539583189950039650194472910074242204453996652314054850353564178008960555069762942474246261298684275664789864409926574597156149454056616960054549803807748253171877197279975992409714473277044520801213240876894747679655352743661593871057997409682577845202997303559107279007627513663821437478350640540518636071799972724033923955925666016226545364167156788580752345441205381930505931222001491228772183424830694360041131583763759812761584710862850843697403912978100799560358584376401614306274818739320004238787743241703890806293038662008223263050688002837608119090430915520468220991133576378278180426515064758680608287239088434535526605209763130407825580188833997690789232630648041274704394932189624279805083211630119239363732177358174577625360711588347120314578276239536276836665041882017630884257244219750647487674592796427653881013673877122511185326753822100571942460174472601317100989834491100959436125440864638735286330304734399541408923195754101728688002468925633138014876465441267718227356828316238545307465150564448696324827669637760933052927018827020216139854407636038835275235439669322647959710100757467904710219399668510477277449473791804288953372791906559396706816793405295371950193680562950583456284901811446985358644659169771149417339353073072728711366847657017829852169914427047591190820625306658702795664308292911215818666820904947938857731162424524543321945774159118012664618911025585234780718760254641924026980253567088405856646772792399183986783250862193829336938323959850065255439273625339118724160183356575988819961363279625549450823464795596634455475577390863162021454715305210777917198054943029137634304809841103252071434845321762992034221241999646344706109028441898455162304097335194480310102056989968474337166193056149076568206996988459160948283020481482282450114821643109121540662123340125733536978852228063877883813072923989889777178691568104874345281586706111644086083420334903266190528347510695426596477661839180254697309795107463411250639279277603002890164091411539570337243652540369236230231996767824361750735066057968357532293278375895679770735853172179976891154982962238614782323892286824471844434456984780840461978552425987805365107505016865588840691046345106607755003286827251703295597633150702736605084774000912750901578256017818333879422253359681387215277033235753287691426218979778765277420316109677609583866130705884188450411740490918566705379688698487289808198319291644713208274611089408137178841209392747983014016538843676415149034993508968738752922666452352504185125528362043176247196559196819294358473672918607715225490216494346628901392700475375977720526219275123222272233956422160311733707150937770667471160876692954628477440576097464493223197724042459197883681149120396872500468923837834150794353284609316460203695196868310478087816921018974817246156472975801627086497378632463963968279717706662965332464235186405805219272277899553184167866065760815785683042433190560277526306190572622979116951100165414592447411086327716123340974343194968784360140107247242197733227895728911674852571895543348805726456359703106420129929547306158198764422560510665917467451192841859363035751501258449197877870427333935806802327980661463290384517926159334067884613840053952480376744711595309851881631473706662724648049293054105602903357357356346214714021216515718501676665933777764252993966850158004675467077909744731172000166376100789843178663073387277538602651459194961763482221416918675922311699993493463182415888880740580233832953828635576597489964351925973687885540802233500267398703145062049128092448765499146540468862093405160179934682186244686120179333275999837029806337275326656542812985711649107038762062705145541100823416743758003726794997211563435474092617256720595170372874449082865251860593608771462876981205461052696851733763140885914069274100780181070196170702755639490569601826573783509686720458838970013517515687714078402408425000143763289456058041866734861922778680960763342546105511333859048675723887487077897778697550953494325415189433706371498706759644099599447013249780085113461898330979359841188322292168138294173457864574803192115981681220346486144830353327092958316682494087433068560270684416637065700276904753755581607908933388176418051135438679396087246473728935814118263733432194598450590757746850545628414399076485834304737237643079125878227742078826961535924805733526001940819109828520274724425843628542107669325629345098729154381895472911858059894026031889883198411749936903687901555158180617103664975753835165707646161913006472690936592356441853391516232864109004919837773819673740651212532849372199630665606176913504752648107250953850853869852266130842880843607572294997827575211454421560021190889883568452833693564694189393117609733663424474935517279706558735842590430541310890516347717901935334559161080246773578737772735263878213185045819378900292096917465043067887868566696141939594716672966360414777551753772739102308847603575696319263946387449650979523991893521605329210053331634332197488617075817880881988967006315402340279186500359286198325817886209841525100650591139289213223711595720620997875641843759540767123578241048978637357696968636507631801935966164763426772408746458034472846123695078727234782771490453125340904342264267591280243464864375278270694725648176571780036658089557037749236430745452162374673984624680350872083171771293299535789586675519434020107571101517402212441327314907246247931823328928260007439838413039680383407955897080123114562448179132975435213586226502382844841945144200730774950659044709231126697866434562967420504345374359145753998422916185855203375282160055046978294126509773890577266177097498819208496283377190468245795340532741739819715888904443405028385605011771891852884415087449741938803280455264833923400628901713794135938036843902590693033079342264430159306639093749508054683026104407430047378411571481600506705289119030706571179452761681562619294309176048452395637902085933529044045889208817373216764088007388190974765029902521510745678845627132483978075524023835466886836101500088726769513467802010632072149932962867680486906296702419912814525231014689064819615222120294839502473734500237551970359892933145174937819396043170951863751581615137284707647205555028502590861291644344285158001738835922689741172909516073043957074528617152054380547198972822595617827727798808524893093122304958401813429597363407495369703895578997087883209618021774202621160784993873765448192807245290917716096042251559013548194211090371541085942978651178949142403882981290899467526137676098538920138233171519975864048359228661038292083617732944960697029481474391903885435187652196787742323756263074779829660890968302628939571532128053167962786241013835611826864984731200310051244087700005553465840950850901901401184512800353014632128378190714719736096613513136016250788224732367633442263786566662526275957715421176310899936517870946913338870567528660986538734242805069151491596673592603042032954453537876423633273073889281620133460318220201746141748718622843312539551978206739365345893662672710897291633630618205109319275830171153751850008594591413634612750747092461812571702543879464457844723483009086763199118798715187992449407358603616988433641019730416696590455337250604037264073573099936358063842595164580344398803886360909453886268205517289065197127485860305216654351203447369121973836112064623860784096127397800728223043213540864413486461411860194617888705415241596428565201113211813571995959284194672770996540513385491850570946343005181061232175025772480508189456325262413684922105040024737234131693036767695323709413200037786784253073661209173473273360614246537071043102110311698185031574444251498471016268506342207092451700819825171813032847277723995211276434163246798578689802230786051420393163497762673189714642931940902465812875116807449212359687367299448196000628149559449836085710226904650081547811577946112552983559549733339916364201440089566020303363449463017089911218145118065134107815150038501894259330909002785970786692500626034637597664857041198529700173989479508836557992126187899424856634299932322266848603341038630862577012531929778927120259824739727570796063118395615870214354705523952636115312970229746931871403088656935289333862534438738833868799889745358728045228878911176357531198413408214438392449728932089707077460621149891218786089401390809868764389747686260218953755566417966485913107231905585128856228447440478824664722877531233383141859661742433045701076675615055810004082190789883724045331544291561360187745167855083575425978885174840151744553114731310416800665449083347801023230439149916528732591361818869134922175961655302239884567921855268085349505161602473200305636359844002935938632921647118151127868982568987389155105193610197749539227361688247812055807503134247149630025721548284410516871697226336861559012833754408020731718084094235227855279422177568862632875671163983000741267024439633419517580940736727006424077151382201809074869906435922846730365534371791297458070629215144542651685652052725781423716083018851865942532522922997720287493318925048269658744093836391337892671548183712360916092093019634800968893658874463914603436823903079140906922908119598077580653716965717850039950982349332518746337430156526004330491708981113230805136380870213435190530679842228992753605945144058211879888921681400348785133438450447304850632407385980256072025344451236479345832346970871942044154886957313344269293985279244007705013860562449552531302512447091724913346942563824038667482976845845587547344237226521788349534189992484399382620911121317597998246684864794173177580717178497244064475803905534779365349015420339731019711597432709858865757723681515530995715286830641787661095539357916845293197619850950617362057925645308647310799887401549399935478951008246252413127346040050801450396572060673064300238037472140636287462587013035966077681388419063380533618257428547866691746944866848552577461627698292283320937701614260469175995093282499820318711330334494978752222724585801835063269688015637557582844508307796607981872678172690637555821737819605014139359704184345018633622160487726000918664167047146235485978671204576729907770623222239677510369001530983952943534203844501250410845611628387363154315542885039374228928532877023973868340846150162982124863999277087302297715937262424519370169701031643995806532834388766927586632956889181097355522204583418208940417802968945613932377785271179158804695235603979412308584547540146134146595305262197498090037615736898409914611875204302053564547799033730408553037097208720231307453932923946466932925792802781671562683326872856451998455178489253400560481005020779826298562241483183609918480450176038143272233162348720761718811052255006319128329084974467705678393507299207613434157924538274358504430774964161914686298578620138427372253432515403543116796294263971388322354972593424418182897991523769425265788078781122215575649271295530581345251075625693482923567850476645208975125840280241795873519516013453615998462675429157072143751410402485901075552122313056313160543973105466475783378463089520690565765446505699389524876813832262282656154864862036352172792979407781551497875022653874402926986214795948923532178911483650185875858009050103435148838736811193058361211193359841380072764754623054206257601741353168639851338123307916645863934451176631736378010839645060256971616041240276974307988323158600037743384680597200736981717201630458822942194455692506830881217262335070708906463130322091184176956602532568769293708359054403447373406574209173825479246126482534784963948193604640807114302327379094563450801088565091941785576603901311445347307225597747274777274654530753945221184637161099223247186697349296309133151321660024141148170477454827496254014264717779501493854192932552977668957822341065863173146547435714888564615783994641796985540668233837007786936375914176630605703996281222768687307258270529419870371999000259859267842173541315194036662814066975782857495355549368698093848685174331550095824875967933509601748150471211651601949797321774451508167325513625771121252401084997310462350391385230938249137780306047505803020044067601430160223764015360167034085502358932062458643607604403847699463992462787342248441761230270049392815866397791578943575088526606204002709332294868304523422658648774696724688845099829963462870590318176933867450799254325512117362228105262374693196452323881908783199947340916439962367615257365008964734397040658768885972979003004809563789003055340907927375293084904593085603173910539699268734667186808235911765963397440407793159504295203804181982233108014745115984080916252948020231150356225059649110758182852110412095240242772759539091895973095840671416556453861909767251733179403871731301375606176429199353782699721473503956777825964714517890233502158173512487474381131566121586136795210263950457599197083831956346166371530242517668333613093261827741717667837822253284288850252426761741890247797451835374979978929969282928163340376708469067933275130030007290259251957963913559941620541589064032185129051887865462889896280717315294284923434026252087484606384203338167852760695488207434278330230182112152282432684088808879460523951170977424161378586327155399103132316230950232728097961118701124432533272361509922678217465903836812069251006745376768865082506361257738380166995054252452343193614778400754971201945478972529777664114155207105145658516496522060458723243581620615109412750569295440032439855402830235029095729112791371029236200146895351202372039267407500538528291863644643991560509222515214668089949647180980787918331638488635710502340686867693877627967118564915060325055418492553446090903176944748696598393656052225901025291153965360147588816100316457865664419572783781062065553657990035183962929927765974543167102750634837507232219139472085807019394937540646701351524197205582153786544312033965348413408136879879281610886700553543852410137229676897775497221181584414932785031644300463367210005651710959609110359208819601001326240151480547760448612001322170036824414274329877516866875911541890823102419176150404012471111063680403358116780844402544053802503983211558522831469275964807496778116619716238499101185151452186603001366346960537513048914902786018600135597950389228509851245540020659276319345754159971011310818855815789830804329737158949973154794753362340619623363135954818663337665492525575646804444573672100694845735881815798253739052176240167119919484579031253316554911623072641788413658492159864818127790754767792035721623889760807488430724665178092552172021610624558746234828248951849090778679596242173539350473508692040248691765687266196590324594276036958525451444647557746735014662930960972782299249958531059386055864940472678515493112218686192623837573226632493665611908476610694192271268113834285453294443655422578066608759923228930260940579352299520606029881533511515850536526510632214767366494586814233378562455913736513089338089925131654629967267254507640245690468538614485420895853206358058500405463850952685262304005540111817465924503967296174218760170750102560926398667583445045673178630063682107679301924437925481321569170836718584133512220332455385418952525970133794910061898241997035667400951329221143954662395418654925864603781749862629312660859046947557581487926361654096711043749202259944786225432682671605559602339074399482141964607811003321248667554776515590680791211137676951832989412809548733422074516139167934878101924897677302028902705056494964439380813561114912123724343840272652829586794531623868833110370293329374836745562479156447323039109121180856735054553949837265552651281339538630378691707903831355428788228292905701021769385221961670613471605402270319621735949885399083994016822969088138397878024372873139398526897984492084135963418103588301854684694231642305696659265277228931374516722048288590808981106289500682489905687122090900564201543376102255185585898530147446216782008195575751741174461433365627369723868065008622659220167332957873107549896818485380638922682954721365431335948323378802290299514022581500463123965187809497720623967668018873137509449650089381723480103474219258833970390573090178903178731521472046455886790297554637760930435364339940462749623638969070969486248916951982837025042518900368614525597805652474179451050901269336187472706590061523949457074232166491244529644549091787817745579662075965574763240715875870333134218291785504708806423759859981160711640221548984199301871722495711146806835325798834212162637835878191825516421383595384344737076416124671958351542909904005645819588799537060704495241501169295279473725600604668349962935265732354095070731979144479760613470460820747695098250435771839117148749560338963469244907220421000177476999465500997364349146581049403494073398363475620047329824064067579379828675388948112923372980151447142787714971877831459437938470850612912688605885721910408926847761223657905841277326966716199177230117847703392506703111172218045076025608275060993259842161553380164405503604724440143268598431823392367832995465791736461291229050983355255059549521683659326659383135659455322704298904097167322572918168314348223867944999118995998408664744964057610340710133400006427941387354331892262770656923381549696095794695410339333212557009945419612718356493460752084167751663729933096103722478373602650563148198098382240167689113251209177702627203782699391013030370083561598495850520778216725440674182581494904132844149187710896747162382490033411615803038715416137401029990727791757806098381980976218839110832079291279565064944669090263354365387552432377378399274016255212854637946638783505523426577125408349307863683116821438405408633085051039407382467308154717746080609332613066826957996188127055525745572921988251626225268416737144603173268049432199931157669483818968943787530244931396954506592996857957837427128757406575027262911665663444145719651413400830469116552473074683924132076701320758647806385382404811053509847189838595925112181466327767383027499136702633876781760762687438731745842847385504494483403833176626928133962817759821304830284199259132384298352878647311694660558743933002242098832395461712858381415822244519131988613670838398705448435285474951338307716700473762153806528866634880795143459136312839636955144989615386124144721309636606439806576029027422060373837439543553615697862496042218413491217487654769668429018991575909736341374344349268644122796785217334062283813591552568077572017342756074732469193139967367113885996888772807868769495369015974681384211224770920545605236523251970571420070396837732308480115851215630138328900051487232343504194742724487658235956684012635780315047595393367294129002143108133133941461691197411275456187989636562892868696192492448800983221356230204708187411619408238400621263050793575858533490747699120411934339193668666301499263280689465471770800514224376144111899401659483851873026134305674635181764334591720109823548850141788492856308109036631961454902555546682351509001107757024185376149434466727575049238301991370071554760491009676203208838376705543997378616678652797237669115515291933630157160765532989851242985231327121999823722804622802090135577515498302723428083009396499104450615156690027080793536923892946012085527660245207938867230140500034984073476248852366649056201715555274480692513944932947051585604475771950682996576197136331001943915318829788037129075755259263231029423270773314457040212196163338152826836259258960473226711416776049790068851654179652356374489094525507735852540614508688095303722338970606047851955156800083531813244367386040667400797206802989403633796434565517983438211833678060227196119238370210663132951151594471330227472224140610132056397936642616347180431660036531001306222512423381577505809249212186700511127402859948661210588833690851741540477681806017859073048291140587816085923146978726599640432252241169586343333892543646094944757439862007795595323125513564677822903164661521437692160119486094116151700163460403793833312682073354148462074921443807675996298552762867813475884531765092311525056314432341251090785413023111100404418734034841460178547506204322448023502980262498240609718376149409390095310630829680274036676236333790493946010167278389100062282943066239321466596531240729545865896624746769351940972028515027477510593070544678044172449776276866219870541569727220583250441466290711108189693344911262305273366515595417666378445558142093826720748094422655385892446082953671329225863267889683497935943680843096412427207900458048026380151405303242554921839187383513705236846489067766942462538719917886963839999804034333637817733796071505049991545072980090478223443689353808648405620579250519302358097455387117765977338405616003479496453594857246183243728635982391116361831513494800349547985142606489157194737328386186517490920927001894259248135328334344954716959146540472152589978258505600522548370584496422722756684390967767121492574227188402126843351534187835474403295115676934671124656897245665001999309986242967330520630029510546870572992637494926078845915616002320969556946440021530416041593580272280842638001991845019242810876364940428699404285704479044236118342483873065419553786314663892517340609226166500245789732811185344026471044147168197203473682572636184329362318234383036076790870772401010813011053555648512833342334304697492668265276008086473190668590273473295562437164412049380739448702669120155558957102453829818844783203601604702466149495770571284954078054489839437275252862012976083709105735410720646471670455287033880386691138331238098492673625915862819717321279730476298191090421625138648390295711723320891687082532103506742680218211131285877263730501189221738156020929389984858036457497535593002051424993823242707752968791789786329702769358760509484267277732773332066316840525695131498615716682357171329081864604685890365362459697703292884803475841956300147350046939870214373900511315861759013893529097269931301920922669415634788316229316137290896775489141808085588450632955823489170256039304880714905835291984362831366790353810255300784281350685664694336435972404566263890294921627199315374398531713227492187064996044813289354189275475285898528684981182565318329379591985773203197523940589310797572348825050425993042238485685184489336477498243237354029441145336964707508958247620545216018726339640976377808087468771056863951121465094910413192105614955906093463606505345560857385020338647454525198831578829329029762879274892513734556893694927635117547220513592258760022369481045373311919861820892755398559421743802552068925755504058120507740755318503693549759441895728386188369737560912088615844389619024339316253361023053312137969620472695255311888917794135963778005502400599702008314658230103728363939337726333483968743156308589030749139621320694278286107897554433515549092542527833644441756569471903055869217399347436352985493379014074528717509847203404239894919259412369145199604467969538854489374007988142048783501725837533334301765566525572978276679737387676849488403038912316706419250711623330982214558176072336000597318319893865554191377598486766267152675372048616992103912316140893219691757028730825031139317699160237393664846731077554570982346903495477232191986190051136873328898046489007594604915266241522937116944314454336998791798722352615955764678986811087505017886002609003044685885881343014519412321603080529043508110996720872324940004174420488803823936315062451280995324710946041222480516484049356282881610699081991316266039575657440758207486550952330540390157202156357393439527535022909019517210719485835524898101158301318157565524744480603772286999972849605739627096667266015187017292500363609247001933798231852737102151744021566993115069340728987512764853235325028208643888508547876982126902563432055216167012215486422432184487658423508642563045770011722043991489522675041402066175171185074810612496493869807569841204516106617091632935050678961840174654794942671781317516649986701463124393216293441917910175778733410277858298593717434790021152635140239102899713591078262355867822743968242523055612754077326146225681176351829070848502688321574756733329130964374414582311318586802032454437647756381998540369735628766518865003145250271164046353711419140472635272636034554441903650421946851316982948563803114432827495960112797011572991411858523563760574850914290349467235776553604585457705784285589813559801716666894583596134253433992936364730833739997575216724745147007063781210050173853183421104998181713073491581841255703985119795185864752136540260179793449039450357509880438852720436450662806079153902266231815778384560434517486668071440478190224637658066243466275456772091251864357816444620710875525311515965493937282954054594288852974235907580004831994652735595647757432394737975840324030230844955539964663140182105214431817867838626724600844776278227845536013676189672983836589722700022091814633251536954666086560595525204385851207422951945869985683815474247661588884684194762540060354814486859351563333867773189678281359175950485683296662870842357709737952276633011893483538369826873248587291600058910194695192574892668200156213459874276792494298545221235673456079042667367816703188108877148546075066372106042977651437777533105503894519602935679458917695047762758249296976480755643630755298312383530033035477471787954475960439684731082049652452915542886744123815114944382109958044158927736850047958203024101449383776473117127356930223320457395168167744716135216777794035012245686367915301144754934463174152409762673054715409994693516148749567306406170701867476724238441862902961149336605023074795930294283909739407225307408671868256475594876250767911080693175830558618076232020901553843849738248610737387537329289900071827062567475020288653478611008139873425330341002730016616685848834667090184508632749062558170878649156461605931551720040030020754996880188459962103825339230096091573846792841400918384886745260393489367764316191638716461219418783351756153393228103266512920097453467696806523150730367411248242467933731378720158348884633578099661636627498116879008113049952324077915689935232179330987055281549489552829388846786472282414892277086204857904876256540928040934883187706453103768821983571655987840176950054337427353506381611861595467171441041076365998268637260287795559052469892334605159894699698285030583632911688173119881741863453933304598780713675559051511153461017369399110256491372329593320110046413492271344506933851910229165842777911145614552527315523490935656687957460786691486613995225412571974734850858547767073451318789030777319723462234867610379023391962529374982464204603368119827051684088548486796840799465175488731173622905351921657416590906794388597196398898342352511121469130417621803994764737085039276035635787377315455649014988686805369854384249223213060826595100412347742914592426912575821397635460637769111441130933041117818542000581814636562364926691784779370255993867365486868451159322338973405047603266181075943076074778280028093074721597610214640734738241207457353072838671467142101365384136594429192315903737540031154400044254523112505069385698489139942928771314362779635913555018066383214552472636314290461033551361994775413961619893470953925717419455726869248324567402391368183499481900111141450858957624931301326385789743115166987875788983725101726461408126483757625138244399764704886375664367329392694978520763998432697881052658661658373961330654115951933694521428780754169170312379709884555194173857627321171001690252529957727574972059809788865355056162384553621248189315068023872798879472672896090566242246685339638335996449859694777224647338988539362926772888353094411881650191690012132450872266857075643076365937808604793493723777731410129273556132688180696719679179101558569869781657548052532090539732699742285015835836256339135651686700627926755949429741221112305820809725095408206349097034178995900698422879472668858803873890838095267950064158763005086250397291405122734267966924395821144409893461299448146960468469604708108883869916663951576256950261387112291807690067297323672423203060853005072457686248047041027062206484455979101320471920765725883295216132749819092534607924493029598940316276189232629343926313571712953419529637072641829042708210952105299041135338005586729558741029731896401762977649517995536209142849422502235751964488113995238995488766799793467915218849358373821288609828340640723607746981743973159463094917621463178532763142878453084334797465109558293705317994403422684521105187066452740632193395384681074420440718906206144824581432828397876628571092217296347698336634140586447363380777612097537931352535865311734134987431602958286080286896348009007380907902899581029525487040731972203234451924651281966023290496511214584494600469840132752144138701829498102182509478263472108211492117063426661995315162267819150636935043811036675623433099908859399539174715776142427961268440025129571003772334888744952992510029996489856741624201875430916200181723823720936162709596581095183461771749453698260347931127297218429261911042285692471161904112453526459424650011902270054739431622846057208985430465714885555796565268303385464775741172423810392905995618093060451900005782394065222153912318872735072760476949203072282563888343212753478939265742146634915228589174664431443880381288807484564563572721699994550038069126463330410326026310443406130884954864784219304544836930231062104186307403742382808025443468837330804689094023035130320802836727321619787716651337571015247100149413347345147521732889072101202144116643727479956065268438054672902994131822227735614243041656075330608507176495353737393610963019636962382401480355752646358129120497941254032824980267676198319779267103708194006985025201617506813725532857190989759042362650469971173489713546891445245399192939385691055000885360615929941923281074307484709391545428513793441876542321717746059219151871977286803289742593698491025919560050533823488329090722942452434078963354618462175863172100847834002202864631776556689968202765647732067491725789495076223249284551028626387877589266626086507365204228795842936094809701856801229491141475331046769398541490180195461024999782405317487588391242990850385316664814203073748867474324807409962793578206143352506455277156224996810757796030187923492288016023759382517085024424396595162625313905180009015755355472161009837773448584908351120127410272935826204305386839202806014323488221291697989063831326054763243266498360035658347272454887489694353070684096815749299909701072746392382628194657540144703467792519671893285835981905579575184876398723482326852268829266227958463546325544535835979438558063388754107947510083905980383331131042624730291274037972592859586199775859363705707618796125515240041077972177930687504732435785553414303379211001359761349845717881652355596294550676775691729315964950199894312759859560423529917089491719536292275837994992584948849595933752234129881746238228561495205633831804201356963380779097773067822932589899035861430090449383012306997267964794645083978306347081062705630089382926779602653753698450381708187836781589389657124084226694907300789108239023111642612073403302313968923038042812594845853237541715739219738693162217279661176961205420280569668182367693268525552308710812378151517310803624691750542670139085341922640172226029794230391837176826683057714113411996943271479606514738814920237758595365837553969814544615494429431029227176565359985367374960372670184877825198527161873193595162481732514838979945152224052297792714198389928350482724075442526902612326324850015183848648461712136990409724034266406506216381905381676741092481765331321033777315782714016680101229200039191849720469103727453839170321838530719475113127260263852159051709527742033130193593555202342037789689399715754836295960579086767554604010498809198085191793579261126229738506981590349837982445379505907603548513220227837368827539041271363560696006938810999719767307373700291528178674085284766205159048760303149294987837466239375082489620511372551173863166245381315569629805963832094736796995637373410666486153505729858900427879894217114697558725827650409126994101831445471693629556029753550989119408973924528070216494830245334874942003569663294160235402097351453288061760985420136665727858846630139812751993030255372855719024252750099812927823156364440644318989213938299656333214859782160843111672739915186858357819719398118295616564793823326534902034963219931289809220012705134654610695256339848525968626465941122863611588726109622178058810147116342458685928378523367544913128593530121872833058295247623560291590616358464145950202972117455142817822748226034233116703055696299003509174702852683372229602513461100755683564016374635500159414123033569692095302625112649039338240458910659469936207092122876227850021504221968589521528838988312670668747786467674611565534824111402493393162562028671350149315289390659418330443995271147130613874001787123585372670536016623851646402817908746166021224781585027320059217333379744473574475098258228691597436382490412187140233334615648231436657339559742981544478103935006175879253972819689818129087731661100629785421144549254918109958854841740434030463338028849716981463328594029634005907932111223357142052588650370541589251928433210198001197037785844175758570214510479833670939380505915020847855097154220773060079977068833320730092658503176612519959641769284310242200864079500135423569888104528974686519130950364248404898808678419539350064696023610820281762291876225758854692815450004792044202463701541544578062968368152773767071572048841503589518808600903217771408511623422451562484653416759152695683317921053239622346312154338043358484797313192938170093969622741888292753587113059331741397518844327250297871024938249305874322226945648370255098898298730944194344319367323419800955016578603451714275933990103670279134022471735912586248066692026832512034388646953480846753620975466671048823222601443534530491800929151590741901515072911974905201889900760523905638252418317103880070510237598478724664196516983326345763145285402192912457646923592417207823245836132345925420564588954877703322376572318237242388922624894578876174584005844278500736665379960051331720284932573711344017100648227085034008899256658642003929293383793264600811564207423353681232762992442021634811081961066359732873009686293740771137802155567611980732670432215653349590709784733515831024904135514581772990248870493956068916276926246565159843073901754582263317729229807622173876696876754236816386579103476708997039773570776277614963541350490943225893907529070757680402645683788771315147808400860472176117919416585663719482701940806280887128615107121627464168492117398805032047297516026606034623188913347779476395674541851750081488583060478591662025090799294665220074045558045118977160827126758965232099796165179162356232635354614367614092036960166578050796696767403871080966536763583036212132918800932650969262517946652437099936719602904972338593929931643171410573724353380795601234068040568630472802275024331281363700235257584369326260195818065074458717130082827793298954063674644163987869817923668980862622117482402017806353016798401879518244491475016458804417512394460182275131582478633579700848335241279513414496416939491401232333935303203039047035518462811649455388480807004489805122630872183185564161789732676099294755114788767623995650763283049471649495475103680516149186460345040831747676340030765297886278575560188802326688200866775153685109127524371963351983426874341014735731354325169181088408754955864809938446638862021400096645231476404773309430899144313875532076603014138163056290165470173506443353338670833671806759359939551937908105562747498185697480052833767598642499156210585928802919104506552210877749305754008069795265676824506248499193494517390942187724030979852700226867387963252450929748018907034998340247548018981171618670995123909482523135087356043381217487327481261291772537580430512175249554986708617262393987508699098430113980568400035507455832870693215510795827419784734559258024036207684790712002710315370144625220695926022398551063954672610404249968278521875971207787474971141170165319164841181324098338857632191474740674292852644739875347561944695824354085516472142837047229127970351023042813381690324441193580321335327248766372022234820027110862408333505412488097746641449074556879599278962969713247603061210335249665806258330432166459149912075621127726919372165355706301866373510032934576569223666514170030424287285192995996748544977889640164772854028835629700150317268702027524901977058347782556915712222635040815436410220667118133011524725242200887018310293086834006216464834291178708733610154784191041923649109928594422229098434286168018411491307027652937610531118025700417684016732232665498792577557028930563956373273849462191342760391192505493738255316661886254099102344954252933806231053414820103707575648572055876810048495458920488323642232476108651551767908112895272959487292457355071795497337344951169731180467440626164200646829377599314456374438782607596787938286839891523048057411286236459380065412525406425687214243083175934178833632532933994992638094615383056607684807361252906277990242047613272263261329506023586406716306809980358543012491858019297426664787110767895181658662374211293370502607810993223466594292160272046012512102975102828954347205719695616554876657745352611826260571581840887127969828916476771821944798750972348809532891907304358527190677521212929931072816363492133707616588195264195431561310444361198242281939445561827410961319552179297364943304930904173219747666819642720185954384001754214783196740001065734370716431260445003867824123216584291801678119758597715946539203844108727321389439670497026318075053466206794193229816429054573769695494087080124651936727299179553958407804597963413229452820109558834058461716569249697871467791872011961101420896226410280463649408335955750021907629398908171638276192570044466002387689910962663245666904302369767485068972692908066813806691576613357789586931727626176774363099529309163595299030279892645219043694863692051165961335894832031526605113755823510985016537767180879488345808959980003182091428882351729778743647360970506081836181521992801405930052782975230448566975419926638384977664433482910006795616315279996847363863280449304325594055694455788786708590631621594317035615009614700047360982010784303814169580831750397445184630671735512404560525847825324550898089493069150109445194998194264564613918499535116865225294146148392473691132837496179978477177456825790093888695321344312028402399350522662252519468829316951443812272005326665354924878218881391630642139684939528876965178176225488585328452412995272895597604837434934636311291469697883530002306843376082376565353368474062857972246624694124394902785999264948927121179763942358069172427840954586025752053122899860652861665230320195629623195872722111344041739231180953993464485649290968384659712468117418082636895054713561179863102357080103528963095441926231300324182535035579036134617519419472846090677719766470774196682632784949475002572201476536478971364104608126582032200408286745103301195042303680296700312762397367644935428428335431231632509941650262901798008055920077711909317052064424815197040709084163013987052833296379676839750589525967304207544938400827696278539429027505100200065311167985695301464296179560804278818558853241275669909993639851942845301341807783498396933098424043818946470347538037791872809151980216506620521847195022522376266368078251773681268262225453026967566333099958775249476826516855526415566199189655814664086093674262924105392565509853173174369790352725376776255256118130602205963411565498038456142806311996807059935493104856313756650462966300747404502337008263293237726788947134333112435767439118918285777280921928847913876184310255203211324514862777738467821702267764814153732581059933537422046014093822518989086418314406955393868034991809916357613994028681181501706533028576931754353195266163934447861244505002598111220788930861603065000674414287359943024815943997078378337162134341431179401331565450241466880575477478087614485017648839816961088765950888424096088704270635578732945265441870872861356373328926591693655883861427115514837702519128637589944625514517450707553643136504010333828277848427462817672057075104797281962037011341886987406852470689437610850668805620680275772249996653883273526984165027593285867968661754626670317148266059607309299582909539333092227380127240709334007324959829610000347219687267813905753558260577909532783802163925155063014782767073025199104793071782410458153185585902122664717493549178578970545436334706188540360730608594734476153923224177531879284055636379072214827327998194244892927842100759254005993958039966237298511114429950177741794459895822830498069708675634839518633886879050757489659340189251184818636441344667830800579061001143327605257168979941092177912156718897782952154379347994764095799443667974897425750212001320340208370781003353914253674443968846895780510979796230388976858124156570117367066802488148079870390593644346164508300304289289608844356170714574754581656110490928679035260800075243479689120264504096587025503214936868943517203164050892879217914944374483425428609803290820072979562965695893811221314039702741136330554287589054787109160845292234395828408537278955371670351168712577522112184895860266819130808100227484841246944157146060852110480502500467000373787385957247092464228788696647384474236342503868176554211160379432532366853400804291276486866811872756106896801103473352787976457830514667637308207491388701961183841798400879307377549178023883957908021384028471872518809706417350198515272478614336919154803242303267613005692432071780134722602508691190386644686425135397361802876631920607697812381567776449121641529975662785806254345673556226128521518429376379320351442759928403516252965320155920183028799141913588590855342231877572455323085918383921345479890697594844095741283818337055368476578845659566729207513746422524109641388280146766564321804506259539141221467955548002890622374964499985975789439914255600196246709565466346654137804188937806316887715172470657676510481432690917151528194551940854712569269816649211997890155880494565438606322540016615305552674276605997774888870752610629026366303344221524476486057761375522049074357018608289939624865390052617637948506879521243794219795991430241538767226189078968077883232643787719534909818790267088457428897159884036736409612741865392227704180900256500791204514933449053351549025397541105241064757194153249430411907406786040470173421637896826439576906471951306954365517476222508450254066226281062630781033635450553073518141327085429718691590902993622724922240873107074320670517758115467244421305130057636485847672508107788530875030863048352624721616549411659152648010148091693805463170806050375397896541554598074414939603121747779426260186661315313438270075710425726573950801301455374400380719127072146653126276888687165208216514390052758546417593178349549926861284298293499263873350278086359916551738583428097725025536041435441528669906468548318452807943186921579933242403070062883104415103220219496429103619545110879553293292221361324718530030536004970687556920145736385097181081789293838353666786591046745520340112925886753353702272391473411584541045869197079236106175470856781526837189790050841821368162848047661750955626074648421893080709964907272275523175786048935784680992472531538298477738250719218562426658050707210330459059905227241215000970618233797958525936368890910121438172952990763214372099339526580684020497838852637495108675871714492048513682466888697607487616803529488735114180555481497347246436069018927261960120751231254980146528088150716860364119609454803461607330802647362220481045899017073858281973337150747757151022891596005140552140644063960518849543006363275143700231738803136029630269859714505987887084310921210592482483380390022824134932005285215070347146616268275635545950479854841183134560240530197057979257629977694120909608475019481321946221509854098827740236552824957744857336070214292682035467288142011284316695870288302225182374509055623752536949208693367984011322298279660888271076694728194372007704189878745271072220238846538506279844650475032369435373638427881465634144005049294852165333856576824905000885981337665513574416452851431778946963712247336083813407507757121914205634257602858629709381510010924917700973112990140155893147272222959006816915414458127534733462125820740425963756241113639930756663298307720932474079887577471132900843503449924089532518284771051437608832436377379288831603111091219125416036695487211197098088571657264792736292909331312587847245136435770462933786560590377749926910286997781701715077034451714622919620617507206780096757441476236971553725915723038298324111747762753382319759910199569780581530870637751530527151550459827266949848637760193484015602928606944802241757441813819066900439153046509584067153588583755449639447791512192096894564282806447517265338745359022344790194663855199327859080404847285862732165717885503901305565380178778707809394867644652587680557748666338256475540957922975183550386562856256340232864553885208293412489352000688051294374875439768298428086043200030788036144068650090354671875618619537616643522467659095642565782146334738250094653950840399422851189599238905057623133983269645262616383319264971713323630700922561785978267486515810246569698064602265964207563355731797786678333529188273690950941033462179011119323123929988525341751339620838976845013481571357341875704440266745327572056416690782522054844750750689420091361774337190181962986836808898254592565864874994435398158816313227151794104142332835115388750920009144895332944070225033512654036595597408887408183515598925393646262079001991807530964488971456161410360334664834886533997594829952197366529921519119460815660277128950970212638568775958939825680757402568060635664897392748150574591045062648482802778561766391929452806309216743627346760416841515562784447635445001416049428820414172306388139127643544346696518580939643960294858734092457683531600470495691102592226187087189910223956345835855798413113710156624145773382495680626308145915511797377652038513353278335416411907685234925098131378577822510535746777559795542284592876254611654718962615823891455342755842224701110498132203979867104641001488391845977382339513180962361218940713012620885097309518301893194213433289942251890644483575679739552866337360093633623252576859445935192792245891092526678067246042427244232457025926744772143814776048953333318828190081112373155436539559432963006389138885531715338251819868546401422113587195394641408764111138088647520081872208550132281333197647326302353049716816060955750693573369494186625519436678552065676720250100565947132538107096869451261081410942542691418197404213996801440350330016597470446552230575402067355364236217613747982760866585503999423276404458688552254351586264472910979940452320681831492092040701143838660980284397808222096062962002163227447466795036277297934858371414303699922585411666469581000341910847032631716003211904593624314243219601485215830861707272772172279860357999686252587440643877943101038939540469926867330501546257393341952432962263423607222082367114251958178447523238194113790236442162395504337420843038542650812085031069059605339247222236904663857156830948723856953952783634281637257058968918424655007126707005795833317352783272498942863448483541684078406433644642136488292015624670993630770166601185286142262193821452089436842385958158922156159823612752975783590270033290700444307595821050892598748608147273641123911120872968923692240662043638061545618996955593058279616013233693326666189852803390123770746191991060736934890102073410939929472946869567849118516205981725083016897439501627713298322859826341079093323488670300857817441808347329890951606544536007848796276648753623802205265972730209062079651044618055964851644685029722520571138502347401645649399280647890870868692858173181314471419850769030131712519910124739725556561745569616660662546425993994063617104701755863074618787344482465183762599744196493240808005376913629414551084051469563164365419803983158086736625187974562666147472953319021176175679937570493517372785965904815735180479076354420962982946314338105445764179797288231395885395624462283290613554684237740445768386260253771329506057405090530858834775237204235868238775772464683601750125797933688278459815600608564122205479585136877593242139143747136062249072199550338574785794821535495861892707719463458194523701938232440854565949668955773136909695534054842517095919175803522418135446061264111187021446679740210167336062196058228450663847502134981787070119646199313837361916793456018950033551018452915087562666270227715980480721569157605584279015356239440225559672659430155307121263442959312491872034136656618603458222754448071089103682586552392422804857791959543763216467851697716422249521108802643929030170714422263644888053769800368311263665594983516107045404969940997580066083381119258847284863999656847687276850638905963326303646451316833958761413891991025486812619256968797384476889427437290714300552501217126060282734098918619281648731670033198372179516811000066789428908382494572425939621127934144061921524282397509152853431293245078926039267443601199882352728195927811839634240253070147237436207165477418197617151759956474113681547647899043822853619641400456317974605875404641812539236407904625906919965628962133914812302260221517103547324806888334593027311705597502534967977697659427032943199584166918950474503949014450436499834541133168573133516089081858735664444895897257978299385639465577172796373197522227224729182828225355241423154056686512470274660035514777572292696813338360811077082504223680519330659402727215715304882675104185548723909576189974271241603938376800777345669537182524865374041586433446760238083026194334423468338492429332138751480344910628141401358431708154001406176258917206916155198894954448608121980998797107690756250545117882001763284777956835787026041800313495886040335639365344588543093037551519784642729913651645265706167156338792364699715329315917917115549230578974579194090367545568581763771139073536226281163451252860478028849901822002675707597790416976596542776665791818973707532946919743691257490927616150609103792850891105685226102357940876980319139516559643456850167233716345514244036207686369054986638341312944994699862342853298661425975725141574372621783879090689784958322584034455754957767362439786777645344078328058206995925675905096725248749025238760942043128449021091561720013729424944230946630419391681651485346927484765572054865468284806714988792401457726881514857456898689701446454324994947703692706667974778617565371761465325958123125528403573735596813133685290468148883243615956680963005631079320979826905349929135341210905193647861989910472799821977811052363759563518782123076123000606558666568917180963729197597435411727043327639586489889452291046305170488962036050777336068683553108603348707688527723833522855818339671350559865896295312286547837674234075916461325945860608069422349919682153521339709599942435113111241826785776350498483379218240990428135200960266502350906527620307399170278404272327463098811407509127765370489683186198977307095695037182047234588898256663411168745067160468916313999455825769565213960329204132848124263496585440452580226631703929115685498394935315213422725147148235775902718299278833764074897029123762004947381507635766508864608930568314746560575853391152894022614030565822050795667530350346731374624912282948069038230966607296652155560269402214253533927523081446349337997299887065187129021680848859931830637965340297284098349116315119922169242784329244860219739103964637191113202232798765141061625914831121524306495063400464094200943508217235797042735962062947280262175915199009744396107147499516961897137549326726041534780632396625309766378890770049453268655539796488448599717124784428188987197778455855648584967182896813907468576204703590988321967973330700880282856283533487821912322430969298859303396284033104791995677298272676451913507405100295298488796512080030920418287455928539338628051739025476965741359536477025864636298110308550487307947993998274665780451566757354962057490695608737474922618500614506151266070641822481266699185738285199228698079274783064404848360629809742053481309081393354594642510522416306402434878202143566621477850320909855629742724690511031913594598409106991328299570371251244396726196352529237144488065527307696042028049485592326051039861284127773485173987373616132665577063568845097997888441946510001348961207956973231618978723892105713732484555477085879582952293998059202284750416246250602287207774871762691035742613069360315027922913246994372338437400319260465864656992984533105670604998225221253268824153765570865791318667198133060846356475422663985664355889943465151350261602095390161273704445193110089943456840535931738138344116588745104319809032496120625687412173514952547935983698770722036767528057324769449949887956678803542186260700913777726814979552236968603434363645981929133388631567329595944367260565395188976931560289210225357364254136850321843123619917664943005517998426904278817299938922901628650880694070460654648451817233264550606094439393337647187616792362374449995667302539469233629431708036132565453904058076776498469736174475158646500106429306144265589114191391663622147153526210069140324223126318327743957394063024317255296415135460529324176059131749229268219998046699964593803029377520477579553790129808888151745050845676785392290071780892772393615500484477679808643158233936636661748937859822488553883967580792453039987510510345859434149098608773701288098317879104047483583840722771541175921608558888983223196403449995258638092691629035333844836830761105151585850768325584918364488693351058595513283541089863266845998680050381499637070598312299701087594556893393851713388822058068620058622758945153850235330041698410690419770413866433995274972173602244436135228682852996932278265460634572258256371249630088242047131934575343913497829688604172612502053640956891112978710163443993867136151147228458705021098342394473241636616350304811822913650691343798242673485503982058632564581619629702399334924633117686925210510175661301167491134859277227422981878996015311393800459878081284100391581143839429677611748530984528332062442290578475423124657759965338777780115222216240357778877987657593530892504731135576944461676444473294075877264664426092642371668296513051559039374415508455146496097775220260867822059964260813069757930517626819513308272774219161175090468719933082566792159361173157549967770916907539797671579052247389093201933796878251996675864595543064278964547986313146793816098150212419304443816879456447030357498462410842910079932412201186146466149205157796486588219365594120795599648601487454612349576734876820498939314596957056050331197566116640928102459948482621663685080997605156866766983566969240054927128627486223027444687547751214332441214272723448903519115528224470858048688237884912896592048251537638949112072303586198170379145521971048813672988490646944208213440470444855941092259456676102822011066544995825826021988344041511121569005227848313939259588406810732427105591763944172110146120861980335462575127871697531271186192338736611153790766223196684254984929739105581332253511347863841590181999937720081104068482299849298508545385802646089745353459557047723598497986695771202285234121627844644783313529772239527712857246956086405410099144049978397467750056612468636019510173237889054776259802381608802023853936826313566271369048049312538743891166530877681997107862428691654968206693850537467741997411676743797512633806099362279162089387088496886709592404055574370870362818704800837369421652259751945371665316277403085589497134967369744973526429811721357815446491877351527229441949244174608899617115731950718512998826009029311748781297679897375292390597934338364159495803454148742767033642227586480934720018718318360633578279865649597748414440757861943126597944524153108168216654443027104640331383139054545584410074175530318267707408379231166004316791843530084834796228366490005027043069188575386036159914082305193880439784750134310036225575349586080019228754788385860011074814815581411416555040418058653332211246116733778162269098222327625755278833460175539649825068970072334938001357997027246022458054453104011848402238089646164403804816917502194521290383505357547863315145162484374945582974536625486471966508568112213980397369799036906689480856702807877106532135090232657328800144627574042153809902654223226052958027845877767332948460424903666782127790465355910138806659661804699090810459462564432851294165759314753040120366351066398885837032068585885450826398261271513400460438133450982198610896105748162395803080358751783401268207096616588681248733032666246953461149320589841515828318943719156287999680408879098663114560600281691280597680944022281834337484408269390044918069804653452948827997192907591647197186603053195445860392362847586178933724832459041819734140426569593652943331208700132878736286868281691231443867687176808734919534514557616170223238866603810839472274203589900907157467047682998216041420936683815617148327324617569121319727106686553204939194546073337145420428809516040967275306570259863704077316114325935400363675725119092537462259108985262316592581575656167577485876621417096104495463591953211587228364498176746528257070666342612484364940525159067715890180397315681065320396296872170980842386208001441667865742311212599850306172808849796612097117185198971910411972001174052962466422035689536421767590752002172977620033676405492310092819880342861286366538929257013146281969139639494031066539931781702025372498816594148646982627910082784681364573211238568504088037526241304627429411957747156795484463059588595738422424319966113618177456313023405745962646341437799727824295648542724296287168677348375432506294562796817155917681899662840025703758123860117169341445497412635375177857393861032318850132832140589067296662002030374583942258427159102344020404850367148082862461516983929709842324973377053541962841312903491943310707827396914443521570571926370531719850476545108473016552075076781769823129493599359734876885784762331575360492605954498312488904249346819405163459433279955160413355401543321485329429232608648985225477198577074403125007718037120838061253108473470462809606368202488480090023779349929972576243491598455684596304876699138844863781200552655817046931990123629331764138607400480950847697874792599287561782913160379473711285075500586762929493643719547030540763749056367969943598952588562105077451934165748745531871696141877520002391743971055597256584052259293069888844698957250732534790308961717250178511670218888239119977459898522321814090335221700805275313843940146484848599215943123290132522689546469754053654452562207481378365037254360526517681441084531015768068140069451575103564998520430164500688638061713423805579635110098926669526586470637757772959988305455667700342132239941446831313114509322650332396304916052757535302114523740377937415452571606963795754638106278039242223375413617873975771750684976181177262550979917331586908041470865729339938289754362692932276896678474177475486537236528084461868296952529679375690537895716850598364315469362764859525015836800224433973983520444058726522692896941438803292020925658797290250397282474176887749463006215809161946769018181184053687069198161716796655578683619370593911712874736041451654056122007299503876071211549161916999196121937572310552921159929582191386642436635544245332122031789246132774766488821010072682954405167412042494602768252748067340772454340539593769564281324721380099488768753739658741583739416226705994178525642108971002087348933351202200719914813599716067488580267165773060406153999439456871139791940149355768949575626052939033758663218855950226187126294538329976035295605569193730193651523086593429083518986576217677819906401138398157935316558692280193290429128987105033175918921788534579990068736979859664085298315586225099915488722406151234395885100112093788367318778680443293463794894420217394254959407495248387030476561279961341699398876025279879579865652136043086892598891377463103503128248989421702712994862556030140888432937806403878338499857915810612591617028719183581032821015987964208984244171486110284769102139851607780186039519327089831990058712549682745227453301658378663025083631135685529270890402622874273410983661736528310330485423863383362126494285330602255095517298519985126976587697523486656031777536161415107143739425367550081294846871583680686749698163288550929718728259702463839289019108403194210226466942695057174766548002985396509055483297488141258904338519461493213165054958239641018547484173295663748489985599140456161637130240697930111732545872421415939438676462907583955235067906936203482079387777585962153176358840279330349244078468236605246950440891594723012874403614093512077925282382291405250510003115598778471040061849822171505107213443401761736460883672500549548251346379677155515543224120929343004063433211110341233777683936196197036000725960634051356259294392664654175399821365464288228131324981683860999446180250191280432281437051344821576360844685631214868413677366482888009748883315959921010869980330000887499794103614919063086534545193702860712104119108253484899377691910403195150817251959155635922270436643971055655985997678016895941412008337119473063051734631844563388164258709414056903639603594575843961468883139449485666105913213429366064079649187995391281377348843740322968004096579093578551312282661260009135023413890571624847188855383025803648429387501551721913865465820727517287811064465208852991787480489132659723016165799553932418684211528781570646398844495174673034276840316023011645509098274218033089832322070509348548781554274988965220163320979699585294160258629388564336938577829755462719291848522547311384702636315298415036345100503044589794433653844128552540648277879320728199059091067716001487000933587210949677844867023580473750117600198193797558125394384732197393945775276286530033476002504407867706277025187337650960867811078412239634048369256264940537209640854534335558184296753221533683053298636157134905124265722992562489594397816037011018356620831373893067781485297228629127518557017262582524860186403177043595827783936870405969547259831933890198527282993369724842464987816035037986606131733778508901163987032267392320577991310975392725726492473259354863989548783886518176081384980239298130884794274923965146960701401534686860553918819961594189079968001785375318819513303928250285245535759646479900865752252792749244638239835233694933762253614556545037804899986537078885550387778404310363441476001550170126099217897798259922783975358186629176122187798943935502751407030521361267590418358616508213560178469566196924968771500491907466043625992877564105950304678487008149124374383998228799523808364085591163793667097501983594453993428456710459737513001462467281961027940854011481714136444443046600410220034572062903856719546953161977724462161187123595619870938110736724634455267888254059610998454878960144652223862162660685952802369174930159377208156943631047394194681696961712280729795359783731393704633139067496788845483065097327380160384565386937689327226759845603355356792081798457841552928810737904760070874669850373520014125887530151414329893416441205903671249284412843994846096526597469184822629433852994934070518169306615190230825359725223566189988101542762717707406830763824585927457354077026014547657141760076830709660193540210971054979794871905647957819692628335648176711182739327750777307186490716233115235051504566605499304614856537024485198568407905400182925861336936491654195619966588055370658174474612138271847624067304458724546475080227147148546296398022066341268586518279917881211102018181825543519700868910631934892389090820159082836602023336402473823835952257230343306651457355711686319217290470022337126922558947258581733582479208056258164554303088591036782721845448163808986230031015183890958940738619599726727640411693697328425807737377709049114198408154147196037030929732833515600084001276516516432176626141849583098047637909050847237869106555508613875551628870975636442634099360872775706642818822634669372419857468329263744663306851970005320972150185872969045479931454442922464255002016800738688325558202258956332121143738780892901951834583130372302375007484801557709755396121684970523059994160393008724674730217016258441395530178784430239839436506582387532933485252707601191019903900572616787673230172544529610464346814226336600517504472106320979953192819868109770552176766488446470228994898252006761149819334759828172872467523624522256470885800106912218804241891915741618459463750766817146923561195088827627004730283550577218908030163435899931382928901757167773826966542741425731495753398460771931377640023790322699050094126758173935162203645129964953660892723034626613574216264046935291346535100076531720538813346514710941800898494015396599066390486509237950448964700296705524962283635854759176547454675006887266463242859526930954912852736008728393335301827376039631314472005454889404140131991266903295450862599660904609272550676820286343106145609311935799520889358043819035626585209320785988189674797909641968306883757676006603189883051567287506636548796092376882396374808373838526756601170884492358014038401054722927309377067151708701329959894070948088209593088106392497671840360626767869066295681901259324193658182132568376380374756379664416480626569814188331608117401849838540676165413052537776257739052488241916236337068633503972878695110687595372605718864771207206607950406486083810145079268971003400257159626980045584727655123876564906599792660865067006784105761339744997686477415832810094013784307528653969729848357335160220681207059225862696959466639895868285299266791964446978728137364934642974005270388619516839904731470996701793132503613178201545757883417286880034171823915605348945198925608411237214525340848190307134099071351644066871294727155450008914864803870168858936195950760587276733119013395457860380564304556156631970817288313335065435950462435640522541851657552120958506081387815253644035290709589527456687796563929794254845300459609845690532605640234993878747980892456113364059218696780857989215069554538689436583060622271345794105680559856500383734849964906898272429663227797723915785545148378159380075033522264796100413807324100055458666775405769234798509051393581937007853038691418590106481519930987280438007172565874962109926694806796705559740716486663351487102835192711893071417216340192141337965229783073757116539741622906268627070749836940660999467700126770486299006351633868178239782079666897476896591858942088038839211651876343708873081699046600320068908879842907259295283217968494660809776641571023935728301987166776895531975318097185175944036590462142735199533739822384406386702736096171287953047993444459346207136536825611870796231970196079000228157607723441413096495913775010764492972916034731596052378699625959433194304034424119781999463150778298390074055282611898154881490907495532044976607028944873675021118455042031790975957048649129542056162239041912670348142152779407888817815310217082783857630117319495928055989227651121196234912310073335497454017789495910575774377404500081464996621031653459456437042335777835980129858466600004616316523972126505492089593445902290060557980935750701384649995909437592962962384391583768171698552083757655312157686740854998177244840374742352802807804034116933765838330627527925565556886958413240241068142581862854305011821981703738663784710727479084086539013692076757333678739564062098699769390310449102622425231346141284841622320581385443208571094250339248778987117977621604903937606051322224804316053919796627288905710423111963835217149219370518086325548478909244109162074826520056888493931213812310711991804459654864321633749986189353720298847966731348586426879957833224391474229761178668101925824893792158153491623755869755287708502951142260962027612299386413515650374027946827635456560257891407972608265279898903188299977255571120447583883374449507145086700337135944131212300859194860239812271860164805174081679123821002866159034931049279282410113549373366893482516545375998659844266960911093568787307539938214165607632140995231845217267422197049504678298559522735102502694321009956123551697500349056750729043018556164832520193794523387997876653198278240675928976511138129663115940077508766800517087581098118560251536133947823479640063504980183212514082404833983460159505473277550176990290497650616689867369180965057225829715479322784124266186062192874312200675715452238548172350832348889797505746792196789846695583795689408597888294921265416570275487311081541628936349724505763974299328912168394105563670542612170907660619049458489051131740419282831135679621208921865961667033416407678408044518425972907842486738094054395759237013183888237106820338008353679600083147632223053169585241799847483236205183302026189265178796469627473300621504822029399511451713808638985463328894571104922543136665740524462863333354274301591992137168815600132208827074883814150226044122493249997922305276586122356638720112353179889033701180602086121337131777294590403872481373671795218392069545678256535678556181315900252757698843225238258444487189570263596594180652852335636377852772057251618020113983854858126603128234447379348137036175290766632286545617875817743116755388897428117811163146937065698077338991555862092936388181913780463827392658212466801542113270229031355613310409585081724662566590287461753426719555431751070189535822602134074145516419920704340548455156224010192707542420071389081864982227177197076607173465716744233445618520366578421378273001028643346411163978903064773191234621013561043673373552816219483973824758956760365157493399962412931798931302610242563938161841991004124253605726888650540023576832873095980315759399599316362261950159206447787989826814580242417432632814392699595060061830209081877402912602316600548843085260317928005304210383833179081677832509707780836455525340622746757548819609016169890013121189918794418303956746719758961648060973407741149194048021390032393039870494995597500350481515940104149834327091076786230381479057687510932455901055166594919333783764213789859231135542617978675590831436284341271310237266146377952636392404268853045443620026940667002216251906841426296794078931570419651771392895386510909274068079225747429611361520045682360014996740809447885649496655026534655088050761666599023864243618530696378868661633032918233462384313960619884727957371508714035731999967276361680364849642585893386314702619269015498154422753195081488945258728096545147021402573110679077461073331849954668860514607297235528625232439555914125773562161153261073856601886819528617844932706115876301037667170513545910018834330662773966126738151051454388493541638919790084961028698794691669549180668461505113786467944590382604568857399907641110176661396081307773941146454393701123390415028050838696509265760356393518344482069704901834071601574977039934704313524675971755507842964640242486056066190457501595520806512941975255119793837690394075809389236866643433620949022743783432087143787592266576964982411132037708142693008896336282636390787358664494929307524362805563912967765060089049116672628248298495955563434114456266811473243377493969935531746584091587776672686456925027154304046595350616142855579994415671252507827741196963507833352745839465781498143131899389779815227385632791120993064367467281167792975217444198747188572369539781828123182584661422413802839765688439424663170311743028762559605665068731012491372162216035907888377863015435486382446197969688580606845105695737402545920090995794986760940853437877569937355913907331188066443920042792330586597818376328037958579939682203627041396443574312364353441687145435080258511550702456187755082397175607365973181906172043874587221826078696922770209333235462585692400769321482915152125065815041894414632783812930613328998317523609159441932666879600060239632384726935932288059800909601364420923619210530818313794599878785314584392639278244836001160164360365864076942571375131669311914024756444255924204764543792848160969143129765003844094500443413952949685594497160433127005479774895165313875135166451692017240974957696976389140901504534613322003663405739945802061056897950445398675734638730573714826755451550653452869171865223284495765888574355573093672286432188724450111407458984679402251275450085173596185835770240371036997436417558659207745165051572880952020781820213459162994754153752340565393541985526649818589400618194723259904522533715239370482361639989640297840462908692671960179328001816477992695113048739010534202695617770901346585815809334359340811442828104580393742752366765265623268239003832023024492244175358746525169154915989068313645804777226489830608527158648254967811308598154572269233384090701271711512643971750145877229271859438295923337369386605317851093253086245405796762225003945293416831320309330423171842149770842877768679368073805296297110990487977806206361976969878773051527014993450001418653196842968393119243773641470784439834399120084239235924673716837168547446218143715454538653561237604592527663756098882397221023534722250181163080389061631344328326318391979051264374682124052075329757392296984573554632778493722472655066396270080381519524347047781371694451768098874323847434147875620403206888605015897201273559373239336134849909578861294979082473044276046044728078492902509268150857884488163770690088744228991688784574098306157952624384854227180800812549662190003013876919362583900267122311712207210432570193056423400963123896816593151635190160969862023067517158392256802033431351644332580608884455401132066676227831536112823845002333990145661930874928041376280677996895646043094395142378192333920929477293671389374022260499895443283120644633163619064050059176368824038617643315785473820011190047373735571468593574572836691817512524943980951186009998513959263773902201468664786502226485008872567376043667871502426995736744053043587531459692313175178735252268915921949520860326621609573927341393964789052901865588222099452388515270643377664418720588453615521281410600896180829819461342757251563065467739471044308399907749988964324431014401962402594404264414626975270487468013282532290607321272112963233694335628846985087882834300677618362334651983575585224480592499846089240336332910889992081536682162879814418993909502879999589586512502141876791501921709689354289805308071114963579807173740314202698353579300239244416057565793268147723816038059701464584631201324920428355129639699577334241695114270514753919355098299462972607594680343847613852165465276722742051825588211743869865003366094783845721639584936040184606089719629287272412336612474067941029544473906969862858260336146091292510137479022755671260257068842824183636336840733861695619595592698417740245063072673707131419937931774369995974741003147762902159487707176810348745891275365033698305736067018839850882962554084475755887179398541160513086729718264297237461310564556994014956635069435322764337432740630515984487421156830486004630708971275237341343937263434187748751841198109051801546297729535632426238022340757084035696076337814563516427925243691183693323265446613539571626779500577749335204995658245506173846468646162518122837165494905089242258907829031637235091105802968542373419170827343725132735292726007000146489490136523787157938830625892172387431257553969878524071171599848391427709961231002808524222555049226105351570429058168164631545703096846288904392311969541143481703058740576973430178961376421332863912409043300639966626435063902339112188837843128651598860436671531812919377580407235799813093505951410078183409806965771448966470978597598724096768857228755914224863560199965927270197631339129674175346370682911223025398517164478798282028983242346937424320455460232119449040007324284033287611322056197641849758406344536642185005786249694969999858447503891034935842640641996860043675144799019779122572065834234544124642355310322746382828599905215893505445162910322085681555965222239969080210189951032591888629357382957881304585336657747197252583303437789989368024173824244108932299202206688170500857260397279724840961197328426645322795364469938906882771022899819308760342954124447809126595101810109137653013678349461088379812679296726721365214325562130958150627991398746612764691160751070830534841510660814062350209349710317077771990538217666855925376864476079096908139015897243293376921606722781441902731161755253415017064186022866289118704157623154377514284348722957895787744015744498713625414905126055843249611335888139749763524421346330106007532905809403109065396238463598965492428924966366272091866705106126192207581053630466473250063652747132365242810221891964355440923814249109183868388242972590792614300319636564257472931583608843609932286051472701710988926779070698690959420730330578111000642147419543735450693170040072676655171774819888859415550833895723895502851576291947909109483619126975237842267654858741454299412624711547083126317698645469716079965802035852995523601547914060999147464058920591368286951391552058826209224988532666408387763102632027221256557896750879946208266420711220432188627097479650488034720646726621718251715129156609611385275631999162425477767453342622713331275715994938673771962101277300600082060004838195127751382203552879051264912559672712865207688248764731419264995803244800838305761587519665692097576474396236435343103938530246159065730864646326854531088419527552752408677737155564157755382137673527958435343893950671218206404316947638282477818138967951083091582716587949388914575415734676032679686102592522605100014264981235882150624567476200466484144166795655142521952449517240283818504354089618480269515389261905418340781811521920536815749842185635378358104013772948694652811881679938699404012569348133370377725207998051378948107191242211555108873725424973812912320387949590330475131746336139575798735066427099228843921976512079418312872965320708767514500342621236017806917600344356977714108316698212988591650507139147913383329970104085106308642607495684752684857791129274692634024524623131839824975806569937922646097645086040869202492861857412402544413977368647842901852720832467282328125525824813025866205259576635677382947384657971093503322450080290279148995443070870605611118392442219351526316774268336765865927840884546709487585101819555781345088177317123439440916770343026925784171697676041570920053904685981246350504725170215584631589874009267519492995377986925712298326374422689696109677591953039305521782108455828063477540819290676191486589516743686564438733245844295774521960362803600488979181623522686589358128180599555406617752783909233988858134298954133297073859326339420487187749350024339356572026537094728684601458710275545779152738914000079923787534608535914393324066017655067249747321816203471797693426920148160940548375029366440996586654639716401043104153607261462863942482180922110252341366383166567909456108508202283907509312975858394524994725899553234616720191160839239543063357258164447674206342067168766620001725611206568737710509267442978625169748638683191381657339884597472004265025153913741383521034731356265545467343118307677080440729976147999168652053272787211202492926860980849177481050827005118451639158702728789900457744557594545683198596958933191682613748940708921227599739873782862273443137072985804775029466084190128957410671783683727531005169700537646810696936202021544444044295610358827496958391959848498163666155310648654642763628930411082330208712282066572652597446487419014951854168108020072008400446513132481286992656941137949344267254085072653920181125654839362595858576092098278477625270932721626519921672797814826277580847312478946648527753844001265308452407119155084850885872999543527720818403891942627491768504951246333147820602217498898144748522633402534193180424583387709366734739544493489820957072509121565421645517116612353415401228037229567708485635808310536653349634494797586363920060166322519420799158623258610058260539024873380407224063419648394508557192055578392490684212284559902643011021377362392344921938813901901487443187921655271674018339044826741452481378123409594787388889670854431235393621384002694917676213667457318167753843090836017395556417978849951294196309852312633224997670978944262801012971085601322320392258765859637281717255621119287819508455438346658713470998433083316970215680491030779257870856077888927020615788765054498056351598805835728299972844058016904159948857060108757472432215835943946241645094689846851346641461377824638435611959635874147402886671792373496958462032935976151023318426325551884841504659491542404800037971393541186878184046324406865720660608439118109398211450241455506095291224672437473771593083714083663729525802450532289864909939216964544841796214162964343001007219187799292208035387667095807645435824226317859209642831755859630661137693254579465837098548110677167221531787576931834825459644792801351466968202565907364202309840371090938931777623074405203387616204028720275332835191579580665222497100616141376249825477611830537204765839750449402116868886021511407419203521350257451562092844620070770850723827807434500328717003523273920419620305691562372547882157509530496698763451079056853473149575830755198313473296256368275260415600638051436015600417859581011147960451132751279384436424400991176321643969267526833806345483417749345277818941814141593621310910669821036333200088822817916643308919684052902222703638319976807937305071852055432101373754145664793985342639239875347342929302355957568619157571448028954360155279284635585162058954802589280889017493545731472583699872515202293103050341137920496896652024504065408481386921017092769934866671173805284786464936771490251813871004327408999292928216723944540822906562646728592780357913121704929310173806022197921163221573859986665138031925586301796991093513450354195878756383713481780041731256425726599013872275908494700709898897785049506350054972942232989125700844826106269933042713761219760564004172580346629315104380666176072963186481565143378789263117482311921292941279677178827773642590594058918070344814193099771682973042219191491397473625144723095734754671629886945934365749730509884963726127097866327585885032243765783313386479823660865180165074250871816289127915214604250684422716697731767604659010767028714872045411662915597500929078044994345958074132296975098999558957893134538778101689213112176508907437055797853423227839581819461975260417787013422167841910337088734451905887276166100843227803532561485700961548939727604904534984842438243120792565864762236443993692826900678623631439595542239264051077790909400924492881629789909152154418311475245742391956622932421143232734005404056894365620931045471226888940864791020226582074225076656555106715118777973066413578192038195335949938941659553249740222837783461221647327399757358451175518008080987590367468746068594780577292185900471572523229940672574651603384984325624494434124054679910650398431133455771383700128536654622859616175690285749415766582105615289409053118799239074961039917068825839120419352688182266233420738794755904588082454991548914122182821563109185477205883627584576169980466304568045080109704281947747220277723887923159453782877811676921316153328099700660139030706203774207829957199379711054601042866553871225194000468371333117891300594326144162902904125497048630220036574157576891931473264045032302547540542761338361300096596548559629155798573524267717816661773766220391708811638141287062896185995740182757023342048350023541312113576812505295380012494379206353204554898577897248906352978877981777573108754795868209352561862475722772431633925867113671626999167150063517450320879694177730923016556717676077538457536281030931885189023953552103207904942184568623723897064548724552469187319086720722089226087229794611681558249508347038234332483147931695704121049144771657549000354996091347843960521659201890222984691524592613483347142005167667529297066843898673766456595691927187204592614937401647653255008535228874952485011245825848732932399078331823624579044782255345449929730915267051205287848943376351309474390833467203034123021243556390387790413698969873103540494259219298914373676633700512609798418205832026418979080683222707799123583020922185131592671908608999230320728589636828482223339110111398729762298157973792519543938554036728547635090060781254577290911047447474356637992023998076255157265554975070902762292540952128740329010390341945713318579187001442339431936182892971185516941370501989536958674555580849308212930704344004076370221064374606075926417805112802074866706847236993594606659752237374547362304147364764916826325738819104745179489299734216405806645286697478145071902564125328996196529530640284650692252292778003265003781516018867393299043663242120284030478870649786113339876233424250974719186724817899213684282526817079272727049962725674419372087740015119034143537676964653021505946166039816133520152298883624886708629710461033951237220807605986006276825826517461046386855648631375469183425069603306236784837352515266511801230240742975714537988002820291460456107102573556360081317546762579993492124676596911152111315125691500304884185782179471192123933800341762166226776250654074828454139171863300685539658398850443687871286328050669676767877142452720187880059668804024376647422559191706699162711891342723868980861304997974848997320050584518021128019860205187368461303354928630471212368968894894608770169093603380524083902089131698998411188348541995187012740978175121021477346136325334774026921418420471136684391858438478053644046760757839349339541826477714344110869797844070177156061606019162206892265160939658123601491307313251315999410552765223816349913185521837689114360073481793647855068827692253372015700666287684829142049814009679648424310195513603553029540134632570333210530919372159599484664621952130211939882327309409944566558457835753385055872264413309242260308686877646314000755406546491577698845358935064117602927385683882684992322676493531690375628606204440590550447393666180852735186415029122471377295958427731470332106892814997385888452857590583335366976103467060543284772349738094136243955564571605055297888672901577325880862060641258700562554318004459875807230325537380333877055003093669167448744029676516583013468789420203297128142180802480219863978372045747651624286236758302497165069308717344939294662315650531279427653601679141500078509028969538974690474545446042174487276153548219028744983651589053036772189289520525840799867029110400356133109473144264776786481122106104950280483051357869467356558475489260663521154842454799173585370457567297199827687432593848887883253528398323654956255245614749685861298336068119752916130255294686338878827503110450881822414063047273603990349859322511887478901891254542304718182377587504594624590972370249665103532422826620731078167006004823863609862917801203091794764624131684319324649301747104879001410084868370372411711938496911099250930716799804569354995549724160442336165070487325898078417625709452828882798197148936568835169900674311142278786785181381243879834397839837569801307270606925225966141882309686354180060571408292200236969203316843961441615918500617885087912630876414123133732564167752552220206973599596209657072018974148683793724112839561015321468047040708289532373323245304607524702598640963470014442689608446183032964470427693578689346452297340849690892288135353662019046297863020587875226959457276527160260446537461240075585512448803088357476588570525331897401274709255527692590883673700793103865221982461364772027067054065488552933920587039587199218433320320002946285846972783904955846562028471119172839382437039624302997986867097877406108950508462088225350625354448200070357596734137313064219738989858913876078623624202114198981099034986568783990695508401531787834425875473447970354996978953638373564600383513249010177205839133582944460976298280808269693430488520342807218554600209790423893013886209997507756533238096793177017737902486927534165905150279880734271052833037746470617428091647841763095704337281479850447954273146861266785139598749490441013487077594576950871160843075752946888511454798832658979046851057036111402994234259064009920800297932003664051869731377420840353519145080786151946082735717426546031479039090411795391632114257646193810463880465919306679862014447579015588833792862636335979799619302601412588410528768545002101740124432362736944859472956860330868388115946983198951343523894083733404676264162986131566600211262402031953188461720471074553528109688762668279728028887388415190133022441501699182675402435484249260223834192336016350361127385488775199733350169751430814734841229486297298923024372009030600745175264901650025954048798605902103610873990637385276160756095956795101601773345900673785371478725005098863816899278426709203851516606316114112666199431905493956050158258399345556927900043307739693823074940284253955177523328611788292109098822534147728524349226031426565529873435899158507565267901851550222653372466828593124214126509516972571168984506733895758844509975995536577476557682382070545404473182025706732973005334755627994379188761218206901468368961711731136108347213460754670327240968378392628210127957428577873509798030150916986376182990484473856745442142182176043116942201239814294884360324256723633388535880826538489858729555728689045869208805621878788420502983956971658773042835019899189892745017692067723386591287907351937810764437164245555339732192373385144621827229040188820425279983433929733195066132219236685005380543589629957603511483313060103414591113045449729446153821680496982067410355000921626715463838300832962940855424080835109681815011567640491110179665270775808305393059176838280956748614217560695527983417690881349778014928540193299317814188104220425923999206236667861316616149792296757766126035883335171779995995114252109181832038557493640622310058508694464723460656417732928462256745426376324386859919991700090469886274658337342212940526077398182966921831169206803373227943636585511457721671226057870448497579237709241590270508151312976063071810110178113270347605727974673067070898488633020872804723217195248714324330039497015418310351836334003475667322396669173157675178505944541987219551345197577552060453432325642736610652064553544497324547249379940160558468713746278592999617031578650832318469417980382717794581818354687816908722917908125495881083802272659519606258854357978982558530298974545031667190488908232953201550607754305025240678752003088118904595369644678971263202634037374381836936906274757713789068127050268593120332694680197936881590978440324082132780151834158754994142460057243835394404726644797960761840594855126722095128110599840788108210817820894792447629245316897123331953847612352400876562089156918636496197126115165073752846837848454193501418646015551857619513282157491262047389416453772821268753022353871752165191955531816053252189865246546704303246695550723034910298428633141926289801039218722374873815549067958421963384598010790499153539667257270108022991325754544750008128804719378717242126446478138370310018185779614137725432795089965288063300623519685538699157145871722499461604334035253955847196647504886919024137125736049107090866081151502228689019006802340001008582696592591687753559097342816414244713219869209538322590047073337897174547736609388685957133868066166066844485617759840141100059143958669768033966032175057060382070541738742355268163357281800958505105181928071036247985370922025451918327429054243122434166039040415488476912274579551645410898315495393192927132237069039808771922227471327992703216941701732265630059041452194710751934477082049709875449685445759432304384365153784239876656910524538652045284812007116154805094787583586257526360340993358669391343038316401706430067559126045231836251358426395910759287570177991616277710573831899006043745119694003792766146981780458032265217717193734622998295065109988472611242387936009032332886391309510202231835430398054968011699432631746798609274746412441207581455225669052086308885472825244274317769334736686055830846701948650984751081228858527436274571439205822040426004392385330820809064696403128441582331354180677809509661761711537041933011754502730175126892181232507256102456507400713202554511343808966264544607824125393243841543168041595538706907152964704829961287013837908527574956777704674987135236130971961274362474392718504755598925205491358750027967570759287745066814225994113983211203357333296867537233849627250931544689203867342816235845965188469743508200625201938327673197587692095535874837168685790892934270194002875951232779041728874219000232212293123752997128211681507931661931339488143049400068708703587786135633027410985603803583071933711295844092046318666961915931897468950400000078680004975368476023178505054610976259050831764206662264668196487541991352673562299671610183065304385796112666473584591571972434352581075343770708534839748580360570309300321136660176633798450676138396875470333565992132826622362911279928731945943542497400194588843880047834999925117487293626702125920950692240147192699189807708618571945499723832190287920021624119309595568669030275025356099413969907174848003609121419893040187701490488535489309272580408428802323486382821506853003220179184741378862538914058463735129391424306632779053078784718576683193774753958072924191370856681625000895004115769316616604966142023310478954211661311977432301173343512562003469726992290176809705659441142848985869344112754227796309074509844045065347076593067140651071566344240544322007729889777723807581276617828736231471162310342219625379549732830923508398713273880238216051215341122920090119932190442435132715826068273192994625695818294701996717941681975770121530585148038153336742048688983004814242953794068039794762400126731202370433993233468713347466992021619667465491976012456052743619871045676299644466060863738169985033520106148144511748867086246214278245024974064830029321368318230213294451493105273494268211421539069016902812529363042167103736288670952905981232207868579172634389402484655569376154814055915885400216977910229098578436340132408189256286075291530064081762953240624931453916790733867085050321399625008574030254493974229420605286059419105293798373682035498703844097422328388785127183381974139143379678180155877621351790898461820174396252486537244348105265996026414964865898138959475134840659818274151814473026022867126267329327388521830397776786549418206548357492132457438530697814134981546156604010656810803769737930062466971808064989683346856228836190887776776896357686758247008720170969804087596813792795509876483416994120873031241682914492206523773005023534830564718595124301386881330594090970998331119265130039454150006579480993238709301977359902362291294243427857184338191045994122915800666486943104788633720974386714836125965928525711056696711676013823533249866793195387556504814437844787644159775622427153031720760109155748387663025400382806296955378093247766791541090436594220876289291069591679226326543826642550304372437373098198441045157859727586399460274974097689463071987295925589977129860954054425148992020317629615076081676975217625930667451505442346304811339912391008678226623093164885573142480814357699777715541410522270845617162545419394897781191898598826849954364872882692557712497893675329665397338290965290657624974064578580628674582289282178048412036827585715408304903939155879530957469245266685911187682468726453174951504527843653988987422466834582551293528493412244297922262721343340241830432745472573973400665535586629164248105803100932792489527601368647488955001051923507852769218784033437938727705593846644390236101328708429169042754642456613589887647677068068642492258187630717223855126702890197321924728445230796147665357870012293178497311419245780671847566342827801997441921198896968268336506153359491268167677891327540499887883760162902638335611487297647854931655005069605317313587395348840000891362826846281478398133589564090141463602571156412250144533826025360149715923909876546399980777017881514513749698463296873366890856538353554649592756975041539655593864269688081488757096037733415299993380820542680442752627605623831816538467145518121658987746126653690758948004741716838771133445652214448728895058693712352844352324922657068551823211989605122855520234070683475874390972408249775975519430480796802860786551534714860424496185242499311091024546176098038445683236922100532758391936624487846538381538172363613953797312342335341877381162084239661599247689673946939936839209709637997053477823637264039939963207473246711788304411470638313856251801118138398889291292527874396735292670066359637996126781593154949689248316176150053345346087160178623938822713986496785330392755165906322994452070425331806490174309296452783687732672995347919893194267691820144626042631402289345181026532094745985088329926060682812049796109730890930241897806440633928053938570641986145760100160459339156097216784862493501782491885028067431676133448071293126185576080268307865277248025578722763251142870451772138670255992531278736537828643231214619388923796107334648521773143982602689457180253895201539319957432059064629760064316976620207795207137620388316954104541129100758935971229962802486259582195867731409844201227447456606367521738194340158538496156774734745436316257853314277008222492842363348773611471740492858753985098365175942643530872476241872205245264521666911679229567473336657030323284603007060245357336211990982366821514971132043438138332032771501708421940880873929810020344126034191089379033428012452494174683955183022280037657084362328134033030473847362138037195743839754453887243565055630686317081948829404143682950606521359355578673782744386530415216104563827289445432845907821588001964496230210961944725122447429131852524687081833385789635798551363262254102271805547572553489961091220901629675606415527547589287933538109235251035681002200221898293399104413615718697898373071054466748411451123250171490167562359558496469897619759408948746000205987160848796686706042485601763386117794290922030091409863048196001139960785150958298266868141482967052544071239781964543763723470824158235980696077731569446451366692825461474511455324153433807046659279516803063164620490720260714753493766985934812539364824368604641632843878892099002710264069716299958938038395192331447148092165632831556760991448198825412059864886662511977831486220737551079912133052571269144651407672800488912469073369944499022431793672930648987008961368704562961208976955025207142403648000402966667011734621899560042016465248956619157109507298573103518086588369039796559915822803980973193164601482627857353223299347043774485666521016651029080043527945376673799849799480911742070712754841635582674362429735644700135398338589608229984323615001740632318698621104214872023566822302210894733913950147684199468345531073179013612603243494316935144035886910261979740671849905770667072131968419131140922030286932168898464304741889841469182759906502539212039331237572171698926375219950186216089182407894062136475025630017390030477969877529449902783934386598612023853270495795371190146090280306114573072333672428890836017268744782602879782093028446758754921899163754820892465937496904561896739467936702888302398659560116910086427304336714677096434333358628283841498247696319066879969511105312933833936208026376311298835709348075511916606295950537220373396982411268375983517824287242428744559912064326119827875186312290368677037622826051482740218539671406852852644502506633162682799519191016445385147070253854611497292959958518364626475930528487824324973455992770838161504848693701924493809550979974205839923833952133572152974084358755333431851954206477041996416996716221853494166634539119471985397181914699407483020251231996700631660936298062623862534063978617246128057258717262375018745065793049811417142214610047088816974020602229874677138574415345359040752349407620545232660649743486923575768709837458897912883675821353760170574302451915143144171873310588782530068440435985753820975490125416468779006930884325899578392144082941936902397113278906406053766202112018402209287765543559259253731468161350258796308553959393461710447379536630128519327430976331296238152918207199697611173081665947838911468110340836313454636821564539689646288340001845932286495548369501380405969951321989000278675231319032134909039112138783353456319557651935992659984221570604571187913284658909807160614945911281816572605100228208749839036734766627033975784559359927652737200388209870553843312449317499101085444193614664849187554273907125557823068481373124311481834968968017835309688907059280158423317359984407558447002875189515031872160486818987237958470350540770280639701762192632845926602674002058049039191392552550174327466231507515818291315915890494266124407982095743585285208154949597446060977891569540516504738281522734220838348524844527770507086426734876722398626064580039182110116114386166687091892605576083421977966016849362077430625018370900136244030927803665476023027143854816163645072527019720801702935657708138432121283708672789833684780551593853268770519832421659079753862056584309188343685777356656099114106398726432240977970401480371962873539379491070072622871972664196593958233650184598113963701102039558428234105477311634932425356852961130155218682659563450374680953959871511627147984726248042139650378376120750356095156993896831160563476892937737810988867931166472805789884488773552897973024267062750432300885299190031000929844890477565014353803875379939280132558598285023543308952929140703579258448438166381506570851630781510569928660946505009720021507648872774846606868967341714485026399856139560721954241092810093971231592222127773791384387128080239125777323616443567244091094919451928773743751933454995044847032575655710581058170306923678935310094621324841099834272835949996951262543946116120687568282568884762504187164314075613158816941984245887843969240586085577949932152386253686252599552431869417940669910950044354145077204435893949855233263928070755954691750157171386160300882230047736930406846582267292332473310640189502000282620780057165982370513101222607737583831932336115413991935410782147284659631798547691848563403623265154679602682541484616992561665868894355369095905421341869216756484540769195728400791987054407683790686770470550843237237125523966341103771489026430056950508362982561887600844150502170222227890342714772383199151717027412179382533667557601172446606393597465984619895895527152819940112504690664054828736616960212242572119490374952254977783224783455459306510985239703216583370943415581319201418242758561357537470801767206295258880615894403662647700417011828235267543705263221590601771357578906280792799213579069101310463679358601140294756410976013876645912626509458518833322097029875063532033057426546471335445324694386484731941426551414876079724204687346621518169882771125706063402224209052891341067408546366280927088367908434961114838018752589107265846383784246871663017984544432186851570274427661626409170460463311746009421717470913188038379861800007513009230513265117290925536804228902755772070262488478693638185359187718591149486502408153959498266643658457792161943984220843400140411417587591685522938985639665536750140629561229758776602118145560877381040666908896782887386058676147053359740832383442384037523849211649553365090728194774960420031568941383432147449142637316725413786952302567706416874280670576606449017175166446996283512445045007416559298944229135063093998228610709428405356611734938418766967681095808551263160928888321073742679429602211584001935642142576963978196989624892478184791115432886995695245486348277993295126828015317031204125775096239385564355019661183721081929321515726369087410545913552698207919571909644203111050039294394326581713121694981945454427686713139224440454419133805765492296405658444499614547956333513093274212554273767010643426632594709466870841509159210210075269349736231195644505785161849787590979531166290620226586238100480136863571779916599473404202215425848364535162715545176216751869218162706348354602589290890724142459481150897060635575893501253757324594422575419883691571796759027338142069452801525175422499950354819318658002115770868833601258066538952240856803745990125837868297708197492125034596508896116762582189440303155582038046853817917715002890135853905900807710227096902643854764853504993606516685629366669395519324689300662835919769791316158445954261519703662476456567255012555652473136938056645931677618031158080218331971279256841242058202308269511104945314584064222617670730417652394845563601078163463156094892200439568314766618648094916986783575375359428434421480710214163273944781958560508899642196874806787721345219030731898537817401646706512559314898228042292234180364587091823554587704143454353297689246620088858929914195920230093211681876092886421347151408578885179968342071280327815257016575662625490609125451899785611867123705617607056605353423311997953509677245541805161449099278382199675374506052727133740686224806517117339528347165820452056794024967317014531049334473895833259153330304781369307769702764804196021686616179888883811063204448258344441743910545986166880420912529866799333422633795957997439212243309884431685847592744021249596374576159526284297606155965385356680469233300087877226022269398446888829373233442058571480915408434773460155554953686576121182465634475034452582665696814099571301467128144801538075020996365868463890546126180756050165710842219778122427357019191745972068804312755355960304555104760289317584830914918754108999352333189075854913299292929923242795934550404858536618125761041493640682654508888837133855829208484107088257215195920748945089803189154288420842114528604823497284326027888152136835340321271352395168040653424444463362456210666265544935131788031230238205640705267751886118948991085299246932166700063430144595062329376530326147503783705114122868129164814676553029802341650124857750882788579004883274332495667056142520158288386098894118876692949429465951575362178943664148085932692307075979162836818482461217178658230929667020608594799741691487219839394622298514300647392425254471718835416872678162049144936980575946043989260149967877338140207271136193519943135238378346256866226892804248602111796872286584386550872780109430944625613022911452775890552353515263692681568798953246218847515660789656928271374213391582839801238273991631004082079860816020983952196365881872806898861298071433734112576942886833674128752243164612073834474591622452617791520561746873972557757258428641749526055555842918613482644862883114745340002374945717220111900235874699913057703855886459010726634548075418893993050836166146927948134732183718851226873486558397956657428300206602635907665819852613022395503906827519576457355699368611107482814178877746933755249569048012113355392249354499394879096227100016399665582374773819317276496700097121090077460469647638704871977583701076504686584291326900338023216878610702335042768305188692065996165910001945669779743542638652827046865020538239332446230216212654015196256073275141385220908290662795697804671038265118229763601482292706147788387723438674552736209854484333605893998342723645497199278441396218642335820140767276779864869472691321917419074495620436859090880089868503287193548657408852140065984797199136577499583070056216442035256908493620478994808694943757788583382870781482702216288202053821497062162477480910500751278563973650927773675351461464740518866420267688263934249545746293231393009824749364757045412613167830533338394822871012234982037704254956364950589632584269312286021502714476577063720636849349443458512289634081072158250842869012964303121985785855875968982977379630036783410288013303470685638337235329341594530808945750616168661463630273652564921580743641091953153594133594453596812044896607709946606629024831792517024074081399827329731792625276744316023446001930617485210974262874826733042162709522191328849704741495769622550766885380197336967755277486321085469950674955052759519755964291054646112845383248224571946591288019485905665461756205658954723947352805332119801465760804715665849745989887318761128887161441087026412810403975542721422862809380776989389514926253873488688281575549409860070517512454385081907282921444235199307858799039889895165957994072806491822847170509271185865942407765557366335675784708882125166157063481906909235697518393727746719601465761726303581255897344836007297195647029914709506420618498309244180474763516710491328132966634152694519462840452049693583998511156795571875663035258016267342095531529997621618890485490271684902976808569431951564244738699151328171879300285629387909303782725369375561285670879971075896328523013714340032112999166287716112508505659212537069948999429958139213537062662063870307832652627847372061285373359243014149229915078433205397907282124628967605981806550008312504252829740733450951180991252039820859857563807666354115499568469280834768742206861701820958916482468007579829710420774440019659198956293062683527427469092945102430956547717684483539019274115576970890459913932553197709706422758016266961841826901266264227588927084580087752000250981315199501855211200268622060430150737663637797959340179345595165650592904430322569181105190728057180483360449057092778201802475068948334436118484111188207961714650378541531510911915191066102302196584715577378295674912763318993137770313144060929238019911667947218121321432682597030927999063058080741242801223124838770080787578780687231210152429354364843177458479997009267130818420537304289111004341325231746224705705218164829949759014767270605830157074777893981281649224886919791784825232100817552825487637932641799855867616370931723233446220444580590644914212945861573088094447746357763413275250988387009455339014260282028612543167981042664881979325329475853436150129297552182837939265705138888268834583185859834852174324189206827879996525537986156242768493157345893284333242583517371213458561456279512747012228845887821578304679183411526595914688160410198894841442440358106547051470605367474595596897259325984852942446610060295196288921299869774995689088460585158858739308708184358949597585626745194192258713991706366751037731487763936004305930216315508581844223019978738281480445004312552378986183034299760846214199126141795594043023509795928602531857675182099139356623521545221643530844090171214894187088453149080339591716013304336751336622525354635493901652694100430479708069521692199649406536840671251458950539723870990330236014635827004572408077275325466237191764341298151250158420737176744716679593711966367957289007091065613958918378416200247795957243955101802019645859177743761146286562536977234339427441073064397675000615342046982746264560137648463423571547599786175794516532730519760967741329282154856415842120588847728319558081184546957624529874619438324327394149277170854498318348169012595512626302104121089855449731218178170042228349349994743580687809482457136379475374064473241366704700542732049013051319833065635551058552178240156677471480183272607958990205078220079475098446501097081907473740085370575696480392050217077709697468634950190473268726107528364534421389848824944558819791944249550656416280431009605831345155944962157573713592602979362141354997834364000278157488089308797319367943730835352989170071127222122140120717941124355655575111392362326458819743230153331009702884778152891780757672774564230438303884480294679114127068328192706571630264484798748644675180045031676581187019198919594452746806291689682759262700492338488410325589957676388982004846098804623970364322073514640605339576690079500328578205364184002227248755514825944899296614748968742937189282788473424459967579005332343941731082091765040682822255022879912101244655639952791043707689776701663954866423360562051554681986916459901171641664211495623671587188999963557330751400075992001041481640173168897183730469221777752321692872603935192096429627223791046513650993792810079200059689343449393005084694086037595940684843358845099746123544661653854339096490732289981335784560978733267765427750831012862128498958571364079898344317956069379779206291055997773543377097453882432301991015427897947359087144068354847044689725336945237167385147056974252169487739284625014250201254254405237073270606067727484510107998422477289532541122683825667376592284278075243088344510117669716012577878676694858547431517512969548349358978487848437259754883644357798067496136997826666603351260593994212988137822106774878711309381326338112269808701988939497325972060171878606178069307700424452425463881554737388925071927091070633340992404718527330700827405625202964910372049238692370126332991161327427278408231114941897618323593709010669100959283283503422240594902216547863226650760793977273825349187526162876794090009677786866054348783503795719600755590867993012753890564879831266997553590965865584053109483575858405670925836158181800854192247902490561058953991340147610346328835359580207766652952995529000542305118629798827682807960513516857385184592112158632743953210850141978948770633752924608873438574246978886317844415767037130439843149687936432660186101306592881819157210374449769769553682439631722670091479137039047200945712527053992088470077678187851492936974761562494213576711575933326391228000006099353594237425751036592833198067841660852099078027985596050398818560290066168328876282928821728430921438558375050060512503322730190143400999200692386317511023793451206501834672399270048102861367611115895022326317878933476525492034795152559723014992501342734947486247769273146119146060973924007505684851927115150341357354251609423084458159710470763982188056649813126052242915194904733347506129542804732935635689826435756542348227424788652281697050285392769978141879587703465939154523539232933086881515686036412024400499621992606292944151894851659897892934879531727646236543038011673867976121994484900597608662931382024269257033592353591413315853388647648878504596513713451632293243407888086972781729906774339443621151729569256576780117547967468662367731921779800142175431841700700390033657191213996301637220681733654414349525081139185952343647920960832767378708471808602508976230070381374538914939329634183300894156218273285253612335474469897398240709043032008679612819169360851011106748293152247353097137859581872899629777350296874905706716800439445123290586778907055778604097178559870724332864497853988055803552633199454417124673650036099165921472873487696235572527268881655892196714817325512443152690470486481956599645558579198455829806557711597899065001570717573442765958904559703064326763367712045643473697687941950668356689108044937583841187930157734249546922428221260258310431918174199900126207171274495909476242263343953425428740105486399921800553846250759056218443801006116673144171260923597299537914949258568352863953525858601016583835073791763223562112833026411815891948868644644962268505094233654062476375209063248677286775622454726095036539983077687874300188880797584060919180362140383102928472894697854605984428935647686032865005196962904458666247816252641507088253686605601273244663182225312458575225573929687780296058616919990486279939599843146663270555964735448458329248040857244563293799903368613038570682036575041976350077848245238349947180550419901805803809200118958007832792125160487453347731880627583528482512143484725540746541056768823875190139575891317796079894181724901987943573682837762904518771945610676763839982893859607253942051618641200996649756532194031596286994596716313003765015138001777389421808479482714670265704952159118414360356878461810416986415494887332415926030577696272273769906780851805335002608611425215087749267644013551974725769283790915787981695497253787786542476523595760387570247858244019328500930010284900282964852071227869141773793908227752664707462675643282658509406202538222080514189625255398556075747929840842098707701659788118821641437666315394877191904927444196914863207871475591709525841259446367085067303727619443842283819980464494294437395792188848125076643001736240595600222449523410075922609416885766049378555751181666926365984876885503966647699535142971213452562283528302638594790777358625755054448624295804609267991385559353910230368624137906161017716287736762979434678648516072689994277545301148010049905611607997097090360559712709826069386265916955662423997840621900699668669610986064885288955623348974991266382098392744295676202319195890599339721136695565383851707718790910881662563487421412587541406100613853420809629130468647318396787985843047332481908130113170106892583934785045981779162548175819222945721589587153559959458260284240292113090110729748310927368677048404468799488804555698090890080661493156200860913607011177355959554145437740786072322736433932051339969982263526072335561663411844001824796172293917175571070642559870568065109953112913077637556573270552778983117125554457995073602557814954168878582387934451286979141292630650440664389850108916004253724676600854235500537230073889888684810133096769584851770344848250818352400691857768391046490456340570973095035620003721295214279942656224782339871690427471388709477116838498471789192383480500573880692231972250337536288038654721536816677724551105414515041676349948581547947581281364905982898705907155634018720351265459815700518041326250590791239900992720514084828344775727199853447083775684107306888567927843705901041379174900714363142225213721169747864670369987939133559396059842263354305359207898636904554479812365272909974409267379480539529949995985826853938398639367025243744478423607191534524861727646244751960024223975177356168199324306631961860642533404397192198453687698224528060683555112237027173876785826385924573840750273473954395937903194869612180106953101766666202129903612208140008468954356744477981231471770679475097072827706828846977539405353900303304474205072352310596689588018750844407302220933930074913119529443197885738031163118421574797109315986952843650200463611691334454025859702145050508368861141547742169028762098475470466531510308991837864485056035064876705793212530737186331725669107047931698174830036104377717725117539128551390609224894339795046104849664659834899868434451265209606839197896586013568583999726656831412810218599050555956173139504696799535823829758943653751011030842255463499173210788523914853096662802847955786927924302599890196186957117980410737758799769531691905257869267222313432873367646680369484384580373599357253913631851805051803353984395249852639892818324312581837821701641519543069805964340614963273573875850664355749403276287924785443986893939794710919278010843462231293013874922858118524914101094423566417020573344421863734425325905231703488338684605277386043750149919426016004698803776286117723021390071580214320754045298581356681348475768113443673305871078362892204533253142147778130951706901852181936521892010435138043693515627580567862411306626541028590295495046147502154160071881601814465716918790961212695815283545073368078348701996891446067956960843103255773788919060795614176624076985858638932236933001418984955915003990014494037127983814065423666596266044646992767312351566061805517434635641035716380728415473767291654145655807754894215583388613173926952957056612303199666044330417634592896762255059384286878256913389582427943740609256614500381058824130932940283309630496579391886313598267254689801749871510181169331376759328486929405689825714532685450251606578960649499655991137045846713445063433830211786178306909252823600151888108124480667628142866147779516442197174190761393674510106509436505648717076402197680958788303072267184606689660023292561032179919054402849169150864814100261239344364004202939842764303277670622910606737018026022757126439427592395248402104722092256445857475415838904550010596141749532395606410933528047991656487997362754766926393776715464857027027444872456964021332693305637198187214339200953510905891547242150895589423118687955626007653498478042681000734593757988330263551895491741960700742993219945245800914902840669560801428998417415432266987304772785549684273582507918780252642332040003310056005144373102198026036150418006006260727531612143552824619760596652410437393812385689082234678606936530223118389784295693722448160799638585126192123349687109347294076312587030767429692331448344778519961355623619809475322685667450841971703139226951471967276588481744706330782525128904252376609577881704313216195060223122749434037869644335537323858499733064835047670455121660645151457323795380069471670877305713395079272619806714303338679095838678308639884284010018959069932428379857568666122582369662574378478557174531908009911553032265984367225224294803963807349770915956268977597227627455931685871656958770306817016945351105857386179141491165666347302730059988178933726935601151565431548366616594481010855173710111862974859895951394142022880048363691773838314599925817398665512177197219104005023159638698189842414221533501386003554482562492834607079987265579435718561521529614387176213565881255802815351913402126503794667445029419230735796222158609956683597102281477302398511039790008848712560250020996205828513412862907465450041483857425552554615024124976135474087581750593671041234574665075310024027733597136502900760013767017930850895222604021767291886417352518433438095826839832092003119450540299881572323621372430681246057045663425168610854298492659257100756969519854585812865490923835851169671225440803875125931157731772697134812566419734813347280199906286814290149253442506720893235272701198549154196144189285634775642482985152123835195122150953677071745852567730843242194784509663340998302968117867648102031860518143518995407185862727761226246871257415433822929990410593191864675124486133215292750058020809598067591228062711672167527877753440859762118726371933168241055221636118850584711870112344952318593990321561065706198533210463054712932102151440204677466474621272528498029970977487838738147477616406196725660312518715484067830943233630326735823297850053285057083148969174197499648547901866610548716627597058170017206275801397886064774132586010628072788861263679259433829081989902490306142954573723235825209082419368074424645811177924160613985242638248792443143304125355800988153291911535245362362891830352097297604719163803353875803028779030238514161080183254032281631512886441276220587382972696054424644081114554203007189930521404818664789475185632477092256449564223707601301298579922689384769696068532606811699353262554632982806089717656792858242995163432502130398081938247358284491952725857227381858679767966204583613946625796548746966840055833813123456804143611680011867374600177670413589581110940982213348910449240611748412707454047164643406417650712589695981285820926847746754179440057393409894406328908592533122895704463002307378173371134631036037908827987240941074788161602705112920872537651838343279149930249849683719028577276157969958363397282981871036647423152847110018900477042507294736223296071034573757480229065631349971284844099406863569318447750794875453285449443112746123818592134291921726179721706061287187454676210265502485065016826288537327640113343241043867036446769675300511065471770953960415230384117131729927237551968182092268426477288423224971836622984399443836616351338033936821067832297983531852894249136133307773249919220735417578892340559498738881083617546613093005855482574436623626404689010922662578466313127251829577023770760151131239494881786748936476550289367473363914706062418686023752159895391100103753792358431596111482279274522302092762137245713843951664573099962092015033282325537979589071088226145481072406354341678797791883719846058762910715793455415092464771718734431261758089223581354082601025674673541904780400542757274606145823625062997637546321433787001708553564889394862542190544272556182155955704425325049971876128432200306947517167967081301806783109299369038542262511906165136996555985449911597111428415415125681591944159148875789772515347292523058254678073073414980519752501954788776440665452843110607415914693207820526094044315474476863455153953354517701842028221911873336503225137158607732042974140755052641317898642834692619202317677678807274976520158868595716425498426691675248437189413747985392162548838828936509097768134162475560454970050960095987637914551357231907230368660969064773112801576924473264029404805099622503871674037639707315156971776800404648260897197679906241878431284855648293982946022326230391684568685452812297518815077133564395136217510983930381444538407979860831871683616972484335613793403703488777077748428857470088974259342949463372801777963445456756943946366096823716535935370605537653722490622076325688775907098566390624507077152835464987656405688687146856049595528534286483765262739750098458875004219632332066191337232628410906090558898477515823301869026904145879986495425955371829236721111400488958685526844001008584890498355761630093653339192743664352979206557853155261069212274389990248513397917312043070422834675377212434817418025910501551296477715527638020199681142376093512652006571798314484199335863461806185092375595577619088256537917338033604260095101292962165383205981771380392716616034862720360419639294995434255819853883411780737320892849393200574073593789359674961579681362749787203335666694025019130530338519566615258664654195981301671866044149207622450174908412685470913058201550534879593677283387069288176996479119359946165890455639934404419954099952277357087832749215325446743599236969965529409689035715078159953327878885177263774690262282939484731465286268086254100056862174053249424808188797216503208329402423619935114542828968858658943386684442073855110027056045438161903392462869215629453984865322122400603637443860837509320880460406638401822411049202573563711613012276008197023332044620314189311527451526805069360074147318188875287018533221139650334475467283951177243530209117051770802393596416722532786551683412161663904669108434356361241853142230164723459574789952585004175365264218181173493125771746131222486419826991875538255507554556459918594077610551643853052928556788728810664323511892422099472641577475880735796890271375850443088035277215964603832839597385222500502008784787265175113266797331273721368014036845413227097613711588194651038546477463053746782918105244018602788738429947730264072126830339422349602486011930967349380927672175950713973423901529090764196563826437348617682875464986885431643507962865788797535433897349233700384300138589205104990614397389977107945007257653941622176844391394807403076087213504473507837481054225522365648595539418593767983769255857789900442386722138849782734121256541933370634891546339431088053547364238107001341943237843125762069616609728220693567457550096526252566462435912197937904017343819252907323474072266061339408287434531786311277732525995660567586274467089117670084391058862567351874712602205129539056938778945260737298299941247264337429353928717868452298499262144866438353472613591991194063441047037958172541326195775989849253058170440084563267984105337063385660474300802777645865446530607419450987557113177078067089516706480072124767556874087412946705665962376407462640035035910073283206575252865643889134914213751842017781569034427107430660608309730072200472183214128477334240588897767647544609117565785394373726833248610913554584284485690174891474452478143318633936780292796404852559696747311200404081863728926328456292082392637853606389178429665613194285734627937982663253517977861961622712698708577333397562093891668420762551305821649012700292317011516794874080755988135013277012313716914209336111633512337839283066612556067958852155245690260084082509274788451513875910572757684773843316857706199161147744242297289206810238393230029948004462299422826789222102844813100770277927468289976733541187474110363861949469488202492476577485666440081614317122386125540973810204935700406893085164892024895238140549916279616178030154027238027946994813258612994200853271665572003145983035821432062566198767654996991576570982358178551984339641820348064647510241229786216121209056885366041476057591770652852949442635177605527967452548486534244470668067175020780547537114986832778496988199117923853921404171447798469480247139261009785881978965795706147078755537351952133833019613925035636931103089498419284658194836847269540708079590359601572963216918775432573873141535954338568844489528847841332235536451789144684669165136102648251190514647944054172008975561538531482980868065697273380478171544074490438795726087912078277600403868350268001445992446691882803674857960121979882758536318199527749952308920260345715651641195393472494918725159506569772352090273420439959252016559489964565224023356257258518934850151355962845643777680354636036064001190484427573353329510920250342211350435971240101425495746995530408095969554485727044899448480206720903547804641802106837571825551574218740888042465904995693690698972545008816761186729675840973645274119149408798910509245113189376257532115085417573344561424835117413103296026285239640801647212789799674875198896991717025804707948373550514886748927137810561781903880969281366770506866240676074673926974295478459483366258265649863206279928362475109006071366613136968756897724042340091603563405432605470974279554466838095690641970523571657539161307636178124236752749611114359327235200608729737293422641369718254703008284791468681619990557654670525492545851740049456105964648374992097711139225341383023241297625225952807335765866337405665895706363669578783184389399022916965978461248573771527235463284112659990841188344167340895858720178165787554579892861597860050816478542379753930153279583992058263007220683885709850852244573759787486187203692452609175121312367831499978728730514973455522031416497841621465428612048641251408948699781163777641976492900514310301091124228650826046077568447431741052317189138229879233965312884833402313728086151416304748859876143675421792124204969292140570883508426763234518065240232646771346593542106464118809785301637989556068133980551374139437085600154970219696950681550277754275334695686629333470616553333647614395663554595014558493396896065676357658270395482408355767675839276249691112680055356051053167609407419276941009664769527516956831615163993699901210242107971520121084549662870414090780398722826863938974291730819456029448089064226330863911005482676255070208444359403337540081787651177983604641842871477540869385143921844221627160437510118507219306541854822635778938185640885084523772361420326276059998080889676675443855997750568777134334413863488553715293226990199483223812295389259983582699869506497278001000936738301934231695217666068761189386178605953371038977435522063255596716298074837422919038122639569514875180331022993917235953224896134516423287864989921763883833253689727397527591549675513693679603884736033127406226649713435821275943661034612101349033482144784136376415813367514027301861041883073143059009946576824950605678584381068302641670816001578860919039076410385096483744944405087579360268097253664447096881709065496149832885429263600628961601819471995660432143153859801352561589132630394409072070664192689154276979840855067005975572928879709475355339724810752377821701652599803402707539606063922406669603183081312528822276197693751840501660611786581199979406616042360585457922208106005582329626914207028651990964805675277480463041518927076013335854143932250002878141395367337003247954066269840591789577277809071032870391526379509819076301530511845139848955504748072956873525859863563095383843193365541245081862897056224969668810596710333900095024596869510494946085539322104761237920991774719020395683092144060091357381259912532906589805177976622865497146074437459102449939079304891906538970998838558354368519220885930593831233990224358229284957671326665032520219030614246034141894568271000435612970884108042749333171715112628033602842142481212082292278087361696875650593003063541311298912985739922137165485384803459101113329012035208017116086735719606464213845804893222608129012576305820831579927780705269813175126595753374717417373679570964371690812348404450213229181616661294030042819941364503890724720103229606841913770529620604286665571721038767603502437327024429539939744123966157069846058323482147431060730044801275410899071162578484490524418240481961417535243192375322976078923321917834542973658876068613236987915289644936835473265747480805508489658586593826767096301721572263183674077249255887404834540783485001916377075882120719540555088574715833132939081959880073890173534816561330377619105845111153238696312783550263803589244097809720852381782364356661420497560180881038945422692913179746940140418239676062233239589824541709808033347753549350980097135730643000633375325106707426163488933613733159278265120446284262393750962846890078885747322573610337361032507193867737832316078754072379361714338304484038764760784192777031303440655761284029770772140703733197935906335369447218558298491008665480806073635809782995093597272881819868001805703795032750571185869175534739481553921888046620354208775982114472711367255794203695344546385142286492986086224405111918687133408293036365620146411922485056458146850741280205753015872547361624310563944583247337627590608061563023736811171304726303997430973851272528344443663833853506254492488234827430149638535270544470070854105448261105338016472523302210091678115652319054010085785600927586065871559976166172481578510852692281824451255127234903268943021145524503846055550594192342763477638667004510656962391053830977889408695075346212836958245304792857831281795398245826163457924612541525151210979413074942629548228664565502674303505450843534300745831379740760388795524878446782730796976611963258580956892399061143719719171318819479828894115957095402254560264192277440786762029743200039895276752873054422328797838364544468814553814346343214067398899673717298763717335757901359779417420258128094125602677640580766040129335358251978250998988883712346711595058350688978921720595930406746717639038286170284434791670149889856221887651211481990033385374458753403500404059891298513068608843766237925810791166478223297016957164241680949648129490216322478182759512450794918216948207522301204108505163087589003905021943451920066544951983508017051427720916921686639276915830442760074309043051460864573141665314384298893311664549917205759677002166227610839430632335639902005824128872318003860726429570188662225680327468205136860635219898147388709045058059980174499499443557989355875073329563786642012782975366388428988813248016877905404678016131076134784070417140445959620746879654338971262651549177784457634840081585875113291708747020424832321921570627981553648180861098256313797668300474587982293988813394166837267101522820219569362199383180538295297629118109432575926047972376760130906937500288132900501661863440903945750619561929571455535893559997350916350632777346733076751060769296404512087312042889031556034755345763557536330871974909637796980881809605585428219868650554205813543225020009212706007638911061276516496799558795530615116969175222127271036951278853314996109005283011908319083996560558634552130578624843206768170353201333225228044632421742462984060477351553497040678210796607493491485756898475597921574399937425422483471704193658610848253460343805230894863691754374676871088294363306946247615579989326230226404213450023660432198399970034825228008906016745574236431657498052611037809644374792079598569595366997104164735457394402151359768845818589673558774730346500334373472159589931693280246043696744207499094937274899482179691531684444799985635728283810181770369492708330750057820152008484159355126962267039588284137614462664963029366218198814904317012313669276086944906630561853400406067584888642416202911393994907016394966153968836945651871829293697189384925982151898299443203942720749089410699813430408065440703793559285032201050715454322592055645119987800751764117905746177496785874953765119681364855984127138044411039519187711702923953757235099865029737400060484613462918537883400236349534886327729416285245341915426043135185414645341878401765636478365531223123819390296856330515362078836910741580722065911385581103486085837300718355072266732440628089978186316560328792260716196694253931127568327409584695482485245197615946214801975471976381980413676494278786238697805833247399163010687082387236377760736925400461567192549110407474853571948135708296765757898714454239459885107799921958104730786631048808968581814326201983887075565005982540126836024898716457626668634385538687459460638237125371121442604882887653170540973863057514205295840455864466668708778672904100150547259067128271086022234279755564782610329133583027657939002839718984092357153779695016352604452350860015602184476626139787070358416012938785836202935672443546919023387104042901091442148990352923081409068443085324858080680010676005799344049418334155970883721769406013938480859823979973117459271939846074077553045438488694075583539788128688226057681622611079059068414018967232146024357398086463749193066805836038883082304568830090514910916084172388898397523224892555048447288153158173055409492694920992249485234834690039885442303364486041198879008036633695273498915912605152997600228467312802840459870062975948403599054077968650866703081141699365009038640091064648957887623618167743388297611880532898599666459250998077225017719040178321883096625559047796496941853003233272163342657429067742933591840396323220994599333098301469394077112144850450612413590075523344064952790734866834011084822263518566969517122430052475066904070527618704083930746871053806246286156056616978848640462553894444309955903741059306353340557062496470919077698722989612292150275870951898681404144065861529596800690826946080660146729208388849793962488420475016201659031295834502908377257081150330487516453283289663222388810510463544027311062087959639304187130662146658158473442047960201192711560746401212990016907548882689337141479864130588359055596005235315645279512952433102859631062412023611891016124948749572954265158566956469020677457292688575416422778331959474670624233373329100785478893631370643539166139643097356588507880764570255860850950964770280580491945556979404794624906688150407257803323104133599592309246106662850576586785987249610118728653666016862353719047854481347346505177045207566848222396276346110355196174731683482569672708963710127418049484557980644454055908537772770503562386131996692303529266521057962374558130344517635876504673870931294767191482187569454410877369194162317285890535883245424859605443985756936961414645506264489225183283150596766291777853564594097144108823475232905477256460931627979696566837774268633161393669279858405949440577272151306329246272810356833592110430949345722843487561856192959756268116922895896502829935719661799156058637272168593387391726457476463849617292082797401886273093991024479032386208840878310183756289599209475052899908024621561766683126296071200721149033352477192746314219771855358728411015639208442716159297562306181014332999075122768093269443477516075137584836873392972322421666967768420775491251997823265624469350482255298852310618025362024840650056204740224715149306861348904477599417638732869761057781106317792075026657776704975512082338613007650801004078864877725087532059767023663768950098612346231522329834921399774877093351376113552304502181054059129795081904241768097994149655405830599605406583330551025794545490589130700075491975218539989640416751720878614813271007776337639455710055315341602669127713230854750430742261023465468595603267194987530061717963089169867881678338852295242048667410568827120920842948949853659373488955955913682821496572571375298900585985908712425716990318265572886507120929521453881081226282726762263971323913427247494801691551121226508960037928593311289294802867332775788315135279956789086677126730189238392620285659337675240826434111744848536993244575851831487859542348932637625580685070439789354051045146879808700532333193742338100389259889115394347673063280256782941642211724292919851030593192009475233510271805176917379529499426080974551516476328441878602832376765222582251194649209290421198399166875197669663640421889464324724242301934799985157794290361231280929774305679713076203807456226200303645155794977620990366275148381666305517584201069243745422923908688538000890802423715693744590648185651097323246257709162052718655544308455252996069564660272596827754046011190420786439991022939715556126367626720327446591894194981180233561600811558955720667721187861254492007967263369842024589857185590568315231070013755605826986834114835008004572165412973529322812227496301439345651259917590644441041321088877825710275606870066535426387538767333113795150142588361840936588491572650020320133769343928734634624471419472646159818559859199090264655271198226920894493772789398327517934414990907464988001713733138499268621207967744782846524915606202517175895468473226862980681630151091223363467715769036520967038641089010403934447594784005812316724583038370196792161029970590470784504943678751010991392484615096782576059599603709856656362654346636931217222113538749206435313832777448403437451530150364187953429668297375782851153528230289092977346419747926649023728258370573868222962027374790149744322093860794047831729538021360677020354861599334374832464471313883820543109842035486317888022148778842026176890718882368254072753727066155476108726983508344730643430560620280669614360695867842914980582652067034266545680514513961277563950243161583191477579433180981366527613095304814055630051620567082010584415214112719497737926223002035158942439997704624276071705912328776093110007818872314262326338545962572909025833060107979886915529595389832518817477488661480964044258651635463878852745850273133763127780117253006360667894236844857631625378976610107825585778177610261684114944778194830831571002217504545091479300921261204362075219153840290549240062025150751868152589757326387175477333103584159290158224067291819960636335257919315931912070268635490491293680297310579317051275553721491241326482431488642266650210307856297325285546872086834605721396830432390510375753046896040264052405539821403342208640298121569977956276132949727450400126154273124157302117800127608030709640349163926868549919354180470835085695544853529051083833330403251080363225948853485644271824512652973610545634197793410995248666838014058511069585792286183414078394346392555688636454089256592785717385504861528450658796857691469668997482152273290897421393885350385585959910065897016552775556575078254902572072373548033380262500659302819679516168902965059508391040723535413468572378086150565881837581810836962481760084050107331333490358054902812883128028313410895149505462068612593098960244371143546712435365075823089011272011031591420567967440754423802612445901506669843890064588823124010111699000582656830154680225283614757014644114549550059967542932091603639414964921550690170355467422290210874509462094525438147048996220981393141407761393916409987234563597650132168012920682612347059476076523746063010259261870787046858797698369497267241548944710563119229993732975922477607832344275049817851873410560603830434250882179516059005498334392950495214054095145408074523717603494269809076321193889876785936490657535746783731398636530495327042825019026536996054819717035250915527354925594761392144082119133391656945682388920613401243967138397537995456850011851725996032