Created
May 29, 2015 04:30
-
-
Save Wolvereness/082a768cd5287aece8f0 to your computer and use it in GitHub Desktop.
1 000 000 !
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
826393168833124006237664610317266629113534797896387304516777588556337961103564508444653051131146397335160680421087858854146474695064783618230121097542329959011564174624917379888389269193414176545783239319872802472198939643654445521615339205835199387989417742062408415939877018188072231692520577371284368598152223893115212552795468297422821642927484938877847124435722859509343621176452544930522658411976299056190121202414190025341283194330650762070040515959151171866138447509007558340374271376868770420937510235026334012483413149102176845494312736363990669719529613457333185577827926166902990562020543694097070666478519504010036753819785496799502593466664256139785735597641420835062544508843337001910346467387684551438607977529149091464312409535521184547553216224150396869723374549983306717288095362464807781832028542637742169723687519641684758647108242100299778180917677898375179885052302287080350414430331143865310703303359946872239071017851847402978308794136484637681285596049813171765929353163066517480609772403756072910751424791692204603165502971693540476637161903693819218968275322134926847519535010040033525575474908469657828425688542210206900513532770029669416657845610334030651805753128367466393027362382302853836672419576086147174113288761986851192463922239454903418407170452419127856039173818065632292055980341496433939625002178497725812661138248429892684615234423611182974569498378803381468746995170998363463902732034941106458942724905792305860181434890526382963177342611731621379255430545098446146445391994993004101191123604927949460129513065927824735620471653009340342114859295386635962447461097303253380618748369952010062827823753289857996942389068885295677159492092251495838068565145059667090455569731727177301400443280810282539025208648000898390663154978466569004207120665481602926839389434235659311926308908401931016952349711077090469778786611390513567593936929899892640904324389449210869093844596609832775820823588351223893611134646664066181787187044091692350998046500728191616365241393976191832560709791553351655981877417830246810191055845341174334013771594704523382014837248934927362253714801365464633600196927464271329601716716526544111072283795383585856518328775092092528659240194965758088678759206907055438624460369055092476355260547949868967022172868222555910868646149684039429602293880431983325500174371162959752489348957837095360081696384427809037703763228572556032284560089998454694056109848541461351087044127020676436511534497948246351331344415343025446392432941505798313438164811961057658077860119374565557615301684268901396771700116762846999704871613676026405398140561507617499111014575932506931765815747243805793712663321062938475659697058245825083806111628613740584206595088567533269677582890240530170373883292611833926207390365520132502519621138245752896619607171337373341415000488973314367305436350799224765380907032098610242152113242762438568417188742291823926812924336334920772780577644842317716137769683306913798718657693126531324263866633492572602475741131270444046084116721039930757275608354251728752146655766675358536501164971231607759627620980671135139559520290353790517679281320455781148008256022502403520944187285808391320638238100498681622544857496068646796319675733325246891803399737875321597910530150208953588025656911878379700135022281279549107192693613036767163358158822977469597127676223691558124459154215920378932584987737725364718126601612748276114850134991920240358141232300237159287318808267591457626279928485902501250025988513300956938107476746646250420980139631556007470220048755550361270849835012940298999675675579588642888236610922205864806906148649757489957685991280290774230696026533491511760431924746173281034203013600830758592349390072090709875209583615653286546364321818375923337598328543290529893175336927266083396362498043354806428388300812366139883160238558169163896739307351383190191073415336238872693893185099676224924923929217356968195042953135845316410749340687445000749362901083495815355915538934780277420688432046775924834174396048006973013539551268187279817589685670484287440146054218343771389789171116714507686250320616580599958540650323256714802046299179943161138401557058652358852508045995562952093385973141835366791803327096802173331803129970812162397845659373492077871175462991441181773259542714097940099426395773342726473729757557913338214068403561403845875360892453193573926669721788214982599853818367239973509702661648929686899214650705350778768603195541494863050881556181534492742626837745841509501340035575185545866258017313302276586794709478679919089980058013123539108355245731692119545068152398803844352350057626173672106174176541410805477030118479612226739507005391369653853863220969998028937449208881998416845797607834992746822764171015679985723729251220402843461595452837484928924363534585108117528740271114914737038398094900610979497386622999174884723209705465842828893088336595259952202697499705051592783761176983375160955577985429534777370393609916817795415523732717277629261582435656904790676923579252101009504276397198036255396716466607592652525549823995653390150839950346847844657971816428269624855904620519746622148585946999235773508060585991197246722699826967082066160693460834583691837835574795808676288905575495090090020396959408067867958245571987651073748612315358617763308466765226071312985269356866629473785441660688496159806348278962286519645049037043396363175856316752511822706253217902835968128310793563647770758224601772250119008699201123513159464732309002296758938860114414584054480162317127156568681192593368037260116546132659204733891466222512179911863199202378344039171677524261224173407019997465039631573093756992746179768616818647529762452998595843992508215937345497275215915101915923246085356042685073305098303381868481568655463008764709207376121832410925576144729363088026562914758469726303806151663495932714839832439310290315206091787066706742678855653428817772140995839238591918718702214579509067200465228051626223417047183250060144426040358264275425185874122376739449503902440652769510326745711042017450447984231175599909768667503250144682682340787982396842536052439493867785836224372264892283688713430559334389210486428583776107995858836070929242687500491801236925698150715145450956029416115532299889316780176682864376941145284805532865661126028830980407763723462157342911834373879238412151837897962071205698345545444969743468806008400164420323754378495131776509193492618287671257619767865564501281309874606653039304785686495334951590219644107604485230314621611870263225981513411681457272095614032796930644711265690258972098124086139587877000063993898498756192527266460430150228453081087426149102468607440012427093015348775612372534311731588940471083163091276425037131583315834571050723440404209950030553142975113098148376874187298591634750150474782923612778117443532283537082431831532858039127236726711699218191632024681670240746984237827034509445941034724833661375134934478090660923320943375681196395616266476382161468024148521496793081939537742602377171507424314947241403167399393402137746503223707216406226414858892092052346232319678113541394705952616251336952104783137469431814368873467332808300908259788945850277345562039545537483006523566971871912737558711136270045221981821560921907783446070926430120247690027271381685082369629582178914400641639204146873749697880776431576280653210369515443993916958887120111224206165649722235086935329069469181227482310241104586306968048060420599638826995096517743588250808607991943311862112891754324424249517582658498124390877275201018016639731535429704155987669003923637685973025148328256097416943072320239987898338653576642537985935572529132442616477679088522524796355328365163019367626593893844874248807006915417901766267263257811950504251318147437766093475394704434052344717371381453497750793642218993304528552193049125169157374836929017809260120441725474810011865592983975228557639173514113201646549797023402009702612408454670560672951442254463092663942711206762499963946517745595480656337902098090187468281895568646979556752577410292129138513833031199848118972841715430399220395462246129625040019654388337565770385683229507701071050856299131150935225763505450565070439199571953068412815130258970476437230115120229574637905011880881938761416864719809188636839535817045568300334115114894302017447194582864938997597641107963951319682432857154758413878982187108742404755950850589206515502816624158839147312194212821660528761736101475001485665164225721100655737072238200923800526888000528066390845097892924236540070929552008709497327480910601541360397832191536656237963723851643109831078393715808517811808339971799489244907737152706803353880861857294478657220539465799329816181599983992695004626608850207202622080640999259868214911296622332380040668354008335354738800150371604513798173558179229555736251682210857250706437676069668600942952925173504408727974950108825040315238831023477317389403236867197670437034562482448320077518088143951870490548474681905712331855620221622958344134655371723200716290168918397074970762947624764809421452634642899667173142590189595187036624124131583290756860396351913679750528907596557909628832212229163722226020190433000550841442026091307144782867100135699520066758026926565435660717748461852545996671917751157346567280762716452164322840546516914980712421848284593978323278028027469766253200815513882219871776457604100279277472874115721630835577590789525779712852499659454892582965992986779777513252120015576270477687465699004272929145928174706844858471039623521357606607194742806616013296961647881780626146235188651275402556804030923752150455430970117436808652424523560028228164422202943923402629217818654526907006491980131976385633710086883487073301072247225064915999701385751069906860440650936637503817557914864054286848836042284536873941367218188389716547532134666622271639114293453590796533729690985191484666419396888212170041471820475758448407804878114257929120817684171224838060353311367511135615527704497073016624331068956243835305597360190031121107202086602142655382163335392364830796241087495800267720169938502515632718842424940224358886194979390724754061263768730069311871847918944274320745213375981659792454442958976541271869693735689394834678005719364538544515294747200727654260333498197915843653650138526855430538058491973748263762949174785283092782219957103211372943722331986747972116964713523319712049279923901215349954492374715372117145743786285548261347533444582140967399645196701567004409095084977208517445949402999942559970528130857300106122462547845760729381797745098691766238897821769486689121196663417374102770532066260925464696755010827603927380292203693966034391594850109346340908079854973462076861669323680155225222644010835400829508214513937297835821233366229660517050990431453195777999269232264889929193615858943178999773446651070932322951167736888945587463433881425722584037061813973823322102043154497944252387298920616526787992190159389406704569557663530674968370493559210140614693315426974759350479571888540863395857238144671331303530104570523158679733318865902788827576668219161981427233224973095944367618811235305068016434211513372119440084752707233456354376894312383409598170915580132732049019906525748059025104329487147739048565226805341405160380320831873856862796306774562660547095615756178178175769809592817169519066768680459073739473491031936531517870272586221702110814027719211581264320750106271164350694801537788402624118071559989854877465599441916519938915778987389799567221171759694782161307553035539226090971480343752954686631151203631236169378069593376607506262448406156704978862546010714417008122064126425093226526268729526921990762794511930473527360473980197110580366097659200939482072377581198374971356111582678033756243296206893206904106466544395377813776882313139763456348239438907155801735391349270101149936490477734117386236297475541185831212567068525794551812049883976561478081964502978945888019797304721371384532546270243412946578132657498929697219125136164245083546820014145134645725169678639363599554154523485944621334937883365344169447352799029473675056837209707216859211869586951370837639042186705370203052600877423081161197483720172816170621035397547608588394427526071868116973281913923309157189766643085069765081711900368854895064937793915724361852090692950481660752772673670511103057299741053360688171968256439819855301593206224106112427227790259976747098156929217981773672138023163153371846793874431042181379874996221303334187297409315267460768618470035246333453592669254253671139046866245141604645469287699995234141507539029083807182255769711514093451695321554322408776932629045000836792315988415767117229116048423730900274038509582072671829237836538404572995031358994641319840486057127731772336727191700889289390290222816254940779924166356068965054451917049908134020398531419445099389223254955284376505090008495072357086033981231528999459877654749184834317370310285543683199982073047286949059875444299355153901004515957350674707263113851662776231010656642545498525579727012638710815078857930760127001769483177336695319710043237065723588479379515762434351112732365835688180698739424787511333190773253623999700343036151872132733189761173562474436872708849803853997719452849246663382106950152331933601909190226659267216823113640177099066512886299210298235451616781141579536367906015863298140451588221201724870897215368999021363638970586783163903400831409048755120184963446220571445326684183824083259252131752361206041052215560673169938104127957648467189174633443238616722606935972066106851122163208989116279794099418166016381987622395621589163608191135746690331223954151900711796692137047493637728301227486795517896712087830294423055879725814851668300870666703534095983016569201245711556579559992074564341513053143051219920179381813286561986468785038496361987373227567648546677490711556680395180761714666776523240713627626977278714401992229276338444247402253616885132226402441063424793291672090024106172188493185995257947572120157317599617203431602071055459091144106701088712400973325122201688603745776952560918943336239767467924948662724320692444998742315656973628589342377136682175171310515474633268444553260039009722898081331426637367547784582606637258355844688055891703350202198316691830006697556154745006725393240668905079967329478462932458438811915662150035846826719763941349366469068631130821789961491531301816316737161186974562241190648467745442374195907974110750051744539226464231161002775492964053999359585091340424498380578348221050287210197196569037760653078941657205682954578114702934840459124666113194896957720909367506242643045981084442855673614062803307435217359226870203890381568406124091472505788961400776665285441314108744026047657345267398748445126186041874278215575560999134005294932141156397120893503109943398429795757627585064904545020186916388956607114280278543815419670580567099352504636635522346287825246662881967771866220383836451186734883184347758721275864148107889824713487368798971408079889658975400714613548589492310711497834865312811299074507666841356314183600434811277919496218954970113889386562056761812186048865907606159681340810495301608217350298541610542629440550041471299029553332498947161646233142373365590381108024821019003008013646747904913181916857931343669047892550947170120509944736774181407486299140997842603354413552316219298522306376651969405741296623393951689887360863013079665228681501099431741978283422427241095265834211211875683022991435587294869473307369724868180235663853533869867398692428895658922150295973380278534745845147566502428516398935254804799758477170475627528043325793752855820869176624944926486943869001865921181038959736303359359035497801942433841763746628754974988075984019799656020041034448759012976661000947133489578739854258333701272310136695977311122928453281559240416649200270048911539293797883820435666007291804007294822611981427519216611015882638985627450277025552947745694974468979011979411602665946189291297292845166560572125642061273816135670037436441675066366285846812957320687253959403388870647298045639044274902672450156669636433228633857427477932689020583932015302964798944216074691200615648015623055519161128328850683641185710565335965596433967388032713398982144974255129257500330975705818271291494827080244696488741421163517188014699152214688820610783117131053664560114551163508412031711953411731713440711058515314468534983168158757272875223775406993141980452790462858749166445167153083993409718036900733235793192638122088086315517931173556863887002545055723391703449230280003601069774040499071918177394042384740689097750514102843330092229436694963047358196308223510431942073984051196318556934004885477079103895408274542578915525681493425573649769925095468187937035989192742651580952028741591182264290939539271897354732202119086090434717300974656017072613532138768088342741898715118482837468968799115390531036137623292529689511856110109660137869015825789142756448321472777638372761263652193308544048320527818379859539214125998484510134469588935938973068136056933854403611304800327228026048013175717650780669583522401001344713628615966501596615903418432557271458814950233752126660485675259798377468978436341621731086310723703812659300887143538143088198404721151458693978353552715894439751143120650006054594881159105907141851805592216637068553272519346770989571211522342673040092954653599624555510904824921810792348070400189995433891727665666979364310303126749765076093238339619453521811084619593670456059201278031902812452213596551117903773391179425635179995429360149763661669843770035942369411449387963501036514057537658150546358129496177838276434205596088112126775479107419443194105213844287880686167392961599678017037773609206100827411764596370963295265558009691290385753183866552052425453327057758020529091167550271457601361929575681161496382306305438852711325638449505999024346003789857968765661696445450968914212370774399308467884193076724021876535192995071872237030135775451212289155240956244157942615470872069159678502537512672371872472205514891387253116644286341323343943868866068462502306413045715636877817133666798166481400708955987034741673663641790345240539807218291841781402206942899564870084286391980918370188104927090837421041016508221733241476698975640561311766628482678528441460181166198166119772043332710803171296600621670754667650415596159515819192004042496136926198856839170060429035403779135269978026704271722676589524265384693679585055806350286112087853741280149348550034752401867606182107252490866251089808653176806591968032772953467632810473369821831640232177547714350601397628169806127900887385086053143317364679048056985837864634308345594054671876517781477284401175088409815863351439654926626641233036007386903830195043304037464254948014497087125588138380919055100080956685677776338401403486229436562708887903992733492704763642057279996030468539426314234721535255420280964280728151926929248792527665507722941931242033406010928378390683287073993084545468410451185591199104276604726636144792576031537237162893752558342917819168131365203119685393122973649697867265258944202367469765448572909989758267242930594005967074321964809921331528753547141433251097221450172633798762952882669573648500767650451493590070406956737754757980500423635316776501574811785901992499922538975620853127924475242739331524431712191511549626197391146942624431543954126655066854286225150831962661080214144058462594489711575423078405323822664209969798071000853002759940899197905268562277406116532146441376980435202184702384331173090138960050676819411499798678157411885896270588317671387034313441300317169393765013523432342093638367962697524242098087625865768301601942365661850360934114855246068397009705943913186492471701877831265671427394505121828891731404388975458626068425272356788738298646704184815512124542141773496243325136925917635706725046368856521747403209494615749002226003029645734365954248591147047605294808186289520416888086849768108114483929718921320990288377086717574566422528483658779419623097201491332242860690124921459134702418196351760442487825855697704155894374535793877142070213742696728373224917353556717690182200668725211502906319575200748849092696937465848250256333190598763382528265511736353922279862146688832824642158096682102846723789048389867698844629606202300824004958344071251700418460253771356243267068700863327876282596744485891022739525330177207065471948965094156476244840491079621948247200630094554150069384443323000835326308267891603839287153059205246955818721511796684365428192209876781360348974239405586674641552544171709391566764560502754343558424849720879642106241639897021152464406703284670462424079178221493087493494285140341904390979232092005116446334196824393909874999635721301547873579374160370663353910873844566403809176030464900546860889228926797736057730698137514269367620710948018202359431043977574763543593586114397801276185153985711138792611144132899828975283902241566284770509252825500464207226443670881498660920449397487339079505183769784035284461679074863899468075857308173862216649165210580655746215989009689958456738693591729366434190846350414587700377912501850380908362690082279923844041345191357843534201145568614419903682946933062713803259335855701402999160564703410490356434587281064427695944640436387366057378737936080450194994659136869129113343659759387888970675638027583095767551015007018027201472673638801473896960229749193086858374303828014989787710696205646866182187084581828441761385405093778827405687275464204531267808798776513467790980534248143197261939666295303798612583269015328168166732364355164227281666871866994748638260063861209055535194429822552311118112853864981941409375106879982186150569073562326689859551418723235825390685847906207824214760491259126595721497296603283003761721119767274224343666853337031602910669604615163223983274375463367053296176896297988122408043825219219404381183237498529753429119833617121729753051752342716810892258438400528595975421009294324477361678565150559446639114296164176102196304841043302142796514070976034638156779539353141297396345640895985806378310139633381365384608864598040663372850551627128126159114594514906580111116515152275058026717941940397447716935684432407642899448050397186844953473141872180843512620991810723741144350406408747611551793512567321544298975933368230335218076139056016239067867233321556590405177156996915955006877325456665799838144423941206679584067829463022620265216958608327764266817402641832436015756631415475391834737833372700108366823071145701797475066504395833656582650807142132338043094796904194203461297049378036130967148776331782430598774609547187985274074380895033830096082290765966167159923936008652542699254072513126980705158780490184597202545589200478171764305934272462617919522438391475625022427452907996179870444457280832237170252129730671849121007231269907635483443289981234287581634202567416007622375849473891431346220806393721513483086636913649278138117367865560316550387721811487932712100257508255726520588259025374505477223646458651757230084145881530714492751656446659051276667320278971922546414842375495113675216685688961392743572773639428071066648556419277918092525880471357683467151520133928959235227485208588739424234423323188175349612868867099591408903950779331662117574394589913464266839098064378506114918617665748373160068136428918000069583778897652402274929121369069896903680019413624182486868444428176960989034514188455027539173959805780668597178500625656715355175316947479439761017994472271022209869659776228858519935463368215267207232419756850279605142661223500996438719969536431123023431883946784899463787399525268730187546643372664829337386066381441320189603444151457964436441899227823931396936274077029139226087559191704533977258780864020047518955561466782933559281463989748128899594949607186658014216717035654943946668262503663410560125043007782383318967646265736170394925412779033138502042029278562115201001000127026097937335647136305534219141968488870636208511925483873043011405382087165730397826788627662184481784050352928273009627627991153867749546099041873266058315813088010229703815074009169553544977707868218898778351251296620140414413382450847396621025344138482980014043131335990219295536772595244225217623343612711896136512807055562810337069093975805705454006818512278446319071108157597370105405686141941268468639211152514392364859107196278619016388078959966444427461662611475594508929417491125357140432553150923375855078098541159261320173293315157526288062927677558589780919984120908013989216641995671004166199862558233487352382238721368396103695367665750383232948793965765094578590501392559851243730406894332218664174995925460855067134464490268422976905606197511459932706374842932386007537458084180243029704146985801737963836462444980013747901699596977019335058245074510147851311119474596174528194006518230594137630571547138335785227547344439255573514185787733943129943956345742936977054196927704638672198567908390455545345038548747172575640160887228221186854611277237179358747429081528714489295938135984713827947975203353437850455161654693375021829727476129808327132419452125693338479567664227928195276220097027119150207616654271464383271623207457596358993948279238207326785574433383649669693259870413478637438948708015542070149792598821270198607792878160874509444108618307746216839713762227589245928704842460399687264354182373821690571691217759980243349485446288462689023150739374721234271155605382414617367496672546186841820973398460649605560340583396979492607859759893819628533647799909681886436342855206666242234414028721512515185468239441483631896398547087671028326404006744143770935037128441670152909956626950739885680494745037419701454925102699354278626827531125559278764755291385170049615418788842447789129391322955321873377786273694464626091165939834306800121241984957306542873371445242890211174509961802173909603138905488726963720287675483145220298275376276801458570624179484029164364062263126291989093847446131526046133703939553126634736873964880243936436673550938578745750403980991634457645767836622412347313172743965971671342327479680764682068437958977123102979753153190424680185941923935524172524374932496593748157802816186058164364031725615761157290595001654142599620991573362489873920821623954481909973334975381284900641564195786728041938464132138997701413930885583156367092211409623517972120977779631055217585423473341885949955766680937664506546474813746146046876267301604508134970989549179806073371816035507516322933671089129999677697825398319018749462877977050288453179736742054302339200496980234171708614688198017152622415650213592712809184343359326965056853605232533639844523727136519247804324758848464812270800083234488348486733431206232000162840864488340354133970252777805971940403416466081128587719647213824876407096520121552315614430109640893753316684207062752630660019250152748289437949278848867659625955510373189332452817933783367583835818798217295531334043217744625996864143909134948544797840369294133305628938110962316254650932483558579023998262415804741797362661918366178666133819067733533177060373953664260708113188942871078651788220934111786165604213152349024839045865945132660033339039589264199927641279291409939490815439860006340533728447209850880945975003147260230543916915574015174278600998673176767869286735961546207809104056759596285842190950386677994091582344778077807322531094296892412034585175108001935031594855104550515670748082181925371398642908778703011722084261370241529259739053195104646321978109267076720796316523466341632241040566825294619725097245660720037600418814069575572521658636502503091254022669057024584224181241857799254322764808570173090774588652746654301980379764643458467122389522404431838410044701508121898141121386833155322526533015804605165787566056231588105608020048801263940012004655264185985968631022063644051495603194000150758399535005743654008937662099392203075492967716496017155414260593602104392491343002490046674113338363891060419187701545771622748392050702831041822525576016920827569978510903112085398645059014106108295943471408269819645766527800164157375551188056820967382458749820332723483868613996047368155105380955534567371360766654679477598605356113994236987518213174520561101843936787432451060444608957012236661819650820282420246092376112322540719627383679784255706793544976146118817518522530613395769758755689797621432619129865568891725587965103689263293336695546723527581958511492238573728659626726307649236383731238860338150688518684615522774253173425379003851674304350381864145491739578697070825040510290847651980420332589262665237108041714831556389393824133187187206357863602699806234836601239239231776365633457234260065676378766966054104809455502306240324131411213295485637094339824552974243502285949911821104825797648085285137042796528130597368437774666772904710158766215146986616674536801120926071989666110931812596246665309319362147185848096679542964383142497427552369325526185612966053145697212072669875836896556324744347653950416726232604677928941441923397296995869798528906411318732149737211712061512651849315625949732044911241288280197013319481111428701965841014959047349329046337678006302351349832615359256213425976618207142194971578744111137360804207094171067801986383475479958044254384528448193152349670079018317739677790783782492440050216358386052743957785515282518214510567862006653256879747156309562112993155568099375815031952204290052673116235697844590575050781165788492531595964466018396962063151063133962903639686235926246028281577168476944922893194697670567129745874625165716837690202051200246031349310130620029320411275456783447332059662204054190434165018531189342675166809660589676594370719085994262052928021759818425759365520473599281856022840694129663944823567082525941208903676293447777599148549997694684938360747328499226582678788452856852887834542740285338335350211870105571082439832716092472427359837371089221626216685166549771408132093326873013931270638023738654121280715536216868386559681293998438936599335663452418633256815239210848216854743624667788098023924735543249674193833099247061260469427224689846092763439468721088941615939836695233254803129178603269315396600295460089204737823552723264999693803813600087054941662335084899753688962448745906205491014356423206103094101669962655939145122093355935057671723624367269655232818917750474534646821861248050733547128078260314074074437963224496290944483366886452228431063158555436545636169050040634071267244992141379640830834773119828998558509352928812534326709539184834265722105627791688926115105382405142706787877534509499091512001459958127834765506948577775353611330197679327102546706797231195262758137179546676520099612126295588545015223554970596948931761878822553546351854690374825578206435629230774801847432606727714572067980603368015639817632786054147082283893323098732037119764285418057468047895341146413223535507781198339247509832541216382946749075823270972258178523738676574454155086108908655089115872221127972785830202993749961591026318333190552372911367455471255470474242932895271667158016505266919937248658330556907712521405436579375234641536321914533446962830770199736036775426332459053736050416660625654329923450203730440458294570730531263763401645228783305174016754752491809579813620214188233963254949030967715570348457911773147989150917534919254661074067820577305876454383882366388950318018512878839167661768898742318755737291832726678480096538564857851653213435829457854484939985612217488105214244089814176886736363224579715231138250806184330896578068102431382120504476724913429337035136507145460862720889618922920126735164781919635328307163950557228456370395749259975306890366706073858918451820334011311399651200471512093312170480283137322033563110413289395371818839890865969614021743936261804682122325191298808356746648984557141897893937194127126826470015080902956242470519522591324228959293569814022943305843285782413320786256030550600874765193473135696708169557889428131123749462206925807204550674141451103083487388289404850462006299134798590689480446443816093988895859516385122118984342545042232913993297048916957600162552436304274146568064878041573044282651289694764136619441588997357581202406965070599736323525531135111827448498889555635159119847129074936219147438972581201336698741009791724221804781462102997882964203111577875148815440687075771381833935437989304156872294893570746187144023184991920765658496593273085735385508732797486923032814320784396628420458363096769358341829039144702208066124867068423045680735567834212937320975903173321797435837219089649032845848094615801627343392306510830421925442606536421035864585730758493569029382340721727490639500063866543648409680514347868212793770157644908730434554846018804935112932043371615192538127712885773752753996252199908352187970973085166740742447097080437280923134269285562343756757920759094506190524304453763025720543264718421717303049571609465005780559066528890687535885664862730541664768698313362921736157085654808025268021969433441326853898060584895661388664415436963885720075113752786525850169860256807412134838092560964416087952535598341602426228607079854915239629675839475508580767220125818603131547817230465719660360122779335062694289058306070622389182349106787579953214811934732693804385492660412738586572401755235843097082435430705553426573345029062905919324672830907022978889833316238375599950830155365137153193958800837006158516663229843306666275190444151895783342616388963325818600288741665220157253314451954629165599706829000149809907448554697499466156956203163649088915779165787417943334183809148513432456335694874132118482996481581071053116075317464693761696045542376990399434103775149469414119454743129644994457780368661894925040333379124663215199047426140077824077003102103048132677667073596818312711192412462314204550788968041461301174300439752991791059918955889537312298494594538127454250332637190836558059152069045361813716005776724618218205380244561728497712596081762020628197091779010090253628499252061645151146741747133130956729647994938073349600570673729361593746565646993703843410694922264156314925046996201537424967644238760299913798136036377674608947641506503272234683466656906796800350965676117400641881466749980547837720088443563062529668731250540643269100923210499133599971952822466042582040567755420038808443927780204610591076149336737502093102742910522797321524723171634198557965406005682004203270411423260469621371664668007590044473860628409758433243946305687567910660724638161591846269016658189795637435435672233797187969882026241564069180053349706657188792347990492459396488027898047283808219173921067583682765101650896970233402199888892843169511005692233042888713178887841418829030511441081102853739018287343738156245505724921103054272295221151100818280296618297744681496046522297708828882063567800152477985971923321543638618886826550217644510126450740084088527958940935663499191342150927225925381467837317050797024147191076534079315442851996167028757878943999250487294152067521062482646387197317054544023932231144587205099683742174798226599133138999763248428110901963734888256463336013017951296306236514524405229274660369784810754863861029447883818338508267935363928903257083632509976711293411123262717129374804776099645877335279738460312732109827316774663723002175877623809001329794579632468197810977327191533038228517875603144526819790256358641105848455034813979681616460132922170159496778784047797779447880054229462741531185458430427842373642432033121168269884059318025953877400667623530383939325362502215303651168141481053657665439453783754963201628996420924722180836697475357502422462360557294525339638651529420451589950368432772698076600348959185155246495915657338704018971166428394523859859586238450877489741609264111262323603144700434295814697940589223886031409078958879945797526696539624655974788589820547493529895869699855727719420250146329057013786460833090832102020748151012805459628358647904247923193484831471123490939961586190845744077094651758860833145694746042377439404370051129282371266736668892869030760020382233277881039079106346111944668246089345852219403689415237939146661577698806780482157216686635545747798661567875925224652748732960849052536579119848531975191664611205998404027612871037357268194867728295849091128216100675576208379909746463774035150466800493347391352621481005061727289658869810591443265728251724331223471097735777092429351643484437691300000731489943399010861627982016485792216533935805418248951841086414119387998422148538120486370661941446193704990198553589907551581160003048589031828207082939904245676986908668143138574379738210299489158495351061563644743652093615507282352973681524847840516313215472825312101815074923989520326080913518786844293352828811495650257076346550877899596660348856143472886613451726771490706506228942386405427285447005649623550945048625627871242589646732624093151213014463985874033809457911999348925977609800622716473138167777954991428942686354592600126661546601860809044788694903610782897257046997580714279405849831146675787948983884545943034326169445507998347194463659599362457782312050618678559493208469231807786848235899256160549335297167604173902142033626404894902345829944937019672613219810456475966675781812033582844675600631563534459956467151482198618764668476569972429000332053062282177772415544517609949625404193247935901575851551911957035018569829196099756067907449697860293149656354090811209352104515310257125956977077475856964033676074895446856890507015270705196319043982709557402015448664273519605192137800645937667988508906953478763688979292870851628054125356014749235376885768017367912394736413887174067665012544146609337130163341835954768608092961133506119936836597878908610597844889991061378960650417730081568625023067773936734436045186760535771081359686310417362816795770248515407697010347565938880201581645098419996555106531296629826941669312475676712123902579416463231707035240838803636298065479064916515920835808617196251364064103732078817595484225935281612714762128566416697271786521125963797066592424399391186086232179356204975421425167902065350114888182399404782320695224100962440832457825050166294558637145010150770236504954138632137350221032977782795409692175939431593834412803011367186060761506836138392991624734922616152740561212514536253806061513022587748072439658488341567803541628273043611730423213235427588655267223202080377844198778939901388644609366116901344838069483288933817370743175393073023078268752841947104664274737758298944759672541583410256315733530304962220704563649383729884656924899351277693228413599191922435115057767307775619198390654779950151187210208941670990908945482341575722110032579781288737014887514434113888942164712279610634393044667112574890658456601493215698884229563799153838504076352767067793877903906778635365912176556468646279549685190197616142442189024203829058811993196783099039898549837166311215446912007249488483799791688628542167437178989200937185758087908685399211081243942001599704605126320523378347739240980426484515516770927071425739514974211653747153306047616203256589210935242768573668206557559415334988937375265505235389691073723885493381658955469886785342779665994990843101166389061126408847842950668410310971574349201133105564514266767399707677746626536907033472917084229996885452014372526613976927600265072282444801071718253184468025290543323854342405221653215412233540143042814121500474059643188312535083930480510124296356810838372925320578555570342883224995739187322102259508805630352596249796056784269185661939853209315729661835962565116542043225017596324445907188200137100881330218673833558695133731690366004003215781841761751464406080758327991106636121095802399763105712115554400356851438249837073884049221333559001716387878788251568010429149831126049591165036085515170904193857520377537082930037776580595117364410969855819456135471885199643343534153167079202128341694727014342806487763087855123146563320893965264414423686200494235831198143019337927717210182114724251457488848950865833538938102755018084545455938825255183655233252053789931230475569441568268909039288145580119217042433348136630580406426794593912842064019212071031303255676375553196681590724207393649894912895613728444074128730922692861254770280876239888686434358958544094904134634199187255556531190744808127016801242883967857371479287840010083726414771469275975577480698443294630480883045976361009380424027487109754869456189851742713731128969911137637935776321718363648525727025068949847093841746056776612922034122920796166349098743061438226915632372420140443227958489006895504943529589329088668121487111497554543672539372238662007195277161380376966292310039405798396577498719336672560697113876433398851595112863484883297066523156203453604825869557656986038335051370062151605788318115045128368220902420949572260725984983142922298068333679907174054077140162331301395891933571951381136659614196501251322408989458189955078066181806657489247385262815623345423687166923985198669562798148720023615978064828511996216518157156113207890695417495890037885306642509710458961328114575099262119671804438237183338169179640131986900102719181509902640716237989342189881295773257000173306517735065381138640461411099756134849360508360388370221976385293632606010536633292901801540572089104214524641699441499607520044634353131013945213082824421912476104847384281693030361538421373534833052645613277233952990537530990158153739335566006933164746489577832492250958687880626141048931127196473044275167300706533458808157001576365174292691529814496769465293964751614621501025130461852262540168428185921468487820194227843695518335662996719711502220738498786817274688012913659874961410242350822788140066790583909086491684781046167090084300386444406216774966144383799321474932065405933071945831814808911548987581012206196072627355571436316319133869363398305774168221576685594031631380218081108160838526331530226266651427244226323675255312239068712275281286058051163987239118046226838285291661987304799200277256851331157304721967375453755473094627095964049192783470391065580435674139610354193508681171902523924622768194063057731109657901595089140854249621884438529181602561760477777605471368223915491883610959279594293687068695221304108333505157396592812300710414366786541549434342022341593227814398126195089140398022703322853129725606405930914280768215364442532629349274957569331782958067953123148415667493325081339432774427086431580520270237401457604410296437349205671494545178334366816248537527872021164580146345863558772578313589106196398847409774299566129526611022669851691752962497324267603654592019656546652038539053645875057952209512734758758826415538162418561378381335053292681755424531310050359635938558451185324352396254474547357480339829890002667171302461411957493282290445639706218539601599789776326058863258095801453994950142197631290743009863303241193331200766219116694500168568630572959270288845455155290797996148216421340477907686078537955178640413915731132048066718809986695740557091875280610749377040980506908927970562985360853702730003155859028718589496953089689623319254945396966099955638607572011958696798705751437812635093295871289163888792047551367089755295691124746073936770845478979156206073671163048152690128730291897725706728280021907929670128498392253192761390462671519313682112670373757476544172998868551737285699226534601834530840887267981627854706547504810072184749374297814162129443215748623543493237001768162464976719338703718292796733688201459195248897974552863353317471080789661129078370676709123152127217172821662655480355216272078121793389842688535882651828767140115906156120810103803553986565730477227929728421151582776443937088290363107932948742272012391401133063187251528452031050009709843165369836251624995843808755242498391501693546377086965815820772675548535039981954797240350395792994831839819531588210182466408397576066042485528417189762801151015805061472703744657766408899028522376064666805973171930617971241771836451675630929297144941398793171478302771573849886613769418840629937952168514291935647131127816455920322552768147471669864820039868923114701578426677463007785833111273446898871360944865789333009792972784164608538880250473589278911073265706696347024682821419534515388364646877018223462985499476515474433737704135405885273675760199474812215707070836259993783645262817348589313323028845947040892803465384015807046907413320048638520163977295879863399294669596467255827751098832205046910156304483698047716398560957848823923869499304837472173710544058052986052806715911803528969721481021933872885131072733815293354319173321439991809087696018738272047790947936220815222797498917022544709623310468119188228594880853575050714810702048364519003505224371361451034387008693539345845724859100041275664012025632086661853915786707024949076758583625456140643137479291699684725166867120289888888326150402657327565195948706076381546179794335811735397703703237997175696857052412277601554894252948612291898872621194172784735083977554504809258601073788189473523992972838764801256753570540560860899040475129505196140267972438280076425948302621484610949341415075584029139029969597728804029494509783895385819791797254556229190338915382732693326750653504118549257530082534779994948164406655290525611233781759987956551225556170341460156954799385582142117415775177619590908027041763708793576017843268798706772120252625770107652147340380584080006859017863927082501517955295180961776762745623230060957261325717402208674486190147917839610152358620963465229758682046839063139416001188366798306382025980059794910181693619998337422246762586441049967454450704797017208268150655225088507332470288280033957963464572771922685622841734282300932548318277213680621738917226405866495756471795814743699638229871668224633994664580739714357587193886897923347851026715520894979211329135041940269284672690280059423914168627838327079010956536144742219891707577063680169253301424016881990979769737888761898440192225697151817019309182015024425771899719796023503281754715996603531618325387387399220458360011072282515511531824257789242488540474493962757999711701888694991778211887354283845925918142679902660446078011052087215941164905323924332053270432990731057918443767754365402868458757556329705412703829846800228051861940892033337927287055738161134291554219176196159285869186601857416156257949686876845179035075138943003448252773751501692734897199526791346846756325860912904492298232994674260205287297337801371388715416516607697666532737132662797039017290510278767398889989439689006795122973600989985534052795052709897026291336451475107890259432178532335399971072860898030929877097500016810431512003054325999150443744070356342114914184611394375531020616557198719638071489980847405084084422401450328676246858998174035435975990122753013472402400618943379207557811919037591370359508620308109910533178034558886992747762557153516513252681057771267857189398968688853535083865099604146093289467931212073949383198961409630733711894428897983231809775388885803055388003291713237336632488059901962346574073841762187161069872600396493034406721155197801280163115195743233410955053624120035151266200421031698640377859406809994043285616181535188632636195482985856508812559627140947134665741729995568505855206585954359082609558965429996621525317175188260459810952712681672145339619624023613366983426394632974108630633827498756715220629854326479235132070239985145185338892693606230379675425863919290459865299752344223214693673405391284633586123908149919604531803230311808666513028603151188857889009941961417641408466151625956428131994798421675152064299727629959624907035073501318500210661393614839407215342100509054570071493680632504803887745775057144957964163472386768769847492643825929355729404306784298714022243752789721238996336066510611324814837011475371684093172209047459062460012807840585756429992733693484731085054014922657837794363530093368053390014883511281004184269092751965385126626288522236304406782565054668365223763870434512964175745085325722009960493678193676063965510328416151565004680113593309485664651154710804949259672606905897070260871889079640660800714489416190104029648105847876216627436848889899946507047934755119185233686690549314625193907996428071455097007582288790365891569661477731213519173761597938250360257253552536171121543949143508148334840658053052857905892428504327153244419830265334167126130918255956653128756612817817509255195032177245879613539474090675514890251731147303373924765861789337691921304586312152787282099652587816840555248675140908204564224073417009910557626814731292778691570311787405931445126584428307961629529360807966325444939755191570065667995173399842923893915696163421114468714681239593015143024847932316903492270781589682076001356798649698373042707939286005361510504875297006509710488077628068050764834587356873609987850123377394504225476444316027704228694201489279341386326099402639616264790562175660340953465616301596972957738064000248856732010936077791585915672512946419903803162969725184675223591383845829936479216161295794700197375599317652768389375508887823858501766722046411110774427010222518267789238933895098825611558425907428559706560534139176583358727217575527836208109834371134585774845863617038861521260470841249111653303374259257165947539959229294403189812343335012075129507198905737593593528395181938242111678880447509182165637372792502010163131411328878053072153386107660147292204743350496286647496449134139144871423383118476311569918727279848718131440913284090124441656626294067973892976117743902645993953268179798417217516598634215960764053076722488736940548256984943857060800821701730502603543985636006161850308553368518541104610855501576486722314223598826300917496736530460661900231030742477987931061691114603474996451783369666449374456792915260790110000321804532252633832955859860051238773597751951405058519943198484564247652172458518685570557459257710200562666933030787253241699493977791009610738446524541153431080545644610874484988861995545741446268802577881100135562258754365802727240927225194498762481024114911217999636490797160657965341506858340505961754214468166319649130345755514111704707668205375220636080852025688105454141125650603739542961264826914769205068223361127275413819917650804162107464535475526106290961523212909827215775780613128462155642356380053783782036150784110918948482467799873223140105120567837573903056703962788592359567772150619377592583428805944200700533067638087594551080413972081978728710288412145800031535685414655371458157797680597267418204602811561635286798724406287455672975478743968300668016735180983439411907472723188831281155125299625959390929029169065826323734337335245782376449535119202348755712034742451581185992944654703072319627816639743972440485539249029848314563516061049780868754277956253153473278426532184651263202251861135547624901725878118716838733863391017505861465892276506235392654278362147649685487989491544610076025920397138292104586822512514010261153233065117459837517996353571493395193413226778100359692574272351296057913076848690052157619813184840179403002289913279957668377584482604032253791445538710975974937365456898446833986675173966348630955823646382662508516537440107030647952341159713350174200154979588468075532695449298880927914910881732797143965755458013395890184950725323584835218804695509587419543751661647543328473193949959811459907696179252661088024449728284768421189388242531328004789701617410459528347278025981039355455850219964152761684885422110023376228602178372930684500427612188237484707683100897817080530246739371571160703454597391863299828589123189907331377330981191595220208421340813593783361501961037567373653557544131663510075165949623219155102584933617785292031993412666724528969458601201317370575063377316047102532615320040770810284753152459479376270342438762524610074902527107753769290324644026661834949738430154698436368340769867698925489566148220750576224585372228046373717281162633100410737892398767964881663064975885898790423324365863322279263865682106734883350202586208282151644169398580487310327579293062318209212022824792200495724445558118999730671261108552604660156658734692424444239984842595244554721111594108243770294451972426713627399803590290650387509611598236854397645177538598521575496269435105287280893410930963494404308316651968799291605864615413940995009061519671199159177071318249304147561293593988669577755537324918450805961906434721516491237603669869579363733208909205659814403637004284191200367254486660604569855141071949371197275795781986113956644651085124272935174007317495526350127539224120485119220752070256259482464823401930276448274432693366717015755627350810133592861825571833772520203656829630398073336047728549787702465437315849347600206405472867293651115072926147349120635221406533078783977099038134102190444534414560164559710445461222858593276841065191016798036090842874305434488152759064096612268272687052450206094834395431499409320190294343207981864564527991048382170007949488977964449243801831419097422362072674748376732510335016098815489661983447925421010831885027127978290600345315561689446416956683036973862165907370150240845093773722661566408706390273106805302433350022848835795343726947012764531896328453086436822281537138884177225500612477462881691287199988486620983284084633458674922916546917247642999628863382611704915116247024703860772499592944733684293596676996037552699520163781198742424284137722234258025011347078977605644676675265605783856205545448381385957364967706895522062934022957229605401725400405103737142083268027244841970599725271089197538698635982895258895424767006643702350556604767945748689354143316770809403427577002664863764084325935871833765693769125343680600256628553246175656468508905044785465109359693563372619015845302922379506290297285086984931482883804271529093314574102545442084289240157945713045472508450667485938105399594692480396972442229414570223484662899259394543023450412033434000117976010717611667565056632591343604697599371562333770552441806397430535404536307889699110049503467985303665339636432216396060196349034988611674942534730855314718916616591111130770609416927955746593939766678504496424358258655194121065719496723211118399347449454003108685118311771225485404302417539354393388870931703996379818553707321480987827588624432862279146250921133235236035407529261254443868249754586119625544266729287778197152848415649405408726340684527333216414829008778169853012606811839185851611895558445137953814167964049203868125524120827210273108221957103990422087033485345573710758451363313906060017300611320494915220169452733289853967791805117687878655445619484655931004145319751727314727471896692295764088141926670807249151949995308080176307945185214804024250212318799350227326480467797284059512085069150248467178243274494782473516854874605294075026646729224714801955462262089801728652776669109286620110682633418645962734483130434846233946393117494141837833715106735259472685692663994053666643813221715579197282854545037485360176064972877546851136125571259459357698525049845741847238173474802529181798121328540843615681500753795163102277550069754215829381495492186401649868624195269486164602841047330489874719104421725982677132721879926952090670838243650150008633637113233888136087048079250372840868775418762921837143278812171301532118801631209245016589015758604307056511496729261603793544684680914239056171399903502732222592085966612888973201293982089843635826976359546474758750285686362368818350022792353844623933691748674665251930915066764526996749107508369575979419596049337579650849664219259866399101634100726293932631781581056500791433562380250503230271615458376135462823499283982282410338831867700867804938137465798678610995153493417038520602605247255143665611027977878384853208279875728209304394072275596110239264234387064425242200013360499357983126340774486158494562767941017414141783124500300630743768131239642765258400925112030367357349825055951812101187492189152975473856988725151344909429732042847102058796957761629905862924022102600152166385784629579272763927676040276331534245786839845739019340241962252658764715627974529924793588470243170696249566779582782329530513362112512909738495148319408865874916729796471153232368907029389832125476700974866012144996564312401753810302864327262251883479639565903418763948562503924496929571934105949226698585553162496688574257462651101197613649926683522644939963481204519926422485345836791262070943882438309224472576168576310385436004851401912809926327447653118311558097901656178945608966923322501049164313544394470050939205469171539605439438158979105286129785937875630106312573625692041575573039017100110664230719781385642122407718807335367160656503187790370376814865811227938372911050890274120762202044865334615847213215406238517958585849264307820235377293282265078329418293452477221679135249513212654561549804792435299331715841990308515167685867965623830988353675752244388713648577550453974588475909141572894123002440137185240575100538454978102177037242354401091608115591499430125169347709200993618114703814655689157715782910520449227005079666826343533745290446026665637914780187192045842689496669130181137464571899384937468739243650660906603423838203237591319189706150559097613505218746622368788747559435732764151549300336760462721199044132444789356226105572651273212220347408092450658131460339367544434717627273042609325848709260321612493557847860458176360911966670093794869457637869878870024468649813480737920245301171136484431610932958692276046336147110728707459464942819996922973854995479499427552762141710056954274290810248949619418593184153791025866568363771712892701715093103093046768917927741357416042445608095919726384258095143438605859810808976413498471513633029387887544425794138918692239461547999823434733243659904402729642586992413358283017261747439767900505885784623075797541102999371141328094962239327444229524076190293706722747731817435450145737820057906413249038043853380937993934092664521430152206494455509784436595957638121558004567444183316267267800030827051966207159135194620809144151364962174235606466051896243665372474957450652045709443582178255086506881270917630865888852413921213225382389656998878850709901916458394487401821030343197309554002953740367170920400032603035079416712757035141081371077663680130969625963284920860776309918091316675417349872171978391658915595622542670803392480431292064402822673480648413067835873049112737146839804288344328107253696576463506340213270055194856722167773147391393771476117640792377413271965576393157613479013129600407677336292843868121779426384351840985224524586621325632985502407897915732390911701219942312212031600564518318875748130889761813780422395128020359566216130456937171805355904270370105353452992607059960660888259947176432336048587768027707998659482326235337307282735764268412997312198411285667414136091307607491926848279906091510276150363445512575244891496891613957905202029076785266133179175532368137674530871611749845409264609602248888247630823887961258482446390623104124741976093614928217904678284873074735246195362994255681811752049639564794470591506295954003894750077500382033393242831846636403073237228682256542194027637986806056187693887215257722805551283552069232057819068327949030941181972164117949227351553850991094562627112011142578072240177790247463738338458235250008277645677302122165004325274760237214803566270314670984552316009865952061428900752200814124243996592701074244805981221275649040043523733430010580160065271850595550999367968614158462571839716648442799962686807742219392598686164105493967072153375151829552987176375135587579827915995021291401141871051447815013605622279993284652096259925393009542929897595289489096390929852729499200973799884127531463261019219331233477305094082213786123622960338100098064365348763797515266257014872388422679153340231016154313195061977620489804721001843133347429031232498739698637612087409834535841071507157028533838964392375849483865791617427884791709783849673450424059658907858420423063275589797186853532602010162233776218359868070652033744521048663961401211938792512566641261274673420703388903674990233010205540290034257645738653010658660368804605524228196848355561538935094254044088140652603065790127255917019553495814762969414038344575204868230055470881611803012688201391442511129431489361432508606727473417092114892566578302484696940822656743564674785380223174798091471953480693907186731122786194932853677238098998500394801972830351251517554984315671047275560593819463087050968358054054080041639535260625835341829479494859723712220584600866984806813582989775955262713002138736337899166249112441419998047871405936350517036372757527853636290412725829313801494011580447064705851034102080137323669127970364780225488620472623516745211224703246762135361070618991452850609184518119093020122130694684069205541065006703238741173160876179989763235045323708940110814223960444019032802400570749635977768857936425536939569932251080617451013625873660043568316865654913296483231866510854786981690435584589748301500223924550519381448151058719977947420307161962128684148532780138510939842781151081689045496238823788226435630739243703621345610425168267903800352703183885027795975451028486656859162988459784307835557414128139332615219928904733604678765034643482451013475356559094190323769024058259485223408186092065780354079706805303710376913542799779317132455195965647505960832182177022512383415740202681154975198168572651793858530877987316732577219112115326822536125755670899683289721924969820127711034514064140584594384714156295657696016905089173276988762254564699705849328107475606966394003498700734168711463169840664575584430781171011754021270452969024372553412148391307243441002862582702927675730507254287298222259254689194458786982256190757542964128301949479139394911020102887330569493477466319427770762969969750084087825852718328141064157176080260979839739737124857804657060116050596394795958375082687326732153495099045332031711275733480122099183892517081700099515293287885323934698806756100316653300513187676390958520402589210737605823389835195636716218019237270003382076824873889144065893768177045212960958233482878211479166401004504485190546396776251717346980682434795492168129001662683589777813706495544661688586983020655987255640386984744572724807645602254442570836061297647726546092710155148877336346254548574152226362877509483332253637573097910288827294291008355605463574581884162683120468254360072966879545414772083665693505070645198222739247206072634054153343006192841030118906060577390026796484253211359092057541402146552994369640228128259638667391588172843509570380623825866720650544790799198956992707790487682939924270394494254407614164698678725021091046722482326789884829478015393295233862011596958835546460163832111661963623295612255964716124297887202934378200247616027999944047952781004065964699947083025870666505682147155690723641110704834824333842483124567303967700777816463516726128644280277675348077469249884258949823435405006434224709366803873474581262760211658680519154324633731401538209901572497246387042614550388285350478663385876668601532476222171954197590757612600097193954015119579874011272218094392033887781911117505326760321512176807328418954820384698980602146023105192092891324498746498031485150882048833294287921369068615772395418161593326586097593266309132917337965390226349765842776168303526861016454183090232550201019612198787945144645973746367510915266129934029337086003585395179723224691433262059069541937535571950424460990339054919351176278676023437208648676650991794503953003298876760680395806955714738931693432076054491316782875904568958492238169631789329729569708236195657861210312932890705655668307423682159044455754736848650706638683061856390759390765215458356328354627412448251314091719393411808192888742426607840178529394998162819387237955494791707795207981944152616569747410407115752356960714265844504549105907914426075320622739167271469509445153483103909009675254270584196810526477248455806392181838824215444912241206012336582985040476716383412583055205502891812952177381037231355730237271988389304853844486126422485022415446988679998665244276478883079739492880708822824711353609383376509800457250694824865699526532370503292955929097266350288398830028791224133121973949669783383881744353294190630661370307410055587543818514411756774907343736940321743541242074560286511141178962241971485403262291654577021740866950114725565020733036346352749468968034647386258925755779235306850976275284010414338101646996560715148647868497909541754865162125522631648962740562279111147072529891824212449491929325870290743156763876710276220938251750672119574255806342740321539972851780577187449685611067858753736976702472086433838965099121536011263946796621135128385396937696347038273320808380494179741027012156723839207531814394300738034688718462879577478871312912425090627255215681230548227023684843759986137630284308402037259085996226669795599053435782118854629039595079202722963040191247414031886004195955719890702322826520433999618760156224342596921947416946797255395090341150822161770963203341441798397063905137705769698642325558071521532607416597007020270287522591459697294807990944724957493861837381592766424021646409418704411596181828891319942705607559085246185423323628363386902839215546348976202050445798135687530958953041513686142910951988989100801790077936683959227849089396656130408209744831523956920979055196443895991682157579866742854833057909755692068821536534622737623233359811845214996275545652143174092381742736074466613482884183070552969473425349521136593598327295626863324237917509089695972561680267093322632146077831015011962742522835738955818432156258859850782113596123978558456288659271876369188874889678790286377671581913011148835233188453417236847263641672611309814637912356831198280833722021094227571742094587001370536121145709503195416970388846773487009378994489811906403575114887379131765751124880758261292257726315785869254249253657563050450102654166799282040847720502387607409000944148919790755184853199939206650792559012114123600209529819712477668889253815690940619744714776087641297845555953001388392106276980244016737003590140160866275050266700482277479320315342672677312258721922109823110920694295311990936234916498823135602716890292331859630968361094136414814852682194174362157115725254320850983513984935469392298444327070891264910330716449550961753633813928132119201032836006646172623289900986760483087135421826473208226563291436914124631453490943381871431331695609937516797208666107357019747289799699479214950275114949020846552845274271978943651746850315262694645070394848687606180836007348600885332255548471410305228898726883159499886812616428485230173366397360079769980413994558185352012994275547448550646030494073152834344036012018213467994726415845956841132573000234918957665356386336262575160543296589752530286123496565601999465148308284103430030082302414196514459124996179499886849634311783869777051001062283134295442349040250206806595398357835015950926983716113806006114411229339070155225586999383903004192687935734772863976411462803179822160017965298613656611634220960879257055260444705986053019196908332211007303736676108122924986150806038816697155843434316722710338992659363556026284523585342250942350399783429147017115163094611894520147966935350914836903982142066390487345568070873631093972227976860500536167844048363360182288378839778989394211265674455721915634015982351247657253832258736668207003064194650867475010341828916621522411629092881173074020484970967391453410110452635068052126603973551090929930858488243057115636056074719445575076500913515011587770019502088979839080667312760920519785860549120040434430332259020842676359718852567223967361974579961844178797570364778442857085987135326797277538988770124399948544678557750095917069205660683911071791362878377712622990416395613714893967372947421580546165820219141792413708394991756408230894287153977544451745343609334680493047377032219681716186297881882761451589236778491485263413755295641486527595234585090723874981765189218929089957372410049833474306775489862006720980814662116022065412050474025948388757625787728092191306955252907403176112067154390260036905708715173065901538220230851986260106642190028241838464609629590475148446361535731189445706542192797833376898255534194422248662819531902739385474505421310144025216473159982680361975542863413889640224778195504939036339746337040518934705505641279513147142732530032628156553621622596556169277341932363247620587336146921811921214916490161635489040748689224994177319200733462833212885471095389709336111302695933416532906266066247675067504522252243532290361394773066174587425990547802967983966569370233060456270650206230164430598123951001199120285535055069468905487345315226402230916154955975086235095121149811403748424722740172775989902871953800275247058835138916189543013668653044825818550433771553147632689460785058436829456492876346337926879365233796009900874641043359346626916350560791867127163850891384302928473145084382560732004133078737908116847390198535990918170931665707826794470812648073925448545976180765417884921390614855542089367479764540965637223387419301857119342478576240628917961017992346338925433091248912527331823457359778716900894432702984679933235271749185060998373690039926108227168060129913990324540471478957734792381927070032431680606120579120743140534104419446585583544237384964614139141837171234276370963960083004148712784313338604865989060061023430272751258524563208214692036702659260648002330726952263905613240619566191046399982060436442265567695636748228692554128319546930463774854697459514138518366971602354629133673382240406398874703420126602062863442452518664743395446714726927563439919557128285852514500293073586004312533409645318411251006654116819621947562494330830144237604261292031384529549416512091082344596008991803815338865503143680291509952348372607479283322886297742103401104630328698590217185137649063974568622206332052988768820727354260645983692519261282153270860825852075217160106960834943176478797805431539908267768573061394720157064258888007398621007242438549805384722868442546848059373954431933537123790935725014374060468569889891158906391042108701277136988479689688197261307767034819597442253607039051147760352089311135761261916572310702602809756868442056395438372365484367525982734220431973388145167967029460352296087811243861929755445949865852500400223656432207035902016177971725377021595068209987874555442502957275108011926764452054001360721068662746126140373157860552693161285802046727375712698491901188555846717076151544714892111177455675562394225230843877437730410008493351973320905586979393644246548562391059869045713110355208985828883448332442035112667522531209222396293787519945117957539098801688174751578047302812557852351439111121276887242222959026229314773952026761028235951442644024129021336063855268909593117704546426368544795685852857736491181376966672688730070370347467407139123765420533747990989415996613908757546473058316147732956839820949216202605436087433221726092933261361682832080197904701601087974826410806594434528368028346859104668583319419243222474875690471027516972903794751661677948242182872307344431421437403965173451849878598704648728328833972119844862199476519447739363173389996938674250585927090356056860848605427829181545755548215600931903676540890218546308629021883592916854073592943011352712776206480667745558449285490831141980764069735253134047492316890356771805946642557981383754671493672813516465093379240770191972493663091072134076406722405394188966352770306789039256051489165635318392172255773726342049388406525163003904726763481560614651500130634827291876907020191893959840495337966192874215473537774230789135950100568110601555233619842258038863285664918683618453152012436704273399612081474918866267415116397395627672991154105379456303456412791101160861047815802854162051090864301500005278301843263756370452687272863285412060800270575942523274476244649302380307407309471856019463306148985076839553950348679111133443206229580771069468378272568136859666927517649743928514181145636796333630850903467436599237852146482867821022864791843049109905257034832664396631552902135935716573971334713839441945126975328630570704892242428854179335289134112004840830796322712520715337103261103293277606094258564005865823496842605370985503917782010553476252025608476354686737664088895983260815444679766505766816852319381743020311180705122090524641965471056453489263943168085805968117630106592852321499254960697762937015481123766839120343593086476830414490851641313588254177968050727010229495024090834226905167911500425577787694960175821096730257020092530684397189004602773553439958348187080537156705721966984214547784183239784703699700662711405897692223066550273901286036062551961496543172941023555834228187881721562888839223473352162976460481743610485063967635007780782231154678738667075544204021230419461691991736939238770114521429420707024397752342896291959118793125929390958561314733770257751343549565253168510787125344996176613539341482416353998237542001455047860404715257255174715558751254955489825534544480582168662617822436254072333964159409422304551853959604709611006110204592963135830358265146344096253818957125470292037254493333531623682527603124568036243609984170293571921475620661195064489733672339977062148329219087299136334355708258409195319921040721282845411397692528915946377639202382734457901653480478715692879276978359129594685496248631743792291957499606172806427672040533901630723569428474651844031625527862047769014737769202829129635800471382464702361568616567925618147198463489109787282080970800933410516839964428077945657049411552182275161169695275267840528553694238750499417639106628817985847284185813997070926701849890411775524865407332404544395856069952113498793423409282465820651272676421503352521333766334431527427266935805473782361455226812096877588927836091066982567670371904547474556916988547525613855304360964183260262742172150737608739977528187546714504483666087117963934038316471845781116082978704672893539499172199861188393713239132517903993483833251855655166932685206302981086658751024150741672801270055174707090352887676507725661519466646873897025803256864242642858684887305922147877417191075396883696573259641231900924869928930562187556348508870419034820856725918248230364475092611345791369147053262253236477667226168342849006435616412992032192805109756248941162099799351498157420554298734429334146977608146374241782809050210425682009531088846659988738242500621457556382146828129511877456441197534018890059827118406133645077357210538844416990156562384978829633469627465141949093912629460907849084281620266375806786769984228438053001594562702711798162932981233183391558700925191017054642853902160119974624576540038348869989208131898461054842165797607243411477431017474302917177938814218441313704512150794763263796026292975053788677927592715415502530690928488848690782790751186414995100142000880901092364889739349684871345552723013189010531470736702088483932620217315860990483292145967321262576316532520045678949192395983357117837783590387510430124585847889664096752966102300206117330129985828265515343349660428038726933192103600413760767705481160763377981364894854991707566859903151825727134919370594182929335219790107826844598529459359868569559073125514375173079791935096630494170838412095859177290139298493519746742320119809467650543581145647468264683674298966978564877859782613665698010658140916125384164818374203958723567573342560020363681480255903747488427762439022945402880991474130221000475988652121856324519742086943453696495653479912770361055621142431515426728316148379415812689143457807548143527224085399084417043554854196950158822375157983730179965783499794248352743668324708868020240520528944414871611032725016404063908100174597567782409371723374316770006667084342800160957642697891543894097296317317596052042706417443568781019847957761296127652783831067265076337388659028353251508926839080287654882276264309815260349212169673896750035127142585679605612700728666321746053418590901372057417820572245206532226140328044777032273017917692598545766856658417052266850817045745826470130139730293598118250395760643115406042121557453725847228744128479718948986930883650052229312112480777234220269682736591805352329564588920254297224677210896988433356697396832642268779126784289981977157130235193255773997483951427902619593637313470079081967109403025173538482796302410485615287201614300660080383454772533159992199870768243227218484904703826460487315514674877670511647878048059350507444597156503605585694605641614677523051514545547868166880759252513712513662652584820225850586497578458316983612173485485318418931901668333125976711022765634132731043159003601604905303181129464396220860967246421099490173440073606795652296726890089329857030451827217392698945297676191257623970144834074497941191411463075216180223208503587761731401034283645320420182156781192389433854771772389516698206957563680271825387214334098397365557119398650526169601213867740170977323351741213646911242907923188195562876252829367890716644105436740709909060826213049722350645620326926197587123504279444421218403454006865600316416989389270389565756896614724330286249628647674810640230048460183630256953789913610287678292453523364352177631712986803303182001679000192355619874397942859135690457737783003873165653512289544988557943855830873404389679920626352870890612259377258650285600230006706561385517265110084330181713506667720420023043071465754222716569013075359603782356429673875762248895542753171773450625008989795968879607215949086805999151813448892029885000286957390988242274122118385954579730554329578369663249584143709486898351779907796965757825364763398243465636533189190616137096446489044530427348083054335969446246799360305661993258178299955829862023243265382371581423388583905677670071268317558345243217236803171079754285927163438768845582129060196024227264969799311370906295016310891183886079961238733667984005116346638383788839385850830230771736274368618101884004845840511923068156608288437666524619505895878998478229805223158100048871131369484690970692901565957641560843135184482469152192988008998515758422996862030195157604744912961736272306787874229746466215769614251432464412328291953382016598238532438500227173323524586000332930557416597379190468233417207492787689593536825525534419187770330511516262890633735110861522311382879516627561202198936976947100653556559127479351621346730992632134183415725603440148900928383033163473835099705012384025297502348816546138367859612184222769429907176809548168874044225282611899516745999193460810747848671182844657232054788621849711035151320467477772493014001746543961228656085814281405734112087063647919355950464231001808290165537758337106772576444045433978977797640903965298410342245685655358760200743931964285546811483102522776835581147172240122067464830369634083960227550197642086240185909794434939292567253062721068630161680480888532970395356750554725668742238103851526071126050769513673542986994895595855676447484992003433197680129409326718200553846150223584396211896523674992494689148868951236714658955123491307164928893907687645754406621170118023706989505461613271988030059624636238575415897884739020782708243511923297326791445898142431952321055937481275887554124861270946792426680742140276416607316439808849613402309300975644908923751144666093713049031561672917412165768554607035338972373280027457053442884750596808368503800682180090545616566344101065470937906267858428875460771810197842344535145810049237143444348804470948409870480744554931788443040060023259731384614252961545567122065755781820792541348253592200697884925319410631533105313416130296321812887387441336753251611050636985494336637758241408342717058725580198703682346454223285759789032662853587254587890533390639816440772028524269253544130006446848399740134791732475631635236296545833759455736736262319560774254011169263843338206653005967195069599894167582698189720455354810236989197961730238008631426305323728240753683987780463940717573927055569455649121124261078572520985405598127267489210291232874787294086041765897944595173217875198864075666895564022596256374781685121658898072275874497785449156942726112211925004628944277198232606419112690190264071868877307401329977281129614362329031130652141337875665792857314547256752526492953374572270861704982983844333998957599943347073318121484520254205940779279791845359295720851824486262711208365081236298873724677141444537583244154809958379568040979208790809599227589865052756004610419802176439949360123234328601188751450512873933838510305197780526114362602470575514846227128128760029728060741381712426980160680234438781759291838091458432605052438419064455103307936263657234488408824136732457802194819094427354532007228909085870195693581982854172193190839854010585974942528974207697983507325012643279848354021071884958771638085809127117203770341686237146543793778922786062914105531425115208997609063877912054307712123658324318775265443790309151991311991227155832195007291105030504138533777431141670690868624910073230052621700223053705978770064921742623222084011575000692431447680108726483467163016775166809782595320970821740240061052031585232878023192228228943154845864542477420377274992964469988475749111739764532358807267274427493975827982296810589393089774670304727856126742040190477940859395204315613978724728936458828263802475550260731215119529470529383319351416004792031786725261565727095948576800563684981559220626477034554825252033048826354147235176867591949331897452761245890054283585141070311549185269136936402519591310157585058941132357582348312275905686716665461488490638521387171354482109267618696226037877336010866024106524262175438389303874075648008278194194342963385178759596207895434579869622048830603299086569094775645232081280838036839864952909226348322951502317968623855557850620745985776200098499586710258340139017066299063693115424177071700671217213790558725024011755327548715654783973631620673892210173269293153379547398014454562312221397624780395545263603779083407927726072961097562396366634207887067675614171606720662305671890377020150354769896580619182310588636639255143185188865056466736057481240771184884613538661011869774367858129295181017568160337882592127611656321036319500170606807934461823932304462587587266507771918794814345030043020555555007655764774476856364092990667643605233093698904381518300226787819102688475799866792142002687433163956949794672766820251244801310983492798776371231632969908568802506540524784050693314030337154335084098730772157330005217358805422355651751734864822940736633089598193868643844737316152317905844988632904548896078580853276557179609175169387267982232221396649861257656422291026457890332795412868840792292924617572748110290986853442512948218895071351358194917310423239284925475446240566156842280930979809819458854381041553845562039904157486364068907995076128677394579452093617730241184236103589125622961722554838385893836666282095193461542356210293432930198401337337094184397525303366066727935361758084881305634349065518238170787834134284912296991396666534895868616417258436450654662932822066020397889141105519611958777925033908742396295035942281187027479991009329610458212097858737581091863569723735119456554315695557385537225293055788520430689066030506811310849395890305735855102017302777643090492517555215425723677944505762621747335031193985373112135298653301696321720306504021462364106871486933061854814827430917220666962790342026060017435851241169772703599253053321421243864579413118663706960851712325520066056101325756711455621446407316285280372512537551069568276719207993266986906594352838323292504631857859828811404028496841744440329706962452983932517385721803394068233326189743491766441109594321065730235701664715894669925876136629569345754931552245352086490522204417520292215976813628096676854509838297655862468745380533606591947216449712904235235108365229543723648848404373191525267765369375224812646371871805379142698403258542342386418111844246755351808783511331898145381705751436677659351153048469219460439471982273789502200254377268942758208670722508840364233183954178755624995027881556139150045078740944951727013399198265998809055016035391352008813570187908310703000312942915092732692502594172442184935753024836954317364628649386823406508380306496777442715013052152287528644408352919809129669543757032458310706851404072226054695237462677246826742328247820402252640078051687992188478608445808654523352437925089871856291516032132007751516102456020784008804570699987987179769573029818479108886045621308828142522901878879558266418065512953529558560381801519245197189564096297317059600740484517641166364414145429076617408283526124396062877186174658752693504021859477479107200828504491239442858974498796086871119088303977366419764454836211317443071327248654777868821559563500240181446078541118229900216797519399366387042155695735240609128501601001993805619821977514442620774509527861920895845966333101176415181231904533954697998359912060645930397061062517885987759868132101525057083109318631425958138864458593733186452541100201340614271104671078762942312444845728711386173293317271280101292025105509553097285754950370553440918837509726739586491795054066979965271347769169789345495694241011442785531935925644750645915221646445105595121060888383594302523006069247134978267660772379820226209725455333094018778604192772604980666562129392936275790340521444413880641202747081163516626040755075862076023332141568674297579412966230028277158028435103202633329867161356112568964936823640852516905460527709968774510201729593434364832168457674085058750646778951376043546908066810813739705725977767166699853650866931616582899388816799471780697168946664168036254290026129847405724601592546120126241419188624715850996436852024463826449912477482433235680856500931514783948084973593148414018002888824147241163226046833815976488646683323755150740659580022059654117682534024622276201037873001643384325675690070663169443413480301096485909002810898706683919869428143451186654057356768209303678741234102551547674078677810982899811155314980616584836333142348918585975690409712948477704170732220216900819821563380423978533914202070971610305317971813272733590957518513544911069466371099153824658167392857626636024142098043101395744958964930384763945198798597574534674367481473439459553483626364353372075671040765258045526832235232239783602130925577279535788349035663825612458346813883676585890823109171266839388184855964373366247623878277811548460322569096712645504925368615513877339354224549180993303528860154379259720304472166918065787772674491154318364904245940457912625795195620598112577805714136955628447459249583467734324980223165524967998240055316392384501324967061784227332547737157767789962366721027310780239023911096984357644922541280607919274382117449095835813695803672893078078134108718770583361299648293796886123582170425153292407139337335978940202000795313334293299540493093262264128492700066567410217701124714188707906989152056207900871733913816023770629113834848692010478341040763509887989059812009213299281266811975163668808420151759364421228035159321665788721482822956890248717319386484654120201541724071987149935006281316027187652174432232530749985222404525574311966506698688549362743420164127548202776272024048877269221675873547088521874397513546383674907736907139592920425419171404756085039900464869100853983364583476917940833201680866624074262404955117993445834716159139275108266170723406169842192631872894422920030906904831667702798058480396833969826400836322660300819386631970721519932763452853791270793539429121161659430323456674821784294320580123330495851878732916150044815598104636211412921117976589171605442285300763618116405806130270190034289824746440603377184130170918793403175357012285981579283516715093418141753144530790376070633849781992482278829343008363161668251308037911738299562718073683330331394311364379388826633671313778830483364688347506677868171378447245292242494953503190187139504710970471533354818304926303376381055373008317497497670279932425946481713772790087571996759631248239091593235587894528724939059982052189494072897585599345029020893941815560659498643231090102527615106689071378334276553623122494436611989337542563675001251189963172721831718712100908326331950047965336049621390043694869766502920860429135497103468959381580683786891745537332456915199968987078301203617172433396691229993425022643761962782902502414630933937912915818430102007792747813694660079076847347697222662704679390313757894008970482231679220471390413897928719061086165809757612637345977877513840379646424643446185382590523006798778830476467800536853948312134293967594078339370789190615491509557287845521739716013405974326063586835619461924412137948653387749210206851177556756280470275732793737128821039051068056159287642759484700640174633866625723612641151351014281268548520524708091111649206784434820686773117219730237984726451813735029539236624640281923863843758322891415326000724468315031480154554395480813514685840049631524014355944537748555236930378415254194032173974272183535248398400881595978803188404765034246963431460034758235568050771626775205281055006898149707246600644281937601690270686001964867455488740967844039271518246330926834348900919037661163004840874553443701073418513565009482237637430160102428182490221127410449911058234592616913409989412812003972166126135081231445795375790838749150369505384462750444515126970107993816852956361833305564785891415936195074237141665375774066040066360799529506427745019385538187834688388176054781637071539039397391857057777111587527960122465311121196577379508142571677234212496960175357976030238328452990805771818165231113535826746220891564850834904840752717885833128344407785495448809474877608391953982991723653874981456919048253391475872395867125970943086388802088367216905758777535351258655183770408712557185842217366038351369732918788545847174913775216831420879253452553001537252995843531879419560002525999572530179518933685655018874527453724791868724568480472905845156049353582311228885232005589397456301780084918384479205591868213472425572720254918528831479922733334940032987962049618926228067708973302025990155952173344718619053279398648873607362681927609813242407379496021271299851191372984277207048250702683305102416934296784312366930243305892955370953702195158762291441204319206954138797488815220037656955682461205720243257505215786298933355672534523062254598451753878657890212848782725956936088708374137206336169913031193805969656005385173933540929301895218018020224976400479529239874987878178414267901030129555819101106654756437406214839103965079151107840377808900287811889145365904662653623891832157742360494891867752467623408726917167815436733243507238764109359679375373404412644385816663941647929951555006136512088589210337973612852570935748445497353934141057557872096680740416959883238917054333357057091967202776069953660972313986246395617540653558107002762868957116071189299433015886535171737912663152701025062693547556254439406885000773091316527810595869739598558963959369820511419256965751829552473823952374949706307677593465357979973512981876114411645256182709682026327386178744037718620454399745258487117103987549967075503591999978735923368247955559898514010077699356573865416360335291778304888463106719604670457822445883823039366726627131091601164333327142269953010118616578053642701017217978521888042822813682727705707077526879349814845813343728027614447096521454655353013416236357663007671311311123494143726435788613377571310767391873400203236529360589353524227699868200013295036707419174326058640903356419637949938707325296950977304423322082217626577802677000137365738918116783386321772676900421926232689783121206539011375491407611007967408991441900818373820049462431380896704771827115763502333716121920296975624803940353074849061029520732585802982767472323326609324221792857888436054530104929985137084454047388483496417315669254828712127121016315038904112109599922545444432368880398408253529246821238650834101868587676483616145645895304492550597676476065742637769869136458320454346918996277805023493780856655710737588260357840218059498136838603608576004399808782171771055839317677928453582138412335672424707120285457603277654385465187037915806811580150867056440542888683802806574696383551899982932370769171127856728041684942212919417578287171677165235963737792953241517720330928932831433976926403618208839387883801772551646456784807541069233407402719630592444567527641373438748945259801924694869115378713675590966227665918580921208267422675769244685122491872559078076944748041301137511433953468473877181926527021821561901398553662164445121551654508100567839904399344703105783831272956457065662257531861413222366307325899333197921632695795343573732125182845575625590688700205980173551237212218375189186360126970059551466135040884640662103811353094165177887304556456266461905243344615044760296247801121587824805700940943196960297103736400590982135106692855699817823637035355030442229186473077202390809445892005894257847127148772107413970635188262422245416866772515969572407059136846077775601018213888729974474326376998627079524828098627593513510945513793377435392726741362621231769697975588039393285519978541206928666864901512041785053087349686436835399869975299713495154877204095019648600697681034743161095820640126764154371948665076703112196664699972717524608232505542884767514145436181600241653003408027741433233477666977225632073743897347727601511490733637014607949196363281597030092647751414848962807493955479627609160281684092953937266558834153563069777269042267944874303231605956473334783521321638736524804612213164465657058707231984107018060149771969926885054553946300110754815568794185632554608412408125716705055362565943118445161744570822921141012977132994244360999009407615499194850072701108330058256167381541790625505476569872591149726334313815871675647222613163625246181332493164061393135192516222672117878488267104369515295868089244674055664196426893132313718444368291675207434247594118573661890132386032357481737308461098200572523643192901812508792596748689221145332755809546182811682894623612045456222679313765023006529907074902724232870044079014459085962086966917346212606873189008701115698939931694466885799760824026545035542365007978009806081977819874498082796839242127996502829168570755539368405294025999521935550623618263168262834977700517905871543909310236115408204516321433906289973585213357374675648498093749009823029714797033250931239416999023009001009140325902342418756305206223262653685421628513842880689610143397358688939986311770566258532674509490090720543012860339435386422481367346811238088001334792925627409656251265070640599926722510821317215386589177850633151971501183615550760473924937182154655341126498132214829402211001517330945412854870985872853022377714034091893638034451442303694253800214415029193216338205732911120021669570881146276810033750870580422755002461642604565401353053911401232801860098172900375070994091738455731796255128730173664921469516112329768914201292996884351185365466562268071653664423735257661899296434100056745109371424794356424634870675205587640547200160930885429141405762890838549279970669217968112766211376173549882595840107385078697342871364640495461877235066154732118094158196002650170315006472808043634192995804170917245930992045731826273560346151002965433512738992933168827755871017899480858388022519553642637075135822484428486300894227806700387571446264556122923584235511459362138212336293495788958202602764378105144718282107729989398049448337398716648910673780368113734454134473886437745612594486778979643119904802547242155153164979869542540578848872955080655436777739158296538929612417905892536343412852201477164210859286757314754142629467741164537479287897314500657235011958445263230558044941629812561213813465061406933678596461481777230501717260133551331245333122366808278444415803662839348657697488754256327148049121159823548384994247691180390874991984778279300156993533961090553985433056341208202894077458698305518441370520095654192779663623282408578665193611753609327683793213469188543275724658289273811106824199328579081174125203134920776594889535651421716278710857691349716679251242369548755249226607487978137504233593491121243695257222182290773158264418136160266628731689441990995558811121808947859466214670734955069729697372268150119770861524073907405422076101278485982253330436712318954478358046281243882421976291802062460228132727430881757443619832106230818043349607991672773082317913771341555999351423608758341059818842781954707757642542882126462881651822370532819208936378667674762622229151220925113629045980317230268075038442310724687143314898952301765776177568432332413907864500376384510685846149938153483587457534885104105698923247077747599504866068912124847185509414657707273025914026071432901535704570587987258202067452668942031034073829901460421625566915275469171709050427260007953251545615919895708560951110897940272540294922706823756535356281811653911080932114327238321927293385535414457940770301419941816291293417471686423485478253440132890848870312249211688607099464722500511114596771678820846458664133839905293464339962856004979641430587697450873026183804114089318375676066717503050485804706667163943527757835904241982306686199663955710504708799549926121552648567773411636223759135570187411090616819440377422545940729267421462302016792502674455503813541838369485803415401033125899388761945845615857100491377717139648941894277377891464661774524957316927299411413130170656444302610506218749338016460413347465358587912467387208159180130347670569777547537783090900733752256386163953980358445786064546451579676003109367070528302765516782236045393615296124222437476004567651079821764060726537910278843285511092748879154376528750778308442189418161669719615823900555593969545726649217566270699650452525672065494927549082784823996588375156171067275626904838674635986645396226798763715387791957821489889017890386939294518499671937118497468871600717095474610149865247348253843257798591688222311261040372721122761747099399585577803600034801502450805601145249857596728935468295623019686161192147252583585611103429945068840636498185371803827594288418277942780081401956778839678576091957066905146428599567015870971698297545407324125714347803664296305205355037331451178647407289035589668469977860310712939107344671382439294368077719494099923989077673655835416523650676979365078910299550800426244677684539808744047733722487900058954933903958863221468723139113887034763707265160002344214021468177151136720021472215590569942012687555618510526637539566526512476552004689412483591592323887921131489601447831773610972019190841031072683879773202802754274722698001863503711428337947929928943242425570669192246539609375573503986334692481783083633040180553400831137635866746442686395505075821464732727715775666882114913688794556548682274427498563480072032113058109187347597016677486796584671663479705017633969211443928915409340980915955686585933968970125551918530942132178455910319774521091980460030266562889198960132478444572603570601373518887507902828031976353425069442494266870708811380084269953906949664451119874978496998881428986680037580111126551546197012002926775577514267655860756483716320867941339141582422043157209156708293034581107421692344020999906188103025202218680310499182348181590116440794607787677424870324490688274835586309368560438978711581608698233804837747574319374988180871448576361273862675638055595600817297556927702972626697605275066577132252558011254121081112797456684619366555002000381194333886092453120434242423148443766371904968625600035076518772521585836714968758678306401573769261220957693169407069762952325224463235582431586513916776674231420060496805946331239853371761429356687436055997832176553103610861566373351761175048109889317905701315009737999290050590675975092412400959252065918759597169954016586511288346902462966819716615672829145688192242584118524697589217705654779142644582264171247331200206579572373796147137030086799554770582970881138946334185269407110836789354735092881022744407434963331500201227213489601961402062565074300037037854525199736710734400610450828547556989302725706757434834583590698921437801364091110361667443350450577664211693444718963546367787806090493534724662885808662409947559521406645957367448531414055712903002472220270604455189140046642338011985208620541931164102144184630472635024821506654421334839782052123093421491050202543394709274996758761580857370131912070021113042645041571812850215527385329840317151912883538084844344910257325049925202682393392682348078039906694722928417407245264047988291522659838923395548948963851417686312281854044575008647224293443223345912195428768777838623795450962218928998499242868345904332295228976700951374976628203196215513284998220337350739070830157936584992531391111407181531797180656975230785087414435724487128050994365139134690461552484150314039117079088088842400727612059832125561262757606981183679506314189857367621114838979848182057947119098336728950125678739493215430076990693821743087847971449956528410725355833757124897332359335431835349791503024857936257914589140895935783515042733787831862529202531869042825548488195859387422867298884580229172026916141031832267266388851164413600970012735450790506930468029467493004975849058191988027957991428798190392756993727889619472990576549532416384163236017086539252933488963479698497451550813092369021894363953041188853173804453487543757689733195798208852538447482306645765458783665953190779106700178352525135948025995428388255562295096543089485781814784256402847421136072482573456288221577366963320060207250710104021371261292415941383579801232129729747647032052807313031499008327359174811550632993275963581735967933263664483288815447285067862977878159719786503987400360693714905203369650314276211029480002425832468728913304454185869234539769313413952274423406006140893541625516559102787761239504107988599653429339834764943782297387398163950332589388974990564607287097779903640102163254661046158597696913405956488362845570747306582959148204118068333687499380344219041099983264574375093668964074709154456511048460803435312824235691339007916081673853570850254999851297320002831646968902937947218444994048048341012475812480829783536257463895873842327093084388168774082624492712924565500970382206447745501384453845954243157990073339860421911067163999584386500827700288299503647027019232588388295313661059106969432056967753124699648067074505817036167989320674176487652759648247714566530633015490358595558079408547506460392721676683223372533335038160626793069357086978267327148201316243183765720414101355312750782064228212752754022436480742340342366925702209792383056648292936432360175582214415407629901325024857509293676599772633991967822597302977993771928954962458082380473170163863856321026996216888438824331259271163702216641084786787510321038218402026612520084667941392697310304983869968476780125792575227424487433858355995335855626372338749823661662955973190432198156106450058668027135895831155166197794570528905260380198158442810331242336261940086804862821673768838090716026325660677825381627179014053811468798542112453097936428343552508747806289942657663704615276061516854450963878883354407407015719929459261332362578452924486807223942437143656790472319271181196722308721110858747678180037934885982373370051105943427554373943932234048026560894497411507008347254042004146034497315038242833121141123639162024468992075415155450725318666702073163381014289255846732991626921934583701099555580645922317356158319710130438692520890535228957688753542112301251414562998222933910173611039190580063968548973639557847776815585835884492013252155150033261945718836235254551994910716977646893309986691924316018357844217393210697460041797749792374115388453212015524612003843431340899389110732838871752611808604566549209908909487936689083523127107644563681230274074469227055946182419455976211901926988324894158419115635769654726684304982850480035103376301869523545371047204022159001340854701049590505436929266641132457238589575070169101321999216567468606029681832146372550572092807595652168023875179878166788999213214139918843043530288998120212392449541118497262606207679923727892425014690863342800350732060343290779981208380373779023791677513258593819543538688767733248183418794549739781282945659700336593697457807535218401344569182264416977504292402942979706534360541223267185605294014345722223713764379746765592799238097863299840750990354827675175772458858303660636259191311048651915258425352829754000769593330289781460443093545303245839884961096106033457517640267435686623521576362087712795284701164797089505692606834033540222148035571688039912587861359905797486855939389132098346574061191186153345971512806550558954097754971010414666877643718621953564413146000747337345309861670213376839571087299153106227593705616160580501247189431123749316041983007944626419071880866458346441810009390941535010742917831589204630170459717487661483958671781711291138858880564902885151400205577521181042938465822231260626025268137865366124375453823193564120497108439813282301297873306915964668024341560550820057941566372781905802635814121416128388534814623051459263549545732763568689507620932066587404836846897976406427861336476088632802629370349842571635303794215273645577339759252052520202793497572624135481605249410137203310419517780132508873201924345455840668843595775859043523844994927127533626809954708707530623003821779326836034336415161806991941703223339550139174255054206628487101108801723116601909842875231325854843925449488617591107711147403041246503360649637094670133165996510174198477260423265862190543684995153565632451113863019398766468133188085082466049079022799864574098727758224925972463457685291989011386525433657773633811529617626243693416668401100678124793151039317410318983565835685568650202518193959728829860438403241331508055882518428388337815445577210164719088115087267359897315242942680994171011384892860482416512568620091050373776698696041242070227865934205292532356651028206520976034041810591199369975374098821978086444837208732803236905304520975667012640611989831641025476810889504957507784093694043699346861618082651110201777420086135027105524065558230083808585094546872993575938187992353520286573532378983872577498619507702348633676642162047586885722570200294309805492086637284664510469706009081064218071654403803113214898302954796945290136213716997202602715243324642435895127636361949051396439093483896707196975280861104929726588981197561851178725187736632786458615780769394938124473111860078014514287797171443109007509770289585086838563239220258306632073852700273459551876070787455579841482188972938846656622258145733540811442306021017884867749461605667796965480140625498107287665521511184108298536571040441149062309890493916905140342771779644878053019037126825100397843812620126617162747732069591680039312695752812409272081634414378375719751212680061086409375296512737101709424096078992851940014616442928264463121641393090206999046332310631156600159966470695564001940859591390512393024242986286639774317788826991728749835803555799315887684336303257837497636755511210800057361942259161046731937882438339285740005916443671803613927589989964439159399276087538881460637536312569343498324641576138982902256411726877787911588809998152752908360777208317301961709150201543706584034025586580494144640904712454008019187123433995520711442442459912452837770183772001915208724496236438295813767046651304138176231166008312462439845358053197359476219758054218510843420844716262373330821939389265976617797098169712766879554869614905831378168606634113876710676649734803657423409865797890327130223491875370957278068124996895440370125660394581202729025063095706134240058912583936432918007994967359916993212252117281106596126410626022469453631502238282531242282525538207502682896111799196796723228207388648392913408918752520980134972069320039190505742761199785216616654606071476842793042821918856424112383800629217032198356776577464871662540231065968127982030765320295211324415337879297155194041682855927188852279530491637790087473957910159327196515442975306200349892310139130197590655368729337115130490628106321215452006876252467852643676203451394368499626139145621052663361962733811068521001391315396624504232167813566665482556431684344627674995557539806839796311129136695585590925675476709338918291331750764068383097676650443633097899278761095374333691773096632670481086513449511350498298634411310460117917870127471725546129886345990352036704530756841401027866666452568532500017744090173501295848072045728190126224473200447621709153628539149120601057656681014248161378859622669048579130655573726819980152837148308163780801562175500828330614740253192877551368270904322081033173491824326474309921996025207123579067661625998466964071032620850368472669246774569573723312159313601414178107048028186520198539556529598830632256621162831926167528440408086723109341601308326482757178670282981830717928752454449837899173704257824486698889048389684078836794653345716327021489468445680549999064599811540593028829429152190502025333251570049278860938536329218865237506745494617902640355401845901618258431158260202102064589573184475621667867077276319697797420513066479491934612511550117735213881611405518265292697714912039788762411526722150658750677909882377001127793791246289689599051231704347423914456745805672788432824959760072651853135921214732062267559460109283113274197514493134992516668047728922341426334134543778303469522591815799920541773623896327544094456225319109731432545543546910218124491474397485130736847915830775309147424132347640269590323923909360776549453710037965326654114164139262830766269504736417971146093741752173630473049771549030875015273798835332790638741677514229507618126827236287830767650739927940909704158980288693391304301923687716071524954495865765467439755254622947386594759670803767636569999082207797658101442903899079451343619682078217896544629875652982999851438280959275036834876651112831440065964800020319377069904843361142301982944508658570569169176520311745110373224267029085161834643978443691307232156299290474214848767823570523162866106552834774068332003114219055366469053771505319371944134602503081365786235294752998410088423108469403256669857985391622531416986790049722826963978652473056821982026461135103461371569548244966628285188578579051447030394921479588736680441476318469449405839644055391456552841587325283958237016719039273230937253327816453564542613029568258753560659535018175223840432550819292635772987337033943453145218677126113783377856931573606981444441398871926690023199193193606974547095577742271592990602952667523623644250149228145668224061076466107957358853941628765835477805209759892597064580290940951046171571323577657091862741571604228489608660931341644774226069901056273702411126183261570301897823685432747620081299208750345302187758680052185021148531460244244393816733705266109198727911553861630254114950925329878522978518263709097444868245156340225399408792028280526302478296418276818203692418081730641783410816816730824890006561730206180032104790492801974873949229428791050871203177771798715634914411940344229370098891299036134720596420995937501020530353755646217725472214039945899406393324362257437266667416832072220514009326700798304209034187075908871058436664990966049975555570490539085868365504005763930294658758277918664901781092818472242739434907865097405837179806493377665077330401940695472439208018841629080228930732497365456627746808921269053677126005502215659225896527062553601113054810242833471692094758506550233208802843714633048882848093126594501506385233886157221851271520354333605494433530921954621249574024385208902626871346719074810584002618904870570121571348395496470650289954507324053944779648095163000339501538779486158786473341973236570727530880061965420644091096333251922730437137032989653254215423119774000979245626507442765389073294994326250769645387623871622362852256036775568210833327596873726735074956336203339427346019870882130078891388513688864199126864636826348648794969835206757996657925614506585092670975675344256009516341180443131168113592848252174788459736579594911970170627698791334601263193061546309615573678283821096275900942469187919711939174033132260631259247514729826495635270068251254420277663526588738992491065300245133442313680240396324065694640620691658012147604252273283075204007495414690538817484089470888117549507707343816727049766124754202095429313368945237264394563611808914970936348671993171954188412436602304322100511573474736165438387784291731051704558880106566439895299584241612016870610401101705891810061512532173412166180994393930037045617713523088029299883568877710834163840598960774954454177416612130573197374478841747503407477861252307060856828426519976149167535838449001671072743134521416824025999233842044975869222080999020169039901837270209185898784850971513129874820977181550740216618982495905460349703436540039473299495122946578316836230067229142775918732577346510284584340875722468167144283361890964999581487886391023038930196574706178682139742728391165269591978598708082584525743522468357406702495982982218730523534778919075950536050831994077133862151449363355951711061994891341629221318262510871039531288452773663889936093945361907790466723849754526465358144226890143304798941934113576469501411734745957570542701292479365022218615400501589895283605714543718234864953639520443129920487804890793697999198077075365377283515033412522016415725217675180376870201459958470622795898474495296430464750060902033277294738143827363431926032493253632695938999956505587821687602963702120226899753427704018579964804408790857821244004406907966867658976971166130826745331700095910807151500512970054567691252271434369728434845119727178150572582825721288321360116060358537677514310828848375615647793151472736809431881611780833083899944738727624841688066222137759969205348431448021041393653444553389278002189220887707819902906066798721759273648888088634494587735260055438502682628032181709006246440195843638521969191200224857166927895157370893036466054928995786557415012801561933798889748195497141862192643465871815319687572898956724312718003076284519695822532958154104051292764400721495563436125810049282921771232138582860206572395422590303077533234592143939792654437006699474617105808074602329625206026005899411366677779304217813944383407985797650361457729283647287335697247202400360427029162602155149541876017183048776465345801840922288278189396622599295816684816928397633181451258784408785226701973088924442163029344534911709624840701613861189561870905751093752546305666009332185736187871668226722933594032387731035690738096047623546986805737141121557778547441969723370101288031373945618265863836163963353688053545929550468161179356381005253674189387734429006161881299644377000033229636800549199939981930645539086910649624380389131057001276859195591495291653757394507325296627775603733552155711178052783625372164805878789977107205257410349725075804701940853033982467577069846609529870598550951982224615870467231368770016322008352943881990889163996869104607474831013540549467248365333037779261767144517768311407841605575605036802263079115228111009486333201517295138626187588711687187950337792058452342258962490699231079367874471482138533298352604141551195161295700797456840834280512987365524564061507498161965662356032794570820768811359449117718513835106256431365366153247652760806903073696574287152383205445357385152353573856015243864678542158601703624574896356162012305312804092965133797514814008650564324451932428130549014238459069442938714480208168457589421770471441556549307997376888245705789039898247549859732790486215554861035611502446998854800040024014659659945295677275566431897542074137998682564395866185702228441234121987139847724584618751182132651365190006468783454727391572846362160924109725371404836294113829131843353402795137945917467263305457118559897392730393726291077129199702866970839596142747740324034199269261024347034679477116126333230995381565787868281959743131481718529438429541227225362248047795342587691595138643435721970470257810727070569056331830849604499775555922896916198302162192385354653344045597929547108002252673035113813202116201296233796258038140457467839129221952350327202443312674867887940906833394647006786746611682820266931226050997134574651834138257163486073566491063353559327486939031673778790680246537828634917495474470737653553047792301985108325416726179121951686466360539020989566529514702027337781636772727612958728079781274743089957800154164054654529745266598427620898221974725426551804841065097551950034860679039919995575109111169325930395052008778900223716342274143469487450901048404899608545729864235804992247798251649648936953308252304976014935615076632540548669698622807852087606857008075357408024259064869428842979334861325544604803638332264371464092649867384867105848352933780360518785797533798134499085762028023145845411508506568724044414531733173124988612277141297222145523414814506769359189264584897347500612118550056123223137898557747780744001873324289801892054717661845753648740509341764100646447113803829548583041983780373616314015411565152420513732863996502868125992469235092184583018781941883034896175850162021025506118531760576862555706053172509517655894828425257320311206098534678223253790329028034412193347912057669022262240735813029264938745706667422137105993131738790949202682938059937686596000042909644292034079045355640592432424682223495834544135520721273498973321054229849149574960692097872760987535327813542482217618277764139944263422860208354614896640854066306953707413633725289805621896067982064258734360892789726394448147206270612253445212840619432784756501436681276515333433460827974493745477166434542608098785459487850588981550278319894661461659553320368404260246137826119716208102227709525204145929934449286854176304820751959403743427289393413904949388154712591825515533504877924547345265364717919922690564137423842027493678365619834961264833397246043106930289230238793049045684257459824750255475226837202249443223153573631515475535345844643929737176831730647283904994621444032773968376773019665507896885938156008895939308548035757127441965677716415678674713233384236921170972883556831102504833979119484686095151816473468412839218382033955790831053123928969822250694714029498773214632945693988881221036242101478541378926219034840729057308094703540679298348665091871283161455697019669449774572863685393165115537568106813494829609061552404193848707102060270631185422901575649678412173265557769610777520170977537932383183713512260127371669980112413612464926321932870104437976605595611066277460642891414599702933025801001238496961366508367559917704138931953081113829761430054025355929062651806769412051905671270500810930419740337008126365226545055657656466696388290803886568407632681662825280293956311933878967642538175343822944893931306583602775321516707763892385840082827674678542926003832100609093376698756710362073107608487927185430604700905569326855702939895198986660279689620197025237323476072272080141386641031382161765017829960302549506148644358721049061592320300673192095036513544177311341888697592973109823035541999662463367746531997394631555340372917034914938075852726161658973281833750369412066172817082471575155297719442879312991632706275857718190644367081193909861231810018440146388482059014982435040906983835221294096606870366922657030573939796895120041341092138328835053062505528429774074768651863701834199286761016611459766546199830671398264853378494773002893756926670595720471335632460691155482291503217382417822566152644771032296996553309556744931959728915744226034339442205480589913697323797357850582697120796918391362407213910447510114672493543461651060491479804396139879871261039286259004423917108025935530184851928402313791094153746719422293852215459431269645026970962701224229700449647053079536399058615040698495645561279187312763915229149997126916438669868946241605328127132114593229169190828482228879843025921519025840443164729481956393634128651683976307662796137916943850700469484977384221341990954543427888124495089864470676356095310973164939205387952162828459167184007461965070573664731839432500718921994996008158107554499698910085249844226101583998343104748331658017340381445520211878475283009469143383343990201986757590209807527092115567116989829722012731067737959033916565668275572548741076971478126882684549972266294583063617043910071265667071524125294930001171790349469934793487322053361792613899276156194390672806683415926096864501574242541247760209403516967283208084527528237986606731215142748916605159867066546899401403503550543224290282988388571960773098070357596420091815531427430871349448766489096104634024835033060887026760375426164829859907762881357816175680218556015954344565977112679519594520864397089500932363734248806619119070837226578004201103724999038571328223335146446054348151245695680099805354615965075914410178558094227527902229428335370244074772504145482916745830636490342661914885545208218264129911292317291422395501196217831454069593194844355501245843038477306080237645105115779732832955359714744133919834809578555231952598394420822739921011343238516897924181600915729260454567523404051425439971820446737716828091366269181706712004632817651503177191532429967543311042476727440600127834433379268232357124854828753346113286455339557255516701420115358959992475555150080142904381104204622050376726826633211411488449675380639072683517978473068452819150364376309567267218101373253558759865800421965889786839484734209796244242252897148250165833179030931699528860942272366773556932057329271727915986217914971549681158591199922484656084884749864195111833062069453647355550013451901958801327121297631453958649600800087640443643937089007128223188082166798856222891196087699057648207123571006077070274064797475876222989585833425669450057941076226826068915395348852931778893996145310714427607417453861256507655907389594209551564317577925623632797117063263622468353962520456081446842803487577492212097421564566700066569872069769776825563727973623007713600550759613523743735265270967167719685501797651819763442895449614141334756869832585210546300230473274610670853690409718773116903283114125353194368484851576866046125811332602461155064106577707726685398623670624451107835363378722311248592563699132035076495886003128493702374646866222199941925184057904544814214967572343069255502755669378278687018839455643581643499945981258128173435882161172558595905058698041205716349644157393918589024755992498032072315809415351147663734434058217379153430852159139381438590750006004248059571877786812375174902549860331503688041506470678946649280022903767848940875464098762487880954263853295080690146766976456769698998355424645674206768875313910471257672119850869320180597846339497203688089942309882412049743069279564465123931005845195526482702133660206708855428420163779667209756758696694593757488262137999787814560253741100996123082538662861009329377011094590108003946643177285350321854654421088741781784197273659823475080965445215262890070494873869807915213163012127548533332363900000304460971760823520508497019868327239448002139919713212312338416126396553017065552633957399780928287082778124334961530329012507157108420677942862849091944854894227817713511768341391127286259211082316416126857947562099957498204761119515417708209358839915965768408661679871648193260192460976420495444699312029244837681813592686404082167625131750172530832218174615473084681489249215097191043822168252225939841640503541127802474296560761224018798587670942038499794250867717985181511199127991156921486221914695282884994338305832426643952225894578867525468259179444421005576135440798674810253053450353173981565356144598218025806050613120802377787406530155366329363373043509935476924412152023634343547104775893163789274306137877251263457582407308176167041043755094163522675519909304939896720902348222352269606959295107194582143910959074834920167685946423591389633418619841165506968727654591408569729708471950171441975039213867182435903449221410919647066970030501000719061500556329128383043916729400778493452234743468343230180952468596602162793695292511054777056458238708367466068398235585208425103195052455495236946971649169839970737077417829566612826386185325581593459818813134135729076892642920134203346897873700679755979608774467579393433493390675899263542899791082129229705936304816918379973452092422984761542910153717125863571531197533870317077550711265410164509326285371110206798518488483120492414979765911664358513480388723557994813319564445097317299305816233329233209369262097119222793528439538471212154020521132732359481708294695816976056409506446331781776580313731545615870838437957095630385271524647325817696190267635887031700750519378508365391865810474626806406926750637884255709338188064107065100054715956005759821602665856536143934457683645257128142146694147811621684755843183659934763679277294069571778217886485257082790555294303235713015819299353749045211964731856001131431185266445201073564001536466705519823085915781982537517764639552361161816750386640696649328014007822523060751693494169698911623408003358167473112733474714026809328688262860458205303327626933869936685034124159619114042508189269631518312004192100564165890463191263617408518904947591568068178581556142638719422267724292363869231305441124389277182773637184441677695621918579694677692689328531585540304790516927792727595343454471154214394782346377068162630548915184603540326175648086676543549958879451705502408182861052638574559271038708035780373701360216689168617519605793414909676735715993102505041806600777747805353192023173779330459321757168259044950430825563921056734023324945324499463166093145008404446804194206720216941843800815516209030744103759350418517551313059288968805106579164375964749732970562144063261961107778434721794908349978474740700489840037111632792496455910803288369679518652814733432915671044773386864545866538442779926311077578745928406148521547653847659122120950663806089623990304993451515777543465183900082248080971603111339235438154673560415386491616129319923857206776631249601684076292968647227749228522647774327994799928173215875638548054071611630702717313148660393517328686454291296644149731689782223485109244567136568427085337647458948572239975861475063514986162197484590314695930021486763698387346178247811542856991382309700351741950017574731895684077580351765919155805722488429334555996864183916962994137740470204631504698396520957997566154457801728583012301718168845944098231950978711768636798740720326527690192515356322079194729344744575339728284970835099077475153161053432798024316353335111538080303319356293328821842453133112941638695045022936486875943464333685301634016472128514299786377717563838239596082744963973449781455510836490493419118322963866573158902777632417389013963469016994296693238833978206508034814109015932737296506431800619720449814292331224453167330689737231700336897581386416059868537770240131526295242635248021706013656377036091925884874757795728759876270375330571712076678903776344898994581926224532656671502097078419988734113014225258080763346075699568807675760273838183330253637546120508063988177326487822062996848979289198359980769231384827298248395711626665355663655361158815868731315829616110328972466954002968858862292289848291271551029832518586350271615280412378993042548465509512296495524425220453574029531576694170799198963924860594256278591876785931750823693699822527845981861606692277660531796184080965876105823115169344860803947687222897929227249561749959355906589728849009893663149516349395632574696466980707313455404765274846334141610085088923422817310474105917950494650498236586169618722596421003921485541532423460642304485040020442626914242611823948413687072002044669252624996416352453918879871721035270138135408690456954036601186084948693611182468920757886343175628753605794571235402295975895162284650932259023728979067881005048736381447266367930030006527747196965318072145041030050412091241108324507641613974446984556980882091827301085391733487883077358795046876572019195261957930504347939672531806594216123185476111875944089202353123289590303522471348561298959943437717002264268289357382437874129431130339495146256522764448536493450664221524343039262406237784830513562998038084026452456721462017056818309996542723359999476060689610376836717710442428065913217573976938010168963398070377740507397223161160172503195889492421210846317922007963481280987094108182022835293865315969948528509639192272998438850630529608409184798888178041544342940031741879566373995959451983652930391751271788846657781492217597901461161908565894718434661972981877160718499503251719859179145971826703407641519526060614029890803664459512838149519049943673040036220153287480592898560927399243138741983934470360162794220117902866368953766300487503954386137466579074749540260245892260147988653328422286227190159049475419840917278419055356837620010093630814031439193197627311226983959937218565792344583191320476579377141665296883145730915301682676731749735051623569023022376957946107458398541535150953518787472612742349658963017413483641325552185178460100549365255471549858145324332166768376359606780186542286143393215261051712879231883747354602661867623979219669410158435129106523570305416357791059280916306050333082264446655198928281573925689251870882937466596681125552518727003111790657382570889246381878200573509373965916306445610371742153948224084339221722672988650427089505353981881238782652747901248068386092579260546037775585581873575327891818195919353246280133309405267675013110552684514170911189075574793879017250347565427054820712443892349510342201907359928646631202495090016304162386764331628727509978097844678966572636362231833665209027477096449421454012468630225826664573875660991024231001613708880257312472919639859005366950806272445354952126955792813070243722384805319004390199841780853500453905177278320774669625012373034331764228501339685232508040041127987644840590822991372951742937339194599656802987145928886443435092786510247547399508863783192655527462566363619606397452995539653819503040558138414643568266428040138608930384086241423120545783617105891208740138059582873166365085207944129293510182932866625492341299858451750453258285792686681785750499071606711237741041725556038470396124435122554284203038080755319784597979451779890268230332651192161374776006215733570276732577480169502330197344480869677209194943190195205622863393657858173491685874684804109504166976506833213797294311584291439606310716145812264712776510509454602194550015880783317756243046980444111125025158944282485907952365512363081410144813394342473287392507345447512169556269999346544215571384889071866182418714030238566124095458200937541686041019770874351180202708935600625724536935516475513248949247315976343203066940449257657598149499270051545354285297848267743192558561120700607003539921832282579519226223819302394801613532464617369631609779836102184983137187748270850483783825896260785481299599922670261605288687056819032959721729752458383233560249675866163788099418377360492709412386306517478984805033718722474790307553177006691995539301067999996057438160036899809556316759040583927568794523287450336733773268111863869934939044987625831170401020086173695167603535308092105201354086312601936770894309533675497785432423211624303928007029409088273833712192965368770375011706898487280410887996253619731053358203688196355431609568530263785825173437667497608998861358972897031785549032221387436096584292694277905016783150105397300553128953794983310661686763332941259233718788939533472015266855637029471970477228908934356936063258461422096376730924476337936235586926555984490312104208283618087853479237025441944261832593725723698650443448796341475512277712486009067639139099102140846557387563095138137227035137677956870994208256979374458735905184964395159890768047965734094452990127513235097177342290275818321581586405126049388018718440166014519062225776996261555021061970917689996269590826799193466309779080986795948038109213738433946223102117003853423271747850646603675969342748725163957602064799196405999886396240445059791611527678428442084139689649350094539998541676903044254273240326051963709000652545697946566729665781987320863774945007415535330367736805998770564010436589752071932275197969804128877205543917226397204484878409533531940311301879294453839640637274551264834046858388384329585138290498305927462300175329433734915586718979733777517052982597487608372509726993173532367189295165464208475457634286640709779276366551868924427209213762151925917996696280888119388212387157847874119828031680273640653681317685867737334248281703109327200167039561897908763690490099430964632378213336213310221022808233778816234137161846891847963782092423165336020405309503808484469913570542699772526887236482221043341218808426872805215623708506705940715223209897752543186120765912517462716797146466891214643148631357296561638648798575516947100594047564392389255048953586198654976122548995732774763002546250413160999140871490072586063129665054047738848330864755319187485355930425244092809141752594189047704370955022926694304285677086803473991547475426730205379679142293784001172292901575007612691066898774574764013735656691243011279393008477523075218522590812952892055423543709583287187846095850729930540616003272658777555495755819450861779196934105854200000655937190745457547240951127567699566470105984885248319638026296813448229767476079284761004634472495518541174675982357478893710274523602500382131766311541256046969237662625916676351543997941737697366894605140625143166099963894612139759273145195901997008676304976665748978568999792925337301075137656126052834952300471457952846345331522729991869076932199775674104637491804154616730075281346456196501872974581973737858094057536458746535893755993323076594327753715650346102944054064656202233304341496578136024831331385222934774825386670109939732855821070480700212431468729037794820405567416670357271750193200650978642458005098473889553233478620141264940534007199106775073166953414482123900915309835166500767307137802464859431237442385327118945588160705265732849499502969283271598448146783437033146185303738360622776141446340978405384223444442243849278074747398467227865669869429013523218638558368885987586726117874420238563856507785588780914590156541402504739974271141562238550132048390781846122768563794209729909014765964917708657636908750463224921704685949786653147934702053051676578173975257653765972720659983263626184963147210282381859445672764018145600577032042177066277388362693951404504787066675738940487635873630384164027936578172684824432492209708860103621538816760736221616032317400508222863772049842594765806502471258908799199665392162448982056094119607894780090754925203614020774697118677777336756804279161998530547501456434042920495750833955189165655965228839518621035787745818325845777199642508467133631366236602060529772882887080025302717431928796298679638027370615810316041134264262671396769158708699354804501736475923085113933540604006254609631230038901750140416587202305419600109705846515235485893235160416986384190034349090453563862295229304856691667431922645860857562412733586362674120860097653594028918363172327536438091552191673582424049147762519504070098428358939123216405443795917463027653929203358967951825291351784483975124635469932978597400688396287388100678658739386650127785725604778282175902197241637365239904901729703958472490210993600576468419330195861457247695913960547526589914420300599658419994896369789201258045955804839764783423178410157658539852159491385780936042711173320051298300209144275229153281010929266523020167683671456363600452121900795444155381090307619043278773158063947096274975405515422917940919614835613912244984802823831697967430538675117828514411688043389417626957667134291346121528201298534501056793686372540184402894341626587790983432961838678084143195844712386711496504850423782667058185953459055036578412452978191217678896453631455266620852355940320885174255351896574400540600671896617463449308042132765309786006309675088436675338155445189778368634958356201368820749311037673306662915700397372962533791790748179630320259472468077445601678853457193495388012978363899065417754777456019524462050163712563231818885026053939445752606530220284764035795136796865430917343638489656482633805450854712710158277033217251992204833823001972998656333902712977691525638253996992854730248401487314610548013436038227338296413483900613972530057076057777332982126996001946357100792175858471515460693356744149003360597091455925765347313573151585880824402350181577306897157084623488355093308295156031103129573205174488282021155242663604856500957101867433770517782876001447488289026422625176111629618352123949722946628299804487945426265581778947018605238578661769826246928535924995956738658138380422688523406184006833724145663799115907365799642671055417614733331685173339830578369915724723147355729911954034942829849671456385988447066777297594803456606918471408648731450794691957579648188076907365406167020409627038797544574845330962727782909668054433768318648275209376689887848363390958993923052787718875772994290676009803433563622699694432854047554996746301314773695316536609738697232014716051100904433458339970790777670304951854123501660576833575345584977252739328414276657542401757975629916876321161326544188122701723146586152176554530536749152471448453805244732561112139541675478354054299194909359980390696851368353244706010809500838503900018548181390681874295979260533250607852635554532444146477870333061690669752767984701730794151366094022229700794449667396328941100585459337675308583936128802120351539880978812958874969393612167047244187434642608324986731258789190598142055906277510422270738706877183806247257183487280391620427546909881777963850636850095677203186004320414802968999134231804431223254612223635728940841883734159525699000711035575383872258043249250113967762056132312016797101306209388790992407548336395547926896316932447803114226256062935239842760550932390212384505120343983596375723623734907296222933851425547270763313802070126164595265845989221111648112945711625798483945658393460839784099197522449470720214355019355358643303717204749490925177278321100642837976133309749495286362856295709365282640931133486056739981903079471143166597571886697127323586382927084039718532706637426704843446217785325000179775589632472567985460433347624815590070989386897326192475820407023729202715568666080206210025403187065491558730114754719286918919032574515923279749396751430209065269256961814114258820288276202417640664376883578769817342727695773182724153205167889079732254706677388791586693538284823056191529977849089237266524348444816722569163694315027084426578746275877434962262677462242893925011247090943430569964492617445699513494098991765476989428515637048315554463841522307382780818265993394430703388244901071137570176702203398840030614698963724214693886892966955626236982006129955681338891551241573624163556832354737261193789219345534552218653486477025558871830507674189454164593222914866382735750353164688249465250752689259130416709521363753828556784893265715431730177362892859304777041404041376502334246551133517461219688681264694911454302212155294776306760347205580663143850315352959130359470056176055424994658444165131015193925875723307002392336127299861007787339441233434499537310806070898799765728450083914559571359652072387384454730223126126150124957928024607847100735267628827903646838500713557336462047382068980177685068770741787259237828301766035475947061574697702231249786388688454102577419977860616149746006873737993090782563292929788381237817939619443459449090576274757452364017571103752353252568242786131475044572605648432949083536690452602309866902565094769175090404302028092203599836065330038443983143289265392880455912159163864511967185441558557628211248680863712712728598388300092620462804155531042539926749134853080086030947938489527450824444897626901303769891241578342730852732888463842487538529150930183173287037833093048091163322040815162797193901901483785222685099914218128835901087109956707218918151273034960556761005114510944724992258875654748286202075766375781834495915156613388055991074454729991211570467346687243005028172774057531202012061762081224431697595213318581217679666276599917109831525232141538938309886132928865282377089563397032066784977506506629336847309754036866242001181135593314316830457961874617478251865709934874472232518681366198163143552849587490781544591649702053518224557694464363588911245667076174304243056371751527101087326104048867518399367640449641463776206076065455328227044306288785404858562454227311833390095293133379854600040657531954963636465927442560096875920754505208323577696545198661127809133217899209307155881407079086553972418063192374881836378625442731358444021584122270856871357908287967362279411554924402921875236216748850633801736827463899377593427638985889668964141924467018327667902555312108155680725833347733953528214848491169370212380266528452563963058454470497653736828598295846348836093314352541404687044231242226005505063582480582891381430050516026719240775902795009722954702398347517802770862180337944389655929721050555278062851356106507854073377678847437284152165742597816205937301942514517711737097286221246861452141637461870736979986818269584720551618574904468299791037184386287931513729111962195355999347416281945430301837016044508712886057539652906676938254035186757836476398220652658706371306663734460665041403365853839815447288576601444535694711525449681257678734671428137291023848606464140037757688441594363478008175251873606263124676410692711680220610830772740759564916118546421319536433607448681095579945343917426068378830735809605315174288512138962532429004052548759630665191599659806105045475510963976711743720726599055646627871178028151429419653024753564709193094055343882312297035567931976017665606703090065384561847852411050017190296091622216088204872197751270795487393251890795210259557423631800953918549279266132896483602593453551541564783171727032084541183177867080250515178963490657563402026990103883903270896900871099107131071437845187334702168704843343503635820627120106945705524250573380673250188381373508056453982971931363987061298301208498119874637538990791559395332252800175198893833155995566299169625951945462067920068018058417705789603501079166372627646344761741221311236065025352141480713884016030966098093138965598069079739700679094944184809699045546288726777522831388790953534290189339565749653292738178213518141830980467833891436815287088029063602751922595017379785746051376169549477874473074182433105104632077559925480899872355138114033542441550379112932831525118517280434947525183197052265873933475183519041792607050879723054896980838630990610967051087490454952930570145976226841652833724220288020463176322868085768548211723278678116813389553041740272424609866182182552854825867073386483317135197851828669818163869579954757384100904468788444590101768556711647338532460079819716654056837827851582109449220853362467489534435471603872623777315969100361581495306828711865278879860589344560636594552976681063910568472789320159872304302351565404767782809484646383176815774629587278984429892157959236685969423723081076693815066007328019896696742721647587999780126733201062444307559558061042659333456273361059140992556351001571327829172787329025636974235612505849407144718551977129718570928257441756291469452419186163117063819409357691105761566485696776747453415403134514989964410834474682025724110032988433266909303163928338306327176609129988894327451253320795183693690342515439079210274501850669956294716227246198164175226590542602466892447040524456116609220793521076024133132479839178861247719488063687228371569089680082245117592770309863628000953309332004652953568500252481502054446945153087695381589836252608980547719915757944031110641644896417331676433330665290427871270223468880647389017634610481281406307652108042202822190274517158797533762660192740281012655327938831526383994123470683455237898002840360268146060729535134862423260013396203805472937090592254480085588928295011161912154923173531034272571066074175117672052524035834467411254148990705657568797180199598161971702693540094597927186409561020538482256462228850356369008240581034149314048000988774956414094206478719721256640276821742204006632920002185935217038956460328977825778161395359728645014358880192956271883239898673510949644923130282353809840933687729342999902385616043308064167582939207355742198940704031613230341728393180778362302210520606899032163354156841525035645294282737213129523125545878163171229044692176813640636258966906191258741970184049067126865549987405045500155614985934003552087029999462935955364555332778123480952067391167915508012173914381241099001164010238045509649117312023617965737521271430506864914028467741098260427586174095162811069431790548059181436128026204733905941065381882741640699593791611415480720135283796748307251312019715701130594965274729474265941478133563363810091452825699820346465354095068234728549371526335983222021313561972861641714461657212213047002109621435852670379103266906698085675126480298698224886283804726079757147214723097957849051913150173984076820380888245283193796759639680612902165605994852960876309324951196549069620620433515588121943443054618117815521619929369749685235858656427865829977934465791289800400170059813402846721494700952577221567715094666999984568076485309587712470539172533509428566378438151895993331856514450629402114995739020618481189070894053113518690647530226552653893078914626283767361608809800719940455517813118160807971447163812445139863485404891974343791929289101068708488452444024920962283160555048926280058837278577281698486394172373410363011541313646569916067223394495456832120292749044537313693807658096612360183409469484934609483804509639297131517906611933998899287870651480035001059098768678331014406707896455108332865014458863127694378037889657807775001015213188341848641575914370791772480469197412478560318504270969226827267697649882559817893300267094474232420670329837742089575292733089640645293070771154092635884280735307384270162419277656562507938920691994763848165911265634918071519918665577690369946894738685491899884293332049967862105433469142944804954750817375230646377336895631844958098543782888294049163735349523440383361322334477850891198485416593762331300731362530332329859152822031261009810137671432459008765006339288081790289645338263007249224384360953902340393423814999059380743496739551337079434611207580258351279584679174253066087475075755863746931352853208593950927631503811092460280187022643113346103251763479015304266074829035301438845883726751626319574048945883009001121867434846182552052109574629203637806168500218202320469022909976644069833429922560516115172075705509007748409644691773949089247239748826288838296669123116584505506970686460050063431004812839045933039207726604799795950336529514871719370541560215331486997509150662047109690447203154258503325264841415320651758661403728443361008427695325132089321337458322169264608084251810770743219344379078545109623595023678713271036273111677293122679386732071171418021288924453901102048816456003930733934760596380867125240992659028409365243082627188438954543703061749715871981900641763000853653608418278210051535948772550402999270204478590461347691269664603725493373900116179539506763061109297959981869567129795475792977320252843549114316905369179446828140926334599517889507485377818990257809890010260606266145517746891299187835117985264186891365435731166296423941361989425994722203178595017925997973318849016621780092938671531964352079524486265218698043242535983857263031826400856545561882753518781203508541761110517836639385680958225324460526028068286040033411549319232917517346731079187972757433993092436536047961384196121986801745853478321173843449208855730283708867461790384240245911054428826475705155618808227039424910420941519336286526409066795023208214431576564851412589308735400999327791075594344556413662751494364968620609424786558462005782006704034538818823403589774416152647137349630061435951647295565084908466388959788227577980758112818715425376190385507973868512678054338122890222472765465427830218827021214685695850507967185036981147352196660524941176401884689984182209174083284188331711345291674479532746257232677700884439635540499994498491985140090115468234320001204262452424799249864173470592973323469498905640128317221457520422342943407224584004906906742784096626190555236862414581754634391449294418173723005686370143057337727980122641070026490165424043544728275314823190648833314491918413861617025899737125770947619472040105064362420898059052300904804012917616111124845288167461964005772493258526676176445069399271229850419825339968212111832625429813192378946661334166964128141261595270412408114530213875147807349348655897831293211171609823672669819704042945080201204875775911871937730309800858748447929812831726688743889530129910888694203189713064654629020013020680550690784268310465743334550449291209621726358924861634538932108647248431291131569593934479019469461697723428769966598101491971512258414945394848767457419309267188125984476189953537963312031981529179058945364119227622844599259554562887351972062450311192857360496431253600756492511344809639899676934415234778924134665849203896156701929563950219854842837653228488269482894259816414030590135766133741241895781684865437449019895968608437279380945430843220744125224312492938334427837848314981271329506017999174547245295918513232034801411571938352201542102909913366347153200323314423725148013542983700111621652287936259266343974801258293993195370674478700237274289296065367715579348890402125415324533876047661058787249409094381975987418448741288844010921922814715503732450451341777591243892200724214137175012021544734246704309002893930036947918417531514556625837560333628541624445054049245172045253745155859529709129996234084776531813528063202771319521053735027076288166098963802250845370435539973854791698771717579244848651722848386640439868923621779292622415580241803289196623707979341590766462265397038691170998234824099077285008641396950041791150134433982862260970889158962659460186645678279884240946997360388369797592928304413924234039746247240022424987957729585056506282727494299389810845176869302447061553907217539859063358972679209827188629526028563623557933779974160631654700416193277192243735202196900590908809059541973427550170197829976702129196090556809000404220773309357421929492140947652645383196386030230594481470526837672865140580198607501168750151630591202494509886708586114456500460930029378767474384318993821913877083560304035089432056965217947960866554457576920206531542917594774217688490045255095506219954493433707215775254159477900572768003367326338671354613933666529226606852559979353538926502854228759039877963466214020528743372714715223366442664590164824240911557812246360826385782564789289950372557380000216401732230974409161771701659822545974738623350181532869717276745679945768500544256185548138597430944068250206309092719892457298864092642620634127728420177070957222645262034643200231313294808649718953555713141055636288095859752369473001880817236001040152012521458802499426599431994515975670098124331874819585990416270139541247267558532694052906044014241714079940869884747787114747762796146190401833473841301060717792028223638031992434259055521250731436818489888783963390898716047689001319544423823431647325658096439068086571658146527291529524985205511577985678692283610314016847908926598202708574002087399698590169523295755212214602377595113564018931732507891456835880739487927382678111163342352772650502998461876270619572580729516995322639840260545498242152579949308299604797886205663948551278527147929128966850742193695209824951990267263123355068532998629242885334062632910462803341988648066538655255894261493395665646035028788389305656458917438757529754108376747431603110801816671584670836901030035963246849727318377122051197701344790230772829338754834126959207599631690511645176558595111616266747896755853719339266783560135544208193686671360936015826000877820038174003977576053067756956660467207160323722584896209287668998821016444495653203257316013196088437264905380571951565199204177449617551401873611949679303070038164079822530841150483858693241264975749993214161171807227166161225186232933556801466475802078916137236794234143006776431750722364549785110276354294915160543353442257351220328565072489651677964378053950076516787855131948812678148519691468688118593011582700923760241965239594740373358465431186446568727225467748808713779651630566226053436143252971433022329000835518177794843586250341569591089536096309881585772569723834210809082537833898045445051666815339355104797740114438739478616659433122189691198301547136594500760637616346266888174857723292699462509828170500952712908319675281559422046094860841893264405489912456164926972778202504264842089261916069449036313043076875418732939284627570404604813000923080246847681427963359683226992857163630041860506706909648228413594001995573836977336796927635907136842190836862244678241878612858806707055926873712328088506166741827309293846962122838227382074487273773565774690116041638793008489273526871828079910853641616818051234432214603212623595305979690900148222993354769187805377727258516933857301444154674676910116148319145073062663471128506904982831117431187713351321583166523100741364283760780757375809365501037435004602183216132039371200063353085606137811501700354339908724217319768828698690278916339552070642911326474964200626208895965413918038743633439181467300536001722262100407912816176472088511539902551006098908130530815173501067559858129174633390678434264601730300268964425308568948804285838679625555732056205213675917272232102518037792945787218535819683322688687345545423045922619715549766912985325820053186904980029985173439292208885692058026364801315534061205914649138566664344209223903486407562423165556503356556793841553835866463642255069705425182159050671923183216956940107027098862220102889456386729017715871352064192759283250565646262940303772434973765707890341123136398251432022547626616111938346688981270968287437518929845015503969477458092770923105134429262467161068958970033924202187952533418605919884956713582391923663696628114760550301766118815152524487545705162822848439869770127940190389874407654600592126388620461102796661492694700146741171192400754959761982937946935256196586649371547064624403898444050497726603909356745279726635081975580719577968109443421676728607186235500591241384705934124779005175698692203941620956123127737877507035261697462761990030061235381380459777273612231629041198396234058506096701982592900482199879852699872173757513123839334935930447790273451921243871760350347016553127158010465627937417012969754590821198780384506597402529729199952308961814057263548282215742224112756327423391276710009661510355406201398961978116178773567953313892488605095292350429979209626507803244211866948586553069201787209968088994256054652400382755945327528096478601612319268348720688501437842382105278994285833763878328874664218983525553902801615864035047655708678285980740984783743740581607096663419586542584809233584845982812184559349537415705059059029817870151696319249511587949694801110095356868587246318652173844158944033107211140270615375563353972729835767660413655269141598667314911494795269660444402152610117574830870235086814170077436424620861086699067454190265179174122583356127775895114698628135018287325495359192760549540707434075442672241361640806977926142967558957560669783721231905590586568055237463161849673781135257732724841998528058164392053455749651673298855886060569275142627559482131444398760507782860642399520490904926590281499993411681673744835429268727240163163389460099627721050651545378678681566536591628557095400879647770245246429859301157999814059111133456768601076070362523368268788595254088307341121476325897032591461143855479565369486592829444270915575667114284060092305604916948185156428483055043991042776229450165615775546227705857335315782255879081855439842817057797788918363373454919132165701448222696807274565445391535820824624316602916481724701693527152178664988171342409203661499167866244436398535550102101947922007875312478101210388631350237102565755236362604864472500374638543115528533201737386183260282184345794307816360603869686393780517713527946936585004698413399657732864367771152672180509328966166707988824342934517761169609570776603314255832044347271792923438755084955636727298096437568003475036938620783462748321365790002868256289649339886406319088750764060288727691509276897002739413799666149646472415634654523885513540597538486621218772745209358466364317537987815598909539879401917684897606052214301662693389335624232014845479836849386885588358337929695025011972448373677725074011212606573095883686174899628211796858987709828742883860355724983107719274860991327184873563806932464696132960363391081198959249156670965164041741462324187820031173671585857989777817168484541128553921514500831699277790436102804075883558046405506558516327433350745696322126131200396580679950981278618874598174782409206362605995283553858018423436640175623584887699960189328684484029904795100461993446765544720617113122493939140482216631437873514337882801326514316636003612053786324664904969685774801215111769893401153324402557110979697945969413418896222619894781632014675117646580175742411821622783224188315080792270079002176932663774869808498686518581742926863379462298165347523020732603519710704964675869879334330028317927723596790039254188126656150267093651471996435000282063758136141749780092137714968568248303551836975749308095032121074466208327151832382051467498158996332651488979233603807481185395942927094953946068687881311128179312870517509500283449109522946822402560628403230312575797387090132924080224832506730317969005635123521692568097993436160372234046709577025058860184431465580076030959586141540251115991086389066286321596557974315762381109416348019579113265435837427531279648251399245051336802935650559510442913414546968722490368965052911068633435754909435505136012674335578408287726650601747942155687863505285721316794583890216358452137587127716415222491373431563739813466205628994556890548918123194163820767243410843575153481145101022287161549764768008818721760597131485768040662666193533314019416614155745494018011494679744109305509877055977990996270944474791875730324617857877115060998252453070088129012898649035537677097921742425064787252874087025557368061435353350524053957348700004617924547997130080912088146483135713241099038757463909782161288390760584367928690187768115102788725517928625681391390170770801793126805099556580686484907145085902352814867912322524074929461042947675025010780624834028634966212324724515230129167440659994217845684709343347967934058200005765805255299270080055501322796036043399407269760424947500675326182216180286658261188205713658275176095630555824474631537949618939194157163939663421276919874626978257352922718973956445182093492021910174341890608642369158372172824593522758620214025769092318986912452352279921656449594657895353849692075500022214961427541364422953931123763708101575778903310076790150731812550079260839948751625060898823887312342271400583793261952587108306028171118678074687050474614119241114333968670740906618100060160994232388668838429699420712725381299781490885620331017432429877589073675349469343298536366010807849832725736713379697954372627172019779390303200063271050805456169528623295814114904029987896180838526380785757172638740756787783666416373395334879486142871085015584414783978798806683185835516592157731182885232560150046279705749433347585895181467925518045451723100897091827441351352205662584831904330516922707418724075646407022977873619187341011920489576150505070182103478039371325650597856669655007905539430446832867084174436879144028562023615124932443025965582705302432804413940175755918750220308945976945791613399072067163584539719493079232846597996374628923587937970432441453494394407592712647819142281064655803187872514351313171327996706861559905229847442006370227841766577833574780415085082525854385892297704439172693979009129007442821330755980345594649609840545866848527120578676207369496463030445173149193045144415574061077458959670160297622910495085655528695165423394965733065759659901668968556112764946633404331169098336471796640810696555835439942034828485021821226211840360075139539696669248322278154692878940242428900419108617358566805548353271873841685195305501278624112156955611198076235172173283387229297666216561085422808481374523693033477366603595510058844630297883047275931005091604140697232894379991060535594205927113496965951208876772377457753136022724965349710438002618762628730137319483323646107485820419485448313595035854486495466579206414522631891706476081288919412837797584961703325781617150252026267811147213374547351560986161126433586507224050446074101008111910901414460442038166107072419572297118053042312072796230090381812311097905737633733941778125292758299545717768724045653203833711669369028419190325532078650223280232087015057478113805443668269143523495728736714282345577965776796223751668951310409424418089487683669043176001257570167668397489389112513208458924660507824792006059537260878837122732403388221347030231159886136335308790284733198662582219913223778215260003650988013037440761185627837065574374351366143356698622727754062417902439822026525191827470827261643632875070060176151874730718197401118282537737950670595263661543156484484650748649827956284618980744870805885901177745234492367897854884521324579123689091494749553340718552954099594292871774727468387686808589955838776273340906305460696851338441387078833758938385892860978652881768148314700421464775557013663131737467829010760724213685168386737199164364577883346290575548192159298373371753233391548217226360759516209993175776773888431391288497295566124982940406901919834079638070298377168760836510782904548872282778690017685818408737288405500863397074024393665433308699613566553898160127347966874678136176981302104081980945480070940959701108892162693022807153719068121119135880926029786597350844408732416531105235781939740492569908013094586664540820809319936832179270211132175061773288132368789640280238871209141403723206732798145206011201318906126539620108184118434057429592976608863639386482341163940198249977114352480918848101185625813181270237629743835854636449043815374488716350072508871363474775680950176098853210595343260723458328240225952508293810424455340300638336760043043084253779637510081953185329532857586156246243505751829586134450112712474914971220790242132867705643846140734214611741841052673108922987180926737260340673002352843196264614494585996159188136706365487663421395347105536284542989292019213149537375464338545341704821977433861569219482999248192497586724591532490347331864491349819412353153764622231174264177269057324664117061628768598420192845926768494410952604198369918586663034547964450972639998777514265078445524683711778845213194826949469910086306142506256706590122353560512795600746323198132176985932183996616086438674005156050661972985148648835384985253360585354891569512011043149787608925138138559056972306420509525823915251361866742964996801092136480389125217252475428842907109528710429088216636682145940057252545150633364005662764964372199865374504711737855646275500795502124538105717811221696221599417520764719953874152496052766416613450362629513248016537077643402989470613813468498409057693440638450845188459621646008835518230048548628465481333858749218830578977046503064865258780048712120021949108490045309397344570849881332709698737067567538719968304368502394740084600840228776386948197751212535134787925366142886188362476670943555404264910729473950197581365806047557752320197913726294796328084105489044783991169380115341655172237527066030892381440793761452623335518518042582443583573098732822998996485235088698193277515326832736002604748368650675616226064197234887742083330519424797291722758009010965994132342547318640416543358385062852350911753642204349699615383269461314399894320901027133767874989232530110163436176158104765663520349647501986720923368855587829308630020015598693530630766660304666456788383693736076589074084315242688826572419209969276253378990562678958871956848963740250318289504270231643575356902126224552963743484299558273528365585977340824913417321371928007321101313567764338642842351225296048443970703036057168056774358561897654010812382899746602934467891175917825726211536195856687775418741246938512697112607226750978235489333245597239335254949030414394648038994686772637211064776945513954560257978101287901914019934796121870294895470162051663482821306195806178986557877316669405556989197172583478702019476828106709438087820248413258216850948336200706015108643746621873246439589067102496841873911424638148140633771554606306378570299452243393154015151619970791214148346490156868930480245824620242163100472292677875688347328769991945933238487754633288774858017745818651993983802785835557002008728638080156328003336793006287767764920989370437316911469414824653417147989169393420745346603575272790179469763384717326166671847650431901630097652148318723761793923874402373517130506797989752264654334510119342688839559698334805640688310592603825639921376066877442402989207325167416169028619221936335787258039501764654226152393955192307794209392633282570989840822326652299875514278912403009368922282347595896531532714386342469004658733552659240971421353071937239971360808946926387467721176128603948546734640670638707071116919486235645523169561127726792334884834955898979469367333154999173055924975588686054422762350821048322318692971308361122542716975650894067589938156586484158766430142843992841801189561342335544451589465466766460656430500543615811127118067197549296171084580642151397930889413368775174306156068269600173763914750105964154067061996102026070790026380008999478118107868003495381315060702954591944272748810907176352135802635019736219485320023555501314462280825705897176291682746347994483303923671347746549458116001292522148456245471390662790097542478494991729143777930052006816192959479866113395923293753678628034833022069944215717358916783172604981867431955463979015519180239507737596306510005349524125830565731060710260160078087090515305944457558044821465688775126254413055118926252709240249367022365402737982624319944993488923155293405373587856208093382974082496581029251962270562714131387541166779031929666725614289842988929377733772870420191808560147158371858525958632318428796187550559771967599271143580843340958168509116336297750662926915030254477723357731336216177309366313768237640024794884811800846140854844794636950922198561818390111316365295919794855491103997358014449450316807850977285201219086332162836451948316932534454195837760536881126688319127728269326473404950965197742763480013224078056318261336272727099542758266031274600859323806915746918569543864173767612523829269455549980462914412798786314161687094651627122735241339477356706878225492159321015591096876364867571393258372084257177604710512344280122247496757335407338460175446952300511252103345162278387045255704444974449906033999292201745272996978659339193322686624674929895254699615310197519461249724696811966422200601055729526542893331259840009789464853597564665477191231809785521379272871177749280979103211366081091189594735405953371410831005984647021979935743307955675481231610951247540001830956685957508642175210819800564955829962665659509967227080412944300357015515926129681196109567283330091391890840198513133249727927384046695546925462129607900353354320315490619828167994513845117568868316085015164381838806791097937967391752954450011820655911994034352354833889170346497922026953089230521608805648421007357997640262641660222931608988417442391732368554173943762147272482802789951316041220768851402509077613510432349186365277429262797202120282687885681141319423008116515892686728758087474129898119778510299346564743566625265337666971966872776380336939748675385050577564501065626181609180225529191143317235879983734322685648191141462640358601956977950101538493647220739390138529560944600477577824034251139312368617698234956055607283035228936547286671888733081002234968598391658403296245418813436143135729466047564838159858812902679529108417667048522551664042457858828001533538200389844373611393226643443825331447497732324772196064810272843538632354151099632535030627671698370994074586055111329483447892743114346766886520336839280192826353186412222388210838766639549781050099859058851432593554415060878564757395377956136324086950695631730332840087341796459905927323582613366115437605994498869646785578550697577010233377922113079547185034159671400628716670599944373209392276966051865039292688589073093667953935104341433479261560843809000319183066127929103966806317921198635029690506692544204373566832167086229064625619277554805668936784156387439600497343546201125009259930437386013441125365564136327051271357163713498062278255343438260357886348926126752560188038310128827743693310411167528883912491378066892603938496497717244800709244727603102779792413554000117413305853821257262738230526516484788202723109855099976780297256710090776002849943602117708368011863131388432298067306970508817602802226566979685867152681745262168447048020373640156456953818290900224052333871463698184055493499369003209504823507752806158872463880469688352390461308301222327813952532245121029923895534336785912057108609650215703115218699980683193087199324151995634597350590997738002053204258920399968897964981128383975919207068095454306765146804621890753041284575231302056858643213948328619033715646499185654140045325238767700217533784139328145318663009442639902900449094747021970165824578328634920842641679537863087372367525278843612337879942778358671331463174852581081731541370942356089044952254166873950049500125544624345067565812450723048761902728576228880815122990705855279883603887094662515487806711234500178317922577698105953599683906619611261727601256236151199276659422368823782661637343206915185531444257596518032207640091898952789680844727259812989214375480093464399131878755924355200635489725710678711501204804287473572100159601400914534947274412771835083503838970286189733779658367979972288179681214535492980052251178103212224792632603924598047608216917325093116535314060668031163660233624712708407304392202266341030715432698362062493173888665086691049584648476736438248070894348072503599729177220853171479951382582540187677237884306022271302032393584128830306958536801985382832884628388935767183369242599719907734018632358594574044658397624773282324010950669417420653524960343449754130991660318473006643217803614407332911776798476111844579918353915473494661145642835227364199438771782223626281177734227708085798849563408829262823909348753278947700088802970071699248282091278628867301225373671397422139990020086868793268595591556253923448028000761522774305104574187652498187626076576904207108582415043702442131197911672229229078171646331264144638063676567216611137970770115303748586812494573053641268201540463005506981896346568000053644183551082473734808796874847508594226797614354228836162654635525378721107641634216963035222140386921977995527099720079249155771806968811417472537730982997549808189581783443960960437492586451026448019342426277721531503925916059775126161900156758001022430944563042841569520566444071022420069493233435721304304056931094518392648767102220216944737787756385017182579730494342805138790057924584259552743283964155069110973651462536535708370738587904986384541272669922435306296756263406518649554852049820057619362426528590073120768846976811204768258087852360917325179070398169869256164970147534159603037962573796748235932574318563841538771361693189521569803604379991689375768443512480392385418077296733553660232761806683032021936457188214723463744912600108961967730212455883548462608925668403015471222871610491480168646429317791044360225765208178221681674651389586781062516114838791810748716358796736382554577222916881733872659416136970166646607726039527018641492597515799772390889911915752919707831962993755132277230116787249413275255595359002580665203999967566231704324171842314990992042660643396722139133561476882084276736443698355243927734560561366423966224255329017832355776324459268522165871100055372738424350851407874133135345141485782124595334474979818119595953891584768970251154183128650731405543898737438029675499286200100802331891935576033808426262855473894258319871333335753039135903138415506349820079166765087728438608926548025395328962830725408898658018303593757743080687565789788457050948978731779858957055390370954191321817646376258233217081703691582774165325172541850621757057606615277637639813284212016726438685368104482650122167123904464319626645076150504577997627269748271536223311156967231347016363064881938012406087703568748331361020706808525925381969931656584952103758200002001926436861930677177644850689560474952000489441761562870472388579155946436687478265310147080998198782998335598538524048065174098792393205938505827093883481738108199821644024724192117573714706273285392434832564540072824360421242272320932733526428902768296046535302682332656257886995310021718908215535484888621156791763175062817080308531845831039755881567213190716103297153051111806103666191986569666398406305424247205896355500067660838215897617406201204951935505522931101552470669440765111002064126794024179986753737239277409700746765817661516245345430221380674555205862091247240172268154110200208407867656720511766902203526611612037745899832042423622626835192121517652095604160734610161123891618443483214706935958990205618854331191059031978591778789901411785964036950316558918962569820961816859763455990732411747920282208560473570578363747701173859335815117950882147743237127676210394162460215329136353800124439579883124634790933322694610878983753855515074334874754242339573714095082413439207771972383584822576328420878861910115284472535216826330125789775238125574756522615354287482563892806877139078950268279479689369504646593138533377447918722271903591476464574636840113581261522704185888705110084322740515839349763593068876035058925554296813703345623775031742733237690589427434399116874708695747763782772506127541092939925928172285577747037764630883314379595065940754536707854355908390806861764536959517476393065816060174917205597975192131189015013119728407096353924298949161330970487935158352404370135665657768258520589079119723340889256635843912048846438436020962124820116380271384862048790695776603337530043813308809494762709363828936649353746855313941976147719602826007282213437486234881233335436604473226671050285077588982637036166738119877870534209452108241182161837160482739313464698584354975457274517688631631874988775378387318401959487849139480289474448506552896749371509667550827461379967951604827753541552854898330239727727060755695657481533308574118864042122185554495127252159607999278639443351489610246135898962410784210902109315429342455517107944882209041178688314197128603207890617023133315873522080404784272277126947290886666241161092065164509652024265858584578432682831871938446268606707084494056148064974412398402651459366247422252611028731214106155730252580042899639790004109215968593418308407430582854100996004190598608710202185616482235414350308454846052777339478216590952129232680154702724391921492807085619307731134221281106162209282935898463544419359830615130590745529399045701076613963625671397458312385567152723480529148454457529618371388088321785259926713937572417137773889067190532852869480037831277066230347732661362339208803038649409821020896110505253318842580950861626161295723415518973690542003609880704736489582972198230532980328050270387415013337030611650735687079371643759787843312198060290838883256196767921371755483515213122064314192418412156402859839962864595654192761547266832302306909779125962894102428943572985746448658699442334499688629130531749250257915178910706487209121937022461779596815994569464830598209389071981101951465075276805892347290489499740942341863255944604548219606222377336782856063117218834738751366241567369066877957345301903132474286171518345416488762679499438285812483817422362909820500140400800884600923880004957987429668949532254665837754763814173466100995351989683286003374979283757764422319986570723244735902880141280595757760789973036801197732596553342526964749192100101462936609258232034983911057908990831836681109649993169799221070256991830338637479525652149149572819326341417322101461877921631780841649484574041833503482567363918199445463269470338385848155698459632483973497553047529852072984011721894856616054976921800214155078552465200111436239392793465421907130728468857600520186528383594129216568451101399858432342101034918574922359936000524535126855112312037413315005199648176417724686799575598274184136854853629797774251829900829836414236790793572498922705707341032144217119103756097854329121639074678825695357124794321115670227324062318043791037577571844653165656440682644661224860074771590969434562196096258767806742596761689722064908261731949286377998604675825915515932746703853455588376516086081661154619412896593241196394910552321577641223679046260580930308407991690825014655007463542888828277379472892156887099332514740606029269194763785504962732360707049751371336711480661476999713460757092458777882699111124718633705495300518174267726589465598007777441142499780886935654919297680596032564625707538970082737701832518151547388744005625965260317613383070149852535609999383169316848917118386021557504486259288081749986470798729191298582619421025707119422926397957274170739709621722098242853268005534396313410639617630330818460887156881053918884022440052138179624712945346078917057815599976893250725283471561306612630194144759933242695355056640349083315466037667249201806781420319095010389563846973165866085071767430620306908053380467071796243766153512452951635492343782609655466730381008954889034502693633124138542213607481447685425639533538642283583085319254762801019390723783164464345768693374700049928700333566138012893075793442030020673579473762857966383564294142070263176150048219538868036721571682351987729709018778516981149749916169080256835342001227103885560661167685217604097218276276391301233635600266710149889345083361473796649358786381870205457525144008310724898843119802762944050019959754887978074101115497227810017847323095052633758996822363730861450853424854460203229034696498337808877044114395524700850172053416917577254564644947357740630759380248127809237806665377001105134276928021515006978138200176180734155983237807725148539102358290498998662632815421872609426489763759877055089511289301454972663258581942276333353743371699481805363627940477319971463671257660191766249852406636366863111689216924045615215609706567600180404728384445952969843933550213214237002965130554717134551627500411852934932831657386726069229414128589227959822564150503731537253650511009409151343818809173807379642725062767890302639773427870859464827713953476797029369780031494443088246099029259172664770117294421709774609546989228329769455935096238022964890279172661896978217163192812296820613877187010772049217355424962941729478875999846107005531897144593784777447113191318618947638469017253852371547535089751768191517852336306939081598458664470599581952502003024715645423468103545287600974104019439389456364233934400302655611598035372188742466757787662614131143901616468712171237864878936642720948468071922236463592636737359380841821091349180481688179957538636027970613773998293701366477183744288347967326681413170988867318415188864695745307036199227696339066321229779941284545851536650904995550199411400423126233027326160017989461920602606861042358218630575260771081592821777625653768066468873174347054696791113328962675292768236821382617413663810491449857090150908386382646258719705197364423523018508577821849860029489224194854621446362714972884240159009958680811447823577390723018025773788647557499481963562950048233051254212787114672045883721622210950260724755137310015530965476902625026553970353140922146950220855711031566372864108984149304751639738291580941123628697780617281123314900627998928929986510980074512596812073425224212645136519063295489679866592684777226395080154297802702931142984751518878861314827325576485413475707886006777894696128967536002979374511127717223970562642949579505311326387729989908613268689169773752920104772627422887515248526335551860172836845229755932942485987318539218128015791682705828883862582363478655476209937347484358257160832051081142206895131059304692619916394589611922714387350845985776851226495931190626254496916206888893449142340912122880931231464357720295441542020797903577578901234047968560930313734640660112812800266555339598419139589154629422336646965200042948515563956236506470686287618097585431548316427141663794502800055978053696091993930981160451883572538246539171907517256353064542666372407295364645156600945479348946837859343862928216518308055137965459026226616788601605887083119466866196025699638586812853158529257705224488754167587815134949729844151142878714778097080681899028897486852096871175890023594261069572115397601507968661252416875648534218221712601878269602525063293654620018720877619624357984963944147703607958669070287992751307891442468558354266447493347603840731366118594603933489402979029114503208386139367721603229723515018835635238431177303166472635283920279542818360280599538415800313146857024164597186666858193322091619699753684404557774527306209477933411457109341771831682897028352886415562161800996080937226932642516375186855791875566652941653890034172019832520746748594603446752993701465612724601647388571388381539142486064435024581042929166706778506925714024431344985627777666015611975018546437529154310036698718462534273690547550172769550678646197435674839077815515491914122975770921637695000424634169005318232973054750213885573406174131523896480048276453344975144510827237699879941835396765931117244985628102981617266379061249512228005177657056878755246983117927251203330261161532051903150398911890544293900831803146385245865921037173209885246323650288816495613405110741015209672653433038917621277678742370515999073430682337694185353625667702387811436523181218056853845858457175675442598845409624550245485899413056678444962030253637942537982857399406564652255254087308105923333063758794641781103606477971664318505185077027904658185672249750327382266068030515519245118346139918127228157810344524162675549746851756075794039588146792844187836094913556807646128201208223314451085514959409019757880309178462257163264499879686069420630703927733167656153252737674548502567315453111393896669773292451950544089851063331991950189617239901297539125428695981563078996043097379892945168681091268236663229591455837458990824901596804296048528723180139141862396366325041845172481903550123842211914114512657060035311156625402066085399715841877973051792482029688236566630965584807243111581192657036400974568273987013448861882841680006505914025354791806248371692963879082860188425770062473217752484848706377749633575320346012752318172378170101323137025355795846398353127055150049893873483136903187511949408576864114476938087069614784903679162838703763430476523927100485954271305922426524523341620518247970044889084179463167202126022639803160382257697650637841180108239249405356324901202011821599349951664087024051078036377442759864302374089023869078602506401611648233955909633860275558565709168284133848339889319631584510302232217567498496450637262773139990222005773510923980449606793202207871742740828741714180515691764809205056591301421910409825778264807511464495655995154225624557226159792031943300937137547212056044765769986301563548897340777520679472690995608457304571188956466525859520318318322485291701624741179466712768807449523155916240440160872819210808797191163014952883924245204087827641112183640150750770437920932204793890728976610698876960435383125935805981415189286252570446312245222792190484530719359605322216678988571899931901160356193098878971053434779364526510560658452199114845036519271256905588044491579517872085040084568146425836714925381846197473341565592665091967842391351010272684357886689398494504397765908713676222677204017412719114537644335592330405010358704593134460406278105768514957360355964601858212390710065673424357549618740703510482160632456740766654694478147523074571471967884579146920283667144995021071024870301996357277768535231949097880000782348222656864555773188061759154182339411446223146910048845790745894592003546018862632423596503679059749920153048872600649009289413960114432272539326919472263521682310191450707164455012819965670388643410813225152632432325711056446039382396489740096710324034682659700986116658030304993093871997117861100401895337948181909467110441542133528727971461607233699707299746408209584937224358507518226549962881524461609882851975300180400390843204431219985828607217657218123591319807523319164568236120429645085894572958442730817197751979446244271035950508204539900025426372182018465188040683348358573530959203930133888000565658964367849343692158661519651512137538051164745980414891362407154565943685578917140455671928057975567209647044589572013067072186727015233832394013774046922330168874205616412110526883204513178244904929720495842027328649896142281372135154952538824838698808842383428988118183977517437022815815342303732972566548500870399136368196406123279190368222542881902058490119120826057744013961021206762415797920596078499022733038455234509021566780030056499172960517079795026918032505403569641630779642883681434818472904176122940946484143220611336130167103745027087688868694283541318298516596054669252416078595194674232688199374373247363651304298738779373150477580485887860458264910278676344770934568710121284275165602856265338324279698452034175551949996325346074732063510902483125193764607319169157418555469313132185696213646196567411775995299367899313883362275567786967165072215594658245498588258148202523939421428758504953948255131870698185813349241169522843559173146225894180634171585196478446501157710935722139671375334526587140349829123934298839183362106015411771963396061586726885362368440833884449330666204476569143600428433462676737970876930678607022341500984951647318606252556146475643489924225512450476528283616924656719283954525332120468658643534043542227749205987293903418505917511641805134363731479928303612250981655041670197813140631881413148265033283013393607233123170477098890027530921927646463750552982521216366491087037783984399637048365870643193738092995311370061595256842314221463703340747869653188274696024173515632926220553612650569607931858952083193455309747037996198806862233315970303380037153113663240939392472864436459489828405601040133981855187912813027064967643452956689670915892596742886263982675476416363350943584336840142368138993831944025910430625040002174245320800012788186580296297839367997849859623866970501155590407242118281523621482570135934331463416264032968989859966967474546537070397151003366678051070326614415393067997592569812463682868814509188441854325110240765430199283412152025469267084550144590368149948933198558272973860028106875439662738165172230139752382019294978261792445493971454119477054341140963206181697147520477872481396742558126375559885196056434785262503313131252432646489500301531036800687803980889421989191333410096824421446953741744046224104714776389470435396191521139585983742161484759406969077182178699437216084524688927814929486665458927603974188642052865240742737488270991897181349573043937654652485489975366554205261856642296551978259279939037981658965704167495586280707738783904214461686961660385028748287818794564885149176101305104574416313935923450432862899979498401713820154469184876034786333676074994590277748910003812299988549168307015491150015119736420626314097794827609325045981452997164551213371525211169791337334152371729058801757853875520854931617864031872768024354699719007649338148789453177544521868868162682534704429919573622989698544712681949340484446258831937316647180719233462486249701765330911768299296646168219779998623245796610262734690695155604852685199403788898065041512895080616214797537135093297165678261169077456566813712127091724991984371004986634095672845989958778272685084458157964007942339217787080905182826742707167865476457568915989798318776500396794737232069101102193131766291100928643184925699304243443637718784169754861009168656486560713451298591843441383145681957162518528539601778484998325118769663225313045008591072942578227889493867892089531079197203315171505998193423286193156844338472254211460919182661988110755113617574537394168096117997398584461284232023853571299007653040007467346018106777594365939382420493959072282367308290727539576754231959107034666947636935539430858481984114088102298312548033167808045414222627293842307820261496315273622233260166601874964868492420608923764903037902827355304428349826179546194256813716376335675844241478163195432798442933880237025022288181992360375497411050640925237382783014338957547429464866648606956319330711562699112696119223434073978828691388322580655791736991530693648708489484215666846722132786624150075106534759795001054560035854852600092806436902291774128671149864288089130140258536606056647301782804359246788195066389155463479261624383344769853397903632234337865939354116912142957750676044525947117425315259553482430895658129636593222454454709280104368222011831484736266887254069403710971137850433663640686708678296820574905223233293671082033801936153381877635909337477841282039431720918049039572315617064547565906998213640248053994291967709944584944037799426877776080322244021029378427089268425929341822565050005866351153523323478573454957526585999050483991321745092856994702813146410142778448245079776222983313436935230749925698776713707899322494186217509338697585656390546826306645205092912045776549997182374326055038047138492237210840276351359052174072076723855690402661489577457275007283469303080378981167957289323139923797129104042721389318252808706326696725884640523773296278276002576688569291587222469478237173447789261620665050109169131816614828895298480292092329159324580595750756137846371999441512059430320087061711437080856539872820882772326748460074735550996358281620950765726407476798678678349869427458056909223884102272624537649290915276451337231077651708926308147302441631933224103845968779674546611229458365832175150855504252854350082042289114090088540521131720611930683672079609785558423740223110847531056074900374442942484277829757095486661608756146531038335023956650009938852414340338629242485549153991007952514215954839303863850318787150846450879206643621611477028501153574107811204520294892861989488475181514384495400177383457133740756860893516637296074955925192629407081133567777325242901280773258454981202373255499727219092481175554745215708502314309612616387710553992781956306031723815955900338945800848214938470582273900540427364351092605490949280592986682316946972031449426163041491614023787083858978320430035527151535242598051723336469827681457306129001411300150293141089358984879430661510836312458368243780544817434512615042700766464345680369241961972226467965116895169765707998677988337636091101989578728585243861111129580274028620705906607899548442224230932901883142946848275553561093780588008869519748350036584860436895397130504683358489806013110150381473177647715490136562222043916568281407439842729966196512087344430752850747910906274124124667343101936735395516482584711673087335376602356642217924301208622533059809380009955099076910879649365184197705371797223063413770210746224228331965076057489343780689592549417017128432639138604908878686022351482891577423333324632370229887695807565511446458559868893958884824113638316576822079658370604591365329813042502668755163550660780954045388238387300672124564093295167667711508936545745840604478770924598185377575704702676915781036380509150648075575503789996074993108700470925797232531443420077527838311232040355421085170863851102415926545209509692566213324916897538159221550339647611602428500490311287437353581864878476316335634811287971337011216394209077525397095885933513111572423829169487911859332139336656993941540609586863437241406507726955635620921780177095666421813574728238298266265181275863182952474437886599230886467054991159172056265569443459553937013295251866790907938845848983146226323474584961276487694503433872916961307012669149952844276644751653256292823488941534301015716628047291386383202300874907509375952028897782412546334496053660276068627400737684308518448248037684285556619124540331561651196920672515302439850324365542971492728924623785846666611550656567764137901554217203295665247853290597576271720677815031286402680345893716755081039306141764999852966773554177873272755286975131614594857438781383469781403262385539591592986635847623988244666897680680194693849019104194205905647716965720965735242268513196068823328687348371025487683586160384786745178340609320619808061958618479282716803313812871083237653475204262663585926829202282250532149601084865078901497915349855973989995939524667300888134649153259516234420375696695888016947694784750783414691727890083250797026624316810152941103830793424645375082770016042946558472543003381330838942980007027918995341612548853389630688458776445295133664126966704313778236731783938711953030663113007951439147942790588170978702595939013119092815068365895004204458816459356392148107378477928725126898579348378922679439466600957340850301830603635905342200732654495277744246720883544122391434297835387827147921902539738914310793381011907678697758642900158911047233028995128961529412220615365307217513234557080538782870096458968725346531799997654186759153813476307427240670468748771309911228678231094360064149092475467811108064014489025899684428634474357338425074332384094370931649255311653734197251847078735136819074682634018692603689853419845330551506050706132853020402214003033254934090436460401851180885713412609634093122007270033940830570033215788959206833043991547739455820540852491899664257252460894721045698914856599796377819561289461118594333289066010597207120716617706991209051987603828599042532169128699033092311532583541907187971430805518285282495295167429366282718711184445735406385724794870513417597020650905521170585461874945698095601254685736515384794668827023895436571084219247105761225473473331137938544297278773771670582409769261869999789417348191499062080871780534598963363544276004108358503866300322497935555487289555817601656599471604059765192511127580357968518210469698881213099659387692125564858373725104937227693914227236249380239132431849882563449520259021802331599040740251154670719612016450840795618409321273070716271129114793388967754104392910030302259695753902759726704548234898718727084793188149519612191965909595841925669631868576332278013822811821724732943841517963153781095851201210381419744550290986940793557592154864491509418308287768230492488133948787875759950993618238506865620050653788921305230009794128710113425330191912098313900762033806834489746986125213709718115064469229635899298992942550342749840064355625444204395414695536154363607782209019125254925269268349085864773050509899446515646643809609907808815894018750307157259587142060528059760700755631887704040239029160855277752589204619662842241563199288461509633466956587694705440333113754855036361671762139817305976782364926472920614209690519454479038313238864680082632111431667369027606665981484347820087055766866428058063940794986383734799283800049220625791579738372012490993732680117903181022636500373054705670001960402159302013341540150334016213260514037222820051937798554366823444860267933656275343898183493943718640881210006131885423197544578021281116343544120948394214041376834154399813475536654025156674150289760956339913851683690126876337259266403925728842858622630788936191848026417183941167536465854065057551652205958808166371905347288462082488877796155560755275870341069396845969390679074298913163499631571658553170871790279631780623128414472974304124830999754687998893045491506309322161620563109134614376033010680296081291776399923140814036415629319837996120673719565723262716662651136470857694391491594729741376039989238725979021824429115731690955417991637682115097740884466146604626786041375403444492800540871121197853287593953578428246624226853371009953639662037815583475923705739162888738740262114910525085184239582625992200249768786426071626030052966687459193043642782036193375685755785088121172181534339690389865158210827024740638189231335174616030355406518976164689794854193603560104361683773473200563736163004181202330577034680402124423877533840371974644622639062165842741435462613962573404714983678703029315396430775317547721576562523769809466109281681828743419748110004356380283460952451516781451113738605945049652872815413018061339521038538589886502812448590490147939567707537997972388130236923563980261661285330954197498003898895773240571587865549837950156917499591044611963666681863960181906423811539549265841033953220803973491378244674048585358754618512599462922113552041013473254517125140777259244862171146281822397533415707803344116437632872245052915784881656506341245706920353404414124529821324476801809131135148446201464458467585168557766800892926894588773260420240860623841146751701959447067803289344678524073108533962189838535385245101259100447024149652746379273003953142026142866669418681408453655028403416731413207474471084393645856291240026732545221314934251658569485053289254124091852771870775479068523285353399649100357515084428267804874400121215946676372588609707896708773152559640245384527114101515130762636460825658166632986640410552626221642575812388065397440405067178215251032785947761903252826393846530727343956190887404490406414077779745567370487205268417701851808354081970683505155752853009768475560548047646452676950955977152222358192743618783460235445434612195268172070246320209102815738550272975225772146810353191537417099923102904388849202287545114740147442361479347525384356261248244931638784633938533110048820125019740505522881182518534112931238366621822483153172904086680087582718381219768687329702016555147457216389806594151727035561951965028084217107586099075089570822674257087109746046086467970396278744184516616854185300456184497698428871600928078092858135133965165095446981455318561208580087101464867874834394872890158489763219433131318029907566341731142704713157057991432620874335563562388841597061839578977976124350822849531962577814012916559319031080342821965229520780465308962291064870260395487346787289261379177358952519732154247226609008784184012348274803755454075038286276122650340582755436086718860236857576159591038913294854828664666201380813642219721692973047227053229381512995008810102843806116360219255662767838406692575222301832336240914689872383155430949438617335529202370475088985854644965469491199142184596780348526814836467289015253077433257573141360996257306290418278048974952324991794672327413418770630113854657508275880236669498609692737323116931616062251723132484578394137559369290657529809343278482276642876771212916744808052818703277073807441782771341163480151452659222021209285020748797406397406915450597196082588792400148848647014814555010984953168270725562858895421101532923794617012430007128614455052252148669463020639729851395743916671181525351498309091486943940627633516083598236104315186552784128411070725043706967244269401425320180811955878909194361979543030882469304953708680658947133595106866433753103602039666797851041689510766382110350537330691750598653040308313903888010374982213815064279676685716778273147135898274342304520424629910433553851795027878597085950945986959187979837056255900917842091996903492539086710545010612808015671749878792904976075864025514589319122842863942163819151541145277563791062550688491940920474421396784383839865950074712566111829920239847546703932198607693004260166325239455705022263944873267181910086151934470181268235207718929012815207927649295410694147630791551487257810454439249092096436935073715213337660506842176165242271493283611739016316068319532245393895421057651414789840739341438660398907612115515452342710327440757398789596097708383883537785083357641223779403662995797943811324156324230846516545786157617920209900208383063453297672992070557055250982811305006096875967137858885429834376076943248325978357218080927498652249744728394091093693737412977816732059062837990984986134630341907674869393127776058005565718889343197689617764912963298159532381118589442003951715245100333808543888252382338847361065327890009483295760222586368582438184805848321655606938423727011501950470432450551538795200346811375515604819657573316373998965084589796588631570911998460473595369184786358756885324654616538671679214615724730410744472485691652682574424252818471884619650763777170759224217092980170562332454282150464218286829766820105292003503203008864579782663379921268546846668150589215229479351612745948227398211791459302152527174711496606835154612080729375126615724564112844722426253550732596064490436720088630582577845817672418620072517031333152456186646813121317771261005798852864596964994387797937256956280364213843819023120838406140310770484058111670440792230748356349542546244490822604287850115957731269142141020714500829856136664617090006900642337846243885368799239409517115245909734265088577935806966862697702648934035325459249674174718683139047925280907639586347301210432708909207083252612362140770514045266486162342248346390593969485640564062708514576900057051365824429929004768220018431090813986992278821675067656007122556025802031975979160965135093030559258220390440160644434499180243056738291355133786357928322131455226044043718606194950377883512459306783093447229444902417765400732778166951111523927311420344040595607555257354994174171947418881562993067536004246992821172678445745990895137879653150397153532502749833783695342008108964151946775764474810703993058133836685241677711508912762043298967144544125312421214703245210352368026693634657052246090543545533819038499444122904607773109736576474193466363666266258177948121488976020970085895046096681941622393440048515823183831498346364420811091283212734060665584417251240025366354836212062992438949739470814401502975617253070047532108039350555235303080373120806512307410243153182865628911787391787274990443761893249344347499364006752174952873395625314246014278693196576441108491193169675156937267078663552752251684769477248597883477794481629202256076647558354501364334028354759503328018155539835779120198426343720839832138560659878714876348853258442019174866953505073998713539511573740635539299088788230884114351958855694653847804248766934068723904598234687104608224323199539224811827839807977651680639721636165326196748955080921582816587444488587187604197550632517755843440896424192100989008466510393478220245224115895964630512437599035687676057197467679147587978196317681817852865036710699228218235682689428710740731387616543299913020932425962034766599286742848111183809574402343811075037245242437843709835429652693412955883414640202538145918640964306205811535619978892241492053592445782124138727280852021654086310609758727802585091963118058710720603489376106333308861830420693528034934005214559585269759471448308177398977353624498775794489575142830812132859304222244107267766466613169510941245808081562987494707027440154939656746122336296395468372646854470226759628578650205117355190337296387206873661944336686134347850480503300055355818902539152391884195632300607167473015190648504951318883161967870414606058490553291145343150597101347903549476283341751711475456953142337073756418833444519518587420425192788114996935484065006935029845410018168102666686120607960216697855720732947417420099098915778876660901936510560751038403932695208444642925188513039440494905859097514918082999507954192702508750132300712434125000508622375152090076533368587266692324811054172735099711724908237729394565282595462112973982434528870985443243546605313290427861041123044795089393455257832643132662560095429029380100100274463310450170878931531824008458178443824731530167724223127508658746702816588846332699383132685918008701751539340820216152472078355229706252672040597737551915974592388215503751961069338942298815195250322779012050845687781853046236795593115881377330178009251243479386759216743924048917839650330087180244692480499276887969547048566229181475403202222364260066340515668229485470753625995292456441973368950154348671352286066811213804989150082706490290334929253523879213447314704346626253283420322543874342766174122253616460596087403695259523156804071188517151204605852036927168505393740761914834096702383926680590333034219000956429364029634295838909529510001319717691952378612398698187636124531948642322673388165497953719068677477426657526547652846400579851873615055203624781398221569481649734235609656457183636197112398328194598040093966223369379565559102799557611256213756303396669573717166441471524642990719287548588553848939131750485490544857277388031363896333577587609279046806836967082591555623810190689664969789468483611969886262566228520306415864922481013690169269564955292727362462202617419615204161508334113836112608736227250446124453321094726061107482364483883807096247702135720405970960385696372644968897110079574490036936653566935857203815979620667356705313609408532586970037608582403022135690410420989680854581859558326948442917473831256663705694833169828096422127542950640061955501646562239577152562251236168693325221063922266772201513070161178507820338527772745537720676884514210780838566285794547817360922028197298323582807795162197908004330919822150839735633989293313616994315164456041131521889400902273637521061178636641670066295986118078681470850052270816295960216850653264959543770598614047971155964796560209560423105395311244801546317547531446977755130197696188441525261601881143824569195556987313637375205715197324450363394808961158076773513456546751691504317381581352660263025785579260095331323296897160241390274384401731581080320219918575857370962064373268305515453378121000857717660148300195734097428584862729244857320942470719390126290678238235127824736562099735721422689495373703278266069918443416403575157626223663837379816311198686467453567961440708549807315084908613002822489116277130881060038917311309782230251582065827173381217980770654427848445720382300754835069749289380162115974479937628465889241130197128734817488670857357871231741402350037246901702823197875320975780618599159403684626580266372425716124672244221949078491427111966240070944450851347494671520542461673600755074561126767545953717787396454966786765420512604645772728681220790934028046907558650625679511980745133208741905734166128393304415803990716751845872836732576011500597096211963515209564620994168962070040595883585240412413911070301766730314326239532560517486226074117703905694066839633216290425512364610805709860187416591323942121518058362192660776333206080971591491428377686470588108780569671185082395620119312664615522692425816740356076718433175904677774427189964664296368849370638541287741213938059595210074232399500556655123725364222495317617932750426293959905720449058336461266245033603470515857088759832837997759140854567353662348627118360420459516128006501639181111104683934536554622553149937925958514346354625627036008402614462493599630767204956315374195197117352522810217993389841781844605420864158202080565195449479586588119906655627781868106260402028993505044495830003073486269277272690699408570979673067401301297311308815486969022325391344059831806742568999970001774845369651710068812562216729258749263693796220483841552296431688878914821146550892702700753852569158982163086038820713305719070786347267890154865760994798896683933776973966755570307296447426841616380847153785814345236310909266114265675938354430341479477498443899429143986978443237296990089393074312996623380929219126802894104645336478676287255791932506060853295331444710071767846136288786336815090392123810409422007308128771178227047109531533953888141200903106414165763185588928697245435628895805082307829669706429420827758308497570896104832203286615866223556233344446815943831708467959219494257910500775418318662245363938916554465214669393763929572433796421162046778776366976409553429723567333542707579336576750577686427318171404735260769862310315545795847130083686951266215619320597933801388893218070298056264273032416230890735135926116544116290451738752005845572894053564612637354355818019419302768774477639610487825148349949251926826338974103987943636368332290224147137438700517198251595401226485003689029720683773562721136515308332970253467682134206925229246972648635101174911845590174009653830554249993032623953430448579900262161338947522523741887995120196068430250578029618226875483594245880465128133137607927403126637868692591480402093797731765063764123558897541551609449893232226644192660610661737790145572325051835555685505909022169386372972842780339336067522496757418346150763445022369298027483788046813721922986094272661482974503964759084766726255449997489622278308612591824052464426032922859857445972935387606298772502542765439628143288383916048450059938617135025707990396547084793875466173996054920027703002582285049543856275471524046959479308110465168340546669809077980599042809196293796515432217920355409792949424282943972501601582354141037986708689594220482491728947633518717916715349346645354048492488151348412008953770334012470269362802109675258602658275549447752717439597446704397945174194132738955495903397710412308519355267650172271053362212544489348421020890596846525838034247810656962739070100069775749746281973542443029459245398231487070620460951891602554381225712702603464334115433793605622288485963638674918587947780864654566689028408585484251305102137311472366480304436740803031904191040183453531682240746476014777510993067320655805191093870408503699073798588095599333917149984060547030440718512685224363820219891394502142844612065802362835731120229210501259920179280974076675298952088588307404181770105996049873563449245293987026625594166115616229527829288493559941234888491092250749339837880213835011489357434002455589788451832779509010507032720418722685438692288622471673307853068856792603619143323485711161894566683508102473709758570313581472042567853979326049364717362456106709957134212813723476160136090198886061640621903334751286996436742516132449791486067442729956713820451555260283337444844122721590560397941272338083194766135691703324900529201034181554958615232749230844690858382953743761461862143529341757550265658983260216487782649857489418769355901462630498497318110246490000356372507592648013826897964205837084722591944345867392213285587764341907341919120102421071630049061747270887615505962330863563501921842476583264750029644004245413549454557699613581697152961684075554331637083889105023557645635201178125699618365607651065531577263423963130481711883185699680069641388534239095419168826507095248168909311855498446898731965198860982630294703812750370327857453805655508244896306012186699632526237209640019792443635035894651863417455303609241825900126532117827811323924410530214876201439542823024276132321268462291161295317209456928514254601605559572999230663246859885702400295705663104869994345362518493892493056334957193152050389591105112639651687021556434334045212266112422576948341029635654748066049061062263526385201195994511941089836178959778275707428319427149273261804241527580290876811005836005630153183882460385957880938108000639380975364396062182228687140083954169718119481638934335744509162942588740935235178780663886470518895305049270863352173033883876431699982519539744324773646544577029980257370586766175149849801302695926214592205967064928704417156649751813284620848823188011381643818883685933767626392706205934261126624241124409251025021517539377549258367472186372306484161915574518297481863710631635848842780702420317507975672526009542263035252130745844014137289052582989493563212551065837826352310778555994928029619321325996618307792978891568328047490004632456145728843271654816942735122957963888045777441439838121609566569856054344703112595261542801886290922160180598958916175947984020757898514882437211328332693361549695972154981986777989263618813060863523018851903600230667958833451382641817737082547948488491758889290940991287949703298615155446132306468240176031150586878043208333134551870126190619957806765140926801244734634124315912880373826764465038850124190118812138684750724976241099868584154391032177229069611260184312282094532094609096723253549835751299757264404252861285423180664609094828688839179799264409530663790549986736834546426102151536982566503424014968928952421055805146559797169466866157670009136145010065200205868110386055227979855506837896897154301282507392974011748033297985519820320124168652360655529673417433368991212880048045779304288108977067353976574060131779840893028705999803682172894741180940485603930801344869125734280964017234212024277164174981760379352333839676076514420001583769642198707171252619734422789204784079763159081961209984278714711260995104382543290790785083223148265638957134057865638685949534818311194568002472206209788418853520568655924415868212123027247865561110288593657697048438207354954582261017951686364416397227644167322841765867155338305495241730762527315887728190557137154949017949675610603561521109238680668539334102654659753440228685519605420699758563948675103239012000842116811342008956862934642345207930372396307369178730947931565495842619200204123850643779421280261128818775676698899391452761695302442254738731588192851339506604228976285220181802823707141876405465954945574264029396037792126609972054251749897182300512258777426784241179917350622706262202515250715001976048143095197998091565193528644817795345005390398297201770438974902260489475162211556613901644472271657959505106504131443611591337142253638197668747949791923195677323229098526313310234643913307880351828455332694552590992797604992810040605063247006664216777867997519907300223304546739243255277155046606346487062677876495760764243885857467201217461721450414655489951702116533413043615993207685667886671521720032011914596546861746493455452174800169136078082860380848690253447112616952641724294050960579324108269665323012594613228313560395226465248403896380144023865303046741381117220748087345402388661150358693597801296499171068811630788275527076987534770602087581393784599956945221470485977176695058262878142178774053213751786382494866463226312539330449091184292915945049997024149822061975250046239872043952502037696718012251064056813206344316737485276728490013894903549533703205099551490508300197075098494639408241909156767628033763521982019737154121249636957859773297560934830084271979772618055768686150472113088819314626278225889324338547405596732549888904505587087730671653197820033407162774355446537103908103568643604385740141350084990144883005417844951871257888183395033911380105770396365951530705848775659101508587402041796186762116819912077135422083760820219831187824717966681021048718006040881501018447377066261713206467561611600168023489022458445880807351124654111794229590317762203209904246569914842517675328142988447883176079153632376075461184460074297845982142678861906313993891592216152183090091648323920311049107992348118832575085676130274953583672098310309246542003268860718392969980215471432843587188041119742290823682770164629655388116987045564987241287028463904586329330039581375272107520023588257776596852651817305913162015543911468501076297080802546700289859318407249500191480435821764916372554329060419720267469723596469927477634771675826622120490098662912936900917353197023791599921170491421410632696313497252399151159628053506176528353114327920280302612745347920730784162253517787104802250718025416001782869313090446931743420291859205598036736936755443843221468014559616827123228618917181826225488472019320749415542259763966854812135154460194867148323067005494539048003800622584726503081808573350758944398328350108740574818915428544189443674052964933208124354749519457835208153355709212404862557969853711316056347811368601854503759441251389173212097981105213838871095805085217480169072955113768918794635334768519062819456902566265973585203297694076684141937873535468818552386814654654498896351895500215251604622397803566451187537136113828715930032201399891569131852628384579241725290604103611728932578266325188003192773169844519523121151623334472295275384578684530354978404913005541614687006620025265493760650147296871630550707633633065434348504810279851193548000922576144423656947867415027976625979683281855537170816590655726093033494678185908135751162716251634610204417649009691082757124778128660217715806982278498187580843590013772080867823979985554808481951617991470758132523078557059642932663919075164616089856494154389514219437075463514533743060614043258374903357820848416046952834308095777744748000698554587161189061331502386681855601254590612108290665170612899324051967296623897622401554627803997597382939673797503577563630876460829616692793638643414639223497892400925745367195680790441988217947404066986358325282892183525623432710682481884266947769680039151085071771926142051578003787703025921872325698087091032121969569680041789646602452142557488048095790424852110599241453468437210687629224665049334528203476227880041416276577817963506222854670849431426627417134041470676378232931887156066895419745191383960413151326508711992908567832893416191440405797545729503868444610888426499601191905559366388496132508832389635543433619773895535297865514159555394184253845336073845485990797301935484705343630852014343123866001697641471819253556978004194034223485968896641040043096999814963410362085744984555536636287961247885732588344810958617959620473823678111998429229064154108299906034908692126524831339857379691503606040486683099036841747054137641730115333044734785645272887917676424658496812923301512291741492896276352693003233829719749085199757803385307085545633650978735712246517463157420547482598532258157127629081962944822917679792832095362681079423447469107553685960988305023334693343239651742824803418810344198927643347544867062480918425145934134683532244862168309674735234664073006848963000067383211782538498645749053318338110081006634845257058667609210722740037679626896232128093289427427306176538425963655788630324848961511284444375334230835115173400737966005125077456903781351822362151504188023363986165349969504463375818588898945718002806791736580285832847846309412577478207895552210153030605942562534929714852693878150881761408033648332951605616576790188194152442779608606596185343800701956357896590885475841348032300414055277526665140010649987407744536630014218719654127785300397226690937811880026643754354765695340594082830907682880275010110715584094894323005167757865799217484008233868442557761474483709391165573201377823319572854362441483165096929817707615129178345301914288874488341288525225187233135034307769529317356381807060290137551700987524462933506594168149084235184543972911716402409551069101610056991143970653697509519480669109264041244530484374700774414739744450995017445016048836975299636555343334966056698704005201347731695290167573293067028352490236820306964407382375952712006068025423707393447774820790923202053483777620760720338111300723207076692188848286068044370013633840858504677867298751591121546729477802958163011496452093408714893942956640934132970108489489321018165542065589914034195618627714859170626099309036819616822071839915710976802287664748259899108498428929204870195263004341475900879558059836506074152700186544559140210469085908418476315322010957853274435323699431838087936242634769669885800340740189576477019465917227346403139937746200097929111497648900321335786186600890185536336560339773883280745424557497503529822793762341260774959466963887234240740639939665405256185443847137091123969982389243231028564513019328776755332824654537886095894827065363429070183858072628322932391373126662281282202132508340503548165125864187468983926897999679983308389781128261189088036017037016341302368180582857060615581036010060707362533833340176268455216850648448220022432863104270674819045951259916052198622134149310844009523913010898557863322273674452776352358669273313010877990438657919432360884581909316196050182930348921001319274621767985109228035861626080657682822515971380055996533627075908987816217757122608645206438260320959378127744571229842773529565535186401911218938927620326131429140516999002811767749256120817216481614568690456727161605184022299447321987390914375705670403194697376358652467024119019515104902702953231280524637250049006433091750690078570213782007304584215102635922576500183271015801415516890390942691887272901340780081830482233668325534316126634369002332305817695799177867727639539294411271937291513216696479621153884652359861470826647936905109891035586576453119759401401917439800619701302975412231342898189551131996955331131357098479712083091307156366215621251775253219153058648537307546753734565550833559272318275199232374941490160503936095753975614162587552244039024045151783350635714134020016306269555155891543499780001434627216244561367469443774099643532149407803556065985451458678744108169159524621776904801232935192965565458263238811209787785687424389822083978688539840147053780997604294947676055714788971083176593381712061285448769638735073501664022692967761675883737110599858072838715032733770574213343179882385453571706113010926407908615097511048793018289415872994591503160234543173421205306466796699815818667716841118096868521499817984913253993573990746463086983945668710584375613017544803369122914786672214944980172789633803343168228939437766173944233352414988722752008212247895501501411595220743372381227181861695224011186163357281008754873454462278837722211404783586110898036313860253533854172712372600551251941015300128186401123679310945822477852090128090009734579279236283667374650379077251655037018313279941871074501670238393417835761910215652971171934580398502509357739723562094790751009943016037307348346522095527136502967330795282111674592654800969890890980405831834332516462587635129080540694694307018560576415160679935716551275500332005431031793910980204240467662091185994006891033358629934687897695570247762488730573661347745034817338980206357802009112730318640915656805889776058749876646876437979781683896623553693608360406617650531723916093996168299529886875029325613836748892720822176195505874601719904320559535945090830364535695315817133201538773790118142199179525633894719706727452436999145957102969320006514934758591330576522442123928527312752350017879569685818824343300684479607421403762642606981157039848669405668847505178815974498431748760326816536521180798435921581676326814261606522700855313208410415615335111984613289313006806138186219922889826850704926413787309155929034569695812923759070058999999533305449900945660089330370427825522887874409501469143850703493476966816564048122165596211766860579848163275185121680708467721617348645289285761299009791771691223554431435390756357526751636269225888326241018189158171298040699981961487931528623722469377949511068977141289040577322417314550192956717980573079094835369883238564317148203775257559146358154899228294810717781263560080383880962878394417211129808822072436898916748329744885440181393580607956040368624568310007880722139296846554089917075750319986064350698462984259105048446010590458001527743905020882477373694915826374958219096336269023451001824963021351174360792458376776559721814818331460444809053548127027741956987872122005151655444620775561061884179410085427061658470233804775210434937428705679733024922279006881104544157120968967548703215671879591653420359175954693764280266621102026613068345375974962185614441345286581084212269075000241479805116994057733770380069414102710333033285542934896782427164791090147622723253752919118881276298679183379058827008931822008584038182746825275760849401124583235054390738046330300259213758334669208493757271418685448580872727094949191270663612596633199244382822705442320647568887332782749758210778345571132534072458096069029370226169404637234688120480106029808320466762987745122021916295221614098099148894247243809526247733164264912945398843711768236876110912807596034534093862793184298402641883031482184363616183892914099775910359478318893070213244104429137405043245337397334646910266970868596892361884165907292723216860410907897975380543865864962367960063287885223106836695290310517812668101397798903927071229413510262478441931123213692763483892269179445255061621210570972483240968304429088380182903052754616375903178676442577717384590592184953306526064656334561968299843296663367620910271844291171113340022302249002398901157322555141547224322294063577499541003972739391280955141546138294027625837014332797141923721670642335867932383862503980224760499359317561808926527099903810424787181885941447847155668487495479083845788805051472525071352249059506205518557336232907330823000379058235058751617116383868032027693074908276563039382758478843974981980521073026458351912688859519487703296273973513331337201954084169835312503719546536354312731695555233620520436741283711460510226564611919712657994752704898130990682999517057593120356916326391493234386463553846976488711608509160513310404301080738838896022169047448003984509526628713416536575389508386253302893259233094799131253647036969998851104608771561525365009979580108416956546585291246043224121095273031022762039507676808479189571788647192848346825841563769504917757312591816701333307969434049743636832177172999307150688779923147979955254526497617205313196811994170035618794964901008108250577321069816137077819948324937997473586083209667582245396185876618889781721683259249523302479725069966230541144911953372347741998064422555845300884503408288051679814790221380999687312254285619091355110218904639296261801378690986238403438696134303234134646563404704018586001319344554885748998483288150012371845931018727122875663486753407916045884866198978020867149783512316710980895718878520849028973039826898269164104300673805984953239679099197371273067815591866536447294803993496250019991365137061518256515562288670623298204809852473876766382184060771895830436103907991043890597577622654232789936253179189009827143649433585506241428509870805216212859754642471111494834727978531702975587764088509488860215053174382374510851935699472725508065452012627692585871616556785930417196056993553759746227178545550351376591363485903726917947646222811827972772848546336442942242281536459633117306228559004394615358539000208017944458003650474818092625802686585441240059589770768441753364098183030852564905558289898727458980042534522439857254915514523677081294976819720498867102162054729626621547085338239170442527603208666338352591046442944284507909250933914784840993574528066544712803210456617191579306114211887146168178701316770092218895362233914415186953426169701921005809515209624458920576134742457697375146508772476642365173959767543730013048172024530580552109453032732726356888003485161460528902460352073353509515959499128785470682585998764519746022457787972567732975632614157571975637013324820147572568989154008005073116687149418581792019501288101956871312167489683344798807230855636840078527577367694948337031528604737696569160986240294934398196833308721724247513781272407797008630349258592984281392309558110756139011403051885975740231032280363488787569909547668522828393425792241297872347397656998737104097250017986081934380936814216598309816224998960249191795183269486961863155581097455875718949516371256513070547657866101840762577274704745721731078362205268051405205231815103325307247441595131120621052372030257751866796465887128323536865984633379276106872040158761359733565070900935504501829442470414679305603251708115978740516087834019080536627548538712592943359271375323218950645645480811551044965462072977766164297428076915799453860129815649317182698736546351781528355337814239100213074570501142582058870604036889406712682954662324617908778066782493938376184734085583751028760558298554593954162671912436261114610288013473304722100419924566921105450764469519180022011116261515989134812609311219493238452658550035104461162732476518545926727898152355636399314494685932490815539097646618480490360377851249818603311538640314709708102714849826713271055898494623908618232518190363078533704417642719107514134533534736748667942756226129855702223891560167697206755534697156412896657396847422786047430635725681380717995309169924106228259110261161227869415435307362105135548533157821397877233149584841128558713686689485554774455867682763411976461787273039844533315578587353384179287183760939935590733916609869061300343395427187851944813463379234140453821875084452253751962579631439522089998345655587174306570335156723330471911773779804384514475764846448692832093424790589203001032290567456266682118557560683531142846841198728959670092166093527025735184825873085038599770958616049386910568825987546745804382330311671133502093920930572936232575216784515386945427300314144483397646655787975575949591005468936132396029760497660950906528708034649749980479802919897776810149881740877197616434554357028773790662187124701523131606645249414137391772967074852570684636438763951474933789236822677543572302879009854078897144753266462116286235447092182237879767799928878008077331773969536468463890590365891065016698469313293683853268995835746960743586140991190019855652183097115672776427867942910518990706932857884810214836706900319146473166885070150377196412545768883306466706198841064883641579443658419599623914723666759595080770667923153587868082338200036562977641665430242548776828381024220118263697500088813961550384084906857849181923986161477931053154757185116276231236693442185078501166604637010188416012722379951917853161459855923641440501389436355575483541660497189018080104113742183841467257633460752330533920691857316982264393209932696698999027161346161706619956199534318010579653493329993569003076891957404481782362720860138327802946192343257494077803435445530679495305389660886646832829094106747797272322649220075433626163500413355016825648183517731238465261283744595558868945669851688913668745929612598854409417571215057865338545473509606000096471871262313251278073072899255228131754527808770619237553329754879166124220291165417437431266153039841611272412359464205100068111564703767608123750428662291298036915302620549503009246117918797377869440642661850276562752962644535587882147156995272750065923017120610809220418552327192022150735561500787831266864818693292847592353123219241757868704241724185312909458232293998489978166206131792680861615641682740460485688188048262201843199433992727745251426101508202287077318912994891536256050572382342830657532338272259822303143228395326963037645325266918813745724233088948450453867430093438501450234830198198687102560842683052416184378459874721131216652574330309530164062357349048616849782007008198838029585522031047999617232348937240159944664916133140060620413406789108090977711268868146242474864083835832709669549954097322636466999177177670317465776924470316523351631936157841021771588160073489060648981214932823768186182828690432297700328264860616879334524979647728609899774864181362030983192011939418683797792700169622975238683481498953492055792147762742384766998925369504185962238191118223379431112028459567309973777050770745340151077896586178219737399872511262785770000295748477054557562881199935360377071449890736921994143427078393733228278940428162004584138638275788204888431576508854342657003965161283261173633955133124720248250086301169440667803616530535206900599725817403430827001776700750166513685798938281199140020145680392814623925530238184952828229039422764917558588414933546983336667077680725003752196060763315885572203885446552368594685784355323907728269123995157047551710099087218714595548516918725406584215975100924708481995403130716186466277671337278753266253214320739054145066918362216474554273389660867725105289215712623069238815729449997798475849637591409341951377670093090777338376892807340380143305704002270898121349036323255840649013712830848759216905919036785895855742861946376435272661280570033589825400222284788564878285431692021211527566005173627412423212490009470392916517644455599852823284995070603649577176789962121774969953678799212978053880512316435325112314596337516671179227270447228792850546530750355024362059178181533891339348429450255563192736323961485522696448843419131921152150822614411168911094951735393861605182235872123995734498997435572867734619123176227813807407487704229009993089753122983061115860724233980926574355316027951880997451555930814863859417928302655821799357864995483037726487709407766904552819782980350336691979852350685290212251595380553752759827114964388423309666421320494260411006469627092430590313344702174337274312287843019379165044166318589975682613089709838021630655818627059667242910132736045723456409288656519263415185975896269449316638199637192351563509099734241549187006727574009555046834889287711806443608394300509606436556095846997203097282206292397116440667554301499404542956965923610175229967392598017013281934553836076897990453774121038181373395340607101728381238518408885811303969815011040440388286344276459081891002933065306632336432128218194918304878171418837360259617465166742193814131528797551179144694768137097297891845556253384083163030319954302318490357488275183388766468445501541056733283335524404486183760829122375077166009104278700773032154679125986402265219585351551257615654651380584995511079477522183654800109708282946675822525071254747731590668277325333339193495535318833835237862567297134434971335853250782237050816850793971602393382336583190365359348526584277994524180959746152388325785286579480706391844412276122628899453494631892524374844266236127094600813531896617301704371698459086568051069805852511613632614423055897004662665390703363564644392539995925941049468107233661424013164047106345950581231979120483660396657799236101696394568046955832065993016558465326071114098812058651850619041074226216997488729377820735605007929249518594557380329471772911047548973359039149288290865567356466917042598413226857099103890469835842067481731209697087963573931856688575348428220520875563096700801448350605727455773815459091253448145559355867852580547353762448612020498621609266193213955003132158658639245881774202348086889001885363784482648029779663808670872787442161241492214889467201815005371065341963761508791032101315835372862192543804941789552420018643923168126632666316803180431074293807278108573124979508074127351567190579618816663837413421820680276004617240043782102367088422013259888210774851079721284544625584001804509798943275390149209328813410814941472676928487163837843487445253699644202826860328857870537476793639077225604227972168884566825319176581672388799116886457370512025456888741892254169591391806825393240383686377354111919420850401747916412589600581307971814386726767804720325661816189988038318740928614515599616212262955878519429904162064701733352214692581227898713339796667277719638982325892677168216188968229611257967373044118050386162104408858574721156252218745143016300156297523543111667700829083736850165014079268015703738610576981347981889016062808746494593999647837373422549851602803494410474030328418865776094598452132635687186046450662787931587491208053554286323926943242575195655646446295494284328168885846948160211623916446055292333170498965463327187479935644074724428986191337168371839018321195392108712942194049132548462056382095921411007620562414034894428561404893050727308417836410626431662128803126597581683550871153009388073754119123212880991891010731275260759402144220396589041223157197754132215528875531132228019258266200141229989803529860004701709451685259629903805956211433778423958146157895025883183541273757946672931621173437863998772065271261998871618272430658237385090931311262748159997253101806226419354369293784527096016505207745579468624831548008183110989311127475900707845014313011987278936684171815926223793821319993261482921574160768462436150308047821213068885455368475962295045768390344551803012441589082369673540303381556590975585744603087090523886482847867332315333195703357909519505140221881004273689745018798213605089834394393893142734993814918430240462177453652092443468070460754293484845018103441523110669480030831561833416755794160184498226391151871933866958329750832423779437751551602051541680415540674833137156684723880175412270003923951050104492626469706038826778123045140068759717715718880978518328487407249067845151648710805163619701732406640972579116635490210125250455228687251664403187257105321631022591400447465464066324119534633413875377327335533109832157828333087037418289143214123788572807884343475348819634730528317670043648009546438168427151059368264317710414176893212960253450558816777565689428016111148324596795556087906302585339159378113672684783080361388692803416263721608156135151671057342184140627206010935160823142496349089914266179944847971444305943654927631366782569607239014929696006537931601709614433607664692035838493936828959681933252087710028329576968988138438895934759827843411011171610642454295124646975026709631158900348228371094474845177933095645195749614209980949273924258036122666016436751606152599245514251386341423020077561771069244054885391474940588118146764061146291896134699558473921023397088980975285865202501589740226215968300066940753935937597384439258160652181230372634991395090870347879196509242470186637050245955484400808061106306134665541609182524242490902032621001004656756756580804749472109942652409358927461426041761069507070459352190810422110821374890148978780797920611218907233414064177096546840172454092240774081198360782931361443742033296886124687468863643401458410693408673196053718762687600236097769172645888787942461145625260878980208783368579700953938100217971272903371036053456518660819370293902921453293819565517074508276853510274309977557770914334326979914991042813253567518142913076247960005031223855068594239748352820602554969364119914899628271711752735052195624628628773766207574462355056843300526354390962149312223536422611782711530652431521110543366302250811665131319940736275061489026067132145615380961024263849529432894821420010507770544723862884318296729985734607436439719926419389199969100625522653502205375949995401290012418910487614267812111483822136457480893676000703716801926581034890912758838147957773468281962542937554194438308848492480711009363186731055062815654718280906534192768211290787000752077468345447447469325430156180979097358051224572816138109334364733071684418060592805902780813799500437787066254523018891410711433645897641185727878896993624865331462134819436688960791350343502783931038851470032402689446487561418548015914701015368742146808038726100442654607853639121397264672043776558294266953504795275588250427318048316599936998799991216717774158622444431711615957811157366678574115423830082001739728660239634036331491001844578797227256629765916576177729429740700104334438339566459100071294613406403914346620082608206325631321871194225387519103391255979635032676194380943606711741758529918415606855953903260375724687142085814000355184199623997014293403095092093122308251856950855492804713618472058371324590720408224281551317309147637752553816601494414638737072272664163317634814037233778416278470334455244247351813159794653461754121528473768545627637265183380696669174682305109668071595784147706417539604724778460643872333294150873812812106063197240299525259300805768484771989117604006147460939052482124650657304126697817587754296153082263559853168227699469343825958618576694763111023269840820605643266658745108691631937629631314636140249108410636378138258382521144847541876849240390360989229721681019274179350313377735669168346581319471170675543687818104193120521181433259434727815227323160666766160913859113953388228113200124271731435324587497269218391123049065941049634162925101070719712964776689382200708871973765964483114803086845606633975205568443980037730039979310335073143838534258508954624939296403963843806597647260681345081268813446337430646778703366330565924227680376010345506605962574127850683269336242380513854872312821828938164005551579666564495025574630311503355664782007308178183435728165226960411899108944572825481267729819346533510556245441574574247446926157364787288835473233405526536777654752254274435375318268574086313079108191008585310448538278407459988728920708488279200342786217078115907659555250562832716671534296210601560250272693026714334790670436433608706374292481088034474499923441116354854877674676913807050016442496041418046673816807569051582514073539881410446981211141219566300785589981240337332642798542951671398610782416196069656835111358106743645121025633825189425139375815482849669388532385061712587330944952275582299673641653523487805829802409501595608179489328102781394106015241752832952714294086293759435612203278912609098259822501838061847306546374609015616797375300875402991352931915905007413876036740680615981506647278898210279505899279932662258700438360852782949260737342659650948023852782934739888520465224755560082816325927425958423755595551162719823478077440763142467199798297200727205318527116282596653612023237993680403301017242148187739181894391742834554496164112607274060057556632101166520812814853440434566929123894465214819468298913628664505100568392136265960482629356053839826550595422899783139354190314246333836885697000734295274645975637649869732799985995506910320955455811725675427375495452961696830972336381307493855689030126879136473608152229569866635542688583180179991892969677233866975465181702546074579195888864703380172375434436122948052427098632200440678926818393523672631643383679933986512285969982989443559928454127918219274193970233293779653002564953035426154786809626318774512409877091473390391809865091789272897597539093102879805574583771329324899815274934896521337179514791051574156449589680376441188922631800185626695085978595661152964597155926829775393005822386483690833324909091236884662995481630274220406960260861889284455079931437096900158513868319560497466237511913240662745508593101302532627753442526922310146278368339883220907592570987423503429996408335005852213139355928961312508306244796775949530502237498827818799610531038807205034529415322331313884893385966759919439159380335177936113889822202463652823221405097686993441411434806784340244881969441927179304774245683252714651050902504022663042498267470785464933126579921295646941535850885544220034851906469925106870042062551589363865680114233357686484998812457810677820431752329760660715864666466342732156616727855961675456682883327873829445191504068128548066382099669517031402228851483134737511926223462052410182104246167548273519165310249009084073930805331725471779661709669849349447178807722631980553956970564479769112058392998674331192133695940641055857087275794975610445832171504168613260669465193362294744245824342668094335121434013031573436015074765691637081482232042300783951480798134876746673865978184889712650895738153120004308154686829640620019094115355639053239081447395033360519459312489553626121058877308275848498794828784697568131482423246439706597908875346108243097700904692059503260696035608005640041607298587969099384312367796941460054738434614309708447020864671432230347519935239388692083843970442698800414895610871192146023717602327734808374227907928248029769790471916667791923514846270170942985298831607775100772778174167733570255818112142492923452576123768776003341534249440074779690741194220421749621091750636397456033309957826531499892020984161740954563618120536621940586798055522015051320726518835386652085638836992568192428564558266389057971046945471088916550265921586341251123927276305718369697883452760658453023208228272143873320817969227420545216153337656355749595780657197367752817702087936847699234686799632672860385289080308866688523924265859940682730880017929398337565945272727243415447164946046234206292360744574347649673115736734114499417813888751439535912728445544936561946312588926262085602658722338923435492313289777493070825076681621568307616209421333675860415597045867829028359496051772820181554639961733118184496604261289949789067177327346461438416752818753940761644963302063983332400817331100692354165947598629709402542590903981436562923331538492372815731080211567975423522689342084366709358362485510142807461595915459125265281534100684595000768437699616856030178238456688142316045727542322449397274978119505167351238696206646796402603724578921066683144973929323720629567570576579438035012044881746545913225666894981388628896060039564186280110947014654952114410878819918529873302454445251015865778826279514010838091405088839259908083322228483118385132465336184636658127843070271676718827675650256059950069684811036945961068899982604996399482931657677308754985702769917510659435957597188152854006806108728180211386727368001166567332922405959178722195157933168141209547760568156728816963689046255797554902805731187275426823289760155363683175257494480065285430796050372575800024432446259618012613735948451147603700749584223150209653718316130189797560538819136635878555291146815058536908985888447854252942751166502133503944122977818363646659037688136184803551944405113886489524996536186428929701923665098092886278738965995597286880954990605841394347329830733241458484110831423137844329173957259986486063615370117082549670145349844599762551145848714085661907870113331175273996529040134754795236937619825979592475949698532265812008089661000767199636413073972065960427920737170472438000075438763415026120750357706370904245321566754061249974154167316468058393306643787465015625900105529564266003735234247844647553552391739095931707762504664583072535908872965589863193081399333192379196394558349079160240821081496321921543319261793768230202106711065296402296967707942243965675331939621827576456128777110945113138919303043694168842990906477932458638655800750794517741091557805890909344555282984395971937682147453893829198367214588552249413085543633558608480391244506948739857399834223420674907956860117074236662885589147389649788783313722509856828219558843913639036288471285504672825230813339857061156919226888578371671824445190702559768675158961667978398635868366531739126198175247295233450829567899154523212012416613278119316547752476492301006048734580833120988657931337841111984623976786561017206073146412111676712235722803976980893018127459624177719237416486680227894380281748136686690702885205928920358140683506255244537422510503172720940666671848688354609150193498123473371967118074209719397289817141427146551865974657395404951617815600229976446800641519251696377987175662185490515623604942729219753553214650793448477362460095583751072927257090858393632782292897278604195917553748650960824153570887805557934016188434796608614486235950312183137459468625000645355206030313178684010417412821925398011188412991542158705980161269104915926720230322033818308330083490220148331119511166606587802627777437041969189784345028548444120980831998559799328458426069913687506180884600324556559389589914797834169236517153343376025850503849679924074714908865581090660532600419801559143340645965614365832813201231026151943689498515159024174890905689921823941235313817394191483861440689044362529569201399405671240607473610041697403420823930779015328215941567133634451583943686247413016072201743404225779711780715958478467693451911759673991936477268388343564704565411559373022078948448959477556617962256783327011426101484172206304768554736454715308629970980147535460359671683210969468364839242758959744695208347428211466638028431238079638812031263761727085528787572850665005743023846043120679856748527741252948768422517876177504563739646321895903497540187326369032698476059403642725844739781410961447965248183866512723078399137323711867612891948480818771531364418140351300330480733234992702965787946194597813189120464836480307899747150332935969163134420297175992693082850597128630624346836749461904705516652183404114752561597667027626535998697076169080748457903304162967233083953658785250649994130795155025001863448325579277960536466747241023239791414057867767049546175526506208226336084578223568382344102038305364748885534063236499857061581604116213712679081042063780414913552678373590617488634784280076170642282613098531166427655015294424650333531542580093531692007620291415265014337393647195926314559620335622150480348905918309126646320505975220816984343823616348240610526051696142595627757873996187794864428729003250928354781270908032533833812671781992356657964706106399581588516929225753179364340501556403878046383828935089390665641291555198487313983234874601070735821351317698418305179832931200886638993715692805662958170325221458453382489893216370755807543720495040876945473349593998104474560020013112339676369656354810909212035065163835818803416717116259033471338652060482098743392002765925717673021671344599776106037989199489467274145503373913837336557625153785328314071366744980664285917834473029458210111240525513010640076242371415920026930432441993938977347033318471643632786479181106814785098592016551123493189566171076775295443877034942105586469713116196037629182028209600103568318677017553451617862336321468403130518076215903244811736638952975796166118579397135861423373948099674637888699078100849301315272895864900867351344620147422802301556133223276989369325730467972602397474845391350959628184609023686519849623527526711770731476056544560723068334600751591028162846147026158967919979995048741618680357785174818533835724166257771442161415679271435114217108049507100563029323323551804646568545893904179983568610644909620299241566730533979517453860907829553592189202875403620687622811708963446490761765932022228015379006786984730812637227944068488931669271853847435650550604359235516615549372603454102559856564681859862184869553076135215388897036223644251398410301933251315921093121874286544623823690112270274094171985311299990525122706737801760778582200365902765471665196996751465447951005239378971303907071550692271177946667994494399271515941237989821916324591812791497430286035812995337005874168364924537996692765125834639957845169022719275831665622465442630802500916896054459974756445679871903910084345386298546999575136195302901812028292194140420189935815288132087049159809731034181925902197945879534979224600949082642783547488869503979380089659853321875125254759576979881810192021509097182450715929638762240625972682924873349845074746631606739948259348199099201720025858973950916753507328212762381426360182137172247822444150905282426217471209093725038098737318087313928631122363183752438622691053960096562879751905099637090671535880337756597468477878122041640317672597107703070783282328650959315976323495938960069056060678990367804831245210461021944746175868406753033667311803890120672414206688568094093257319105555124901266586193625729464482109924752970694759422557659028258253627319694735098287711024978684363350680463824754205936945298788944329179994890980446396694698953058293808900612786924482620804845112552432755421525213031627509260497727921616882512702491914300279454018817200828585066105993437028475001835028418461207451602237041425709813485656103842664807699338637802226788709848226209173793282558876714499250438082644503482032349436384419132628316464621277472549568925579880546416115201301712815467238608857136331507854385367094647023290505964101154121180553781052822529782366217803791178125068800152046909511229143735402157733437963406875964229085360269815033259481081060313435874039500329925479062259927023513083498466017536140688771489024938591091566695933576255527701280277093635946672328568787314661919151206639393113740105852230364488726144924537084783287093520551325785023044959296344114921339368622937258644014462454064065824335993575378649070924310534843261853070744065790150036782672111256625093150870809631183866231581895777543645691103978007581114000248502746343833255828559827312318740110818046452919315264610896524209536348887008560180613919342971723427839927934738163075190486035738407560526592117747621343378023223834546640367745026249278350362683407902554328976161063414488993616630857194893658730108657827852140704431387938904081894625917124660594026498309788221000266249433550486663069508358746410521213913616680084326919336549436790925599433548926477413635887232633656395060715034196544140625921478181926017729443409789979890080503462473059339461413230568909392366172677464181763154726414684256590643966772090839348660143575526250645814987397835687572042677730164417807136386931307335741969874041288266637550816320604138225124886688958234071387593795761990122910823787329872324058233191202231838205051012763194324192871536703778778451719148587474047319092455345592533033055932781289265186388390229905978203070094608158203437867467702901497951313106727180695664938821367621069120030271844384031255095185685458942619466845149025381243823132341846622319549799924738121506206759439781810057756650488253683603780841846309778004514369718046076714521783062316314861971632989691355881104405549537505288644826576435986859474653388300455616626278871176186609779182145961921967590853841198462558266653409547036119927336716310883332674960005292575569334668073757565404042088197036438462787986477913368653703726241561692230637877606799065715478007066467727095307002672396132352040199095626834826336051672108712225646002266389488869165857889152256217352871372964406422094423654326581440531539025545188117757737519855877118024136627831273166085624052970650210620844666007059554176713335448572872097460718635657177540402836268744125140999221031999995653328039887657611628179930094516115369347540691244865871292367905560179854971486056441352809041613203116468406055885055104238826541056500124070292201894050595123588861578133510218327576563288348233875643245013716835147978938060818125710844757471873624586116200774776509389829195643513088304507465587668190013995214451725779696036519850378221471032863879375608680879412556100367880494853068249837117078537678941787510382640657412702359549473511720301728910276178673762948309925076140710438294576301002866304224703067912362770853889692364078239154943372863644887914706176398027158187264184260753668309554477789667564021350016454354685914876485402878112731676404683369707077444883580393898315501864242691475784551354815390560760586219454847304545590974529039168703650690835353291350252508519033363145604148631606694680576892334054049711578429760267073888991224977015962309415465678298791556142174687508436412152675080032787233451654420940819611202650314959123350626900815056524436520392079969790028973348851352130357548099436977842810471379736017442523997325457441817251925369290825439259563416474123766334884016879945574380002249640434638252244036246701074897960307589606410455128228513306206643037546780253565248384912929325872135362862661723856404113580186205799795205561076218654505957158247320422009878041005629944753481846896116290308598347148204605334012491709301794974255296787488013390044936228437406407210937614501399927027021921342014754618216288252532701076566514431793279047664154562394694631584230073428379442306933826946357574243904081052188447608244382225102993925753593136149016638756327318984466099283837140547018830532304251260710505306174036562512822700250476534172290360636530804391018109345729299332964894167756760599998529679038259333215566660781541559463648054761525542483564825213999210007545995453234736669100309280268592900828140867419421834629221593698186227440674966692769985917571591224652223915857543992910117071828186755782327614619049365482326232291704637761131693601082258644684303069882654158820850738969744256002549287276374199603062757083724668094675853058249228168155481972763152812513368273856655329449228789154715987051792360775786742073172988661957294458703286485282394028447576567068871529094112779690957038928839738593999501818580969724204982140305370138082215776554972282125494356656258084291462241214709370269855568651915163897744156399423770185061319203372532928307537967842114898854217157275434418475537911012466187191349608423633373254673020924433965146840189577370050277557644341994308943678697131645296091120633370370253005722651743902698553901059829479324470394649316584580001932478348598601800468857736446357743115340217816325218414234054707156243306101962497493396474168199217500369626184302225735840962129410642151665438602399757461039615294810050487493207601781205014935408756257063303196559552395466661187759965888704784849906111743564770643776891682750920127553740570050703315347713754079224267326539003533518144558157214318894145280728724650733139147020016618189638415396902751433810863770509107598336784410947251132122626818541744433572288596672221021995477742440827687807797080190566000644155399969622636848071174990849928369437150721555554207359225361963509813623406901443037340922657004909455983117991053355754842011375476804459324176666275994356746727969388665533917907519930224651689303001882277241998145599749822878588900677272812934307453982136496087297353053407697793142196327314326588844573885237305002173281820201149511728615459488511210654019851074257182508138346581970660393413313311970769448796687633300003915253448854292024992944555206178980994389980960310846434742095555838863042665853052098833155107859231013638686852333294265952174634711212696434734239589052976473280474934460823020740967377563828422838637697364510671738508502262190250496374908923886892519648708586884105525376960665894386560977167457494135554707253324841754350000739994135549817664640477077302658398515234544687318310038748294343472653356365697667406531232405645352451590471049141367279703502595443796657862841227184965130795559187346414235330323918456840316682180230004870303172198641964887951230624009208450422120176133765760039804438470865027780982275355696808215916746732774695159272710591363123412476533077784533660096038549616757227809637456206915863025675584264081322004023589122936652645058169643931121711493705060740299931458677833784702211727372167646573213178624230114813552255018029941121797832902133785807034584269756923811315466770780711195034273127646288299207562277513821330342994530376314888763963298680060190166731980628867693698218313350845957001619621352883275783809668317040747271346983989931206024710641387620698350930381057861418757800769385216023565469385083353713425371187573493676470528397834988879507947262033795505306266563238394672844077375180908526869657505030634305528757512720168200714434347701680772902896048339281337115159078064652520450289449983901122419134223423971952431533397435940775905706211522532066573375827515939832755511367860018120796828827548934535809194041719937516530554436250241931931613362970875300321397190423862388075143595008280928359674034887951057104031353074657128531283567413721146006074586322323784725534944002845970084448268878214151817949022309817512879839058922887545131132140311715137978956793546105302930599012222458444097432225359701161322002113526491357395597632727354308693635196180934220779316429950988606763619142472643404259281627964036935267508185664595216240536361092354542513509926394872077678072806683775037452668501512875344231582183935239701922453334170052469358161991810345763637094807734289364144560124301464636775249144271477627513665238291266893609674376016948063658666724352357910923331807560838998078567861362426961112217104774726157551940492971300251061083879130329073352699659335402247726413283419882529888628198308665387406329920450986870669163800921582283523001335862297734651282995542058770122280107028996172400757246247455761674504561883990337696134840393999372771991530626824656692643982633275841209748052218997782545777703273578273940883610355802844835791769831643140162863296903114432928094516154705428082326701747860085228558064929645919514443272886344965645436392698098666663024318113248035266616502521820609806131857910003597988470312546017650814140466566932828048340709612907143689931310867011456797106679841284968404167046536845415334683272546344762837723710043857648835580016204028701819620678797869702428982991984509202062088683130661745550403962146213933179284894231956956788884407446160083388910918950836062095218752936820045870324231204586908277176674522637511564206025955600600442231322289111271103105340253593180226491010795005635167360658963820610489649147165056559848366441900791924283942152925271549847458899750106717816723634847189797065200962692711667891217361737584177823237286340408461995231712889466476409120439408999449549194135360513218052210979551916497730571676297125064740539276080573230170538480375053903685123603008744238694699608381900349706161616178636273407196799404003560785077171008084765759226096007016468928870325023813123682267397442338019173107133240875249997431517853013666172411671099987548650546772335486697596401780420116959714055516419374729987661103921928106481445732791103476370750073084524579296927054108517274429212898476710353962363219646907200014130110408707444894153187037858055489685667884082659845394335478163718585446621611197826086732942222733272877053278785873596212093395292334207351125881410972815777686065485008697621726745287797626915656023123524408427501042325958122768601079285892182435683985785535590451068437152291218767016218362322115631379427229523426127896291687299143467275836303274288338904662032834568435892586870835042189857982340741160299182399932657538222549929085136471141811058367414896772319059982832045768345692016797595204507618080660741268283867390944838657930001383915654547663870786986122556322972646657359585948622828703739134590872621635250453813034954915656318637318302607931406307063802908633137484952052543689788669806963263274291301318579834175607538206123717726645063292255446187693780089163650775870411498550465305575092033696054115827621052148181109946478791139500502031494768664298531283462832308969247448454774181767075114973876977098479128254056081403786161153791984278268719299664139088137825094026067230936896394202106735057674764988057565033952291954187498402955045627434338241294566048783024703107522553145446043299454853889013531153293984087716216778259587086892022854906310077478405554419233981333074288424483456610002684392581590377889051876819286381603610260495434855669138253205495610833326154168623735197446755889943959592617995790244658140261676787514016733681890754312526324542912837037756263147201894814500541780168346396740647184111288488889142316895592798681485734957066455714910813897142389709292557572369029398495731581468722159038163899790933827959193269645571633708500102264822861952908431884117231026818921592693349534237295048021625644882846552101649224375168456234408822076260330098769453098099677426592380799299109363967204572747675874702398630928221719395262571421737036112314361328972491826493722046276097870114779763136434757945895808530293888718907848891029686681715522055257368823238604930032634930763774229719271409513350812326793687009841307968514421814990347204213584808179008673369657991041490654847183731392743328519741460337856957967615965583264339519322606130315399285572923976865845571015494047244029768529047135093751269365084898315007818310040306960754263333659095510666720432464736147525759802943890230194821669434070571612116133241699545218026698435532753631296892575328905509839944647647291597640411734780195708940902810062399453345364767950402998235284135627665837825416344269185296203154694163980972809936114602273122227093160651262664529465591689743439617066831150856379136083218930522637163172698816235333036331445953771627869402135481939229012652355518433982055750258215299313380949993505781669230442872843423924438228650062311743650007720244926097801161934545372461060101331335883975799234497100457603354591799643721331284165628274501360802904537403449308961315429981160050388326432191838483079078823750350205683726843472949043270036151447476663789332187102941070164191459158881382651958074614462402261734376811651473778027176381805258035038442406410948768692306061712430095024189247689943710764612192391786711025807222128798788223382139164258278356282997661424117695299263356953829650525184373364053459099985452609928562844677841531748196069181498945564971097828274126507302148204788605253734575124658007329234393825536991749069174292947725024115591109207598569407934369411336099759188920396322567527490277993628633962273731692473448510225784451482697952777379062085885590198851492754231405472541790660612431230737859153755776521129926601433643465401046645224013876472801089515218201379483466407006203727352639223932302257654121979583029174573752913585425066495047617399077024297633704612845260202887911326750019210600399946879090618212136527494254611703248440606222917590042497336509687529247906540564396716008774718519372480834644877075476903013981701958310690456350614715146112777464290571619101194647201682671235958566467162348052253797190641742538372546707522377653782430539043899440879378702354997986845832966818252217027791107305315230681742655186931120817768660896146141756771199796961633093341712374089657778944542066610456712973754235398557134242019907243476714469600655646012668673892994529755246337034034806099660068645018738133415405632507627559281945493373306086722600401385507242215249480385648729981830554141985204919517957211697872190011609561129882256873247177393935122629713649308242838879727088012042629343860042477621546891127262098833718703873025225223505558809426860488632840618077051819000359075784658328256834469118143725534074132992694143058473399965707995703588704612806044510087187592507699911131677445438419002828361843563254017993588079812507923503049739848430604890969102336393030607864988220489697120321192208510557201864059626341386596585032700718822934179173086888826959851043761664414384389196208034688416851897595991017242598424602503270587554533511095543080887797549807873562456839716442154926390867082595034798556189063756560260837521828196074543653208821550282208154809329318634423903636497338566814328029131154991707725947580046178903259992309627890104266119323889138697387115138447982071835476397685150614986547767294977241212769768214809763401953771701971772764443400888302464753049393427260038688027538550844877801321210898556512090120250084113299452536056426997793462668171789013212313431159031010247891549094707650722008931307068377498536996229246801587847129658399317744603979360107019955368493645602740074771715366960103649985486090063556407104961047222388424025601837264219265122012011457126111532554193080923373024968323983235910582721579181767351490023380874636080447138692609720735220966396248246121832128851734632035995575662324920396851507176889514651016437520993120054404753256225683501735363697104945210893461693821217311388795784040407026749362997979726684288432630398804629372714176357480394972877315180456105563317296503889413165114722957993219348222348758011558583470249293510049482691043760862129952762218401804838908121743137716980303057616706001071379350417845890564031372517082626094348050812102398104719039980026950141888216335771107712908497993591811150915058813312885190303268483850301561888169623350834464261008749411621714175920423994742362736292557218142204172269772820005860315503969526995105124850474505898223527712308620118393055237788463756676823860789053585056176823312838697449888908529320884550947988973302885848815147172290527076394400692972431101886405205976092573459107384343898866318865160748421219827960308179671525540469896550062635170178120265668744882674056581427880697870095850137396509261289260480893196162845191584500639346897704147913730210553370244085010779819210625551051388363788425498254686882198722948154398630724842686299730827918728655519825305891479712785506956243988256792817756017266000036368445476224475503538276171923897418731795776203698979406770682620663032323725958116402419574338437936661585069996438796083922328526127414571805298347734414087274657106503584585872816051462430799961142307876049483412677528116272215045781456661008061611823155035738742021437930352145276193072455396027874004461547650505476344596615019810596400653685886017705513123355886835043945583603380416475913848276973970685563132005549608903402435570666323026344109624848779147573760156070819754784382912946784428272824367528828860704200871474986740055597486186848699593251326476587693103486576440091717019732652543515516384765384757323358655198243557088501226385344916511058703202120394725470541823021986094562430852907235121034859509057743736614534020287803815476279463544356550147070630979230250632827495759432019794796082895274138180667662027730382985279985120264866905718077503424613557385363221079281265326702922331043458573036115122836080520011349480299164321288386283171882166811024293039535838408348971346808224708054216621261274331985904926842056238403997444175270881986688957563657741895151323419683769454446301066404628819854841533014937463529792406272803991665074623572272703782877428834181777103759722473160038345560412735847494956971507765912055360555716931723193042571758263749412086919228540182702736621416342903432312949315099451944812714877816627539686265466252799458556411317411751155385209365462676570104038772946915945534970818491968142724487020086338081562331384486978671681898830335281152076521857732837338483676015072475552787947296374988004602859612970888783165581158225531044483666906616758153155799440556709667072232221862504299693921487384948522015775016036916837651038527586442861049186832923134092213541210312801836015978323054801914903682683999064601873146888422202643462329549966732689131855679483189111914017055022877872591597025954731190559133718338324790716164390005055636322709235376888663980335299721899767311497944726647414618270151335769337263010490788565594248294182682077492671428234661531688319896051606946548499955391194909833137622197275108647724367832602667007728034397202155887739211043063991767780925628151738122408531520421029161995727825689464677289477190373969817581369398529759400771079931880318179462211732547481650120044008614689414764226788768081386335927603681744106513991583448167280579018555600150522028565182343551978559624043294788080786908264906479386183383010047921774243307090832261167376646704569367917632292941426849107949099593513542902045064445694556154591233673176874335438585079112163058849453946156705215318653467167778547347114728525497261212892248995551244719704212415376207030329376645300908255513568834144821972878996109031890455046322392450569700600918074621284594646071318730398984495560058660440909014382698904385270651902148496907871893890993762459352209041256907290331488397663028408507279830424701155262332062366473554078223102249987638567812730617359070623476710787529754106770502278724836075464611509478624200190358247052349331269206513416086842397590836015373696197491612941748756837246573219447239714410553142395291932604970694628883769819302211295631529947564783687810292729957512228670413279870163160361739274900453214327179405806384589315324621164109003984608732459924396972170480741899144262534607654535380408706830732127180870517989576364943302533360173884445148577497756283899426950732958507394495902986663276669028398768426466322024042648390116165106607945800703922844625521393158740744937524367949431775866578414491990880422921027684103695580529130216158776378968244709773301298418455293051629847499202298617339359491056339693638209233872243448226099114239413874758964432456354923261951999389279280281197617886724680603942064046375761859362299762577494979887004078978012000124942144268423682761826285732587444222716484688400045131122024409354825505606038106146900812787584721949998588100267330153331684112764500292220926454027328974252231241709514467906073380919650078528387555133390881848628557228626672405889757013956498922322776533946896240255318518083441880749147066037984170592915926512129855238422953860338852065557718497202396099441610815725936832726958891463521252775123901769456857029728955085962790891514122937364116331951504726930796666478449089914375817208210781698085221733075712719102884645878811879254770766251382632343441983134848496357350267231280784407010404610066960624673644765910814227965240961292247781644648514961424261879582424099876581443163149040757219586336667148982048118559197323733895021392291267604833464072228738689141623147779330555370396535087414125537062463745708869429510991541721295495585277619827315672065769264248572743547763168059017389495994916466496335893729728926050963568594703723762864776354995223839059941342078054311411301191604576579674058195537467970410390667604333458073145196014369707926251066418414389533256239722568596180744448794749149889764625972305993955157864212005827213212876427511207766898444746749601787611396580275568602576900747973378375827104065566307305147892007979858773334517010294245513612649336807124488648192309389280770674566597570014559654914564549524820216601855487961874596771535652829273594447120302105590674096549433776738384449016342769233880068098671307646056158206362471091991295038081342781763921464778708957076237227414832180790188383797833397279167555053926626530126150923265744112108204041867354512522812313251395580512538050327916555005935068269047765662785545953419866890006828651924101565250415855918883317174762966243542247337742618229566059679434502756040533530489838139640216796348629309702303140086289505935245770682246211641798166005451901857716719288609278947414899214157803892181375137381306474527250976315270316792940640709537562893566649360646744085334961694383140091370644448693530906059156137067192777699681232937033842503990242090433596198010508984726925850054216806680295887493127131816798912612128637709923881523615905158927185725003008419019253563828126805629678730725214563548054427541673575543701277384943907473834642188968760591523836105701818677111798888804235288351703868611165091689722709122156997036765810652910356573774545772728317125205614795147399435301695675251359677598305803041688381416553371985039731212354147743580650987400071365610811677174845618381386395884814123444279603262759341824735118834686630494710527974745438497815173383018731423761628207408344904490707743547112259579150304801689879417627745413474100383614451857532017120806441714453025518627151959571388879794126225299324567232988195635305604937910657965705458193488353646613487793754869684889395491077443144103551563887038030476265978837351657838076560300007209158439202772386915589951461089636247568749450545921969858115820401700125509465070185187328070030691882902786947867541465031725431486560613995674878339032143761866797066377731396863993393460263649171592900930620763075095741264365101998447009056930562073495038287825444567648299716524279342199744647137780594878604312836634527940034043075347658459728626113048122027077380199201455593800463871734910683945065988775903854986831249292885787890100184333962322211421896299910896892159854105026317294652659654908982369593207035672957824603328354187166068211462039698842394903374444052290354130914400319054704281974190176010882921438194868187814778295268586238684708535426793787469234660754977846962052291600207324571218514549310327924977601536869942346884187152843283981302061877755164813710544775184899810835829063183398336673503722666285636935930660404475733424046237575017996098759949576142359204637826827880253394100674490103544603725438846809144350042048373641574135471909350882281247553800547748033786868688244352194861560491405827258230852147757708901655732484496031164450165412277352847955040313970968612977103551220272358936686277926612416025878096606721360442244833808378169832385169981610862115026898960319729458923766399862020761370850483247487821557096697117296778512718959684416510999487865319599885255125374233737914203418480920889415819434329771486745572964569483929306617277064766892181617060379534621485126265025995793126829829768588043621490290935355962232257337964971679966863076072917035555631588061067894358046974400761963360321719489441665734853189935941176223143748917884830650466513763090626011486028814473354703714876316139889686813941500504155276619058029304549995169012304377313470833627035621571439948754173874523728277506261156592797078758319920271774865697269667095533386170442391391953749211526496430261852224874142900900466794498998510544396234269277406790646877199941227870119315952281912612136449787757720248262819249135669220225529716380059268649846588202854289343973247397374490706360980972221920444231344768977703558767298493414899803517541816423170147252849563565506003907815916112145223197133821662450032910697575789532229855080902200527198148778805278843446502874006136235027260980802266673670148264516550944107968341525537103114908619546177126505628145742880118174904495791305321150661705626795678440241503683168832795307618661356884618903095402023451715155776159153724232428565159227719564060461983577094849449922460828066257199869537327643626176076894380283386953443670932299277464376125612593607157304740121324728039330876739976477837817608202965087938688284267364452664046946229376207044752774326798805168978870504289115292017704986870351794659554501290578171374399920866491786063905691646196757092128886192401081768524157285467551976871951489691137361167352232677783635829241170313899510631580479517658606334249359128572998408849228911163514797932863553744124428814482225286399293164593990802110885478546102844446293917048531133790314135853847053072746892381106214587626458620569075218185856781740449465641209828609801698673390282994904626275051981348846125725425080952432273696740923033638805869610006711106715716241834526571341195169512485747397182788905125367712844438331103866230185638727592075913691711392612903390065789248113434211148066559489233236792568744977887820849971952570749782899724659414256380038762770946922976983794368372866401278882802592592706797425667814578587126354751791199289359553120969993259321266770122626444783921453474977588881969233879113663655771510678985870725067935472769065264978753476899016612546537530349146704048727549004054315197090982308331933412353541005875972624076277365310120960941631295870967662040945067057873393530626690052166860887571854977852402047436861592779500737761469062630560919937945898298288966377785500600202141204665137645322670957947472036286366043862609083578135232009813952201409648752484820805403540178120015289375183911794907751318817001299916978278710130478256362659529300960060213414641525485866579608037371611540492455501582139559397708841988872613529069672449662173435210429625949108574884590457880896998475239451339312994668894555130308424527782349302216881072119195418776505134295685315054942727787488496448453093265298020994464282468653144162611343170596184491285086279945725355088746645526882169817740493389859848626299465829872297776441344004816034950120006053050154412239190823719282492736756076468898804610979024317956868405034633884525294921237902289814743085498748043176671054971488083200335707138887138219200264011222415249752972523176615177258557869110811194591568434002642536871085841577264458486064911641342004212926373239302147251174435623417807823529003147116885993808285157242532118067415503607529507140124692825915407451724965221472871080568960328316500475300112814917913074162179708306418082315848245410760235995483105258273258188753952019302876093462082573329290238333229243336684994007898522617904476431846647084303977358558495609118804320424852507029088362979832586664685875601365662459981310059314261305761283031289500183649463165605095896122761435559311465218201836545934268423273996784575811510924076340835843235651082932927311532317206975974897375624235340268565783703823898379270324425537816341280663290251128901221706941468363523183089751260539385975292820818656171564522278027548883980355040045855817879316763706867547898795201742083736297920939499535115745085941508669754672452176943546711439936047856123866646141032368949613440668570345460328641284724702376713080037441924239271423762138557821034308918843786187647626794906781318584967778049092835827060519632944528527398358093448237946481694875359129673095602460130089942794087423938941921779925185014752242856530236323040754364786808834050084193728785465259290822375756419547869907421050586903610089577042988675843379732492759496614039710684635767883501065403564497045552345000343862446153135791641691539207105042794005014997642530355288428184919112623647018410127132705878173788384512187989307382506728735887052674919007187647614266799300196044050318411587191679518609422271292120832614258427341946140032704246585381145022522761121590720777149484960318012772097332863995363964693395124025728448808507786225348534234643517549520171666627780651396747413214591283745376966463678082785663429794609808081206826131607196368334194488530233845653773291752827154494945421113313570455470826837601961605268893275563760115023560658070866318078643687372090745961971075101503297688454798954698629409821862033001857763406845235171385480826825811135216609189998584768943300190127156411568043668856747498798275028111757945676006011016297406922367497516049990307496141735932673439907408709873110097565053912833039933770586332953126857344251697346544091389003086014946276479505379556997018111239566205179163869878548177420272928774918216873905904980440338484691357440606247492503228137434401054018483779842196179909183398138157309670452193529136946467911998635312942752398473986058204198147458960206313308877001716162707612141823372467675030411634004475155986837212805067407789507908993858953135973901248407380450862332463186545400111641296682584737824373680455566947525517740868520832599911944860477490013364146331393366563363578803851632183234563524942300828019923185744100885728197700462180003201055768033561885742508290158745398564032395303449687667980274584723798447657345111984511331587776623663136696915007228547136981967344753029258245820720618697264846586056490716245071900054056676204661453313932748278180855816809834945563952416874912504777250963359692735558026891758364676069090102964974387574530756383323294219936589324230244249614472664807789013842140909957731133183352848314380635267899767829186018193558717895420106921652470407027660238643299747582669920711108808104090086777638581540922944048748397542374296108158210936789025531983707863424559409864531569406043836628043584795963751232019473138492803005930490280057598728284939722992731866343318622828019962626767992479249921486473716194666849266840984916591881437367280340687054073862548642348904347615550911868281332525445225570830452492792042816213367062360355256656457455632553058523496110339890757748454829556661482502440476402991330697814441339836049176508147932444826095931933148467732301366826540712557694013720283767679994244329847866435918334363889712790649521084379365579229865282282845908659962451354650476382681267432008196500615589304188251499402496377581406081680066958001009960886730135913835041138710746950141350389782500261837352255743799012161078566340187565707560422112045712895738617808667477180812706935901920402218677154874841492647530776894259299657254250756435854513618452460368070774321647803295290191247595424160596383714745866777758897254127733829284573915493201583446650722475867564401123150105379441479468637825330031524304818477060478194551778419979756659574680083922250094806129398928870153181884169661613795786394329230445248510705977533169410051083339208680088356844608935010312832745037013923126470147956312294834680145731464249798545054190726845618036632488590285947487313726686018779624728428526271690940101804376550343243546251010260602684431818365496655190680565842615097889304173594983135742086269776918214815576895465965356860929664683498046706312649472169373034623782896801965102589109117103891736501103037920256597263104505846045156410371812173827517660658295676225112593948808085656929410050309706055055469962188481499054207247111466576585621753200743205456646260349123167789338233342217800775663942052998200861083494275240728660909532228596216066072830364056840342226828366030657736094421426189300082768502417241565132427152866171606401241749459063506334024388484810421094231579942587462739842761240253847264760142281525429049944454145844901457508121726547759507946103510251210290096639536387536642723756297309408838332636328582853875423416767872866242972857160474082263016991919198815232214380895115129515643833828432857659018761272061668878167230300524128544215535949632335115821950702178888626569001758479390175381583762191047316255737257809204029848342188844793578753674208746677439535354928515449438056664167181074840318129896427525793201186511904680122149814792999559089347844874296770937077027048703664694056253670219106722337331294626842957051626631388895453154129643610056376644961321410528481533342688962736294813335298871883890581880548735052356704144859755432953735096541606696590482787131290178073303678894732756167817826354794897947123805730398559445851780851648683242205241725451658413588334836665010767669191282929973563998570364963778136866318076766850748020083512039220153886410520723499736906622747827938603934752582710974786640811907550263186128434604250224470356229330316255907806500323427887710607733550935849481741610066639253390695169327791785141611088591746966330820072933792123411262228266696422602864861485144148549527658046111589109055837454545622395489582386151455226648347422623920205925065940789494878033320618688411681290613095705186780693467881009642102492101039060315623192579514644523565902297528224304654892787068213632597230068500368645719726886015750361071056638282746190035455761973110267720003937518328025031592917654302213802325982823736993337989596536907533292726923690314734788700687701064285916358983162446405211977641923972891943784845074563117450687060404355005762439238592096593165729779032001484757911296050064940363947233264618441479042263254466220956915718711366561544271547551926614319885353126930364718474341686180964729764623796785167786384524610669049347772148540437678704199981553701568414135949231978874587254038011342800417539671658623245018253618430933892561523273072020868551375157129993214591138448011260952755510657217826787713446911282119907531074668691117015861901695669013129632163423266039956577892945359535112987570562165868804362109106539777464556447341244983803145305829564151390841350035900811886485293990461855911379409551414557100424704053839295862476688116913504891856268539042904267978675748384175896641267286928795317084519520499730048641085317770361872398582998359421332336052460380938984983885113882242559447323242535218977973999673274696900165488532752738450030994095770450317106679156432854322824822055015273599782829358336388147332474157310272585743838323972487574616191909128518657472077704259692568930457067454789856582998431137666733576763882572332594043105217138018453320016179394818753778570513111681318120142203737554029918979175710246885138519875191696221448576212902941155631185976933652662276885686469376166583219453700250893996443020462407103182577725877274248052555159331811773668465763227768368053408922024278277524432959184092895493026018896446272608785116638901693843532831892023572807007906427174037996039290081955522401878582409549589249974111869171713542703180960352048283043135070314302910662798701081785415673765573143072440651465473264001827120656612160123196826493670505911883296018761426770958177758023149281549367015895175005386332417812236820262424159368856872687393596413838586280083279759119323143045734768639485795301124965960096420765545907739065269054171070464986114711517783362071465223233690345483780348843964090904949247249645670510402243856389270508354320369532589154925902286736483472966329092815543467702921347826859039028261364580791669749020880897494332849091647079724623739986642894836125897694013847734586386104799975644144919053042297643327937407846255808987765887182587422779473308798906034382253390605069946061084015870127856232634629926403730940764522690976737389843327528223117703679162933810036841403241827934477416694550807080064100341979812925850178587900807033031041736473185630728786961015687698625559526000523914908121092254521705604474560193727482375042184939875924481389997223194567274376920056239928240072830892895638678481234161891550447302556642672500027893179547354003717822717927572564955630049126033985229584297258177974065446219656251842075576831175740665187481806743895956005139759828705214849060382649599262292625778374769578010685808378345524158501070754600393054856002401939575849106125158508271944472225471170705776216784795971837799215343557098681625494193749208779015644515083980856747895409214266298394402721512096279997397770064480147506346616726093424454321053513638147151410010988274745548998602412913023056204962017620355405791533778422206496897069267340538695746999964913299115239143349778947693028888643867229033194165237895792286484034903323440711188272859806497997812109228108501612441117728624184024572435976502051889747887967661113365036906511014393906836621954016708795651543965251499464993224193955067741517436203805092372953205209486436405355750189635329459391292413615734190460630149785243385096836194474121589598866282688942893880336906768997293413619252862311149018375729159400052652507164574143628067003594935346884512341292451613759151620092282990110515104141910474982610963881798626095244880021829261826171331736056749722924042691710175918285510067443404710796392213997602249522225595634252485370755921212116514063021973880664336793979720052346931424952166174195004320615807455617812440161503703129913895201191476273517448205066779639321786915922593093341052042935172844904338329168072685890594634130719430337577876524307297916098371046833973306143999290013829344417117904981942339910708955891262188645484969200204590619412433915648986202713642056977665662046233911119835187893991156930211528911187145659473012951195588563130540591498068238281668039531133837435639473812231598491797400392893224070990348025733935221364408007927731714406406816158323677656128620540055746840136566369179642934272643028322535262806190968777504421733201779990106738966465617973007800180679352096412474542688914564025864237784703804810987526466168111981529313624441461266976507715238299792024893932324815734234188048303696116492162003287009882683122131383547432760963547941474725709056336054299948764810559255204773209624776542648979331694982983927944838573706652065582397913903886541185867898156196820946764224345300451792296903991278600034193432634994306622170773021060519401352040586558002782471132340730876591917543904203713221576535490067717009968712232402884945640928184928617187000154584677432348379000684907630557143590788434123044394409497449097078397897785955748939153294966870296495773530004860184277804978641213536737313791540084109576217640026013653099197608642215056011485799910211775484433383083570925850362244038085311116713056907617621760860226938200743670226565816217258698654338415298338021438425472280870124740157122670797347969629299910328486420793954682895803671183904432274153402007290332758629175709344631957273994199003547780335118993516008149855249578338223995164317951876093904911479206984953421463715279906897026684473094028789249409600191870582484401488314510168269177184418669105905321486923492141583942129763946391142391880922958809535840283580296774237224775708112496044823139739843224547593642712644450438400490689009954955988465973140901440920833892763602239699963845030092959948211113766199618550562938107094007904977411782814083049051699820274656408609758941965734326112222491339331169399398627055852062739276218572383967762662850107802368324233549735303696718729495694444297480508209763481685496035733517698764291997494717948924281862274099958112068685107670451221128171865078439273563815874319300616433306015554562793191386763494038354483276712368800866531205491256884823730124684573872210062738672717709118459324513580564920442769345602318026567614228434616596254231044241507521475491142608654522214178754917197960091583754984248664971766957367278719243213650952004044069230288225706364744249471118993266596872493140368943039060206397385321542035579023187396954715209828543020020906069055994708886665668569533214964178397857517404606549248401190297639067152556262861925045722588799413442280863167736907356124649480089097632620112769474784522728689506818669602043888269006561093089956064893240902325871386055009337359940816223797442816642617393665605187739349604295953968682704613635463885790450945797485899948549543224373712416361273528339324385001482166447099553770056880822635560715534501581905603180687172999148498201156996172829006577519875374080593510969387653615408365819003544106008857127162662238472902678355016728081692641928944335180598054271380497874826890859413172010584167908376052950298038718240204032771168707327091006828069050173596000489033734331307904896112134461576320670267790641666804086273317917615589607568434447064967577181052285521089034108127891659747651151724115983256346179781937869577498543716886039085621045117481432148105624323333559894537542372995464917908802483440428001431613857160203104348496057029021099790998884671093141749878602461094716790502354847290801623930948795396241332037837547325743094879008870967781280084551992906849586318858486933675791355045198043343245694304553041940493433860284966362723768550116734965418906840448166297449665017402048769630248886104446271642710486864021144656958166367679602481598629697168032752294158631513997614313248768701026817314907211256561801536704421328504472979602556968101149072328126329569389050067226163575208938002611233695127471776570815495393622993558734182042463087976740519447435865395771493767051016076793235751627640960141716244182511844266546264633368896881298498450645812983508513009266071009676566109941144144231846473737144957893956166542764672633015776351149978978938773689341994585518773447155165563680621561099307334547275706879772035481351201752381224381948327050467770795691367290674369782859044357190198091155221680948279672228084870770552574944100048879245789646564956200958018101007318021757120168258615639505193237063305496416474717759481998654573677332180623191442784967267286119807636302016303062841074336946189817221926791631672134819679425611640624046960169554714569610498506292035365811768340388331399431655455149195896816978936881063370951671265537177148815950149964570266284762341163467746227512660554557406249062403337142075732737079046835946709457396819897414449953268715673935306121710279012654447853772127531832448781454026664155573005261399014430331796563791267810483315571713259109261944803523610517243753340789475757075311354956008343547290966076893337990733310326173919242014864397918557675156371849439592705121079697062453221781480519555830206444021021160114876703914445098397399530144189119044810005373387814418138347686683219969478303593108296303978168779018008892428317673860800358356112772749340735037199718432814489760140914580160844716979635242384914026006240383700656187990086253832748391887952697572696586090830646228677609182801918948669132525467582323544429968877526054948653431748679810421232639326509837404686794993069567418052093018367142415778186755530729769326586235088892795832987710780229829191173614642140369888026433547688914652690822801972575542089406075953543134342731518137598061295553260560653108729599345280036297372824023420959902994388802689763783538508780446336561520450969446623222114096480199418961189359954319578407470907526132517906778508399307759136400327217102913573973297934966818623077397479469546251933576753634027153065148417714626026087387498664672072198965295725194666225678470590903383932865475380739250921280368093722589249221789514207402895275298400434704520028848030600507895518036995010137818403173042278800901288406840364317145712284843817099747835228259419359745646225948512942878801545276839474552743361761701006886934301688817879207734547678026607128032427957202394618252713905339633141616665985111968157042987981304290834161730836697996103434802562367570905541828720698740585030881015584744179506640890641566439919291208433733758446252453824270145186665262047081528690549201387724943678368988885070188993030742262162743527005079458612976240672895108842350353190227587351082480376114686941790688743797723563368510538752984592953882810277360344114164512654058849170370963346494811883024074505885894832099356563254020052633412655672504397935004768048402991901534608851667269362524620441648641872216814688387465265290564400466478287666313593986883593707084288396436014435787169693087912515534976148395310733936630077229251585884210929636301961911376679118382376965862906890783714774099152080395751254179559322147221107574708178421935209814711042249428563926887664558405485819884691412151351183292070667055906474762926994055683804365244084510438236189130684253616453235925355375621286670322926719595963787746336689041810329817101755326268701724108849796800656153079048452921713286032586404639195033137159262390338652643747584233257779417683435074814820796122090019779291468220500822500282600365483931410913733977578517799565929774562822178443843839483094923025471655653323844016331237650588494005743811516335946573057343216205572832609286481227048830735994137553701697042456713131720169665401896777274196059282598952484833935542020806801100499518385296646943632966030273571089752048958276110232362327491435389643668101843482682238137019141377736384492802276633199341911425373691538344643977706947424176275126767346760908632919051955435752855298770327436389440637397110215708759555183650723525601606331523520700252208475198410579319605622571706082661210288946735516134887814969303303248806629638489507004645504630535491023245653987038271555589424951283411941479659791482994667458913259198248240812416867760726936745619555283147873512831372928764776418442135668799611035465230012789702163239967890414361457328528677565613571139423510194453227429723246594334954998201872331250629189398578992406791419279141068807661999432172190967945327441094974849363942719050974966631581894391084382568210054802543363578832991427710386906920679440087932104976654576100243903040449141741664007096426832936395258906359767095630498009468029897643439103548973887861896017620313570421267950194219738887506215027152186543126883377269005885993751350160512821212919024727452822787834516294597912613071695779456479516008856923917353808389563541103512271312163556841538870128313080786468315372555606357391587642930872929217686603548123939731318410619579177069375672037993752965416328935245121347500140097125263700569485920592386387656195554473353033531298319894451891633727316622177980102255889514439486159823213401468924971224058536012779474153890159170355952928472376564127913820033735288357467246140785450957805051883540374404885253393498972620577203868159737186622338042798702457990612406567809141074893521668619690174426031786089359738561272100836110397468800076004053333040800412000642979178260550536002586553432450568862832683420807705483248059176046197976899597579656819481504667149420662863108944593771223780910270610785672991739653613719002797484143585832040699500212311398204376427627477677146766635998659419705322308275357801836962335680720155590156068809884031503632248257078572589515518677523025507377385626772649176656363334467584121093559934275401483515588109508769446389083077731218687318427367533950582677450989146227417243429761801181916525248518287877336869611394338607423642396837330523636158009788479654792624562995826825033801259771515082595818582445561203897090475355210683682207277886826367112774730940674941944501113810392617180666303848617948614752868368207637087859452735188728291072321073215573676840432278253642556137239869342630276511479037353164876374936125445173153154322237746043577102238138632747309434417640867506499923162592092599509319693991952334150046037262894370185760237659865307694863409396915745688206277699810069360408013094403576869942242167591862732667232558428565683193643748504317982001598766146049313779636812097102779276617200224608534830746840193506786734656473745291892261467347507024706087149216756554754584507766474640319142977446612614246730938175021425434648500496826101007477366701780001342672828039291264409452541476439782387681176882370341150708173639341925448927261014245538246208647120672409183477231101561743326009950126626264654616713905168923036419160572342084057224425521619776851510545145897967512530931453764367172154508809665523653064489630754677691457872813754861069369323783519133859640223520671029054641898552890484356696319806278114214111826811891784084851068458720470967137490203044053309850275561021298821098750347406256865747547499395483746971579498039921850543953165549236967432961187254940897273129140071751196940090681010706100551032338335240534893684603337837999222499437035416147080403338576864047329779470264718321406913938098983431904968163760634771632560214235250079789840799811396535798913323054500483931071101510774677150908513081740028538052278501646641374653217674835217637782418870066978641583915368133326680301808583922050893348383481466626284842677262624765333629982217970173945025872594975635692994920457770976491591199106559088400813447342314779582403108920762812761072315515860319087600503340748405216431585016107752983700596274793353618314938254089265775015041487736401559364761415564487607318926486716367663168450178208856197118678522111536077067877119564614739037268989391441478521494080534919611927097050930337855684202767106111139453886667803560322403139339035202333284432245776840040887055375257941040972901409100045849647255650244438622953741558779284701728898132105309806057671112639534737164627012625359414835247612863296999375567273162652012218161993920538701761181879200787165449891232321432552898140722737856793281487821875705302549726250692690478032315732993811712634394077294283976724943232797102262059027138944648733855808499626584896047270142277736525340484419349130014560276044930797623672878134451907079715198021887688183992626980241666841121461909103978695167691439747841056162871212775551745687869300238480046867082614080152277221436365275372653632363465958304635286707091964375747092487624305486595497351461524003593322013320489623323762781801822620695780970517975824208243857307285150335907687868467359988695533120424556481765891898105529867451124187411095556236980188129603523758268603113380046859031327330799837598772560975612536997547008437187154250047731601295944852794504199644692947003530871975373603274391597356412816103848781764667922586418479416513179185800047637534203351253884705406165725102646466293479855707574840817651050274633736096714037694475085171466877434699353331464219253204265162244418491962067121774827580366513376046126588284044614690647121940804256347786599449581293698511807797776220153576742715540792697848024999788136669625566123401403128688939305921781474722344527795818943864334145207095390919414150814505754138740384159176247643808343137317683783139187279516790831826208823688299763331616993350294630700053620777063867014852591918187113091126587477603059216161283256286693101118187966405124143757529541325689226977993579014020869976938183348209460990249096996236238462351378685297053328994711962178991238573541767898231997332811906800050988941727915524517208335250274335928669013552924715980134708826370112016285897833039494613902776506602536095992512789351053950062279432041869979114344060454730700352338090375354259384014960394528082668998816451533308270188107116127245741821114145655276956729640810568433548474337181729206031640327233767599691184375058178690733128102638814933004260696915953231088732551456793262544448474582289620322828152356570982282145239028023944088864229759607968196359984495608684139357002560469192831254775028439715915937179227890380726596357230940232434402809879940351918394930216135486909924315886586306330072517111083712886807831779883745813391852131271657405864133541782744031757167525994581965840505304317853866589609382557327110785137571015968653517299843449156875400806462190552164282059565534649982295730887145984781684071551867665573499410512469480045132068452478148712383966835505196447113549720740961193860987920359547797088540509750409416572258331109563029950994729564783115716670361428430879660539119481955715925537224395692291900077757318764027089615539366787869589112131677788162534492844791533620485873230772920540285280728581883101874889872201989368607246557115644969035474972026323119320083375113516946882998195235579683410984393095314634586447443703576097625417360985691769318367165876068607644362885913131913627272766961931249357589599429183673759260290894924697367282628083320398963225198457328033957554505979873930553291582874646805137698895693179217251403587533327997253646234417597418905262835448419207284711201365896793162793619117914723625323774841871557751124948423874466060437914529419732530899821073904003503082912392949637564077297483219635418335593479359882097476385875123592953146459602884940171603174372839137459524634415182004880421777856554612503884580983481594879300855418561074262523576820741639274849359862090428894011359778947761571495095408701329878712113015584294550165744310463206323296726214267672206631625011522415313187300012601698429272022243800833623796235945499653596136612230915106331573896543656907127262763238157145200289726415764008163811167837703211641765188546186180425494083576741848305582828960295200378444947622987875834142491090572412644408468439127585064322964118145926046919522552496233486603975778108243392549000154310367274552105225414071711760846504210815034021102282013003401720594114479735020272561438225010790836749333147385905270193238649540940128664348470583850354459835568370947891094295903241542449105885180601274293549935345352735798254066359744245694360061703175732932112911490482281322109486476633798271417654909181256347674465207541664419537572404651490166894502257618165617320297152656898938399072796679345192519903215015485792092716938641141828873493775632484544977894455630660567519252004464355710150045819880613048744599538052780218496956964799281088909259255682181681186919302867818731499485798328456470905007215056355635737566521836342792674910574726413588516292021361818792982978343330318894423292846479489835039163017199979285493168270307007559100222528070073643230149629274500503469031460373988747094232403399049853744720205019546209429384712520669423662910291277121384281934016826908244241715619226533677590162780886342033314589571204184653519193513742890121378345238459432924119443372999456114292083522674049388277618564632381553508304892046736353124139583371526996633144485531305438015749889020977926941266431118202180884821151027966486924504677681527985145266023231740170752925462059172308405676086349640145609299734900457780795213564522630070847616139465719591323089489227602618452983240973401793274445775834014849796237520487247615561635448826103154581894597925030014475551464843847282908778163580238665536727876862458841158801207964842170708740619937823659103377557186420634884889113084267128924302790324961573475871942167519802242121028241021296816007134952963806540602397012055539805819689259454653661797385765127518123213446006881347625537285109751947283824965818869309885224417804648551763024885945021103605273006259969798471228718533040056843715562681010183623819935802100145961244535047308660531895757873040817796547680997408091224607637215605035695362594488160278597190452829002085914767475343334253643862786318898904145580669434779567089189047846757170643192544466988651603462579161545087825790023473912787783333456174682675986448653938567058947620329696746869702184026789888983823683657573365701159044224104794734155604106048143077708013680963719388634714458660885603442471361550712379262098100940241036851932163537924173764649129102454027630607344863637499910487530140984990857373959362055876171137607143742519799846344120240206292355034020775122709755204542860588813914288926828719313911480385135413208282227345436822656087400111886674301102250563531085937767788406947116138951913234122994771510685755596240965511379034423960120325924781650413271221234441127445202778441081463110335857898494674476206206258615423360483505664811547913539192185803995307727571169369674216083378399761469212409049886646949386074574066798102434767986825359320015667098080592263367016948767986298294156456674330578178842672508958302106226434151738514103250639471211161967178020414359518960266243820374299073094825551539794140074111787385938348728600232515893508043681927854884192407091958541777610893934423516812144614991394016523958186886066603883242180216803194898558065762430699735154055720901183856833282604861015977145552108775280227078940256742423877228004399928994976596708779795019006390568770790665447098666795510022420513397656384593459096821248268834003621198988620069043469002324070546273075378419582187678622404726537691372199142431355646585085144351323746550843943810535090511044307171955504237105483113208208852669513949055448113759816589115238208321520268848753916401023614160515676328668126449039325100068061648266264631194452086683248318747066536186970149688832709568351977661553003266667480305037264385629476762494328901750672750215804889269022660635523417605206117584508245514433677128582232238330706847679975818278202153087941678939721283055720383455286852936139124115725559060548387768220525326399199160173803701914897870701636937631762786610528403360654776780556914068591379508012700451905532637019604478325615171502839130686716410833718550401104910966890356026492632522816278834884432725424897203956715380150540978598408523255793547981469791926241779163166921038873722953450329184076234878111473971658726017561258511111049502426457762173513059545982316861075557900738839270762371558737831246839085958444271061921175687187602488582134346150509258888839193453099745443661330379195376958312244621170722709145475457684265630244324285038839333107551162590577382850963625744941006292724318038820864226657773111738770332523000796099915409763774831269801522556916916542314978857743359626215392544581916621429917141366879941276513904662441979337452336604795810123438910755233686420835357418117484180930927323592776769298023743061116287041574809427548206273548984973715429743197116450850428074945598660967234545385246018848188035372695560224686644652240179843529858552952967192299258600703715164035229134374940529864316728343840946741640083286630425721501543468402778670804387400615952628081131805905677937188228392128844171805106511148696961663675824813676777774019011456056670057043253148038262950201050084466272321182844460744438885960297706220628618625368938652391435389508201548292811352069304750952387025430200129583746139477056819153656250015949219783733321059743663563343656214106847093184678438508208449680845426774825825089058679923120027748616331081948343585498859935118751490213276369186037451084881587484441523784392936763416369040304950501349191230963238114762620242654757616307703316527052139074882814863245366051171253802825959564250749877065748282754884928726180728945230702149987548640962183903008414599838454819590304795001822692268454645763234242823170638440132143572619219833588071949553430599539755679074094376385974672377667087993969357193358975168436313754863526224356391283574992416723286892247689516501053787246211012613638465815255285469194394145328663338759533324931892107477835170535014895296310893804167593512460935838808909446673503952229710389842707952543017053902192961553998495528259645563607126921877399955040649701414867944759416567686205714184766147082413146683188849622038414785132460419864220123088073825478941691237753748142595408319837541190502322480064360001642589389733241046988622798460757314924736151273474754700574381358312612892610414024705409831731901110749943609589699526473679708167950021174523979777004725441011102738963179867401975190051541903563135107196096203348807068359465058379472969462099009692642747674054371262111758391142367776339521359363330089905796036572192540660755753210181800385641919391999393405124303015592151432826877469178667284233316055918678214547071646129294088512737290417058663442215540208236331281953414414848733803109757116823407534143827763406186204081653655977169690796264924459619843617734445012173174917180646684767831677196224582000039188411073977896791915636965870861814511033572890850716186404008336195470003047248055566525873888769014569130481957362977696526772035726479085897264368506506756480543537589153168840967278843374593127431594292494265830014449371252607037975645788827940796338941867032774709542114017087198448726606231931111039246193906809394845962192496196323395166262005672593319483000336795635766677418145667515483711903711248768031761512092155368906690251460020914372821328877247035013190729993495612865360486936017622783397063836119460843974399466620024812807500420479032571263543564815250349340091138191165848512914702666290711912940192356123254097060924728063439246720005193278885795521457464328438634809292257723564000575564804190275292639723484730263715827844699218686175676376281954954342717474645499487763423021529427970922457867010102059680554407557810570694222083269583444916726385537538161716032831252649542619418942974479797236059626599777903636166500445964318868247921921136543295051242292596565286246395805687317693438632795759149817991109856022714675187940643085365605022786935532856878469959073449485834787748607884220965193461709740734524858642035426320079707063615386023384380017534119738786888209236040937673209420291254988243781566145675998163347948893917627898602895938817045844306219925696718063138579816777614074343461788128085867907032266119211854920345921911112441093244240363990865396127136684993465094613209024213303463020022650482347933950555532065967779010513615463298645656976645569468534827842478455119051351432649085992812315002970974542207691761800324715344765803513668383649075032375732793479926562958136079134705833886069235546976505557069660402890957902796371252003248036751287061134598622093345150056022234769933988931727480995223506218086201257927255212810488524523398771475200757403122063686042477584602126639141090099894862689689723539425175165131444480250659342562200675078183536119290478175889490867670317536199546336698829373565816426989592524547210386114610474463234700607521306707295362842754198423120525521880112482971682211830457706192051326731837624406086873929143405012804976799161149981086745932440121330975970631040472769417235200081466838749418741557726173866902247855718882681248503841158329510118415154244028548386911512213981734307039189357902361254228700737115251356156059846198332068652353960766553323656489665362629516062467368045730666635697031524785674146380448197174598496919180131995958401204302480392826813085803526520990289445108512399827935815813843204278823035992866688564632467117028298760426135042871530890037707702416566869825863309340208169346376757124568698104910607605123126376631129006767489713028142819927428257278440267360414955207759119178060865468003568788584742380247573232477861854884739074886364059291864925790695303161616637070272348612912535333747185587822614184047989774962532585526126727347598404244596152352787865694393408235180244129468700211727527893579420427748987327428360898743701181344016121573776146993418139129657314729278044043976149200235335300956434257130718731592049545953586199965086904593236222580830871336559805967390937954289398570392596776525182098465885079862631152897645290321550575451260656595205130961012922790651639314348904746753150862957508990604820462967905665553706533563980540790826586602042401187565588360241789377877869619527847191399712633816858009803276953847855220253898464100894821939619339668933622508818265784102308855081583220119651564886675472137900309842800717656274568806100772629569051830623364653571220890239297112066209003255004819429419149746567033812054502209005179852051353757215662408624457959113989639421394896444016235049038923983128214529873038909527638121596061162261828262089068374390187174078953284199228592248298380226624780068117825785629628849437515034704657061153006613701254295046818099919166605785554023642581020215639969372401913903144792362871269808598691625597635707817922789947495195231017251957582110892206692957014576732515806732590174101582948243973951521695355972963667395981865856841002124884057580819065606203182358434195195237674832061075470797547101607539250250045250811112635107138346605955692314707812249134224435685968224146719757420702995388891620628984704921737311374892248273154346340437402441118520445610931712573570439153511668679397715645622222825603560827645595131297351718152868290125897904211358375766671247296317670536060032483205985673378222375244589477434478763224024045483603715959645384236599444289538628843787478603722750649751076236530923170707541723883164636530437910173848622599887622316700406693980502249332825712952776450112974118555267181560935968607709649575924506225939752070238036842841649936546486040351839935689991724515132285234089325078615954380361397055874507199782323633436683880183103384734331831917098107606613539740664930340730754293238084073492811184803946964823202062207946936887697766268596015590603221288814234828624234947310390013256017407800132413853811034161321374251992282188251443161491425015525572557949485872328455515521272276337741596088788222291449851408770239805876677730709071726841915093356835225708595575415906643323314022871327747303115345083837155028315492588671362277559839481201151966882321634312598155869244525383787351381035264314567594210836750292475729385574117847544450073896911859204238925096939664047698982355472908725104193686935763107284106200266629893030488629773539390427242066070913684005280505189289793716974039538989253573482033668404261033918376601400716056914373804847710504041861966254718236060118286782046528759885634666656592208522180329901322693888265500018192368761433302787069826927552937079293173204683282306922213110220367469117390265573690683942028159398651442175416387817478541460815733032690219102732677474787439334894692840145858685524379002018875514468892856187438761657944762981563347044402165538760499491380268926090585736875349321572150367561083374811123121815448209334746289592144075430740240334099406348347947285482334172768667798710712284171562310456380838092767769398167314024250343621383050099559801571520181223777962807918004862457252312141748395132096860321737218100401408045026157201230679376555225868854145684153007198794121301358890924040314608474993168952539407510679214758751623621518093689213720777272132206130680360664050647747593411951086732851693786676594156645524489219229272182552544580535901145387813657244275572971466469364350581724277796626647833598423872231581063210430873532125370285329220898289073714915410835711087812165963363362913868715252654410622234968863348986742545378360764186278624029808729748603978418011981541794711039952223461443878700474750047399944077359028471738466153282809386818809182997031061755480758598305576590090961826816551969231187215967863245058670143671489565924272019722272711887303387414112644369871882095497007193635843805986489250464022416826442253881534339753627511359970136965460219075261915725795477160933502826332263722281939117534867878449938974993855968564740317702895211195832408383468487064971765116972656052576252103552616197615895958850302657526245549274420751433436342954008139431687158600068276547888959876877556230206851131028754561914973866794081584569721667119215218649691570665433073688372091274869728803110206629313925112123605837521924196042924288253539178010375816754510232625031166360345314073027679031023350293655260613024451956814114500755588525429075181696290871401823319197128703903225689424697948565901077279786183880090533068352733936195079312439710746714878019605808729221916573056963009960342680809620691676646695408705706708585841928129134991614014793878906740719203021153366812539226950814687919045042299440268405491379587367000753073706446796070810921233282473728949290814924434214893116601237287737161079903400951560580337202585840590792319227781113143064989845064304461770780424058173898688358602289117593254586961886905758630668874213489546628451649000775909619938320469190839701726820058064297452922217747302508728322648273769616907609819910517807975443225821094634376939374842300296339376645701663854427101418537260998007264932738495247472085639741701077690282257918069019806392870808685090119686159045909284264285365732309020005318756903540414568184698234094583659900695581936914882319714155828701444014435979667305930854509897477702666606511804928515716123578619558665032630018243222986910279009562033625465262362424420705342510952007361490338551791711025620242727124822906804810146197112674131273998745643891478159632222930168862734865769757145676499501924847395044025912398466072198598639599502505466578964256179122627486532621390010314687009173902697027257136399748325740788139793773944062798917398007880214796309749386962298820849442690533946239974230556857999495284374056292045792964590157649851366417289001640387530406773789479428722057887623030842525644565163512521496315284250607852819596977248585845918358471223545465868693556725655094329303069741161127167866689701440471359574889202197870080117386569287679708707241527889907369441430605048846266608322120769595913529443130716749148897709512096641879422541234375772473310655317503757858113212027644858702313139094244900191869594160703333989430576224288034030359929679183189783745290893989666051497858596231907502475042507598790004319429779364888622508913492492584352631909419362270253669310136263049882797104598016538069944346962019921607263140736751149824499898563386149482969646589000493191820399760173736622319958889207716229344739384163548958612378315539851197931547870592364691253620828687283875033891322034402648826089380423431649388540865346400408925485727681436880336850365319940319911514676033266429735500653257025484687776900059843217407923304565069258419695726559219397639301985187823374624777489643061293767424196999864053480134058329627994701982545077032863482355099860992822785790054797994720637572462465845860231283870620071138564584244945140445384648681174889727834704821680192273946086565036117443109560403255166610569645010617156170191816739903188242168739642469285751111682609981371734768565316934223114097210263226775608933649573156281872952434001037301313569023522577336384348066383085845699671699092823080213219581347126431310574358722354451887766334510382800732774406526896972606340217480265760115927020704602126654361649339363061053834787219401082507568638283617494241211946091025365123753635715605184414410849873326229670433874042709252275170315074142708586784041358868113202807806836784858752044539889360696169121712089337225197199105871790052407532175698935747295802725586852238726014691827741176572084932516126526251681912454653512217409744644815599487796128525797360344337802256937545266369522185474170450299305070211189659859290818839373300547183525386058544012060504527067778724899987243132072471220159428859809320602847825014905054924931796500143849360809192917648069456226424583686169775552175289645514648977174487048044901189047268521880893653530192758487919914197574286219560257636530357781418244634409454677604388548739499438404013821264713219357440999718354289109352474947341230401721853493373404584243729325546587156341082326667187421847286431942218721380358408120977984079692205947937810942213461949374145849229880785148369427024071300734942837310571172028674813931800147581472954025035623702305846070086820023092510435372702554289207429824352812839193461784115985888419059687795132628655730577850961617158800929686542536377600490224051281800602961155696735477951775745979344409536406531723122623658870508200769523994730237940860036116815616671310841405298015296699933533261464177407479460469522753035239004805247358593206384941296863597278283028890565797859134156187040390999379618792718309071143843053291591541507129824511437227976017939063584256370406427768080010963065340268822070572051928132610097316557592255877209808217651158947924378515049349758089266612603587920540914390367003148692650065668245546649621598280031951087614989864747283628493665364045060199448139719205982790182035655307664741401318483180013240702243229222006914821864628518256370359755678951777192983191087640886284281286883836783584801968877336725813940689848920503411478584526854327168699789457200660079154691802939902794886926955190185817945414533137898675744479169402008763769713595784156072028120754667124020755689635265024255907068475751011331508447480168224316716262551448312510850325014786635442136583462691284359395093980053371460302591835877026928428764738182027486905332932757944457944533091759458164133569627982558393204004929899801157595382142094797699636104882032826397017051542379196460000480627158655396931622517465512149559465493323666153172583272789741565434295089325457702592990427808772060930185437241700072077889537145151281980308268656925882177435093946620523938716927150069732794232958760631997016459072859821924969270093663062870097424992963467651682200262602081742438585198886820103124082222699497615323516308411317914947168301608803322778342519523064725727891762502118476305223683366027402989901884481855824499395962753477003417838681384385552378369566915643185226033990718130995219719617711490896151513385616142510955798086646333899213141756844686064020093254974099823799429239304706353066509234889234499951995297752671730664979362924057199221236466633410361126848485304326525214638955937619669068833517445014044660623998477310952950782598467880399623906392428439746210977127717108264464590809406750933044656267536947974661008634394960454115324017000436513487231285990275735487104254656461477255928157501375259777541350635603451209902047367721211719382523353150383191830653884529765128630325476132254963625372169701798972235924745190643816192130542261321338574266332513108518435776459465381410905253264598946148975320259232621918167287159543081732286617305367334256515548844282599330989917806745514256917196099098487885658837616912538012642807048706568318155115553417637676856572942035913023579239029877093163546569454538385517157999303375184535997976781813873144274649641414231956537843282608857667710615198531106238768028797982988009315070131813860062369474814718307382320821695023606266313108546586329543083625960400926467744662923669276179901520921873002946567137226904214797917025384562850387360077664877854328149939803801437511648637495220434499228362243239010206900484252444850612253100642804074270530559795043318942194043607265645111347450541129043232382995845899353356628034437981476251187943953682078140313110996383870203066584941503899700140710162845838425791383745868457347687987504291483950724976161267823347532676482250854079111615085890460831605119933150749566914605087266310211458512739496020688248126601053623876527921270877341754806708761211158430075050317015873547372084578258175249715535180797011726911882242178385852824549174964925554702380919710171182099690778124688617966178918660128948695811507634486855653038254912145873155389049785082930404568907545651789477512285400875209513636151010728093990552598357952629755796534100868912751476021756264279333703897915948795491159516177401557593005019764374616357873448569106020290028571874724904324694089695477822889113925402834182435129314647937827358242366140961510931929480564377591979026309872533241321858793798154263304138460959195899437670737163589694629416944392064563128092481933647299322774206116445929352202545178748305049431556847437261731809228533724110347076387275843975947317567296444098478985191358374896294525127726209562142571766373710006580034579538153350349324786827309098051536073024306879645808885632678423520074192963494540788934045232974871236293575458979030348856672150322331595621118017872148086679555209597533405375247224036067321986077687612405530269469475641056631593326814570453444636096242708867345302417230134253297003374207003779610128425570869739097216790805469245394073281508373194184034464765069590842244182381086313242902334628823927816348376027321934413094887694516588986210923967204710828789218166422378996950004992424383308397433787405844649048008690446811178563575242590858349839022373579292150097090569075490489277285763016217442114810193091987120227538965192370291405555842427173068165174020767868480143554813993160326962999670323473771392534624627695825462580069292518588031453167657761413806411707782851952581052409422616933601020079665070211867993225937907005863355622809712482739217916346222521899857120450668949166700852367245094548576458469501065330531056221133540322302328581005642703479487070722896168161160390979766940693365819532679228348472813325665909414480175660695068324955341100985379851808531434335883902685633322359256581888938373303974258990088550681770950078036302501187716447799986144242391588592435694153755045817806242473578627314949901633826133370170087283621340894723848691016118842560419866299046398693421694892964973413521231018812492653064631760978323000449867194661007850875973828554181793092897893619530056848090824011660338917044026172708866862889564242021202229653224813252340900594986457756262473541654665100719503852707384943356286202537882411249614095764935056375004146248753567172447112173862385665537251460526790743161232979765997258424198952858742201155075779054209617033665672876748864064842395350397496010420780146471653505217111159515480903291897616025616743582106219942129449148802159218137783035836112808427949572408129830334795098472339404204087649283597154907026167978006326010932471369259008796727588900121516846885068464233769763153487940700839131660765333893401736460143455470510291198579942604441505473359456437401203577434724414139440227105490107601247326042855954646264710302351744066602821617230925377971310071347492970220722162640241853445623365707586459304503586983104213609884739105541599801121771673961989931260591835065528527448158341891259965924732136537996449301656988019702902525444139344935637783499877733579266141873390274814381200675191859947422117698661999825505513616157963460249727671923070355547468815406402826169545302479534914379329866758445917462468147131013926756116778098459457013986594550392843744108488277647176852536062838031468781045731341721935284310420855225791912377206841002306305237640744185031290770442350220618914272168708172091685682688388557003713131978668733713155443412871384610721615113253212780107802570658739808793917757125268110498912482054563097898712400370298852892564882450446228887436994031725214817040382435094531127018642041256239869402464793247481888114669465636594364897428043683266798735816479881406075346735716601689838806855339266830184344829838874640608613698784239028029977015197962194312734431438429366260892581682881725354484091604287892954539433217680962207939433326888245145665599727487755265228775282272106522652061829034979164318552524304633406104085895587397413721454721633443916007364273348621423405779757151688631837600186372671539979226333750645337523963251274797553971231731870199125200122455814643215830686207512741252682257183547148984050094869563941239145633482599197491142789201718699510697927307290677645083569521479399357418744618993181273364545473307057690575499798835616593267389490482088957031266141521557342619263073093580922613103282400429765727317851485174180045329272272392147288661013372823100642352742892116025919102861982722917631052948682795552258172896689547857437208764770544936309243260202408406555603571580806817115451014655466506405242487751623122313491511032971208316974098297643958400193348579304210898042896473401441987805880002046084470361312884275379906999165966851139944507709264061685800845852676225839886792103085415591707189474505636361467124359494960903249448027118600705122811886218085330186445793024892270704208128117776225685192814000688164988572811753596250355742934484208535233272716595056945248378234260478774413237764998724877346895876338635037101886162549480219797330389718137825048599054021316514671081377977591404725051075901086756890209493467954941040268757625789159800790939711693699403145752852215705082159350571290653045551649665919221607379214668948330683389999749070909533381804484565728216478272545700424900229564230374015794857199438020450895187211854305555594419084576854147946120347196388475697007790178306939560198131027063676550782090509486570197911709897506357202194067846558838036265441822193383299557283462034773980206864938187952610529194744517874063129128353896574632103680880738365503356677590647910876423720213418864167003921107912665725703465907075252805155557337304471902189360525046073964533532834536674682250812564161722416049467261990941571454463844414906705815202829949563715308796583299222847978363852244178328080708569449518311358932654251449848922267154946286447122354751395979684750542357619568625648533082840404380273537919780593080132397978548087232816615153756196990875659080236415717371776167513940979478538746746537291839243460964915836025285422847629156819669345754413903552754990965403464974407302432496263827807420578689348786293211656223301149766404340368339092350893900584984212308471220556620736524165262819672512275316995645753079915423418077415008436840540155799662964503597094622535328636614610920521488692916476021732576313702728568633771039518178983237039489528813881012068647761178389997076359034437759694127316255708874984654430423491341924769510227358559090746876840682463449526447692596619786558260587650500475134802817341462773373053604552701005440130846597854439066631640276409146695438575925696943580606696459328608718514650362313230619692763507031109759395804361090623389731359549227216369882266944037644741253236860499758359989131847248561547407192293882948097547963377101472300224034859537894921911193934866876660746965008905852202655315313158338751550183668290658537246930869098756302449100283635103203903254222149370250356979805327690268840025674057362265622322754851043936366172119115295557590132197319616383991205035067700891999370588027213053750327951094443929354729530931054852075761865530458351850292543545119181932595363775019024909385570831013915585449466284867297338916563933636162548280501000706715694491326948864703798455017098584568415078982766754044471327439390759561684494527172237233584311696833594081743429704097191441272558383478606109967675178148103535822314364614662051052637500040362057567203279300975812034686703592510993729123331507166344106755388870803321621836165919813458965144672101074538861527447369987086537261787150624994663863084412034787416929145224149695692416753526664923777938691679571563266872520960393717292719481597495804969282704722971120604642822978735660106026986687046728890505841824131126560748591534462916704433532950304206061909357544081345777228667144749323695761385670204977228081015778955425048597851158227515546564446641244995665353272374500553167710390126628750082013281413468755741075079792382970768987326321730662419756165020891766877817429041874342775001826299361424921820860012874462610167421224900262959510400455747367830339206275564041990136972132400653423035975685917491089107258784707469253337805952246738466588126915460862579544970075112049628022726808666328877538283016158427970043472338380444946295793676873106361480950240644013037671397304194587770470413942120069852603866981309403074562867777298508738733424008732774725255458886030947482043670944920178127388067539937313823599243913627590832123887442045884527038451982658990338792898295422329230967755116360854999566456890540119829055445073488944380526166966812144186498506914562911481696690943189906308126953710707247563308350137472907088027349384768615920196595980313250633399314922299510190072770514076139183774872047818547015527467640244127072836282628751068277360050852289017837699091761608442261570732694515517082623336581859951524146278356731196755230957370922203982526843223530308284667508827920439479455631008629294483816102747170438766881724589704918624014644143193155757816809171640850198631093183749473507505668110652312391343705270374945459063711277572532404436067467315779221341687146723370189920226578178790427207876957118373764280118898972928388541658389592525103746220288696002692961646878347708869614038100802608104594747765369791805620291972106573440963565142617039435326820738861258106027823126979396173213633368336010452885885637051713838209026388452500973782301263155703706178631550664331310961244460224112369213699067323041687132694237973173824209929843923196182734345449053413896643230524585483809104909714991507021509841669738031054808320364623496131129058653044849276873296859301429091839517794853203000157743678420173973599474960743777474811996512953146086377341242093827492841035755868312709634781722666056557477065238363721873575010149507357759458679276663113180508429282293006969600401169098066907448645731677893074198958190108739785397201914077056280087908820211480458254189364460209784763111461489284919621613374243064624839343572169870117962440406854848197528208456866404745582731723030021948718860172189319990155345392573162773118898082958630448554421102714896861562707512850475303235409928681906459857822032841143741978446695050285230097440551157289809549231748301339039915048589732528886461110213136259976270472362598160008061627138356977328570209303686207283052477357544403656094048123070826980909020285604113932018923791562528355488871657574549094202267513408837733699316159114634777969001919497479505241421196193697165141036013985355407468447797534930982766929668153259597734767855430154155879042008869460619560393522028336416432059138157307966530619623966753697933584507208082586111187176669173220990733572930733212769049962167272685184944815735483894983768321616035642638153617272649377866753944044596403391165454464077377985232822105484131778836658287476421346940457092666786201368758283696277488557381527602699299765994387360556169518599068663394380448826145450184421020067735276224367649500442068454363351588997224703629965874932964692075859425699033146533640709096483324450457230485469327247670311456072997856682103822333728924581114080050303193691833934834122972885382338911914903731539072792464433143364879927057751380351149882791177670263706279549990766333049171706375305608519969605983677507334013685278362370296538478519749777519874512593689074829346674790025113751686701308075913615518945575218891442811633426680043103400400753501535131439323539795004896472295341495064027323569154960394332867977868693874481091193516204537650471657764911972571279366096510976403320110941054170205332299256649271299640862410298574100684337972703457734484827055941635565011639835422148682851043484591046682832721415579031050980485238311961126741976174814996758039285953250726173537378145064614615512514640982389721931275887051268563418995226257708587450912378109777254780525737142241440845281650586118063838482862536052973725717834043547368070338399745302670027301278905353324272670547196730516229430333689779602127653323545456398927822654632405408737071157943836168748261808861575163223921388103535078622823486236313759969077535154010502608285674311904052809684224333716528936548488705423221468580091818650168817688021645427554809187620496249495107457746644987853102400748539074267256874673481297814710664733809767646947526509168290420718939191887715258127660659913965655946478617068952139031994716667691300633777542541839906838072766659682042119553725489307292327851774890762927696064280067768722082955322367983587068576003644038065151830944842869843721656221643536130639043297416232517553010467904378986241222716577160102040870930014188488793637237418167030689551376193271233209825517786660200833100873638713021386368355765995136811436813830877203164993017089374137105785442980915177253062123739691633348558953310626699962414892562178503580369389353795001846921791444090142656477789748065889080737893129191930559943427143778476290392482361300956048835868983131794755353918740206484703438804810600332082593407915873474608237673842679653544285575018984584940274388521040700307767061631022418265115053304744187885206665093827572574714229003332423517258257656544220973363432234587176042393903311964356935868511601908038084914490024635145098646355082334242004226387537541676216018015136464831746365704921956506752846946957503028493247809205615849263305503516816730038968929804053958370101393583729215508875844305333045033475969053560595409451275988439501299808058402497917684144327416881639973651585592837328220464474236707320138211144496866148971553575446729950123643312737403652187713679006980685258324115042048689740218089083886901835616491536006757379096615065555738580393261819670310585249269017528876205900053281181225255315209792409792701653054347371672582401728355798105564076512165019928918024954601129139208142431088479439904900292779552954286452171719539323891887592480863531975513647636007595414672484300302062194100808118434919941944111609791439060161701885547572648348164465533644029624923282868529017329162731845035535893823088053814602154431640612918664388477620897393866782314503429738740667727293140742317711363030132369971444558384137296932662200752209304020521239320117271384726939504660268990219332583881698875427991665921646955954040567021235307363365395924086842765642573135120288082399603928907504327733379944580249718547824640739153126449332783177233036617840805566901044301864223819092914828872013180489930546540480294945798459192438189066739176301890636075848669488569951756663178795999341882954001574024944203079984433399153745946157508721770657003539955989210287481436288908495443087002984376328986464488240746901039361369613232985892451859689745873299429223761024245019793720309909317930618714588611202870463074557310782356983803566931790611289577540640646202014623318325746725527019457295074328597133441375226598747852879938501871920008199860852589681558085268464630366645753170990842603190280032234917179193661347115652463828335756583282939760546856115100021274305440630757357642468655304814285702744495282434233096369512094888488165546287380872159621929929705777178815377878617051363466852311450619476586853554957192829629571626968914857064183681741450584308418109532932835623835430856906231118420895089484525767918953751378017971467956818336081813862748753659875460321701916430030185382866421837730536346506670954375113122362996951682375643921454573146362419882088382168653364646891128673446356464577590101945625074983299176716282800851135622080729761914123914050031575177155921615024822129452616627729332902055198152417487657080252969684594648188178253075087417357940068291112300568290873390123905330907564821553637903711884431151913055095006798057642279495919071769335979077199628072763539335402484555329586744137739359574420602042032632356886227316853949633085224119139318606257901264084971401739246048979515308420914523654651107107274644643476295207993561264261382727031689991391928671183722198510734834639537946347155713444702469125671144577695567653585354990376476301131300411708208302309454697107227187421157396944799715302179972210903090472036852036271401016435349999516856305527024743518457921706316890666125155558909996762683246102915946910061256479013738750171197734084597105982506530237329217759604894975619571245399964646456134130276346961658704395374957245020894746066381767285361756735666619118570945380338211972210593785550992072005424691534259797049589657063247974536220235591924231304448327357424424038330479492461360993190047521387410543116986323979610149335731257015039679766153814792092088102983363489465348820927235811206556415816730758019775161335908333635360897420942768578626005911145679419877371289480151824229687034650074631883230578036392676482824780369640268718397005619818923821575615593580907832835789515203296300250552578974937287799748264477464411168708124542689898793032129718897865480905999017285872376108963064689061272526921509569719407777543848935390073776524958184170214624373844633581748316888184899135074175237917680512138218105983586451370415026098920790384550408219124797531520445462969209733471465438391210843382463107175446348666723711653927250347851094631258506098317269692156926957377159061360269675643573418639149212624155141598114822909381021598081102790318249747286487019942539018852112415592809288338138247739725959927326286749882548130285091450583633287947333572100173143992552552142436736453185270143769921356982516431503557079940013841102331552373915142209365796630237509492502429746656309616727534839484417431531178530659089098272586266739304478917623205904491279524219843377482898399804126648527858523414863493996582364148939557700565859850629289286962227746516885107800308764905538892394256433110368577922459386980410650888567558956904226447447006574427109141331511561243807761865999095015371033739786297111543910091844756340082794395243725698961183249749516072524648879152929850998434018257948061940210604475480371847311940382786978827134978085784699251728021422748951172272410854107880233336068002402290336972674489221971514351672996136287516200373217020299667447516215326380683879457446495199694092240965151690132176553639990593908392579644881887629080556915925361185519789206117068073075133462747455018740579480579730908155672684069435052420969842072877689626745461430154653059969365663006184363299261048155747913427893026139155066352878560665473604018521303164307136229967210701977267930937092937497002093620707295068940775505074001692137038114520654595442269353556072840269588147703854158395898399666474173131065389175389304161649984311978285159920514774885517857112926195187053507873192228991744492789513955270376464818891505041859547630884201848287600876031837741684265141553520419488113114943863299415170523933213020324393467336295846046500373892513552306413559279483216041476984740026258914074202014041226995989619722153572200449896545759183670075543176368827356032811525218754472495609548231735444267760538233473902563893222053101894588829338287111867046781966008823693071442301507220672945667430121134191915943112828766650224796054999709625149317768405596323890342827998618430577465562940716489576276858396778581541402383710572608542669896590747854669252318148031174601560993688337724605929961166411940942482860888396780102496911422140244594028216305307758729362712774546242710688517529434479752404575091340615608750992620085880275889950380426286181788647449808442061145432979046872567531918015518126201723080112575556673482118560065353424413245791928059063885420667624462734922951017659567368172596504349611805376217918508373691313750311900200796082316406708877075003290776893308689439197649586095527615490781806543304501947797941437958022919788835398363189827330768641168285392418211987616081972280256444946273565471463429340098085493617445066657852143137321219740818679978541018556135085087635288334045560837322866226464176135018451268567081865690175900715155252418811356199631728029442865756807581541867981662946742711232711086821733640888587737570227553900272557463171903464792060465371075289003866397023607983563815510210538880575878952527325669875133653211967293962229036213198237691103127227864692125085887877229649576538403597627595424671554398916534405908765631306564190329159140142267588924862867908042191113505624091727707391129773856794732528179109829620729511571491292821320043500038317122895558782713941451633979710824171319177149153331805067881847048875597086647564174491437726274782439439391745587824740993195278301181520388470154516416963541355436488523785287157767294723613442873607317330319743153713100260693027847025675912554705399544004336056401591187644812696581701416813418843741994941830666656304920689848100199454454740511676693643529303965830325726161608564487062282313221161329533942817829095867171062996526127240144390495264184802706871478106502750581434576936793927204158005255212500905556289002023863931768120156571021411030867416762446803138249893736021534032540409979726535698124378357721835774653833364624547052459559047151807217415699244125057367084181139017348895750850017551225581004721209779749006568620495221628757100851163975906946252160468927171535744820577573983467077338888355767625661324401542962462494820121232714395032582567624256352525636332345171218796605194714784004741648601398038502610583132107404829691288605959110364387867976174336866764855334697805617142496182331795742581641326385645392313940355481431180360556681734953664768600727164805353985122885104698718775025452230694665728434050483741539699518838651535145259764209767658196898197651786670842257381554263262888647751747448174924006129686670503811959787251811325099693553637819623351635750238992460168041655987620304070904544540100642481288745117588970454251832199339154601945071887507800041832791079613780784896249660988656287893220443304696899735030605978717769043223431787581886930968255248632431257220908076752095433351397442024206308693480459161601099980308303441517132292526074766698858177629032501232994945463453178174122584524069066691688132735719745038345861992604870012026650136327312776322571861828378207370874452873246968525606587061104127090435666418280029111987965126621695184209551322443607709141077090181550785886972658355446403573027558884311718366839264680713391639058535739691353255029309710111244943144320436214327040035307987363280938091815261356428060284602641689695480865507526965635123806344068433569425867696455421273110742179488192552405764914386413600986182925115839774510850086505949916884645432662930682153038285308602865854707685557887168238522998023268020842318825305216528867924494084027600146866157843223531845551883623309113807092030703565404873567385783000956614185515578260096090390733576611373456180037677485333653581135603450011089394931452227883434385524538562207399595926951501426549034667798929547546409830778206587457808377583211455610400761762716127784576745925861430498873146747599181688215605261059570443484619215094170740292044256598624847957417906759458910397872865526129760134791131795242971844057337068862199147542614467760288272685946774707291820064552482389552758313731424007634278394201565157218673404229848727687492814609802794540339548096261285152269449451677096750476632232746689819923777771216498838062870129175513168807576587144777706091274388460709096569383199680598347392690385093599480735505004270846148749768471886155053167588127321250646855028390902912678646052582323769120396446235658406844901626298280429239635340227100575987311414634625909546990198640273404436481626112029816544771948116613993226316478346125527299902137071870170314850891110652776204332026242532296155507404441105196456971480260976111815453477446660937263106635007030355226086941323692923002135365012487257739348604364347042914306332044187134332184876048213030668304745524762482959731359723807809197295109353853315702716775364027293793731585420760557916373864009321340087480637471740572452317001959659585743191158134988095364328776947626649459193102545258053866452053753868698415838437854347609075831908642601445089209857753971090047725929405663274203594602581309592534035052173736427213192681468954052518250841778672263284708393377008764424270065782945061964530865241225750075109600578968587617095716186083608781412247665002560763848993318530960473934217838300452498852691258456881153829903719163862255871739971988245379597236820297098312861661289368308381706864090512766151131993789952639492345246374232877284399211693136510106811632326161559554208611203058502416057358983204471652917475923548706657333590879949330490041035026158479425159353683539482807448463693578074855573966615745089289936520586873255650251798062276785371443562362481678316353496048071003227282881737612158635739627781627243111691689624302347284721870787755106804579479875519635036327111765618671686283655399769293563468520892453008932279801939265032443960881697821519762829111800219365770647219401804849408663312374123814325133632196158745223117077407915095471423030598937415318327075929680301939653047887329277197057430794110074889199230179951084734119558761673979705787433256723810964093016305668626585755407929768632176260351319188244996824236120566499632451376309217105897478267579918465078282290990948156718410863249319198027692495074176029208020144470634453089905936519183747382688002948592495084812316641357729229190313542843150970729445049582495334896717134410373680139365018587670311826582115900546528486461455935451368511653949126663189793629779466856644824962532501878271773723391795440613544415124773251263784262295206211043293963971255095803731886992467502204961656088925633672876566930086097472566267498783566660627996105624134600890612802304118455183659730507389164803553587326307981590964975761454429261475198596783742243710408876365195012039337722657452549582040947798496220820866154462072978304564221663603293810278192443161234170788811853409190113384011914279142498397818413373384792515895272634401825999560396452316266840395632747865858081096927872960233839556548319792231161610837606215362684471159171428813927229338198696804297708176735321209748424920759450815173859525917822713076602115224324028974832827507844791623439390891563405670368110813682806364627605762990705863582226434169530918623787067900074954927817678798050375126033550761233108986422077274816223375589467256028263564855520007319550259737182293246447861961663988168747444283481245789036084723630809195672516630698822587695163514761610419457100426776754756869519083475453876060153136714555051531359057279194638747594535014085856376229250036356913809471685314036552316021825140073325024971188703533995725918045262075294622620496224519204709373607450071446598848469271041325107539117556191212196384793562134870627072995050795663887494385869873786797585822388069162825028531177073317655367349933648871470802621687001212399046069402073365668545999877815196070186194665612772869786324219434986296734831194040805507988627306999949609993058307027026181612823463816240427764063776098640556275956173702030426050165094350472021626358091502272419103277525015513857500577861536984329789551685482533315548392188830111701537595837132241396507780261777805833285630011087605136671762125985498046241418992060766830250534147386135330531590218042604205013726495664147780178616478083506568989895051466048363150408916254871857595357407034862963435768342501911674991647871759222060817755223753788707548168104507112497632754614425181003793448656642934651435156145424345439510183219025004331054048895282950492631520606595024730830040669298678807286715504784318316287808581133082328669512695332929319182767042064668666129284123306253648914652897915146730082557203344246645809816464947237811110512543711897618892202086276612534467749088744644328725046837500345299110978640028715235162001217655435228846472459533652323285072491571343504942884072332821062224879650865520202482594632773355404835001370152721254744456485700344749017106587228577832560599809262083426114498355889138799475195164131625334253233362297178299498066878502241911617670596805055573404763942674880912994754088117457963745644440852670332062996800199889062682266242957477338806183264687477945603913609336916245956331368727860282148570167297451579079142514007467352354966565935269440268055863602877200168734658352793894906384904549839490177535608073993633922121258556912867253713152300414313709923028736890809223025978155049506241474398685801605867983526540410375689307801961364155390798212504644622100952405508249460872468837028259639798998533104651155673614862682111726716027453449273734494032017191494867814748486124591472346582300768067884868979417312070123964936597403231423814018252479867534513352530227503045101374645566740267263106275425599319808092768288723730250108026716085116326342702364734733119699314412995098599740653056033453227563685041825707836742278810177733772953789641866299265321196167750277153058708359621633438982518166715503095589985743418825833304624266677550989068067926101590803950797189557295520642287488908959361624386268089335022987684057783866575649680178892044353941512007817772324647373137808153576324166276968771900981536785037560292916174192405838811127361571545864221116994290048208136629339590786997523954616005918794042965749799697114795593822964378928515881897677745151223759539359236354122940944254114451773738913073697111587129719478720776680436161290439480570997532360294564406511513320544312399975940348841183731312875359358077524644783315348019320464116537025008397441823026967009467127364034228021755725914942801914407358172040191579420319063350671851688923620304175381590649459713965523325058142877997837407841802324089768029195444478956670566949459271841900541925539004531545409400470186779516973655706433442628994553950027957829685574387544129843375786575468978845173907847460669161838095528159338394602800095156285448498125126576579147288689074305789237490709964967990554136657752230684407080161911784009750422475942852808050832020740911728298888766663559021996689433050273724434254044992142933234374174134538368742074690695184604959901358999820683058469258539516330217000471979330839583590185575751854729408826130348125121728521728999827703418827245168994532623178401282027047900388090874166436274406155216203430098290775233517851622256423214791651732045645525634786241197043702973841498024758046497516022509950913604139191317407724633396458821030194577528378006722783770142632427110588092960402100399927647395866975511479856109382062123064410026891309766117831466174894648194684001412425985796768911297330893489455215856987309408941926955586789235679776892780544930483372714829837859099229037550877133251875300546663121318988814759923977304658447695423860687793689348631662172662446149934497555158408477153768892362175123227729789205090756174197245054392566249029048289390127962216260281169330442440921606647773661403719594192849913981453515562573404917371195595318717393430117102155051438180419785522025411183778564451928455410165704750356751877991004262516812173742502927323432225592313659698227702505088557299772486296237462898652437714677654859855238372411881807907356925596883447677311968014042594779246087884034348611458896932873124984651199058997728538541374939826995431783387450184106992688462724249615229163234600819877836591094429380555526052695907367207899513311025070151932396005587408605507622989002723497846034477808133134879124136216876796649615441717095639190150074476163213708351608864699820128151940025863465231177917850366957379510509436899522726720109484092690971226879183399661705734111276687511161691650483565646988036034911394726669327535335193588592341476915601642286025100229423858664629361451644706294817174151495343244409539546771038482746112123983518980862946266907035154005114858153065666613203846062487751916639263877960803689304611739930284233524738282267458529641273190534457514657816949306577902639672237432713703960209567368683790692432647732187887758870600229921436997014428717778633991975931982116384276700727399373270769421195473785269295109423055776864763094980767447337424047426662821984627548035079634966295473385679234419797018019574136866190516507648924917492741282579458395176787609656690085254314522084445261834861944523847551329603966303590596848020594232170248558046556426971418748354220121285832307290312804812812522975169202989704728885374149957560434200801812757497761810112338583317087867190566241848492519874939908617075236916679786825552758195666462677657023360066293505900197487535332910922677462633112996193930236205241357935250389576050434561340009536950451985395720029320285128185478841058273652575409145648162471860964582081020083826672477659433292839637340408904682390321594166875020835412838111683363445285305599471690702903298052528311871814597973787949263288215195272906991598908610107524127872146653604075668987757840196816247332937249786177195923953250524202122139825876706980056758848409519368705151675532069868816554000520521602344521345122487071375711575524100939545172344468552228189366521044644634816427087566659753010875614742437151441402408529304359666866890785924103203476042896250778948433519800709174513528830665342133799518393703168039284188285405934447169312695850721713669692954409368468777538325198741008121652266683951073674485379156721401217434576203089289393996374634577094930907030809294454467538273547608006620556021911291519464735480522087237803995844537641993861164979892690064084180357112222490810224374745034996670880583143819511778078730294661514798243464106444951937060592877216112546814109763190845413371796392689340345917658690419589513896735240801592024362201372913973090734027958080281707533347208411253987572794481514975377949180880617534943662270630744133698359178041560650347481391204103195829419615827202652479233832551979884523757248458057889281856095621856813874597272049011279145361631263637229800613655278143796858565816241962453210365089183057689072994730258061236840357972730423008648520586550919022148222854211258114869531476821766619170812783415370689072920566652428879569511309188458035272718528944474627550622242397202847344585120020831869391827009160135591889339751989159889682823196212590298417281321045927830472028511634067188849886556142155778005937759979830758262178243087644957479743120069142592003370814543165296932668266835436871146089795996514782881787830552689656292440195854408274437022206382680899291405820493276178041256477522249079916943623457327246072858100034160373200498343312649986041192294034263513585690812126746627317557980044101293760495853701805719177091198114646058831614297173095876231869539713739758987742863669759198160449490327472309581247966138605476454886918621318869119801116445699420939149061202682447401243932990140400041222720138599394814253523497274120011196987860094590600061514119918495974944633016192611283457814882132098904497473365728757548416523160166617472838181376901382789762683920760395949517871744072094876052032579022199977545019039633304571617996512159462035727544395561403890477586954756675924229594659404514030588582813634713897008607629367535155748879256747869160633036341930591657109152518896473335914036194575256334804142552946037112990346176086743648548800318799105624259520366603777351551121514022949780674399120126038498487629963247841128123476309615970845861424170057127644067200080986186302828755704001745402219427504699372231094654120195739229518082526785583201821674892081947033975626755947122591186566940252480350072223305516241843049755453059199629151820887706391972069596102818497189362804448411031972823674881466998136063576476512180666496221523861627923726191079284177595441801228088940215524276515659258986314825295307984547454978556193273249763039595619547704410980864000062798673599441232417656060159353307144516221762324600143532182072640216378066943333253595761493331377188952454347682462814122945963447479992456379495453904812036275532552866911957988772901387492456883822646659766369934479725367821790436178437963572404841520322996899248750151108511900367122340149821352902688698038535975442858891705634673344931882764495584104260781755224646463187931543321736311362950559694122305971867504221204892077547301631991599422887690385198832127939639316312233091406102373017282467844871524876896031260413076405734365215255468182550107047169745527004736792867288330970421495715214530865388156745966970558445275362654595830577092636320193211051110154586910778599284029991176163525542209393109120120207016429817596464764785215470018055637104748872196146636730475122428603465068584271193188833186913742624440546911540058601840907396132925612111974745822327058380701577184120526116601644821164344802283663389105900741835934625592907391231555630857935626424389450271361260925827963399339562889960728144137202237348781966899897021011715796779666029390570004111789484396309336452295947019767288134646527931059127667068804846014803770858819858148400755969343471151651289132574275994290821561346013356714608339833620586624328542622015922495970591115157842220415278390884358117641097580963722475199696537579324845336570428588318476886485848254429196514327983644715354475324052750088469123082219088408927266117885003283173704003844896420320868579805823585165281068524473729068083368351745859543620658933020181484513524686179310831941589925209290836475738013761551282357582208376992591918288303908682725091433327102859380806046879155489540646850426532932442680063930977799857788840949574344848108767858189170848856486915271058395575882871641935996902920749489110822035812953396920402240390953064975646310186755195417886231797797930307017307926503995293941389071008357391985390955688505761059367917144546265398604103563834545280069087415367675709067184731064209618564108424203699226215303536376828770827282623006385135370414199814514743888092817705632655956899820506504456672400316627443168509598119239327833188194005331339711231121802307687781585173875546078025910752455553328375443498779570268774948906606335127193464298460725693425111777729844124506625486454080301422872922137762469176957743160224608764718183008881871951135393465005719197063043475117614627856830569065689520937887167390117301927199683975437795508754750798395738845811552873740717321340494293828342657484230044631151407700416595453583486370498916180114082749681210055771345090111277588742362382210901736563922009714990794831359992081159226390090409669842119949230127116421026526068436720742193294835920522622808018056923178345806956218982688133215680439641712611267590256157669267560976425687754708769705468832111783855265404343511440889017716306433218152904879869725510540056519177062089828653689924049280867338058900935830427207183581300487368317836101722124842264780354885267105714540867190709175489342392430590657076424293684260868712361864960760165692842842547049191761476570784988319148608330829731465921930046689376617285474581304022377886739680667621642588126442968362364660092662783436937568193993746485505040155551432966400260300220397641127724293431005210777392276802686159827513784072143568475360843886330613772250290717144337167334848934054500618338759662088023445830981740460129683167463440720215059414569920950893877947802341295708874653412901437888222184225783559789018076660505521818598964527238181094468502382796258510822242686647559809172579151753185618145814477947069559054696243554034198799264410793561508846091089974058625027151475108646120373289969349703538918392987119245829152196751362089822105238225376032555083563472254956232231134430149597902003314480480715349271724361200439765259235722477413275571576717264193881519852852355394240972190900655527582414402376957555907315799663421332264992182294874544325970835800941834991800574362088170358636720626784665336132901719160759863145774281740228981028327307110348576926872876130870018828558551107890907498948357247734210351254997855912086124750152798728842343011168519258767059040125531094092073010371340676336076574260719767327456346400618058756212634402320958751006718697833970811470986803617521071809324838515356394335026173551517842703025411279483852576077167866779768920512724898887156518159643565958087109125147878203893333005645409816771644221999459603452407898703960851504295746887005870808711871981727175057045962913040617578145090250308835880993988747463270755315810067303854756678495345230951936211995957267751197993723415178562049022695782622925710972263283928837802006549492469154025592850417539629496098317482586542952744245239453692447628404929615583229206127886956242872434266062975385325982383615981237462405013239310400479060332597831052182775121631184380343945154398903139409519006127732708762773713408471660016030186468643299081822564347731660084914521855081528890932281732982219458859179495192864515112711812812941854304369237208193873219310425903727325309493655778851761934137622770376877790620283827612193582209230684470020047930885848580928388968125852322162641542982914035513412316810558129275507874994933906135151502746297488983325760731630087073446771835318959432608861528573868433022494578053283067543055023873367584309907840800821027459030364240516378363862471183046471156014248709957733717244694132484806982397103456616103355216756533769380181725764677222108168736435642606517675938373694165553832385586915136531940828420869778429981926237352204888590273600783900788787605352141938934699755483744801926125333797965978555225715301160608942097083882679025345421396589898421896345626014232760644724489512979294253311673419136365687758603804679548698424715504495930473094551564369992890521026543325075176519497497963821668062243280777009799635900718080706383755805814903932216858437315450312739923119635338319606341393828621893110276263829125488108228988425323192682981583246614479713317324601830205874874904602206818732226131783835068709349387834229228659908851105533526313532961894046367053805267541117473694684222604671751254380187403646353834290051055484554124137817488893375898891310540946500849563295663257392755899473787182335751438648108058280115045224465986216058585356294470858653186523464030909851962083324925355550438193367671359765344326101094799475455121153891198245195991610241389394900456964030044778055517425689519316979564152534938562737648727580693619757026495221025798272162700104590592471118110767032148247864014152834551995223730614216936918786289969818377658958340120844265678432097974646332380261862272153909114929198570490006045403654057278022641397053319431422912745595078125777547908924811444735502286239266596313221918116754173177044258702181604207012473063922217543204803393073022542042074296526323667714864289146637444208939410114079170250866261078935444435299859596283993440815932699480667253151278125094621383949472912161963379213099712927739613029570815390567028738865984769113284484711092652458794320794796999428894558563151556066708275691798895802518733402885021477398121873800106634672563097718829344393892157265663670177704111927384442078902849508771040744691616629586940450049253364918183608234243916788090086235569515895253794572933609822234218477788222907044484402451873016478036835585159939252815988587343382187397720215802581440034059365031804030811296876680540822330479770962147447416106194027463027391194496511416588844779794836525125774930205127477148476888900714163114873975026170300580086795446911799339920328203535815416301056695635221497753472316678917085922166212338236210828174445143540822259666994222162238331129470483713993506307448454221776902749545016471970832436452396572213782164529698077728530137504565750074311439471299185981785810162413001851157902045898283616835386208490970601527365501848171340337799465974817434780095109590896544723732054587189764966568382333429689172852203890361137170465403042509403178894985259504073210054275390117111227674490377212812787764477159428752484948321603017672556842189396598480707024018675161312881076069418964802487250427594486508383446056490186533097060136116266069217715600264497327773392273301717910251488494913133739654112187070797785213952355009874468368255961439206049509317604306740206237745441486010672455319746125890971455477750624392882050410154389327705757520954813073392541208976307106645448652474003707675655153623095046306814613489992403897328953906828763991257508537627833652431303680104799256165921821753847296466479831403615064266131767877991269919572700666555740256486232440843364203505083408638098109539401081168649543250550341549862913063402665121483124077070905980946451896600466127478672465339182825555982436681168193545271295721532924516088674144824281061891864188186640346828636315859903231357865005667171351602301430690780077473273171345342465453860400492988663274455823367971026033581145040152740198302695666061898775567711956002977601175010773944001978469350531068074375193323682818727591081942750943077416656348422736353154996258186627417504466847702484486977395562881782480788603133803327811081878802759419456011045349832411554031016392111975009095708134768129929038415167595765665595929932353725460134608966246195577910522253348938184461134601288618836099066411831232303712480775536822966804610210654638329382613516846007744608421033325539258038181946288401450550157877465607361650762897163487346856384397074251462990457107441421495165827582115132707616636962429432555680817965102176155567927759404466521259410045273438751817795026352596834061277332593884985373618770297540542395600045533193600140871783523219975099765929080444751452375186496448959739367068681547318532926457588887252341022305147787184407912233157009839838651863417951343231397925275191065340996521637684051375762890053395144774368445053674201242211917896526492240954353172873424214071493846489648184481962592867510276015436641641396155630509932751619818796002951642496234821550125220582155221216665518782215452137837801901974967595474957209101087138793551393122936736518262097496107716037271433913513079517619344353444165021101799422354970592234171482331658495961138959892611550011253657892998853672859515241634206030982582260716502302399856251635041835714280541526476849679453357329953545221540555252565730595395323677868061402293721744850754910206069977406262604154787135356686857859249560401566515242086293844921484423272512836769592804723921881551187985411087079078966402740932744688086938003638777530235531484369181192271050048441325395094791004861010891767400208362757718228406816561906128521977151389909127995001266212909559039979232747261645329450589745370855748690049043593346040412992324272553984466008045866272693912819501049418935155824824726522042801695296413726728847276047225627533073339594539714836740319445053733517921122706179128561244842192718902644714700058145537000852027450961703998374406735504663468155212433425638544592816285509943616372835852786862015789773511233968991806255287825653799019512840498223328102456883923046517956197254066725756093083129171022364999018849618004589352480854686883864608989231809280084922930998458400331119055328483753551884097507495636683707706538552030784356172143299619481726416761232407683063270461672975442331831657040425130537719129133487569083390208389219355650836308806330425283791734288739406943034659667592073152310156247666407796877948259361733088311175282901388985726414616049778738711089593317351088686417625928840256428367783161139172866305311399412261409495085246872662237952554831659375054756511459627835540618469720770071493655004827780788350455896763495033270898490205371264541937518418672789563976058736767196378223984153912574159288306266770420565221445022849835195058113485083722172158921116720583333413750023037819011068204984270162532037927167128359005203077810500989557862469369023796846958119025292066805091855809573934837538748784451144010447752082476881573159002117498158628091147015765479531297501916192436384716724983004951472731788173800124080003570502348926338074082773295679823505173744450079757080911229058313256712615917674824300453299641849100272652759951124203638807706395320818043814791296813016507915037154840666275581996551298844193787116516848020963166060761543173104449317712731932368877975586725284892463299625736642999153954189297388772287492872040881419910972279515223455407105841720969284169472493170200878219194919919462358008290503202815281005393615958004118768545590843811837431162790356131707005256871918754247312905845175175284612086411002221841873900057358846152487040558766548813918991485181619598342669888530701080922038461322152939192319529978705410861042567774601533187505775722454973079866026355879423982051018120781252526743127137082107914331976206207198628882768653627621512516227251113502322782682349203418220763027796800676221725994128151135666454677366138656891426584246837598792614728126432444356022812830154424839946328166031057464972581710151221182725109021349809677108216649138963174553578541103023306067404862554822378077500018769239370102162916982299213327189525136553963731683023800090348132875445886201332137694442224088894342644105151088561452843388041454093391984280810539388834702723436665504717836100946131543336953782134462880783572552400953818434031447164931865929513016124480295623920553686174561680090518802064272743468362164474722720712287832116520359731728864714797156645914140505269784258984175667331826676131571760215134223604922625547797069360739027916298315881379575746349957085892550688194723851704065442279361026146274415096293389326774292511957353969445724990368885877842684962719934279555829799962239589676312034505729720098870570578404218741130655393588188128056009830092772047201096442428743919728492089823869267827072701769497048392265293298258754607792756641358652628228702107362850205811314899205867496677042255681090385300334693038521770031443706387375739905828649329248934563277778006548833643233064134715445996787063587636287386926878128343734548982144178099454224102910237176973150519736366202948491306681213565024378431436217492448588056897411118153490482196418217034362338996249067937364041654074888210750106076547528863757667129943045687920104486712324000155033844974197311328471916614508407710836008155638597382196385168359329395909002752566715081283329018218596200883237582741550337778358478833852313546299468713363471401891346293185720281998132338857711913424987564782859186000551062360140237662995967093834018221965998993343655391449629435168355886980783969247315981283683449774309528888763379324954202050127691062614113279509335105855231829948494428206557061558881722966502110970470111377766949927795636371654425029295631720352127185105385706309401469814248752095929441725369150507261900339882222958845880688843490040364446721406970422024325466694091751588251164980331581180676310118924915533881852822869762394034487427994711043030666731109468944034871696297400131026621376387334485833531752687797126625113154471330250756546642712310495634908230010069914653350704281252804727952883375147057703379069761569077867687178478133703864634931758618137287988030683621887359989529651723017960071716634691996157792971222972093891993533791009898805924420871305236554606610580325933873716071992988904008496646980066293861327009598937638881747772646406603064890590929510239695090505751576537328380303974352187551745912676959743692615509238897614031943480287603557782821066472032099318305744505939939478905376347880017107063912317522796198127085648665103055132015474849547765044103576744295485547623416876156294116311538553276938486867842138165084929212279975226672649661859467403857745554525775441489514786626983664636433965415836461792179231564110299578699067147199323762523744086840569470157203971476210957158148068440083129262055889724176583113321690013268909378926080103316334947481564935995696845839515480306757048611027186814417283217527993660962304114960682354208690446211255574240566619479204555137876469558570983838202166028553517520667633509125721586035145896260025268428737655979334343911989561767264051785898479961825464778700762244004171494699124805015295005250270262136784343406962017371867725884045897444850159443557464222403952570096364748462923220657692325143296595697067083863865014771604988501692980448752053553767736706790579396156218422045711185160764159433327634911343780918455586742263562781898733223490085263374145450523653328858307357319338299445836220895026618529034606836594295145940177852610252401673040084326608885262390050766761079260302764085146083773950234584571230455272263200971149462892337415975877403793995664621600614524848844629193352464373960303442707940267233642545852591715444920034362334979536969528847740683295140306535018304200892309580310180219975709294438418918595255120243528866403798331344463877919539769436878880933774900050597109118070737110145470312680253509084175855043333608728288360307026016835106096805137569886651382924590013857520518939891104437660132957371654155506244472565672873152287226484028210217531597387523325913163050877845092813168728353265019340040127690404430254484573030054090800141023854445910244711393368789036303826082290339607450087645065797107884223121062607798201451995571818403794749197076201421647743709453445410028754818574430012304686054333134288947929398691150014216100049551458825685078691313767382068542116860577909256165400303801258923856632540564404684325121799443036887881511984396700186518968668809117121664435284792875986646560356223019818396785635122134323019578074322145198233830147776516347742190551067653248442132115213944301658061058881769547882202141715686119975092314523358071732374866428136468578760852471388990764287962461879727016904365826460424129202917837907185749948303581682370099975063979383415842102777090985487822888655946257222469137617311964937989014413076866927316017609776279050491797334167598494300280891560166014426524429292612528589260251074544347120189795179328890181447814383968991690974286725981786896220688282327502784923700010313844949664041386491550445234678790544881957399439669009362243006021532197121789737663512290948898115081326535809881753896877505174249189842325128303296956228143227054900926985314404251728366309523543536961020312553082947982572352333773227740319070773270671849480908952583665089519549027934934176726845559408592051564539134157744677846005018527840125157816807252770564596896671151783304580471891587116811959493828243576672754357326114126449269482300112267850539851202582447998178049291811748358211059945761073925841081262829913100741955647403929572114743123181059773403926029769784047273109729100146910144195133732198113253490129628008311954463544002854945386729527388011291842788150128476644098753499893479442329346304137049599050779711788365817363394332051714325242620295494299647463162547232071987159650277083047358299017566698776617778376653724272974465089148967052192717105371365730586921278365455220520675135723779816934069563157375928790589879466823716612898569471217332852577983005401126500357437919917602342643416357045752066134119655849265084235649539099644670308259087633658053101303834915797235670006387171308612104405150319886639700115443478558622166840587428566897586166537907853293652846999422967097436211798438446998336163386150724320270467403393618644525187185305575136036076321683016147897718300747648723562277991098518325162474865357693059104334627520339253827287985715328554693694231091304225138442137582393655810309630444301333146775084469993968336426899289343041521737492107506468945658146219076196563862966959243378529691842257526216420545235011582768272421731211941228853157189453869876593818629882842369706824175083424024643249064239114082072502670212968583450390430285271426926959308701137401593059300148900084301494731069350748386773329033679457531693482933760596776946679270274962506136395674804610122595426806804061682825607323920890500953440136167188830383424940710494960793817798245758545202708977313739704970609977961048051490951505870242467919034373765235002964853575116963721224130414677059244535678861417356375660553525159035412380039166195736056074799663372507314529090316332760982644668977342558779690528952291135290101340590419262321163812556840354107721967345075609603660765680247418520637788268509553766105492245068189468018443751656770265140144825262480226195309072064931500629461012270267486762027238637688413532502458199606123265081229838018672298379006842289531130040883836542163121424517627051343940130981346260345012482629266483983654832353475052451026970454159059528630945898151732250883988456737975326528059200583517055930545199123113019569966940835729089844924600637194383125649607185796604811591098344197526035692758421166913059026324045904895374854820934146517371038035902338948613680304893848901128846474003592490352725755789037597337214545396612911615772704828108522071331346496395639494296918898588839485831676790048483574612885086345491938939781005652875169014467316914603125314152953247344382459232466121145698872664998913516493722086465207764912837312774010772010727952256485345618364800914177648869346274049210077655852885710891463123696580733346273847731584443791164888776270129317166295826862233304296626772452759317051486526658815253514227232873690823861816511547113402332736225816123781470607165796507327394113498417809449734000676742893278194051951315718694551097357472609935647780496620479738810799294338139255493891698624011592672333662157990458074666664757964370146140345715664395308938094351829505775399181381916739378242660686933415123493510842045156901859949676817518501158435388790883147747038407076142714018858894741755269555777830453728533150189153045605590305457488977292557725825016858820691796417168481605110871315987560365229775571509699191642099266286637334575538961865300326516491125444491226279890911632451465327161951278996724635228137299242767926836470970454311954039686194785115711850782711608770582923741666642452132710745612361646406362195339475185622292990776598175764279192069200132752658307785729126134344970228944555153651088221013552649841221769210750618491585508151670665632944483285268376562184048796941938220253200378318771780803389196919464905532352868281603452821500657043158624715440534346029506741879911721440563019373344203225522402021509867485636544875815280795601989106322834040390196592746990874021607538805228652456053335961424727504038221859259676256408918824747448515124395525718019695446515411655068752984942298780869367687082579519152820128067902584380123728256554821407601718765804792643198911852382340552927758982769491192000011703043087851249361714212087248505853060294360877191939140900135957787082978333207871327442200979221283062803780020165428987060263332064075334972257181576792574742365884719416020413225536057460058099515175681855346064396635514763362966101112578899982401104447021614552473060233882466323301734308824769519091675286655761621184747334839585462980531351926475000547319193701385206571937290098782765348125260420555308549696719865315934706203603020036496642461085076686930901549230554895142546862351052577933820711651840357468285889676402769942013406205325123441260131055155014947074612510118157884625787243949587134676725091888553762095272609124701590568575162726807927425408244465584708774277786812396724911068173082487355586509776188269954483886445595055495095122736073472989799319203545468799715755152781914024461937575555547986693625648756834701994809495257031178223968000663566772399118676224790977112707168030238347256020798094736670604401649699801276982975834480607109420876146124307736354312607116000238337024408764730532106352444730607174183958011110366204787742477832238845521084225699124357862597848529624612743845288021842519698807493503780987906153984462743385873723292889875429291483385163634373227845800675503991693837897117711894278238898586118873764662271751134871902683186293308488182256448841372071865324811081723590819423471066613885026116349452504860908197822237535564337954254079606907344533046650037028634383090991533603765542506055560180167504497049382778490613478474510853823647858646381229345420415801708741573162694958574155381447442246111743205923636382532641643557880644982811449104834044465716256865102948296274949174062593023617791841520879860576888397361996441960443186021128861106297125185129855529306735589369342708373543640831579946828333292704025593673080339682528257504394217220511915958905905994265109674565002450850802593406410871629312181452556695216425340545072436144367759498200655709822479966794759734344053364937303956032881125422137147615233630560713179226421072745592747531096332755600348262207818421440471912236866624050030306833946748102851708544254922981407957020802229691345507076458838345091492490564884609429010293318026060657153019688486424345594916200149611416618167943754915211714264580196167661040049152054875287613423861065588049297119006361242764567242022931479064091432793213121640570623715334218231742758286193764457590956931141603558918577653839021028803336072926448726465272664897572680850203645815828070045878312425985301187255140530799806892347028757202158167380533459240152368343309954364077534003125824496927405875703767902135272288931019815354734077510105461862239332578596773824115536919417017566737875082888315647613603703117311784283914576827320057338155848251138611073067942762925257928724966758244388706062838356498286734040169854817214096187844748695199880438263380435588294296325284422363408652292743480838013576436951886769957129789796681427015667022503160533191128848181715811424273307002606520225839872183029101071964526448603422583731570265573837210415140722518996816113544533957483437771216473502015971370569672731072370856725710028470383309695229937729481103292410941310645586952458312877846642018136036246537539902582170453575348354308414839122073985095753274587734693715876784089198002877491409079175512589857516636038734516513636830546006703448538168822257219462205413415755465097447630721714370704547206202862389536802647942466525785886793595070847507032540885825973197009428169974582407242514635365384479485221303428750919620537439404561474606266004512623994077506470573228878134010684005362685466149418326416326629042588774519579940240270693824718485105296511579199651420840775738541329450546833661445818332638624711297126493095911179358676183440247582836617732549262008210160913401455322354396330726522832666680435986612097316226753751805110203617034584162190876837508524538850368664534619708477366409458497230623533924252425961385374719059294928657498698085116710496342742720366593175148129903806327159864859565054306346744081361362843557724445641290812970137357931011339278299239148343136733033161865323948254025927822774316637407253177735829047484967609461650332790410019322149120926425534339895269714256692570173996296809368781564459553255339640940258096444359245387787834097491636421928989332037677324309245687997763086882557666085783614266091875980457487545137982219150215634633398273094395439241936450010073284693529944327003971428598965063043792391432235121613993639437980795022094485083227662780704997911325320409795333390494357642626568081245835565848470028269812254455141728445682296323992804738406470244579622533844259652561048329894194618722234811195353325099121341328874595369030007110630425947648536801837787389962642934856138829891150632408573326046355449577012792818725692188181884332675098796326876808261704311924810703014798066223445552558931910303395622681390462686134633144609910261374984405978464930540320495549486652602529955085198873850463439281462293879795703774493398689023963590595706513817587270008753003266817637505557498292837144068444334371504246773341123060597985666224155175228174412332847697884108376821550374257094120681328016969129141050382477408938212092225163934570320024059803870266499181717125840545530214256757083914392885525151173480661231358608895183411987744959906882128108575628287406889686868497089825699396498705822241664250821901407308370645555441919182957826956160078591336346652785945173496407121880645696907131624186373046046960381949926394088177797469877328931928718122632171352164404872959543127114300744004520691421095824676957848195463329929352807982468651165811257756400825713649214100275805405731130464897190192823527845423474127947349530261198810242443907119969453259744852428656884529957662014573309150742814630476685575902628082225253351848819494241030210604456064314420888684730143020509618347686757970353564749964218796843179724131179260549274613488019673412873246066947118023129292592040867342159973072919959796502771961074489033704660815221346317904686908057426209958191712254735168391882406531032819775160121173455083782539642720211366653510542113463928999751680856567558544784988120922393477276938135270952172272232074245673027144627686675473497066397540152904095080493190135895155703715176211258599121813216514455035398368236366816828332089160443274169100112982327815724948845269786919019175891608882933449455961913967305225165180383313988802009048504652247191051736262313164850030870622184653207620862934045854343815270788083264129395616075880824358050418808945271754383518885549601966224308688874837244489238340831056096873981338760098567631414351633700708920864819562813539925038703104364273830722306622922039959952069873725277795264594187027013172260145224137104010654666541223407407753576170221583009689231166374665499822312484121317131153079861001993922885767613860559679508551781389965594632916959033767323321604125138599643782721476970145672290491390752134810822064026713634784401642359740668683474991508517087376058520412015622995035762873259045259135423952775522090889578757372799227416998357560396200641991487923806116137521578952465501207242267998535349693403932992747890464938110539325805174944952730437514564713747510594618944071685586020013743058030693236418914256894624668852831780782824703917949577556684400963777991807203947049759050846706448423969286231062960289083645356701280566002539895900192684145216451063303044138768421705732374420911581727771262808165401828882247717491916964882731741394433177822346123224044599850402756837731015094073581435311368957601977565142451442294369033066483594454604881628518361827129908274616416087780325633772395425047591727122551587379616813630651675976471998976487870745852264669316818039351162720679985865750160076084123176006823049659460043732203020055473987237660437820756969673090960108488438018675075957753148187394598649210454251726904561073832342177860593083761144090703925297986174315488485483451801625849720361966852330013020844327198078664095825084007190887762230136268108799570475340212119161982201657308722193266765311247462927144429049665384502138409591678706434381021477933753425301065215309196857091311376186772511034064690906665856253302806002704089657366207888060145585085744655996758015827082492626438772759406989172838375891981587488462133850039537770635764124046332375719530023635359708041504407072605318944749619113128101340163542252017837502004194732866842125235447110206434724851412792498073885060723801799326104923183024252582767216929243661134401892272611870446753189786184279163061371107408664567326960483716703229701935111481466416397212899123340464278517519409122663605918456133080353614640255730269212788049098846662666296479385594893956987451266883798613042979050677206430739032778280758060693408094220691876321251606120238854920425802238563126218659210984118996493674200763533388585742666920270157327298543180536814461935852067670550180127638333102460348980303945289966787140340628205211545954395504143281197743726426268014496983887587432216433231953407760711726154422986361010275198249492111890160916054393896376583616500658596963877699168432692121016256273093088744674607170812132587290698500135382046714713642567946645338991269667361351552639528231951950740975261749146913450616312809077492755705740783846144830649148114952792132623282533426230663992318421914704696950502540153514457608703285391260355254261472874085005251813138051964455513155466215622478250555149241391118514231251940479405678360762986913162987803234123353240079201775260873304440024426361657382477212783819328182397558868458427322178432058589036446063247787414407543206762371318749634213241071323954279782623221444805056310022790910156735369686519442353608897919791777685338820284694655414750522099300075573974450319515670609353704209999289525561491261999589020639170951912339876265387936559315629538366489003944891076880478520438211228727935262812398434790014904475593813106928516352811884163426023151994460708352925791816401870580604149184434951041548777557658091851656790662384002003939851434434336883092506167537407038488922757964221142267771258563580607142724014576562747602806109363108813068367736217948789452352640941586427493377688614880717925453492374825686083105841648526182637284776510491870842586079083708189480361516110531215166949194604988030769210763269547493065105768894110001036672724418923231694205213484767577143070156733731257874675833191186468225953265857044612886913262857165008876717669813541949597897937632175917922204916014415557005928987188873548332128222706442186404686613976505857622470380845962729366614590244542314759527273895529564137856348548993356374125962018233093813925610263806141990366236367907792125797360773381768623925931102220576675596427119239655849090317861461347074329225565511669744544959080916909362732313858554576132315594963580399570661438971218469580697807405052551010339346387376610286902554596334114057658731233729375040603892244433073506272067859686039805290581147013147729386909459310635182344518140575678049617093723177931694216649322281929498577671355613891053992461936673549500559054640640802914646666403864698077561400936673140973555447900952229751033368520486918159705600315984152653030292930926470358507897337280331159382077357624185355551891356322413637954959105431490410465013326241600257096727266703539058607088899280997980062999715405822211207844318839249255510469486635687683539765467882227420915279511512426108102343551966859701205266007918155084615889751833594794176398330738596100409106348591113368288750112454844735617555908315838920857231553814901058326689547497618005910897393068377690421486222799406091798858371548946422055106900251590588162184708008482105879820472716910374275968495859612688799088730551585396637806257373662617901272039603941227208811363387442492258343872350056069913498434563820791394732734746734293616569586623117820875770445382144454280637184732779070352006827306143158566447453186549455636579668121521886009487212011531650768281457060990476249959612132429039605442231732952413394706034980226569840404944971782719650721916552723751061199381707352506820481756786006837194137540558340410837842236283715352674213350544235131667309609536495849740548112440797426553551284240425103660926709521450566780826613346636295312832578676990683451449725442946432185853218618447823125500594444482033667673778944321207526719052150651415987070444185192417125053515023949973200040007090584416583801034431660337186428214834515127496737514230275408344334000004667798779716116614704023390468754442425129502151412716118428260190376866521905105144865408921410693084392994915801847709773364737902798296902955927334858300491849947149452693073570928348382692451667109539246920583310133023263076562998717633640645189588718567864931595153806645424149331069510981921429078208749809182390097580759920720001861514741834906929930838066137419378865145694584144773762453290178605085593151913522217547687884290310435374958474431010562753279262319502021691634003329602695664509512023267048621315058383256569912558335132339209717193650824017291513004894132534302414481353021385227765147682516060855067686859811805843979894583597108553878293685735601834177964986124557165795653469677553792352700180982748738097773970713427448381995990398862496760524013947419928699505540315097876021619029078422948733007854345168804553792520222611483273732608114426694051836971366559635623423884744237008866951044925213288850410019498258111628792229406257006414610666479786813290506826929626330623530177364332580926137093709839466642842766758077339134808373000097229163988961284790427513100116837390667730903110643798795496547465234199945130236301205103301348751720056529847678555484303326084809326004055021757323353727789000168088206224406545544748155219205816870292253161067874437314844992225769622926449976460493950222746151675775414877896471603998276434234959274079023924137752855978006057994470635692260908022617039431399813369216149546262676401186861160586259822189670569652161527732359645750776119509528662422155393524990491444456682708289950313523698038796591450682254527565433040453915403934087614361093654692504516894573126031824453610112212193802864389855584103024051836374635913392194507452510613314069117493070783738580781121475452540498043309295726278554955755878267699309083203080660939709627028783782624217715485673280407888173365355804459591456320477290979485711379456978037738097216132030714167665173505898230186300130963974218088776797495552572685706917089210881504532002059876349743817314552096223741711326312979368755920393991297499612423360090008910666650992336372014870152462515079852264330075255010676669176351897342504760068070650129965317054554534206150694692104324292126129006026553193479509231726537970928136465531031990888574052554472482959077188767771639441375999285686885190218899732152897845449359522133866848963292422210948182535370304797261545158172740803420820690968372606231633371663956837671548834522050465916721428345262586427251276327410226906701021244189749878229905184474343544244948382583950015175518502114404375769707721497303414433164724492518929653532461680345872999756319313888695939916260559109968233397087164462786775107187898575236575653585653262512386279080924504892799205450187057474273355374679232482487747374085265256314017988552672315977028652070369720808540891937063436282130332926297309432282335802705527918873230507975257179900619702320007811661513454951945868208272459306824090722406203924049929956345228001052192404342178747343807850931029075249472260104747922636429075449913489489608742317087129099735787807016968930946938755365153798042380944860038237378157591083214902519756089097143914574938103191807740412042869518908306578794863867588660884697151270914156891755812342616087694073532906357515254609173920609846509338349410384461252089782447972550528715337037731322095249571059244935033124547798368939053328442458335145189598502122694040384748649009910252211023526505157827247881208952705631777921197414128657964498230473890971548583698691800695964590759526839819885418004909731362713352208354930517466544923987339820237413589445843318046736476452497140254241558022038960995369320015433357789512500961149341654752558150644168422439372805739110214915604173022428308403373586055338910072583619123880677924991599290360188502803107208131654918380063448984774535768432120389386529272143103422519925370047963913353100531072976667363278414940640190104986120822366561200945455245872719090970190420557330689803695154393210721311563955904518026851324394901225441113912211943297647915422854052645543194321564833062449097334760104881871600095035398488630784855295606553979439464376714475827515199860234416036747074932986432117220411853943894945356697511617341560578153199711205588305227602329492383690760650807701298013504151105436848197082592849841281568140436949411879335218345054679638716652050313764589397782790883421241915472145473686837360034562345362417831553948346577316382707920468720643885119614602967302669497000952098944316682596949211547627032685862370811761816509363670275625954514303240016672456507286736686712060980139542204182497573039792267666096781219925611134795796032117087830954914370422785290404751152604857643236733572094264949538737553579648542211357348385158333387489471109618588144586652977108509066252048500554661709882821516296441726619217283385791857974710894480660050052439508937600185414663906598445892088234558319267903745607318630671285691000450099343797475106957219906551689055118370226847650217134309820903887144929046175643915640244987665152914139264456251758906465899809867020413379429367778716864832985839234619805384645837280240325645237093144538996583982222305141782555082802983553923697525823915517580682807511331446120232557546910421423033114488973078177679657705101298074915919314892711976202155870211855330683002732245562876679594499463910491160395955824282830478387868801272374528383367451203349160249081889041836241255810328921071417744133296777502541204031271645367949176480633908777970245788810805296388334833013586991341037187125434280308705831941929605792217099186464810841566008756708153665103261639213511260822358971933154664312339904117807611117610214445951677073828281950164480786580699110302628584622462163988751168895524381027961037113020012152822611716537278841532095357746400837455992707765508871969563205656175432873936810628896947776555725723793042419077644814134342294788267985879187057375261163325950287249567143472240123335784928282277749899925364429913975123559490461338364520822959643154273098735151332586652041163957468089042809028050789413483482458750556895121496005368065379847798639665273709314318011604612944802769665301076117339842146539875191492374179926095406061698410013688801894339512005916353143594712000582417836314832610757187381180355122579866822097962418214507362558487995422993363463905256038158855309369856278302780343500460191040036079622439950912459984021123550986813214886082050002383571756800954195961160683910482643352934063076671438862569642132381352139846000874833221036123996920541356201471261041938609493381057262641049875892316677199948298943648060549305034133816666746878322756390207092784689061846506032062170300242195935262479022933839067823453987423786933127331156759762597622541623845266514399685716479141230020257354070052107380858350985374988297183226273415174480194245332232219108094456890561144268881620176095207922482266705684275684166603108705770045150735385940449483772293814653619998424035585599210429490971835819076387024926324449353565997356489706722419382774939269907415872416855084571410719628362889355575729919428943250608888801306395467580724991758162349166237576546947684381391371144507757286417301031401467694023968232094026967152665056808173330787431650956739234075028663539493954221575131083326525774426356843182630092634864344378683585349625694351146447011728210928585387997262611815806309667308014351660637092054184986612228370033613572225039924223456915236137514299090212321218863438002659092323499706973830028468851399993407914382234213029149274634805847921192306883340117660616572013937505818692870263296451970523925040218122802428698149473234038907520060178026171618963237769876651632945906445894978984404667237608282110825425823836109068183736080503059065086629250066227094323543943957480393976736393367792977939264228744604562532178299347740707723087850313686581074985789287015299539134503524535659400645150703837365237155960967500336085081919542404718843024724144250155461122469994867024285778327921304595217244901144301768299790756069167537746303253407579022269745131487852429686351525460742763812173473985378680111604398660268737614363064356848796982698384068434319006566234088713534490396279853753237289140750460545309443422394065027393866102769882097176084618503931251340948860314469556947295224491426940738355774352704712559803074977798025779061426708457308276920141037976459499343718140330114952994352326978653819237987277992818522306568305294404893808820963671851062298311828467413761818580901811467677492537518513710114011288727614320580599553608790644694459271498789923150311681826971398771195084228844148451082214922561696950123901159134628356185456215890225476378304701242551817838422633445400742704095921301098952141879477776652572263603783969444856265453205954483592376366117077516798183811323042876965977295746446346589288161261615220970936710162759931547070602651087820663301343144810044356203605666350464652984004091558271633898260625625752003660539198330219369873097096653096156543497480747531796809284746871924635192913681676429277292041182290075685965504335685288429829252613227326199795065536804341412358866345969506229958773935356164506863248783198916051510598759831067609583317919922608462886714436768934908530017815299946336331410423260892878522710424588123279188297351294690964958421086592611541033095551603036155907556253023212850778061859035777381286205790547652737396871501695314720469771734740224742287611856989443195435610898785172325158893797490872698466176550376135728819732261381362608561160569360101719638063959599404323566919808590217848431391088675719875133388580014963150212077713275059012349267604602853008963226064196592605385835882099027515842656564478769095580710685566195550555696799004406045257581580082813447626475467474592322559413196922530537994807967678944035932232068556842578021903026378418134140851913790602340195405173115680364596659045443726663689961872324369317114729966753032383863467160045553309762316289990360700148575056893168344791883781828600534975258601956743232004133856576840641775324022766573068846825794878677763214407790021809987898884413394969283137492650319579474413801834057752735429331974754641828021428266032705927308169417849389647568503042699576857384329995720489070070412711854282605968164542437853445273466296638729328191427857370898727124870178948532896690766553395541951383567793950613614324904378253436936885470341943283935574549566499232998145973666815328875682276938866025445214569468710098974396446837166516347983303892572647845913622348412162243457326435507674875602779249841199091770457720641114163961694055384521916405886831629517264995263606387359263275298254685560156895947186440480329587557555547553098596900808987551694409150448684714547550121483345843798103762742073024907340861279259826458407156841866310632833858736412339557418019320676161953367187907512257313221803353266893921303439111492544961129115023047977463296150292985322056610395130357447747397674048839408482601311466996991588912418548523294947645016775929495953670928225248351581518324966107202143930906457761608816352875826261580727236231400570541475863433378712610590288257336421854041437259093013991226936908319659024823355748503014809676223032452054526050216807966228420064079812476991977116083255593688195100010679413202083364716128475179484379216525293607741334712190911654346538499860303167321355688483249560061315717571489118521325465898452654385535145546461748470419749250542118385495197148333354130737011780427634945959381214708039935396966790990644909096645258695112766260777100271157782241025495418737748219139411425143007865841150771414543457469598406825288460142229543285313684580186410302180669471524404133370914312112500806137860467993859979752611647720812056165446435701223301793255661320680379770216414050276838134237510538806030966881240388906267655065413495335057619478338103846431342562532448586142831446931974520334919587139099649140690309243746372070478490736082187090604865513679125555973254048693573120708186653367202656414217607972804553708968119477975599124975848009540435077651153503862695781652850387104652728885023218053297643607973287994564639080195744210971810300755163355416395608615366534400122148169522126348608260729218675503543629222279789379864329477980738393966109501546396211291681118448907446306763224191290154984840451126027437704072541111395783345714855805926860272508513029435600093828361163578707569069095679510655106806837415407931541146937786317883933630604933091539308906326628434040668734292324454311555390956465188512902102843179772935126233413495094782965078221981220524054804697073351298361415239622651860136056126589806311939577482306849514774057072982486956987404022175182749610237881855199283831292193353835338852698924460881944692872594700768343554980783698789311906312422503461090621473646576228470624887365987915173321488293143278039546182944477446585571652390280485672440136656300168647446229661938125562506903313453712101790337492878843784840324215694442512678943461279385793810542539833986612292706461971649348344456918193655528987660374540455565542095889343543556517944748428711123444394942155249036586768215964265846855420496597624472467709819709405971836800314220772373927738021209912905687915976755827878123799355296048553637717296926283652053384215570021462950969541761658427197277141539314632872462557865721171001981389313355710885364166837783743469426815711299502641540569896676617475542075656228408577013875010519274998170504880270284913627369571117830722743573854684553044166254277601849698014182135585045166837148539577107004019687139043882002485152100671074511085895896730611032405284670277288318595428506465728914299714127650473291705505352909486448571090623028642566657237674961401852412051598239517630129996742825908290112027285937518615005012593950159673767554304344243217749736278235792569120613480053283162132939287625285425859340237155927696044787019415137462843031509392698337893552854386486864053083433431641193512398152175848665937059351075022807946266205978450797559067968079048007088780873674934641513854955169329215191548068303108953949626292905389218572024513955221857766304148630294938651936202556956585793931165452898490659599969459626971087587327262923814348220576121802081721921409980112947577890330434744087650031348454369684265607144401441600602643106972825874791857834165729047026037954422872106792948184120990373320575165680641249364706425088220380212654994332653639464535518121203590505338993907572012438904928674154862287821350226504419308362378473209652971484039651880119168022557093779478497367118909490152573982445230636607736706327757486171648665147577077544302671016201208193154449361108806450719945953517718218681649525024426217487951237111729246257719213050941055364115398708727245344225827567310092162728885101250086645559479040922656233987852247070370314159703615863791548573356025323074719856051823439210701096740398364604752122599548064717352738861349290967080214307974337812296418634186003535332533807530830094141791106873788744220993638663676023704084863088319555512938283643999208933180055682027633169740800860050602886109328393693047671892072857086239249388650548678346682695863217230298975643501616221681253795416403570283389714028069310821519150314634806993442574032648616322655143108824987694657867567467075035807829726205727745498026906987773271699241040811037906153301135899600854713161917089789116459219890860186753097551657061959857817405087683143832836800252237981298670913528856380719339791296540281944159619525857306007892152659747593787868223931668996587086833155816602705319329613361602871148174645302352741454995721636727205108647793015122158343521408344887990432667001317054893960084307021922361558982659333663953412899465102724839743745871124694953978495563323345431462717817083628178636482532011300475626890797374968726976761311566726573110606876445687814946247683883003114994055301276898589342903154910686610822037159811053611454325937342861945245158709371577602583003592111651789854564750452315769916656670823488693797773567969236893140215791798464863241423198836211903815624619080261256961178797753882230903743404713283749872395604439025788153752334034340300855686341814282924939821227330942813252637319430522294513846579879550578039783097769059859571130957348110300524474613933814523577916288747448410816491787279899999630183728250924343041872401609351997218284457839064230566563009172662179204508728959589044650413917067961208881740673109283658420592575889243876906541876799317680988916146057968037575344134879307416298966050816389472483381720115452027730300305807060915358927991204647895892910763400529667700912776810298410668486972247226441176854217808638983296532549907096283587223695267223131081643465164996974002828582725834930032445463538654174770923066950682446546080923163402512365700637948168646016405204792166925282781143209593277884782836410008286505592487576239812338380568597414310456072787046185143229878861541866161135048095604143916335271351121848324465394217794667006521181816387056874260106268575975992192409600505092535971000377584933784396581674371567364425523170624274398280296003217622242387517938724157257408810744518890260589188722871632865282709391632474842254329475133736273011820944876655861585694642964500555613922116474975361477760269718352297770422115936309280840265890618521997247008927974871437975601117256573263791989458654004058970633465152387295583867691372220552479864688498290223256653326792793244668980033259198191325072397212123664243298932008619252186064805994201521867479835199667043768184287624390045746683909853726265268352625516598029090026947846922974040788549702763666050573528450681794347768552966472319369355833413891762779413819424379847641930184045114384794521484780937970581424654803151173527503193427103544686262215014087662327683103402203108072969974722146698553699797134406288911939170631580596046963667066036796434423356143898793116714444323735966534975785530872971701455740542273926735156309757808908385858267305042575280831714605933721509364087728396440226704793862855248609869189694097839003144237870050728789819624984449537932710952051095156849024238878155066821772041355249354969152411658193627064195845165385452148610301057286351136379152379827044624542003041182269378899902680340614858761780789726944920885920201605324213772858408173710634965038283356416525675494939216679668949235870572786648749450283502215829389431327598166688605817639652549235931880859544765141787608410540557103003970830162754580097079594860252590257805265717515375506317198032352955100762231411887055054474110994644739989796048290532930191593083810390203181748237134327332715229234555174231394995777118464876398902969702707029093644148865096655785243403783709100450009509487759763939269453938285225109408473969705427777279470706065210057099936974749021116448380533701671582829244163797705167605214796593251940945890371309839177813304777275972403909986671817150357194567402006787041821119730937154515706724146266701682928217293420801978500528976536575412212908335172011550050606694474012758719370403379218437176756359202046166598730326245376293298304538606499817023253967250979540446709761922294048748176498748802605079923442636968406986177370715902866155904829964246343652297622823321097055260583624480890839333634508272171096869373489611085298362980831652754110901341741991967949921617198579077511766470383191184172281546262291193626377915591350553153680084810727907065072977601564519527961491893817123304675685855375167225835575174509089437037477294915479359468383921880455002389048277890694043384312159460551565886503524971597931307714928331512824721663104534579239098291804449965476488441897993768438278510652416212930183988181476282516760814087168339131379832023338972612492383208666116606067704387670163473764257251459777293452635581250947542020026137242244668120891936707362872755797534335118411810563522485802202126038904460872822581612502683131609260519954221738924296402428527116515008726281433886589270270389982676587177734332533820780183619128534346885659096890238781149655939801575567543449057700663289149633617290708580815725046269027517178788267307873773833386607905902695510461528951534632222998745531036261737536451767828229403168070104899795704616623244943729916240401699642013310472152576102100017743992858489681413717346267018530036175394553958553289594650036298670213799992503558175518018257054235066119905267529228827762778849026622174593865997093223316735513516490245742026143256359239928315412562797017873928117872394561455158786825787977715561293391216761776842845408332223757993395514373255015152257261748985238649999795024376159364224601201974912000091026451341710102942589641264833662895874838591406242391469593192405890765957206472336683448915192073131336832575308559167915160055543302110277865197131473398626719971378919052402813418540964316458854743570580386782023498787570680286161696574960201846197979712610375051844392481585035761613046187080284889064343968753436117245545578796507608633980049355373228102205242264896656034688121638777861341097583986188870562018067716931094330851718490417729820699519539963184034668402653086409140055002765968020809615688937199016629594164379225372293767606401508679752237440191894609148117232000217240901749000029211740554515274443037398777250352029521794501126582696941444377363040159047219591372534426568877024158717622122902224002116241383079054731160828835258284456947561697378810244170816810022087222393664360524400618396809342895062705146115907065346457336363787785426170226709901975737465233811813685021053653494479776898825512032087014333571444042309921899450831111510887860103552317869771991137732896061515689946907995232830131348118398912602145960089759745961966636181740934955694789438059936834127425808449190780453778342256986515571096958117684092816808325064475044419711293275040763911925732428655537013480996046813018498254667130002394053433655283964205827496809828464276082670383214799417692936316382771299091420656627351735800111519907942135457343264939674013929985447479150397756486454199274671444075665358841320236819950658052373699480109208420453008908648031501105239867093572838308055268414939986866598621545516026615017677242527437101927203183877476334491147805745148625252786082808274921737660051387940070655816774497410901915765119440071669547852837874190534296709894413918977899238317774393741640837009915976756745748404236033685121001172122868956735571191601680180074948920347044019012496389517463168678014293865364803646128501937300611335418928139648387011360696182107358613310514751198376815133589411229131984710849809783487060948142659284922161261812207822209414655236048637841229212575198766442745737398899881600707588252097762927310782847178098270815898615941599248377065916932559094450057040616834217095841471860979253656013075994724263205601725495995632822967980342774077936644900247979110158567473132661086457690035189267763460643562389752476668405366783973551954540712974338945363347980173796165793464714393025687054920480259714884029363914258691924262321934390349157029976659305299507826719181722247843280394281284943858914236501693672853576188702173831342143473247673189940555974550893667850590028716540334371597579158466936452301327788266787203145359319787005429627651889666238798520585022386548454095248558195150073711034119820149944337552296757573949401181658555959445433448897723807892138015022878478390964020841425480971939417452528777500182053462604719622846204124061328205517936000721452074156115239708195941607481428666955778924525525649556093546430657547035351536134590582788958646037899215924746019500249856388239360623402513126666557274382461176140137158561130557251666738132872939055190237350840776311696455154791011714318962273984158778319819219659461467748295007292657585926362062102154525907809080333824010503920022245907467838875129240215109893951399934254375600108677755809879257384290027482785914551284060119719208932894426800571115054531060630403634150974420491324992745323461143661914601117204336527552340352423544056773636150450779715673691310301252962933109307679787261309113932824548154376226237065906929753276725519416118031431698842185107024729599666997865916153662465352129218855291628340211444534074223621602906977303319223899129499439817556088649853679409461014434999553498337571123941635409022288813793686911033623702043843703012928402700541657670362652437986807743649114248452519915817751259399950684889724657662205559732035248524569189146333243142577389526793405586303498745688500447548982918721420873101222457023332473708305990559571104708267873320207510624740974063962406137990988561378265272704266295508607483126743868497947803978082912809034639702340726556586071741224364932674675321295074511615314748175489007835081563070487196253410352300754897650605032883173389793815851110140192958683806009855079176340853920919656190875645226949200785577240807039914653399955390943301602946203829711503981411550719678546865180193206132171156670668307691804130032089665130844148177791373200578121520953413425034496154250358309553518489658691066668305938828423903835486508340240781402828738640850321170888433183361726469206543342349970982746769659737960973314704867773268294803164802010536910118755044582452034403401761578048938260114633717065528652583545720165164735319972386195944126179007188879131738437799945889751353718139149510988185641169538597799028322383459934959598436867770888508948681748836624297017017959528490925247308585803175400265965807440828772560838586067944941938322845800407233239193892707044222930589293800748680079393743445387368335274742804978843520411509371740311750495248801536465713906021090088381868177871115217271367230294298541376401026629089526784462294987018528197628043443530713951672088459618937383387131392869309523947346631673689958318443936268868277509698190004142719080237551988733655340342009614882339367702963688249588024464093258449781471633728243914402239436106327409979287510400674565410631463886679171148871281524977876142050654607264355772193764691108826801297059765189649607138186449658655036390765641819363548839646309071165256343413402043459911905199112600838361503867379548224582623621039738353914374476101698812138597626570020231276211955371502220607085862302356682140747662635460996695962863853350680171695559306524372293129364778096372272234839444799506438381679015574243707213945285811156929143983553774281029456079844152563093556113424028261671980659645554277841550953789913459808851775388481985236912452523844444480663468284110438700160080198487074125905042493122595402422550038518298275151468554498907582275790125437391131687173741409643095887376389004246967094065017021342202678824402146444749560104984570480389343133718731163779791850945401686176474350399684905993944334261865330837431880347966002260361318630195961009890624692918729619010946756482703552333701827426429073290191882788889245358777067684116114003138951805710897694177399529781027516336416090806152805790870569736283000529302790731200544403600972060950384034437805984387730525764811679681729254418949465563108044770935563203700753944488613245989827727324811005223316591168926237873275654144318170213926891407249727863202511768238215108844068244494470689353755850537348774971040346048133244511459233932853192716126538535867063261333152947100501456505226360355804189699068793626993106229288367679714897261994754480092140948587192171550980777898106529315079216998126469153694935721203235286419375417744314783175385560529388247423168063538471745078633958201858933110214987800902246696000196758665203932020052114911067287852887026934979283020616724759680474304648733554425346983708267225948768925482828159892183345156516613150076880569327146048768746822372513983549619529823743050842391521435709502730007801006978324071988764765000491151483162250831586157895962624671969689196190872073212645954251089638749378158481433557002960249459514141949685420860735361780740281188393638697185442055384108955843673674284334138856055749590503736378418553836133069564409325204125378031902660744219975149110846193109293593148434055752568856428718127998726960015419509557159676261619549348501878290713877731296997445367243454359880819262614931760450098646529798495488995793169384760635330625158545821078678880352359832448072006397977226415665179499106382496798417540532026282019648179303146241658961159001497025836028569773789328922662368622709164117344124882206276730642966540090971127680182513672640338094164791386211803068127920739388401568444142342288148440155099325568286722175965078992650701668330753201755203390299511371044499392626297560004303269302587927688758023888547719583752761151062060384380376055609097420175043893133572894010724115031721979159868217660237446057112840447304490748871916776613628001423008269018183991194845827981650104513157884382741822451809321307523517730943855628313607839670531299734013869468876039149768369386045140396374143811524747114735099649594012163003193148987080834272270338253024172088003651879528184753019808386655476861138371709926672366661726950876350136826748207069774200175755310775761568183339421544767374319714231390611954479436725298356370863486265120456876478315559899126052167442872668882963327707909640399202019213693265787658268568057387861619163249536762450885606075427226421147101306332139758512505245562659688577542555868260775913770682692263349798994667609539630563614525630534856586931860143161396085410372700445282327984763210579952979606940908877565062741264714812836695483667312023878353990021587066972117851310927326781620322236023335858344668627893926020056825708345124870739194854151141633777892593554304924221761561904718018631309708961884324391449809789421986487286218425764808839601929726516127049555977420726879939829495084070941960738695625835851384621760427408455439297376030489617520457063514044294130964922060055466437786546146242901735161726802530757569927217775288005537036184357726958942316232199949368237887456334749137813595360255899162653745725976983410957306153339303381824705800494559333320993469274499597500039007112910461468929248412193779541762557206814285690261089102298342164647957949599466472667035116351606356840280523151249848978515672734331602784164532005728138625829925284980265719981311238334196767433220469386062387961084322709898070719830946656061768905375146581679041851961106867914825336555815932460049385130448654662635931511270732437285420387381104859629477929909072307488294271780838327015959543717522050603161232923750739703875043058288381237230174215947706209893431133985331576260179782716287708321235574582094781428329545733127144058985867987650827427111222419566390791518748784539305430276074908922117713882573698570170254979751884163079253687642788464222800411184980204163205488050561374220272387691760334234014298848362827831557834999905958989315293730948314775280277231022333561274542526053673816834846528695098839815746712653078202345578374264979823442203553240956888807222902180561285976995417440053632551219280717683606133107905976309870441996223990700071921377945133116451585722626915424338140654982644249741381173089604366236151908999383230659168751432063684067646906884020576478991789876472045233963094487096807248173536548609933892658144472133521931368875590132161744486541026497123486664857332254464874700038372753722825406161626482625889253706596856304616801159674152003384492013257576963318647725488246516618136380079653387861518300417243750897243911028556917527371643063837449987144299101631654752395289577389204965537554295176422649249437219735654390073179680410149328246546411425244748622097579914586264181949192631385329860720335116256296286776562286442621505528098741897320034884207962723830469100591178515925239589629880630831428364776184850561348832712131637760143103075457754295442683069381384718991506394532627934471678297714312115028035324278646212369867351176383443474409732880340930360512897123845071966282766051785627438706216488643283113087639348475428396247951911260481917056253778608110430960096021118520539924070880668448121723758539853962805256011022871775207612589591282834232526287315127685488513268718328185976603245410578763100656028125714265698081930452261891686589065510285180999262923139592748754212899393570490065946035357998765182872152285342251515289271363490067245151494398809813510652102463535919476468401100302923624561048303296864417969483195617325376600263298475830278836756329257463718228552770200421928730280618040171607801056622087605012446963422610342162195312484627148276670659257559214131133725167231381303253195544092281500402396348974440899386196062022820956203553161162587830620045718490558484742075843133472547697952574899424524041713615961440570047556694267617409981645930408544445119954301123269478102617476631507461458431143585466750553361112702484481817950747651443522183046914880569735179234388541190419564934120464532263769363294030430946267473882479354936376895749936164164142552513215636090409685477623718946778735420059808735834213284335567407372071417113321483631499084736763087710465544982919515037144781939419833284874756850819142287965517420652589486602063099209256783786594279485357113096748498148850756607199044493415466174601605341305873864715689997944947280379978987741360448991563869476090573925097461498892637794540448351070047950341562802477403465035031374545659318650290286990801458718026919562344885382929525119406498575827367601867855083878344416912995685307160069576677043471248622253475164974660491865621187779791351995117284400922406372148911132701850452508653101618877033597313341023150614769599258214710727177233634054522345404883364993449605766628587729426945146009119191445354351465399540953071798541151358521505071291375476112382765364131475140795453417521121694929308674385881809683891912362464016498543351171606790757133084520490131350878762886015816589541840107252050176513858058251604074364899127709454053744690331040842494026308619023928331685139289489120399856183872448529640003625147895230951031461024552783945601101501708895380514370774162943975588581149284491136443680969453552140800608355462918062925401190486830537863861709615519475818704907554803642249028576832370390190426854486958025150567664593165739656652482245703427680022795926167302602727709733126302939147738611118827497199213664542773689353431703638082765785004532707048810467066436745246594874382178606357165006403372978145055820398427445141907247907781142761445060796776653860609513896091030289752829667696934295331897470205833272868117245745667966676742429075482190803375053263778852160491274474579454399767147956432198298359515754953991794027588042640146971171960566832550212533730831086190666951147665508275067471068163840670281986510983208272588166063720376339044407877953664575005434849087435582961958689402057938099876966661610123164482084858370958166534922720989093754893900189661272888570120467486977674493336818438810730285469725797017082333782582256460245035275070607588736436004580237921451634929434876246344041668694327891653144957225162702494616570765331681059555223634929666588723635272966608089753728700933564738516979733852848929472757905459836649348984317724649992604200588150115040671561071080265855152304410908017702891434106136808461558645141126025398784085119882777684653990206352190453026372149951085080724191837944551484156341248466309649497105098258198528152425781704805694185323439908020383785072542104329278509816777573425438946486735675673080069069207837022440808409931631151692390715925622354250411273476137670986489658573568342535037876031857104251428485793997698883025458696213078768338306108779852133756642538674644829154479069656342997510968826586777103877227535125273166436106875682604267840116797894115161760057936847890042403315579946699019218430134387911477800460378989837485535747862505806198322857991887453848047688888319314585862154223470060110955425206929097232492221270773705836030153087620199207509090734051796869810872285820208908629141895995845239632808049563475773716858152546676587392207946753732843145876494926557738951443125853821317172683600223616128348831275143729610626899973440836624954597074455382767641124943783721215893896218495783762514402514753262219611656487860575559872332528934648570478168913457478701386232823090588542677046498383576847427743056727897833499356882858276955445356175581568176323237441753748954327931177948347799967926723642192035125075259663290784144074646749243313559375329942411355444804713756559819803013140983917202867016781962141650675151615607634371589663436293409932324893558525912284176795549572384613974183147851501701536505577798582792658284040989171317417785193226444807703982468148120134528918193503314124056107709127964651427771246192174679656163015747459321581336884850597886232263691660381080017589816174805167987689498885778023255124814984610432889763404869638793720834082565211849874647187744856083216262075597050231591844632753892003807472549400320914669261912679671686026047803641026570777291448865818178964482988867247981042344453542372851406829020793826418313146275234177932543815156353656438669724342205696104764095965905734484434718027511842570529832539397401418462807429809993917138539785010861555774935891589136857967337194644862868473649445793313573340757345087533922296529411604439027480241068223406377621198465226969156292419577744089025478759477500003441308845745016603801336061198034508910054109091143506442979219558623317940598907113598390535636146444858686466018757452596390401736861164107995507859417122984347024624931986816248494315192807218757178031792888996472759121782414487659023425289065614628420148083057541269103738195372984808699244125221812370454099849413888774148073551606832935495942449890236943740656089653532714819377882551828523901294194776655460635290706010140078483158239907902304614056678624293432526941937051941806399403430748588107010194280588517236562692268707773424390100959471305951745777983090859134123335384369630745820939789091845037478919494357913932096407256461831330925714109848634404723532879781278459487508810282858149979805379714852574423754935349812986155436390901710311208911745129560165253876907752175689635295241535117804603486108534075089823885811815296650738256529987756284149398906874792278086853484807421436024102748743007210975059509639559383442920373056788501859316433815550897242418634095562638290613507486856508626258195353614516642507194172923615871278243710430961121212710238764006837345563414549469003857458971585090310851816757299466237960052531360823931485217406672598788355339264752598051738824327274863392688764726519938052307626582007940134967820214687671474959114885776770652251606931195457759137972411008165642484627637659918507593897363621101776981025673735666344152757665072869571919817000061394011487150538609770486210610699984713206903219740700180672825562096866805976392496738515725771546185442595398724484931718384823639361271024507851300954780469615069784946516171388211185030839618564148472682433331913452659111288597714381490961789542734763632760488910444087047316970876120862763149776743385324061952536617112696706491185148811579979545674469617298169802302384873572457459326205943002607789860901952832228269083664447538567218595819764777098804410469120532628786976868738918912652120396385814108780682024380096789513843140963456396311021459416599514137838340779615495125143338534076813166576261507204639136996713785274020956414621485989496641473865219943489392910294915854746606628284552046050560409257039216176788544984417731330515888847148220082026892941582392302964687287976832072299672342796756439804593124481640535949524606776080377238561544127871452799947992727723909091319344320110963735986119763044943910375731813502083948341578746035676546401094503258526232037450969456590479589748932464536217315150480685397515052175468820450506358880888969313990747981475403646060308323279661426686013509845296075579797384063749262691442439720733137919612511771090981098368476093783055550424384785451160293541146434150728779752748871156409290877484068974382986269784423131216571997983407316339126199598354873386870071099603155072908238556152695141823506202975285803487676270235122982451810524308273891681805539411492524791201758529094478469145595078101641322218811701057297611869397257582497451167338401281674166000210625015591541094127264623596745619807555515978261034331169381726336334059895350044326250343939234941536420210050734481297975532756851128935635244251840308446896878791038978753361644779638121267608031747631768149342142937814586492164399298698293875626612483541668549676125750111178078735362506209878587872386742904416034562030962245615190736504535170690336226879478034386377888007909624665951270112261803410412689551010042360014420797545680840106183851293408361816343480804517064649544818350976296787688079689724499597563853019629558072724096788827054632562364776174865277097543168155365306700198426885305372389444428589770046677620608182436667190946611129063871232576814870521514924181291638658025496067461982527719271434392477754273069976515436750923342276239017348877787659208459437048378517601257326148114811074893032339288894201477303584560764891241350934668623822445484601301781715378518960891274900441541757286169027656517015178085950737139845150193498696109165697788594095561143517866094233109203591406600186595910638843959386551954514814384806193859815082430085659402049725175517988534390134758169868170389409906651438428277196841889313790950157104587568941308249685441524838997820560417008941777196907118672019040626545121517328284941985312381844479192714537247467991386131222430798330822123011087798212497001591144759150088055784667486386674755854164230809102559571799307083125150980148010929550167129711175145058253955293894088915519685752374559943984526827659493397760839580049399949741057380109542339298417358003051846777073056605043797394650332341134520792796769492351734042272708540300182086698000035426268870871754099046799571171579703668067273204676567098174167010068872619926310750606580279354776182914040784554340328571226288077843187216029026068396854859764726680485454785783863669322605288120407907289331569130223909369179539467299972183985079012047471350590162531064933991536273440523116727463642111343709496044093820384777619110739822617018711504917996351856094115261068568021896274660195473664583488483867971926252747442893378442297676150731969915474248690275574602243130751115949414942948937537899608122063532142329536311385358504530341662452161273946722949725287561223508203132860161972769764933798633234457561346350570002762845922114466046810992942544014806750344374631750311423205899805178148604055120430763683842918788959599967736842233037103232981597171421246760550150699830428535272327783342911239316152882735747598927549502523272452958747103559044259486153129441399007389929007470312082692338204208588640184142744870111218158796306894981141678402879666647528221221031692589875741360701712995886036362035825883072420645374470275290745742617237384714834668779470051110591293762241745106352274578285126047064784615148433673051860964267672935273653260756116698751751679334980486664239240869517264778189134120498341975544054433332238201359218215426915770258654900151351448368481715703309605280867057135432263673076405165700588497854798429147298575817047058931212624221791038382851175969493654372100747299689085291995870399048052132413404121001093569138117353233668002259449540032090203228396954703615513935708989940628066353691637702470014117810047049081630750176474778479700713575880230433734779246129271726766260838850617031385332091287144859757779302723298058261435810512029169015319880963627660437910119096441679328727199477629286713615411763232378483804167516136529805568616342176028531042287554142405289327232865751741483645505305481618326139623989886226887159350216493154735173599854136879163421999313190681383443913056817122284554480631669903802807754622585554486871277921571433176524494180433743576070751925238072739469317082007763805754337291177613001591501928069205959879944925443324378404144094975759464786596890946657735596250002176901714868055434385102617469885192445224106788797761424189767718612393207053693705269657875852491462484420265702461008923715524908336966104263729474261323469635677756694159742335318025412917650373403354316055444891245754227469268183101111529173482188249459436992958194767978781837747512029346079374241515079544138429611827221105035186461676769239314072671897984386797380060662626650075537697842773964727969730811957767454255112627668817535647717072701185741404051990080153875828273175180875432450791437067794331701328481039241286281350753344305361906858365128449204406547340450358251676030651898919875125600639994404835110817313268461017976850836669303505487751298312809974254983182506854809839521959848735274375573632619336330176374807789346499356059965998848498495422468341556616219408007257832788519261259811911397481698075445264091650559610270746084696680422717987587721269719982466495838855952289940939872693865720568237505169993909456451852775898758995130617158939757051418573451877161806156475659944382600076861429856928706537064021341412916767068398493291396820749174661823254407717607362464857315854018456291094711773012383386998126447616970079315574498271702907076735636358938373971641835239804222634277839935538155809559541621642602073686654428707659610972883886210979862347457432142406474317959221381225474080101989844377489604509909695815817278148803190589154527207651709436559801736804230398855507192256664904324232967782768317975269220636474427148850776731850223877679168465097002631318227002264085446379356748865156827707217364005015928230904797602821013235261025234022854191572195583863914767179764163876036320933115638144380451737244309614470185212355639406996097645484573206426296338637836216872193016183394264187382422937608949459748325159441068278671489077956998639463752443387905479242032360248448959395667855239308798961158332721997356632874507054907516545315260101133150642868930520405371627781106238358953169735818496643255822605525253004798091616885647374201049739046888055639354800055389209926483726588887684657763334667666401079345925883814816696792888058433957110490244185640860610183765673717583784771344536025143317822217129659502162568105329507440132197661288855971447203641321465495647309404149711049719097471853068543296261805494925467722850584130857253950472333737178620569074556063803151051904757241600180320668973645658332005438705969938492193192450185834341965807051804102404560050975970674464255239459825922167601834356536403349963191022963945765479188987041804967273187377307241631960201315527908785041591114421693293925471396567439625233674881885499155148207406347746522906596998927762050700418894496480710004188045901720693098623164831597309303613597865225570968886541789717505996061265960349101265920808948418549343863346695843567133976577259624530784775241185202758361155194828056750291550878854495571167723693449195135829866535494779350506052085682002097579434538292017102076897359978059330103747437955043953244636090672754830862662412253348785922136730385492391050849999719942612497881832664808535393272584956158140667304244853401877490201853649475834647528815532732872364427760539522652221310056180925186559375745861703674211806367248701501433267080006174605752100617054842897469526922651340554237760782402111037739540066143268658743041556572112760668412906528688462790001764750056077204635547387678115064209541446407801583486654201090474720996734671097413383216447511656529608133269589454832642335829192545506576345582022213309426513001800372579514816466125167300789885373001397759530151636214908867581049361740342016144815267130456476261931678218117302816674133874587481101362128918189908940649881688896737596430227158431948670027092699858277817114815354798171205927360600069356397033084675088173291712279885836947757436165297320126211252941885697838770697945559935555131879716258550649260156851314855573191150458637821581824949939902330994561329818329395402479593292332618981824274020943825588073828680907524057821260154147336336089546497641116922391734726682170464533130923491038301297393506108318905515504766539506948960416462600549708212699345344083536543718241183731399859388298391555034433103202699715648323636140718125936230815316187025726706007561395853775780185951147552263033634717536152110848844924603135577626574973761039084332902220190238194023383951607478113452232819062568498395965234063444126287300417561848061896987695662986976744260394099371287207078071990181633260434123117528176679968735363687179886650169102509038957031976200385075642724270990626308943463889424508177217402481822862387519568080082916779298146874453477732715076351673002015734311304186309364114354431407792497140219873364518304986164213419452508826956422399851279816966169121656892043360215871009630916694116256756818349949638317691521660313601342824619578529242566115338543153648844053899360346077421013004606712535130567998713902979450242578537858515889549302777188222505686058468879511504534516176490677646288169295976626901541041780084993321037245628796276202013250799182811672958812027113011783887312949798803687398380737677137114021398531167527723721041105266977005300954100465056867484919101888910519265881550429863622106362179488232845939943798373016161545570668551065078441523653452423579210049699893180265865532739799609293374434571358406356774432926240044599191677495497672276836665008460192318510713246278213916892551368128226909158262014031793218110796167037615161115141498021667242373578346937624645039190217881406204758348846346875142208909902013270950805475387019013131340233360152954643048661080282829802355075410247540091603086267103323697962667862441209763060127830878473830520917092629418877271700401305197792749698590837505903486019350738549048921963872441411772676429121001962325389452258863878412774898396425512707520520735468489079270223048067043466140472753672892275896109975204712870727020834470376113318699774882084552891918165783095031206650051899400043471745696754471859514834263147891551558482708620017336208626550582341712253370455698819015664771300535399661558436255672038832376403085021955726242417563171868713105526350716806939159420305829233328761410111475781653406335427265069961018645187628312674311644881437270169497349969804847803837461528385212070821849978734805263679184191697415511789536508864651284970409638394367087579955338928212240261497715724829455493085748235058736523808026338257877187623413332633100058712390444677342579153861214875739778874178918658486949794867189615355227664479076342087752503735310721457061894743306197252128633215955088396213984414928196224348082145619504773054371579246671828181280928353096042177366019212078433818093996173351721386841137558733475583782728705282098623384792599807284795214956699164234659110873688971189215173831747195876835078070524678866348491419348903195525369871706338565559215923153757049952746719770220565344026971927523687590358185028413416566143061093123454262898858560375379800451215908866121297752944668769336367667092723288287462085037107640154934935902219164758417503340281606375780064646519112776506563803978701799654389439198003314524694369882340076277715524112245539246670976866493561063381453449044269594594415384416651123002356507259784229599359548076186121281692801412554664724692059990283031433446151104477941951776649716066735449054342115660192313950523974345816392565617079181206390345674213259780504057682396810543020640841362175791260036127743164768467947838334106689547884527986662071059351228316390032777842311160687337378772732336357778962613432907324479988163392510682916788926409535075502390992776883995652368943216302738948662011380159906170455465073542496066124590608499622286231816287182537862232300784855621778451279877108818761060936800257486559436022860075909107135141044867710058912099256404003131847200060880643416697877025502172348291616937612391341033889067178333921455977909454890776983141799554954864339033324793554075224483885346916513728617325948535405084349850439564523416693518303587738430797127059102444331890809937504304395947208913893627462719736129284210372973780330952043199295276886622133065807821935680355779169471213313386571876493555066323553702007714136634785118743557032131309542429953338753618157943166970951834065393424454029664393238624707436998022788878605023303492249243026961856831950338577727590867683318128708596053146003665065427049477159226517912788310254474619080211993615949460232414593217437794484973684262054860389323672565594862347350887704029819641267808850527058604912654290628230320162656481598559893806900157393258412908163574906595849081514297743668436424553559534705693912298038826399786890521316983822170553193123959440280783065024037659482813530217818156649464423208985781439023620518961613862021188398067321953584988901422254775242301574379521088069377037620762241330674601843611039382273772341566787885402584210334735525834926828308087966295933822181851897633630320418037042279363437576767213024538452232840785057426201310675407161115935461461759623478564595646821534951344496156397719958464712536434236681763658844610126896182667128971199372036123801675223813940198371265233220301282319805795532664482132100402742538904133389177475331053401696898423277378462164023317129084795699304950651245281487645952808392032265056856179184445304094944894988176901911885366392741508277095386058962884577661306810437199980864445561858629986776029903962429762368094232382979554512917956111581387382519705108792198417388745750136943392119684208169435671038331960677038761615383454737383059472790834762952334601769347221832921718240332024718338583073683930704749627981890914939845709465427995919584764683563576696568983753578786910224412705553891544628380708888870484676622840674462225500433002081097563328363749274344370934518100584206947729896235897081433387776903953016677831601918874548221458531833757027186430297951243892497090696696099304782250833464313590237442113124487053595601030164110992987918494590109678461935213125549673559549902850246174838442256907011698375863643006447342875843893527842984863338332431352218333733383529980436363073901264182371045766321286537279902033864871995010191954294279810579135370290369185964254922019762436739068729168979803701092025248522764345289271425996074920029944370685399423261987669234649691743062837024171173384595565775546035003730890217522458779472885148204738376724795452441502037015483928928794465935215892637792231919860947058087063480606361717181867564290351653235433858212969105856394188368123547764460499350561854568697429396850610754391013193782357497538229221031897012415079574195322146363332855177802964262184910820570021788528449661061364264050050405606495121582571795747160502152586988634453823310452455511907365446573998103692482173885725909689017054120974875214007745629884335195573442475252537262846601670124806354801655065482678791755181380535506154037425162448106472511621813172827359308761828983103888102205932552745772329648690747894438203708064868185818520365492343553821414316028211601970989882907265051685759341435435215014311611528640989062705299796206069003232328314929944309481903555744559670838421431186906328082330547797012697704078359092377109325152420846988280823512761581392746803726456162266206728782720744613709690771455717410218046153882293546703773639947119719339317906916755070017082076935439885355887981147447591852118718364570299880127858421806292722682602337926295608221144744625705907264646092224648905564299225864619746799342744448631476127183022117763271235228154011663208263433387819023681773720095908714323863141241935625855393699772560812464358318904254335354643829289757277371459312276222404106634379919088891954401419265150865082963957399004164966407418282819938125378999125840429654239976863937102064389575422934682446765772119804969369152248215597791993132377876385550938094239316428866752626995331805495163602963036429483105307827111049460402669259783553206342725039321095177329102932243469920266412931959107718562163435825867005544471174391419418263428093667069610701579394564657583972572607880148732286236734922336090509013390370050754743526442080290002556835233000104932082607449323924984102335255169630274079176131389417691905347817443128287946644372166650627690542264358468872492991054338367113396922173918038820741158629704878462001880641776866989304758066392961696954469502151436091481433601562743529124502380538820322436576506111964398283365206727924225909275428689294769364156399730490053436844147854758978634761112310409803972049629274559536223243480293017233872337054916552134662157660902923491289466658866738339381532129518881568450126724230199211713850051922342356044578136847622028579530201714128204880332313344283948009240521939158467039364389600155802251179148835891124814706497785069770532681203039889851768744320263926556195354879927667410361267905769185413670290601237635091110191362897579711982711801158713974307287196105137302876826909316840247168676977095395524802859344124497767332860547061835097550504734951533687660243480330629471711596480952530889709738223324632451425286217847651358000158493475006082642736825874425552823108500977031728401686176148412393791251318483069883958759059423247421102257430026176999497871085645712891578702895662425894962099518244254772323812645834944214831159077693676136361271254294544060329750001468053398805919642835316015784606641763720237949260810735614288456504003413941918264034967391383315496762621850477242359291497637893661744781848921614271443677864124624477667721639206246694171020914620102560715987296877485043437079654131103572094679082392952622720156301096699156115421876682224511368094041668652648872675387204697598958047013211606261180043219580484127046039564272530800852302101945523646897079993340342144548778921428049575826494210462282495361208799519145219818897222842032543731637826472019389575924569220967374246922531198056734270546221085368883810740080898665815001387660398662643975357006435717745616561710538287930772305288292531045289736818902815556391253678649356670884189341410297221158421253296142587545462505318543913300352117739297272012552070948548432134287892730451361622732581296055591075063707775141900506585133882595026071000164691010943321965044188963069859900788507461676142816717597797662402348425729735415672843023438911688445352001776808325210061682754837218967240880129810168444477274412898424403436323212583511004604846409800493360707416462896637021030320932338426100439400702257590548759738726787870408109184237815664545109203111910704244144054668472853881378624467225944413539166771440632919244968121710922306801854939846759573761902893923756695337318576831089580307865152662571359859716722859202436564816295800974710377880116029337750594619606777959602916243529561481215332913924031673469911996510217552799653693487204292428017033235973748315439198803625493769233473733670517702390618324502456529566614021601585200465055273457434123834421673568344476485168184407395564886494995099900038550958827446005262937602026011220172541572600309023634880446415081285628035059909886599640542615825565027396842304215081860406668438299745925631704036226085344010142270619723459387420535741122309240496380199643653747269844738591808161391687979496638057107418114566260732303133840642640022099811288513181471292463832010757524132455173139484288591534715168605473775583267927993115987502760260374753570851194770291428358089671592830792691978764161442055060169336141045614521835235959270682425496192543230210266391968914058139741986291958255133127776623300324230617792878085245861507073633354881000131492892421967148661313583131097765872182951998500569042212125118470347570782091223616446932983617013066758278541500742852706755681906581193472853408499664518452618043820398492709198136362883128521555282569988591345772077676687001571104001595124941781105043151053355091529661662137328825241133448707091675539885030602331907733973005338851405904199861890356670844796826456101807202914795925069508141930327913845775583523069965417130473445815878029729333583834912583026157420474875989873583255251408764989377673823266525201014623313567312772541443241189906609558071921166181710584097064765291592532619779421839666755802400893568576699995092827421598360063406842104106305853061449470154848083150127623755094297374777345375504680171337439857207367408244912761682291067876711229844982619071719746709216682909648441505223968131415121443959501874521639298154359112563957982721369377424086200020640389978802666216598807871870763313531060465111126428156980017914507902918166927714697135485078071799549131748165833494722804604716661070713732732067166134456689037178865202219527733742772525714574314393232413505942018364691886018555027599490902500976143817501373379522243256148577776795575849208536046425062724577207537475695417522665186914493224693954644072746794360351508996722925294167588146331642448299818397378040974553294985377221574308755749011618362328710781119592252483562023542879635942839775421546344222422396285087825632760699848090782387028014637547612800369115368725724971910996129298826963468300043048908630796562805598784116519879083358994344755714927508687236681292876153552325260766079456403800690061029627574545449898657057046781873091130585806164678635206159910733029427791828952860062899678770369168501719354062276659565552610948220123202128295092153419417237092927385785065631660037890157932545525940228993871822694860592224053153263391856379563122461165845195830299147611048858245479104517251728679062173062264630521871046946475466397841478786625819405715102485623558643080375645327695472624107668284192981583242797742641953602101721647650485987927390992025787966473692273575441118373849206262965049310030292232581504879482744367827820061423769489901351392637371977018936020792181057812090847336595443292824482622536760229032891258292227640494768765072675712045311690360809413022836463776384970742606520837196377812285961120648920782561006249389943689504012861907229525501223884552246541452352285547918694714360471948894823264611051767571543007768513195645772379621699851490263169488223259620092518923673147722021198406961437368560616397603880304947625189133853025894996639833759643995067506249980524057054655673497195078645121404108416085945617114497617303318991472163303647981419674257642089114110774509892255770747427846180313992210461375817968240760323438139266218697460300858448980567023221027929332407399979987272726708141881375593773838079318196184799192720037698875388860401813981400922492888013337533106947226260268358715596810227162911136110321431836690676332395584427076638809460722687062717602600911914316239266096112945911980501509488374324612219918410806963399482542593823130897748226739056161634995060479134426854376352163268412096238977291543468155029703348794892638066664105268676254603637397970451464280706529244962380400519181170802225012664024452784385452264222664722228585469261155456466060203257657661450563539806302112469331231964800261142331998838545924819047878044442954029849554690088673780221011669791773526478868030252558999865604589814297453192056996762908287233712558401172698687384941648596709209857829212624447122972923018978291995286547156521596792360416988369447594146445927127444006744135564153492991454695272220004956492390455925412880870443219927787870116571772844757439074086316162223016737880770869248199496560184172028495639365744257018992682669736186118263360481277463555969567646845050674616297400412265584140708120698061544678501728629542970275965516644395238089316130966005915435522608623847709745828632708724953548359970933884627914050611566124702395008648240309465783615939744761522216385563584324541015138561240234984025229450436366377617542072989569206352181612300270633820525399785658467718938940859590413634940328373253300766840798730864973150125845312258561555376234892850756378145273910031489566548097028228163376900664491878304800687437124573458676889301038154855668316476612394900102889495190448474089687549682942506771077539164834986676272088090013865990725729220724519458311639054493088653777315849873439102208258981516385539802471937914487655662606335012216555066597810562031273251547723312404831546227384010835461674708941599016984839943964507009880308096812366804782621469744795402908811137020097619868911671238683664884776392415178666872735922816381216629311454191162383784277420948943735410116977146615905721777368130106602938171701601088531016798427116088460749583878044715904615899045212422642315247954704633529477429237713137488274677892234753840646448655537080040433565649293422710573924389144945334507626090457349209697247341638052966746136205668683360973858275484547700911450737602024242560807212439733615075290880491477100641102020580598690637589566420232921974766304449657850807672193732883738632911259753208195407287152658105236324920842585677346757975976369617592800927575977209954976265610122501192475035426983481902199675272910348518466259229430893800783731621038530441747797049623697972356517677146952196755923724109091448867774613719792925755006154889473052353542574006345163672327162595649019213369594118162773671207284066650874488912620965179560615955136500732846249437524524526562253363201048647645526976175671365785673741327815367713357014546878498293929756250736361698500298118344614303430034046501118640987870161533192012164145459926790174901533476697933195488096372968400619180044422648841427345711091026670438993133350827161459828076274927554600980924111856748863358314831594402720713826560541693497891247951338383387892818041913556417596595650159869836336409162191687156940149081720107307860479342964696143987387977089959308140377787580675402046938317799862560223884509376704540202193851791188280093504630593518317254009695729142598722763047238025597831072502920492945190889608760907130023043870283646810931985182181534865460342636070165613076339040745002161645679451470663137627034772216813809533946490829812748088918471212589315696731147773077014282467999841119508986200675171217569779560195196238637273091327315540453465049743031665748356536617001848142031847947680618618743961044233551426330380627979260713312895166379430983511929354380102774346425545889938475764650017634155507873014054110802482027830937158195835137706946429402899505620537116644404268003685270660220842185613646280806113524325678462648832080577939887709318930677701132465470059408156006643940177192457170149272398105115150631624481310682758542270067266538174985090181550669850884741626168768937070983624227578597827480466040143858583059382048998518170074631711609501832253632359778680687696355154225860385439806385617095655979349186447802869510940390801303131562625929515887409966170060280638236275958517137853578416952246214174956344345876343375673682458764290304749776991710992656983260549342805116346439533098724015171062042274414604344969836378488768796217941325071018969719296985308915154804427438466397010466193192046085430089949893355479194172922589613981199158537164091924659382014032857731795039725978724378660909224444470505593794914099547838594207318871347815811926573574767002501901447842018215772081533895192942621808206518469013177208764385248744353586852645624231407234215871420605864202663161625521657895389834756494238839006297402895634749681368021263293344533466869135167980495033153665831273042349587311849879963230279114497449919190405493445409118605185983934386840550760764333661120187645698085377019299967866515980829027235990425882101279600253566026434661046219588536842546596742686739752550853265959836123552766266962466044208478365946409283196281340445335308882527023199673851367035030880794650779715345105250311739605982083024376468104414858706015849375645900564607090840871647771933959342314473674908874590423970024965578075419600121899972600294728497315094486154624076785002124191311952152661922363407912219822314030727207530273514814044343230179679460094027587640985811527927411123389138783666935125855490137393100517572806350602241365621269529179449299003319994494647248249772053159148792703255010728697524456744105363330201721390615763456476115180935156021120101177999527347450669019815226330532921444865139642984328683152884756386600104435233928478103338842079733452015129663427662738319386497977277450530282822296959920314681051572688929338108089597731796712340329145729269959862528799642532575158135217340085151442099865285198978696446992409631589936660240568812733212506564846288315383918604304082631237190948525396301541489445884272803973402538176217066010359500644018931650006919423584068862770596936784969720578708226632233136997556342339836151200831273069762539267567357294523516354642407507082801340698215416675964334232694287579791972814164427396094016549148942293282598259845614353278626472819640499731267354213314784671256630685213861717271167405526529660084974420445549802369408782755669737936961098494010075979743795107868605061928114874058929001991908839845396571157679994462190353346546915346475731155728647276902423576739927783219573141255340769277568273431774885685243127373932811109727584741357722038182669965162791905344694953218560779998569425754326035434436717480720581521018786626030756553596188241787128216454879812419507558634352742346243974823049800207457624977993375495532352889079446797383085854920659429274790115038770628329680542365178604317687509501872709277080569362236904878905312597901774014546215139568657867580536684656197587175616765482509275193030027760828952742964671210558906092790936571474638041410504971323023394999607073431651479534279229810494351568434335499603137803621537023078350352601404691403301441825569272486903757356304635787112081489666710321291917835871801312939882689728812511453761299684316009209381608176495534815284229174701727871458042662293289962356398038923358207539241424584686190313719504397754394747435124607208372958719618326336836370170248705446862539272300654808852352764288412451654945308455131760255140770491137188731322669867020498231754628555486717075843632357626827384329875252802736138734917129202832830274090049633276224279090301637835179002871640072132909108634753333595201641714116511777159940595611434292646950488146354649925787800155672303815039807148877215731680548956484490602420615841150198784618346937883506246820337542736207925310743580868012647295598861208504742568661196998711997386621893211513443225206421200740666163501689289221330240975623620423529266988291320932042215032370311504575302243158623508530985882104123695617195636458703637883949762463571892888294860301293178426145842424875245196053983430901706604825459660997926730046557170233505763526378434110452734965433557975107076074087616991066492735132560174033775408742458356908362988711745152128076778096696439929611690291015732640543522624440988486332971771493617563329921606929559156633999647724861626215860688712058269586320393518080735590130611614392427331163270824736211913281414808950101799382104153685926736503086463111162974548574885412585314383370090958610385838534727203669862086969719377868264744629142183384943598361608791478392523065264052152235743808383575135456020700203039642339904790104620275562543019928567110206478144822102225352311790427595920933322023507765143161635412137141369437357959799771722724597340063325197876974227329366999360877270714395382277177638812109284799471583918606021816504325942359546535781509168386128960184215222970360911939767864598486423069415633720794580948435564790459132186581018961579594004473980694493359801392023107400934296119752787090220564115498917436974857088212892866034038504122677682135371395885774015610211943153951496760545859668279224433507927201842389288905595840552859740905521801260546895271368715741855126932446180286280492307846354504348875642338939035130289619920793934597732207663032044004989030809234840772518021161845971309753107429562513751915982029423174561681998897225988197859562425934421510753298893401430370207228203942853398701798413538990647459865314801415033852846038462192014617239627960273137742113421886739575608706855657325065854912471892237752052193941403442820668513197088316155967331600687038459741507968317976512749308762426569750643805949906046521658943863991173729992883226746106860505210677126329576561781807369870757784583060675000021161892137289779877336989487762751129430574915064895481829883956692155529279575881100898494042795203515805883459639970014010580761171041024753422646539500239970768996605917100653690372792879112467818145070895097309038565102482233766225785651841952293431221076918213517529099039244801401636031002273998038878413994050733856277199223101828280779851542753734658623162887544972723858941510757423396940769961721606065846063089400596580576154904321676158066074809128701597504101203624900113531254593146945819253118213958607881747784835111748034063926001461939988030993929576064315618402486353357880568880176602539386809133112868722758499948955269979803200314208615463892057980656571706578757373023885922877036959086387991044494475897619504685764696355299217509292900422292981624516282932108884829557767345723076483156256589498888483334264812307489778198462466662505321678624721577011617443819039898423108224862819151695446881446218368246954460266710924111423699051355200440271173630333590720033385673800721548240546450642106375277665462304772652697878528000705300139856628964152124354379238778871733497762814707311393291828593015222001909363460084498879310008701589746004193453013911279237649185718627732588522621422841305515792777070038463303401231556928717404016169878941905041874824515983149411661795890086233297349087354414253326239257424569672237511895565838305182672718436016064609878453311553073922485614362640438512524445701323040560811731102162088295764153552917198560601179676666838958260306961199573858496962985593483705206822819522785612918569198438620533722998416727178481616652829920208109994699835024778806792924263733935611242385593176440955331045247501728038143178134804995828050811048530627124669073303380270181057126541692759196569371671925997234243146538777540822159054035031603883834694855077141400449897306888476375467822277714432163437263962423469161856520621985460246399586536129751599397430209222855814192691526560766503503314667337814479831021191810325249140994120458482016951890921755126810453763103196835484696277259897878311007192048274795785956130824080659898272669074202412809935895356510065907812124557521695947635798255986884304315212280777803634308627994524974586081914710929807474874727238232987295108890735195180923587871051980614025313460138525726636122406929832391431207850882419175322881193775686494518029259998878441267606936220282355532366984046380449414437740514812092982345570782218718011431463999491663360950829669977375119347910700826680123755372211835885806216730828461844127242612253582378534634824403280522335602436833988962038887273050333854792636729693738510655335271376719585152521246898998881003261019108568126536749397132389652122595711435550069287988158801822538523604034703157789442384836390401433535103812862435249021267542278917367225678193795807235329417479361551912342911340704518718193768022104853477403782954499350020715348896921400979765239864939410154062762881147096760482324089721254725855336686266949379474130081659030175275437470580842936586141000829352499657085544253473218262429763557861242919323679256044842324503056981129917204017481708559435747665430759561582617487754003364496942261507721894864093866454969784484010820122808058129513843169299414679935580241590715840452920018589439884088472381128824832506295233957961932908553504946369187848323019443109376462889062760797353865184619330850029871705488607901769576449988459943582709415056690671109322657656240513178171685718750857357296271311054080292476779302388410006535674355990690330315137563013677404582502414099842682307328361633376218782749150422170082348787394970843009931025797003783939849532356615564303620293393132670448006704179398099277877971442741223242764643781618673608904123457661412605935647847981179542968022848582771651566725237983592505675669277865688140809101964569366916888343624255643338955699476045918084374081612137035609446236207724702540596307085513896126087495230313639426342520669906414724305683808440756607966734925609799913104546585672065009001076649853422201550686753258843755334513727583722658042889899411275654538739890892765739855494198641600445452931127640432705917027130725577874923969513590763911023185021979863138613545021840640254462886474773735167429102949903750126333162737785793630037839494128050876783323801095192128178781801728632763962303069231570212332051137999465712804410900519200932492718483837741807662155227340345859217350942331632928421207628619432213765059383071459547898997247393030222822175112376929405818405028898261180395815085698655356073506386835367506638474042275230726938657198225695268849796720159423655152697312252508656598625173143538248019531748298722630419415204975963635406176158242488366315458032483047467513510059626314656625795575179362241161172025762388960320495072420185522742005470703386198150698137251651763349009202226486580093052732414203416318786626962593241449758746945852387441347351632411031632195381219158288424487594460415117289484120510147105473338193261638384213062179294764440348879157064813851611503537560752056038571787425417570427846743607979732440883299645212886592027219982254448912978120784175733952776640598107329693896905794025955326471676918138013603356558070069181905132659233534166553247665514340887053885400577894897702574320204482568523202169138818930388782636997763424454504557110235152665085661601888081751295571663787653431234118927868163760852150632795469177460311386925723296729089892720584189295178428148948377239249313386575968825635459766574721216518887641366960911272249955159893570467366901583753325487119269783363595242543443544851337396693262695476520501036616556683461212140677469080683847982686062883686178680891029970091057225787122883458980184526929787565631487877862700559044919497236049881534684948270135970381618978326934489864492670516122134218042554438880310916105136965935473468820668620777928578432246563323946276772026110632920240097763733600883157098758520382961079190313719779920296858048117922437637043197944346007066955610766422555577137334060179805777849749672371327850650247706857136669352364794361994097280800785815452629267806078316609084600324349570179127580651086411793528367136322093390808065431497937703450181902580868365028945609658103713705543875788863939470682352450631763945946047450835409707005254847273359742170081567758233519066996704013723511553903883482149116604494802034120255170902994673462459480919124406918621446980863261946035651181719554711839217197523732118955579849001381044457240555157114222136533260930934753681557265861079994054667175410093080734187995205447318282386902503841363507611539939225663250300203321347323148099009798999552551747829807005096235997629433226983706689058725798388138751944692703713611898107236804168278932857330212246610450540991096796027155087749209471943733960688699885604227125769271562686807996429795248544659362770201753676178541251952542993644979353414646682025017672444572078004720994496938046927595813584172871737885582135827462825320958404376279510107869534290920909554096318877243803551799925162356821775168339501805060769353499727373152939030550832586090151755606834777945485876092344842384191962639372711410926514746126664119678825195365460550992979688107547426150745484338308048905836177481566202334333592289208774952655759375840161476074543156170050974058756958175011876695869982962031692128530817186598774203147672152383291250000246782670324144255980797653835367978605914133906150114524185425703285970427541220218483827660206828666169763991907513033663599641467261491935322187810489746470959863101406899127603421521615370217877724679899439699437643840427398093151617701939823587053574051836447459475573990031654173689299686723586284102206514651699702436332893697774846448705946556415702166271361147849887781742827033644966870922877116845082234964918876539961728928674235868263631065800718939595952355256187616029475395221638346384670649244909268879405878547611261667508214256730107666267129239406467307333569531936046647013990875782053935117783372408048302958701664158590750365791684542716089549568333048523202999236152117181091258100405016082874003147551147309086561924251404313946240916110211552601974524853321740203303106582056153969721354117249701485758995706362444845368032452629183432671711469973608719154239001840487992450861745767720038043646318112430252905180280304364962723200089742602552991515120650971116867989603687456633120557978397936820922294993189731281797739672758026814562668817542722478218322086197541607973695213376617740173400201578484735222652872353261244660330284363246067279782806547829878661926558817964172840130577630633821106070582236701805366428268162652077891098270548101092604507722913359851488060374315653119525910751257403201751784810733602596698412708560252578023951153931609509553267258899356567661934524231329546205115562367134540214083033729899818659104032211728980694215140997235240227840559090113410168059886934265897052400426212686439365382218359661459313723828117936554631547098143913659326413578972107717759831172302887326196046191390657250735410660999533295705746347265741973556007140078024614740869556941678026789592668209150866836612595789030731235420823320419045629600041386244326598633752213980554709056695780561713845887785575053335286152955197742779934055673275010364736703465848325032834816693539464630530682751619485397234827815376358708110045780438858018641933685921510156523588559706851982668994048739092133744095466726452077484037938771488796094716011877925277147915388562677683357213200703161140165725532129088800533799051039909813999354414689449111707240975511147021463797810455072140904906067275082167571486199717988523458981208160060954088491899899880444792439179162035039279199414673726898138734607620704196894881413582587830124424716566531396870257401418347746780441061467326871899775127622297450318384974160778783793039340818952701059917897159216119079004554564091793457132122721457252125881053427032261520161869379183589950328830057319716191413144098169888486811275825354562354201386918151404820042704692246182925933549475762183930073611562436748009245352256245535065544596489820607386327090879282608037916492550637300970815031821731897391059971426194747049033937271746041936709228136131949724246110258340628724570691042467750563350896200351291782024298286574043981325195478277747159322078665932149073209605402262117018878203827066279529402359542607118864437164104673927945967276981032016009050634764160806490406806134586581213284442681749838209548137279146435301190371893760097601302073384921059595953892109537694322452494858500653783394412194652114307318529118093480056360759088884791013100374319650911404652976780397298887579904038653151059639813686124415604903050985171382690137949063426326992096294471399619130838524459799521454403765423825423580663168325001984981506562288736330885336928145684661288797170262158048596710767494610296178374179881531928890842663012519881378340873431710621054773919690312542979102466872481140356067304678649022424864928042046174618323444752408747119518392918623592959172089759873105733168070503787493649861323632089252548942698980891972658146351499541765747441249885145191703906259086783336480858788622042237360573934025250411086397806712816385074715415988217494212172724324964797187926765555237266202721469664665284799494039001915716360858508347214749037645561563747824380898905047293537046880055294844262726779022876873790262961554629780100014893641720618821079435913960946304416054691510408030075675553103932813447906954045781718336191631540218053798644307917953058967428975375164992091318449257292093181159279020655229515390184318044912226179987872740905707176376408393267352458140068322669763341896988674643454265220093992135540449257903218823526550064061593391318282870647903507765220378178706523405531007730248766880756191409318428482613536118588924867619382010395298965918373311078933836801061161165251701283179581327512017917273519597075381665721895911588244476577253964378005476368184042217832105304935178480304872018835483317505112994640618093817995437376281064919753618972512976285124954417571022516452562780528780810155264379966896831538357822094018240914877772211457521247940784475697942152048292765329211825363038523986117767731010338618444283826798712647396092382699276998633462402950650121706847331370480215887440715119236354556823047445847841977127061628011210567997384283962944631740633635499032529606744518490601110566864682997178870074550255425638958817627136019046445352577980150190579547211581508221393561436401934652019560023317369245059649020911330825987914323347632968371410589843350429119396728340762567164089525110626914559898110608725699137703336649698272318870347715011688590691792442792321755730353122491456699053464308891217369881218466906436186597145403083093120238372517904670510559283440121546898192177662870580208970395237059357042207583631303943822720127409660872926391350647702273755377608763835123677841763784693482989510542667947812632251189666812230765519793404197331864788316955692378102500926984168946310550014575659205375978763402733513965063039351685754623773412053350981105826222642241830916392028728051380094591363824093849423906436856553199383418130072360602706781930421048602390363011947075295227374283424202920021366955316358354722202932866724696145314983383824948147092534115103763233541951970824920325235098236089974365143060698726174750467543720467012151748806686286178473747151564408881140726811656636712401560141304349472675328340457864581140159189443678880671481684251505131471506585299397709632697312088132612905019063477974514654086592282677916973803875745191692214719405458609969782655048446248752874758466969161809362305734327089021080110221408910968045337151210621846024191781398231877798664470927512113537963581027844647706008761451544330515213901748072793015374138173370259711502961811957668129258948869514965789038219444713140816244447700013969039464099480343057776184622477336958996231262189963530632069609994970776314173000178327236996805969344099376818313911148512226674538546362748640826594112025051676342628794587034997974620559263152335786469752197944199612131084381795432055798652533868327195110625049598945814831047728957689372284510894237956142405599389431500134421974661639409038549061542410165598674198589913051614019082721251234613147988276127260907959728969282731950537619772101464372097957230800011582897342547144134035924653054890762074085441769217328665370687313800215098216526199265556422090829950837799939280687795385981221023786045739096965706248489973131792222384246142973406312185890047023206874492218550821153758606619053871308372070248898806623402297239144013171065811629491795511181936723116915769324920703374467067031008815377583271368358890277543669026243834962451770870498787483897542161479478455021372783803446046712193567898241174097193186065797846943388744600419734198329518297087809809446845418516993463273774905081775466746195897855362516339664397369766793461755896171899880124217326964427873392258375082232259122146549499967182787836446100337435937313018155294800511151179751962101939940495850820988468557732470194522214065278406589984244503538538362049983042862123939552951417121189875542945611049982573709727133115084928528361353350308014878864467192864206397773664892648805306335106751595557166351616008717450885480813449009515302705099384032773904004086989275893113608262797059692898516202811300820813168210727798526303096234048631906084005563930330634045242902010875678147889873723472771640789352008324678511575652487379637174299871972303607244941891754876062127163870704922120616307184122726342651143428138639806692628286147872809292949219703938674676837300988989654696800265510871558562446308274317200970046731717271011340792844373937785427131791728740861286516225553078523395981876742793143557193110021658218657291359927909262703282684745362231489704959528682519731276540272084852425556193770128504354236604911557587102072936744867676539473712938070587756804409971325102484580414868541114648344844010677871442385138019684023525289933772347029959977258518143970527899995450297098043381237570425376764769212141612913087221215999703574740386212616975335233390025828803426993479359525042172120667672288335691687511600542937191188057155391092959650035170734522893833723802234714206903313199673450001485408248789615816944463066126155599789831407092505253616745716500444420709857362461224662190236620678594750598587844545562135245350428599721403420359788996949251974918908407585876266141045538060278572023490735515484442200418742887090258683969998235495708331981995970292651053112296133322628818811129317162451071906604089985632272024551006220236543007350263359359614493280659042060749063655922637342307267028391066247066528574942905393220101436054284734096644778740879954681169395399655134689259546655172865005670805216302297242256171293161895798005568319408781848580210409354836263959241560735239883492675339287110027690675440572206647739857360561192150479967099943099693575547664121916220513691145626075918592077083033670534169262621713720974638709899576527498097065783595706074583379089974734230737631887471511822093919014032470421012131269148109820355394393136799067403738160284991556368581980370733541460169475700186436983539762154527067264488200887065899888108246231204366452033829408759864002206822834214784633863576676002265946538408394916245764277658833883776229572688932647921066306947094156740048469168832832719433437620856735691940452165548393751153463147919186064109641255640227602313068438607261766890012773851993305935850961047029593782048710637400763001843401370885381467942568883677316438228718499296496197650679319595123156271066252694938544360235472228595441566351071291025500826767088740174279524526831486011107478242509240430950422838069543150672245788005903766746310371317850445209545475177866124643984122430753117699097073125909568479276046545733076659110835225822427386002994031316306491176061170294035183794143711762182521165139756844782977016889282474767452924381669085951560735506597519738044795883555012030326889394009984876509377660726026558604302226049969791208946199805423270292980230541381294477454249536375947508608416323117032954132397968377460717628907702462833143895010899861749357551551513548912379951374525761597931830401542566200744640904909379526566317108796822777984986183280880427431777350750982561219652063980307142609218184204363931329813958406766827556421171094019703716850083246050068996881787594787294411333603657227540407972172308877237098399675629239106032345208577987390196754915865925350521502692958803810215410550584387167018720503895511430059868539638480752449183068703917298387372518827699997159037344497140491755029957781658264259860866426888260319534367255046491385379759137053273229310002653490263636041177382916667411289213744871728942029762203007179160953222057363782116064489356423505111260609280428968966737817120438514327340520006231650545520417888621160874765358737743413816610712699945764363914986930452936149359037108679870308175641020829095903516595495425007921783339248209947298808634546793976565029872435788916500843918009489642488484871553475095154969360126910343748329791685593274162978502606353436677942020254946299740862999432279033342163566847575482532944374439921713613743415920184782814621849785286062003794342477443402814970689826514688015912284814061842565764826982760727597480678365149412347771396792664881258431061258916411978084975473813463525294739603764562674685194426502332917967804817053497234070465928939056509106832346114765651901254620217239437891923177521368349334645625707241041504319864749466058501073349507968809208270758180846961650611804056523896856946617048035587050147569521093186270982132744496718133333388347451815971452395656647970256178092583063334927530077835876593988132649933541189857969456868981824793147491228989221649741372788991942624136976921667792183019042401349117806047479685034553162727294866115424027001690967495581531144380335330794335036247461183989994253324941423449009159378172934766225207282278080385512343414252842651693653545812660914824358386832284166942046709984993756863561405565411740527143631165475599198605147568085082403867000991642269773249766480803850710176807319457529542593605914036228263813000063737753280577267145086877371955566210672188437301449179814966880583751829369257354462634860638983963895905120128494684072420053422394807239344199155212288136586391013209464299648252707596179075306247064101988468493861971735224232366419601740743583275685116238461566526847130115705444706811676686774890019636704738401772853949565943382429141839037420679568734047219612131911704689719062067756061861746103269147627030143023612112010884557689137895961832026876280326591286112068632496338214640433462730215211594210598320740621012170784289588076775653299992315932799855091727639723858897785511209431209472647270883258636728523308369150177584752412693753692725928702502903889656714660957015516765381164518792552966901118399199388252428390926860380324312429413045866782720275271792162404172760511049406383037204211475363871390215255553466341305297829352836899098489000621198000308656469839157731823405033822577532267747914597630267408403574239090006462065592803760630211140006642066175263430313694435572730618920191246302609249476926620543022989099158609210299004651469822958919264367034421592803552695119998966163025604146641573438059672731393875218202873786540182560263615923512327756428684112161854424531116945896254790918507753408291751074086983229178160512061762925271623755476966709960889435066810953564570268617869205293524579168105708160160094555419811150251190321947418188037254591523088276829846642612969875696578933813599972565285822806801756605559069766215341846263913244516271705121821736406880465973904992936307588878010285777990944537200829856107571780207714779343363350481311082293276941184800955675727124660094241213021578043468739398332117186520757420645513581511467347954150633521924858430901115734002718798409348127771602907478084919747457741432879920524846843566797576963779330650260170572764323828816269685530236584242264506986072988795444244979014204609276339171258702398292857760231355048932183471244406080481029578017042339279861801206510301689584807451214077046029459960276370269934428248252241280827689554828550490959295197175962809906556567061298789470089100127119235587338659171844272280462232166088483599655271676222526063623855266320051301281808485721147116563676533897692728673392896958746992869525720778936327762207749941082849382375605232587036234524550081629733450563370737072241991517170616395405806617530625858846007185198333513644005174765989414414798299559660675730795730456413739596908076371835494396335195529499386177350375454249602938661118099291259159241243375639764710229147930455406228209515613202612992516488465994153063391417775440738891223572884617472318183919508592159097684041034813934775673388387984677632066160763237160730875357186485983169091201582637984974598619319406398789049695103978801334416846395304698573708586030012615827180643421004040388689520203323301569966712967278254059533806505346259993372396214573978530401139427032480987756022001443737704429339200591208991818609870010149545459905339143018481407690038133229624067382923011492926160140878834431042631566780634895898807549135192795872777099312106871112512391577778731583453515304394774168491670215962449244257914999508680751627261481492005037322599652660557251767069439763823784276904591347822618584804412547526806572006845944443198019587394392031055914721802961281078059992169051864340697148161175323260015399675696301187047848404923527504850091709032440216486869817430998838811621630294246979715845415045860526885471065738891849881896783588970380029937938222399592200507551874039250846841343200044848109261312793408999053790258649817966764289637812656663191631296158925247723645161926365106272720287880521000658340003002390405737981808957071603893726514107620034517836565710316138499029213111983859149746243754968457179576557792448631410671803189753744318104811975613535347991210290140632293745709648442277413281599057345543189286242733133535620208366909281180765841218237702601216279732041269243321873478109195297938605625080721299989353740303315029386750935285603554538578281773240742626911512895271019516988695982432109049400971230596484724293045386228570730797121258118983585467193989873343714212878340623984941751881285966357671542542250066008415828524697730517044312360129298697621201871841226376313372903420720909291386619500797945546090867652391215184321154489668617386254548582186186501764319335577397158039241527872776175978627071172966542414733144108106579837224087786680419761380246806499153543669957213199146344381998649715886563468384850122710617415512120509760376692271325412559232992987134659172857002592426463530969984645533020148759273230530474714424862060013442581817532282838231322528382082439869834686244519351164859706807594366532584733663278180148107200416957691084748480438680786820773670457026770823479255401672116794645864195913876768452815229596130302671757520088332900362155894569921626612740666070903209067944306855382293131038358523760390246345793878811713657258550756780171844114257907779848546183919053987985844130275031039089879879958065436725968497969870310605664477463820347490973437720301007615044372690385496683519704185742237452010519623322780015603301445739229000991525654338094442476816800838620112625067084637098100973612507210248411116364364027194550700455612385292932328197797213855840330076093298931607803132961978659252320334501636338693235205033280136168886385110777333297337327810341010649145052703754463451676004924235741943535759121031190022462570643067016104346232403754634221187852674966464757781487258634923241237644950192599385268780361969733822744920336618987204535676737713502581774028536561600021072119515911045065958010979001131536554588826015924341773055632067404522612921208376159537098140812567355205896660993470193382232742039574650546830765172058335933564348725643129783433214204585431215649648429982495518682027647938896189487845314627795430019751477935939069142151116700149297226695967789680230532192147342322428020143899540750389025126863313611430285609656593048130087012385054673916284624402194885154797193314066162441557367997305169106181979789738405642236356541778570642188589853556849469096321995854450469113777784509688510520332722004489447628171069377168530849334307433916344613370463207144884017706474899073245094620654815745872529470702458210032451982453810812956449477845150524009814201452034927580773487270543604611028017289633529729645505214812531808142750039147274281543140561606234259625966348612420516823691882151948098175078235839975315914804741184018524399292998421027102367969163529748890223304282425969474108726920376865105973375986841553289266360800508521190707319446703107690595518061041359553774613107881711453871917134858102125664556817007781521373542821095482057680130794831443619472024964258573231170549118789118470774148744905630995898494223396466273697933301231666412563291177138437438762951386043381173589280796335619318855139296990105210494792344422932000053187647815940424636658182378022226653998712660569083444066329998218516039495351874364700614213278125470803989658376477119145992690045250328024170150436450313540905052524848338026862383042405480884343718019824705856957086099089971555902981317141022254994336545170807157541668731351565398509269599739376081112353468708037535946853266309110357826980986999247735952911963631875449547577538773395609564835922565200073031236657975220404748724562249272298522048600762209838165703382875770353868463412627718207736669662710012404747934761716303159381591936954788795632416271238100551448802141877731583008278315094379948214280845799283885199163333561990043200888856674576182290679652189657714539993128179645916391201749998286641195383862307252086861683690791822267223909893602960955620268260762063203058378166121624737303310243295720508937703951332295559117937930398025286331078324189260448994946685017822001633608339402734371418823644283346894848388639129254875003580344697352630682664849376714669543176865393831598794264907731636962118039075939270263053783845412398487229484410305033745614756362672082409035545703622723235461721716211580488454581820535473533184080173249039608756600613410728150361554528335995698492284240380381987540976325755727577704902159985738045880977589903296068031404900922878842901213813436058434440428946803633947350215801510050828366259530337296073529424223178829505204181088123195531105832795404350849207758531242663505546007988122198067410949145999929760731416549014123999245892264088886711658555073533589186087024157491825700608353443940404978538547399573718282018762739828900896374621600795599725048646286535459821434783978068126552390722659293250895280955362771687730188181501382067048650848499488872633718225716678787804056494664030741244625459480607329693008672929895770884694580778763246706098213865461218818863136707848026343085710232631818535651424315420660624901360485974759601883912682137666474335648089271548937391551156585658240082501236424409964427649284754658317028801175730042558899502960221497351051513490609069903511331440313472091271261712692337872213297671428127354298233438042653601189796186639088838004609131012562589246349909546240374958503462327556258369769892744587450456646452464809759133598013561140189915478757625167174732382960890728913926184694796914019861291945779551586500612889200561001002241312561947564843659181961452136946565935099574103847668585800060348259765188565534656745249987314985359820388643893745936742315716936683962398316915852533015221756098132037620957271127048525335968298388301910016691584386668919967720504885026340822963746617219228769322943028614032539992375410985251039039901450863916548107617888519377107577922617202734729350443325682030673154549011777150696579117653053557303103870298475986674189514354080555787694014747992538182792439733179687905447250017366722898973545051782156521858074481092803498671757057022033938835552543011264870876173578058328588681027025470300508215311443048016219291910651625301746652822399681659195098353286605658154308135045769508549095721842596452023481726740679477713559272931997650576727629508337147827470993659748614099569224749384454476870436930705225466461557821083257642547083783992891297597736985774365188317159645852243999701514930259703436980978148786461639978821184677424748490447141732319749873380349336074291350093564440950271763148737808609107675640687126848240023950581125731110656914613331343370204691743833665486843420347117907107645546120042349794422413658143099453865308828409461355670695821720930579587827970990576579670348067815126615017811547482014684047556372989999577075469943824745043670763557248874303590691053266270722660868358856500459302940141783275929216384406830779810077015267013017110253882851868151111066928696179522811885046165592700179201381815213016575567620111505697961034705089171656767005006252817692569387090613641024578970547254949446321858630007285363718731478136423787334827316064812109906749947171453843501322227855409965873357760200173929367917760536816129185699542934172416593835964092052507618567323301184514697792264517928191367931188602794858248458203179062237002099054097877255573220329266670984672969265802478670995027842339530662091351280683287281450327303094683923157674564910213172776210298135466625828796967538120010489366535953340516375066298609127554614096835107475558080518874686642782184671795670758267732384727546203494664082067784705483363572120194040721682236768711527653670310549741573503449365894158668333491394297009901732380662812560136922816773992378212610642241610006544132268759459875783628635825292974903459389989983217733314869674840659648345817366463063362180173199275293870140792799602299971884995581466686344002409531150891198010527527400827498158965742139494361439662454067753499077484715760861603380751216206827026993380353971465701293527003814801972364989103677014378732468829904115753599098106319367792076233115704592874145955561736458456990519658678390824677470656540394393691714493873963739236154176174855798231739680524532028153590463825963474188745270625823102831314388639330644299112288041461707708437328753602864363801394820789062640930463572664386534010343633367505088511499005880652310352649672755052272171666197042574226873346468920012600119430097957998267184406259209376954809948188188248475615675996914884387983581726916580590488020373109622229546598631026827195984765408378299486706356941517429557183499595694739890242535206561880874801221815937057858461214157683286416736149337240962424456300857916371306771217037997364655695313729475999514009464518500714335327739399275732807727952145550653185032203032245036202919351081591356743230856411826537598861934400377261249479565717307875992645943632873208823929345167101857736098684993035696152008827987547114129528074122322610771948808815699829257529913453363083821968426433357422447698670725186119561580660062574330122605839084214024834803714453668730355051886897652775628867348854996485785709941259944450859150497563511841255637632598207655615397708586309430403174656620743499731576376792338573222869849263419370008320327588907178083733130407986363561419334938811972087692352617130546451503518514846799638842403995066608528809120483476041944868588601126587289128151891177020999985919660876169301571975627086934463242060350446980197037043147920332822277563435107569163738012749555275875286483391110951802923865773887921858248528620433273294451847044333116879247961421893929605967388151119031321741391263158378009970229520159965093557890522617239833958711058258951295707236571614786376062670641626182625769214953389055703629581404595160227792211337041056661634399446626078783677533852909787165558005752161467767984895021434938956402114075191895670176321448343964455237803635744522171217486630634451864731991366625231662274673483003085731909722342038460019947357760854966237894601973784341688858538427533503176085396928318182906502642374092849761649488567856595562545393214239089259372203279291566266127022399296884882122716177278152399345167141713286651196941697852555221101650701306478251087756531674387072087093371420118503105453547245173199076565328285438865808713864643097419442671001300032757655816929923252720601018864712826846106457459369043303060769491827754817957321311813543195051351869762593143829333364547893524159963383784859621632914196931990911737613365042962460270320056681446926161463171140481387246902497522089461296185761203140918879074910047863235336860466827869857685757240130519729624851176457815324575733762645277375809446747154137764244454157088559184545860074209160061616706723198806863920783572313853357093320931776135823632430541174870498225543977020496744117579599216588759965469165683433144624255169241308007842557190573417257969483156051411610784300676957530851607808736340416657280132921375949574902789076934907373698126819421185416227655226810898643938702426465893477071221636515577968743602663272793320862478605501843861610023215077328496501610046999726149476377334484923463097551168337415578996915809287404044132775799458024645439646010475430138406184148245293933693550805380205058509230842408993534991915373661345743447950673922650286236079599548382864254581246840361962319039570602341183144877717521976703117595672510532031729920036142737538865205879238021445477439800269211310656285158178167798069835611287041800483450749759213196628438585480583760926281933090952166379242756921789171984094694008732404607119788783173331824037486036725173764399047454714770626772538618409625109671236300310644806112726540597314274843199255254824116440877434088632040133255716967843150513653289776766825514767768239900836150892542220082420454266780537044239776975396170822051052322201600201003866512784899984521042155941937606161908421458069774444084065950166061263221583005028640842013835508564615972584836805265545254576556106759950943864754540054858089744360145015741371577864956636389206679658572280327656260852679605247827553238855123804004014492326282858912022285636212918827519976948925036555544944648936481464765415907120281933998957801253042175170973526027181439080867295565219402163261098275365823823832456637577020485907834642732398368016757283424830455866900344154510723512466267591853780203867977695007533247401468091236638724728916879631037894778157723897027532102335152497489355217407965249655832022347174916821725649187319187453482818754501135212033900929093954025733784396621082174536255242511890457080606651788303145096163223564181913073498765714575839177466581533371218819389744923320878341814615923319422276273278647248695070499799246593904664800172687278805176429298725495000036102365971470287166630857480345707210143865596784978628147644943627344051199393741640563813190408369856247074452665024649466065149417739167707915360937121003749567530446156697696724164291492259454341148012910889351973698850770770530587882677358243995562303739423870532671408017613469153612468246766410294352629741846277180767142100812975159221702045753821865758811614737965711369640038197545238001181530362688841869512681500422600384437422027660518037144755587260313891247928897893407116644736343801774336274623315469268105551977917960241225865566280734499125880725710598684627725171675862415981396473201658292438442823808563398514698913838745050574454206545836058412111840761141104978100438127522998160025910369266000421599728066505076922427928914875876226928710668667125636130871674370205233888309226050302051600314102558506296735627156998096467887525790378858484425763144545566014160764978403203495464180108225782095095207461350815175509225799561248062746034220601840436739541518499408046487308337999826088851956069539960774610049159662044568273912841553473187817360753399590614156269733647533440546357485443318244486617956152940889105414528638015178018585023934056389461210641930679062631549327924239330816726468397777557221340344579250082803439932588654728286076095728718637699153400112340907309155559234973079503302636459664822394965729833611832590111585828485177989355477815406406425007160064124181914889566256649096716623778534974466042067043338316568624986141419134201544817119416809182829237223589986177739115405071490156385592989292994871261547507133596592604343258688329975862555971288569628347809803761047457001177634831688631527791583113020747964866265307978566079347135205137230894680560223648362615412260068561477275731459108509117464031779764946597506086395042158595646320966436417383173130973498704274960300332188908253578795258403437792614157375824453800797677831819336992341041515646933143387879124718586989069759933249203304290378109402229556267886560147693110481754328114639174609291278511436398963093160016471019051221381971340292594340387261785672653851285515026253583630497604107537319592696484976830681495616759986938385207452104571989631437736150962186664334280949094453365175461756380875940546074223199032503498540401012540187234177898623336877209109953147006858757091122036691413734746967447725388406089010289338590507666913386722305078510825477096971041041095903471742135312460324672933263729739792848130954562294697666167339481229395342144797901511698337617891263996713240504472167483982235463541614005028234845395990302258467539225853301107562155472556273553304007381183714659106245265082025319336151766194247137975941804737527884947048213599368085295119051353026701645307966462895535862279971890196396873905447486733238448833277589920583508395820219949679947326537429370733970234974040287835366589675023624020107334371285466195148656856363658577540486570218198723190653864756720350121760400433349817824313019605731686673574388601248699094624283655288776229955864338547985043416431451402768241076779992096697379444795172379173923107974572388389756537970745162951141320118331090935512020213439699662088243121437686632035619815413882903967601431280786951569835951211247345655402608037959611950333576521372211989366092771603333267867349094731371407224162547836946445850768117024778421376084668183263418132325570026767251102329807879241823242432054193887357148713168967576492358729614461947087449084390889165787631684809374518219801342173764122295730157848865486075174275486377377526857668421965572939312546672635576169372609506400672900555725948474276753120437526521916357686275977124560547299137445609262383584523841619362856515545748461099825575198195189446045086429061210787114238693768147191920304311488163544431327267893336822132083266254846028763571123024778817159344921239665120072410045561420964329209806375126210758057956042383527082292593390421673822896913085434825883189662215888263170451649466528978988221777987293603983054171121113695597118752179889256369308895096954417808082712928414562162046591916775840811707000978912970827204832210946862346738115004284380093882099397890053302189126252647854440462421286911732629554493461747027800381379642467060934003563285471622777153905217962492676684681224337168400896468247722181978377973810387279554352377723945972444902815991404326071684044296630008065925841699786465045090544897694317592960120303783180774815744826082295036959147305722031096470121519934145915272980285801819815000037646232016203435122821210145844412160617972471513967448194887306419225129171976321830054662629400326633988482577379565002808988274491237074975223067527838096141740929694313278244037795609641032081163493926551510289020967356562846100348822585398395259845859867889174146664593074476945634738226544994040755811501493992682825751778907471966303899138347766258620289926161683990307125199612380001401238149492090324782626383442215993560808695623518291946666415715879300006610157238895581543807120054300316188579568030083977247500245348890847634935122471817026093092151796064608887614518909452783738625880844996006728831686409543278932856229082571318718068503232408449042626174163667588124491191748810254705874822588588840087591024832501228783698950335833206607476477384483257392916029203282847467440024501423196086159939198195030896248906075017157958422504430949642281858096095056197541598186379497469452792448494313602518760948355749708782270821590736712793048878717382023478441998002965602392683681215774817823000312734137484731101046638238906974419728627426565841218082256676702735383744818385658489985898667162975568461093083547516486750245926480351102073627522233661653211553785460617852240086445072360450203585345105397358666090020845078304793632763702529128123919232340682576275275979689838210047161763991377047032573917956267865982343310906350006132872877520346083430270446899736896631471336310131936650859300164363431743284714209209978085089005661412249822272473406778376326148878958996169685792831602578369865962693245400161639602942695669650374932982153856574149273104652035549738917714367379853957904771157291522964199220627603050284279236201403699393014901072660519916033439954852006734250871413058104349026487812508841289698404786319955258664447238366054812075206925953639367158719469278875005711516984705322043587178602553372199395032194789588643893236790441319213937246335676664875290925128896997742764675507824710249635139849932875738865778042769268228875520997401106467908775051593844832703676774108317741136190620697326870956032345953042815401629625866838356271627318768096529445285556032444103069198391628120084793483970189459804824421973661225024069170296096025665926744749144519240055624574279887216769442810108294719762385570153143552185351051877425381695240569420831343716468346611324352754966604060107675126836195901115667772378424115052038891857253053082633634799466990542349491433909168914222986244745891078436761999101273392260496155701638711270549875055476383541858854942110740849533526821021728909031724198425597476599040319129726523937529524927682009490044165461655255914733811429666353739859493126836554577319248360726500966611207775187636472125245262345191554246568227506047818043457072594771904732306770530931389703221505374099108693560862904700233108582574897446568744950601452749095278781089973063136994092272292537967631604706636473244304583673820172084788790560501086859341769185815535925396052197617235651271205869621141613491061920319799037092808458906681070564724013037477543145057408732007051449085638778271528610621222134406136408691350513537307692464890983959556294683546570788725774908818203582438534126879568959481133837321198892656893892571516100601311230655488185907339639817075409254072023841751274258752274292495381741372929410415030654263535979401447675186333575378836859556185946873118718474549872179862207419069517398193857337336240069624188441207961795940074071224666966199919426498025476259538294722913738155899946205071167297371994216645067148979483612604469254632389292021078548608583137727901746525276208204469354237268498682678819350001766823504173193890916968604515902128114695905453632375061972318875243987275460705919640789984813213705087058353022803608954765842581638419537361064824858672590735793897034740986287659936004861049221516721164905384356436363703521969868747751206084077597706830076185063345326047083181433995875725878155724305078201130283952201691029725957849296163915730737043119320786717070825078959050357154517912127764432984612216807596893510721989901192357314574552949693457461898219859764745582509258946423311931336489785451112533988741490935543059062563216321688240730280804995138755299374924727088202376073610152966883687490264959576669931616539637325010676387936607392882134377274713784320892516420539423299363957633278643126059113971016576404788051580927957413290584143966483848595388552382006828653911850545105011823933517992947201773896856649144285112929905093559529098658535342953681288303112804515737432887897395230807662208812236465634575045068151686154309475032374048455347495804857140850085550610323413273639646700830952769607306835597115750265756416506952284007491647880435169654842712652261806653456208209649440342589063094196311707480845908437017462029490140976151057649535323210400114832998121402226137722313199280067239195323938462880525310620591597028607691573810336587484226556000122170914817699872753353900557985483288714356401992333868814732985636164706034272481995749525182840235635743386000471937723360694059506616500645738802153205926323571028942519509438159750988039941704641728500284927214957130695813899932292307644849360142875758494806485888547879083437849555445989651779469212228619049025909484906200369121445002566486475814694619166809023766925067752696088331709273749831084584888147430131680458827661616048920203304206097629168994639369048826288518153581549727380207215825367825390126566739765875457283176023014120105202543476043306384969804499337584784976457766638265932787554575062031687809881423023757376262544062665598479601441541459170298962475020204914997027101872500895353797676815419538646962285087430640298167143489299238939884451088919412159576927628115198075760252767756563891881009626703240050013870124649547033004616488711058412120134670758953704973225381307921069707190030145992791855508533316431378158096171934830292125550020454325211443362051794520206746999902759211792833038386278734710102235357022156075138053141526213410815353786454044115408928175852858768851659825506822025400806362388141245804024673222018074798521765815296473071534743103191882648516993076933074823456238215663163692189410929758356821012275953596313125096320874110250516390624157478057314204506806974107436253832606247174176271098381461259586713729391784492891556480064154308130581598790555338205016650086569855653140656794521002656425385924917414430671237637763708362200702404728422082646645321499220336274368404811876199403605905817203033107548452230767750961751475246481161332483060148980853531243559130738626912932404559296107368884779202204256728848968115919555104561396239667334086282987246267907829327112687974161476690771437615536284848304246335561862630090427057606477931684021562393582869160391326302700017761338131820322002541134823741495049967500725252879495106222417622104003801103521067233955413296157387063836230597871154923016607913875809306402168495684048806549123046079697510670304710017278018777347731764792471904691802869984004450196257197245660397434011164589545642048050011730818608550019511004703760157986355367419358888505583506632804300861858649031621086907731877477901867480217520796329863863137613072339243268973030602428722254338532008913054129794883011278915074879517923740799768680260482409886487859042185202939483369984970626364252789492500844437500416594125368059508278989083528143378065957411546599851808054092621308918554451918822562650944006466672021740554139823406088876373970008666998218424985546019276282603848797522209569357257854156367637834394656126397282351607337915461864779604177701719836360680120786329148829671337665240319985471466844519098735049484733741849786377053814248354244545918160229792782427108481768552520362000992472963077345904189348293692525561901439771618883139881267876926014740799165530822049192003367234080573217848358258974243319455717967994097238025475757500646344785684436545714049549097700651418525221158633408906699870076827153705430914779956506575988926464364670714902261840186650968775006751030148015785884194335774817119750090541533278189636585958833944352756860608973462740847133640019181895758388502971021993842095097094465957987155965696000696236457448231681265540802478208342290605229473145957361917597012546516843226610032222679487635875695969561589356817860048046677796529842573282370046707048452506898064064917872424805440998657440593804037390494537562183026290169756974006268920318297546010210643144438156882664810053395488577037203136369638689329035971639483671895415683314597517579913888924418849422251135710176614444305009144215963635230131223429377699795320584001516831031007766501182598041402880627854570996930760833658133451898416764663086037160273612452070598791445707379359709822883817490262320898043991241024986901822972564966941805013183267929593313897633808266914954186228749258933397791692380722423455788262616374406727478190742152531046174540206425479863311942768726792437104517618361781422301801474843308095004978283652913587215933727075092239271215520475112145232918659643005730148590441491478869022511305528713972545708346137860462038755915066818042193872457877118685435763559178713158723707704996110111639274633889454115737095357355719583565463078488418473306595411586782050398365275435784633734624350382134481980133785006859017455351229361967584982820630817042701356550108950176599340161982726703478200701340846620345369275971972584849911257804429193257394614774450657174800475655143766843256982259013718300682326656830926205770629480950989995047018031500982479826966202184844234914681598480983601027673330254544096605915897393543675155722990768660747454007530314329951619949593813556836174723078560478637429877566020208788205088562052065128574484231932585118339283767420174841546159679372058707047602397054763644243018700023211043903060941932088593720837874150714136633114472946374309356693864846639296518986079245718603143683692648852544978112524206175689283346000399056087881121726088625184304075326510212546636294888481816457370249884089100044361960348650646246246921210349902434818370672126087527233790795434653066923914624834671202541102401885471849629055389932582913359277305160151919995295884271538708172124514154049145389431962342346776149142405599465412962197819159905828590029014922117074959621352191878828496555916966339729603547057320113282451517239734431469473885691092055961429250515917946179384242722976753335446644339463286619333185207955624033498470783068064520130683805531216569853524371396489812197158794977030070209161117543940129564896707061756207148356583422930983668148589737108572683833259228880238935069781759483940551207758439488881759912790580840238586262316990071721523031642323979320529888290202430980374351268057651512114797970511125697291092881477971702164766490184948428829542392077188486885941081049087346242088366466871183318218076755420402172531077697235842776706060256248269002199770165072683840005821764082513706411075584551616711158369728722337173166253121861592794720224346610011066261047305921233780400908113627257835733973586388160961189170411590856031127228937678400651218254797652100967175298401496134066523454839788460120854839349845243067049376409418461725923575210295945526566287098365833186926648591974551606778794701474181420261886678369024634540720588390327615412744999103009876048242162992515225710089018778180577753165370351768656681491975003492635716553098957900142435755522830047131706928226529279942792130137537785340186149950837237873448387207537129472305766119051825323952943945554083716296239254394080096534103329158232790664880986333458908737385334013056027639021118219776716673993648544252899968279967924003396642460000146700774338487479235233641020992672517091913808059156874383172163211921290061332862554334004966607368906866481981294894558777886318607711525164898134433793061769320738477261391873532982237559779047133729928507773892441091490367350910818326103568437850787851314383396139494381698167701803332412015611935717580173700022409807058792669542726166311489913652068494519923193714400608682535538737530232510579101827712403790880667175967697383939924795215964311640451156524576011822919014469663384588903387326430864486281755975621637712634427027532973298224415523255954648545246444904371422104657823734838831814611990366329504724763246416077972947575656219667745607297870450387035258682097655183687083146792384081098862216224905859998803998739270957471441467851390247164289810719060897932562942525993834246774957967971032928069589783635642530887302341571364748826852976172923130690427783733277074187408740592134217241891886107579941603665877564455076235269347564352482904760814042974681849400763796134907855690559878186326118211940121710481083851861822901619234524625701604088535461322494418925899062479785849657480229722079738181758288308936195339437176562405177023303047122767105553351158607941508403082776910082599551385583112725910174757978557298907367534922172658579275991123390680072719771563621284845541606226275085764884734640906998805589162480317710564789693085502163448280866952964349721550880981766307176069084363815184661370330955052771540074411865326504452552361384690498039081501612708950292495549152727682520606622679364168228208063739297513492856452551850319376153062282544784449648316739741449265609427513127544426279519704515638121187325335167313050359623024521553624464675709342168233695746249304702100348118017883367503687469756321737074372092077894461462133253177794927468220920853747779708131234239905741089615628750003337206868226647563708476445567187502172034557959657001340171213932654981072078673988411726096190131148236052398425602636939396208447320893424463575118488973239012368725078068710149579987724845839785346834494038389434023244316052330755564329264180724874139552544202188449349354309052869615420446343841120553097255664361763187465733455315025611011668241312225044614258237859273881879804583455020019376224230004731086698507329741718542676801937846454479217878212678734831201763250630883579436000997429741583504641226129288141357875360244459638651912609259742127306588799306573112396837997278278912112511798618892863012418224024348982325599056965809275982991300961109502323490868678955340658969100979968616842683018526758963528255681603453260001351385276639480173315665930742267472539785123955050036504435829137073688230133932806571621058583843400081662080184755084596594879502744160419239012363697593856470944138287557794043532722987273660508074075549043023415491379461933118842303723103453633624008057006488416298804714986240985072256602741580891721092689955016825255419744023862576758028085679185174212550232813777069881842720463589144449408868345154293155072357553287960271690204848987412057221221467764795692149695279986266971853257231859211372530685246786309553176103076647908040697610207812542078256485928556418780736232402965357595773449169067459330645713967941756056318781724717228270373775350490527629109903442103742700168292285602699771960098057910455722814032164443895480636178833370049297148424020451963980092630913808626415557141692338599318410570517628288351221068169459866005320198642704777046381432743147533416648345286228801594474369690428612866998115467251970486524829754885299482575208848851938331627043064875334804186495583079450026239963902796731562271565558232208937503223711712852535902721623562689732596495727938560164225638638695523659022665155468724252755531612843748318492963375788628080024726055484914727030601001457830136931060766419664613244802368842801030325265467722753695268638539723495297539193066829874874921828920368684374786549921185670702120101622729163860160870567759784170566092046827644585663371997942588512576059374382021838575786091996389666900202250174861528700666443599365319353632346671211270586520353249499853737366279210600245744499961173831604881615238791069481157181465639108234746405150088462618742289724646414375424695688122854156668175727385022447488008334973612997139423477520528599061514747811553389099053502394599358956296463921475368867625175884497542751490379153080195054938277651726329972210032607113610885527416145441429281153674364094164617288019662507983697981222598078842237938390895647849271490346557288657182856288883850630344955587463206709825639259675256828654607740390929074716058156683605260332290437099647344016857318237523125188375969232081477810040257638522865270793151647813327071494897253914575639821674048346538044884213722016895663661994253755470665004878620553866609911212632818300128426557959765894159433716668263042485350861053209585752807496347061625074214702064067553107316445294308055739097046486198183407968876442230155945345018790003991432194464690710940326139087928263986223640734641554836400218194047604297785789319854929076482175634457552350462923631955437528618286365160471632280496745135902413929763769030825997926333810628826844864472532002947995728328761601519016549754039389191381971606441943326672093208789308676623667721865860109512502241007655655590659253721690718867036109706281446211523898611245500570316522107084829920347326285534717362853506423568942755309693748859989005787956150487010138121558387810480670156721393566281462215403731908498273623211842139591381566401227609060589150508693012146994147029200147758631843392622770364730783591595518628942333565484476996867790861591049581328879452532925777725793369792765343442116501702765476925574392660727997685286093403436145781790765268439398292787371667939930341306202359748248980076407869915112236892729555724740208491352558897732913468906221569022607201337249460307457379626025384699806318668175745459617699968251311788574228701019273154701075448938279826658605216368746951713951726477988971498207411751415292293904438388640357597321085921393369943905185679925487278866601273073262786920504672028475185558729953555346311267122576217153701144828622996081528090365436451532406963775633085802483641645513450312119750214507729041096359739922838564810747884895354501095284543447332101855328376053276212065331683305620048942917456760758565337437471991637790831379930266164929620765368098852054403887288461607762890892896726300505410903501776491916965515743028486047914509866160988577824673837477829229825105205776300369205733948385328821048150874270584338509751640894930662125537796711425301484337717215219056066921724728780190171650505991587832609373819944142548894713633015707546493216091111374416825022395312245513776891739168271069663705999113487435152389877868770809338797333281076231587589759824376010474499657400415548424205616266188262539424006139660943281029688411513157645452653376591008257104141301089913304469871299440904625140615254584857859600224395408111448672301249057880941991945042884310657895591519384089932866195926628123765904368104257245264825235959438404743479190781621323467453827429488103452814996059733574658216075419622771650274770682320109254722076983890672680967376980510571299704443755512409315560040823517612584089625382413825054980746495073259883982882124500705678619358720099931925265361825441665441853976728218775967256781727329525455657510323601610260864651073579177569923264868117637508767652025928559837182149398852413856155904383837002368944427341450165244422540159740267123930617613934636616338969105613584710617359300016787372510430026321380314885931945904502246087317837002704895940467862210600630813902654760889797188292081279721668533448865080456947504439069895152478776709326577980629047744544198863725838195461130472885650832703843017355671846049261879328675256451358922583337741659717693552165737629975638898708564385961859088257357039539572464171515615449331001609359228863393550832418565889009780772218464018263669024215056381572628597209609384390976220412502300697483269204308202598638042255935442508620354552756274433273926851182289758123744941943549298185180433854334329190196607228030268909264226521487602869531332933123582794514238075766701387071308922675541644421930834495251910774114202487572416961552226048052866849119130929582760497847655711603575744368219340611835803260422533054922541279190541839790954151992972358432406883277076582821630293176179236297096140168775590287698369293742911786420526155481245427760403331026883151063387546848216300982650046010309044850839889523782259110885114941290338522908838606498557522243788486122822316143884250381584368517218510527452008222904751172100567932254513694628903642456458318079152223440700769958056563533366840216429017978837419231350401259238214593003680490251937067453801428703676508716444966829871027797082914254372806296381803521346304826315892971483997615459208445013405210559219062272221257853678621721104314160523809941011299214460809316935514941354074246272044822851712458321602108368274209970634241012170869611482065805165910269778014071656228634712506775105583035255995433914311085707770214388017215861451919012444010993420478276922919226139716343862445893868051118156270299399546824604100464622026443781078265945478440796600235292975011626589624066552986440271913682619601262742921033521558617174219538006771439973316896136010568609717382935773729560773334568780652280132056980505069157226761474788985891675616997184396229298468417143555037635194595191160427015056336659579613244407230747269431163553714979655361520472936802230736310035330356568746350746507667097626013256102739550020426995065778631987687440889758667655849797400001298941049674500613714892426317242922629960606389321190407739622340340522127060871205555094801029016468587679755636215852303005809220701512424138037873835696897361276061878684887625041766577684841794594650835724708268801644066861993587037398323124308348411636030364840893463728413566174395578872395071096400168902154474907738373298782782452658200610976353091617138432559561689634334309876677466328892704009712423169156368132655842160825250987789032644423293456782472789590226971542712883128529011084656787527047759533720392626105139186996878871203001605364456107534530989056382317390464634874581527828084108225518573381619676940672294728926473391432412481873146716106541206386646610617991101699576446669296741932115505762764763777871185370516870211094137093400427275998480981815601288706414662470623673256923467580782291837038141689750907449780244708780665176700390705700019461120882752282718495097669618707964584139057101559911270472732178878380104191821425969056096292001369092407390961287655675129667168948021895231635201665849816044725961310839768475893902016109856434689525489393815137164676073177980874132551197324048027210466654845886135786475560865612695798850013271005651701862329025083940971755559035374429419903441743283316827546704669113463901031439756838534502706877380675289591472321222865967736051968149196552207026605326663059512989898007628828139211050837304433443536179228592530514667240820669456819456044303364069852452017414282499153081679720690898670559835382150856850472865115853161863071224309102240396676616719349066428748703232202832144702936862544308070196951102061192170783746604944466259065382229770613637408211007056150534905340085664634258945915501530068371188499086967199044582130779413818493915730667325616785973942289570534132322496696205705995573842503180755817444594009351818995825846155067219223959875606889663679271687185892710881080509847010463225814942471902851946988291471905350316744695935543996404646936402331510784410635945265183497806735374797054119084037634811536237141613134603598220409623482355356489287471003434838376014003615730668618118360107887193620293644590405417193068690698733278601496227133756730629842554286185444500528418561986170115273738325682533805575905189229332210710101831832530731345204052147504289422036283522420369147021255313042840605254068592250017452540526800074680085232548586144610444762069215585373206776129225340011645198452634739975615657430894304894466088765196927682484685387224709810704483925611147304398153964695306684723455252326999189288388527221178252397703598988773981558233316912131110199149068221712464537177509665734473127787432297327426700126113499007211350403464932588442338163111975630190985285320331163439827724155314507547776865140340093114778269637682760991496615460405348804826350541577107077852937692856808628209420032856590870191193310468426983524130423030988113888762553123776479599099377670693024754254009494182767104972409205266114350079521916153074655198326545591379757161083812538210536803418412529852516591627203963366177293479006634646296111015221932871924679091266636550774190985431585054179961447362966710601463842391211665955767899606988796805838686564458773227847789422967214907108634130883819266180839080232414406178645206909466035502677605216580692214457429881718591529139526877529921358091786124782393187339762728676067625290885573613440662384094700290262811171781468384872174001333393446787823688803254853251227172580432013226879634073491885308132514621860523359354033177302122837021102735163893019609343355669753078003620225079125998389428330083987231467728209075481880000339847266832837687389942672980700027704814426267628359945276219507236022789228152697602419720732665457174138800429525691328317357453694692491926507123232077229827841891960890611123022030701643251771824214216472991617045293989995078171256262005192697241899454298348391283695667431161202632182366205353720869426051397366619050739848065261282497510606534024829704330686827644463081905702228761694755004957337956001483727489742743885035885866455310168092324687695707552379847527638647035653079007495804322214141907124732442807689055912375414021577940943302783575515816685644623210692488649350058269142575857325188800209087127331201166273948517794329688274470536141563748457388220830086235150966981645237272344684059714566145534431254455387885185663031283726764651772992057297538670455662022202699705225630791822834989588405117722837946977943808451719790946424459513974221770823677580506195056666888246860565865385815734295737843304861444141096853938541550154320748281401607884087318026774588143970740077003655330646192953472397735036914105937646563883438648158349279611503765430279921237509566059831101279373738648032459696413551490597819907682446875235022815801681136587946721051599172586592400682630908934404590126632765663882392424903137284882855892628441957809626421137618056277028096485361864703224670309363451751275367761863369896390577356231164591761597114208999349567895732764165883089450590233909495258822842034565795350152434190984429466398399113247409512768444533529407288271367766328739063403782054652428500774214060716995719056986129733731740378141035919362508435131993599340531528508590060804675809143308124924092669264719337410525284073624507301779733555460051517732977794451364180603810535912895788630049238891068900824536704973454226930914863959987300161514866897806987342151131511335618159283235958150656927666158208444750855873427652665051903479081725748272275543058974969478569037877255031166783655838190604416439533206104026630722947748021272648823177186420385179871760711215140405863800855157101857782968056093684507746781248463328770578031172638812808449837387944692391831655998297041933896923045936508130816683664071266955001059861193250145029730249034426104991771355680706902611985699938866547007065539931104327128838991117442871255598939976260081402102457999566187321681902406056151006671314030571507147828745450526999454530504874576909040819727167232486939941942533342050848632143230009858068218104335755921822871268105017473017242999308217613283009717390804588738712972967082854798124244952912940866814366800892167445206322262400518333648250700321993325908852154899829463173177583464042187681604819182037494520342299801327206665343778730535927395560899247190269388166623435835068429938196584003925943633531667369419294213627471021614614720258652185802680082491902482532155126295011685898424567924931168091883962307519675807052069035209406516222590317667164333617965734614054802839062089950394348802227692010406264333847821724935396509346526602779744374528861252146905913682887493511684505927530509987343092636722630038273151423496818758230365115811854183763243274115800337252096354894379632050002458241611335230135184043813887082516005022130381268624598377327267830321357062772026303314890207991755905406032511411267131378253488110496816544421793957793909742732373623374836184036448359116918240556004328662573790186014736504069140520656572388249684165998842059270178289538070122994289118152602714974762826346688107436363715155702512010213720183716257426870719422512215312151531590846682052354107364366434515464264361261086298613052597482414439045889029774774501777559693154899731566249407346369074468593703297428314833067796357910839388336983761848052160462899081361230781865821756009996518151380493159142986410572372944214706358396185673625639608378297251799210216344365335352897660262069895288033311251012911499013480298912454946457417758871549340815629280148435909950545656268423116280522286946947793936676290647752409767015537946507883638042416928469752600009787007277065996158390701809081949099305956955631067898010504200975471510410398771839735145928502780300380677095151109060866500840115555250474126109570062898064597210686477841647558890647550956509976486189852683908098741162424371171072886386547470186620122988471688268047610038323255084072414497126080805021194437792236142705254523589775904456342811133423563075965910436435915987370213053868016629574642234687089832645386459309404142292170221266921703667668430040110687896236947305425984737725203902904304875535477355619351216748487899701981590394977327325368368345837586565234996495706674448622283164085350757080662996027126759143513357997198275861544749407510589603996473647517617537259598501417592591105348645056724910038663889730920447945647657054156158555589360264298911798101561858987633755932555213558179570055570553262335843257927533416038029909073847544542318846178332996176705666869030240389011781774453192353510746230128720851090472114025840517847790755315583937502588413209849725067711550105207602475397294773989102320388355276239926755874562815630016999674070363700955158591217660096467942114358405052313682994348213463559915709578677507142786667626947154430628713380487989339208499239240221566731304214833581978138419794519527764475881957071258378089032389028083569389677302967923270120178413441429195073378039502347340190401661284871851644638180437539020339232802301078951897731763080567561277432728402849949298884456618446260393816220067984819006638302832409121489265741184950295294039163670067189566623177060205937660849873533118494235900402961901012431967656967044988253121981503530491075503748049027214539596629939504589196335685501345205233729468310447827627689926498506883523950333788872049105126598353478303061804576012121089939140396354977679227538572907855791798896975160559259064742023444511230835424688027206403765909628430878064858754637868188276590717549809305710205768729749137986245373541467284984495396741430469352360523555739179098772395900841382025296681392117182871063915654455129159851363765439323158222915123924774636280944538024064500478242958804168431803043344220433724012449497434491459590656869720848105849317870627910294729085280374539482300708691008903196538870426733676883318187728715298112762056843182692748391956525842365286871760001198171707663337047945209455892015963423621807975236848190843426325851064737151900327778382074479035285648545249822354394178487013751571058254804773212408242583933943940403970619809766810065547132838069348091398874065532022917896143721734068761333027037679438559091409965082959671074230718968407392804541203937383302631432441285340203961251307219304773146598135115954634872369901730614719874769403988985436063968046703526678183042516524962655688326256788255297257610610141480181590798604857870365184080768854887558056747337562968834727947058876261386032093669998060778616971223220369801113572552018717285992339200353197486623240936431941127876358696114798526509479315240543012556290694122998432430245909027507088327935274023359231180754145843644505539428644827022682489315285936705469963840514763464979893490735577532757935873243324764684217299206095011475074490866881166214185845824243801603120535895769045939159845056317500992116758401185547836671860236081514496706305306277778998106859332213950393753457808194508449806727717145180528462768046451850453663418644639623424133889658573620202333537912123641702615128620642870278783002439161833774829277361702326631158870288613495196256458558185833931343419248458584214845888789469527656136907357709954198620150516582374678418014580610415465078267057423265728274219792044457341425071209267553618041769847317755856478302354691012727673776617197072854701478113201229378869566409275545751944698103422016589192354640323632472204224541743940109506061716359361539560108470152690817839184928732132723091348052766049754450950220957365564304974121735792323516228376451324528519911545594184528753857241284844713545887721084278352282549645993858246018763639556353456812391584331425834710060522723853373034378147486000290653394829212386632091178734064853282793381940025919182971536851161609334730309918403363601117030252499498311769539355407274188295409278973083013179011159055994696538177598035528360776301744026686774526237376098387481507208755133432899813498815488923581302952751930644703759546313253258373184014252258509480591270152643490259720636361846199736895162554932012129251265478763720815187969469876768703749934513643603230648680594788939474978673662016528076627192585480213966942734589429381721266470394983376397948510081932217897492620237959703765902296730666349343488143939992390600193161752254643070178274250646631059752306366742285377765638669455502394139149374115288864860606042720389519937286632795880410780233059188417606266830340340203898381317666084757994372118612940767868678361528225792467100359745705400259916908013134434265956366391678449042127079866199941233632186455912361632723980968338068809872386581976338162109832954969044392418678364445191319636060426910303393121333000271366821324379282715855681460805677142563727065519999117408379082305084105731249592996076437912997359877278215621324502674015231173743498944704578580333398888283367241348152905863102802502178606372104490841863070785684969505165205342688853543955312094732408457499750439401449738267883144521968109678914316981699181352173034539356379947331953928591010351769103329013012229050036958862459389914705368118050761305886111647345283353393809148331762018658301019065603295080658259859556001535974641103197200095900285187371360056037335350050862556685656411965947505952616053109723425998516585136991707074231342881705741100479915047101570342425444560648719067003312821215265976054271353872064772380043047117806732833277134314117338450447001486746961220509787485252247004356866895519472914842534651571818510891640330718158795322479572951411829402904065914373112752946651685484683500878490631053090160659301276553983131229004195384134258576814510269653990087120390599275052806833260402960992258167132449777472722701276328765867159349553339720134857114494860528960664784074033694444881102660319431337555444784635653493937358666926481258910497354654161643433960038151252010245600077684328081518574406144557500378859962556655140865959300473771274241094004134518619040112396486087322063753961251247149975346644583475758172458956091849719788725656673935948569491704575462250916946516433411498508841982998300249603202970741686474884662058019532423536660084330890739080867129797753196463466766371608205830948880497957475442536102397795544155314160636512824015127498510155907682422178476386740600057280607732645361513176276633278096376691049269932744669426641042106567031222061863323204610957515908844805646820199140310991735669630250090714262194683784842486783571229685577289482247396462143370965449334230636743061073698998873385747288638679891286825158167329625915754854022306529477003617763334392271026469623980810903835426594511402310022078671638825597778892303216052734402348678358511338559519842674777570051893004805168237523919443509840927670517274108035015033360577652035427832145860581988886705954619644322582172763801020621340016401591444267591446134721741303815144645971361336223005111475449431107353385523832442498876736220065265969379629188910088534881892127189687657287653114468447535130920555545215128571620571165138155863165343627508752198529180590760826592711271404504768425202468523087078527328720132345813751837606210173049453860277369593249817624166041157926524521487821029975330469405171431698640086974287966531301062188702131967596418981407530079459041881550695776955729208506260195887738854607967015365102538048539027693424989993883829409227667134438398635306041431986450235237019532920797141033740376345543253030433253962054928913498808984100069576929976737065255342384298006341933879610624663943822553693205779738009802616681024236270109475410684242161683100576485554724703279990688472508556689772100666531746223974392369553302627225221517351825783512563231147260906649957282255535773148388073883561669428997683647786863832417898400554358529856829338085302934851785182860564464302789278201092305534514052823438496787164660179540672470086190187447707918348536148566608177145233011546226956383247301121105403632771833490659944638244423717387596078386656546608259015817046437565645533321041927778793715162725883970179736896553211517390332618857740218092900178442666498181753604645188647185149826942610840108140637360869754459500886072502232854671605546920744678485234925532932152645083305754181070537590993943856369524585106856646402474632653108527266833058979077558558258228010214473618286863408221238490130791046778455964739557371365385893636065088620114198101997884087570713564487306917989918642363071021474006967091828503300434171682037818860294524723512364252497789720147106172300947831231699378734339527171378799574458083035526475124953962863416908839973922260707167338243746560357219356782702027371792309828151113088405578813504259314676038985627250719657240359386501657813648683242834189438335062394505632124001742078188360665945700609728879327240566453788445647987584640704776876191648338544166858052315241887868668249810950536489100789122314796560977454751938586315118589534560396312830775602822395991498476249025286703183996568342326101012587036444848622343540104701850330062157662480801129211571753302842292261786452368685085496864514726750015681696185776639767554977605722073142765345294840608206492565381107479682764055420627350056919190396257812909597142944717184814015653675471745442381228811373015506000585270034377102699106055403271548692475801880629968664964234271601552520368726029305291565069705790052320356719395095874285681688966593212685504788443465773308233017393098044113182475836254959554561471951286517933841004278419804253388505448239266429440191639119610204460178049121445076833852635751314121864115891500442236581126747250979223066321439169926876700890941788039442579422880289530240081237213238450094248125623807929759356068308048290814542405458612157240462771705928625220025413611479219219792945079568640735515030085122657110571501095349987599076320491314413190821860743723973302667981369105753711458942606060570502517726487677354415342001562058701557908053542854329459730792012645160848163350731392346586724213857404893160618752584641276258299912461861343087917859882728158491963561997168170775337689798687049731510959492187385152783090357792809671131162706293121772761739560301018686677164256509351393745588690640292420604471405576277392743427727831325980718305028602755800736065393703918526273405174220048364116798697128352910155669339571622806540194339392339130816117298914762478335882251894391401818313924281752337832906704352049459365048936552953459374211549402104851253583201103089879940497753072380521567431555889450521203384602787265331721201788723163299502839834810256503331027130635927842211121498175638351373415008424581365949369305311594481223205426740163734528168621476195904178122445536742749402825341798620093872199443924479452358444633876857002507223047925136947941750780132408467277100535815390000959363123911678088915909665701655968257348849555579518735535329684201778066534717461439860166747820387240554103811356645769528077673376182815436223130931336537099870123942024168025495140248619966873416855663882959612867456232542983806818315228901755584261200444029374858602597661083256159817928870973818443020419818292331715454042396003892435421163893521704709435151295730947028885478831463669596222110802930500545969555945975131821427625811360463667362334717656479005447525364652930714730086980574332693334420463988628131039281568101953840441371060357245852525069422320622246014616792544691027731596493198509997722212991946399179611914616323683880995153072617312015262428474967693270379662782080072004845578450441760057086431199785584129343535452147643516947023834931911547173035364485099984919428693239278651117675950173781373029995061549367930880356203544106572435073167520881789089673914951744823086791044075185260853249201447424186497479643966545833172283933382495790984470017455981088206120900371544238920518126263185355278992083232489927483788465757114180447728889151648015280494828347183175051270539385568961633495516616293812944949963346516953337060303377513727338434881085671558590597724072462572828493957008244835523233463002991228205564653992746146219152091324606851446826817866198971273000905249702517723141378574768822028757950786296000313699700336193385109136142053045101874985023534922488119989657508077383339851468911728016508768047337250915397541862709287823386434415365535097783942330530288367113600811106899472518962738653205185689424084122601392290502528287370272160305496054398274808376926235006730592030054527398507143901865094421357999440396898894407583387954663653854618836308270140155563107071502041836022156342904149916991987126057236320786557812116078686935251057939377952732965137332514819461863412996258954202949575400631311780905399302943836852665742703047607580251814849728143493846271331547089374173430963025730795401879734799232611048890077520214178805614558022248347519574245216073420930810924636167633238273142697450092349060888667560131940690470412717848543050677309260156702835337038173719539958701946181632830287034768383899200931996675738658327556020165215652723493468190458646994807929595075522817476479546774356299526122194394603500771246413025607672992920226334046444263650036888139309841187957139792212512961534934023741940064038174865489078439204094362410956284594127189919034752520572497977753216578605976967236724983523369670255146182651773480634500739620263324077834648135259612077315494868315869980925366436789608712956552172242948959552139448766814764781181151857773020706015688031512278070491175889560859333316931622678824216622356513955400028226117713417934130629778866143803153606067934351889815873300102456411411276121549798810087449327314486331140051934912060584617241168892956178246884258356916908064735775553884823906421795266971698414195846258570409864606692294205904825212002454720701703246667750336714329182172759329204329162839162222433125031980086764148460513629863948209381255036291648366677950179726646997768236722799878608541404414128596124616697691104867325043043036338349035847612629687923504438351207666923145072463362900044233016280166415437904823200739606527347083290399750560135337769540732206315469005228476922290824216408879853401989585835413428825928006587038970766817136284898600138618652822140649992306460484464994958147363363683248570927649249591378117267067577385600991774549614740153334148844736884523922242416415377288829016090457422418668651594068890913272482783943708231262138438471384307780998667863481919739665631770792543506289296085367300368114976709050942731290482509162362515939634105551412962323217267037605143090144873794975999146755571527920854411607235983277648969902689465953988338406810388316443594032614526354399361129262361345109313437981436194386423466989091728013973083321754643187866779735521078234682260418317285458289458637277939778644404886032814474966958796045036588417655890187201830435765172816891250758572905710953210223275347408034281275135507264386778813491969765403869810567797119241068298121268288462930900348520620963452615708080925550142636307800030139517282840270620325765331073015878435121543650451712996246484944947726962043549756094752993456263238042749997836288912635399588764300742473562151462253140202312332898291179892458152232506589204305154464153284089881133162746069379823032557105835590882558129524446927720193100304351567417894628447196544668954970339109117646324326497510923855274739630392712040668017742684255450426693212853032136222522857532148796476038826868354772067980158269685657112278569948192244606235084192453336366149449561873757756510201993977405125186613999748609499661081486049407270960361780621709129100986910989815948418728272293628821595200754573246687035846224379371353161406658556955160729450057460620779583619749328845418726483320917498643230940605715528705669774033997924082147846146213705919573880554953047252008748397390219307677743429994371857591085628055675997610545686131435878688709482505662999627349545070496475529704540446746469518530036563918770484779366618826941600792258108054148218622009432064823465665905541364758570729140695809111379083710686651663947199754086324227828251429118373201385901342366186350520594470501131484838472896592677667723932859687758517380571995553943417139411531549162176741941919519905086599968340456861842350580913156992936809129108267782976029066110046130647727068375388962461461831573355417535772781727852793869802019463950321219695404284892215459728038024398487895179714961182246563642673584701776660940597623491382647423781462748948844909086846614530752249878233212481058596008801274408868916735402257624262164787370212075253891923629756144244279842823493621790514446388600538648614273152196560917461362822570554533238864034150347313124583122028973428519162835401383695186614589004006072200514642348172817226742650914623639839012983430219636091681203718921602597192791854478020908695073701106874474720961667441820098741455805769636489210893685884274156505304151688366084086245053728179229740020745685397207800841087243111871705140000552278832094121172426553409010039618751453897462613110695663728647368068607795372348691472796212007362236927496950455942894433742978721088624787831434145979451807957801483490829063273185618848408459865554777951266946639223613195092657277586311866660687970050008558034407419994070008787218664386243276913565283488230135861983725127721473563454464577239596362033156690800443733196195242916252790857831732028702158666724319931117679200782174918727080280134720710487428063746431865686413044499635759393701679936090323638433893435256102071759421535382497362391490000284268117037869806147916586270936903533378596964160242914297251955673843796138190138263348859143183044791340017590672785614250880111866608579895719889751226021145000112839186772602549914738266377907501117665826628362905915403159296293456941544058817721139952318329176992199491017365624859636772953753399336025779003923930569814846576909040816746794853069365541223394749269365230829299374197305070219421219241797293936303891495225658142360495504687685630713733281456863998192131032906916074141802713642647036172862421768778510892551323453368338775946810996623218070877918289490836589690782670761839423062124885685299025983949660258145819253142359563341886193582593831629798502051448782620711459458236184823065524773215622085784133320499582894305497832131954142796942610007084090217011338846687953864094194190756731869861421251387120597505525379253703358796415009795330579024752627729815527658591719805072787786200671860598780062321840848789507356109002494445023745596695450626798493349667780718843045645065481610347192085490944835300697622218787372295372162909027048637699069262111943154787418126693347310181314084910517657834228107114975082228612179602671675156947668037248315433139893519249618376167183390311859677705781285139852119375396477962402179258020748520944060040921575379028817628973157711190023187318848054123654775206996559723016021068292162115300314342616211129577634591704799535385630976558710698602269678331248075849707442851962786232518842093203760289661237429616188490520313642334354632070269144925702859137850710986641566810617949046460358201995939821662411718352698106550897462788222450265160731024374069187214440004437929467241240889070167953765746937688786393051581438505652339118158960937770040838130060895333312865199925393308939711892505050593683914584105051496660005660534739480315638831175794328483153748093551491097980093687467272349631290391228103443332783500712254022711017633683823123532108647606912001960962083590269316166397878266002668419512620082569293961218345025939011871779097563378023597739584965925955723676595157948587512872530432905181161339909171152913377566835924937080515290535379549291521644305951890601892592422966857215119257488223202055424518019717151895166482139880393015001619512707809402547294248784715968837047036136353221899257428426752742959768278030973535327331886435935533484931426272936273150628376897907681191681122997686050908184306330783798685446382004742315302814967180136467169452056649493361760518516438046676684543473547593797149026378600800958962108524493920938355326415802860246521567767020563435949013522881055997302849866608963430841767321113890476091353470735455222118673638963231304480946585257755294657951124974957881394575994477283409969033806677954511537766853353541813695729815393952740676454117765672048099549993202322499091224193253859192173808688506486983764014749856132056802050866392354140122704514655374153076418866688301040006680708825963380066209893637624685235422777209102310604522243887159779562569606195256545524757847605000062367774443030171085857637819677562011953350052040220095374148363012290049482784635927064649804938901951144457329596955150625174975246653919987068561460648838477643422576631514956744242923725519371302448899192111118018318244424717577499875067294051996623599499151094546670188411380294721182025938903974208438749441345175612475113655581747473924618602458241073615626190443644852365576131829633967336045466723977981383493724976686525500076470112695492131800930238407952105183559976900553244074117723162392455020610999683117735126915899289260835383639397294101519917903449589366540567321115101156493820030897341176155360131975864112924101921799415770518468993484092043420375931471699592409277861112489409492713279205202903514655796781995558641405136964410655724556751018157009127950853704980223778475875141037473069821219130586360716468920587121345477711050888746169333270575447989733752907765212657172546173435024834121155733216999871360814219546297657474933014106413111043629457780916396621585011461796830382300721223380073210735739985672277740302403063094783242026148096076463653200689227379043560309587914242323386427540183977684354346509022442335337071788994919165728985447642580538308535090463745815964961519516803633067785203200259480215928302106340786383538555729940413721782034133235893002077540951912569887467287769929853790344655430321334251759891035620351607315411498680475248627806996716358073195160954331470514613272722523174741432088788280056771442873598594678892897518714024953115996746693619860768418650854672735979759718230068760991073747877593278087513625487871613028982872324551417731668960634187115942713263388195258920416758892684764019338863505264767424957647526292467990496769351693942402733637022635030166760355132671186378182848069130344989920964697246846061559125269058713317619112974204364069549383259980442611447517466706708960861280947850033773441911781889399855298721509850519887630686855691520670069628721137777863048642858324303413786539753551552615219453690809255070802233395353255703179608548293867527447605736844361051982012145156145868011290230609174592541633352401171084120009544639269186287524213848084344130238238612967391624859202258119583503670221666791402601668114630185613650142041468295655202880685180833100743352969107602915228049370852844187401113570454840721926420473575438445078171237906608979087618725823059900584655805912843381845800161739789976728466971690804476293297131237151650345697711940760167862988210679677768101386682705221313324946515342583527517169266065881173108523608908087008009214625651679956449725592807531767144509907210267894032441916917875097262701450311440295086696479554291903297927236835677847626190761242333638905187561000833439723181400438217735505966437291867377616762774624054763173377908101299265142297398251554956431556437247379208257585164159104811361858523648279253638507872565542225132444700724467292046167840575635511431054865959311951851662080821706923900712993480368417037434490621706208277662103679807044820891904578389604511207493338014072793596854001254952619811923042882792668292308818062773316216403121097872953795164240643135848780259090812001278656249758872807341265669192422160299328673013314176224261852979947472104335474660287737183436190634930016921545369630969487487949347771370918623967786192063287442661883477972944182053646538775047459796192774892462900363112389709385325811132404795009533175820043622016526037311303400791784534806978157160804935231703577724568430661546717585989556262691901925583646356043221696086044404214780111090381392801686368471969991418621260330730770028089503525307626141025694743084966481334404866636364901590342175865592210273512018799949591030121041437190334208547018086174999250109871045299143441915371293972193980961480237628095342684591721829196581232772129364179726668861896388216775852752282730547232453984850007027209152828306623733451883683095027805637746938357817543050902375139599839697536704658697724882870366215135848373440108146155589141751575382768158855061215147320649756044334616897186928000018493876989626016551434536769810948486382711686240721822900911981112922836285914582662477638438809637565329924955556905653366336788525725052897650052091058483301932025810011197843201104348814182627316894322076472464774157833108574181327785937152561995997756706387493097853848258288442076591335975455457604229389725378866418617540846419334993752400339467613404434434605950241411586447461658975343237564317132707489315341394663244583293165597789439968195518653605945774097752959680686492729619872090203016549550740669792200452155207329968184555017040279462398616484608751397470098300444096685598656455685424852477870230156565711030494056884302654410693872024556535837680952678283414394665361733648612182695912334802852366604915383502461848692671626006977445934610092595354941051530500715552899291033318066562905756855146165856438135141464188041140286367871441985048072407368000530895677309636116425545266897967549509165087522562582758940714142986701450809195530406030429089592585344873750225557164046188575581453153177380600553729549859660014581343271060265140035785532262532653168797733397434592424693915402920242083718162326347093897512667745841245162103357532878237972308600505117907658594896493928090243284254533058744772189494270422516936368975982306213691900851944061591627749170120357895777211445190361768742169562332711608014760878531929584529977555535030812013855787150820330898687760673008002742784117679541126125396533398405157641788667386899555763935411871763027339114009611154017907272181125364859955686842791039643371175166563916882355942560357665983506836900442459515171705327966993785171452751287820098883813207634069980108615514877585192695328193357997362505704348838245656524941147034765427286135150911904734877842085479128042498308976922590647770375428298447068054455727961258340761214797944805505769995194977222733582486225253275986755355689033647889021018161588153300696451332635210953796499893496980027477250430078557492054388065049310283986719510601248293347315391312250935915262114851445134603665956739216528029418340275409396689426263839064658133598465202257102753640427296206939465122590870291170027547843151622930928949402987287586129235654102040109589634607502512402454983338603307103510374773444756336402787010247631043863969462045786094039932886301269093669487998142228108793153910699080800677641844743368426527608440130299514994658103635810452855649952880961424921859801182688494999567450653901964695242887652777755527297312783102340894002074216746812519462258342936884991537774829598012591620068011961954861696850045646948902224011778873876126198783763235618552859336422123906587876786015265130509528322721401625309177919243364532158794464945095885342130439505796856002392002441942612572273527209405004499901915305515012027630118432477445194111148354919279767034541556039408262828934379484717849720250571173545964723270735797073115196827498600444030441533458665746563236162311476281960442723362682590910170234302927985650851476475740275098556221115857572409040466722537926863237905547071854743552729797918762595941571613359469603887423261877281722603616472673652931813888536399117701306896409515612859176937003122092366578678713019827492014883213448804540693863972945909891946478197129516576443300028610192251603308058195336858023989082642037060058638339748255766236704761349883974413870103891494167444774027956258685854318290683299486670932910986316082059705124021583022971038433630745371062047225525285112710350341540369301393006773961781288990097412866970678073734788248423529467164651633401798407875010952236814045241270712110151693319343719048900164094624863164055735349023158141396523183324188883175647601052091650850177145879839179134586042542991609872023631809072914827659710007212264814198316618838718799475298542538015361411353382556707674831742829869097045115675888163770903961628744584677913104889116531217924107074413019656592455738306498008615028666194360537542335975629703459877866210341162394404708347363552828023273623939491308949432076047227137462856285049070743268953675501546974806829360884418195824597245917094332023214428913512799354304956344576007339332523236673111025835927730197531531053815587084005782161974861120504648472538243431121441909046737524920301018129165305922347697581437157256642575431923395189316717616770449748477662520871499219209822483819178348858034700649979876843155981416389265491567651967553295976642970987834417458462043754857829001607114516956717376047540922057847649951391983843319676313310577263839440497615666545583123036076070610602501613912208404634535773110465187804355165789415979703550143746359908514051488138716040384575708595222826693355520071394003026163895671698451591362706866931175951069487664282238891016459190836552452573564142545584857987851647283350762410845960484775738580725007512853993697304496063939120946272424998180773966946190624848671194316843452308769156794357659835281689754362692579480796360071782106906803523636166553864877200191719760153229977605726506323322419864495447194712699759151044089940710738754172241224222773720245565724631625384674109915633519477955817766193261837202192525833974183183433018208789419921474657984597558885710891241125305532376657761916722402954568437583503814098029613004201801398757592404080380599026240281745956170253273329562028476034920560436657238853625520422279338259576242220218323079958170873027625534761521091985768451776317836144853780567716811546060579353983763199858725515447776898583647091583043137961163298088295533680863452382410807135292831037085916989120164643785887492603473637031059459775421796005700708396899791828948129040764715172965132897493258188422498537725684413738522296422458851938184139970666745005307237737068919199460559337738566316073171749679367017117353989508277265411479645047127365045516825798364262953780722400797182626017419165304851273077043180138209476281418398230163645008426971787066716634466322360306172835926478619704565787874137540251645744221340209047090812624603359652004081419130625788602820369669432401596155374860736285354339643567858057206801426128767496128176871874922685065129519660100723092451100878804471879650670842395027306563556748978105297218213921266956497123101297261199094598738904057590897134472719602521234077931302491762268577638023493682291307525306744389975609533112297833584700380318573551687941966886566014356238044262826231587247631808566191470573001773609542192180476572475680947492180505637616315665565362518665195920975965632035501137995241750563785347739231535365178495912523705261684668563500522841619352959747318649105177914877219808201213959905289736909012603346035683424510647033341037229643020446360089138719685814851477253227341463708204709532705787352497409248202045487854782668036040449522091576383803560908186475365715466248409794175585086767313268572754159759568762218065963186342263970874389103276781916229424793432781376488836080280270325667360394952004466697600661657748821060364997847832873648421674403322159303233363773011907460163210241746000098990179300429343652998613659864768499974326405956099439322757765838868005627087882906296445784787349989342029086042902058280601119422287359077825072919612412149547686352987586655682559102688275842512091860114732076027774064286183511221309234574282186718775084198402891530150619825012061274353609107565749204183253007576142514572541090909844440788537588612398286121873776076313182354947055305307965908963107193268347952570083113996075924186263216307779725429374764560087703236314390002057231908929319359919555491500319269422132842641413846978604938048383051873829804120508752233604405387418904393946379027431611141556303270946400999609254809912521282235956820240249508246815277561526705464986664055968393328793613157885299743803591736912271020712680733085533302745630937573394491944710383251250532772905840513026533524546308533035091659641714593967606461819491062259672210562754941643896947431233085112052818672845746269644322859821915214119562412320599336832765611523137033352609965699499369156371531265314541643811436621403481367099493710875940608075456496132650971040638728131467918692556828813016507019010494035260714783507060656871016617518965575901543863143673973714017216370986128754211877784046976183473399644419255996361575960553096719406461455532827152082110423054310954505557858038048810107461392201644969689908452904825413846426022995669632201701612261811378580332218950276538395560010518417334602820522502734885019886500660550743973745942916235143140532345221825935855962163361172016435657357133970782741842310805789259090051925742674799946775359517846753969774122162503267134146092791008776143548982633085983868865404569848688141620688258159204586837380430974875040180114790452163386009926112066288763183396428330953397313082151468277217554857624192405690201411012085973684029473473284384825453050201368808789891278703658789787020763173366448813078622976379883890422457858723542228985148155185863132271007240226956255586276706819167138584905011169253530483556179499881369260726955191024734149807178902520785950675750641074687626322812620394279508718064380754526562088690960783540587620498785701152669513308212182492770344238158157287745238820840661643446544634787000514269337160387645908132293678632209947829645527048292170575158782369445195248880042741851525985589417822458236394074747464063346044911681883104810872636928646792678385027009542897928508373325467879856701005517995868389761603195680639075533837599120045461452524150078649491998863087562337473065003609820267588341206657775850828319236131225631447201636284307040915574230688722862611351414613405268552124802937821097414768645481875674826398668595229823586808645657049745261946574168541658623119131636778714282864927155011921981815808724758051588319823323237022063852314998863558907169929604264745467000688785875877878654819797103153207465890771860927659540710338467363939432802725596808124021928818848150063695282720050499902414214356409430701657845667731177731346152619403362295502142870700026340277118437398989130903216782591579492846657046167112080407456087421578380414826352467962274659203624020695811098913498945282088651978517936740794560693570051092279691688857830992332899401548582304393691468851649230458689739645405687970902114116377832394338290061670229137657720050235252722577384716782945993505462220840807838243005269755489756828161292999050301893727639644577041758658766098286014663969397673213468219841766112669013133555264866054353606717991349002558384800467458921595286546765691781383328721824234215669427262371703339838760687879479235050174980391315991602965567645145430505161427273577759680110236116764535757044393600178669223590609137441281985940026279395918874463633786500729800269660578652139466040698823390919649396655218217414834897070435159513452650473524793629877371462308262311788061359764732242834717173842965349136718985536032910469292934418966826650033737898328141651629364056873827924752832017430160637851825928810895208166756910973366154756086838523377573697501891194382794125727636577552026403358295506482376912584640393550605422902241305567133810364711376347984632651315854948687251557670461224603413203767846980561409970942905902962780717916042097813165312022113933577487669621019427891268737335499709757532903929606604699520091088572449385457911956247516173972757305030733343352505683705737730551319154313329942410651147342533795830078659416826795037589368321220413875546613446391454154704490855402974694048759462347259758510218792940074034692200756751962752897594552951101311817996524216481707548192372837792958714868733845660710541780356756228663024157388120346779968877850422094733636747634626393582037086697713142907717626200731689515952572356766168295564624204632405358285621327339157105590576405025038552791151388181735220896295989291962595525577402827319891101805856299298183582070353411588751042495166378821249582965671394442180384611324365119395985298924764520059442857172070492351872488734554662089960931909604382268988946790121942703493347974608487844596078270209598865482506028833550656861286780571111528935664017980610667457936694180771446223306875305497406017043816006157104865043591022851415976051054141213133367503880800331445009683156221695108918517251801815193171050102223593438058271544899212194750516645022002400472799454365395151125961308608724134524477874435354978195787775991485526601230849235605866745498962504317878503380997321801239754620817704389671256473120151695312234371120346574680439702503431326448363119032259074283093505179208555546794886613277015445182905214450189803571242024426025512078810854505256415609680450011044559957835977735582853382139203347229667830209673301902305580981496614053381752590860254613817488315751945312885101614246671662558384644048130139308008505390659741684635137452642273203005460105739191799780910966550730936266605632818029014312145003130216304885225593172960260455576203398881982748555778705934121972390813778324132434047880962231820666640286218519071215410470002017991524574696656395647348922371711428731899170797908835950121241034193228974622609655197217119490280120480202074265503760466914169391427276685881266599108084977011331070547970203327184293985896556812190962460751269804426952041099142566394336558637122602115063742360512991128320385427795214473109515637318702132641798356360160449482758068202194903686847741929169810386484888511224510393314688249988435696810332602132667504272112579903472065708467076686359274744462715343191199340261879786155793661938835435530043716909907697476791432330966029082082646147779867693417855935224665571049697386468294515937757205165330765082316714467722135085641664952696978652693013967330178633622692056359088016751186855592067358776897232153206214690060188102913949992495467958709821064832438164440551225504325093223901338109936725778132874642331261489600037358332300134877560276505166856407346014960130664954813088060407235269454907680742627049729868598328371165402453626369514563995458248820500031576155718779513431224812270697243959835539391840827747812666658842065528847437919989806378081913348288469387364312804725316727007117462628343740697193942027605690404062781579032066671116252467904970956188440296565568434418480274938804474564822928713242980719659254676973928735180862043243323006779530348059138688181734724237109688154597351131625001912925065410544227272571268452033355405582344330117129493432710646537379828899140256493435838452768799999006656066552876606158225104377865650954988606978422726854460518099009415371049885818369368445094058071342348286464903298211926550936335690534767584302101010504329337891393597720956506491212785877492036599582141180735803811378519439348742857890866572749310874574471737760424006319027947777649100247275917635919610203028399016006868718928199365265029959602624150478373648588517049450182521365889052461175624273169280291557396861722659775379810917340827131498180504049353547996114721315191915289787664710921138221923235491824327507906348204330686510984132492860976107335411353612579081402690301502757034222808703862491351350515248920459525265461546433073351523216775419638962349551265699898910593500292557866849662914283138309479837685320701938977982200223328112872098365344330709602586716846446308164686730237838983920796580423413058658347762736729250583985861654840024508305380955778176648141036188652559496089866694819808663420123901844524105410355404957003911845657282240366836205483567483700327048788861482152726171829290698393915906122999178889436374543803599799540151456730017165373666439918288761439418254903733944639179690325451690115685991661790306132654921859867584074348852017053508770340227620109893738773465832664036181925455657134392185662148757728089779155910004242522954073122754943603981198389048204981688948991867530446952777941693410150023394417186638077278658912236723178276414705039230685600676248376667752317143494096512938246935613657973987099360705158698743064673959870559905860667589497605404638424696117163525102344852147215298794980606431644852328428390724515663560081950920613272432255948923637858719213815164795766759288353847589924496236550855218423062573577168038800152210378738609352693457208549170939696129700949066916299799220562862450737605397023419809814617517690382662689172766938608253068504113001262486852673018015569193975977511495117541901026276311301291851953778116778912993859806538906516971140779155814916633296384337207127289407180375645484458348764937581827378277175025886549613568468511159122993588034007499841900845076605696109777862835663531544317933892830630664290977145287279671942261331689210396542718369343260733032591880621203935215089561688813409581301964159227547880965680383966851017114096910420049233817144356474092990767479274366232754687142024264894031584737798948634831366613445337628946299644813632065968624582801576181123431655423180053196796242441914247240285556538534820113782103322466323060598078681393517170891861916576564164727251155621245659028029229090678867843984424958720921542975909820042652018239675274985115106145665996748779792398009014562940569862567263392979510237876328722571664015129757683927386069944714725734612565558872803937713243110637477792202161801559836906899979677093526356762030789949236463878041443768534377058559537127404648321974787765980904260026991386059446736515350492209821511438692508621196783627594497153348289319788411801212231196793885914970773964174737957769104875306154619986562695517924213799587962363034730718443691294343226078697200285613609794914060651814949837405746239605588328553820185778762461923927098765134509629668947293670185200563981419478425527806988586013506949758168027528345544926367910233743181946301549085634751654106313083570851311459361666160846440775673520849736502396277306221520069200577620795361278786737835027088770856191284728752080812742168005144264155507219129734822816658921468644627999250639788587982802242424109447218406589583207063626499542386240577948997959163595721295062072144846611470855252782694328866498688216270612845945255465174603230203321650691257516192271307987701180854921767013394865040013490434905621105005351948378781845840311220558121190894346853949846336174550436323404683648355954825825856742717239494852037674469148711072351939890213671807073477726718268990928974525017420747906773665195589496304446827971212524996248525020293128328804013672532690804237737345913863691199455384443867160316442237581149159144305942348449505802096866799720269385086968709856119774106975785372436252773541877648906617065866250782899885730147998079448227211891793916164536106413382836154590045993502800951808533822583131021511047048748763392306505729155918004290627006089175730763356319969418352243466908166621481963558519687826490315965818966708000084787207480864739694046873692520946365884668174893307394385586320841046761015221000130219724410093033265815700632130247602190298570342378231777881493807029492879985432813618385668527594287016106355152691247107606326832983465020427739171689550464480678333959426388547541360120151443671246942969435781848826672397914156733974396686483843061006457845245857803670928838883591381501190074721149427181108421078790920561003960901515038681768859811257028910351079577201584674755157220836726210940166801840284424026523990145497577094940586346602786788669155431879637084685902752996353438937427258207783079431197069018113667826255587893209108285474422059388016468112415790091631571200451346462437046834494776481328625825834590153471096865954895332301087222917117427607245051576147497080591214105783711642752047513664917525923485173242537893172060414841864150157002323468356520393166283573935348033214057535175169169297340209506139125725168167781298677957801902829832580585057431252916963392717576153280092029424365710611312462557449488074798274374627963047742097594742418662387360438379021104787561628330906985845116980221560789768557806305604137409646640474452301993038651841302756705651031118343107747471720387335074303789716757759405694290776265075618679675588688666461258163488923132598514017832921446334853492398920407628891142829114086357705496837123756376279394638219394008610184127274462532599188205366681079809788917879770608482225471019720172922985799573792957721644917182864472321444409956324103546613067502875312652403292649138990788320767221229116629030007712451837108124627763089453399459899445884066355630990886636656678535915365630402759862058813835923692567073891942123174730983938722464200955399784295388898052975654264023895433727191000878763986926177620638113750563567997710609727221800197372724370523372939044679830745972151642180659828001682429014100774492270928394834678993790644482341596571216696326031534631127538230334344800946347694090231630593233532587082977657145276008184499297621310836748552083383211573966712239130636531427467625515242445937931737482656998879611931152964869227849217172427952364024908809167501127871681986938793327214735111147509504008664367830683970771217580124364636537974189302823715355289793131677111167562098244045645685948736250250472623691490236810459938624025869093042372483822356886644662148946097622288751589459501033403453431911970586312335979295011428321656205852030029409071921700291333472989773100013986927586829130415860359396969671470865277281139729832315133108555430032161435395378080329645434866837665331631469040461913539858676298106799695453060529123318173365064664581567477315178055143074934371827122838725640449628630884582424620021803168804956304843441923565439937376553337203763877089381784831005496755797824676473102125211453948298821255603709438325460807913591691983920604036025615113064244606829695721722292530472111504935253348290636769130627989270471686447501220521839626841006262330473335213874292079589355212920845784789837542309949770907802215790077949641012538358547354679781303202282996057342117900175592988289881812736138803783293956119539491089811568477361140597271850526559083982910567527305490302506139315698638607480885467838746903140369985614395264272543922781300340434576819597833294153123994033120925813713743798826537752718917764546600115707717677386593206788854428246448210350533464837833212595870519053033809806797511903706126315380971420422749759487443338163785204570572605932789683770599084548624682131865721689162671387697954924776465069175551792064192242395440695961613303854049325570260485811833076354048303406372067250320521428342420948433207249094460124789087812745104108747254917144308950187064196822569178964947941970941027021100076068100239803670933796137980333742146360437027863943126465834645546221027865306407188310656285417280073976446289294704860150855644913201728401518530956550048018898630547675068846116021444747790780145278889987809696852638974495627421567886627934548971131586419380505463207034474563480292874290245834755185775109221382440433479058331774265371591358010097336476831260459167302988170148715410998466738572193867161304788083521052858617094819186735314889831151437912456079408350676691882930474702665185521244010991440455315535312815000118568524340038258670816148975577296662688793089965998733254836032600915401416152047525702316673876588040791426051362788065412015796644871657115857488552866417003673054772823701536053036313769993844810405819576851451544539064723300997144296898960576802866305623840306757883888836158203419760797004728969276325522494755400695378124367215972053776463354286888594080657186836883092214362900108054070675301830310130717396290077759771148736245759070702991825420909939539726916414247212668116718060611332340853474473886824101613357805507351998974712274355596441910733808557261900156920012009713920490844145005410325149884574057677994463014331431234293258064657426141182098041659883774451467608891843108675820978254457574353326234077909964318441952476722561884090528111282273833551275535354596060608649522794388234172461869606197034184070011322859786914687799527897226847052097155343852291360063253081778113854620850565610708939724670447041761602013012446590195213901985071429341786514274158924797933633425326664823484283962969715775048506341633475777240364422679795231419100101090411332597420294185928667494375710483577006428960321012316552142514133733117885895112988902179606681932296299059409711231895911307331388342634319677143334344946110759747005536310034740900298164273160683234243920046398345080928173370971477064386300723609251650393426677694128737731790304013346716618107875563417426536545154044811494671583228899996982630402912009449379527450574517838225945854595683481198190322086270915942017391034037775840266742375791413292364882030407256575494438847785573092539909012360195720326531431883781173251303755312956569380685229069748403986756143263313332967823432949142810718508256451873123711853236616348712193681147143728800150754964923545156422035397214866871260212523670128122768249861729537937716008971317444090406005362400349058563581418875030196609116131415210535719938581168860222464751847286831615496800074417877905142561518506600660645186563188679122063815506849788942047099020369870597369207754047076079414412890352349160334596335952627873105743170045403139051839126870999475048095627900957796842997653502365227919611585958433218381381363500047331700716998330039675602084338956070192709490627686579104714681529388887094232175983958278320704136023432900171669971946627871573689003522438239074043393683693124098442123080170614994688014800409459022403671563559027263107359618723515675585629043890109367659008422763804598878297713146753818022012354341833594676949126563006079121784755296768046454421096364748322473382718422635992108083611059307574446004028731543899441697735713250977740340241276286246035467922764213888936412844216277283549379524575658941101607220324588543475775145571117636396860155016105757508627901563744831254688122656532440047271148860855049417638339744644701346611971561465441713649149818866893121044800413834973028018722238804554546222493726458754297408904160352552375535036473211894401055693596518993443496357071254613725098051564444018244716714263468845095629796507764448190224455076162531857243697670412770548754288803201210601688425923939692689875474479336236593020713697494893525732745683543283219839724665250330668888542146179202969475709848140197297499832216426615566103691993468990072145441664047464525519605952699963386907565775065912163714133092229736226150359251895315062294677309375529727129513991846061263375408788383466037851956692100363917299869945562122499940116309084199838045173634071370562502263074571977733988048177251067530968119007398656888569559932133915637755509313059764249966971358748622654130761890943394530154256207561798492913264882404999485985951202312880094157085712260273372906006060695341517779426409698431337162049087986358276947280668975849762453289486577561209755986194397025788677229330485054205816832332502947627524773317683218246567487838449604400936910597758770706622339416617116624628108331390872195196170708400210114058925889498324926179845329766901655477595718682818612112597305174320305710896685486297983106251923238515010241607745338151544460181986747304602079717188972309443624969717806942970583217680205618014851023450459590066224580609212029551908013222026659415120202588372478265619429764638605554501650812317731735379980504257658621239965618206221208301739022828737808079576266123488190072721849010203054292951424791649766771877869585341429154725465971421442663623864542149516399617859413286984269097109928985157575379701936040662403565118667826022479438926562153398111312041711490463125077231690048242750068616743401972609752638086765463735016447449960756909511406146306132380999925978411864231382249116873191582165715029548575556206199253272227405267106623214505639887381561766149889099147875820901333626158800766528580604938418095252443195678634070246974556860790015893822490108502153855395201594461368177582020750230555780123700646032320964369859157271470068184568897194656508862104830806094770551131892104726984145871722619490151401342061102298981501809601346414772780653059986692381723176026158566752191944908212161586614711406310616065777099167235926189133780556411199367037760285376425480674557320871954408656491011532577004221777696457639090973188328925413689649647173180544922583006076941118577020807818961610812054961747043844151106760612059948057125826167007593912386571719280914856480550416915150950448381942379281280848453917837205127857008604533737702863959595482023688707643314992613848283536499962849178284706468951658256544407875566339629708448552153868792814881370278432806332985876375732192972272779492191746472061079540524902122687299981123776454579352077630058924543245358328128983259078108376292077006735765060721851882174461903609937575236506053378921377135377697196917834659921359726313580695786846087513110425549119860059741740485556820488296543617228649884546266884178229014177325472915389525924639043854009045226742656293732345940269579946422619054628834328597565363655628121656926439542677153613419969561131443039966754127732471646737826979965602152783290114163328818545669057321001481146285973509366473411826194767921075520394702643977141054336080141613799876613448457878099110567920459966437228973475944073729507213262668958620139288072812288944630232635138146364503054582393333225554009624978032657128184747454540770855338174516057751635951237272225041916560767956252819746229654911172554547255090013769636004012620210827638744528464483067250519296120367915659461552842014081714766979024474944189803547017303420580430331097009082975192918517056954775004878388101423133820541818063368331221751516290144472981639946407154533786584881168760619483400668981778845255317656497079645147752486268905639805938527628183707223034280780131064950836739812955274152271586256203254664572019446372758745087628470454707694201064198911448415188019491552690904700233909611670590601909990598038501174632073242588986254125377816090402365343735555065645875815504317097405180810504713805689661568753863674910822887916818195078055797602900473343831883457278273183809271244098069138034529175085210030699017752459029916130322521181169296131197475046707123479919358933981528901363690800344907173963721334481772935211235962479522187150020873618391237182104531706929811124632682517016504672290122056083407603195694716899772391517773378035665757259268084392704546944172440647177835566290832747831910692895763021868539349352278041978982204958291877544898468822289598439990549001415513786914279938355063356444775695215271529480313555990177123080959425752330216961125475654768540997050977969493832675907060374000367006324211028331544938281052266154927649692871109645899559412418587243544739220436998143188907122453987171412353251594843313534632814606441132514238233305808823717318163778337666984853836566185603017930888961546368914015559185800582478024228650703663011733425411943427897803650281459682769001875451366646229954575758167731345328374348586408412339534020563436412254499112957698804271081061832499453515747232333644217628003409021773081616757555558157513962161742859163021602303483633695661912701990694860630737918458972995607659367899399387359105363454567483392036997097031373412227523476159358093192397581448920996488988938512068292535749478356079215116005615068194089954812497054867945731050031797290859221615650151511943490669846974418641343781517299319727066275653616466875587416520120149880686356373848615932449181868022035711411357725536006687359189244801235286161308895512529213317672844851702459470547958056760283600294841535448911548940479122523329059485885694098620152047071148796342953412756982167151824706876236742886089884909100488529944978473506722773891628583054444779238866668560089703296606437017875429959239548771586928671325155845794837398300450842773260751297632322240365392184344431126827054836912501396669434184441167886617462145265925551293473328092581779274925908077628143067490257769963637637220798631085432680943390052661455556057214916134617504354727112862730785632113858341870459202230745314810772667590647383390047305203850041049314035958863244561534459546805658306188648605989584022291072752201784752138954667872832088830048220734992635559846588609025678759573982203310258443157299828006473810034951635768347979842120934892937889622069997280685711045310393965624268030627603383868305836818406927941740112950833274847572966161530286622057127012066457346087516903702090578573954858020707339952938367110625994312748316836989659282951484945986912335045093768985003144735778479343915807994645475158540995573115903694702482135289138728862595229512619767665797595097067715302989568918850628662502932417322492422143649295321564322107051572999097048951043101052614042944572108189211818255992304417013485972262813658931982027890574153237567794850917440728543494660619531672217499628268891511529398843231160787367758910062306472154509320625267731240084305857928824022227971604244855813816052416161598552503244119137211354303514195123619506647975509724360076691285371411626617244665703535351419679572694134752409646841555156562488449773098261694757777107470313669361076334687381776114535159730556978423207785428362165632046687272991852970083404259975718428235305679562438792136607075008327453759285256488525026550437293448458601834245786116892540554928472330382644714510766120898118591780767803679164822706523392823753059700097126493739898791343350183953760131510294255460560067251767322313601870742999470814674566501205939127754671696304687491093532175066981765202941668225040817705736471911715127410417738721521917811614556390242654326295663440695757754521495466886703662050381398895156559700317764555496221256555015585419068240377279356849160904546194884626952701133589856924013736839575759283514654380847000099966177530362631555784656925450270038526810121920781972278496564744608694207234390844648106652040731517747202776450287626467530774535359321601751895664964738453128814697433391434445959657014133729884025476675724801775628784952320379671980738990963299031966770102620120638964823403229666589770256435108663702881296430316509744986187832178492736148552466233878829930288650255960518467378579690542673707629945823504321997336666294862640906106276124229877927171550633334876192515787706851008557014828665384374347538399703285352189173882395719584849324755257100378305997893560455976965041650923336696246110962306883993306235688113258961544038040675555140881210136208992941286656816217755278139190315232448863598779862586657297893262022081617925010159033662672033698371140401292781008298758515025279103393589877903554263002431214930537606192765085176742390590639409578593988079833528140488991109623758687188570300735442927260623351040230788734629870060389367849687782864814042269279446092886302859124349642991538403162915179597840636139784614977324029707760245820009612492420905904994785810111206625465506604078861925036245028759315696398414432203220487129489280329554268134364752252288729153775568789514093907056304227026204470179942843966421087590631028891133403508687760690934850254342759745227639747640603016871276110391482122822993865059808512504599381191662238582576474714219198798980501862608519265024949898634399453182670747368328060834107950856954463880733108817861680677984405507350086171497927679378387062003097546204348491899838869810441704877796404747471320233715677627392013876084250268638632477981116854671099631915597498461648447535628852436110524510742288570515732397803873583504064917102757315335731984075858613390306590211331391744100557300772659536729083257253021533719146914210990373601179983642379850686379466916989881003119424307946048673210378530764839905629414546681302872365072970914388263953880291654579933700025680504522985260037960244614747102650843179152128567069665302625946696320195143201344128201024236445657415825372033686144470743757809915009684153563991526271732811860705617843818902899098601692711701624961487667177505319268660896385948408249380756610296823620762272395584371830327271411988689876795004556082320498067104337108090732363047534572146276225048009208559462893234619130854766482860212092094118221646820697815583886159997363239950826886466653846938157324469278328188609552647140403865825917649678080078498611054561718870529446507171589818909369547156287016497730537029788346436473771734999456058080311309542697226451218839344540919056535256598626538453920668111791803992237736239201466073141542409020975783718739785964196404816718582518109413822769486596140235569052076928059558766566479917974983309191663614295198407897518706404292623093621517265302162512376101695170448473863878456507324220759361461465451374202804181640870858771874311961245880334614989527821956780824463588147342555088905130179122515324368895741217442403732230785616477455476744166356747573745303053087200729286770509641656398104809465487297967346782186308101239523219468523116970325670933296953166689772493767416290777391618116306206529039830720025169889950460494738514730995874655260479542588049792634722369860345878719040712008960057480933695940675537707642138689446935707895461269663849073346188802884348543560939349322581294940029465600564307621181707716618173262388867261482005572351024456583038630925552204687037355183503982728529344069774119165444513075308328419687077581063209288004976483914756814394589910675787165925216017319197868688671994681092205923464562215055919801227002106506320326509052287588541887074920250678029913787130231367653759820010843756688704138630322971463869899643016169746050516452338611509220579813767533045348780809469492034020360640430999978581000059699936311628429860280314837262506096588238365286674378859852697502302103221539573365434167408244988313869664517780243463872970938165407406100782219668245119854008123423064082841481265929424397600089675104781779883007249711113328807060187785873294990021396124321707717256635391800730538077381636183171528213036503237854339424031239815723906261177530981939491878199831615437690047578711144115879188369627026152711216996751917096036572582921010214045130630374123485009756105129875070296477595679309052248624152054379074266034942393198637183996927832759128893866503658626039715453167225542427867712678724336181255697289636136445841080020692885432085127004917232267783692471179301279522575341153124573455879817677615307886791001460744258450361591289111839651923812071255637504889145277033958101086869724172297999175550844274735602711428191732893671782060792604857419319963556322438877778145577598461410780945220816764567181398967437019212656610835572941289761136820701319379520187287050088560561888699841725429881340737475857531321551066357318590333058926923320654235089895898729303823194500999925746637800734352694687975876022891999167562327232319637886378033162911078756174400093329177784561156128868810169109167883651539967997694982597767188810665647881337475792474271946757354346005121384787936301347230832838234815446290286344496727332006653769963902038048451797990933421654928585348426334440649002508182353820286146109752431637949409824601689234526447533755362192187753063486046245934610016077478778136202411452319051738651741676649616059309626208643535562542277219446082673420178410960999067159158704618941052289846288174941597337549511435919046911087088894378887516290954841395581889859615709850688178514684555265492870372429465922466107758841375785945683827144634165279487800841521886885381934559615863394666032050582972351533847839809143953965065193564315910512637432158747874691408435445799961836377929749596708895933325306270339469865357725632761157754286407083700371584990682617002730069671705801643281435430818273938881985063362823849209379520838316138848087465302429719479924251954226761601853902753144700576663713790960916408428657319643277199901299525460464513906075337015761426397486995360701261092715456155729857614808657782846930790770146945711097346601315386256560674437987297336756812305623371641943673249922883917220881347657805564178647928943513755605653909814824526186292566063613973455247764811976612252295111938240153658255606143133666694539319431438197051806427591668469727120109458498616513080181100192541226893474687548367227225329375963297012167386876707032941851979693179090999784573350333028892501352669232036217247757357590968641218815835333751848165004056142535289568117237912142359319276953068613888622512568901250101759826284648071936815863016271209944357787992352100162606100058327125253626146428604426516505371775564209264019419774974499871752747685978246576508589099476201948772788273471400215548604773039142375142099161319820563021538025488345557735336950886862466785142066478365276167659088284748591678910454328375605822273605964988722935737305435916301674448839916648093277899069678154484687498328161817094819514616552361132526565434703866595988863490078316419205556696569696108055442492772590206590802814248610953840537496266979005958868677166236824502381150035994478891392588542606706563151392208866660402778797136432385552144048304140639617688020269993861067177111735454677299478308580696347777567720132795455348884692246636896411065209603709243724051079515652587053494669847050686753934934672422888759026745966192286236305626617832655499734066094082407354451904823367801410914965354673414366661017232912573828747332487846354795586017304829559858057012595940984248199035095851328349972769037558382031799694745189971048445972052653983867141165840270610005072507527234491794281754822084702254095345501456648362951737441742523776459136873065549963315257835967409944645684506952671260211914677716767026431597477537279606760758657850219529596256752397914242115708432838634001453033500777632257793424128776931062846127487357536378583090161635120723318653844973754674011671257224842146328602287246670856128688241089115076274700413271324893238827661846734927019272196399294933364044047493651785136107908606564888829260252278288924441446565767348939513902691832177071352487432357432493750320035261414597498393430147649641781027264396663233092206702694598026644637390043268121374755633127278151109563026430780185674972226351194026669634621909551297306764698389495873622240997279721696295614623410241934434097595762442879616711805283234159728401626601946733210740568439853506242574001673506740752633619769360594029201882727057220437774714324813049246364133069807265015366736596168439610534516602192351906053854873406021505269189390161673565362774326854736978854006102894313821266281796748433199623819330276221232734101594239668267200737306960735529653874775791778296233624845296376721729657445642104328907987466669283016299738373466016024474312143599613432764031772248931582854612770786723590959442506499824050635367877201240370666321314132415349564870884310397818677926320986848078408624569928070669405414079985189661294892347110744282689426899086291717339531473165521555490360462014541897767485656366319788863697674481079734010475043269654532053110844635115785782417184049519923536944838961675852186166423057036167848213224614207577834628147366680985717117803907407909706009648678698904186869878026696553878088092120882100451067196222192949273045008824215387885902174761795403527918976643821594186861080027174122519086858228134875118511411545494155493881769666592174566926757441927753905693625721327915542464427900894616340756915141991687164930372204984071573887183654639255042362521318062111994201146137597749937735555656231621194566384734349412141938615319051941558771339181030898898171024199805052861733244939552843455945217920655393717998397812120459693815058329396755697617206314147932240929004031335908109796879867201125133076413530648375911275683031509805226045781652748814338277553791476077673370065491362751722936531904095232321947974592345464441268737447081891118944586293675510357672320276878995998762315976866529429818443165882995899688611021442221596018778826379839682784599178785582656228486316027277413903019761397745299458914498057737557438725103892948241711624666106970678794926320083071844966405920610928062243678324791765485171781864485238989234194764424759364979270530526851788295933155253487090600920619461180540976176928025362754820337525632059054881037664505474384732269232380961584429589837344233385028349250925138005432957605585206746417516348370930328080275918799109953563555450305297222104233766846932475944474495076978667132825573728259074002511993820293274780548815083799162707975721215217818570056031833816377998798352786978240427478259989748084447195624174804016764643503828807801061896044938520380381099204237311622859860049619855588987937432161015916592315855702047106290326417990995445403201622638743511658767088680448924323378789918732298022025932597707671674628709936315138433804554998863392208033053739712472301097063213824700083256278399269571811032306022316544154025122453401681961943731996777793909945336656518766296767761477266748373820523173529006282911210339878886866255550538470187727767617927769567918188269043371563606664152674067974440801741265868411488681193304258215325471348804965124511472295851731694692192059728967179629908663822148072882631187562087084020096418707148606408509880405292320227064542643669839650596344844786342873475844272843517906461393797196016139220632720872584772799030723048398958081678866649294936728386856576496592815179630853794643541287538779536474269551139835866526920973229893929625355992947500072761121799828519039163161881833847202508574500385878295800521363369819475721731592960931950388305146186765159345396352610303125809715540917451242109539350762327083116824507241928081217158054139057137210747392076521532369115658641855554080613661866225894027623232138531537873198544983878813506286926655646650760777692623533477457200775544568220587086193171699833832363881057319698921433098947934066786193231573228198601448667467097454126542804011838784183746887126892316461679007759347587161765844752825210728023461941815309453914244860201652898218029807958699918465838731816842265477080594707936663874547968310296065360017446146515135801960028968286258383187997397565728793580758440923394569473058724488045997762127114778445782208969595186936817511256047297830138302569653124996807646262773903196203417453970669804844158570780624518520250652106751896117802956059251772625228581027285695055768154041390720475689378254260145580749266470803167787002064119118996486462612768506647876400308203014788875053942765719985139563982161033116381488932223657363388021554745755633837304584002813874540548207965502603670942635482261699370810680512663551753120624138192450643718366821476797914548878793479121339114085857242433121457895075166364372423375867789030738388322094983257862754983721024506037706507630505318060234448638959483069328976535300630517646786315426109299259456499060296709694777513761005202705947198254328453342391723258927258375337017009758977830628552085277724163548020151260197405977076098625638504452021374583892819803189358729552234127454516178837078028363217936270037947896122401543001852093222410185334863002754657338637701213208001217025737016614703313067906815738046061848558216557369782463725501967411175814576463785924778379894311862483226623242294606097251468500647798843589151131193211806697212437092603792580054386064798926695751803222216789121963393881869149020467085272865084057950747112093479585116460177736742901781140748829501854321022292819635977419999614732046127514036175344321531623315611308342236167658926861124839858211980525677887692472377369449871706879835716901155027684649557411806069989205289847936001223797849979219753206567698846892038973962257360025371021755665690131441204819494418490418158094407345211750631479525984183361479737132732910688600696886283152647906915907195236904723502755109494169985272557254475897963588724969538241889887191291464294919873617184606172236101767235060569812067564604113542987377495916094179962656769431847185083192068648442940096530334097017181952410270122163956375185259213598729813262827048885364444540424974109647357826540912129616344173162209349254764209660954035378589596866917927174124708558034707717708829362343119881386610388582206558480814841710617832130108149181231905880423892088884210801410369747188392884822423539372270909407090144395460989333579922364417869363042630305045794938960672400479684617663042532569069493049915387835295638241484367540428548162652340087375095442243118837284104775521280595442935184855672429215181386607146598889503085567763712162428051398946780813229404222809326798570610436705216344909579006553023422616321709039104353997801806119288490909595932884719822224949220013551991403013744346786350533971224127254549486400996678467649782541071650602427899842662832602238605190358456444964370168067934949473910105228385245132722042481161371481183255143858770017011817317100994237560641114672595976623081539007715100951943202811646874163655661997215518316078839864089970926166907406457716898567069490773024471345930966065596987517128133280247996193290011985835397572669322926053543867782645535869852609749919729326487022948573156199104801676818091024938888267950206651386186358354204930375421925845120552661596627993311516493472924667674454974544096880623070937670507626256643529352304894477298484989175099263378921936387367053625496905476103743722027131451481751081270722222337524844854906613454621528488778264595887454403796266075435959193729786293645173648728365287691106619045908818329638516295693771200153150179938418507435819561098003224231845461030471185752503104881083987239214115106795227052099909290151754565132540001828353327019595147154248578219406097192994407576114272590649990691363042492641664551847358578973826979078185850314086801315449059153848970104603941351919709854396631815984765338162439726138880461804786007537667210029808536639763231102789236721495556015154728525562827190054935191720067986347252436413185067725400441811081903669294126062647934756226988214440146639445006383796869630488455927566104234693751764689220256613903636993613371274552186447182295926994112202274610421342900334034980414869569862034723746441056825202739627637754018683549988025945476374202168185766270754053597519260782282003230999487818585703169637954096322706112094128079591387498956978417118246280998510040822630621440307255704395517988139204749379872914349372600493661528005807372173486595382049441313730668345879508505595291024064680863975688007671530275059048182232852920657081891578833120881140275901788189795701452848192578574336960716128881905481109374232549475863489456318613369938634356188515303829055500216687000862597644748931798319991019201674718302518489644706713757424616821181198287431876202977818810470479897111409710653865166844664892623400124083124200068133654668045558329620311494871214130122562846128445829253930764882450090612929162240696088543436820184240488000008217260736122135625272631441739537195297274105977983373535438253339093915304216060957857262492905496864022100217023554536907260604696081190904927929304240776945780945076562005491841520856550218720660593383576353516286134991065393846265263464419750268484957237486133064612670240963775405941598116345645299031866403829637042539497503745597283331639521424477783802508196504257499567469993092553137398825685557601088162353358610698299679348251362596815341750896527111000472485886714208254598185850425223648307902133612133887996118218118557338582274049637655908285198338349833550583505608872259257418320682773965631042200134498944966632833584761791153713784425838844057373156909849994092610425543457582187288255161591221149636520591721508615483157701377647307318249925914982378736310570272294176746245156088707750337469633855782005406995240970508965386630890823792302144188247073426403647410327055904302584277109668481515746792201182315496800164076827598119048702692298591928468298072869039647272953641892537770088071236963435625339134953811380895609647615606080032724417226395730299167049881986519152153566478847596374431039630345895774678856233460624891257632701344678191175971730380067212674117164337428814791605402809066857379580795082265011299649600420412568564222454423299720847716892949615964606517718050875045394651887254543224473642593967880017099362723741681990516060661424741460543642977394721112271641235130499216614663796251627836251220315335965783091543822313999293825372266394240300626607709676804264333801665607549742727781583774931656096400108575002061349296377612886447438678894238038494546469291244761213724469734849364040988696449961162351591558518468415995006182166501812756876043705505734000467934188436095940575737093112693507946701137321048574024170649813949861760770478087873011497126246820544486529662224817455785758709720954679814198074212554984863685151209618172570763744841436695105017703908780684788185621250630645508907115400671320006222875787067767940514441685873067818720056488900901662074458967141072381915054187348000766710571490287520906817979035869446764813474920562303375867095614465760943217931132808661859325987360941722979312599558244212274899974314622746438893209644574938432501526037356762624936984509458003245676070701479578710175005931034049104706708342981787433638147619674347154856109742817262654011209169682911057405583685158980216083659396738216571158379920457948097430516588580591538306205725771909865175543418743780231225628110265195489168315783251129145657040853136726229303046490468991360083834347519376781425255436112492822585449273894408017759848949726258530348337503246553013482544141001116428910194728294814553961692578386453881860444464646515486588883458236037199716450108254142572429842183295127168259924907536931726788083157971565814160123551906597459897010993071740975657520370711416874742901191145486775035292994131654244538499987768273347693283368230955551732515156629425507077062194110495344093630158727189675039607042193732407781508932932891063996276791335229140254030298898491305750825091397274330820961342564198608975616965165869237475992379044545487451149419156759320971588613863825072383461214754883443877010917174806464165476000375252464438585001157852658594125412467632206423456373223879947790450885208137018120757874134576032827391405936419191296216736622134716716865672585022196361643444326215860046049577712976011931290849671696743890982575615680696982182821087099389459038546154449965943075898550876202033215813966291057189696595832205003239083756116413448399440030306459900555017855724986216805044101769877344863898243412347597868500034554303146755588397442896205412894565738911036671860132671314762898410049259364986368788395559911267437136562420034199368993850183375551434561218972246970244778242122533105914546727726678623166525469320547562447712823847246671094644095552846423544091923491141647745496016465954954279267324914355475611777781814713693930995246184573422323589546330742784175382299904346354223998059945782753164071773551467584136304845150825251059635488887219835675899296590471531585778770600076733416089817544438161436908888275864204669890437896654917725652732300598758926731319615925939919365863924549995848519313961396860050150372091380024382146443626746782466451554914596981491054326219335243054380518022772317544221252159349607229395917372628612687870940122270669179744204839401578288564189833397903706346510615988472343346505125468086028398711736533204841296679626146578285212162143968496766915930835438574809539139366660442559913777394410547368389062013547549912413791383632698179716559341434150677660422572089058145529236033096180129511370663147078375147107419670761977828531517912184213839938262565966176696405628641115002105156014671563495647074551872782722549799574968270776422531351522602503867011951735265295010369597580191011878707245441963538032667475732190729648228302735276512977562389235056317276932590369231860335713375903025347504692569793645128139022749159043072880116259702744061969374317502211802194056388794263066310306430260028395441256051179689746198302847956357083724341847380402360807512217160187826797415098414909666214917883743841114983231155051201128017787680967492354917318607910202913555488400359555380469545447682078171451037336966557622658800254204311600792173574537224470328142515449443251128372355030360385464673227317292591834189702556690643552464920947413754536136707944696553600991754722465717147464592945206906806215884751851181846830079133327656558157609295232763145393203182198228108421497722863999765692675163815572660382467732721944339488641138397723947973851340416722940566140209152817096198763842990785732576622186971816766785043848197254003396704566585732142810129048148143526142015459125737378436173059606690591564545658054859270764391722140541681891713323882457673371409729416344697096070572131670019385890342744984757459552441342967516426992939141698665937751567383297207262966307971209873804218899780810218585557849045782386590796178845735841796457811975081188236414297568660759034684161367076994896069699059310238849533162686137721486650890051673854908465310783919925152841045049284368042760298635595848581911762293106884744014967016996103918420532386215037460525850101397293530589465374668230033724999122936748831294410951722526327082069980642713055224229167740394974366673141257152782894127967978282607917893509881200090637477768731790806571113007955439748374721050659660546874460288059683750547406043547415410308332164435800299909765227940568785903768940420984286058970135729293962679673961269938463005802110168563767984721730709372422377142289701556976252901972967141186253774899738269605698216704281706503918457291256671684385586933739876030953671380569889245014888003891916152708038373730673143110167875619314997576487300124550772894099577000885339448727993849285224627421390798726604651627038171028689086166026854286232590417859555625044607936431247787270918808893396172717778635758855133104038371385387529461365901305841845833992234643812372796773081883144276377877929377898605571632152319672731029578056863836450159970935642744102927603552451445016546197666865271090515531372981447917466395658455319883526683869794746795159573225743815009161832810542512256999250119029788491945684614580444581596888140670579482796053940730011867253391533094424039532642702954200241299994524934140055606741738875155499696353918524166339638681096875140384545543979580400345105386741165492980577374833897521566669507653148299339927512893110273730972150248317391569100330168151947178506106335791983134673113341520710873316825649338857850151754798767095731453995530434061330427729758689177168838549942697640044242542575421161719275971617950774371891063089082256347656424075946594241858576662860793577625159477492357981954371883355960235045242435482924318071569006645550253124951212410275367006206344606704886668448542830645386785075071101896414421520544193658381230963685392520188245330385741176258503633554025919362011880446260948281104221613258471096878039680481566020255671836649712244640196647655999654987038589849061747398114551787928458299151760993806380136039681500348543938532362876229845116881500427954622425262437983004861726520956531865159258283231999258550867950128445553361505151540054016715679253909684802449654270901293032318310145727866927952242987026191733104252038716720963351305199278780340094591411199079859498579339505395693941476272665090120150581057593935151809695226191397853653894172127132276050596374967020972587573224262924168386016297389788443769300621547704629419909405283422595745012664124486558264306301030830875587952766497916403548370841933419757650933092395345042419463482058300067205101139070056562265350728468233766547372812910252312958968253784494551848294089454243388930736173658369467270995345193715942253926645463962843989224988629907027309149410196136485508756273532955261971392793098476545201424721663573459365373710138945515960729363556420591549017671083318741639273809940139874956848314528079163990937919473371087512262769279850502913412675192231305588889210208992899261639447515440729723004535938859605152190814019280695276111080002005137188838729668982010170792831585812436563186428495304314880122207236965079943587599346447611940458004822887954052313366511201552061567615601683819012083856840347173688300745537428024147392144955235797057172039800546784902583779625248617526633043420359948296857811015779889745446408511427096688512401640377696532401504179563247030039975834534120960436749287666401581573172178860265605164145008013510314751136862561997599279916091681627209629396145592012982490106601619536674087486696039519669307199971051462669877322717946858949809680016111410892504309827366829353797973719684993126909065194485970656009266771457217113553721644239053787772566376686990552190602705653738917365372972401689186515376780091477424818347425785601996032887904712680160910243946789186374202584071915120310192352990670979875429630341705041126308502067366598470258664137129154517520843240061885740633324606569614967753847921182668763795070585621527562501357055612547232249600005547691004138419753772794110272063883939808916448565624092449717409414139132949181419105852205430681174846190295652126387842435116902519315043477646239860917209856578546441292908242435600770332606221977637843694257769942432929623600946055187180292301027463630573128081956510944020821016969139913348653368840439271484526503934772550108853975508107002123766962573396484563586488835901614705471429228260927908477767514976638259333943175529218167498205713638461787672812666405270448513050474579408601427287181684483978264014169019122888667103478292717593122361569417302758016214494312204711141327627144124520235020547944399283781443655064022197643222238431686694046209728136678004457419496787562367090787793366393569626501344042252663273338553270408577897345456465853913428289478323563820405835035723860002437237415936891661855411614870950246647690375434342102432322233527089575567244660207423852745285757945743519484044985789213272855309979688794702080274326016265972312272195945074210440740441010117801525589491358883216277886246189864445586610153940440891058012416549425396770967795616927956059628354766772630899871712057021007593781198616041381432213290717491392341081598304792074501552556237858349633255220782575261678605452194481960902106920445149454347525437278925890710842298769608311257418112203396836859683370116205604638597162824318844449124826728787879447334908721167856641882487895602560330681315195280901634546868435237603939872493215775232170141560855702555383875244403402175664766690499740265046270878198400781401987733458783242126844220686781963795937372452299108153248309352318643419895510820260364952137895268081484377922526947012702471589988795783695413995491361596610320988716387549102325255457093364399611682674612839369416379472591243479864726421051291204059064594394097367254243990381061276195388270328577981164116015580503934481273029387059250731890908247166420328094729736603665261218172405174675605895019753412740885536452784578528875399837035816262534942286150933756393616298716586687888405013259108085980407871256000166186512291061867443161110789579583475775626197385183842411043257091206778991814139849292315923546488102774066676897475949642507327807457466270969641557285911737231745513831129496750548329962769158927937274581791512776016633630843266191789253681790520283258915136762382260972963861447217068905048035242573623173937170370080680627747019460650507691356737905848628070837699023177465528181212319547328022475006804020790189079285289024394762425921685690489839846647844673838347744351463821696000937393276119720271900376946670974201612619663517700845676903150620544151196957329585167446801549192998192356793268853579626625289626262132186974083288778108997794420781390552949692638407539829310325820894883378676222833771729475694420036879790232928573703457745126877999988578888558894947317561341648807790575020521480554252014628477918970179434316056262807553351424804822692043669244650070414396999360073627177308313421472093772996601456376931249099673091238301143736186457597378541189210941456766496268637143043179199207282307444213417344060816658777273412765641572543352279024067209329848586303267094187749125563307986059084491257189387557254997194690465251185311823550214151177873499663765284656800855150291463051180384125008489812912426145817817124357768078498837701304162191780974824361468975468498998728505066431902583119814634325573906157635015556433861418268627468414911265537195723682766385939106443794405882661257288630887001697411961570894571431142487795204469750680938751498058258237757740602849467983620538395742011943404484147708641893470167567650568272816305758057688282983859728235295174401810934399228376151463174944790104253022237032905086970150589897497864830907811783252038897389113312196625471377576086829243578455959772298103151553943383027635600473254802087853099931982137259111081923914378604916117002929925397018147382462150759659756466339418766990637919521901565465621147950480242620725448640385462421636270159439278008746387156722933740785901312618115325707432506988740929326533046907492699510470612290133395258201972776902444265585277930607437239732808278888224975567085143494920830291698465518231625977553475997033452979738820871441173934409606108457415245429157079038905817390918623740930916360654119863769638277973856254311949141188034917542516264307977106067492277490457669850520541563621840274735737976013669970325924862191494569750234213290775624275161884584877017373817037989533375796889763425345672230707091574402326321931432621085124611609110079727708731616782235950211049852828264775692431341593614975568374352782139064097350202364100956142114783447451858117327888528210067374446241945603324627348443396922169946233405942605879975786623970509770892077544612924248039262167671075468702486722968437299207482222064700258476632434866154806872568729841253696066200618506550769942583214105315133697195900107776394590230909460004755335251560563467194033714232704717340413209697253587121137342713264462050193430867272358402932973382673236423438963871645877827863842117117896363055612537522134056393682986438269534621701628930968940848697690129713874980470506560845716981998355098231790082600360100588265688390033585112890470390020017850006398238437564750499268000644388623040353820470408403031604506233049574972005650371057535976686007097407040799275544202930229614529694005990284200176809609842007866414271375012710541621740271211861955786700005733117624359842538353213742799026635012635540856990781198656229985347332812644439933750721937830179828362230368298066588785815880090603789272639519370258953576951807315952603546742299720607880004506334042691730701404604988483089058245500284195143221314202987841742979274141948014376303234534825338824950188232341842041610793990575557747318191643765070677996081854959243042492859456163116153968895866452051971914046570210918357281927066421279134863911677291786602499532133563391256512636774535181294352948086782202774310101617980574967238075040050641787281235691783167024680939319929494065997012070976732338814617566949967676728925614409040795234636471973687843048883547668094968519096072953834440759470512498848158562510740420958299777586344061010762636468141826029169106667233785262841382969452471234092804789428568961607041928576710948653042132998029842128977118448525541120258866909922104171049241543991581249237040215374050592848437079786727646078208278943602158479912310509630875751566596995982273305703111459576809337911817927715502623785349419383240393448210121236530627959356477529551851620454745862651268764116731463970217145777002412772516368203351951740869850747821310857242249764604406134905698089141047651401814824685096145784349305380348215420835435005815361348342573547732541989205176264082819910494385692888457170180565329784747238580473988059067821502702934880568699239667800952708050196434396637707281850644627465416138327924720027761346914641109316050145421854019541107317974768764498151664261008745819729452050509834715978366806217191862234022357406521734212739051477508840546190694955959246635914876232835823156646743965814242812820384179928509653213038466850459361658034420417332339593077507669610055260869412665281801964271459856962840826543316606839019622718064389468420249951629165625285261548565603532928340950556051391321375982248690812311301881892648153119790269019838574121461322179083149440114154431843803851150955073529473148742635883473979333485084992214629176175131272035540822079442511455416271079501099799731095500049593763038284104634737251259310862303094832616311895364272665174178053125704026394633863975971403007153106066486840140244035024043581919831652324472739384142963379743162245008435838888034381190695466936492792354995054329711337911512036405137995114419701615720397655297376249111697782886835235595399113229977497170579284480009803139655571905663897769455706257517343065175039075834884697058017296134450352072820981412813645968197687869862663176105942444527034695237442141547028092314286125984195881609616779483293056724527863329729567607262626368145925015443967818841382019786796716314316025190719839236243262326764509330196338929067114717790464562964673969103268818595413658175782090207657736710015292079604027270900886642963146332972048668715013806627715466975414498221230621225602548843120485474956251486802939032659130483572866002482026853775731583789441012354943399916533627424364689239222100837461284615308915573138644013817390563007078563870258284559099446528434372832120181373653708024498529877201025979122668556219823899828950141024574655336531518951908331927628395745327708057932207966865671886210684333675012931148998782763534899897890871150570168378719631490809691324964502807719314910809245376056252635815527972989927626922574114743539985651152283126998713566970119482645088347469109165658271024496604491726298826640806611883349744251372118055859809021803206693846927747712514528766912310859650538241047132125472763516983107444424573339917440974614917865969809294565833867870370953065794573216458803940798717583973721637292683963194177814595735690105444966882771717364741877962950180854846306649965186554218258410515912531829230404706235924366402435222375261270971064686048710862855896630372479070582713745187359104693428944643688611383760539867400305500442259628488576634455722760907160501675061236102060368326911153578342184288838365223119440324117543897804036805208803116386662913034062405993972175894989295713786776440297083099047869383748833677218692943593703775330921911994362179967649613821323192879497739454680386158523393369630887988687053601284400837311345694506409392290328849856453164315284563468120255149248597522444883158385181528575318588823274575837942465682527297636528887133083593782315136212374669020225433922014170596618657575374838802161825248667984125539205233148338505663511622953586913389012751710027028242747528293982640061510982202707928335065823353221249477073880178661249224756885463881296143005826982644528495845025491961864284405081335199047229070036262282528544663556665284532093181696390990360058029131099620174239952426741090806408810011392234391730606501139054834387833856317139900632346671993034855031270269576352090553109502052064154324449988215284958129261222050334053460356207826974129156417262511749056899064007148007345356852447544486524491581083448411964963144376681096093809929225633040521157824327216085626062237696292348911467708556299898922988471038129610440191732877074404889569148453399966032077988866644149913687155123696832024441423774043736393112775143467364988829846820326370157215900223034141208098362547718767897630156104119664283007851737348901806812166619534606586177687977257338109272224732697838470875285917285446958464862908362533554547714163307417896722632641932694623468494548447063859447075187804674118721805962591198451987785796913598259413907267358630316370583100025390886468162766366482140370287496193050777339404227341418023098416329754369543070883213645574652141066917468512992690627246223797844837940820497231506888221663302126230865392521707199775106254854342567702764532952085430278045684914897152910338054187352557899758101471265405820434458567212108892410151507461113552928829056192700672189409862760368496406831298401690401134455835586990002555930282881118512911633742482771831334146718841573810123257380577059765266132549991641202716158253590739896633563885609200987125069523928346160992240640370347975955145832499940622678599860127102489987902918005143138741970767963722435135549272548252005906605045504121194733546889618403331673353984611467909566256728269226154921763541572060569703732055154070963546883052285957274401969689306052665620773295621309158966038756604803270607875643642719179304227219220721498974934589944187030798655803841854505546819410760913859637640449529448479951451033833172103120867838333390498413827825864627342433727202584094286016054328011941794834251460759233970122579546154075230541206927864285202112578349159468921863091381361166525000211332350372876212498668250948095341215962164868673176715120759450108941474924091549859039975249815632213505620752039213568081636203038219508177074171089678868469585709567581277569730227537553616112874739413151975979668880494926542964715337993610631206798144891660821117746361787826133537310935839285282232556391182736910051932412205650323010080867047246126234991527238058690373560395513056455247916282276782503349646697813743921806925900081855740833779464400294116590981933057009971875046647853417834152205113193351176199297085738130706571855924335020922703998780079401097782938078397913417501419820568347842414226702026979242557384820353822744604077159320876367098651484096558673693087104864677623242789147734226571266195617069990682514228031692096520386230921013888288151436002565228423313985650784679742583563109298898727655383830661825142665343991996482590515242574207409736020052114456580101186488932168461160743763627622460065497046789507556338646271056456490513175017272032613724331995465238357835916136663617140444532532325363562617230407774334891018757555927137140382574202791090315477939405925654602916772008756825495359161472567620499279721354969098492076106486610347041412356754582009626272765201419607769294304866722682315637010972257551188352668240771194128495601010664264617438128680096006701975525816059361976590175148215645419209267047124736210950385863318026282303257544836529598508019653843025348842121057031811088807917799560255791014170458592270782388459119790745813141379316069146088554399144599706914515419614453597500058366391281948192265727332882426292506014975330248617474245462590522399258462906071049489968572249387500804166707723588561841658181352422359562751386928204555115890207009958440013381204130562963728978616541148692569241019754514825441205303090346875534675241470289231333450942917321787171805631502151595120065948066401505334489589794103168670428649558999416324072205123637406526352781444523859113005721781211898898558916090770000013034044426932805522889259835504811758106535708779044686445871373266314591065829224532485807449448459888127579552822887639297817432832530190617697309839412141736947380688491177765248613395764858910126325285925454513899386449515744960510502826778571138154312979210423249096658395210771503993027519000205605736068122027478826981094986035659878370076349703760315375966206521569070066730292019158529984060656378314900541941435205775504114827225637237538326177888134423511733691644593794269188120292298165198196446203661725493322592538976708189484754086948746626698611947628381258540833090988776137360510702969937080892776271344520645777642947871832196614220099353893471548200289794631812034605542838197654897382665648115266065552730755548289670612178390519712525858274845293172328430413659335431640220189998386284748030000289769807041413293482354748195810649877371222317760381543424278781200123149916082905907121258475675716013345266174006783184955487015371535516312520078862653836359908953517760629039156055535703222350367338392218939930280027221732048971477129351644867351224334348328267546698177605081561123302473614432679684023328065411603708997849399475796343798701527271646408518560522868260936866669642753137035360152215358369981194501624831850202066795308535130976879472207283710084063596112568085716835183708935107882470955971757247949850096478653385270639049332548406834706033614213737621271729314925820914765376386066382072522540258589501127148113009144478364575214390843468411588922268700028163840251276546317335811924284387178099396932056002404017169873055513383814987558196757815973617514847772631804323585570914972407294202797161205803682835093986469776044580320140397738304455290735302678735136816727231570938138796474194674535575261935864318953360730957778906292948710404497858690661022087935747866699386170585619969341226733897417939236951375847820848162829706351506159386223163009804501411752065925948952400723675352945669173938518330219609033206935327335055348340846380091263794328554245601311629099765786730873909225054013742441397224317364432467903961879982322644392383109200908540264195185516472210041421723065217328751233509762732736486402062526986018646114838058950780582655409496835275235002425404449228716266680673136761352419592286846138395856522246798626260028037943424276639068416993711538826781660728489323042719046997241041861664213088345035111405071833455690037223301095699018706452514992941935776262879560635144934477061616050813733179608869174470434978764683022574978495460575339997269729776892080610452682246464012377015878514120335089361085836815206147627808058171043138997382551398248335640749176889485250292512444631854357458668163658070418419942014741223911646126283602625427025804030459922710605242578295653548387254713202715833950914822674058713520330169112952429561459627015137357939540769438931113320865487571252120839597073070997182372385099744692001301564087792990377391021173384114080735570978524332580265599467708137289912359522970928697198952155363737268366816186763533356128920076532500947643870793122574558509363780430856966739587726939489313105007694250939904416332729889081684473954144782007956138312420125458078463680793584941047568937658013470223962541190190519683512173049312662360549644783264358966640653693596455608666501135636041817506756889020823364972179469813037865946575146906446610285351054931167898366838032748440527772079065348299391434252315571106631521576675656990169473561148848319644125601202675306270464286034112907297653915155984797689504666601438562637797295936998850597093406477680129122414628044568052365872479184802368397121120512995849664580675150179204761703068742348017381965057722646693856737394935800339224175645296666403041402485712561770186953614112723054914872168258264210487026623865874839643546665729675353371460721828508390950544469186187455865295211342336369225735191555384027667244555267756760174597814458429200442204037570336228324235207063703254895646131384511639330077957538312925703021744007605733805513608805199524965369667674670727727066027988210320564371224566362104722652216460600978290611609637734305964770739813242201205696128290910808076008242418660450350008287107012742781719060422442612110286797787223383148580884352042670620996431316807987459793308521157587188647614071962033793752002859146960984832719993703837012052380174030887868187504471222398276221923944966867939129764960131723563436963681614333040025724303117998230427542074559685726807150040745028665818527747441493922249762680697559821566237848632255638112899410374606274938546771637939012377030203250157335017614873219501041639852591508359852639787797752908981107607162643685636726548296405182186798238961733706496800769156155219397836851337128710363863279787135220285437817205927015476720703804745330500512992794229630645028073202819254819825536548263969307940230412928589655457559926942188812961019740064386185477748883201709397836842705743492816060808671308380655321333192792577173241331385713444304202335040301773899828834308280805155483824168043259960807488359008568730043323592671264599255929380404669498013142119080380827212266083891622226264226869181707873922608022015384589015215708422707984936272725455136500043422691971756204348097208035338710617795454977281099645656503739438302948101243815295411949271987912840531051870364541723456203105119945391237479883090779597808319056180878456771981854008966598812128758976515138513699080160154418765799723297013711040604694036120266369187618254919592328182109373311673874157243754381222473524344586260558980345374615313872098953738750501140268240931824917601650961112503027711641679230776262502407348120233659889002668741507789976411017412064315147229579738310880950340413876609328703337612666520590291029871034778538296515652096805222213208338529706506336313341212045096912772171567860691193100307779229104842871448310364092186816086312760992975354910005542782050009948891727802031978727454667894079668381414091668610301344386199418942846799307699146963699299947142814360200941998720567992561860779165587470281724304045665123365054975208308273022909572139292814423159481868086318998263954595143429879492260852461304539663039090324095518584568593775599837767656500930964423337547252673451887216032703748783260141019899342329011772610795520959893419113800513726087128583688371291981520810077404410098775272667218179039227732875516623078692897915978335471019395653977487103527004633332378148093081242010039624527498004923132731000070734255679983148168634013228533954196796556622328934682817993702282629360506403073382543977537426142784548066350383489402240828654916587000649416446904348186804805625929026092195504185723261804649166417417246478557780356123098690372022629705101709632082993002510425480374695873313480092446619056548022025560488017513276782136377647237324366669586089575512274645185281331753309998308955739274328696342525285740548324477889701453602482892790390303991241128128903246336229680613915548921702603780692010120887046354483646676709142333943828272732664878585878520074702334669339567616671751612139972136502788212160871845729759964284574905796035209202625720875463612472583063173920503124703708766784802535845170625259308726584710206188196094541620130827935260671947426565086171999101252637523389337221442063721550584526813315790743819751160899605016727625408293991904086601625591328802004887212420747239001047305483106641464885996715187024774687523167790267041226022384935626211550405949356471467845311064687572798337016401566251006594271380256630517539209487211152830495414811510147268872919396946664243383257148914589151822878928332057914724704594596660455301381726195634710698221158997531925869027696193098009162770554728161153272114799673037143162986875392305862341001761363453698566908604927675625581028720272067660242751280126652164192774629446977061387540792381878075031837256234361696517997837336661214018874016784631070595928513579755934131879812024638548520485653993896246669211838209439526590674787702333657879289168020019704328123367288392749900983289954288722241359158046580067493631122933320743692260175123149715632403374454918170517908359832187652381373925722077987654626937383497253181473073879416410331609128275699248065979172441162824848267992795918254611004499655902254266906675753336465626326632603444660557818001967815280938810647279919503628348265532289353501665217617085080540088813333670036170503975830662999808173940028018389951886023617280229436872899810736718504340864483404708848150074024089773842985288955208721154351820647402609128147508956093425563945188913388244831083533138829150975196654999817498748896181016323661470866888771229229711985362017943003288831339409928440275206971431013919866140766231913494326230760372202563088070403105346159238876526877589869396863263273056151506393566289590263727424151166753030303336045251710448356377537036130246829558535284120091246207914213803607475663613951346801482554784970852141827395612488090740769799922271618675011169174991179021494141246691677525570917994356855527042562192368376233885142328995465113646603403164920895652045045973451946529001413580250749397351045223392306513515189144242570279021098161045347629522409355914299707369904070452727528134921782429932306850902987595982356797023141152034812045315765929879270131196675332605439667114805542561561815433198663772892053122288481466133000747774155978569401879611945796324011882899910868545339962117266011276392487465886664982118159132837905068302316378099923396402022988400042238951555534909841157685640249909211172729216150715799992810994664313124338060480846129488601708606617353039467259820793889499139206613493869580001231558377564123359113552934494992217838117745025180524872029157322570903935486097237543360732406033676020044888774008912029718406184607222761886051254178037174969222479608894617242206721606953053631665588805708596477451844728953566200374074074280307498288369706426521780831820121132921388227625781749857948749815369270613186937041021883033920342371216348690958676785612176405542648434672464103329270726720308445888875342632212885101803219183087626635694891982454692390210283616839651672847151574251388205523849635126775069340425765295020141467970051636952020799329258870394331495838042893351960205638191594328119165216962633011610100391471123135643545408826987640825393417672018039384388355268973559388873909431220258286371513716542929229393498968699994770902404367054400981382152387182124832630863276762470283416735776088207209071608405982207575654105648265619455902251172616052999758317340319915433702204575087207975703055477621356335464774676586046840215542752921390867982590715971547086330919880792193683422819174808145968815163225946385884968550631493983394660409755009717195590305665994438179675057024453549775740184191059441507226372264271724001391238290732346789351294202063566573293343360534189919767623997581867523100618732791920850419130695142514441704151084632885747059584246341725770542673801755509997517502049689537155855265636420026752405135890408425827472525945405994163188901774738555640770838218535546097998335826158993740227814569436406654350653329952497620958393443678167899261876084163702004865576432968701644616175625956968776204574622999884075276229689531780250344734338794024840367522131875823427354416867241460475321428545840258133652504578492273704439530689246708441455913010562014156758621693631975290063595908136422657068101563166278071786320478203884589458036446702689915393152865521502257649985755291124385328363467231868399899185759699881356895637200206819606092332755073804370956916819103299965228863367193417746589617851859914574796077688368693868874180819315358365157513941264064198263779146531933700905555299150056403415716678719119047734084755066628285603867727424410872715036353415647243021371009990830944874290896778593325541560631152817223054402050577653956312274746351276010816727174606425814973294167270798558096020538930064559517179905084464247628756702893387251268342676175869935680759948597207610708297526403858998642610163243073738587744562788784586079099363065747494324675319298057614871347258235085653357326030055807798621605260857661220652990426227700955326326688910525725670713666252324576604240698298724587318882521413960956225217157804622196653835372551662490998448880467530018310960417964126176047367763820298530905726415617628135662830041273342275438638186076802449614912333549551859774685737047839493865809073975162373234990586129018506502642238911301631784881530622755424697556919468549775321416073124968025058032049292840986426741271789669093507825502837509122530126239129014624710503571333765833470500430438240671506790451953184447774864457209362480011601830251039464125051785788877656866360800879720327258493122566781628092239318432185413338639103136857392123221801792649313065996546507087861060864398268290385196147336343443142069675929257403933186527588642332536801233958771963094953674315709585993188558892157195219353191331364757225212541819166692129182422875465215999903751977647834435149473188343600373972507414641905428800728779142947425939370238843363504448400311567069189625961997815175196561381957196553868775545713471126219990746848086428374060173258311644693117157165711679115066297398249537564159942946277318459412328428898832706197644985434817461786327608030385697015566510056884811395392504059687253443320051836113575217696703902726064964796225130877360480385155340898694739651793621378211907580037802685720132931394374594663018263212952100373262881633580350683410177091883339293711741829300466376937633165627131345428978975105086698131268554774990404662484570361052227004290294722817713068487090727594502711877651494033078315960388147992325015252772249252297321675970441159270471916834371918905752342380646508002280968660972031813462557551090478428115029176373574641024806936663075146451702978928104233719900530441514697072119573804120653738969223574265861036513793269738540930829380437058232419262429577572970154526673303947387430988042539680961862826936598406065175957337040450202875852174534871854055061837695872884986305825923336240952339857149970944689325236781331106884952063777185033509710369292931707857502313102809093763311667048290793204432740645799301855428506073503172710378891238519323506628257894811677453208772217135047185153577397113461932316458917444692024284086081982411731447654904179850059756820445059983369187392729644750641980178148131173010763693249366618773353236142611653765304841453402606125618723308099309330781865333296189044905727319649699303829295027080502027882698827785420080624406284762064658985674393955024557358390658652615898913259891659569117211152729976501753842802728652064814897489954988197838707992437728785028550540815035573338446665763305918474076282019346677798019992436030835434767251559330143745916611354866160255995918249472805202518974023432442437244113963828485098070348027707802479397302368545482173623793509348212349491209548367547284920925105428735848329688641924129805305580655727936295679340814148579826566838295915312339790150488504068260315725612292451158310927793099924172801109430872219546621543154514242704923589047096929697600272921410678028437782108806858145325665076897464401975616062244039552473751665133604836898686462173583313277674816648670131942163930125161966100186000295065026831593107942572636138982951642352948241295942531831862539961926468799408342871102453036052036788984761525099043579414303639313208057006577075754001864094180372664723659053002725250390246828014662661681444278292047955349379584944838880374328022513708223002199281510624069949178967994498834506624846528678738468384414319974736925842535854064892806716900056419511745201401049834603046793209935727451314318429112305702706312793819329930807197931526350418761568566225187849021840290841479287987013325787639227894861066145505548800244778448182688406128711376202633515631633662318421626501650014449700724351511423956858289523301550542832952900993402163731256762995315644884036690652278993659600633718654239661386475585269371095077616162774131350198518976085336651163257818250018997079928805987735116871538055973871573880844002596628555171528243750927381329529916108119772350077868762199026098412647716913422687754492048127814516668583055684911980050087664904456786426774177598625729941086052776477803007527295197058132508100691078219591679184747649665415016798368707622169449171925882868222290585196191873099618864500674632129634542406368083642883240691340973676280959053265849213892104952178056416971496241584800688819881759500034410452983397889207510678327934964511951702111206330961868284922636663767286407263523358800048986980781073712652545439691134859922404718071791490586577893410249108419075938579027482593358753143735937118561380328897995929920491007249937395227483027725814378068656614313522662729173456115449709218545566116357523347917791364984322477317599459785968926059867677139187944180794094888706024434811441989466180741736218150783237486177955921276204401964129483289861238917017023274392857510117504501682356274177733212110900483921050324833237006388387215499261313917181409440587193126068824890102949506220328784411997399988906959803585854107503808603228528147754599954426651874336541352960720772144770774870498961267789209566179464401136646851675970653618683423569288078526985865108705896957773047416162645585291374534440207205165667472293090185515482521678771455450041311177025006395353102107583512805613002413656114280185387945844292847615899602749957891065241351885973291765205881362266379806296698265128230226881281724494983348679401150610052940860540238103720659805408960224347512571499135998740755384446014302003990922741408454047910616585349612272718167684948425503191969881660405741068092522671778495726901470958416662877271054480375435772611788785982874388506957408053788535187974273786042376627969776363670247874054653676920563401614706103991630258104841107249463025235962552778590367366521602874302893199610362968757803054967703773490179425000123985471171023130450818817052006276482513555055121697304391349304485668838527887237367385175500728617735292384324001107611419070406524919246493623112272532853856038230980759390154659840242014267729968721421619614129449900157758467797328530293940988804358857401839125931777178093245011593406020600410214193588192215396015529158875979288303802757872231478509105526807674363503008752562689720829335446749423999735824108983790340561075644099693926674244488768991423896613076861331679349911822344564696534469828503023417523355683485357278129555665326759125993717968594270291205698195078975149891801667337405494196111390911275658515230276976964937306239316384200020928159152859365391237097281427660171562805312187543274110966815429600924803429073035575519108700982862723655972769143371984628593324921374383773970195812289996655204867930378423128029134315286867955839146266193044357313458725983253558150651208002567634312913973324316689347313756998851555882251941694784742319194234045933699050590649183739734785362767113745333080051517055988787458383803839382503893103623125519217133913392459397417874670945144411584020626443489722857542392617055301266377713487345807743447034493184846766086828125986149087387567233316510015702653280279069026142601437453988262344230516133820469274065716619168008658370644935103651828763832031804836898952796243661768984978315033115153483951989170272052852251070663271908743591221788501870633238277382823885804252754978682685229083781427433489747954292426139295448224006742144285406585706686901076893701633858942388830523655953966433930627588727044124245730905861874559838338581003155312432307195019562586410095404859331568220695468581023311937255647833794214585332352180181765165037261404235743214606562519526766549352818269882351045835425876463488204006304342155748261816493146156641319198695485819620386915494065983010515419797277109109260127364858948087381016481361797704657004131497479276682276327572289963331940592876925627712837320610367407134301644692979615620537318639472531301588395400288385476022501504609618103538499338877184809757422258268341048200008026067565711074614512818685327203382944553631520901879088941050990226248969281227412308377407238230011949420388211354903378065689051955597096807707965641628589189654083803434919907599606810672851964860100849659206708054214816445344469085042750712465895853660080570774490132392969457995530393690421308054198341028227945234017959052041761825508860362280966334711631026836626013689252018925188406112417296012708499776260467309958738669492139343895815879752971213550130180731889828129700994724031170860157792652493210188455785528647621131526074089294243070301559230651243818006935925827457258459517152876943553689626401684623087539959607686518995155814973292702211733246681762645404064854168389907587876528328433730585599899242603829960706640843443551412982871794649339633564869593601807262479750899947703003616260609602580547227509499155122386698336919484004886615977929300686451401484296076363795486282313194031296133150574304770095208943362111032724607819459682644277656802874160543622154923100802456077596318372397545462121215646924179977547974351971207362416555546294563007973927358124833264315694504460270933743335080831300198939194494421092452847260571193911320876250233850159426613334854551395758733960180962025965983909881676933557635069935185782513587671600679178555403077423033410745477099583860850238666492113392068406184418797697291672660722807273145495787533129514351921790210477794640110716618150520799160286839718972587531995020688788470501073950761231516358805072185733980493343197679163627984922094651491915393244087520590791644886755729960239799059203090929931402146226571977400649479355500280391717021021857428996532231147322636657089095051195604780260710145242217922266190235087568201811382387219991824079788200119463766478718969812155634984848410409914221792934232158153165860325008551593882833069682551902535809884180142459216626222262098197930307567521509748247736639421813980109615967971840275090482096678880770359509474577382713557610962819233852994046228540449489403153267806200221962027568142663305684274159686851200893466865666155447801047388852771514062594975338324716188081235754509726639249158416796589721299955178973055712993294424006313433881385401699908000754934583387156742322166580196006755762730637242702765230796477359967594065173371316887036952651288957080801966262449688805529657737849392323777801830874989075105182690388209887730229595922326052518590923249696002159759856967461140802041400449309585602101898977547346534193475685393578461139329123930376070489754422832021817645721397339035892550060157721178796737833927031698764486554658500328836935799257908879687234626347135177912877223132315504110782025881658282853904292909378675947700012491185962199607948194553353557622746425958483933549099827912396298634870021368617939486927715945598537479251137497650982061514838071247227127125638230094864506383323337018770849760085199026873717554939343857851988959233362751057539667712374296356662852132914031129865861112333018608831079861904829257862899263357362531468481097479824193274648697531180114006353902154170506796657942593555790235405410841108146508511287784193153782144799729279007227527981462417137799799691472760055956948359420067788606779676096346183048818066840150284153095382571905496187920022939280080616170053718850503923893132492358575857560364323408692461500762242151860859797925404765228905640049227447538090455633660916162663703424671873785883243780533637546107397702013390453491060175857101349658200731323363636172559794240305035363205866249048335564361564337188075586425643088726472831860963692723391632169747638324021708520802403441984290276234558522032150188836687945750492706645842344341002556613366385142290532027658832930588551346370339105903269198232244866886855393371425597087656701369223799476154943309106853789034773702496631955794820739691165806433780482282707937699239920771247143201467782835403658129092173467377423800184613425513422677611108477070939641725995430763026851939146768407797199612957115998059879140623988538733457825556083771778648839255637044185285086078788433257865469530024227496608789985694225704791435387313885167575893510495966637204409052999372099266481396782223986907904893029936587939579142097193517405351938605234074502334242142855360286599216642386390791822105201313166884590282427865420890852727150565541570777054088862432325670015913515985233415812930190826072207370053219933835548442094827282895567043321553070174620290214209209941905379513565814002679257317191997956843204139707063020065333952307985077727302988642287174685562968171294020708481855009956879742957107738656749846285552129332171611398407881346483883502739060070761702204459467837213736775830598403201447105615722371448033432119723479037294667135081412778978219440997839209429777685346305028328046037479911882370173899590124754039574856035489717663100115790370512477623951950039478472076180210685686826079158243892146759528831072170494971613669371911414424356508127944859324650703507254752630439967829862732735652330218608570017844309040595767548803846333424265175109984343751021381122596374223435639609892883816132736394944844546957060025562971600217891133521228142257782341860974059111526163575092930591688872132909849649790005239670771203054797041120245579943566958170441949851839476394819553648650638736347300459036882515092523624828401027165016387552740340938860870406735896350033898978976648856399363509833364991626780686092090922057486941845755452752188358960172494184286132766688089767795086173900407411003955242261798220968358070688168410481886888206147060727728860955179481803761879024500437424826324500376915089986474386621742506040212797771856533553219761935480460930596078212701516439109078016113934989859848182691316188083603987777478479873920521565486762959084530406769116285731505312942878993760381580392501410118286432715542301248111734875540248062417197188049263038667544725484555343672315998467161685134940137745710828080893230607859796610215241568451950174289190526645833273358445139698108362801406756547346848915271137852431784616742095100786070769843404142716556761468871207908406485842790240858138214383913300902042501030636476142671574515004807306098876536609881868445407919722735013068744542215861130156797238932023546146987398704345083290756797104962813066232719681974665161316568847823500723361309935824787077115571137460967777172474484477240621921636101413715851398347231926267903636361929543646843051387018534007044517878381222782781572655274766358986525643592559842587701831467773814841929317746247471514629999613938888487727398861941983801942376639359389333748558577653016831756515481623686347114139812483343551762129877683902525520284379188487758999269717421620157491622222510269744895898131946903588163615853914135501756617270606639859594844047653322608623332915703426596885582841415836065167824923331891504975143063971948032584305346618553126987468745324038465866648725302404541715793025843651007297257509678980504689603744788147542006387948224295158174831379576756546355476966066477781701139897523042049836321875410275464647456538539701304692108659735585771912405261884771748180854001825425953187776900073605854294871054450374738074439464644837046819634669520919773316908416841993674125335320154029826633401803271549032837708876834531146927700850371954372289291315270614766746027569912755742014065584304558964817694262567114623616368285393880394763284800457583111863576493371513368331158558008173136922966733890777992842089409309658004598042720797184784686439241278337878198377077564476879122731493175221959898114102459842579659599216364772007096932295121583547795959330599529310163171760849352648095711572664790029480404372641152432479081772472975950813003013462472354942331339244188869339070013155826545695640951145000013601818391882895564313327353253111420146714253954282896905601154243864498788358765239165652922575687666515305547884861470365053446310277793541214259867312073564714772036165958673448476885123083178849549833538773486692150765405751403291857428150240499912162320668850866319870358273377306910093451686194567787495719636065041960862995638997008601037519458162002870354645542394828465195840417945150810933151015922629525575873618742763947958180904871994218682232443301409382766783640740386477359670082748729739577897974696608002694548858744187277153607688017385212643147331214875071237968688325556273774611935347933889937436335841003082951975683912184680835203361653362107895985470024790838763802697758234023989156141408659673434965517203972051298710728214571019286224727034682148859833892023954736332557773443563499871648006294821534381810813559383782220778485646200045517832372771041730879383087403916819977009483946294564245138345042405409501779172024961012804306682048371453182691940209199563552717390074671556357661945872078750047210792517817377934898511645649788991351917111974071389539898674649249848791247548494216753877419249435307460016673847233834496747451076045145533740738728055090448781888816418934479096726739495272929361374938590198127953125727837292397652874021959553637267051941246372485898166394456874802359785315004808566734808185157567019658563232996407086541685433377279973130787229724443587117785461700799265368836936547682152072015323632524317424374859036866991440467603707775525931137325586107481768056239483377665214339946730217875016843255881313661247292886414632760389708307361068082739230253442562494335574752965119299867490001470262294542437722782250363249583259251931474361769056678237109269685110863351201914556117682608139295973649139159199629743571179870340706360444817904187652606760745843555076111939721910934359520330149223006170049800055915024171500084162211887181250912788886275555042973515235324333060899998695764122215487922967454800955752931834391021120369890661142786928453072131864275037501033446130706893905083484516175556371535935459766822001316604906204680499223696584753485130212148418583439723901176203496842947808851440574824495260846892567046547900340136587018359828843458520886132930574362284403093553719958906753990126307950154579013456357149037848332613348669437619864628554540395390206778032653095455051046791804731907394398123120433712922785537734140954674857320665754280558804500842623790388050109361800005018038628110110649278487472361276388147129675597218435806081604313227034121099443716028899677640102360382331047326566542351622875107555934700403113644045975663310729076708030680794462526382889440397647585715787896737215500973938109937686171722422521631130053577145367491450782806264732557875171782725153773276070903342224749125288595815293111460320233037360994663362411573966129707097630849678099237504451772148571297905889790732584784548536190365617971981155219182063052614114732453774932509921489557642037218113831808623733366361846647354854180289704272081584853057426535171098609455101912947734062175477571249831130077865291710642113183398782458606179517210061784795079246819420864522382509114038425983433028973160617284086235097158552102038366410220572929266382106637435960231281720555615930443993884202736901853181602817689499890082802947667025460911600419269482270929938288706904387901104568984634799187665497159363067521513243700154807276693068105342904816412868367719935586163260163687306851845752102142160143389907648235979411044158293094534153059854771504648254305260519975823879528037278738189061377337318180231149379468965074502797965303792726276932123673264504601496753400778928477360442952869386565146461434248303322358289630665879620150856766388237627617320474637307020954983737370699104918773432110331078720373256457792049950066699813894675417896959629950763189730093932692102944009433975346864365314884186776691114789109862003840185654813529951203293291639767203547643986221669922650127877479440107805667884092327035939818097520293771697359413683966314344674111860579803199105280220102196868769395900424113276365238087767832483357556071539476716441951640574798094402231883123284415128222571712648210362681915508973843949335885464517592506828286880549751114078438331108694172897503404610285350174628011875424677417908876152495664534244295277214326549622269469298787344068353485014982094335331776338919024134428300734026128583391715607309579328969081558563400770762010439048123148134033053405619620405985968660205998193341142151036743528208341886561122408717168844236184493936831016860347009266729196820196314088882741859977716499615676857753993057682862477381626582265018512025861655568106280015502085153568095896241780843199457874722766988101714183554951784284221970495721781935818637642220789764701052042176595070708680435130752054927601867732380147529428185156331324738897564586253759872714870262934570214532831707485888762128413083585301300260318544343971013643202342971328002773647379114658857928561949413635333543719596638412618394205427252842752901607204303027964104898697356843595437249622020260730489429723790827304833820116727733199383026251840829981876895141536160497829495354926559709985979808666773853148751055565035351606028131068907811080575283442080196721570876308125636040962657753072985217331392399690888512257563069482821384922567313150417304520419485446000581312897340707680836417979586058724651131843673550087327999475576886873484124278378487462647580526720484407331406293382378760887864043175497009792059387787604480872954028663751969978930368843347062635532913495925248585122207224899709433237378219991026373547457251464397298620595090814466884376390935606858829668140308799237460809290784762149342742905221123037501495451808177847210113207184245439529814874405127595061469106641582750454086038136099859822203863432698769320653366717420925324844858516053618339549058629775272533722550105131976247202525021876443430519367204075838600474267454777821622902942305759682673172541703606524688505364083128066540284239834457489071982512921030153548955627064234937979658375112634282635491632659619860645220996362966926891999001578612896683969837808835264485180012237631586626074510879390631433482041918579632694317678309152141376566983369642672424165740068238800359078467366864200988807198538908802240776151950328697644862066777529058136907594006875570690810616882539389145858061835314933355670316584605611348181636184686009025438174928011276906440851803655307078027940927639035190016666999370621509948839562660655000553653996341029310310679674410165832823500151684772538080189905189456723231844264343784186160047072521807528062712745136066242832996172517430535541339705268867002483084258368156357168634017025082540220448758155838940749410663625743743701487350997733734837102721461050824089176902458824958807438424621685781313797879490442140347424189377357387125673087459802680781630887995927475999150935904265076308646996090120575442048631637831416341117369856799175026851846074103319005002318259557468629563930525752711217380371726958852128095187700997382826067854307309174577903399468096701157831931904469136288064543386761775273389067067917015872881570618165808112373888176261329630887604273902752716882975097989363009095108972662833837293254071153065755208869820151212983281840677317671873816508465227201053420899791701832856349986836132463432672776948995504515187735729924791449843954559761849590606447325025938939004205848905317576801639484909666428381212813032224274599669244426293734225857405493561784179270501102922942565453489618523311527350824596922504573276933228088036092621717951462039563764006234633475543986595446076230358839273428401470990161956894341778734116065017987297517200867149527926379380570775251947753309353032488479124994025406297661310989640849137058073858576369081986136127530480290765115519283395076163928421605744484344884291704234330515038332684262062311716853126328457778564138890210971861020672795436228298322774036855624876011854438862750014547012445951454053347225086897365378308891784666373069424196781677382843442720859320914419123895027069806540348457708477790250056442482280480927431224912845993266915907668240835552471367833228637250329425998371846185074045478242825415744471268969271029088213426941957010936155329367253095592545243762367935025235246124169670608868645567283017074468398932883530282304384471843312902368748130474599510098907885927617802316223817453223971187165437109377019247643743340761651582742720046586452766668284303380212846289484355990206284904112746002275369401482594769353776118245198859296354343269039837269518544805597672516035583367452807886548477448018011363437508837070853890498416801562133064665670951427004971895008989355158683512995479445613688145349327700337743648129434234468018698965741692155401835701163231904765889797823394508527526759646148735160270544463730410320419986114210237675699299826504574454457266910849173274007686792982304872991129837912288404863112452569419606875978232231856984232854902130178942790336998016743845617830889348871663288839338899236348457487790891911896939279530114110798801880712117737989851118990926177549615291912261208256229994654589999698619930364141810212030777930552409651884299606338814725809859671690824813445518187275519029073060640532736080227570857025569268052879882378446307750524143564214762063747622104970282423429648920160687819782558322063347768774802890251363911738553397351680359070950182225495156067678174230682005104211512527094034481782074084300883263418162330084978399187862064891791975515308319613742647362366948260797370964027493113085527033375454452379004333610512517082242957965621690297144303261540631714290270882640937395638878939524090290598847846302245592781845709132653742998973467128278118397912166794253460504033428549706606616840755987709642369118691271589171396723869099020492187592487782843154813408432801980420365010109852121703905272822803840895895643299566432540327539013833634301325612206321683433565627710679139239440043114314740076220546984511488988283952258930497075160456035128408280962456579912194009186761667649135928302321076098124081809625214067597304728237968677450681101783055468982387465167132828143849081274738129159429247882089979623005993949431299337365965833976001295458342953132632775500482571172168520461173427470661846001819791385752290320937092624522228770059323129891637106396550230561020946666143975785349249368398884551635950156350396983921438886039870835927036969483664303148957179791979677746452735590773099516590818950586502908993606273553652878711637823164559641369937100025104054756111198090977921235854187341048236630201794678272163635056883426177619400626835659093484584365945239874794185413034427537231305556470602924111469442688347425806600885175352980203994692354150504002779033935996227079070087093631683240685307555371678338514953870699143861537840154853469312030021970799317988017093402556028585600651356128903110147600506306426609216144075625104893249054491912486392775087297071574996788327891292010733963609217559787831278175399020676117401365815027221398195887205895835511070887868563340654215108888206127559585507087084414802608847386688172084582675783654734364902171141423506911533420298374707803889625516464054883200502143954990120878161053078167685154109649728780919115929894944497044671440536949865543711437159431847180552927701437363233124957846805387423151695119042364014965981692304401695225171007285092661615542414037341119993441545177432229885685336449347126485097162878032557058895657071954581291444330979215277509640181235824698140809022460898883375389239757238459439425537798715841490089375156604873227369746035131547338639804771737456046202444290798908164013287229027478408685111678112257987411415834678060504538538520394702669621310788941639698186948042537126294060679831828900757429449135779851665624034204629940936564258914005645941396470772814311320304969929767699058639742198657118565925693477977292109026445971122516516961674823787673483493833174147291146470788632278678505678575108804571647394206593009668204738170820191297876689387460378127328145958742294251881948314419973564789583731155582161248496326791411451212627165573089349521489135051186882719904805566658502611707026884335417902340803774366990149530877997218617732762521724236519585868949477489931951213172643449120031810407886698598620651150390735914790002310885779225502413347735231879308489472227952758395426699764410538495676754375042417711600243526600079033437213874188508954360992051954168640558315999898122005763819139429305767100720307823973800572332490217954327730215930785031706041926916877870188133121564542371265279754164585565770885133399217738868067074133837512142618968121399634534369569080981368381580782705438608141472787113344748653848413509010116579432415138748552670491841676290608191938683289647093803931612735177852348586906397882528987866300750089638149872130445144988379265475424789872899019678985903413847666936038806194200140022289342808731037320994995923525397201794473598576603020476537471346063887484307669724123823324660234307623331620007314877255228448714402960916657318841610482399473290771875608958556744940295828617299807284262763040079912052782102161120728802649704495427868558342842480823285296273722164207568732534173758385909462799912674058797093190451373603064358870372802049645467765937994945759644411165334307538436638627833489781597197907363505053811526874833120060975106550190351799924589987172559000329568291774708083514008382353712427600357242155032563348887312996075318784011636743176838239437189764264313790016782004921128940965330557103400960219054781926348072379823020689380648331149391163837143771351084177886637443541406816966495650411977078307869756609454796788153329742931857661737968035989716751378685160657537088388383893048080789826223068755222554020037406131434751804986931578847955115535273683079745776846793150628279733380165900694552021919052116374631745909826429413092179665875717876028525088055573763653282494819747708854186359412875037426050933327748938793921930753050967512302902013113283288466646585036754266044303272749011560099886446231054044765932222287036037253761845078655662094009136035656298258228312237137336620824700022326087316770686055016473375963757094328544631468655603986852784716038354832014662571919320622085407199368527544906954874806445620561269502331113406441286070869844907360610657962340009790697329030810911431621344160938951076706097098380502686123429641774337199504246398289669755839838078853670226416223475507155466211695909336477472912420834151765386510139471345218612235822122149394533161528274287937217430660440155685057363048708507667961973971088466400553722319108746160396529950042233395891674386987100885022398298169188787412960775971015495223418177715408406049473844021599707282167670521666909207733547925537801401621210180856140511452380206063087130394331284030285137366657540041015773743763916379421959383894013777571564456390835533028876856772841261091228932863391561150811120686375049131689556797838815265826898076032602915746375150308569590629988863670425741144388833754106145797527246414605943046510975347257582072562790928275009367077320524416386311962522645324847333905236954974140743673184188307250713556878496001821815093421881620707011352189317594090913641570282203466423983663215334148653462764831149616643920589107490396870570145443744255724599008341017706747295049150229280905542294916953376808586577244071230078987290227234759518651657322462393749111318191722112011193106780387849318996963425061145774987545080782982140940431804004179161354287410475358949020941637315960586971796105518590034547464071706778387177370393868001149574142289125725115478814174293046047856948433865181179404232431205591557226804566323782382394109024149756401659975972638972861075739917712597540383576985180885118129109338140339465982431140940646474531726920083386700540287047243301070558243293586771732261936334089061398498362131180967989734957151647351797606468699722760100374799343449125797318805928837007619436142409357255891504215328405843473563535858528780646389979440022336301258616732865475345246067478055948405975332591104214502258943986474465369270975171925277573546948792523592235423256546210232004910374167254755513601165789850329939808326444880796584693331929393867566921574665892160394344188911209835118251746156156550495131813727234912646455688385499107546045336892271500076809072007368725969578878839303877848986465793867609306189647753426238020504870657487383975089074014956499907968591245353517345219825690818957116459472796512418264008273634525804065364504996988745605896966088351841253372342809706820372111398820019931988111000034131312479948915698540680932025566667969448166746093149260358308567049605818068368834486380062431653589175430013983900752817119376651616858812896580748173781959748249817556828182392396198047474568923519350598070540556386594817587083223985456673642642656024169032916464582972472998112168039767747288487977865561173539374950234106005266172428107700787645467143529227362209078138991347774517583379422281776151749420681131096753457121416535776762454128527651147717395256413620622479826941135287409526839334589691699864009384067044839872616999517825753696245540165460677724487493738093317432266483400924837564913416830917955469251565751114652093410622007517659435825929781910468785081685882158879221578398554402503546395058071607868946285207614834585563592853761404402796169207981946580662102621824784997736944337633507378114277350645339109341305133796049440223049485613703282280368910555684846366144921786981363429968251071482804594639875554062402868500345774691700634726420805015235450522783194455401862464467358907162228920997733196725915741422240596584038225139826972012888593186823849628736994190887771421036623895726535325597057580617499659596683603371166204349003808149236459557557689799988933862611945123004700661912065835439905996172966096387924202065985758880037165492265966765369597594361656888267132808832482052780463705635635785233732341312493676049721379076435718969289668313135500686034710151544348581238453227253454080654156492234339333378142847988142822516642235061161376158340112035924799508940913535543415761816856815220547162510330569361707805019756816430316183846287917225236810198253906894986359016191286004695950101184755714756692040286090149086000311762143422069960585497411447119533800347012411689008443520417364653360477198794377689328908657742938867889952004153534963256879577356393143811469750500347423557944083829155394459278828681666486412302801771624405781320946949825182043904551362067560889544478949330015569268898456252079300764289676067784818437178746866419681623197370626192287053459671195948763172794546934519235824438790490901597754915332054006690444298930369171057985971007021168056260909817770038635313844696250416344306202403264877559870019998431468566787885248964343378373733372364409086886248869695417446397395775796949697534563506602750944202614467357267997517600846765089989004097813982951396803945335106148921837355141874838159397349064353148761813534027588168209441372638842061359990404061288793534754671268064644772402510794640204709030879729918436706885252165701890866956303291651715909345742521711515124925677551954421065413745778333507094089962461851984759233961138802645958464771478768116023618010388751652009478250246396318847851694452029532650526029224990597865910495897670339076052504946006568361111332979389674847228505877295006538873998944628127776743054249322222459928732385951588792047594874666233305351547467064355172183844782765353774101368115217860914402059121906160410071688196902890176446327350972271632003864375913246516736924430223529694412336378374185646440734807016048796756308035003281935147927184879778996383187066007264338080534029674750847204192520947435665237580604194235586072017789550699385248857230449128474131051276753565712058347274939222228871653246259040252524367299768845426140546780683911112040718627335352473474383641299607153569862592918926506809196464453883047962666711628992714502918238703128278503621426331460672664398330607781319287682557242805514573792324408818214823254350548778461034140074522408038902243452201743391134644313701007087291631625114329498009926078129358316456068774944484424608188604035841227733370959482536625501281656409584704230974460030839233185525984329065407811496677320080016748869908490539744399883313555847721907135523532085682014502861755602492536955798014599069190625795279708013659159264552850596786728592861863368256261493589108228998240695260648111143537850677200083104105246645238062492837034652423958420646729769954437870247655933249675068079026713058237099666507145690294732482488916295516975782171308303780799151064924499862445011874604404163017051870985429414895937954979090464313383230839613529802047362042642081161697741729473831080928511598274750329796799523254132803983967767697497799438800701067416117661344372602761873065422976157857830057729127252201062730279818756024704227646980632005479799778632030750718590675346278742424242157630051217402425291981181021215217615786552080841038603398123305991789034127296209082402918405433176863851491353598941762720995520857159554633298216666474690420995690349232774646616026939430794394200009867309313552398368457803564728491243985209986285682634369211799854031232849938975579202770624829863046843068119253867206128459802457242973778480300200419941738289971415544537769138294811993763483410735304400240265559499176964026306861751192024204197953447436083105107919410060488064592610710401059389814471434731572400002677467204797218661894383586120875006155549657882148022779968424833248021356138762446254859192608475407660506134478318797427869639005651042329275189794844761795602297585975995075623841587129442881575581991107339478892117162276054429408224476030304726174647199901263064624102903304842337943050213205188427257582786367694131390559328319096782010027096554211995970511150760410086357506810678246500831115238700355594488335966207673019690824871844181399153976256608543903948465479270499140433926499858519110409744343532994934249923421144057313343799177773408212867448992556829117319106455814159465394168775315065787207671531631331788969639176775428739872159576523848593680403682799088609746627187400577870131487372526029987893242354631067232047094939658554662038141757509376953919489564705355604296751257162122800677782349307031889908175937476454808798643721404682346518831653506319415342261512854875772259342749638178459189476982027501478839218928313143870889737718212816785089899626228115526962613301023844051306616778956651895797987115628450056123300545859363816507359489234532324336562458715587013349296435726514644881755916427155255328307134995451790683528104901645639591399333929721417034327436914081916265421704201082802604285339515595166880090415391416004447571013416139524965008460761410105098753034431583935353944205770287014396243256833144311033059936116023367053717847010071772642370127408581278269298051473207645755601905752222517118573386592871188522551567286509525673903233843421550326987851766333066911385087641979301886696382462161973829116582250033149419341517886243437815760295266372742432329028335199594567784442584230283425816975990157075312873106035538806630401353652096630082293875531822561448760579957697405486255602250261951890383588606647464494608295667223631853342946000015430999269658364226013248165413050570980421369917052514267483448032034037431264532949402019115947860443456050505918184132960425965523540067464753285107971568556998762341615168710359238168414359195062549784880956767705847273858861656326624616378798636751272045884013181476764487658548563941807171201924944708064401738338765941126048217673948559586392921009337624641316865872274576997034623986753502448200394575176222665338432189941204682997104776661530939805334950410988356419127821568499193262038619500366172509503257757502958086322883788652963557053904715995701425042754183669847674164786403665585783853755442793000757517024166386525081057209136591589276253308581385412388760577887671848645956014867569105503607294514260826245274906438435339704956396489341336336799198895800093952203660227930332601739798931640787454278856485192802728788966808178405459157169011024167221198332214601523671139355361870105358062254835823670390699215198561430206671280209037120649193038896956100866919227558160540967851955988620897420620273467289476507296446553667164400863262956348461378072561317018139413342586452725395645272502361969099761052368352710887071811470182302036698168343273965091693202036908869662939952364548169051049988160234811928368207438808598891357380799333806895439113744859543973817578817041042784764634819472220125925810574363728330736970095491728080320749180900081086589795131529487656698955433847030966407529574776624722364352289500606150771275492927541663658705822449248453028651122878419791053202050358206145751955509697427339050702730005198782343430278912300135730784311228031149065426462334928098466056523256510352627605035606879459596344575652212722494892675606698947620058922942504002453588558487043668934353111337065949804362709778799452381825887083272466406411385064961416047624166451637721825029155505358776638277429400682674053043956350222726089873326037656840419946060949535011839439759989050239723779112584092879614712334717501382447875949986166260119287750138986502962441371367487488890579559354984300006508210030138983665564842083196383230063691264347002771541598859804231688133697034883744789158782371599787995734195573784473352869986303692744928168830103479634355215248313068512689073122118280680960768299648197882002254977732134009304633856361771992697059729641151897248914096193614215044046336921529061988876821777063433361646148051098621897160088773800768196553092941881595000515196762223493655301946579076208328705123961094523009118674658593827495900879497955423649396167288937782343302824429812575742593318397803200635438605292441021709608030481438910996745136176631619880143448755564706061081040361509185890760760871872715816564254195023466946507706014291916706845720914685660461983874221159365807540024707042297444537110331309121844089280864613053002863272580205416372019308651176445360452638054726109322719809035810758982789151524216781072356680361162036374578905738953911769919772018698905757390066517761995146448731543140933345469876017369946947374981646742118646842432098823000084429005985679019618576589648283595012835767109576309354047972407402737304285937287662776217627112483836550643942664177129049634452648114473097874692274724801444318714297052869950615239335104936889638221653423784755410739347722262163548226641699235662908894257541626131672420274163665625364757835236138939428624743933036154530970098964055806675525044289586669206354854597046562159051586747823933268611728852215405821388408748840429855109534837313294067503612868378262535180531864033785340521045957556557728250736669574533396907324354555249334553619182148210236184006052146759582297316887270837102064916486447517925073598036705256404736179117747717622737533324821657408673824664486124796317704492577246763552399544153502511273125075131949029007670049082378931078649979297434309329207083268879709626946211319067021985832648799612735475831225989402669783105866690527590589732175156275008185414179473393495979216838186743784277052536898858551553545648711182179178768640182874784681357360876879193090431970675932390718563759289265316806869208546351249257548052887737472055192664381913642009665410196381461143702761630055348831823529601409792241560567864837610576012141792818316386638012986972408293972719430588598317775537922276033224878500479359838123612379826030416797631378218855572644761376522378352312490639903942225101480701459940303742560858800143776184276474459087101079819097664046755259204398854347459427833397033096972976191700467892363306337423015523935432300029691152933041087864491695795126770558927324775980787869556466841989693726271465048388954891606914673387008479429189514166673564192901698047445843121654341371216077843045836710437185869819820178096628372411538341315405612515312715892657705998325048899014656303480413626290110169417884059298098925458366126164050960310498012824421562884831396685079908324373527341193561134606370497418921572177815449140529078350231118129027255773272346273852352406132144958612951517464129709653782267613766514026266418913556693262645343644066253960975935708762422344409614171076296293604363073572979093307364235226237493102594311339774904898078431962341981151287911087186063868189937991320260102310820608482425898621536613632150613492471702987051464240631201505849800452073923980985616267545805333823449769165463228105264797746859182695634155016506046158098985457172542304679002651213680003388977987757841536084344019770768061804017224814112702802613227012411446188585948728626466324139057146834962530786858142004742988820673233114603340102704284607986489064026190462828902680494584685826438225853514308454590468919354904891608804101784020052802073439578475922582799529329281465724505039669083450973322070448523348990450899174248944265764749056484125623549113856214677583013984398903285360642641418362340266133112554433083270280543634077292517356594515697530659070176445226429799967943605672039164560392231347781621330269120453205882572486068170798992515365760507624407399095469072260548142695243506130367016988156218912861461591829719749002660117355076918587221574743871677506978246833398508651928253300217524833128533942822220357774728869874616292038015038941626831880089830660109282909606850165773211590825967335462343300268143555921696714118325314265840843854902546511209004421005712088437497500495529810659723361846524427750698423166359874027286652274158966244188884543612822621149317578785281030488115378465619120041764940785101700071429615884246501105746603327120858159639886224062757187526022205268222038215747639747037692799975024901606460329344534556653868567602255262720526528613328202302593919982432644083814002908209081469242469334034388619360700234500972504474775913406408188857831629256761442425020914854255325747178189552449347593273643366560103222876024732370691831345476404216853611777866153366729029960069434312825113990506670105457095887254794613785940875348527218924308094307884270355212733892086762192586758397158120713981587532680013329681102202253134470208090718405363844306993499996850181641131028597135878121490494077144235240372428013217191498099974152595088820587202511545959912028807413953459466302010136273038408240555037153969279021576102320615938050776605991571841038134627756583246779965433583231180008906224864986799037411212038487013009126335864479199852647246700763534098881967256424067865483115923218544519142494870514462642370411934757011000124293953822465087104001534908191045412708405224646136288746440728537138843867680523422562069005910987612269125474958360478113453983375318294988621352295309313491429195898854458817133736241748364037656025553374630299713011312183022192965056235345694957422988298699879198484430364249297007059872615687255974183431414726085259208471614675647724540211868880986165803951781597310400621439734460683167397394559597759705119380623614296714402862036933782992193984474116741595936047143696927495634599954537632398310935408949711749053793002058259204164313821139167098550841669266033131789690187018462224558301184758546581124413587142075257130777882551466115444498565856000157213710884586759611712191513571768328287999082412465343655780431417734936858704998127789878458211285122566959243515475813721023782338177501958413341419447094197056860134441286115301179432341260842165861098123904998345751090887292034583596259648879520379158113304913920378690466236429669051619817264409707374435368808357212978942846656036828049840050311490584431728444018438302351861387575232205143666847761666932514565480766372428364632666449946912447334407363405529916222016772370878059107891408511287268686355398962590615559909704032849936880679892795641347218125055244639585992589639180519975318746577904815978594616507624529209179867768473576273956485460922791973675877733426706396860090135961516598638932494736102603158417956687673589258191647456083485102110748884224887716442333545834352563593253588675479062140863886341557724424975778596903219169530805067878368890768876914201167243284824909114964110117385942362663619917337980903063028916358532530955833794740522571380041823963492320733382406702820914550200377216313200429717752204660202984316893519793660066941822133349928031893171290415739604686617315018150255174590510712802963560209266746328452161020530304398501705337845202379173564276298606703665879950018712818830000795173037685367354321481749461609856020227072442466643238085097428925433203654242965023504451189014466780354134247750127609714101448367551577213140830845290763147084861465972164454684822336402141614557096006685026676345243212590004539266754034325533953130982599412617992307499073825777986060599953540323709146521949196720930828406014044174336015539084859444772114357971592025208672144079604965516113631543929123593757792253217050487667836035942461595465198991066936867612990006759650103733689897651101135722630611502709394665219382391424013518923269984678319670941468990204727274447755091530598298123009938083335340655862939180292757169925783952483661830847525887307855618167640991537416737165803683354042011878746129495315858809496286848628159224449865941086597576736454263797791411878907402688678884033948443719551407906875855758702228969468347002859372157324561602292715940376693826132454713216318225070690761384023993017259495763379376813395689335820747436410283659537015671604254309514069421498528761360872968879879049745928915510638297298469476252756414723017517587440552081688425379442194518355564207357296609563964824249268624098329733133705933682790085079958317527546834614717852243703068276315319152520153586329803816363515915933513297690655582930777753534738611214579441596979113908081745939524160299680763032544574637532023023591677787604238700128463923544839102108914849610438272106437370216687812330368001658652868935033659144914962871745176191982443016702669274445206613875112925704164131484787303917735280450390655485403983540762850835232418545801737356544875936499632125072777162485846793895817331735510796851417177368866372695269106314919852082490201923022875721194021582366401312658600594192985394651020361680206961218431798124192381261390507476732747535544680922242687782918799148557694070171290035077104352578059491051931099941140411613440512544127545736281305432518069389156638137830363708112678048817783660015242380513182704818044103132816297782498208169006670711704069463979467503942863870711669445949702622357019118840031944394896519767966542048254303549109033303806928483529142168362238211351111027989433204120842327679450800562012508405218131061704662553619266419440742113469094730282780390452502261546279287346142984755946564223990882256034213950537160192198565287478147077767474627651303110972428841870703404838636226392953444450242087965470076666580970901988073595442567565141347720830367590756051890967250273252121005462075080147167505503839875954390473825512385440370182732884507628895629715820067682784737006366001943074235466754384015614010631692484406562486024372125879624938961876324429003087503165793903356475503923821438868940410066922754643877989613394926752189587486172093290113010745684564103399004286686741517297350636923137860037737021668909220159782618833205710489033915313900810978852982472660035143639319946612975141346891185355118812647111318678479878745736644615083633131165817277565264095787796391061576028027873407802286514342685200810903905229090816636742551446877124750997825190409108542302780647266024099919038336808845600673759605421997338421023856497971781298514462254743538201601250056975191767173073248990994451798547891100419946035191471126126723154051426145115891134956238555731468450051292802213712898805945824577037124993711815144385339806752400978061649575599354094121688029144826506091457657367773286965035546269231601053273917667051788324176926463356244833006268133132155070399363993265335643080428946246482344293949675594586648096806069929407944800328119549117103572708475981167529128265299976586303581913501741942664986894668505812528883916290814984016203171089459699874039930342840250666105412699756131151514969376748968576198495116538770656521937448354657041577653870054493554958575567385460062987062095203659501655617189376824126081101579934185328742849510024622593500625391617906314938644816342900397113272403144698280277899726571065054271986698117730266292666006868340861854820675359470287180527236099104044170789343909260698184856772907333234325230808107826891497915879752293550559807757192705309295337062461584142263886337925270295029939812389842430282966353753511852393034440279496468154984341363739666142148886626614368552606747907335058958232871017053544253413001037500584439209580683830166681546312034865581174821786358024132882102493200805959143901242557735680855314074053981618384582462529916647294743606615753861096853680836233375894497901058017828783802265406531401077387005815522707185991022109528567200387838317483646351625149933570981266248136648896142526234816168364099805350601105958694271382707283308178200674366027123687331620495811601507596234667131108664050962005066844577113024331442483612541240085970785628725418392636589063760198079640365959338246349967600272275896735486111452941648793399201936395911660458671718288294562139510869742890392663991869602199542600734985385209281862068368400617512727639506093043674820850748783788245383729375194507533774057979556643050593035924799416315357662968091114639001426945972043301099509449402699696391724396632168783105195014521740598141255493461506532918762539985899250069096968428893367722772391263628069160202230382053383245417481911420986913951062305706811405132881153307585074745587559118527883347789340409417560071279066703944629636149575561270695652962810252678012684334316018382252705124944603799057049267820980655745372451365580286098775801099858902306536839409320209089456163769083101429026542600180728246611996220460056487799157159183326480203583575716784084255788299278093521245172295159429053827948380381840489166319953429313668086139783567861177636867732499407820409575652873939207341111905665520294493959586479989343740647447933533179285978405887407109303788927381360060862430200596396576715501656450803137250749315435186402767993181431468289460258684334084989461566153755550248547491384556497394241042029536610966988813628435676665370688449207410195934076737895516453769142447109167666160734610217584752010744655957772451049784836608394846772581730263752977941383782249143680202939874187836293167416668834891732316009242599633961762794945951414339756225344734348060847477510001822567584314349597193074724135887225992618365290603380478532830472169164389401632366508939302235179620508463674836652807855838224137247893951165170359846744496035919117144712768568586744206979779983484881137300241325572234627679616669621069906678097459161861457664522494572296036371690641306125756014674638015709627188519387245553916954196630653895777462117656258492777486817114095177037158233555229401026361041573090447004675221060590620277357488149165985210430255799940945977026391847569331068506742511839012874415611997286707129957331152510314582894410432160544369721873848393607652240257478333743018848381646348920761850024349793794465578671692409417886093565544583893521303172062350510444570625991897142305070215027469980495153410802520328417353009428785699996943700654585817626864151955351015225960097447636028014500472068484032285077633640600215817627467825175141740606398712279376851790648207718608783140319075700138910685067425126028321216165731030351572617929258889358560262872928304111241584891270303316366335337394195001637943201133478822195546944596549931269216024987828605986944074631196901018111207464638078851654874695819662415318554098279935286307357455234486676859157974961451349494934401138991521280459298476863832274906322503709115123162155713688550742883304770328876485439898319862436853088394709976854954460991664210156341950177509328607623172613089310969742922766145705598757492444685583876160059348485151975005047689368212570157521446855571522213731982006490549630125699896526196553771935228829157899166242702477199910827837423387986732324735733992459037834924742346660833602482110272059197265547877960213651272741729633177700034564732759704296639379775326387998485882799879456113005321143170971746775431496406862516466103771730384538530860129642759688154097891010232025566363916413552696914246564173885860269533648060078626859187693701639172707125861189620841866476384210413184867809909051970257307898918784248445692848193205371531294151354185777212032545665057417542982317882924652680949160355330192110942940770519514327830541522070230635962292953003054635130087426976036774251050558839996968240051078685139951157310382552815844872591105148774422339452632719980020481231665009518473718762677561186691086889110525263986576103420206431391626837064592171296071245909546643268479210175251739915896543336147705971810818745707844787068825350082653830192607599495051886111533031408115124780414162049775328735544564743185825341438629522724888581614305280621368919136920711361831367310158869917551587331949467939913054753939030697227527331168752829409038703472045201664856624409333099283875694254597687440540440723414511237725741914690172915726174148261152019692257572018907551909151827547797450970696141648861709151603014343747186923372952359555238215228046434102428439615820546216034887625924241708319589317974536611796279936257951779733587568060062338565276078349230805140053920972307435527495062895648050118809859403502274597422030683514478535481717258413365214242987315142506756262037290444719788376458264869397796008160913768515358435646659777164572718064777093001467021492829343925236233740587649321667315939581439148904214647736401587732943939529252746707499794175698849678614824580149910082114274129408679986747586637016370925472492003455073705153903842531964178963974811579005946351935571776216968305171423981347508031273621472207536211039508803264881286592302976452817341100692167344031197203128509979317242473781929153626239592010142399062586027571798841752940941874657039767649292258202148579102160587601369577427121733402552663985804720391723344979113882156952823111480402056765227226222983207484801827867817020307398854488730699050448156153138804228965048780527537882124883249746583827423315629245827743614488679204885547851535123871952088696927917034836747598698941420882807695414319120895831137964550478149647875715912536964415871911173292293679355971820418342189780876918264933709964129519388781662545228875666032906540972746907678831610928358949086383812705499043832282829172038578257627385511835888198252338931238707599157045203997294180944554198119703948208430838742265237151052870802164111477099616922365668900099337726411290299793045120855077290802493946139676642362778454467078443144762798962407470662869033866087876933770420129501021169617633095756552734956915949257737512279462962310150987113388935058122528294419613226911326385792890303107703667182776582439985209295262853779738972914879951806913292495052206504116138569778910129062997890569798307193982389828916236332174302296546995081435215991519500685236533053894008559509339795079101495343088412350439339782671685380936322061696751630238787001375384232942722403875515771331137084454205278116507794645454871532226921737233683721933481117536258012373868080267875492293916759680686445738104139364778706589679793971891488859296954475374442166334876585179908364538792558735276045570802403582611186081044283130702614329190335561361819067244394135045056670566659285216053741834730681202795788038060789937407771041347159045922802656703439073323173424385206412736674955252671867565193046473264270672985979626118483250761908682398105549958684877541211230087990489492261367113589987538835143373673865794704489534879187289187082560690803448338082034893341891947088964520231310765586658753861395892314221694208499074648429909852654016325519314339746788837039666617812083783942439392729495225065145983005590744790591584996634541685487093748026562310692339416103874847463766282796084320362448882509658329654694444160502756045431826912758720154192783415657027033940762703288247775803656237820376440318102514590237806236381677652827712882935056168003509563930277537809630982265732151671876673131801871981086983410493345813744955138064756285980087696134543149048939934751003632680049109956586089495167549865056446501580006770994897573419047572195161860835574355611576128748450932526810286487693313631765372737326979460233703977195899892782915963566471504000138651949821511109380206345565054068733448894810857883974420920711733372238134098601564892424676131693155558910974035978092734759246135995969980112922532333004401723131744325461502403741484509741828300543831072739750439120220778058947868356494915174481631335478550081824928795227926072576622724422992954272376112219765383572382513938200666521552524742164500780630025313403921929606411970859722992504442013537780544300704557671320771080305557986507072113025434241955015190713917692187766946935937205816457069708441296476833292251525165469466553777557873626664403821553554812427665765780774534681134290079291301791220344356924965982025406641917532342498837639939813564847204648815688458802906676546399443260564085548565759425532096414524918861944296866876205024509389640100905090691191066519707899092284577010030489215500231912363882432356432021240412046294872753493953944178530899825771164248608098570336001114957224047453159737350992444969174924290745557992297042579351904565525096614261249182239114541560379002314881480651151670793553972795641169415368759385636270874332454785643641169440978282152941473394954080055267599980011328703368718118392117075262281528487613116579034261555323117292917506428588601089605644777094137129779536188773782522138082737551203212359495430277123809495639699344746011406667054435077636744401298683638358474655293491092140895825728674936600884390656319433818104811240870368255247503162590673834178979301352758904816664081282585729109094242523580196835964690270172236628892850437378274663472485429423305455424316155758941632457735272000693184658287739998111763028415111496157046461857025683946289910031339031194994328622244144576135726328599568691898412589791503950545616071172662604012182113686100708243653548278459075361676070477134533678042265099734384491005912500871193104325415376423143959360638942736899120057900738145583319876025926660642666888322392031443715073001290829161219946709574229748545155657488359067182395899540710771945435141777467718382815180773215617234647750415192818658731429407917767762394214050887841692064584438567091696629875106955861351631395498409209499777743241531379074972593978761653483214182439147937574218932481319044424937328033863440392148790474207895877770988711434370345834591387167503569596307071715872696217158930144155840624603952984592139206447011366151670982489442223633832952863038491042140662716216356315950425027748275118418083205023037503130352179177268486163444748987974882329808999751995344764005015288252147517798164544553949725311726719103527828692113820635503090831811909556329316372957497861678453493316729658893566083544607552180818465078214806398220091230332399955501336302084340337347007544317884157422199443646681953859145297964204373897986272810349456380296450081113431841316195639173543170696497926425862024641209062561694342886939673672055224721908156154004912300116738177316858523584678920199949322179061251635517492327105379959624272922863390191977498816313739130679733251499310575049167906441020152777748853888188054920285432447740693057144686890455073568221552708574432704401873607507548974634362532669840501548254688048014559097861324861171664088015224646453937386426491081060678013663471653875297239250854885584938465102089159027301220931337616306225246065728363039308450262220766274409010702405435372419921731773497013076417335777756927224429728301806329754934905531089677597196103973246962353054325931473759047822593242600019763173354133493262803488903252307595041762195974474651451455366371311614845707956603634348507864433259553731466811812934095336051907810333086720798356244323484195710484950273241725128165939812523376941514911594127538878028603428774957535786133663388269725506476350211430947160694391526457637649796565539279991943698085923751483946969939715472275103060927670231886536926712411030039580621823251264720444236540108457362834272083805578414138973189271910545242820302742868881539803383515046633576897642067707082800216563277098783121575835866361429535003513343371552017138620970735084239301777004738088813379950292436691200249638475632189856048491603286466413927742616114642015626312937665950495583933806738251010383476613870764104434439820118187494683541344540175270264280393367289236482277168891580691167281064945555200078667555353927011487453897471536204068791633011890039604358397237544414122597323788065947448469923125189194534848340405575999609376280408721999032188679464279634897988796196990473660903997258774085565850108332301850355703824546508481872078368781842531305529555352520043515480274649366765545435636818685913520783097003305369565867641289760585421855606828255104509651244843684559278630834496586760112370523135739817588285747352244460865557121519987850968067777519554423444689467495766152089827416997152960275104210555080895018234227570374614295769328196412565483791955074407789298075108214878938513227646661379444935946536536088055770508725929727394376190677139437924877144259007114964239252335765782254523300441115744284599142102205961480202598246217121976020619101381258151765894641068124155710187739462849139117990756225225786222002576307745770926392450355200179193100527891324035817888615618864644213237003625682503288088739693429846235488750374032480833435597978823019533878495258424986353804303144591720325939288020615733635333308473406692586754880196231517840804119618867942399218578912475699182253645957527399049505914312340560823684818896014930379854843909250043150010903842216114640200726063686977777571361160017054114565052747572874197486747842059150947988465802461169824463909210696454255776462505779016672851708404955172873620567722481396096161070895204064736078987967835305902538598162485924682482751070243712885999090832154761459312160591037278631658916325194897691539858118092062029310341706634617613941866237695442078057123214463308681493281943638501925450668028290636014045349973739171920955032559723416376954324709899018239937660715518978679655734629054223039007044983700189358417782234520764610902984861829902211910591040440552277148887356518372256403176598775894267979120860758510635718057578856824060033561029112197237236810140088134079853629338525326890050490198726945707114696601387879529582172988206804013051898123413237568442119228902460604896423996389109967422670880277098640583181008929092929147903416391495514414305053490980032820236365095403163633408701635656211452427751878021748447333372516794875018207351597852310353337869345725403771072636104888602222608102866233523355374910458138597063900765901891430345361291414088670030922168476138574014747586424368925918064244093798444093591683860076346268312316979879573742159813562210179124705736449128927253614957468003183067359824572222522856145624453291448886733531330792466721396690642030024997664749384736418252834868240487898139153552859159577140612366010320300944053179078206071427887423493202014090422539587084784744455038826611830546579050521073477368723062911867380314288014539186900780485320892502671322413993389096995485007275657876182479225043752596974954754566166960175679869120196967044622070839988274324226351645431153810626421865841123733592513974742087009210728918807042460993762078165712871137195700408587961373435075630326787294304328664837996968171023668998406063867387612521517988547197274929644647284147634130042703814617385400749078052829864179581940876830735499877801169316963083053770439586871238090280649309869299996829552168990033518491017762723895527616527684264227919574374162440261939487058736695165353756251346675346801253763513376975357014623858784178335762376027325776781168472142654989264628854667817521462238966207619608219400792681987762235290224723637524650695516102621217699026688544387082406198510299729801366387265943208883554393985552217347181589005106160427648229799536692935313834346780894106607698358054405801309022619345146713569601242909603100291559348181023208432904446316635114646450469094353029487916499618996086275486277517853869514011263845384994516150502070461028858334525668562335140434537478560499177595000618315896411989194780818442804671473623129659955689346195019330279017942808981810888724495515474435510634887802092013718187746307190634704532401746269730417219611476369886712085393953241616524417866042186360428339810688847480511762351224082673858742454080345183986553797380125628291811744337071423656135005255879423306495329141411148813981253252245809719511520101365170372217623546190874916198917075766561959804057036502222841258202201889526848481261639881366171009158945991649117396610490211917062170839797938156169167642914878447440190093579126862733649396872187218702656738019677580937645454974332680900959763763212314308222291922269040374635686436172563361494375791770229331187916136627432143162135366404857612910851889910872483465737823381857806347901746146268186085665692895759087337503733950363107833405300388234067551245831298679925937563380570664100618823596906794336116787345501470107141873658186116692654186005506503832187102876044454692767907052027001369577665800095592039108049124977219570509993638122407385052620609410268523830948775983667224795618664718213595930210511210653785861888727746594462717561602069241457063206552605128567954532814056471798419504379082781121375867759706002274174375755560988361618959179282618679316781229270810991961770503949316839031558579912360527860046976220987361028920084624575318291231189089424447034592270475158945178608049242752459327967708914594921825172587643590141118136734636278230741507434300942796698541916485133674061534898483512318481129835783871846636103585697335807495570218620574390092453932792546564536798394364800404914960838720494399519777536497678347792711977201840794679227480668650286724767005384041880352953544357514103869315454674236095674052509852511249968293286754820037643421690171122143013215607123828663746559782100625579433788428521548638588407041278422468742510974825348508105501610363888917752877995282899914252658341537102004886509027251742259312759257260085681081851746316578097770415265637344126913643858621924414190082672270664864305700083541638686306876983347128368199355292664046433323013818171916409743272293051333741169041077015643376774082991213075659245002679584393350972706643000829770446493516783804276507350818893752795530096216458286781667186727894494920539062305697351285216313621618022756551244757781387948795115634754624369818887030050520100448286844289206927251110613322733377760907144101698817379176484817036323540581938584972134067476188432228656742303939015026000048615448825444425332835831769341066336322952253346554497400355445687328063936896193147942904573855181138960723305888249157157784243683570239041220795170798033769612204892715847214091310548210452990632006537813651299065737416471315500500947567733356381390566484252810144719124324356608106610424589414023230734723164326130686987592526126730450819153459709584138859558357009675692921506605205305184501435995889049018157648453721409483099753417016594276498368962328272094511027240570793702231689350954823746642005497605919669953331535364249933959433417006804790197533398841448343208587365480713843117398115029917953567061249312335946677217979073214438517202500394063485134447833009304042348361872747897901881052742878464768417134973086738723121402537015207483136665003166313369263883558139836307736670647906218791837442744872674575432954511549763879699092599385199790860893989636408890041819450187067178022793106887117500040657179414196819156223536500801533669464336635614137223820210803242552843606673129273417433866513464920320099466150810890273998328118544281466038942200210133546805330833054126062612117676044705098926067951896925378731078330511238392232749549220171773797371984913117699809895900710827982794558639766509041659772513005133151860979715660172540249285144298894690210175063960357832820864144067580037819555712600629972154344382414048121742920612558008600328520903194676433621880917656644351342123598402576357123665626078975233792465131781152604680224408572474739905097344330561605637774523043030039109470823894216249271777248888035218140171096033351004696456256379526840433003827193204510530645935476126136947991994506871420260839577616172723435987243533450151305616516185350441008477539932890417664304553223741576487227791896619053257768922804881156704229392070939172518672698108207991305829785136949190176756928629708543715253580294968132912080334044931666599268427618331626555744344002100152360006725026664164430829978301604928167048074876511229928201937287829231901994499184208863398690875249159363895921696328021757488377965051669293293316273805844603121335508601139738226791795253856210234822841288533184162126280877384765348522035034622834688005640161376378109475559443278754085126909708806501599879827933426984081974421097256376556327949817287638861485018894328580481709130492648775766809461642298377417262326233950393412371505110476283524830952092294386745781477475963106714766849471466465904961864472661883765651108644195705760279892370966894032796261250906307829546236532462173342436198405580151203432471610177785809941475286335463988201354624665514736322095152321545917630402534967072404795540314383459949149425419983961257949704049545887454587226250468764673769659113441682184952332663230459188432505185379813136734081889069802358584527964836370553008768455585267395102161807451396838314536322784487617073417740120881372215556977405968203296629968053397193427101913193063628484758849786703500729904541087698703791015553850273390085914728681504779414613395044205238725090168073766066221400519561552957030725192518500934852774480866645321638352105277725286401945993858616970177776357808718400244749587541763937250475534522108776430479815841608321420340437181001802576067997133744695402894687480118803669710976165363660987466786309462785691586998933051583533679683892397053097116735371558319053366569617868114996312325105000959467760801686641841068962444536891589243327026276566817229228542837991659002763390027585910283780866652800469052051177070985466435945872467950656948983606757241772072053956135909720394575681279976928010583275961879639016808492560031005579142658097693744499218730667821899585184895722897473011930465802216787940881042089174498192952278794150404727728471132446791947083422779650322999239357608257158354940823457432875151590496468588820203067270556607645019212037495614470533703242631949569522701818187273331967262122155205679978005519630816058372820660451917872298791671791916209811186806468579838056787853102426824775693289265728453277192370103809138603147956253811164672054249842576246695044255935987754511513820487972057244525991054706336192300758321035000520842980338736164492135848466784562290502756491159411267726521637853331177024526293798744991801907886571493413793501993682582131734859574246933055053341174415743405701024883900727109077840027646649877207008109262865938567029787584891723048007575711844708756184353913885422683348978506768443964267016629708719526454312032573621442538702103011284724634635443019138663990095690399922160171887944508753871250238307171158655668669942419995529369601197333586191928896284524118913352745820313560486036462559169574596679261325701283091736573864347649901099413905603633751878164409055451142132229328419612723790596397443343089341374307741834080385211637112411721416066230742157653339534409869543588441114543198378562932663548075954676139364077016396507240110570825065147349476062348186186806178595154103113088197914773320775569314518537240599866289722906574142160314361113990143218073518554524237196976500091789508127724838371756380548238434143841626744165420753977278689971526661294755835755038733633367211440657224491047859354938944850182843251282702643159294808525253823561243554451327829964883493017138502014904216338540341359538113729853858145200986789656849091171423724856378937068727451020387343365234325006700455969891867521492999516778464238942110110196585606266767962662039972332652026143293088330738846091122251130614194947310548365370167507754554849306204646444471959208064932933924840711920215372059513240855336998368355711359619475375123814838155707376480347195149630882877525398252861736087314275260743174757633569128598201517269570387921702463381608502608955169464201781796140341827773788190872720254806537870821304897476177911614895830276384563687628040562927163023128913476720034977239755776699000988490347153043789863190896576507542986487634084859053400637958676466467004735984149448315414767807445091276093210636140485675801293321451091323897044230844492376685134005460899482837572092195308089720120130412143466673772134126468569132439682659407302980920548509374262971865447587103936560028737498447782308607831614269712700819774969909535407735043509700988669790496605352038908584036612890343387815003486384343518433766910395754757819944393251312628107113539072313652046799622769236273239950472315884438051064600263615505243899252945489438428958158238954573144640961283581088626117264281789621716329190022110631324130911960608378438767598853922891573542906008775409280118888154036300640113056475676801008707651599586596455538066891349224119224103703289163214518073972767667807827177508926201559022877279501130648046316017379012889283049882336143175219580348592065854473110347348037612792296726185013804773298153135014872785606661585048187251945202164813260033674033162820963637103596913366809600616179604970385116974740771280464925061594979145728259526384366356059525171321066512944851830781187356250351450749005127898777948024772220510485463782057999991421155025220982836033593337208132059165702856319545020843728711572653994209145839696266052016070827791654386752420051565320457916035281777777635573749558926133032900914032893556851247426670986258172874383105955126759224139043440800501117004987707741151282071756812639352197599736248581027781755386139323418375397321906721457740207891114535451012604793101932715158196119656664351334589881219853828833870317576019117411712535482351018204461072652863210979601000888360540475088575466792848291390006357777014158941708994146957669977542099566526771960517208362941268091179852089438216682421626619474508648050029636925032509424108927101423568783556966832886808499973772061345934925092501951956419951601544195028792188537324516091023113090404559366998455692046863245512502422122488246613249768966312680368550950363804025922301866935539989022377805214764259124281956408189868735305199435724516600085594598462488457667893320232289831450941206994020694990327237444273375289650818931197927797330485206298406306998457963752325053394470592187765146534080418146809593524129042104221140130681454013070213039252756651205231108844783508899537978329919255394621706141156427362586458516842765875034035036785685056910765352805078956678557750159664899199179983398983344556714507154805808369968535943024042580139339245970454734755231518391455347005255948324823864912615069699099735572018142957678740386547258818182426058262272197165035964437745720301423349109212126017839454430836913721777112404103327125495593968813151996684177893802476589767556663725402783484563809368676542496786786798999890255795791586918484896678911814002194763091136723599957017867599912067914627017581714963117785972730371016979026901999201067008924565493176007018331686423864365620378132399127111675885233682379542615506106564384920071615998961811581366402500965250713076793360448450424821502695350179248024343951503015438895608091411502055658558754268927122477178388600936271588419233707510365571876756123284385999237182142392235207311256562608274693957842896562023700177556679756096512861539200986810672452014072683465058128515965261141425981452284931105825315039707784296306432692101101401637582617875323378708128824818285239515025812980739669660434027602660552303235814924851038150646605583715862618934593009695898923511519270775401141230559163874478262714763922232923821859877846974009307764583455948735295433923461763444281195073670087067196407585770367987798644352243047063484710109876002766625631883305864331256896431594716711351121454894597642421300009109268786467427291370927170503023182098901919480620269463261731132047625462898489651104159973708485997886722175537784037217541376213678680619741832511637525369960990334764104176379778081832727331984291912590978275872705385446955611810620716574617324957661064295947015276429552216884177181712437022400943067274741411891450909056289789465248930177185903200521801825061337923977374644570468572444281930140044135441769922421226930325104550193596990614240874730614859644835871937687175830394802235017189569944794863675681328152009038352276614878862736803351796550306239531243541121968157866829573167406705159423381063353333416769846685579578674979876577705098321538575570510690277647730943102420975158879654176811283067710918915038183951358991620956621493855845097653056648938071396808623162940616705450265886942753861276918242634920827538490634546905518849721884396754347338386546338994415666202563234715261181121218606630416249140897682964345673982664511305941424400887642805249540485224108785319865287896680987062878047840745708807196822619756833496519423604307083480817805096338142898191938990032340632758773137612271239764323239755057836694896976406446697337219645336583554780001033452067511693474352553533331832874311440444888824532102731098464060750554920380777898648482604448162232687968177110705189517296781853194919254702531039952366422536007365811479591439101056065248721030493570045538075567075034009687954150445376094551500488816146224573571879492988912986048049470456061188199702189171621406951169886852496420061124506767302808186028422757568292090204203656753683717394124197707815625725105165691446975009941599008425819159959304532819574123860168163348370399031238460836860423743407866649128296002132826512353024428606227565514191793007988434457128237307022735580872708642662271197139365609819568176995640225904241507152268899893524858177379429707530765996174080230390039314826043134539689108491593092802111134098462761277361589580726373041006973878004686544469019260594182962400840347853349615872087165636931097185864370742799327752557671900561482129902845967471143188150651996985063765958549799706971313934653962223740363666763965203403503179376196132130352914425811690133631182613381594996651167718800571481268881549150496127094572021252318879254623685105166636904517321704392082626216662604829496132783758186505277079044463085445401615269424408824871860807161401839324126897955899178612781457997418197534760493552169125871659465581393463235910264637359541100060006355556757775294730653162925628213706716688425441453955875555573077623270511975814180049887205573818834831251449806565952610186115897412967466025604479632153814742596466488916763658097132601383806361560113548895568989068491789841262764273285108354082141711327816642565292633269926850169423175216905564315179208101512382755803043222211833598394396203133569885031129503038842474430550983748897712773786521541016088563853219724419231412409415510345820684433105691689406167209582121298183930993662226763331733981320396348156070577408753715648928903801848928804168962661562000124951893009305585106510956253310711605788189356448379794647685805302838765947429068762735551154835706342045695833493679238150737195703877899791818850623502107463564793141466069959704522987229801697684652442297671054804227699201115675761830899880033255837848862675084056782046474673558344232562990265962001013806658647834354416496012526174566843167572510197552607020287359438839632822231908189973366131382132250769353049257678315545358129274252584289233743634019900660631488970948083639932227414333473188455125172419803224253393847688538264530400312789144194469865218443075124138097680608045181633556926991835859652010715474187949844043897804217767608729580037324177518924345802533594485652298022285860892403462053036680833906874551144645665245399159573685155567111933491802569912927509023566634176442231269814479772903065154917369341856299362211970559608943768617034093494777019872368650057485758351844295764079627200546241473729006594403443960855569410172134814890260782862250519971462625148533060054457926738098317339189514827066266581234127534997760443392998832235472284712455400052881567732469917411714682905416718805165878312060080337108535724718902144481141665428120571243110870563876266094461701519761622990790612576963396526737112789998265666961872996115186121909491296912384306460676877863929803810702089869172873154601275011023543174033751705611542858245732513597851424029431328980419138475539810914394804441286930874677252747173892765297672152182564874685670956994212679381780097916207426549715968721880589794902314404602340037669064381074944595531693854102452465605182159921371243048550475749655648735254114137331708767325196160948453218108426643443992525493898520872033363469998756429916607579764001596579348476963303077793064419393204682848534524458856190240118923081726039426891327591025300577864255637771583185128443912592379879659653488426195088816854671844262294405180078788629171401592708225958183645861880814737895838808796159524300826445261283536059906586955762021155236935415016327923595000260663737593771957276121583933632922743873938380855281118385524637901265403429882536249110863166161516239105442066578636290543235471747614830552378269758677939377084213385841672273788963180269265991472236901613056409778653969386127389414797055815742700075278447005797379417696527407136883920351943912472634809379798847516563362189993595794875108769302861075936974339472388517740989527314023431127072333856317679593686093733967239317934859364101110397532395938852916703951485713633143626167578160885660438989639131717978698974640047827237025899192245964730250546923375872629787059164327197084991083441029142185536938727126393574975109767266092646169951495470575366817282893997359749187162872498523888562558321441203296466648620233556188932699602058426877964277649419719665125123583375427347818328076751523047373319356643972700555892901790150806450436631269655863414437927484796910856044024788692844802850927007065835632277398434186008835018547177273928157170365177795290085734799814155089262654146213216136527191201350480057774686816421695772154639390942122533650570214208069361689708123192777587495278759830494829107801184635647714313717837152050739004014839669720366646550109820512652064934409208812687823977024130420723232316963882997732845159631278623820179845802708414092936097003891962178517801120266622357773054489209595947333051493056095841290497567049668554838850071643181837509601219311974895724115564599051612196851919592149697613961591739150355131948351227511893208481013315481133584816408357152114016569558971692284828150793047497879060884981444262029784123587363291017345270586026523992142334720132858360437589366215666455011142849416591808761946660272739061612779751183373609056769854957784920496802586161238790284985188213599315855320539838627895832201928780762912847702404077924363034055449664928827294031125373078008014760221598040324951858928503187534970604612025526211315731936659910599494252174593026669675168667759989381739407841898027250367660134507401813025750755606296641244283663355230686334186058288029681321059798596246685094813146013619468960339721150031657842023512816926696278833392915316802147519519935934229623899824069488361588504214163207781035066896191790574724260406541519800827689632814591244034121182921330372340729887403858156260008416125477050674826684753533088837522255295644760511064457025119037197203722456230578121046945828985833812224043617844083551136070507927732961085066059386197061008070135726864952188080769321227218466214088297904582985819876759729532354079300411304312674573970927841996581470737163430048220491158858741172776023909784221821395173362263623884070519813979493969254522435510358514383555320741993234216390253820593591781833665127759717060656892155841767317353649399592381468050471088382581281145276410736482445084367490233571780584618895364775468599211802732258834882086584528351830775985489923933279209906791228340767025851101650384087796304158831689638482105800626898850028583262716279483294292799194761851791523410548681869107981638179389188487960968373217586311524255362952369372605926845758657534129413351739407307330322823588736751406818016260622682519924831035739537182711172036127542531234077198115582520552573001742882737449777074419449065891736293002928807291229445299964932430643197558528152320301635433351564900019160740010434522036438549517342260958651041207014539815645449924424209264788090391978873655492710919313895647227735517802100425275878469819961583265191796517291317982036322303256653764319637021013220468926194755453537969050692549317417940198903486756487131345914513312831069593300780153929357385094996859831509411871726357953884505072006050002264045167355228725041893714008050020349496314777025532457990450571863392758332628818991551989655847227237350716485974339677833112720455040741679287233090421761907235094043502243322101495083015438335652877043338659675500421759914789007165612416307937435575401966357190122493416261220928468975925120118505179605165634309856373381227817298421340675794495309600679555360833189539264087746084890203769540480604445343609694685873099477305272722666188468654213425415675224715096353465680346293510005205946834157215448751565109236072689303236055536849871125738943549543515048521940816891017582777911838886705700345444507225159555643529736329000753631211872229190433554595316832621122331337068693206210680096651737757948143099072733723440462408645771518598116122922630781247572846261258501926387149091479674383213454865341042818399401339935237015189288676779494190679114717068388210261796568112457041638624280820140815468217432295881980599252833711131645772200675077702692696996953030824451344817091220628935717337990460745179683256538055822041419457291671319506272063249482540720504499984453888868117541900200656921229650266948637084804708595973968491343503500843307020015650390554379336149706738272110918293226608628689704670820149495075751063817416432444834303358679511815187788705925267283126194270917723140589205360621679042574021656308643067922415900688530363214112366837001254747037640912432584310344158849043287906771504449977236011612236518120754741478196344585561961917653929402433999262352418523706704988183958517479032933506495289885946780001442895930153392313113121075615189931582818124906205155236290644645962297276694097568227249790022752462811145301932161072127331158530886575837611740343145577203191680093021898661238304652467449799618232672225451607567299073039715657944050621642024094760686545084825851806447821229329954248365985016361885928120177548308636296351618229138166421337494018475620053723768349875947033594998199400347990096132938086238415884673182588862369894112546283446274351823510817567697580372232341984768365338237834384959551231867862527159754173540450496524812908156775992401875969796354220707657467937876838098661599819741434552561814820502348151727838013482403545867273804987609103734002761993001672347347118308613326169873675764478905613215359823255415946299047663774479678371763742682569600560172630693330869259264927248571166182188579652236666747696412183206653167152480694546206169829081683872733081257060423248458255329445913611189817341310536458899256874751029289617685361216475409796094781355265456209641597469338314331280643475302060750113792950105251807991268810029510286022382569773400759992782875497615264359711491702134704378701900288194366805531930227337529000328561949639223426513534537276697375945076362938797823315700252995873945693196496518358372947082574334473591427813218719286713978892932962940020567813945672220763439235855013133909617136246836574650556896699877297310855760211846716930167928593709067406388354421491150771199877349823156735348234212819413227326219209301775842006100142371064131012747812868102015756026720455200540626311025759219280881221188617298100550523053980759132750196477469764871580081418735534414999315352386852659379169677605068312376990215314915220982357377911739714841705297489342410849118956466186812380617707025935590011637600629342874264401328348174112339829411894688380855021662013082939355132886900522239923354331160314783552626867169641415870357332182289638978152638748761082611257329290045152258415763344373809250947835705176523751171692046137445674528694242374041738426357565357008628171525979958635539017547136163129523713649517685499635892635007937338201615148893941353662141342857207049660930747937075278496658111779383778446321626357702735230205034734715728252483988513670993614312915837192501082196172514497196581841110055878214497238648657760226714072997849449097058722077030243168444750183863317457877753564834490240349295932986341221138254906162116998775345454718675870418963107139083076830740923745430656160459544785619597185252137503028550401292581729816586219699582164200394748112942802841216995460294294780582365932838496916036028072682762159197410076520059394469731212417643354475686021340919443893413049924507166746925547702384639277330825173174649096550613463683125171104171370827590467224383086939622274405855314558493374062312688863712160366544932227197676519653821766737161250030740346296950837769359096394592193537562564580302643895188965547684016989854555928413174116719212702301143413602374267169523189066017588590806391948255240141505137305962264207483389666910446174796413817684749801170255697173497768997347091297086431262222055769180078465711991551755617341971249418697623973004096117898775916697599582536753772245810273812928640109270200596606000888025484331183534971325264741242810924025146174219417210891072815253695943666595537651891643284140491542614331996222666611144515287684147470303506553925796095694437614516821127621328704496567799065470514274395899345045277764018032315868177433671628864111798278891825174857067410941108593713024861783562170670815441077128188570342299950836144523404940591365626197421321442071661078357471980304745360278789918383223024837656165585146823911291712409753066476267451799675775922094039271504711831447836660068515828641825023048429412113244735538211570559243603223173074691957142360918473255896596139101097603447308888293233034586704028621104528376591535661271773363050520250221755488609365024154101261406656216697357888965667696734157473820927965809927775811830069070614259889717721167996035354407463413507839185807448525893976584844054864254712842464563144845970033860958828644604821676761599424673903815456996044014974168984536395280225608322189864528214700746391874687679656916524433268428466535864229680666046322986753267851291108732275023967513278012822061113280477367409330525101445778068518848923877802122499504282010046254430839153449480954666692258990565945098954297509544647204721635653320829071114752540252597490813198017143636698504082013404518957172397073722051449108639341872590163749655414899206350673842751549296155889364195202559441164228167695447102037541472026062162918672990870787958430191272037698654215030688327475361624806649004598931707586767343518664444510568429740793880243484197992163155421061260061515350080210730383654649370144927661683354521119798413379938529073322907490145309917433484475506140468964382358147269697985538708338268184617811947997032682832609491651670482273793563616937258284692119094075656324845405278917553548004472687572851522222971067648407121572932590118205512193999773959383323895414459451419950501313156082042737240557563392988568818271680569969019906561523286465623761546050016985041417581569933995020829264772035294112389365089298913426976788512546781932818989646535444158066397455385839394923323371549385870054173245867906848722589893442522791902832490051322972581085559991539204412806034510786631056407501320408342434812758482853202047078770346294393769428203402212289491687905567935370550253542892087814255240893364695071034822453578465595530879746727382099606709609320557387650343456386004521887327262317893948621106601775745350732572302988613510383247443300578579656870984568640205970361923085432912642251975665845729780484690199800528690860721481069819233153238802167932271517379305637372063015182789551482493225552187133738743279363867233338086112985925522151225568193000395223486308726107542936152092311490855689931273839540604026208610931695446837199281184463021197462002669253017725780120096850664904448673761349665329115783161746729109226307121903471640070674855051194061889885539002477701778196176498301824460583184098885346409251243670655084024184888436718430624912326316443494606921051692285225150008453436854253450127213676742251217039527664516817740071091305974330305752056152843272109485252287582744873052927527216280244136438136310845084318585501079998466088574078641506727027984067322122849852988089427644443877170253293681033726899351997753400450019892075853730750212192142604285984123884134363720686179377977600426475284399659298485498247217661041928470781643197193332298532946534280248991641614837281559973660144001036463374923437347793373037543944149579533798873938155461772591569752972181376409940382216498029892421140781725130258647110220582331217049324662027790013320071215606191398597055466885639554553338933084751075552100342858570853715009882511918371826837811614278335377560946284555673377115366283686294736552214830566141939282370553018009698181804013458868654420095387773921737799644610802145963494681088881683666400963887352479044926960635409850147154840930132525693448471791096773682907624314291129923379458875161345562714526075120425719060827707823655577528574794016923502756076335004937719857528531809308257514450809237177941716107724186777629368047025722046960801764599876500006055947016827466935401464392227240252453869924344585619748528576750787698899268349150366744004885971071584427262073620672316456861928135239380517901309356374191081927430721868625367554551692926568520000870326913628694223880199355470805157460539672547396816704161458005468587243037332803507822469350958452420804209619143637015108607595369853121249397161316991166444160339819886040166231100441575263777296337607219367319118390669407231538207914790650013869898831292042933236688245500713846282364669340057548904054541984141910684051624000760662260320851181589286746044316036786213073471343926500171060764195059724376361603129784542241589199087911469225953546576153856048929352361976279979307913280772768347111991513404609010847519388068037044043012903961285960062158121487849496413963600560998836002542732166891655234407258469129156494324526943531397502063921086739671923466934514172193484988991907973639763946508063562937013322427078166124876062215278632056322970138250898508935169891609231711066621274621103057397865134495844184565883030249436849402488811940848645920139001489376544814132576892385262614461517031324054190604092762771932535339850653185151743466642832466563582378859339444579467210040802098426789359131794376399500358127956633026388690325160851154750644319390047488096919991833356718975153008316571715162710114950720124099860296722630289124338966339046352449515560505244707720747238688815299783792544351311161693998217826729177939241466283357998174110373707341281057870555057040071226914909017174943622437842616559377110276058750171624293416462772078244220275746683402523817837668014042646307728570684715376053653422669534132842009396272049941983004481856505796364353301037389934777348556474172303618472438333751783680991184169070017441831171407507415342740552915630584364785360621835078130190917246003908637925176616675636772258369997842713732869873015742156689475621988013128411807571023012751654351795235973942053023023289744790226111988419048938907515571118146443622816969346855583219470531187960889583843338638080949227533431107197946597092343089819910105942836498874616340078738384098989571383857228434728223353955343101397569241848166136607676721417908752061597744681397543530073277065080764311189341736298447454995743009882490212156859500180680806428863462041475705548743283393940294305261960158769071196461211361056365154023847096228949232839615319052508777252728068829538192051531383155161983130315092875754422091559916748110474149513128859310600078252652978723691303899925143287080130426593269559181691153214788621562647676808965759426114354652931050379523265238353736559378380186330355932749464332994700930456611048765821231942623945483023601353151512405477669978544209441488689572824827066320731140886552381830396237980065084106475901013079071277489899457608317527523666216622827371971778016753408641505048618317058894391346990047085390867458672249175066396777815186767315102711455529696340451520103308059590082562432975577054926151639564050972397847702070701735427662131644279115264335997599130732525454079574846585406231627250514995271854900013228691029747440345030359186362484765636836383064666072785387942854758595901513907793508303864201136915668157782487425061608338433924503503802754200978474008184753508717436111150305916050449582700913551054963988382497399916392652118342833904345412162634320964614663441824745624136932729088279522797957480133361014900518020773941536848939370416512180546306250693913554605220130699211051010528860175067019865661116986481934365307407761803188942719573703430363967997493966194163604817008027825972449475112612146737322226932951157739051598131144177600965475252361287391451273206937812273745901852854593719013292834334997460629120591298289401043020848328304472584751749457469330628148327529132062690532244808195027038576121265221457154116836660445648979620718806186599718614259974671140169893447392800559719961506891337238563096056845556964402978746955349012749195726295397742230908683914611149173287612748310748280433215979972088959096670534700423147365906188145421192386396226299851168716804428274894742739520358940517373336133911694295952014210572939436422226335686680427354622965517112548264668454704063482670659851513017723949602484081261062035241464138859514503542094145759728420126852718983270978168011730589707427916918753203406243559004640946512992046687073960003725958274226550624947418462848770135663471390604733034525786913874932072211922082510143214835501804540953123439685599937862366762486579248280957397621230182180840202531075111881198539824842996455969496549926074472365421802374612064968294365113232240338611817800736441788319859225960232985435655030651682161906488929426349360918220406622666757706280004408388485733215512518441037391430394674632375178060227478351959366923180697872303391130628388315441215538097731988609463674544879258239173518910823704194656128182246816486507570606883868289375490647059675953929096933502581963557649439623209576226310217058832638484403807724586841934022564994093171068324000485277244829369402967663715694215256859624395735714308926771875018988417653226257943031975684127012319374200832211166284718219524747485989302799994549178628834738101941412891320079758071346484798584929523524425225903550231395782684865246478575403650167775073102407951753985064246223425529146498161255657148736150293613859492015511242208432230672147345602478207866759851730140957339745763788423012916118697850112663956791046248926869027742798285607007001112292542981428376174040728873136396264567580283341281994893517134602852762739209665124994051779680772092564707912797957008992505608107820618773546215655506817471049758781636641073459138608180553728577290552870848807926942530967944582563459476021940807344411129203201341243292225191775944724375052680552448209278160047267192562965597743948896309038593780287147469502123122473450268579376876155783466622425306890326354815472241032330044646044803519914992839177854161812667943556255375950176420115776769669014685065049776917318667209873407685682380589297484279995455888269028970783302610691896320606929442356652907109684387062460447641292936461802200930807385110987350702502035548836350118537393523958415782531815641563071252096299102868443726081280171640342418422512548122467740431199261399007073123369584702283743683366462108481828425201503370538490545474495561540127598104368842142486291714007658434937240553082927399991258771523979188461822136040357820683160463817067464782328743377693834692456236490489770273633665963621413819662240445008208645838106552406808619983482072420968927168872387861110061608731721449587248404247686382965221453646643223890613125510895146002644728327726250183327028096286408978137818977111897140073111915244192667812793306615098122974128299926043418484277029983831621936328802111876296349855824804063017685287389442738540872754749445622476951181663433407189069618218825787747807351641957668514727660344837525408821244049439872325235919331108984758575215206345448612680754947696035529971381368598385373924565843022415579965948557278800421467820002902795451115662764310294406156682978898438813837140902539483133438871882082968253467282900367351699226085082840794627174193722766588366207045830030474190826679750974014802211370812786551203696103783052429484391991938375421382139340553692079478511592156822812335100727476775039680740348132241342045806741300768541742065961413807953123896094742820494371510830198266527626141683428302677988183337466176448420840540052500029444395441694525980742328399242445690974206573234962741896314151694239170933979671034455781519955992112408000089436598466895887336357566729631980931473954822952249966132560526529168050475129832187364919705339220044679931102224690895662044041910184443819526003856708330517186617428195941101505696725242030825558545342282552775676195608199649066548047461727147600026022252339237815030719042292892508329392137750988261001103819822751099939762421138079369389591783575068122668752920996491452170447193756399888938614384983446411930229023146508806491975822556987307766891526578235686366262034246584836567603552217561550502916785727869261238511893464891119238601793404588505580794526734279308795500488907351455961889030877297124854997090288233907087599202745395321528996832135977080987790265321482362928038116519193876005064213567114770658586506430739721150455026512107301798067010938838229800705926514444397796617969683201899069232443420887608646105539491652493202369038442339520814197354929661245272482055333984029728819176801866390200096434751885227289092888137304052504014090472192270512775767874771968025506958691668422917701753998254414381319665885422613954728333288513299843733750052891572409959513599630685644927775704891511253479893541594944164866539987119875479808621255291529336663252368733908000803159237630054355297454080444389910453541048986205727690089026187769468468910243082502949371970588646977835023594146224115828571929399372375250337502556125659651114504429913984361587405725990136738545350843469369380704807872537243784260259065447329351711585379404725876102446038429838925039764483746788185464769200676393244938702113527487925835085830992360539257939821539763910286114062764399264986670894922235313663568466719827393280685568086946185684995317556554024242477851897217101199756679892241416338127110761956363594353383489235629409427119009870071020044147267107282032954277891697376530405893092676871933195892234042888835880879816726337538497843438865579925082278490652953612935834814408508535198975244648855607217561485070192048184523075064752816887134458986370756102293744970994542564111487427343225112999756794760571773879664123557299939795336258712609934623926292001706416328498721860792134465885006312203210017800232998680864449066023845983962409780534130812242749256819684450990539826592917230525747025368753003840287781257799535622040947602755805605098404397269061342790982850122318393869184833162995096233965590649894012050643889378397522482840379931339574611787458986361424829144716371743484309489613586105620625377989204683169131487904477424860600604566212035223343073059424720875838994005106796537576643470578975651463412784512100575167590455315793690277789348508538574368530833532020285293276297381261138545090034972722926438179190237970409440768951613063825841106653986376954527012146804692490006981468748078325834433650128812031577272050135786247812290169692796744007371660143465918944471798094635879056294000679040130992068963037826060586719554586404463932761777694081545071673244619270027025749357661611148042032560139998192168065228962031303057470141805469055006174276738731425805498745191806163527477165661487048073853976433715585100742429048896584762631597896096507361622072729435360572652512180940497787077984592463540682014321943124339716938025712748828356016903797120231720108632632783309574906605166502462178191006338810128064099021984512916900978463701095946196180665128718382035103571247279972004932309217591047800073220006423368462352158344715808470629223576957873087711459713173982188214151083621379699619980020094525801893969866954541056997377837013965547856229023165963756694754320185923980636038880018913665233009388428072058069418873394799772528011308527735284248867052173630929042312082421039756659217864565629448231890200356198602798897537466802025607770826934587387905093459233816573975648210961619711781159553997570267761288199529507582031388724430273376692914553087987872630037046497800335610749028213248609629203622843503051732549728053008705431898643791929051117709717946915767210807725281037573386671488448758249393378142562771520149656753020819870549587336908340142579787347511636495332254578223425202354221339679258073604576581555697091991573504762129084335680924117377447897976998453787606373302507579745267803926844843457644654132072133184615022255784251743398038618605307816923553487275377616404959223198521865863919511611801808417058380302532670695578825090023523222046801125722997446099553044479970355120750589299148622608439613828478585334277420121458247251695877579456377708582765763654004501473476185084318401436339184318657744140355448643533752123990892140249824523929644704670776468481260901320484887990350633508938034156592618336974952251178754640921473302933797784213270525333332642490806329921619820154454566908604538893748701986908981445016376794657325054968874555486180847212065170972313532979171762971581034297926332230411854522466979958501580894001022581818335018711064065422367109406392041100497894281926471213288084063244671209329269489599212323366755294916317159254334772702304203624505435975407192643029236848683750458921698436057793050098749520299486324707577421267484686672603799924603543475246051332767975624032871636169303118280334162675563455976938030026044116588377258626614707386550574663564458160134398519656223679747103793606964052158142649997131076802989534774378192635730768224211311099148183248538673860380578031084673217732745055680975644028667851441182852857999407295526988038556153936596698309375272412626946361263485634391510396663054434105947649547027793245583852622732487191398997705554244146787986938747031536746068730712351724596725283817735419914523214789059652652414312312845015288079821504773892222356274287751128205803422261199105839652242517632615787909708699568168983896514688498049185748095472015428675233494716062214078629328470673859901608824709081322097504105480122967604513018438069932733603878656872926455608098744236007966901738799100089631811080228272209884729655619936089520720212685847756316420390260883661911449992421391086764851967059380366295453117978845236957420200743771513448434381488466154541244821747353385113842671159508910208044418193948388326986286432383893010331785264808279716989607906991230535659783389126045438574135055495327002797632658453970384026840455843804081472892812076860287163331079656025176273093384454170567247253674261755257763596074601680965861835102547034915115907625078110174852052142019102016817029685642405813630299096960112919053184162616190520182754339593903021909093710355632289099720559911735341264097058028525290246887430700083215299369070577095839059208649812838582601500280278286400693854589813368611668940229304048521258073393328285016223844810322096334450758102208174119630159706245654860327642646177920360309974063245836156413566850627969188035386448556711060362497363424285211812729215120412142185179310523450021532421476260071205989787295706951405299757861617234736289186734667156924631361921187873266391342503941920248186232308153847025814286380568337107369121470622191039096542156762189723196870013507133814178228030623274574136039485224763136959663855085749732159895317908886820071158540926260313172592328582516368189996957836832959378618186848126123713980803822578591961771466490366879250333612462864014261138322078366174179149125036087840305544323379534918269138884484787333083265310576121169204525506428769202063301324795305251346398356830818410740023240526433826306178959028802021521293859514182209900591822341449351133384030904233309277120680451462860150480615273860410309839412685055707725216921075562209191376287691288040440234701770029138582525022272337184055291462648565735616077978508862052599402487970252052296241091353504324881644417547744237089461164140273230982031950022311935327617877211230783766339918673186606992354249041091546656350090659347323594831066147648475158438162908145619330612004103223235223562682993904137704101267184448778584132392207444968099128808218274115093569547862147144697126293093806518629325088787613269074436881998000481898224267928509995408821670137464771283358508933969806403972548744224961491731755586762077010020213642049499587031598404721132830211051274212397045470704262599626242905515082188696149358382487880970716524125992404251685681832426755756759662423220216514385331238131831809718772989905577037882067974671188269510094494266927643657980928298204809086024503520147435722487823860296214699056121929395297840863632611256991585547147644561653808297499096699495008149194344955402384474896354347861035723904850771707097211435630675501166411250749335867424070401388875759057878793806592325928678731023572736612115884585805148035733760605200781981817340714046437527920561857786813300356235689381990695567576125541148769140181236823642335630733859230833051979031010518033333784451409143314559963269709629303965277374814866986058340502109545240169872396805752570499412164212371454941022798916244853731047092469198220533966624105404191422940532320656184157681996185761529569799188219556496445126091463511876776846114857365058920323563723863362880983616893202811108415837305787366034701420378931045627659145050867294683701767909318582499653989218968072097838620456351706818384103783300973370460107139551993127780428515600298733045558961354925496059950225229250877326577708480404174507271549805456642191685426122213299336457445233933158483905238718543167063725985219485102396708963590930158943653212122537254301656808249172226522133887806977995156881074635172267477678321508044059422831730027401030772930983169938217079632982742316334906894602753810433542021754822949615575099377173378051322723079466443094784764285214500903073853172146172491424740092979197945536960310570497940054694865945926868319291334181039711512952295596641309880934347934752835852072483012184355742474812048489178382684045596019973704717806435622349168156847050050610907151382240617535368144776443861375858302004640574930301611213629030777926958651328668960193989897080106760636198678597211740872390349836012841535447900829335729854120091445414064866013371599421176449744092584587907566671512358619512040747238860466485590349598235099349113028857256840115319352013110704148697073855264104201753856368974906218421332365478541435106797672336265840918575603802745881826582102410659121564452226823637129767155497763206807847676402038004790567549778568559376184319276267024150730381599958568145386339608082205426832309482513474983907951133465513124772890564161389659745601510408190646115819750547114590548061665651319059529332504477522759367352858781604731337122377714113788645079743331317409655778898643474791353118435674540517863014720619002892821395893519099300831869675066990542424324306519254233610971722188603441189833303906987660303196893130754998901722796460669923755091632249324586917082755856795286739526287102787138649754404939476874193089345517394589697248159399150809009937669205332434750122726833078536976438240026228695098138260179561783648550231933218417870131859190366937988203932062825094042401695626671716022890081647536175430660308935584401402318769090358517722750422328496861074258678831350311099946681183216695104449175766151830250347081366973575514058635523325322324505230029137967433070141634468763063422122394535969993856787084136387593965306935442045261246540539385273500936048224538816133338205752369703462350015869012527630464024062728474787265791983361921549806912615747495801200621692334799046671501268972745283004188960286693169127675266907541162749835529063386835284695818224973023745764225213630747278549128400189704156612705104782033675844717217075015840573897462178461230305892511641825893583626455158477842088419823697269806549009712826004298187022480818355413966505429882114068647852366111166065926733406839421088042145559519341163565974221224492982298470096959985542988156947663276303107496634240888779769553138920558554063341046211234097845769729498579835715244981977380296505724735572529691878668489759512395828583190439394127362238351216376660210033473305751072720700309788329262787559882962326639139557981540613501077656150643852781446455820033558596841889275346025085911307082512535035623216726603058812102629052574543300678353830680866859897670799580945064736478271445719344762919935124319062708161497028745213877069366613759561603719858418734246854652013308923161318274489808621598241091774835184187588088532483539423404214330643465048441441754499738670280806951084977399434353692920116218246500327695096137629665181044274860760700706866995366953074233282579639671614646075890187670133120057298235961997631103826162333030916943791897220569850497716795934633716489761911883120300790074585884788172722722748506336821885608647576743292733241654892906617034353143679273639472330540576200250513481830392947878176106227959155981060012302350155163430887803036225657278925368973457436116429415390391640916909741326396405161516354849293223695475673195559073771388569019876803289886502618470600802525142483414514177612901873305887270157445547676134352386023907997913889440633513230642395678658654103307526703242234117950337924438034512852930062078631287896033131923330705586305404037224158355506045603617690288470985176210813397585357525047393387084052413443651983552235102352358106880360881795393808325626593848758199614676959005124979729581527171942385176062745663836123237470121293250230579750529931648607667225792228153244760715131919154786163571768270731533328575445635231792181925857235791162933104094755448773653411335414836071219996994257255963570961139011056900820912606668603573340140813616348677026397766085613534975988973604928640943858424595850005026006298360768446183890921021807927405165111050802057252054231532975536367042389507094055332335496183422588178287741563676499134227829676915848182139630933523738815084726315631360782196302185630235078161999517890736690619312721694028757941165018276078481872060515120169328532273648914885138144380867911718038335789050180304792539023916505054375773279228091402280189719560007737463994205274811492997116901301154504801046740682938605111098874697310914686510790427646618785730105793776190262590291766766232550870990717459795878156873640861814183544763014965238632432924772294018280855342245311013150140597848362157825381417869945845601423867034056641463187303309928215472889946002484678669384410726354929178868705530276077631973219959653456907549937953496849616174425195142747112449315288033784897497395982849458868241320812915914827864027341653232602132256317741515709951085292355064089433584063423019347353115250827744474934908571646684984238361758773012789784014968145063669385604620008459917455373899208014562808642202748091051600535127949521311994145249922925390204162332684034044973502523664781059674628050477028504439324402426164425367029427210830312771435621405758038176520090529758787466108187724957714773134380961934437202318514547633781691807062588510499011806671746175348635694642999869502027361688365664859701281958760932286749360876057366761180590434282156459134624556464526696229184020926557949906840220540170352649250719154074320716298435886803573230329515647122902927511717057960328150268621454792783468626956443818559916311582776031178365174213115148938804814088540679899330112719089080732187669153334453691996017690793674620868748053310201798066311834617266956910100586431460103012555655610468579192894777198704196509899047586778809638692763065975709056022793309205404265030410301637288413034047810662295121463359614448909299459459193041895642891155728921177465473476699944115206694403014831232813769195220169977293448832329424666339067620695410616029400197734720094523016516771783275800120997452271126352525744229685020595159873750593255102965010787892021586786417353805387315872368116598171733900446092064060354178222556934894677295852536071122820192867297368160955906099834156983758855561397151672040325543504853772453144225565229650687994653129999759969182371279635691652944549868353226864956882876548450645451264126290922313524640382857425967331982955401388832188639267625966563576291970295702207162161249547327198961597523948950252992739242000045726180053008999177653581656118936305970340956300907153784955648225857184490097505621559084946598036956985817128715838557073999058826878979078166292824723483668978902243154482635527896362201419717762783763819906543232679811558373654094299210994163859929508410598750018145716857610391957160036864725426667144460898350890825867168247225883552481292851884077767650565669096139448914958290967499356747112627301746143601121008359188174436968495696455242985536723561262691557438560617639057966241947833370021358869988390170442345786460789949233210787987891714805840211202605441707215601500086294618966646225268717766236989772249695784496184803050075934503736763138181249870191729001250576646010763997431779523265112331746836620985726084794394628271977850975772280805812079538343813868479219093958071611413636843557093401106613848990416733104048471310277275125917883974395660996023588443817878630123082231720271230726050432820631901189590014730309068686076845017080908057712761577315030293043630870626652372427114430540471295741705222759897768229332827328345610229714975209318563320384485298453362157526535490054187261564985910736560140164285346785460364306676997506951769470729451029163237633186984386504788320922026937318330890527508582808091977955826217497440321374717125421962103207357364189739183837260505996236243429583958180425167667312054680255774432849061537372458321563970435551135693257329653243243724338295719593905414424902005766438118189009507130104140433707861064609304755829646052207657923542396834428804252326530242145510945917279708202419440509360433502138329111785062037862286187948555229400637594294577639638681420270701748500806499473473092734975488240460694764959202457843831886836770008061367182423944660504820615449380019102770921498758511016995393304709666837527914641364847235829144940436318547614811481520550394843894403125595733678051935671398577004171315027784644350916989122195331446103201727154432561045827277887472773315069317939685714783965170291477963872655732062258850711228758858103098698434169793057318765032572617772981528354195151772905930101967549365907256396158207575186534754590808344708147092608054928773809378610710582367732146552647628065628085979366737546010642353906345101009573471841956630504641675767179190792427847860833344290741145702367301814565064794989360663928351135059350995106318958017122939112490238444594912929836584783864025094074525840025173885222382420814487947120630274634908564525066852845361671884282280747518712966736245924820639717283746154043928786385383145355944122633589712405229749151229483288715345410555657503220682335393055999318991544411483310060249148079338849652395233461152718927965686397232252540005071568933332911564324497862356462294470315330654582312297708798588928118531468882161611433792241104603049074788185237130629252444286014641063641253684057541938858619370379385116712940234917253504206564749061859701779246250731801093730096941891144261040526030744781953531563838635502327038519874473461827635419139418609498663180247181171381833008461205680586475971298481183126971758503982300495361956149022800107017355936674914968094408997309176828741276406882569472477189540615250414971106349580331106425615895566593221211326338810874288951807363020469548417071849994356706622635630653724221512249173526654309574818882939491025704507796912361002784519656796533148318630773656626430020522987426862208266590980650644057350266492398026099712013188601196010636222826048179569377271937857676838917338272854177153256664845757321928241732199873108321633993965031668903187406502875663504117202059075071760223962894733513404564885050499492588275795077913211713955251467526497736592044500891658899454194702818409185456967746964365707103120391747379461232323071287525356987002409626425407907076275825606851684574723178009866873819310537202566124455048395931343160782158587604890098946540462464489832131962664892075746572231435028700924959839880233051554506581072763079137204054171061390929357688586250187672490633463572409278277803059975782243862155648685406756809014627301062830986995006445030251979052677128740945365963489606541420915294198029027527178566609401478767603969237872909914742433896127648693043615948255337018494945595820760866922179968931910633171915154438504377688002490298218376323312808788920843285392257486013549447634241018210284399136516389876156322717735793176565535437118879552240347180465635879395876127943132031870120198131241913509633997937783794371438815547887355313611673158796127802827417726456786175860141304196742427236805040087979725772611834612752771843726623761871849282134837894923685699861088811969847153843441273472997459711782198599060351641104699708316748025254607708041404423045966981236555768712095756230273724080767411300235504172442746617519516489553433445171269107901976438683083778877946016034200359054866744392161281697526316273490764414936306509535236799781000348317995942450355143409415078223633858969540547871120084125667223094411321390992204086697790798923774924381737729829055865158464835843175857659181595606564350724180975166118430210326462581476953744865854732866822145774983418717151005816376666890225808603858381370896253421586886323461255507170968306120834196757391959240060298359385445761233909704113635815945479005735709347710652533592934379739219729755108895467350472299750246532853255809770568453990246110194324605803690121660090637514773788923880213768630006633072813808351183693266507180299586740402482493724915678959471050420317820327924054800786180305698415037821263555195311544102544624927393525636597995777014175287382053566849854689115218477074506808474118563650104913952638959235429778300106688402843499069168047633686960054158437474991151607580748680322839319430287546176725282966689459428668310829290278143847630865335251674700400486288556578437523957215420581179585680862831927635161989497821671373614591816353757102722028678570629374754204403491928361692643907633916795612412526553449361098578250714987571217811818733491595145484582774330906731152665759080860660863350323331842432621128051496315497033177437679649147593833747026770697478990723159046891849649729037751811693458194218292070399750194203584074564130742633999439668448920306543115731111614289525249717895668264065164629185904285390234619258290843520537738347880227402978466632970294681419882336725429021859960871786444885636725535660745759215536772082827006926522941051520970840447161874034731660591855201743256845116783860039965031214279872199867444829720702454458416116748858993712387109594968182609507002896529220824495793423513482379427854133359205844775674952966678338576714554987942325241102305879072530591008809481024214088736107196936982406581909632037813263558623559662409005138054467773724614756557456271659376160696603055728158841223188713307556596609172272990516145475003178469089300173147507719870200454357504050502438054559553876044980294934147193983825563057565971539023114274406467876243958824375582857590017616463495000035753790888058175339178419447096046180163402623917454017133176449527810935446545704733430321057125531598245286216446678134732816363304984353016817641990242148951549903295603125498383840821547117376394272676458703051503320185793663329872787605671552337702717341899090623447996145989993151316664883799349317894022089247333045208654751699170143244232380140359402279760109002399163549352538915698785048943957442381351246440966752209298944610085010839507489935342710940991363028042822981883883615080102837437896903404433047571620663751104162576734007489380936191504616901115724389703158082273287749494510815348162438067401389080727629190675918057207194693320172384016133194572636742367062457642593436627518756987217987876577259614554898251680360761847425671450176932946521951339867242460704358632269821236159704427192240200646160229961025104458893023629502347138442402021416012426732797487017258898584411231414530926831844048536996915925891412579882744232433529432804713686603653619236266258234216974464785493636022019686369201595389156417316458277523247531673530527468532262244165989416578079863983046886438301734458371064922786267619737215012519727933860167341098865573253921236962969861125865424876073545315594715935154477048488750923467207281749881509615177318264936752658839618398444263848039397732903010520077278080726958740796313838302555030555210185020628583435238988028377659456801297344291762188723870262724865908258683742108347876969377810697654722260620528363563670783833550066502314197078664416794672977187486356614335130879499817720173299429924550514543038085136164071477546479751908759323239599786060609029271730148938603431378185821060254725458089051622783838262470797990932460597358287311832623118188368970640503645924730528401987581503196378667672732357393882410756162984672192229170919255691500145089418700538593021737617787651556486696080486603245229038187785787641648950316480589865540525876818990550331226911021703240941848164179930560774634641720195002726383662863411997292102294113313124480624204635427030676001418358709401203580443920956615484071990494363878616470956930904096510053722789361989080120418763554174287257480263029013414377546104324188549962404181502534243898082294881556363097580067697591244892478402707708060410254959982852264910365145812489483974931413536020725519812502642880475943441986638701988246014552991682408739974127663161762397034710416649556977589779428722289580719531380979869260925563167327947432456497960839068208142123032740938841127353101548842702278927781149345296220232822906841016381428843492689808221336730868975957265307270456364934387667341594957268147216010887577652854738703122640571235314033495487142144566459425777658799101955967917363599218125112410406638993730231513161069194111401013221177146393639877119035622362009647692418240443538897456762373974213919443280034859911040313783751730151727179769223945889161812119823588590705016785656714565997376251768737423467424279587381692116134621970780504287987252703164317729406280113712381195175410426316588011755448633052167859743372893470018489712569015671755751619645824575667370068926275398093971349424176821168301619073663806513407728655468516243743925372045590009306468149863805167516371770101406245636425624569016381096961557027640293848769344142296316184585223322336223536250969510702540047059059593070150530392685107123268359630610877735459374992764193674449755379366216140017648442441533108032426137541349716193271299510362930123898793456625068157391582574830886643322227619818782990570155974482559205788138727929095592462446301667078759645969144461040999418956204020627419037925953651405823276879123688857962708728755440257318889660039187122613939308478652039109411132308094719035816296731960429521475450594691378615197649975768065856646731843882262529619067287811993229723167449724557070974229492555399669309860347575258975638078582626374932954418063827332591167440199391124508467162205676429432990340159299275108500069554858826111319306833538293886105843688464206851864883885221654261101175952070533306149034481093265058672541686459530586358529183365729673692275508547357260843562593937475471378364972364239814806245315632231762734253972732263379900052853887957991750675012479091320157946230502746808922589969563779370834916601779251077688966644025336785866011184679671811025361132341026046903730500232292122150197377149843360723765188369169727583436832342474144358831961185370510369822073225775773788256335250232281168401728508137605796868592966210694658821378167218616392103829997040082871984170900850170665409869626385736373239964789761966536089797707842817529089940614941532037735477143865881701749074520538418920871293052345428338518090882856545033760031081310061838246398399403631858006297954559387209823701102658715024168005127004282092026962732746380808147825437721718622341265271233378652010802807069518108792250601179833949075401170132158536270755813228890188527915240322642255371029743642188398623833515251083198492883213639421791192650389833990019446170022176555160234279027531610399058804774577293270127956516700717273712947141726389115897391589253887641151008733561503295247322507373522904949163717049681659759164380057995909313526640551509841078244352616501653967100797680377071245545270517459000632618021443603703919683814933428447766792789238988589901573471532260296692436164070819288020688913920509595673662243241361579883009329072910026614075787563624230100932825594059994240369482788730479197976603397244380978785452595270615898197188850320032246432410059185715797780480193213192460697807550923547195584802302006309938512645757178487595845836685011986617613257023742002837441270298607091771316530948361744446072634602565058530511602055334386854067678363796338671405636804895998750640805020191102781752019404526560897407649986273170031565924153784489557622614257834279769292509284451369325741733017031568783202421248818497269471401796841660325103902261418495624997865527798784945274517051091483180534178026130016451927177422614339813230104601405277218112061690482612187155654651888628351474579969995736058872951945249402687631365262215127514826785851261582708947267943587974626083202361816813965350416112603438428935337459722637539809144826578995612681788282568346211813993611352389629815939950435195420188328238537813275543863381083526923052053901545303012569301932054751553705696780844614066043636713704483353184471513458420249292407062175182908153887217320238151778693901873680560184447253654477322462380473591425274977832132324425443521745796585881043494681636335125448998196850883467893328666391033317639527190433933296471001459374336485237513515839898188715958488214959965955456700152182824163213561849300758191246381344267433517256531388686156444220882793058574750437108511634005180605455238068104888622296610991342730659354422313158856773740402795406256481456823109413356822078065975300845933691336363151082319073847960062328239332577685916159859157757819997458688487141091212569197781290273393084356884630060248866858394431847181891837774941917415930005023245542103052183538176258076522183321379074014626473046860230490479731375977931562143662296036169526749000288021401435494208427689909029607971880074543526556627509341006425384419567853816190918363088041860030805732903612580754091865081169692035717719353661113698363258234466938953246437518688061359826187761388060902344348201795208062036011127316512164602263180217146008929824867952258140566819012128081604360961847161772044122160239668302205048000723994172119897081396526501792374558635048291625100486871871873613950462833948033854616019151372424525738363208116950242591140087398563847903435916679328709762451513359351530887119665115693902788425006494166455026031790450809448756532035941184584832379417689645786977355459873269720450417812451963422222394949996295438823452408362867133501152245274001388399264622373263738893658499158101862368268782301861371672978292153223464746933967726955908352584655773173144077187148296475353176220237552127035116412657989085932101447554977751122216488907866984321043632709195715120638136331764242302693876580979649773535313422891535846806326087840666694997202622974814908946283957310925938168051370287253896131262112718455272954954644345509343194049505337727954807598774451251231090056493039518256574679050725270199215477010106923236889423957984255642729006205155710301215002429798469087863638716101195448036926462362998703841404658768443790804924053536106439326224327020706707993001109437658808808832343793794610317790922981215280922414357767855432772186984866289175498269925604585534955895242723148155497561761844408691727279212562671770330699895369769920166145483357951655641383504189554900551283394575335357552204533508256024984579266294683308598310890020083787393861877080611045781608267330625318899997855107212124309507749139802298495269099625277068385054950616121910039726249743762997725945376052004033627865696042184266249852269656262194938258457590959216059229347656442803344567620716027009412427381456274714696753732012706271912159149869653505017853121258047122666631515315213289354727145612687944051605829699167943846812863502400722583826362804317089401962532165164217026060664124820827568678739816917401795494294063703470529872004809947093637259482651483093036553586643517839147009688179682818973596106287749747421078578342261023659777081093712822761691500906468988312404193261601482380733554359440818891736730243359828674973715079919200625926508820020294978359512090838183848484690827791427351585674510478165425752166112807862466293695051745570424427504468071327842620988951302220099698288071852705365403048782213747612700257042070250365597342846910287673273254102712695198104154572913292053202441856278908541756498765567472543563377013782238590164680744403688556932444098930391788816289598807880559829671540439870786938469803972987802419887608624811011097379108401190382759908964040108787056347563710458864958299499114917632991065714652088434630904826901585543574055503040815203571452438050163947200028345900594241323425583876757647048827250032349957531720985906030581798999157825700119917016503648784400616696472707262763460635380413291025303391396484113032351109462470617271891617705231668373442731317214759788420847806071143382157297623496168253710897519756339341668946754802841328995919828475670126212569141482900532882290204823338004287773672328026606379341449907179830257729896599102341643386634549878150942161087207563026659714378581495249420696040044434879374728620727697077190446505420792598096606473788899084069278927099429327652993305814759194324205811838593205235868021869025240974323855511895975919066670100122564659394424232262961039801669539115732901322259097211831090995783149177213081069570468692965672558248538559090648634294229591482026315879809512699298253161209772319696013280301299971407716120788273240199300555707322970556801048784548576584669657558149762889352335870149722235198699576078427323471151911294194070701837757357052432743224476678392695578913438165073513633286586058555203446872420539295209208397880311206866468840421938523606169606836716902183337891870817344738797815404907726260267396253073172090957790535447052522744465553484025899714838126447460361907637745810519720873772755631832583636909687605344208860352665942829471642804030500935609073605971948409776802761152783024248467765875319525194378279272292967453525957304419111119163484219259280023406051987032658165279052037879029506085107477234594344699918881797730849973055282023273277071991796856884627673884214020100411146567314937635512643050703933904888188182418645290212722979275513154960670686673587431956019569149814896206549857941549329784141406781451569058099629908013841311324021662166259051181027675964803148590529009573378078108430351200462102717734444370069207049205242157347028647338997919448024371586823812097838057957021197625378276342811912833084894955566825793382716243052921588009388237105803210719503056216019069616924096322764485963124525467145893684213149327378164277394769493106005811117631535666959664309358035556098255248616968890002990544010304003795386129712170422691182094643232198728558602589767264214447671772759934012058595635282838820666729355289929768331250396430450919320081470185298596749157148172492537612569855729595577910053273812294722344100108287160622144829770870771054472847443555976994342020879036487263783166533034242200115585667057861984556654238604126025460871166442032447317567796516101363021520747722139457114457194206006669738504101773589946547936676774240738870628594767966435717108354907906243180228527453676771607829000151883722747795015328864618836575735234140915882477395972865517819214574990668635133016284614253567600339646059467804639715955146834134636396580106131421227063239280476699853550270455543298839148521217685154793095743732198441626308195450055853508353271913013574992687216633707311369034782072410174255271872267497184151841005312080854893296041666801901615163325519576972265421840912217621397902223702976811838355359214650509972638819494094926445460060078184430238292893719742214638276748539452133731404306242877122083210065669507150388753504742095618575866551552074634584898776298582480757877063109487306991700591634090752621540206259256829835757273870579306558046800866803084828973515343385670968216615182898218588801862221901271842005984087838972864169695671842677844729094174821332211237328634893782062647400406612851514865242570764115914829629117076815489840529529316236535158715125067463951942260366018761903289416155596482015683103908863242881099323051226512826181654645076826829156339121412841058015785951014558527933570420431155969372088715633276243953298740471040139031865970407636741161231923409116254287292093271569959608162005845985863268915679294426966431483957769063261450803317075267080752707003553898436921008821324766395959942512846624271705807191839139682359403779610548823651893608571328307238902076538477106534318653981395607314135977160197980168559140417702163475749377623209946660382529010421812743752395033571826046660191964348262925015616679363264485410228520599619002690867933198902120718432426345171289728345923018541837616914318777804369741301539949753525859935356484025202821558537194981569668271996805705349443455804563550529827882347617626241182602715967681485421059246525482379007223445552693825098485713414810576769889233330225347548047078377881694400405057337937682994073262793711588364726090014310486234443713020304474421659596998707917618514712551580157158681961279481548319206009397592347562431322833010495338096378294683907738819694512640848684760064907306605899471358277069591954659826226189567776455581786197439280224967886361684700943661997109661260174066104454132460548209009972843819210013299892356803493134808684599613904055205800928839114896230893611280980037933591500644171722629102120043547885605681012728682275160748519159380718842594694597294177660539826262664061462387264225938890281878977734514310181540711239146501047980741690264749817065858669896929949950838053700274172693427367213498796166225400195881784742117457302512936526506312068720144199459800193680915375650941595972897735349240148171976907978785816038237491492352006290734421950742929035076980520146727655354953064588623079769882622749011115870999440505439501717904257516510125204598669371412577248660241189130012654051399195747447326298780531414417382339114863105992870097534114251491302374090538036226726600319356451934509766533665842058207318378496593441033175344605083398562345101484960775144528649997009341011216756646745914368056613759257534581927611686592872258884576663727659976800903948173485501718976669895314333863375144742583436557044471560803909702328595311163917453031627398111416678603298610808672548748601494980760705538394284302543413006073964599833913246370005656122044324289838675026864211860611974137402985631551554905215628372130398319152606398593893707756040735417419496865896349143855348297320814580465554570307401992317014622091200125130559467484829348461903577521334175620401437199414911769545094129586824194006724425963280846549551253825488020123829699673116503463483174695062386930627366545636078780293380888118664493559409656730012038106630209312569804985648838310668908861463187364961795895879493940012240477770520978355033655408740139886618490470602020274935561970031412557881368130335641146229997308617021719140693914838414465610683755333702329494427917004515238292575681138235778050208967266205608238793868976426642487158553465249406898839138886730525853601663916844069862397892423364748875361584068398691303247997126970845124849172289818070534146418036120632946752166316426227359409896361764290101227454782146550014323504870402644253486537252252894282021461985074787375839289311071566385931816825040191840878900313708204691053791920264298613879166176197551590425387214133202869718935807685251509887404335967875945786696132966792683278726309837377722076430997168670066323220617714024881624789064618218903429986550559076931723111293158754512157171180205727143841614550106682097254883006732764258356512898383737827719392140544079387526868782446903326374923525190430344121845641180734147562646052108747714253475812223158860357386678079887631077772403316890644134722546455774215900217642334852190045635051813985709037504445818140011230644934953681169706798644862303867840334913024264823681105533240541032692516737341364151097031386623807052878420675878860393962503474050892917541706243477419311436002654663486879457560443471039078293202353490814367729214273105573354728356009487618274155336125740577113121109182291434333455602646586801774818641657421037800310179125688772181555838912020062451961248288484281000771378992025731557018180923353156692175622894091754130930939550047193976229600773682150245796690726612910036777952026816250308453063832773415779406204296630886230745801006040003260992507847411641511420863315306566416438711965163876038684470451329498460593530859980476044633890729176289098174600025545851558215094105702350442232209848034547562937387907274069246657453540405918658737130399545474600056199452773227872811559935543017211525066736520697664577628632464483398944779621231502886256164793359425467867473025950016157975451734478194690939464140769745426502113769194100261378095902777995819262810495390603446762214812952101579800828245750266702179659818070207712506473988827569650893590343748106261265723372587335093669548509610281808282397013911082770555099015394173822237470162629438382434775579121437836390994354536522372873964908809515578915438928315073840340922333704599774388984480501745284372308845667128719022760328469654944102538583404603852419712362665656740312845243475437199428208623944555701603250593296747660977512173945514398671005794184240349229078094370905359082341368987150777702584031822521588526439952450947118078508341179652506000224317181089304794424000294124981852144107850054109873146596962558196749448566687481087707988507466224571130402578864002190833300521275751934953267362056189834481620033846641687818025320850963832460653497052546434594344203749835128722950656493071065402319792700755208251436871287252325673454034285365632737069535300783023197565214366258811503193273533705640471179448134410204434669758826256447558428562198983632372573685896000017959514755272098348816211335097234370883898866862589538660369050604211379430962160568288852121019006496945980423689210416344553198749110912263412269151248721920607841321671559388351171688832115280232435891268240185139514903112415459153663611785982343570031663876727681220245904840524112001016968254521284484864041180034819698482605019612823272580513063820731722068046443995228087135677590312609636139741100917327546079248039003834732142650394708609221026091376957908768375357337334868774927427051027047910436493460925895607637508621900441867687368759220890761318125970790118745720143948501705781309796734489523039971958274321089796028291008418086797608760519795075949796443680312800238704517360943834069232340954659317654665537207344957006280096107503152319950315800388518039474175693430846463004632255270531801316662652755509326054366740622323512754700524809162061621500054506153660995014392728825644969605939939406853064876178406765263330331099777786976965387537371953886740552475307172835586043766960751304923144666110594366993903209295414325701944107200969081581390224669548712678209231264910334102589549432062014793250309287388021485690413492733286169069167262680868164379518460153304556461407367543800296145128030400897517574524604037814386590309893621448126715130860349054082439884249263402440685668946740086636165254412342487772069761588853622742870762062156428680719395564217801920729609657613349695712740181649916543302038710380042047507294408576178798875694218889993754531861904867925747950156527030454561670573765386495335006630800885738573015478737450144167072553488610474687194964945153147002663251658244807124644223027540629719740217643266499393367017140057666822950388993194609332102660316399062356862648275859207693240331568759212001566526948438014552564531993390219675442192763858542833697979239023419219622873562988166694815516858237480481899150445970435628131891777157959892379241749731397610994028353418367904942648985140428019927025044313679866222334330554893517946094994749105677175912593888782831928316872356619738202938661551545305948915202553510799053078575077767148881675308116657169190008869582089523459631328953396519822294369442083245068419593787653540992281183645500767643136618144337488716817112942433872478334415604619269731328145299906094871985975173920593720062628937387482178739992938813188469035563518265345641867133106486982248601415683981265256202994336936100190464249785312451550633441162509160736095576166060638785629851162720316817997800804235004780363374469279419614920710591278394327397745699030629456097347081313819435888122261592348732033908259325342681521478108070914171487273961860155520177031004896752189106121830864508821429444613433946778796748875910624947071941650557174345552684824212975716037938015232739964435988325762951997658457182714051976948381402643351134109323527864556910248911611384186823056475097873452064459204865194889559994354858458557336651279422360954350905947302707718196070234168829852079695812173599239530535729242079294384756631645205084299170260700321298969192851021276564476015447771578129711130883663328014897411380508844355067322344209671294272259574158712101249538848027933948402415356887207051918701796637936161449788564756739481039834359770812579366052488166193428263330036699547026047503830892626142267345217611775327218272620194139477193375466609328347955015119346635631173940486334193404385478315176117001514573452501502552345331393115052425743126854470943384156361036956465253678505171332824029762752697881849020692743797922885035027018567012719787894549767126547156900385581583487048027012083503067760518945004071526965671849662524429073806961775810313167910292193014941355210893119632125422817883981253512197217253199754510125229387124055327960120528396058599193556344688205641362959075398134910540023136786653403675784444146810560920719423843866600339220067406860107000081671285972265811037833954892941377093398486464833289060292910229916264401136851591170179672478406967448056084574703813831117787894725890945353404033205622962651883585163630880363669713845129567923440671195689912776440478195394783818993832560893728027726963893108666794592575323895710941623504614895169979149786269814731517544458558611979671219367879051134793352420277688786122492762667034169875091129908744146813552533629209966443087211336830190005361249836502840321164472890340327358887121710131246451320264755842131555981331102570743576574999975033083117456310824204804037969248517854238416902961711546206593855249305449690027862617375783481907694911912023607246152280898507634955852931425545980003200024548616274825235547428073311793532398918521271285452613358019328843869137415223613708159778776501748663213371845974515334828637042678225742468839082722558226051436799566949861758595831836883487602651683600064773737820352307693594584718086339804926215152684909849065702558013024226331639948164053800204879937774588179316746698020473227663649667514929097002880522392948281460173257701196991139055463504722025831581283178777855403331079084981189416516899957959178401967982004935044652689437850650365762334956177957188113189870606680496762321119110436931153138048728729028667513085422504589906849356026355024344034830036786927627265058757553816007094836929364404704059610996335218639232310796544799320529977552424926146108075352069361478069784614654335638946121953422792870835615604893310132072768690259180307624045545646346088243297599775872102591878975064072381513657709728302908520943079319962582658460877140847561933551402881161859563966672220768960825788993961814032498266545952192457753482104698718026933123411243568966176471938162636716018069931652067198169245093792620280933867608485362617563425627144095187388983163104884565817406775140753882182221804576426507671641834071035554876303787025518538785741729671727657228943545563586041346432107544446940111038575049357717645273331904427382055767206875902442797530262926136895953553079079036766066503818183658782873289592335829439449613588902319482109724424859425008889327711739280181549495003052044934568065778883773952257515944535256039378815812076195755165698533870535748235433801229116908227147232065075450927550465301332940874550863029150140896173544774789321487829695814822055364785741314221625941744776079762784609645645639140714393109536218430978717596331535445512732986493586535097791007269386550348711666987085437370628480755391524291065963922091476131377674086843177662415473169631190947716475857380911233972013623015789350353384298185514593512930269620978965000233058472086813191179432698477818963107516405706456836034811806774630791592083132740254546349072047889052965836849519575599247741611857281321690636068122966137910812661872791987345141212405699425610472507721559911857620657565758537173692471827548532591813858922466609989402105053758909500985270100663986569546638902394101030755896775336337279785521819976410151987029095465052778655943956840379909710879439050496575240509101769753645237760448127150697137955332280075127764816973861298964588640523118180292326993807929345781743555778629736877661837861982372419866928036047486606366805150371464092645468241337243356532485965707174132271629460613831642893933091157552953596900399478578556718355963333541472314585494836206325025114811707630090135279202957562620858305923070617961455443812676227420716813712874669194762670516182216585765736835109920395650566705063491799179713466828919291198852579626308097961244403497678818918851954868497473597416188825919460080092669590918919279327392663440405646914969778986982248598960665012662994662886813731357144687667947664574741702365811276025965322162585664560786469604788344385305936567639257453092031834093573142040452194293561401168407254810810007706691649854897536214952511338012060501728987129081047177827667533683573149288232999524868995352975546864511450059073695635710585095425106383160132574564611370778945057950411253862369347971133305307393750586544674930776715414917054601656927429407811007474686094912767460455794037997060922620259569043991264903048804698092560633297898825694417911421620249407828377703811375622882914108323604559011732532595108841258189943872432069569237345697812435580787114082587147563941617451433869518065966033035993628830299070724025918600951405669611092117843757320629068441233670265658392606040545085990392604650568189984576896836515644422214606203340817586340934213900634562076880362383913557340942509408463976009173895128034805001338480853253972585408913392074958739835795707132654504587374301551151480246198712436712435206779109334793152928664719229822200218216235300876748401949781058639867652500667390794913240308466917995704163661422447939953235731684142750743727296213983782655310598405058896007654721640663233190443104441756010825383374943855253751307721092584096508286572777385998775942505677368593162036011375306814219578502151974746584183221748261903116628644906904776657369286013697439939415318951424465369455157003132273034722394182374292227672483206440769145796050948129040770747049875876143440312181216486979285259167710800341362925119860338733156476991776204599753903290997313529622162222992984851524936089276912230250465122579679225322638536042087679001183994969501284622551942371057976677870143388371528630761123625996857136458669525998185448850056384168699905687591394952982021603590789379526526894050394140332437888804239003929499407669649353060261014206212991110627280043672069682500667980230332371615685712027464256062012956482149394924186528768309675261460002843442892638656073148193558234541722435071654737212286010525466930479095299836611509834136118737175998539349612925227065431955213340150382701997055360595557585912292835628353666772757753521923408407433681176297913525319423684707706106387605964329981254034761116221112874825433143358326596717918857489556104760119968455766412764064574575601325989294518987108256745711698293684244447387044971360806213915966865323740694338995431830089378453171352775291279689146499707865083699923121722012034371989360648365391258876467249061623375321685108480031804406378951029977377202630631715156974288756002477856594953242642158610148050742272068720804656641575783497288648155701226432121450055395802650191589191207483791034517629862151003341327535993582791052363194017166314276827679307604535195632276830704239853263673425995203523342507247625935213589609997227751384281087117454789177093417827216295844132234274331337706607973167395121017302315841282306154648627629337889652469305726011335571685580341100505907024989363265967312479422122460667571632183065840038486194450108868858565479081443740854251049476504419775331017375344201763596168067096799853918155763083434700110532982721789949299535249790339473286532432196149076985119382090220831503747308071736549253452648678883968181597922154202574280597325121036508566515932116386389825021193734678200107202210643219885278528461557311111626860624562628087595550514311406508147585574769798463705299460282341777045193217267049028801536599996862731993284078419037145472253748237768897301316726466304702424837228535268486421154563066219027328347503980992860490277836893901629878834235106164840525404058983811190820257737578255430822928397495211895200142430800043094051607836637465229005033763927370629695026820843232250262871424411006002605248832584427255043801763935331971606593131773217494889724295123907840800342375436987996094817801584372655117747838205690449148305150622532301383535683100466127481552734301868896778935004690320181557160128897681483467715989224707181455313911300664387847550715239943076899880333813024223080809653412564883787354838247284633482158076739896230053525625655010957560253467039504968891311868058532325446850788807033221703478777651145747453814590952496483013949176647637425465647185418460527929248924159075852819325107477245482446469665451724348226871014929177247534196504202787280083326223008360113216449309827620988729701087496154033276899913197933300454362598592184869814245693554830042196543511411018254342687416145860837949601504094938649326208262764443499632219529266735386346696331068046796490717424902743366513698322477675090227510940244333967830720735978280204502771438165554132011418574886295559811339234736010707835307127097352575499232774117388492451183190096820366743311527988315224964910326985519506625487217902776615687034999276990333421842907417377176270306241723391341112159355797336971365784276429375291662355204924139085017096455163266259041147225131767849578077929004335805298685009093557413341011242471824518226209866212161727374271142591373994672094629624043469199874885931809192911375144429096295407826030214316745223235259007050144826932274384484667960666756997829387224030344296228029626935930373001047882567480267472973141796139269380667325647758438231019908980416769665391856461264425656507153846089271371478253196811029069841172127117750508264394750730777921957152027183149007438075267155219490106012437151310141708530290362275541932099909093742112428868680761839237167845343318497870731697159342205340066608532546881419385888820640552655039455201557969907843331348400352828506469615815400482722005798628183830999624368038548406610192075006564958395413272846978864470830591434401369938692848696702164078172163460638736546209323722462562206977157331537961911308574217087538091907631759047268624432058046525963424853681300967397166425845687008249695766149459607092255957142245324680422884428135829943649039054619645304593712819123294317778028227262250886310162398859182013788246353057026285367458649956805881195211228615531078741520469435984852971459323608860042231398726949892198095825922887731131863648939033322326741140348618209754923614551963590283891602765104999054521995532682003355158648371787891101072950783673257906761586434294226697042571057766175916304125195098238108722295162561201260292026580068804550908026502599127116495577444552119244343621192740104928193273973342492362477434390558939966849002858180927200247044565970021769070877833987616241916785809044053894539742352693911816284613733101757288043768227357392207374437777073617485176552917239170492727399845232524408302852657439322574287439578873622854202912402033813223395054234116935085097269728865303140330515515232579396002974769410380418413568204556338930199203644648017353878368559342494852588384489380584174069502984319694096116964511695286685412636956741516075106039702685878268023983366043753667624395851740269611284337467791513640783901882295226803548489448038543140341898483418666491098851441160922213638533712972338869656519774201578127313579026492728399081687236044795228121271354222424968032272470697327028338602373026197544807951200736612270022312666492962089615806809398849434486377577865041556647567918842614198420209505947496726112432455386760689470933817178611374845313287355333156939777761576097291490450847857822346810101208684271787241534741274753960090567433282026455460207425084595931917927873326736161798457645298824105232242644030418246704988587308850027720714531675480338166369454176774883548916493620341114287689167044615946022602191504858302436735255888446638234753052344823565419028910135118294095403181387369586932155234005674247801554216464864613495027127259927844866570382920487295101255552836033748009193398495473452769966887352915167039267291251576445863746004678743304431099439923513424829991547842253137082441416831756181756802444292347106073136517771983022320800979591160914791049598713826679236567858283839546345658849770414572993714716536683471099280477633866826353934948760720342056128097097993538542384646762011644186571203533337789242936105645021561350241930637594719505373362377525937939517987675450385135621609072304509700785862737222694131555413617016474984662257420049892548809648288826916602690602431912571757854008056783982159691497111922827984693336554536975015408129189155431472144255217999187854585505018160835467033475466733806751620339621222867526324191610808728257787215962421253528688497439316902011501492668530874140185665657797874798780863470178121220413049840024292559979086220085248011559874815130956435660778962398262757877698004332368688384273090818631133952293131139972577887676026158587585819683486038913541040278213263792290664999124904230667786051295994708306952297630656771783537624074517869478109639272655494558626341557728057475044030421820694332305496166127621240084133677921773681700461827981038890461753834165780789467050640474555618015727285844299137387408696970252957466809374779008679088591484836550215578762671498311789860860978975559468816541330449651785552565477577285181021740135241258773936429200984240536551361141864571300742212441511912219251035959939225122349369216428266784005541983180285211742911868524461679012516306930859680781542591728252876952814800606268978254715232704874559238416979262272063742352318647262664103156976747822662245578806981145773283516826988938603236810235370701391056370107759523970146564363032385237370567531327070500972232202406298913725835569046277793847333581804682769591435449317403746993296725524794227657025913285676108501011398637732203463836384914726477423897494860831698546359988743800122595273140651468326670653376413325975544977008716937649842981008322654935142620398742915288003112898200128489916500148991912042562154116457514185104289210504006808871313225937258627517530900378282514122488196625124211352418720233004746928674047441295534913903100417336762255762658877140586635233426608181916303215081757309306751325990138077396683759863113124220036221812863922749181063437254576091057139139088206624458374953906163455074206079873341849873721463977740570772952484297574244627753199798409916026618970731206675746863197961079696280702644875789842072761977508786797308562619742025451308950299338134452308349547273116187351560865535805097488554906504413190735347682424869824984754061160516363058575862358206374404780264528376485590629612514962462514999621012027548015967203622358012479212379499609973365154245104549218443589586631945900989704378979580506499508524597410572532253762585624307027355415161208960384599696280572212695433048507832222501859340310274873536855615302258873107316616253454003372110862388425683678663757615480395163527172881523757089798636612670837305970722208944819943616780096935874134056332930070140677965606713446520590551635037664495694360159293625923530471154747043700435282341290034313390157914630714959888312347712890575080628465026272506788637041128913003536787432643894386349853827023353453710790941029638527776779238674162999565781736007417883779658944944782106273512315966693235420003078090575399703100838950469943069927406002003586269551902024795167039740791154541179841490671649357818089033694633232058278376811174672791497215600339158290031744528602298946933149847542877240261730934932186651239184435630268164856055661215709186562300105614947194134571766068749346679686093330599428181094272940035546868617856136060122559197618915711853593725600524268748223852493697223135176658253398458262585269985305965581420575748282968895936821302583913407745771035033307658058129908113538582882280814827878903265233592835806160201148414679037084622576582878774414142143771135622245337905080542516612026199232015213921849903134578690215124541615117245912685483556870603398172190544130411312498380430700316909270162633255061499108510333797086033147742546366312190173073798826558936323848603108784068638186379872148866082076223729028615564285328470493730970631465870869048977256964784358497224069864844272418760574879147635856206072028780033703979189444009336154609291714363244976941971114886284640862422319532427513609410698309893223217682246140226581711957332731717427301647257271935481771117929298818089036275125664811174193677222172904845642039530512717186362190777206908098043146023951378780431788400819568776132009263603921980268682610579158914249994193469662345788084325295150275197486679361450322110736557242290658810015329441748651319709953584895056060080684484983635757563227947181314274163512707408409826566492762947861904416409277545862363506596476783881194040270529325107884705718802460808446983314499397139665251446612951818713376513831331230807815158836336242548208789533277553213456211590078166201789073143849665379359456375803708049362309544644422750448652754931574455172132190864926694969492168416492352190424891382063482963438658018926773837311314936602692537957638282223947938226059447263317544871900948859728247218715798986198828592512654301694511692555388112367321535145910354048623787292806602512103357972719870258035172082738582906024727386877580746122380641134136119976944972692555477504532826801848746053293770910981734729697956403512595274647990408312413550346350435736458234809210692138096593322040912872422038325707524928375513098709542278972873072311655774609053218996185376533080563991158215908548106357460831972445512869384252718255503948132508326721116370132705315729999776760241611623144035853146478587211413696608576048128470726381643490167846807905769322812911964182887505373553165309259121677470579636305207893493682942110922794136037856325016100813043774730104582456927095606739374841374935642900655789006980334682110444984684832363150803267647029805788802379946254491765837946594283082121809906758348411495707899275417562315552857239559338129482018096442931830301198688969989773041532030484252182544113481603939615521488034905762694528271758808519168163184899389573366171133167748839359562994713165913248529390201122403950019272826149377766040206281652948873007210420044058060805962088051881580988995730098494219444780630658839334975866614009083028673412837440901290141846442450455645182095102910039734285093982405291595428368491032392772665157731024299237959296851690253127826693418515234819161379754155662842280717010306068951148473023015677967623033313184450674619350854782904745904824000206168495914253686497013869247761692168094616399295967369381622625605346094594691010619629396645250083886495426287427135085655711973507739912162484078867099072769692171139472675999304348481733216369495268897136123287502995020113275885269053425047377348663142285930203988695022884633750712707851696077084882607674244996859369296645015319430658983765138300840442298508534200180652447073473456168063511296216095358768735214800643460152826772912590663480359727352196700063553882748847256025460072358995946587620886954932489637775552817137094187582674785772351994396771952125342319710847308990511304598841114863000747146281239691780768592877446377079419959239615075627622705874251957247273527683903574113817912334044925272970274215777840803224942646466596336268936662975013506741342615963064904139908962978394096073977847423069151353221246047060526693672304125671517027699123350237170501980968248973837624969232039443644429348765371096457833470339144194015981509751654885825775067845691949392210548142437131743607881270830705407225588351783958039806893705918050066813247655690631708045190438866411036018336693534106713075789462410229041105927241180012458306626014935210580281198781809639045709607769828619911617990445773952650206816598945543196314520049699352551905418025872349466466377695143581097004673254781197001857102583996571940108161738553000544756886244359042076639582449439253565547175665709971647430714172683488850906126360039232538854671163550393858169251661109318236700557310860469121809670691885843146375289459556359532852416238136988232292254830932735758067405812403030823331857977401226866771476700876176353633073375716519726778095888597083326052125172959114098559054949832527949678010523945893246776457681605114628848960694063098758852857541770464508128794021011863542545868713427601126124902505177471987880019981297141203820221253135369451543924621502463690468462541347769947472364561044498889708260173976696646979550941828911385925725270324526356005254807230129466632407292415284084429005827110506333778645570117703192358259593694832687057219351699921511281197697938330604092557668131426112941109531683811762779884720162706323585392940898334730223540076014169349723753434504188472356146346721739928042766265568085617401017125081604697025039393356249864979539560396524433637647041146584622184514945134049888998251885129794984299046496207257748777774245327455149783217368194451201606599351978239340813869774574951417803530420428752096602145155194141640279161138804198802356456964445608854128105574904325451420159834634688627069636972306653048923154047348337747815849896589744945981537675684348109415305515328932103045728397493939317912820439327164591576330094325885066860395203313057863729916113994817308915613282262155019326510956259248156425832823897878514232268535932975423389519963640012475030477310426548566727753070016646613310489889370464194599184734576543840942732343308104371323497912103431250359078414647587354201166951540255956570039748477951343292659035135485986572805149315245738634137889734925649007572908998910279214279913812998214296120014267080723834333650958327403589764520153360517453622120381856391839148092019958129076167138803831170800281760353001130432818131513575329267504054981335172859243626115872240071793632555239142449246147176223764070406824973672018343814654125310861737400295158354394666330592537712881741697034462706209528161306371812691430127862944439626111672623714046584093391389782057522572153857375518178933049700531269609657790423007382505234491455394180437053289505140519447043127042415398271086564121229122847749221909666152867763684406441057395499088711739364375662344875235863914906249534374065548844647126179914920535370481884193073575797092592023057996232144736929746613838546869783622138469942654430081516459819706479987215770539104427601404825452220630662628588762890323379393379826138032101661936927796722282939278556391245913087839872335892410767467624254987494954224177405495540151946667882333213381087835490886978052947072192421197261731919731473658358326706300893081790565549675353880137972225961143920599302863967021480198079031912317934029768468366044207003273993101718921290530314422694161641370738688182161416675467723950866731590939377702916386648758603806868020702265907215915670263125575175608177376321074901052256021243887953927286679449921096349744452566565027314828135477672065511057685095143565645097199535972594988092735579360463160712137052841224129418542971869478367447580009103004263096930780364212845447765862402538714440489206440751288287265938372242882417178618714301335564378463860776236081997470364525875199528362840781451946661261809369726335194602248718674444479135194482821664258852799243056863776727343305936210876263238762998792051485886244805842535817446585342195425578713880740434167849322070903127518006650171272778246632997473959507197546898075448950851137591906797367149735033922105312082109065943769622062245268050713851706306281965415484951475083307860403304929551311877118800448158740473631095671552397393023140767740261043087196207603354270362725876370677715356457116713040249793037370952251121813685578143005667629661944596796683896348440999620561478829870312575930861216079868539393118145298132799755973530101452680180242973066544017001659861982705463434248248470140439411028981364717936841921067697328513518776454860825084742395212404695425153358324000855094912322408454315922003365749552846578768087691611679049709726302216794387829229897343992213049876115603847426339074535081395436067793576671906965897656983629319866189556547077341638015138665906400261501578192796979977682128407697533488416376342036574934363164068606071518900961173553122560255618559768432825809823888948946662756337977595881841284213045187088247107141566168484345915449370606070300033764006738756366449831722581078939046328325101590407748079389533686517825978634757474451273681176979486611309555834449066750068179094210805500372304418002751355800689747319410751703434474219228667451757594459574604162956062242756887687421151891092885080732691610960741534805585983799961695794155198341403817942356993498793136155197413797295071762144285344059002676233083568923958735977917489259636027802058984843083347534775694891649458285557374101839552240546155986865102441607685814056476072163782692077767573327226293589148920263349764926774702671721789955578759288243566380897912712499267659360220464224726049493667518385084257815249465282077151890839792468549572136938744146190833345052253565266643625405774552803487711835838466343771224181239828255877619034393849498549431354217838102298397876544547607512309228463347716246903843706374854909551505737515534518915034183505939348152478884453096158280723810053355306487703752908601069746311669496354719461596914422216915636566817389211831348999759202652598610919768683584895231109403909506134747563149199002698744161963083781915700579513244384224735907975013086491617135148449580424943092804065960190809093196617068285965028483646645514642686683726679210412779900219818187827693002407602469306529516085142846453410424358412649042720305445827351933538001475211925870418819370920288975097860793590237486921400844003602246752059225992108109494135061531667720819294194173182543607811114074008691345493623090438200793464503692468877452107250420928806146828989969260150356132470110468582804059459741388847124121875022852393148944044187074545554869251311184374136478096719373404380849886262021433903680803372902493027877593526710867298941551258875928165185395954517221488412438991245946772953827005980403637259687313583337313428682653755266779108199009094638329526494913594966485730947621505496517843835101564625985584834414114807557475388075753491374840270667189877782320154720273377011072940456812093744787618757021928291323073804730781749247901519966494176342425687992296156595275353250396646569592648808356050333972686988927997694584491516628289710627879121767450446059869223260940603575204214989862161525851026930079450201040080040615535291487314404322293558916294545113196461080840657415641456370560372505737047900610040200900777549466994772513727104600332600513348737676787069631373249786885085163525561771594893868838496203070865335832413623652202772195197627120747322479989270863850569658395006322514907427636494184835421652323086655877819426733287648256339722825349140043721499607533309377475613400543304337037218523973873810392206107640470231891459032607471118803888334507351296085893154666741489626430604159906917478896311367668419909662245713795195583683423013484679650162068807820127999949197763324505016526124688039776169386012707479744683023873951063096526851030536520192701735911681700036181904388001309695318952478858640827945700444816841344475778182476114262624852835012417108920002799949075013229664036269067268843213734304206567867186980559784351186445050805424307623816121000856904841637013472349885421605201504304387283054261078779696812575202417028995529055574395914504532723837016392352660835858571982724264700330791743063497080553770173532027378377331374548127211150596595666768575449134952858380635256201773602556018202731840392366992443182106644132073666473880260189776826782224390601556870291494775865656074365591396612861460441912685991356447366541573459531943713760166118555358030970298398442114448989177892724614474267452069523337541963621362825511349351885348850091705238164073454017619086802638761975598401484026328363745713517768549394551760626718795374887275880299044986334530578943157614840768373910473415073245265696031119183046988432373435440155046896121780399353622372176385912119170888898945362245083305265831440954056398740210769314918346373072312495499766336918294205926170807534860410461452686112160440948941331104347269180803242103382903137072860972674825969184455444534505116785886236394568551885578247591065608081672498077613324078418230349884802999357016759609453483946203188446176009244552651446809685301938084047641262187696517750871995343326107290039356843100575388971089582382500899758518347534998020641300476599418431809508924882563668435010574174987173639771796521508792142064784210013411277171659624850354894113482919877941656851409797693597440795364263237549638267668459526967586769249895198254566026693867905986223225856133611760536558305459411637101136241190110805988413377686495444089730557789538713429251170903208475040657944551601100140668187929919049938233041692667202024762316475284343967577263506586036407636817309110610793428113657538724627580727333541041975612839607818109048396683252748449479482220229198568607082946270691925129633762235969148332696413058088678932964623302146703702821568031127243750389525952353999363660087772015536835562918565601525121487930433693707433988580890765658333335650326855507758249326244057995162772419123832614446240260568177067620355506582249989509379128725906726726504118158234649503218667886713748815891754201579355182591245377569160918781774778975762114810818564996150791137956922305687618640154886991663606790070497906126251074253953434016177533544468925141489365044038690680030303425541837470107860551519006027090236392081725016712947912956144817395022435264812440519700965232073360655304654756004257243929548496319563088479606747103502846123869875053474255569787225983569238407922558615144555693000740089011837504007621099709292415650332143391487479031644821096786309268007299511722015484469898825415481916820485648081505291787142573070887710161920225281237004734199508139113040484805171110522715128042579120333591574988850772730307458488673173213977937127142281640741021215889192008747317491187472133670133011894659218294627883449179827217619582837163137256709780853036904095811762147775460615888841102421180608657200600435613942022857256565105133863535096006119102958282646009452009045790197868575079662562816868082920116497100362507805675558012854196475553749371165686608427750640514981976518147078326206761080551445376003736508275869524498278398080122212446120800958558440322627518428379215737040167189381992992447011092987230082444632046762803082428245684106986139007348310382540771170416151145893311185065500947128532548310749651541538368438374773729169755009700398524035157152142889396867795129911047584058638794263690506240745632381629685732945590050110403033901074557622005436084899526749787911203398157011111683940906088606192512830229633680986015530804112628771080884185386062422377478691275072025002051772603585054962806301476190693494616048818148691345685384154411351413114452930225999116825189789299808930746587533217338313411800156882305295774631390762122799021363961005144965901586617998246653528572411108191809026600648644681272645503381623894500639003269476638317328279862131064882862093685378233055588178831437983212903658415844702066491715823594978069420489317122279270870161565633217121574360080116332250965111901027393229019120583245479675347022259158526534861818641441304213861702187041401782177905082499019333233198614085297626415777134488292167434831421745389775720937310850197007034405736009135724194271343792438900613690483211355278211945339954043717375970701258375810949595371223663019134114763807327046520421077856096251430293636896249963085685293718860980478910486247072025822876351499917844700594550229865021682142011374922679193570130251702164757973477997222557347029639348649786337382422746165694804812313887625159306542974453649996712551298808568953074102422480187756284681558774947774520058063271510076723603850812528240856932682244696655256295535853616015540972994956494591742594739902149861141654823316027589069142100466920301257678621167428049706764060917809902699356191123666283783424877165613466365037022171665638306065554192766401391836258132295876298759602132625570186172178204437799376605780599990509324987921166506676966223798116967962416717157642641573971639455976359539724412914051743268653070834505776746686548762112977467420946229140356509398510203846128415012225606582466903022149182180168275207229177013188454697727794978181422638200275268776314258558397720268237253221756357509216079468982924473225912147132380576302318021906353942306474637639802894080971292298957367583131521293065579374623063567772678726633319586926945306366330403837465067847041314403985629088267045981181281313092977799474696568651899711294229253251222223113536255401918164688026528791454563860271905058126351884298961832558861591136352639986474275066483935735306393364120538066360191562838339973769984764908082373825761756048129185746353163477954005342303313027266594137804603266107571164879604006602884046055655425828677003378689891530156522093780867026872160846957846249005892462852822909150885102128430782613672951156531016340534754193794390113219820699010033608743599950462572617813642428294116550419381762594513174454518566873132075870978498332462824452404549809645094220829125182350515357717835058882542836537843024139435627166544869128450322049791324413975087436652405542788752161101552101149037317779089517951851471084110430232585790707481245204868651599716329526418918653402315313470197053985629520109290260756036710441764522020680959368487488872508347689545024548933809272725272167650866294073582648860746843828797023485716048673427247153509870245518635960369415134948135226693689105217020986723246869699893268843565341079678569073624480178952396600900229285398577740182784477113344420990422611968613700285696487514084147320444935291531018729158849085295196937062430479287600805000358879155501027758332953094047183918084996631559118250377686001973734784214925934589928478803116645993368838200261375607835844394006400991758251045208823022110857578592492692679613633335464019682104524308624689342794495434335450377725189272831077194686263927578827662116706236765869626936210643004940367447542404113153014223407319343986341881398389887373487252158656833880745883437132887369427951398845297926991301634016970616571787821120850986057654573198949899694141466388591157634136473861773044566022765801418073466474423125940344174238852920785525655441601920476047614010709885019033109491548540922790232712746852464296048116684130583600008500530931059275926309008825846653805446571618321534611306570947660869792297175956676743202665673872646473872646597551616243604421776348619964175452895162322535166967347808023655286936291191652355893775575453391005724333934241564810543791086416533698743895932644931031669834790541512344403420173391091233772697941216199428333094156923440532705568597675725671580615670467926080674295938657219375890094606474760126472762844448734148206111176710090652482372109005966892969453615082594707477598940023904156027838437490497262168601387285434851667019186444115936772880688262473077216777981747920908179881461066615788834340769640173014104948186962641810997617299102306889811559144129063446840309502003576973804376226826731925485374941234166188931040609961201426160136144290760299742177699565357384796341729750929018436170997271927789267107757891945824166528838991194648903223560843511045394006571841228788329795923406437002517993946368926337109069618826775499535326359918786890911625629700417603965454859825308325252313303455155715545563167589222269101491707299464038091801612314127040327967351247861789801807460466917855206161899793608912751154263437602331398174092660266172025378243294717407363222218853212027663320356151049664546993422405552779505586325985530803942692582584817355855403302465727296931449619564111288988083093293970049399495604908566937493246340536430847240034351703920258862353773623901502868054560608896238266523430770331869321236410971258672722166001517130308431254623124705619506923136565335538689804742106183870167607840258061310370098307549155765918636866744707938072016106130563335611511458633214055339970763476737208661535087709610700104553969800734956276438180557802772566222380525644945787292008846318263777299543667685556562647925328881587769575978715459139006758303970635647386481716929406837617256454168386159339169346238736823073559672426295679304279703906824003113086953959230850795249544231527623774634161963870569525075755131315871987927476476760761008537729838641624335943869082246939476178033118638751864659205314198751322963164211108771163477153591412868506313577477339732220990588886053087212281448105355349687876244314165574406936676651815152783850152893336947388759304021257492211278010496918896604972129518097423604962134130438164142096203726577340991134245143163566764691710319505830290179057983828840205094903576348510254318087216774869397391654538308046084549693496590721101004016665577291660793751251055238133054056887558778353457602039782259212305206615345570217767955511520478191067417337447718002867280714475713507108828140663012811758127746349311183864932153761953685835326813038343971354973214514397018958727462469184090934441830151811260647542060014764501369791949030815999582843625184444502896767068130627349440161151927603589274428377006577317555592687637316480973539519808393991292407740411488559980126999214025677826184857338454070859197597704223649416728417142456945083176716279295444295847208629683045481202622211459131383756895015321696825124702863119840453824613181410646245436562730221474163739198109039589650430508954930800712632877408788776177410250576342415298276162642180626902089009088704187588248094091791868849866035530772686794001028707263424875548936213554047322631526752630426976570581328218304372437653472502872027245448004207231317951798059403928377807552210605594287550528398301316782790018141006410351369892077014024784419841907893904648735327778803469876409636100105685070750901784751798955558432911243100582442111960240366246083596158465271549274292562124583758233228577918602872005349391965241476458790597572416957579705533200780531405287549757945848353055745068107820286031495838252162172052974462702554240612899930366806788928766509529788586644577863678721173408170146258199831918887628659389465225897660775487991577368991813142677996221667649921743260664167843015017463477178929306538871403533649775110262730595496519258076019856840641056666312065052400334701739551564517681052465611140094646166525717293389485987254315602579981490303870143021732466381419644762197081512338936525351471302311657703409981836395529927179435715252708164524215884848696602283459896574892198030120788869511172276828963117792861895297163780474840355677833560876333220828007783291518099410277588279282049256380240914057713690612786084000577418474046900035106571558862864959534865526355456437267197119549933201855104361444623658727137085273488514383809351176432304170964018497244270076942588344726189999166811721294884981369575703571565679026151470292186360776655162218562047988644652913888783478956086737098069283285825411169998893639859190525045444143867568404848940636424950458161289755596775576433307370965429502963473085639959110402141371880361718631822129873996814829461935536219091981744134459428761976874877462687998355765461490418263605706669095638370484063590841915967030279188786744723210834777671842574769603521568769910012740899712918773195542097169339917039723565935361865228970527906240623721345639706393445756051048322271773769951320242230549455277940449386870104277932652332596582672391972555195087002630606595765735705731347863420604905007083398533774907919830018887403111626190170956926315835454033318703072127787947342277305800954534732666443688189207258285178610164345241740061981001961294471933209525578075680943808252529948598726669013601274735425446347085576160132883537842524022407885533056203581826611250999131624026141602792919466478054135112345244059375729023241334999441982233822556717848826685594040422244921414199068126672598411274311269524450907179645825521700390520417919186015257444817367983400643824461181370771520676520683548453297551793997496291824535583637980901008240124512201523836931580151183556756176799282856878139116185145308439070523066072335593211087865432220826663324995600606264603636542090718528477929712541437052052859593577745769831811271295978566755559191153456112627620607288920104329083333388766547493515045825058549670329784558431878333618526181970116829532865099522395884376902048385157452277748390009038758514779893637187286557917505194347454804615639437428772695713588406432979515447242526135313514197841737579164380909873727625310957928101632642773484402858573823598203299879437786328304105660720523375655179208850469271498138599197904300147743342297146463793519523052604112899580817612552124028939309062591751926854828083852590296684909090021112055710791975037309830738127789478640650345293965929687846765437680725928801050536933892144376922468989462092682156238313644448895280215229474243801957248128652312242077365787792446588113566122755678048324565653816698528602311725454906206947253719865586349447461697932901566972160239801310289115514559595219360629607562632962466334794506331033898007939772052364841290705111988603102199591269709219028687207351840250390948144117880782285269720378664816247916234149123303351900198795616752918517890013785612405045853009399854414234672776294377329717365012126781436748176459041329351874343912261260842826625760609283731242064594694745361300549442318702591043649017168130802490830620278330444483885051831837951503501242126666456246212253833999715632308412411355896419831565342480611728772530454668231037369443850514348019976852633807044722147193988990969623356710425836054438452635667479182335205629035795521106564451767186532438247704049144321225383182048422341474542998523729595078804827030647450536007259674002212118854802935855779392917268406305416108703751445311575851153357028261327846838592380892404072735116863849677190431385062502675153858406529764190393588055985662255903937503465048942586730396900227130638489034797011807892261611508958466354804556285884708789000113876969315960515446233051817562962498378636670515278405221168440740408068760720352882655288169041053193057384546243776754132115060478473088895946890606108187617321789030976255414817849373875422651027544850845886029331476714674626696207881729043913333412936483361841851063342291806118792314117191123924895478131699278157164336613603404661849767129887185191240639310567428560046638538533495584421537671772582918333391143614584237413819046359092279774489620499371212310545860248457177596692560069447941340884065582422059555551658916307121576973747432054476029045820248819127722228081611634132392034577325423266089419136666470244952679469213898284695481771290635132157306665185432677864953387377546745068918884484730887895241819755592109490889649093885157482041091051606896825802729072420171986480785209919016138256001404947806820438280274438143727716312431206898397221162857651583249070595852832890576249003531125054268277687195639072093012410954545798369669183404822501322563247815369883595672152978265813664851225597799192095301020638395190426314909149184257752717572951873237528917397648603420561520325037456476926083810668238945719203712610434885108733245035353565290643930049504842312773914748341243774733095099844816361439948216650355292168559585880261747071554828966088548652349983188362043916795635608789189672034955958590698980248860773996163616876521624004380614107778423000101227926271035225106105240140611739030134634938831775289627192713525743073750592527930435216480642890630807088841659993472048681682969870437352726857165145178389327991141465526367039956150620773444191401162090362849929612724298752304689311794051772067023350900921652462104678597020876702183301240994809463525143666394072223822205289566442550985699816517417273322520694441437972353170072003971995251855474670741376646073617174779476913285394000555427450971909104987158733856207158084294584026925762943073353184863728229905672656849407561418643437710177051979932739314948802440233234360736642133391366265242890397821343048598753397184795762798394827478070953166466973159638427668294710784389418133045768614444453106634796400045175729638729272073347072283881599739720465447548983482282648779698904972715832219770172621655466092015111709974886751316012334939540541885776561725756650355426732293208222951862350586283213401348517153378167931160962536156198685791575439290822536940840317883734264038176708333470104994083188967374073048154963652853101641890324125328066673804469274470691128409210811068538553233539434560561810987538315992294774733994271455668209904988912625011534418076923483068507021530831588230613820781014802254643501984676906613132389370516883197371605639573712771662689199749125386958589800363207193310003144956864972603703594910762813276450185040312811774871274749480626633701167649825870623201539988115888540351530329350100948322113384198141549718886526566056100088199661398779779035827760249405980539361544589141918974105797277880651574928432494051543970476006113740879789675278652333349378585455969892580172869402677626926816460848958697886891017170072094917261322240547787677131477961268371215726635091234469452801829197080696617450049316108869733673921980459344712276635830274828515650645925631457693774985914144095164176747504579690700016266438645564286411404632981710881903475067011745612183184741468873824465744589640556120495349315316922617522978285468748285777430613522579562916497525577122720591771695600162046272564040993821176788259641674594216676833036741448362170152606814322314352309628206830619592556268672197758891360532893155608182480531906636103948411342814449110039052067437121776685230925091070160479850090622870253403170006168018401015322203451516512392517678514411984830910923236399324624866394960889920652309060906202810978063122206735294950013195136983432893245926856520941843398061245406393988830119501735831396811933261487722170452217219831529380952007128700578558390515610517579123090514468733492272358925714840901971393555016976579925314546283232962885195577859820551174691669709346850364185781767126276022024896148864477885088661110073664465160226885361615467235294072410995936330270011001652921953559016306362700667514133572475819044870701679964682017908514352723445759776903121724595420884448051545902949937117753591014525877782153122997626960269774221962199617459412522589514896888491850687395886338351431621081791750738487674293312441707929790148370047911544527707817056584487690968383458168356459060389322575760811844040513409462259833455804171511134010705146390466674446780147559635049651134864035466741910044143735078061551129659994419285049176379816508244500790590870313511739302191975411823159558187415093367965150874178234713274299149705315838775944838606156572775838518021831328060714771724171778114835229405064283654001656386533927766598195076545308375761886686597560538938258859400469387905221173950496393401401561040052079326009475409985935395956031601373754603080598700529951199999889429197107276961712767381650083724609529950066858225794286724485949648252719728837037819415059882017910618241730097533896696781532235592089566101655938395549249556547273060461508836032507934483222660847973986342818929458361406453318885048783947982673204300004942201608369900665281037417361484467019046183776142151427152169712272099395990343949118994627080790923036411547577512871041156288133807510115699918054011485666838431083222800709795652462136623448242877022184842258505725871229882429155467883855195543085568462251006604846434006548895390720869647808322302674327994195024066142310426655909038600083447640689274752225730941865081871948701945155315627032631750282658538488002866928011514045911777971502888697699880125221541877645679121409263652468438016620870118283574273545038012072237549831431147279578723021303722771808795516404579799322970567584860092208059452761430291435498579825957967735949169067130639901598136670140919731971539042626328011396852607010396570612280688961564427566205018318368416457977825244701104138452011354156660921476611025027234312306082656758875484511469508862834840677081723062252078145366182061738570580959293095757511157875246379434956664284719819195837714602902503200099892586788040692826972762413966561624841339103493460897370719122736054369151639762853948251150684607253386288358224045694824499618664853308672519677603782124457784064600437206663422985111260009592244692607816726129866937141505771465679262030069548921865328672641544758151169093393024665774283495790729455986209886184168353741450096900226888833887305831157623694198106307718913985974121063289920037025232240062252929304493266696317008671083850835150305152759547038670671300324988629685643989374785300070624654807193678283831577701397127256367973326133216827344051437275697905630863970815655683793871622875040229489339670338772774976119568797934177860977067494804975189577180972356372496889179944351125993016590820671983408562326816188224542527554630959522214584199204440607952725516959836959789303140267287649039763534684336346032930014983626004812464475542386601308476240978757264990595673208076410046759702800798684819008562267402541539922532680258725045069673761861443379607712485327456686457037102715847525766683232486174837679063501304645623785770502730879939708424733676769322290187709682800288987450693716200613698776526802123261348473687619693640016390899034320606089249005904332232530700079294085801142513743704108679047102543627660750499167589723858926344108288793201501274978931609024403657190791003374733367854864199336885404261731405412016062765228805374747265645811882096996673565252614023994928131080377104596977175371747653745384963589161293833600838038233444547247146870069566503317473783743443858960562167691257984304348608958964552401644600825144297693517349330939546002781994390807080268683096388366599451759214953116219257329341419836671629380404985510010087698356821992161414656724203935549750001924170364530769357308490773368314911507464883921569331103989898700659727909237538086776627484488306597131314205819139278220205338701877185974791827383385669451850031782948066039493141343338086477234083705106679551920550547778456526396447462203725703098347638325360414484086364280206435333852245110647231657402133883315830620462319130998193051346254467230185313536334813596130520675006889716752347075642310986726948010921948572749910853015759977871729578605917416962156528484896221969305599965733445051553650908097551988656402021225460529636483024173000734181593492772392899968302044223971187007865635294728387717238598557615483317624867931589725508022216837969804377379908130082805611990237366476937078907951702099757249845084097461744842198131022320416132136836725342811445630756191092683649460109252988118068793967763495071536064377995352378901527110698539656548234156588775542010476014609583442164910811685609266593734129202469614385043843320654710333317360708458495911581929451724007636277550002464914748197452938168380257308505130273769564260551638365825981379900614482283487033140618859130323196125000385273668070538054669376293069973818554249142009945727958264423251942750574816390264347144587290169046304570273690261484358746436960905146425344040158027692454760220663629230660710493891784868104538888985510636769638234912729612145546079428993233064599127435881521996816409079493675151272894655167670367689821204533443121348011997125482363305131666221666552502657109060437517393858309218320116146412178126093668669740859651712772932496855026478955312578183338373234638528536499959471985929445607923186653367334403329310642246255208690315443060583378039490147770073618091646657924639290938846894817938882673084018648392525925913069344584344661066602272697285416354699667345919856386432311438599609102569690395450359954230998512900227001447288192090594531389317117604560731497403833566765710778580655238875232983702198779534112118450128402254989338955442123842917952055362078674934449240080549223742326100577026563639647159655631189585365736011018125569783924405134788682071404772238013380294138968202724318426093008419936077062615779531853099723961003533947553913698632748829084155423718663963861459173425044782165324167460395110956992957501648229181686131191293886258961275626163521133008917107183648898237898380726031163212628731847961160942028514599614924342535790277941199759463930589981916701961654042089249954564273492230344952127502956544146811223357189355666801866162650093144943877731969122624998104403509753201596115433353558404840388070880296928242515888261016368337599920363944768546493530795841030172010423409662881082006770554072942407383113523494348044436848403712003226733515963632418384492935137128029151551170129418447184876338907815857760821242456374266834751211408120242172728661628400264322741741038753353529977743610159243482526390097051779571048006739052051717944493811279984202404726869425178386366489282452184050614000789134601777703949165790333204750625520463255456055428833017994376917602657220397453835975506088151251481386982145507710446835114091978794508133054219166051052171665402137646066987607914689388064153835425291685469903239141305309714914345702163114980282373852284286329156671067645817431457417095181461295747696997774307885042990403051017678733511744979963219853482164674723560851558305818268585967373483252251783272444453523734916803835229176603964852943427768071117762976767851262781963406713769885016375189862958987236269512853300248603958369724914841158074963349438647975888087629865264431755622063076915156000207452348975736167517054902016129809051990724154150397227568637610651248443815633979320191500104496667805476099405890725902143422577205204604488993541949973960701803577673837845896140858884070492694937374845973777897561738423537684990968511888955066906455650733174944717937034428400750706817739222183013835513866852712417513436437917807304389884494032007630643195285299962605809748400514689740876318143007451991471528196921946447218468397798390793280375689225180589858963933080924831868184746997274057995188769716942753686632549735246907000655955592854236062709653337975382011990872475805858162296437079203133358877391561893408529499075434730297136366643334622587994637571767086977420826545529236226997330234735711536032437295570214873070275349397094919616226671741380222689346221824548016951373846709942199913743804861466951378082078508506437201479412453742373299300746133885339811100214507143237681319989963568165651388609769298025928660298816187945336032255253135091437874499327577861464161951549015424402847824261301560645042321852293691154976697820963884782078311832422474836374401815148082064675121802598192410554716666605347532972615628768116874331196687416231343461499436060785504878537829220308429325882909625997628379393450832582158235154845338435892196061438053243086914815967603806055823347503535076620855339118947131670015749516253370487952374543203287857419293745364208479362425334293336277859419280494639047241383205639986399559003527166101181836793897698935183989889939613309197115394588380928690516493353710142016780105503402306692824722016753215603689038612968393552067121037925961887190143411316033010370701356892009892464004373557206942349440479247481593656530252017322170075644711973494443526616277491257843535182718341779962319246037993663501742093878988719264583666916558844520950160600218712014762312770450370974103741607537375148253424841633447287130539686246809789428438736197154582757270034625425467850507257781368278570861786729577566380985730240004939453398115513780974676789490829480863384061976897344265819085489953823229380200939653736986041741241975147066991996215560607763556133975056900682221459275449871878763794405672262724581756781820448065317278967696357334886500750900354794644670758291396797278535540976458510344178449364138455833233941222794664231802764832159224202796836165206923142053278954050379419511352392685600164636024149317905480275749375299511464890505552926980307304234745285450447612235827820692441252205975870421463314243027526364727558021318048473318548059437732035625801114998746863628245249641592292940047421533319307546823259300289378404215118784884297723023883116838487761567451365997712892159432151497083350078833803994199398731754638819902460227163363923877052371090605637509083805452655654370212244156180991811686405770560426491596409467843288350572088058118650099204511774915051429907115362520783392108191037002497405383136680762014151087700196180117677627928005573697011999855082831356094630733895163981249818511897353328542460825194534481757411067125923542959342174060683499501527173403110430598205521306896067354198556753614160803225395661182836942118864668419169623954162510210622966713392817469495555462013501210387855112182481199020597179991770838657664552807948270880096091001951613764138710303543221956524708060618401200962506362109051747426164427924519005624158042512627140986597414928231588241904228916703224338097691244992279575185198427905005747505418966768051386355809327549167811419092756990522804628391034146712535940339723763410031229599187979081035292406281034526715664327476817113642941209081694704833958504651051033589452836308813826554651725938008344782857988097434625516527734870333833825986873006214878819312266974682966780148562802639808601184441704824451651358197270005754323324591464885076235552082993686726169044223267979612950768620355098113659371349125186430335710363004588428574358146200281161473248004077191160923387495105056811302885007344356604263848722433609639519983046634721811779838836148190576100126296256278806832213438687416980508869148754529207527594771977811401010907071610934841117153607750331515746352781210806527275045977632265669039159971551243027887430337499077453624557578470750763129502426794238450174019169564255855014362768599158424811173754016820374673516058146764487593040099528076603038029234237698785601008386882805919275434287987290020087584789785446775540058371107114985993603151918850740801041613503725701410089859535572557268486256355629588997369842133334921071181314765232966837630106790819476959825729344457359069425145207907686715426571054436567454746831075065245554925167395725135266659219221436832533275295069831540631534768560074901577825817933720843412629638246420716254729780233442039302486480649967380286004462831144276724332707731587798755273741538957648326532398375766480768839748781879102888635593315565877339568753866410854470335264950361584026065012608856870386199305639618772823332970895295580327958377026608717249256068069130101674939124668918190847581815031372398291364498980904991536964973947121099127647777739814963510145090666321260836540854799369680938698573467032628061269347843210355695146582262401526447682953081252140278577942886623890761342868851733210490349147082330702351347338354094545562447837020837416203754661998777046574565424083684961087389900139980607856128207547689890664052838402589898125892576065143238406423282022634383448564020591563637303092451454643936739826405819023310611790603177475153582425233456619426830752900549265129044518889756219631740319829542243354621240160521394995357764959137868931427376420104818326471855551314620777933750113705105119059662561290160703943481000256375329516216896550320054608133551482495614324077874926278116237609461965475142642846970450121473236384928745168028132300744797598110387856081448809824231829044642765889922379398599369457487368273270111478729040209772179165908531570295700656764835072317745832783360436028611964396499771743016498496026739087376820783615626078519377811188324172648853479360590331093183980701581234258837561801030149252763977103498391546086516535944667506243118353377357844613802175747537311086852904396352244967766052697340993758764778194204542904015298599962702639084462702755238743359729269173318668202391805038797949558845298851673168235833171610832467934478491682872456465882621199768354638638128976369751488695627130991166756516303631822504793676668155858816961791446307343474715950861643626483373515762939458348912356759224704013265177860370781581658735191662833896294200641078684021641382217769747720609104811277182022645181275350152090655125863516787240932568356379446665779715295326728461470992257619553274906617539075652043445327511225773158230387933463453405998655157213251279183858052483001456471817803272376951986023317298992841728752137085606997918796341813941995290505763109754035613243432752442442523556751114700997203615775034791338253283317707849880486612839015534581489899108005903914639458131963242141471710882984617972834702198843963471298492539938926294333018234713056325003516381346486234702472102694941185605372711137013088985039255616411964253165751950554598883062422401871831460067834234626501440969712086628345025333396031511983392670064831970187651213631111271091782610255536711977905051491837844235463707277130751166363065953176308147123854275462040347632363031188416521353682343839131266284280525444617425592118322001280993852195589946226114324387413678353072131622072422909224151477164437871406875616302762054393577100421988589943852118145531683107704746168132195751356465977291329612438157327880650136040889107128080877424837112708122114392397881745638457141855438127037638666798366180072275305493331186603857610819840659955586369960402128834418559576822995847669152884004841364552494824972559361563728076486439709321427296343503844765791410565983616522177400397091803190197034558521879844795378033046274907677837078421592915501650758722339752447263206429659190138179140622182428869029051074637900411540278022776026859755984225222413926637682153356206000143853391630721927682014383187341822725002602079258495839722176041337758033387521763621244327065243389462070661024203338749232761840018695574893927541639658692795557306411236316718452558997401003264887799822579441157777990494226265524274758624156622497392905707242649564030797520217644125696718456749764827565481172989000118889704956344024744505902841660963551709392830120437665016541970234324051120808306084126398196821114378775211580920210959409308870122133712142826617509588212071021577917142307742511908429813515705729625375194760145545488054016978408711386667327785645560317032621122322265487895246732603314817912299674179518868311630381199425021499255153906534950767630256831063491732066294055734533415289381291658417152053534238739013687680664332287623916059135296698138243449816123950459475027717870957963995637735602917490134667417506696807434487342758506397530625811961907771420854345737804025060817877113223221377227791915459729133977784829081440063307923289232073949712311791088073606831364559769680117095428516132980875293557141139149222670337865617412254355821901082118975580594766940615436196003441464982186036877576199652983956453250837420445456736147144434372196785322512161933834961436188766833446083625200307820480257124283492358761471741279548432196319200831656740028441260495701482523506702977865297410242592879002823471076579385639031438970117808326191630418304393857061175180775691337054654482908447651632633620149096578315169155043994625687203970789053436131373809551997806906945987068448818583327574217053794159188553313130865624848907835500559563445784882825770980674276545674314542186363070960784593604412348025994272484288770944788238062880422488201162657772938981074610551666656911035793750705296598384352123316007391912616988218624624908625959321759307181355720123211882754929240321478394682989732700829047975277656320501918913864500292747075992302038619204478710435856754077901981425008004102401293482932556218969640496139547799207947090837805780973816841592334003884842116659465165755669018963649673465664752007429951809781570600023736638143347582562027099628590010045983967523443541079289357115158851822575821704783379249611149911802992905897621999252106427400162436259598715999631735082961791572924047492494383236070091723372509887891858386395701043677199408191353676558812567901798508548590177804103749542261596797646988828646043124513474808649099055524027437603828646415540425920542892982160240064589385383004582311316971804652159536728545983706068959642842434864536278130144480282951798251603994331228186194621078140064430534552826714782147998924697547719024782765490152743953445000596650060825592972129579491040791068795074419340519784454718256720920148169812462668598571864980916834410008990495862956832786864628146346733750466373104278308382607573888347815212919199172802525709346393115906282689261830976264240293960646783368555967756959090405998330591086494978999606745677799380839307472208643321311976432818303582068998161069930302775090062642777616078961229542889963020106544222830667285038366104693865446626118927504361118715899345357828744634714873533429267934330578348824315047676924438672163738991217760328923117161822670861187597244060929692272586900192983270181699577685453758539819890395801722877789195965994913746413939762788586498442783313924826773727319724840372549877979090519917543756618597182530503765774457627529538007537581366711553195800603499692088505244204781412447714719593034099376621384475442722561644787825721150485458049616124476653355590229943238432087636953120996671205682816585496224662729396763457269335756237888124191179748577433004154613206514986304954456468931326928692408590156152328360846796091152543919307867910053284232511474288137262501884511871415539678094755446674779223216344445364721689598102044454662481262419200557217694241848075069650895359325155918221417369767642198145383691031542985372472583765225688152036530188586760530424495512903486853796812867750243366543935822027639152444697685527294882956547891249503697036312730833426544492459824305150812804245382315406259699644080886309804435130677170375105320789351966012667585275030252640931005419752792742515903602590110575984987003498081893119102051316299062026328295258023231984741660513111722858020645527283265787043614363198547605438015084670246242512005963650195220501004178587740577172633058245919797595316261759728168852064182482359666056180949660951186477407257235405652017778395999044789558798514671877622693596465123597836948663606994212313516077645169900063724343722696689570937495446182840263403635686385914806159181037152637157006610725977221467099100207586965448961699266325779377548288052315174406644600817525792420885130808786579983993657985262169493742308155940057620458394111100670863087339130715782556041998090943833376586184355512065979627245653013861756526041326266825892902417026271228710273502404355380054835953210457694182430672248122370783856809751088066734535466783373009216758946816292777839626158087740627591315863486567484196929356704191351953632235139805907741404199448081679205768582456087028722234837343830007325154874170830275489242905274239835890201352042292448166652284315417931367439837735630065662274507391510296019721143993486839748598707185320779859546727950922176927941769460130615160964986914793367701820887653507377638769656830736766630004324678674328603143995739361859837784711017431924766389296219412375401810544385721781895388585432102369637671406034112050404135431202209175389235123236257488048986846050295824426378844089865959529626894263752113527175687300155888834520450842296780796102935356167666581267456065164102477790130200726622694020634303442776031514434132504002642300754371496577605156403804528424976745449417645768281814958276952885784564622910246199535324257589440765348838832897993647356659107701783936456552705544147816699570840388885239446170389437847266761268935815599806879759227496033472254121917436947551442998202062520214116900404216479975271440357090818008704887944569136243711466131107152679696879955009325748191038987631716599708493881612470994560992770536908220485053523747252890458228358137935818460256191092850499283956896277624870933990986174167848910251274754279235715833209623955583762695324761184950124878146601585916831404903446639068836325259236352498821204132303673586846266841423635008797128884683319709689948133232020594467395539564263278404956535063250314188109607457799258166085307594632490657605238929702367843794452015343631590558879586579569010048594336667015766743347590047753669974964070739383812710823732473487971009100520926185463810484295526216609034875562013028197023932448389732758443125183449121228669371090829906422090513483895237421347237952575730382036859974303537435105327598000513112006254406927272786200157986238824452923233067291942684079686683931424420610124522459046422729542040177409389365016401256826492696233869868140046825308300568329109385436611047689971546409013541616131585880604932082270436341281297586532856370941142363352222947653588980888140850232260195571073361008431024584285205108499015933721581800841971361392663834045156865585844670794511432389184126426792190905786049751929036816768281657536734170935725880911612013545851049287033930584305660859983473105055764127558455031709849314232033154181903457791253015465207318844391639805160304545372491902378266814103332847168170684871660668832721695682983039973822305271528346524953570106989218678429664997303641658927096900218486402193577380795481059155790211917136526556965123204535258551533960263720477816285352396886873202574056540003138703719164237131333392994161026684721617532426641633246129156744338371132650619380214922206143857026076742907311049146074943472960920322490175675078879295483894600132834693025609444883609261894714343960158824061231646580220065589874695078478686250843861311187122973342129340303195438401441829700190197052153126442989309882614537356475942546658945449736083587546792750102857830561133101385373673414610742491339466993896595874185144226758708100697193622437418791579528453417519913442127538508699365936905274523112775736781274128941742165192377505770482931514536098899701678305002274694040485399091913075485573298439970531348155877926504750016859311917926620629944286066090076634468898034561952013829662951495629110173274707608938602419131780482736800930703349778926689948565096150014756150958326756117435408373296992385482541477127861136061693721469399279336305101436063312826394819470967865453513410477389300478057251145560112210238276834369861799932417155455945738789048721359858539846070203206815943674421401713064329684652870167105064349636138747197414820530405485288143197366042780999893820555054725756897680354710562163862765039859154267648943768513375800620099110137793836330153976383591213036865267518677019957879872020644742840138719869772188244969522830292710812302405011957447594656646364858704392393654255736128057180382815148799186612068585457980683981271761266073334367786330688472407904983922861237807022577663618256605309734534210206596352902368034017257312534718135987001010414864577586813691649483558788943183715407967482112528752676914356860542682756928411106048844710696425115614468791981828994859044879687351828577300811970777954045483952472020417314882760677235559541587513573003648009466782146755972346917603879728951897789846301544226876263468097442193396436095199852094946859203612942858277361426331076758095276427816115833451804369735023255321679864849584589117052270363201543229427856473604782635055338582952743452034678768331614922316231415864469155213099605173302401336748494458310675580842686702817088367851989730215681230522692507750926784701253428684970190667734570759390605423720358069761719827304785430946730166041398772759983050501511050731708056316146572284953409619890488494747911785050381398250971460759330624532633528814925952464601016950753797558764203034288248608739815864334623087445518917437313662846180025172974533841957918424460392434764559364994976598241338267859307170132327732525100865941257567516561099179568599433614502775914092647522996322049243210772586843375996595786397841380606753729833051318996244914297136097038836818987000165609735648699773232393954248968511220590438614806507575504685914685890029045320724480730397943780218067366349384147509993876603054016039452965459161563115499669292679873255470861497901727939493749098329834110250517400072903932994226767615000196689283709979455921057091822407381427286003904164135114670739751384521696176369129120083498553665374029883267541553143043482193795788866223498649924650974307482274037949709618721515368135903741076165388820829182897664957947131437845271405267687380517601713183456067660994494010723747643026547291554923407608491938474824659260916796246353414866313409821949812399694409856344623967468829399414567585338263548476368156011904578320167378041797330647618234728151932955158599806145071835925596658380500534339718191325104419401671312568731570062402487941700271408448127263827149117858458731355996056897821099829820346105489310343750793126934561610162251711771637028264892027649110494435336793862557985377100970469942389787069055476598377705789256435896771860685086282028075735554932312732797985797615922054569619374238591003920734028390850458646764646132128602836799691712683371381831443533892262194437174839289557488161272141361839142588122363837903121801069996554352219578876367852701584223619461590040919578044883820810583307452120686875376632687571808965507864006169996687050552352866425564743384009669156212345496187938588112593121902241895482468550861042434338377230962246369086435857977657029783276730232711773026309680496266438568186126884361250966331852151742028700770639320644948966262876446100086898507055617130696729812430828314943289495763386925067108996084163130817928303776537812089355023969029598631734762088342102188607301705908024137438762332338798814308682313891798204964377916033427371292361010079793998558613155865702596955034447095613510813422257136493787290946027700528460748682494297975894340263718486877754239975045128219507012045196752050601078752646122369256793517594285589401838912905034552235200782600919455877368269503879387575359551870659719133036430130615373338484800723590504915658774821901110333253409790020345833406028555541217070707670768494328211242857478846558520993567733643190387065597625489509240425644245748550474898838456699046797257681572005514873630715083917774533191447435170673795483475204542078129447208543568547681311890572410019964955505773643927912226149080141909067649983525206798759554158615522932577991418172395529553557251427126232144029146060794832338028540797288766464385522079220628655564192889685656215323259135218016460918681057185848073243884498423020070830570947874456859402898265941025607945754932179419271010917266239192604973599019060655019809702178440301885021609920641174227006162689343548934619623527942711079715916044031103887705000290951893986233980286705461799164811741841987920117006430405485968461395192533985706182935937880060276319223472612500006122761877417254531789196315891762798757621777789797480245819594849894573476188125192895763257269767650081207993212496990217735951458828253319697412180113601776624160129535672034244522124287231056214609752466345761542884760764355754188051045358715853220297790229521064130923464311249025814135050721073086552835601790932592899199964992087513832857986551390806160337434804423067744968760077449251303643852083591502706858213707467394881556791369038128476576200752953732330665124891083730742782117663773348967907521736295474855042052494958616277648675573378997137706587619937455677478616951349735469550209678827030587368618552148689905456414059508537573801387605697453978260877484640685214109261079828760015859923405206346349734665457044554330394395009169607478583528790539961270169507036361613649941923535805894139364802824732880204105243964602227038722284319704344801502625834313732833626790707265058877157206519046284218541681170421265039073058001327381558775359143475179958929115329346942745302175124896710536628941361582296881858939338540328136850982690276015671227065909611650416681278232917649652109218578729258988852942124275134607051316222048214923910858285238890022089795513107792722396778666480669471851894561849466671763479898804858049397824461718025932205255699773057200667847899434063245527726886835492321445930188869989346559011423811111466585028315440822567747779406485161087335108447606482720680617593282428465683445025085342672299765805523212282978252643197428638283004925899328933543090535792163088094306044558076137490681157687905903588952126080936397321122869538721234277429340229512841039559515825321291346003522817382503453284348013566734947625414428870166586302984687390551105186092719970027485822962378699019050188592258367264060648194085136954004071316808804886656872951023255726258429306234461617501885877745703784148567487691306666106869042820558483948737113614021238125470639765938153991364510638932198398012824886834008694257018938101105944754788697097583874560437874012122295548231100199799996144323843365935035728679566085002571848671876595149520538553682477001381164455574622860976089976674349011600828988232661701575575491394134536025493145594144377580051293912686804429498325817759256088022252809646588191256241088455066574664570270278499395785523187280054861859568739180537383667232767537708573961606719240972457011961331974145433499330832024373069737656389470706194080809263215762923766011420348792559870235764898945113972965589921837629220816838238206637994380323069613575439254742783966090451500325848232910428896893013720089198687660708497296802856467934467722221664372097868102201522614740999683583788394298980625837172343731440015421710648055081940611422771688975034461421011448893462729926624653772216646171260846915239995430966298181198173767556461876343787752349140773239677639981265973814342145362356709559914129531273212676565929575675784750691914472630945820287357570000119108965692267693290443202585489514679910476985281425746224719704244146065480399810653642201080981800218685269973030552586658332138228465651602345896663819533141117380671921075897526084165291333591163128288653549280453850894883599080428883845571973354658889400250614976496188421250324396607284297161937754356016356064808043537356936995038334234587871131701476767549418888049129088208737454721008501643070199569390980329759298121747841775412335608514401030046902092493351165021229304011851300353494483616499562639434061778739250364046121524579392147759609938880167124593929107802785420642142528381208554537532798018621163675830244736796730096431279590171358207674066259511130334964517603726271383973955827319137660092928002915709623557707874335897268481971277825452784835640101499992634352026971807130467389797941138403349586207982507818142865462407940119453185424840894763150448939160217024981982668847497129577517161165612011132368528271980923178508937569432463526466678167804855327817512021468100228581124426493320969406067380882776613023469165408601771544632829607472244641761436873515393237771983058864913518805039470545608544546911255492047469939142748821753093847596042522036925037753423363345067232887579748269591709641986585989394404418491588486064970823522899068555167522396331158705219037265672943677606976185038224999806123437823409724428198133837911761895159389903476634261301800773322468849833067433649681840974170715794065546832377978941006847180213994559796448501853614570003380213574834936590407880126464228753279445377341819329528624692729922346505642757384092194449054067106076014705535406931346817874126281744805355312573403873669868920273106455377231059377426446120553242678374553567900511653278810281407315844363896190724715082168345423934191000437989421099141554976827374524455860352327962223475705980028792657850868126940660452869131833395444123958253395938079153031796111060396743425324365323593585042606345832707787054661919311122385441751036429780231623487218320371595554661012932641720254709479196900099142476926590807699413543512819086828745488854168236454009060509816258594682773450576359945414012413132815155621270375141315691966558246892927797268465214855608284811689624487946171603926334931235993657954239421966123150028054181529297740985181645421744723481550666681979559357394549313199503874221021105635369965837975966974765838384592399678057880758457728337909186604887692406681902003600627222854991370216192914884997008502878835431486447962828447278742951049931723733899286087387730893498461102516335842703623248529978233055842671685765099924315030623844673213299528229775881876761762456070917376944636240207077038049591966597995735801826336711810443937491532667386260079754501979759005071820200026507109158262012259365735048445998323898093270614548767007085371192792650744445908606292688985064072920680186659861507980329294443271697870322511885622126738332670005500850201867605338325001397202266385759760550139426665418178165508454288378549335559281356487284410479669732058207904478514205893127685331069922241612340088248255154407593819555413832252632084815524163621664050759035108048791976346259431253075917715024210581531835775764393427858242880425850549947241073734927147957454096432007934736435672015968788316932963267886654323917369995471006969853228653058490643743993240657779459896659548175186053114544326550097709582084166832414626896611884581984941022702638276217847820928216835712991731447269206192596396524022680464976385185994166240873703839825837251181606966368551935904791607847114784117202458194964342504384556791814738543681092743636265001245118483444114947833530696374994099748171216837769028562401871485528637073136530152282174268793541118934537126839851226067838920998675028855651697314760722447156384600165597183604182016427833940524442472480216071248867581010907433531077774882347390119910581677503836474124059897480315459053721227453058356198952876161788772939306211558306696271696772250323892723723456270685401435584852228212870455369073932213429329179024757005723755557768386704316134713188868620420793182508322073900817679332673117021621248398455635470699000000982451869908389670577843415049882794966026823970284366310906826048452652044184881764884140451266717432109356828165760636919583750140003231632826612069197742192182298657885338679510473186141780402618921084573798522741092279548424793614906269765363346519047789537310779263978947098521836585189089807102713032901324610930583310314442284498593348037951750336235675479395768026335869746847853186177245536297070994321082837226979832001032187191899421285370792896027784796092779777658505658433070232099747095684740618231525958586419673648956116116357900366435468963185722232407345027605844207194669524005646206614908540516020197502119347455818899959587071711027080495650329243127774479701084795518621782201625040030494506010437852829755725952624423278609566082084363793611766731755993334460809581706249088232571207211385464576709855706818731632420794919699169653097984248826545890235162423525966794992873534109927398714575791162336294899929367953999330035475733096580306147909908219138331967667317445291215805443183911152242592613825508378157724941530059397724679198056266777487402628584770975938736478881086734725705138062702708007834330749941617391453276004605524465467228453046294664048813997457796886753977555328706650253995240029818531863662303708266993665969665335568089103879654983158146191345790191643542551056416556625187045951713415072222934951609816561856246754824590733554339594014856455606776596194445220346825908203871515513959676624643614900953756657369917835067537524625518321519853066402151159234181735238691141543096609201286128926344813173003794732046477022671099986547057280123110558220117415103689835409134542957572690256303692521489953419116307002779886712736143128943909631742403400944707089672504008194155228234329070613638011266194880363356317970672798304250516389178178278493435172483046972026964807553581916513926468071879970923836263934405122294039035841966574237609621616483177845158344284098886447816404443348270400903287233018407947875816903654267692463651177191373776473028853627548880769636982167898014100117208351277770807894519537481673962756608750537317449738181246490569634644073544016803091560357990750976200402761572515707640111581460396441425556829882041310420365674027523567042805403253061731224970932377937006224213866494367119609251194649513974449954493247574151137444140060837781290583613512839098259056038232961201925082353366091109297751229033730048833495340805552170031134925715895822382655563095371865290109041954674063234878720198934558631033070460327767688167054117073063722217090384499965052006037889658226831944130796997715288560248115067030029798614412772474889707726328899350798132421060282923155927873950900547877617964313857252029319359305666572592645086501353751360784869250209438066464648643623351558658921539791840446365066865655999536551469083698671677218844236315816171733977694208805932517567172858364467126885793644359991310147719716744358699240502932766347321397261681047604499999500275460536431438880504683720829432008039554195780007051930169051966785336858239537332076923469078006166135649879366790688358138780554935319089385971631517406015075213472695465480887707884770589203421557683503944866590266338696540085172474876615755032852430936838357690465393292797013179471081280068810849901725890140465142383576092435636937186567115584790648963181234204093290538052308874130801774197034652976850762280821482193033330313640702103768186953084753858241789812307276519187406301398265051085560706798992368152352333453591482249687114695344814117377982571673846800929811706610342110726285187416767097988483735850161113859124172331035535259751294456926356942599514212952211169128081420365058090605009514069686137106127878361692046262420931637410113980767109337066041453445747571638406674225045204463419792872161061041650633053335986539449504430439712125599436242848011925405801788177825789466108120172371041617335175721950816358426147838120833864027703698898152420942910154796859496599769331657639199606564778667253510995914761538312729225601003784117456554195648221203491417794870371548862788253332802991719705903802658049682769800278531788295755336978429441376028146227166204572947426008213581500023157216202433836224395771351952210433403487873500013742870550478021497974882087722058187714207335052071395625297699474407648671104472170079464316855181714663876905766067346273278905895324793053804004115306560632760470971936690059207691470704383755737560162374894796902931180551282584633658470599400725501173569146201436426445215959575502284971876552643856163566825359745228478241693601750392625560838080551514373809515313331135511087546478231744664556701310024517851923576816555372045374943000571195079982195199812208050853645905632821719123926234235602491708515566446589565714718811024756562465188747037224571092477868846295817982178275582472016497487227572702495506398099197502762559054793503007640591955299251006784884351497134438889690837640358664784703055397646124313938137925804855182201633182216810828495528576631738422405755133966709240120208781958429787851152215974755150777932770641169906196691839213880849700513817988424243864471840179920835554434202399453329859801423422415950894739773057066051461211220930890262891161391961470862775329485971904804061887781966208272527352887940999606086069655214673365688970872580650678936826815888392737146427644969750633875633197956719923694904009446828462441518963242650629872344461565917216800911497660795434515015550445071175275882828690481774638838631514177132653517046820235938330979670502685816974321981022339257270398096500094771775813105061994639848910868788921264953528400091849779984088616958007307137494966180513850780847343159879652349816701109102272158584160987265953261361768183987457270489582811465451465126662046508833899105744372006993586876105189272366625261864686599813818027733074614123750039497288980601920262311821132132780244868032158287413305217581676536161856736105124128124267678824401308167415858330286629935273089149089805386107861685266745306507525405036394691357092009287319834363912787850887292247280393900100831750014122923134013865214167180637519280538184054456906931364964830089989945536691865196038857866213601430986427846595784998529946711527230792723598396702539911588130102706388488745568456577955685212338394251347249852437539674606574817465881101468349363046042081081520844703405195501734232946124556297768205499283047267086845028354262045638976072784535262222984638802519896283485198715409843599222052656876597432288962479326869032021128535343158779313237835331249700182949123809695130492335276121450688496311386101166414274120218079761090064535529705740030293962411851423268432781009390610193795135041870973677240072084767994222579196648122930680958152064634967254636192794651535666986168096473198123592114176561975634512011205000288285588598916541521968128197921239401297320518277679439781766625592581955924005059498001430323079251441314825912184381323192243339507590915229845602808023433761725638754514896450022841878590438018821454799177455086703719284734048929858100820966625907118867278074657410302613912243453637679055996484116568440504906632306991612702742597903906750267391441837173155390506528347964234727404637141391404175764898139306444175548605173502335358576474858509674580786177523725342483497501467432306320799527469880237584662131163534719921094312832469367500373211806468971123222801411359440731780027875342521289159777472494917678106038584676320541658822753694996069907478657264506625169771823376034520602346984719130644045615919105892938662852225478171365631119825077889387152450069787115936968540298546348912079470847863974772495549952857046663775153206224143799993051344422632118934390826701750569430915163397036847540466675733577693872986770683315504665692380356881261208426820611592434556492911734042965976167206650720872751259630096575862926405333026971661634280530235651154168274961697184525663615027282135340687872478787298494716383636303924398669990040768425533117822199246994508688789964472086659555088944005729728108415184126079575357452813305551636067437975698972060584528960265888193521352277190218659694101028804446044444033414422586309235168262549845455110875841612999813795842477221407161486227765560897704644705883900074444975335136379528546677972688374248173673420651920729665557037269438390849890172103893754141113058858407399518730160211556570453195133524176556284255493010224413569003276067790921264690282074495304889580253416422500443555736722888673952777621634206342724694465914926530741728270755033628133449689535274455070997400804771559748516469287591293549676153803598043812993853796067922388894568351520678956792070532827073256276491016351539221937277603537743648565896588615263717389304444987249645346414923925761173906748965216472688052253776976201807257202365450886834660220642818147610789592280246387493869086915617916819769785344367645246323580631995872799191905187422457546763007124436948199029369686153475147393311465866100887862455683957042980413226552365255663006454003666585493634458476998151462416463827164514505292991260943290902209359086353902367616014785498018380219224794056278674444874939811434343206051018127228209043720651560282464740060943669421636230147068695177448523899358540016781187771400377051089583560497622844148014084278299833486649812547296200672535797964328427039427396189196292216395606748041356603149906718667194059504097148760304278377426532270513886003808748065907897653499193301273762307255237230538514626988142904819814972547800959312313054776168252217048354159051901482077175730919616763054565965879662961584537829888442525924045910041187610698304933667073124510332572942178633165930304570661496115090906911905088579824839712074553655350926053319438313885963052001594200776574157106420336003206086034151941723408508522997117154757773377581072374521785946943570574446733375990520526210260374787999980482169914085297029856651057777480946081420248352706051004784223367724886452208445282077066901439783059271290386543967163347055276495472361162018372899635836220981596571849977655918960110805212879113099093433583912552861221249291677106834349819097859224490229437060526928517436412076033234042281491560034343808885838837153149967592008377039136039288259042925112163896677678595821837334902890337248227243656001033195000800385783912026860721638270694988436603153184982247085661828983972132375540834967365729013880812270005693806678384023732883183624520953212454379031343420740346645482888624448938160842630447659428525526997968199700871105418697513183385676282762926011762017835553218227993551859068016352403542589807405804008267994092906264238138215877888506391528903172697565055040413489648263502405727323057428597371026439869771221943242925232217699294124333355874529587800499856543074413168427230231893946086668449070825400731420569394171734118786597874716519299825545366029241706346775949046364269786415790501575851004767481304684873619923463528253215865514394246462208237318416824737613533786932061571597533271966622333003639697929369814124452559592883176154390452254322366525891095336435033661975311605686566308523659029118446016804630582195534345690001919313306751234222697130669051826640822682999355707869332629071212967753814189456005001623546911038068312313959954926601083526521738623222189630928191692139393582657495141709783226947824443224453601801249046217527660531542936860884095255622366301748784373815857446837492224494113679196261849165106888244654051566185965919889377508882715486478692436822265411881372694523482430821445295228133710593101929047332085189373369612596953207354490189211343762877086073065413445640048961999741319666610829388353364462955010081497363761985833304457345007782991224116951952410987885737402746169833444064056565733631472460132709687169391762350225666448932857868498885514230583788404456135760549667865230643395444918059197432190655334198992817246931676123512431802980185979841512108310913058715242704814848131365044865896908757024758655643501946450367530379729341176705239291259282942142504789902028368487868049981311482086707290004167937388626741965041303639718627816074510952219659466819652585054457805633603268954036082332490836650299832155290437003843746888143618192378817898110614821724751026082056697765934732996165114033556507824577562243893422837331577796897336826029123652069704096885518508143934901524121446570169027898525145666324380479003450591283107361410142753744301329753912354050863247909438741555844955027953543666339395116603971133942514206859593861593356246133547423668997494527788180463394896539467696488678729135110867688214129481168612185114626592101971720227327337371351256464554172842013419741163482395303588142774488419628770014831839861553033042305314572408284586703785414043797085716767347466542718191682736984959191968558467659688013704963075864411409305749293551460977818490659857907204474194547558560260621681340873184180159656178778297344855326268832932605928252354394693420434588219299205626955138754179408536323196916822961391426933759521996416306201165503374933004036279291188610568153227975655468344949596728954800098416439347405226274823162251123377862198752606603094147284790763755212191201883437071138019456843668097498964440168443670607147599543710696856863635297470344771468792978156569532652288996714734664863790888916007410444665636381650906708371093622936663846188651725557466727378280482386966093966772291232268436728534291293188071844078381852353491600932195110808581383822148132877846334319046071638779155186345522325962731862753415050474066746079570089923253985742318239606201136109253699587896704869543732037165532352650144531037421442914901509069922224965830372145626855133302290986985934078846494700168183930171808997859950793156917301296688775727381925970410746116161251830281763315251000243779849273808200220141116723253458910619694623806691945485732182815477329168060113706287075859928958566602337528853844635036094159466916592888226956889572739113281139630078664974195800246366726242862881122512838497507866760777292887397154522262380576149295270736772915105162353178352495185054204210380182852331105604348088228045725839510403706745682153393492633106591865155901209237554509698737452575776463486526575268460222610671244286820480638613756577575422666106891441376814236947766286058382049270787569943422155747086508509598161772514916955184548667972757885969879697688173752144509525723483923418995152040155835028413040980750091162836579493999965380793152746578287079822359684995058347579965840777034774437677346364084278713367243758786303180940078390406033140060429261946675977614896499423682231299122871903959707603518119185997320319687268768282349416813607290016061057891308028728834330270716274107868426904062468930513355515645749750752089462640191577541002193535899379023501925535134756872841956401211312316420033736986299311862080059066354583415486387781726797956063437830662398767213298770181529222628243071925071154665278855228252434338732387223620702421581508284461648214155644061412995272970200230251776169283246551893862979763267833280471659597929518674062405923075081786849127072800983070527788695729444562240290552423922734484529117605576878247632233439047242982544491855133233115032717247174352510803868689302516465571753167311375650335054275720092253043340557403112220385105006248724491491493407556091490818649996628894106995785574529830198629047934044877202285631849648364853106161413101475723656147234625511828636528665869029553840183754845399751278499272554089160543239242649816113483792130232290595345239066520046262846132651790416559658680819880979192423005168859113116637557633377674135943494568655311277616892553013891772736412946301754560655772885848473548115239587889635298846074897569613947104729552568164790290492279513613348040251751911274231320893071698357510895163863936284541904809218359889372847353752540600053066465387548143853290614886836788054374350509256927835400731673149361456030947166244154527240466041974947885905617902947779123659176725500998427365595311530710445905104436320761454347324905976073741450354273977783727720125461021151025651397464327524641154821821936381783238016610042822669815839344266251993491561966792973528787499715030688526323418833613623808394268413215400693212208827381479765394990621137626031548675088108720155630421211162173560358616545160901921003917158686015956264144275538285555527601320474593726477098761545142413898009672977375006006827691983492196646091448118428511759655258499076787533684590765153591671148535360488646120442348351228939335036594792367463191205087494851279113141376269295022580596729563219143214534494698991023716926347764624779129330221175422594366496449231346171167942746308565198874040655820112222494618257003858438750935136110952969041280418275820979642522736720007252964131059535369415313227460133306503607432175159647238249081399315409925669673312864105643689652513700689388783610182741996736431657984314086182769101389998828689090818642654520885555155549042243766746669748523270056944668543908803360445558405214087652173180101086655026426700641731897769413254850876669187459603047795947012233685558889854564116314179574097413128947038034989974869886047396453944847736392083779117889227331402952308989577195308044196508643896116918226256370833769673881276015764038116226981737028430949942213393579674986195181508858992275460753664465599943409534496364140964201839079464186252855203897486324374820382589449571935466560891773815165501112521346620554235609925411877478180541665115849714707746212023648969380629666108821216048143389440590843968549718443560481897308614733910993006305697261767617728217438039553770998528067252416369319745029930961763825765731127824615410979271987901103625264240434225578906331326097471581255946719515057853200063748642104905907521075965332785465353614365979740478066931732007788410910645578972318170360352198803705133081041821181993318236507827427738268410846521711846484338827055023968424587200383134082425723523932500994234863190215320789589673427797625819403432135920117787324272686142289076526203650743910070031202138839668180152853462600762014524319903318831240652107138241454936742093625473315774932071664319459723314014180547324785556166403826018030999703434360495952021329066480195203650047484182162110582987057427062615605857493229853133079721819056815812043241065654843840071961221658157196786778247554411303525209444847549143587658410011862973275636689402979354335316443135644629611264989830434443652826755926356068254674311869118714231116087502772011182157236926154733604970119654759893425017318026772325804328679632768322108458879909607924599538641175841421199358826959294130224285771610145092644462010537831292347434650158807504919334404299764711231646419419674459219346805955174908010026392995785550504743320380913115196357496598016665690396944997900758591596572200294042725016058799951110779893456054784799042111439234604468694989204584924869762190516080220394195975675921449380956132761413666319720133424279913742554377408562145765678127103719528132459052796054937735660262561603539215818754278354292765896900726181717971501289106355282979707661619266060098679268364719515508495982025655613815492670713441039863651237966358676300661204937417894936190240166749317102987412565286185323467350811340467269717092273906963325563294683528160215426923279962201507970433428313070962673476227513811718828627239597299407779081895334596392975477192299109173693175292303182770568284510656721671603350536577195820459896207611427183790189458557404156081741159146324556109496044569831941040079800830909591499882066147931996860097301079032315481850360217415704088422988462444518083114169782454454752188649444868892484892421943561129270586743162940260073115945409280607043986549753044257708616189151748604690143648091824025383124351915561808856136604202326299504775252993768854992258448170690425213865355018949465862095005205146943820891218538777068090700494183804955586570731754443318209816969535616431441232686654141752409754751780707987376283036138994872046192747388747838472758152512361579492376498322145525853415817416504884002290412225708603277488809630254532820773334333015732092642094994912238157319205458992384244613819692557857951995509358017228167655406652242030147736292302960928668711228382899387600157063957459475103316398534810401445491073118330854697436726648520520704933705199676726004939663593028470344986873379374752887370724482410583599658778664255653681425271263934283027784875945058349289148741027008241571098020969467497545019748341736912956173542216527122793803294058390950523955740346732315510196018651205651984852473157783415662048668589296046760912073798329294188036896676213351074761426832748377974524224825870981031729881050507522923199219857916066932508759039790015169566719205083879788518504862220517043348778928359186054138771311742736507247877513807270087562140725656772050937074352063333957819937541379288887610501159965842368928089230846474888313546069323260841304892136585757750776275894961945445427712532872127056121587295651247383968580044417254200955969929818043508848011503444110078617387102474409592442880381226528444219074047104515799490535541785880629834234491008683244857477801177015726951808147008427891341629626876443890824849011250422695212430277393206182100114843189039540575388347840102011617250608565398231546983578881735837354394052272198152280569992564500302102614159441954247883993281032052970116459746514455566151364764358209417455749846187631348270187917516282280196728846792721179166231053822521031543216964618321154300892098358478445219375818920405623494452652046903087061882411057137155046319511415931506122493076115306640223889698835192770057147095520821225543626491448452055880496491699658682001970932280453053458577464961832820879586353075729490404215973167519887926639792719092074277429407398412066562447445331351623063845791206723992762781559873889151424429560946428934500464364036627603511058909081394657289018106391307672587656016530649300143133003002485896308475452342241657499088703833321416251463938859949364970320521571798248514435617629021068150851209676450911993341072442550818441309067920599803086003716331146284060036800924463784343774105504243758258171732222262937761581492322858952996804753692359592273513072002439511864851536055536120118269032075722941060808339358467239150841265118096178786681089280510761878410201143223042606903392706550093336960961063714474356042389148677307095067494998042147593967552512805748467574403228743660726337680950741651305564634881006992816360519133657518020069680725193154437724626342104590649597050248585855722897600182712451371669691724194788408452686065215243444320055004619191792142862812048806968187896304476687881161888942561997248399957625780153596473093847844705789861664045099991223866862302996274506576134267822555979081903880173794377599061003841042248290859243574097201408546888520363073573002637897063708412297931133435040763927956277867865873779685378253395826868310777802415391017826224227615985881055463225812646266281900806308370743532628345952606940363103745125981060019507665373560042071114187304307035555953651151427556110998649418341506885722377391203559206096297830606063637948377658774276093646315378245617548777735065178752276762729311225350870019190620721369463553924184459633577883468224299087362727258170779988924042112934927981370545661815270786292592089935029916375303068141775383938948036042063872216859675572275614404159695865314439037464775021320442871392392554669789268037276332976883528911176235696068086244632188021935549793486206160201365702465497186314045373005849351385703082717189879386246087164928613687511483897440696855559873755775819877602672635096441131186373939156974128013134841513551980477947520770529619439375890689028626115114325844020199351447804850590031583338242087141180504172906370397831707826070782932074181797756507503843370825299196610573487187738974979591338060761984107057375853631774581954156159091064092881402741266304300468962990843925280714171054973026688431185610885359578802976810366257514967872818677626299250375002183765803748232111942774072683854062537949960771900357397528653388626334905104973687751948120516131918185697986191160254307675682721674407544152858640635816585730417265841003360956245880508311450481499817133828173157128698434478949470000624947603763219418141741403417975319397133716092240726797852481784168350822923262047676674486069833503867738739598243817689217712008070166877256798324710995338464953835488996051290477258498465906499548112568277880175074434950627418397877820174030292060717860515676911728346027014917469058653832186263715722780126550837380049991845802254348979144156532812340012497041566715492090307594274226809633854426977405673529561386628093377532426303627727528333444119126017146166293029800085129148898035116823496337787894747623479727597128125085455979048420698194655484439596027945121385823557760224483369093148575330111355131134613569090943722950718981800465865639364160868369769125570221307439811718787530610435596485099885905621817858076497667331618186998224313285044769730091938177839523558652103698519884619984916623005392609917873441377909399153848710940409743250508924446073611050382210841732532379337764323591659535891701320624358789335099348695114022824944548635791921767129210479237158384918566988033339746991367546730984344631864529897667601331110224660859005931234373839472441853107990308298089612824717007894257014508554960628088179831663265008356713135389068100755894999184804043115628075500579481680358070072546479011354838640407915189797121512952008728787923298103688955555511700699402488030438842801202247312791200477614214957152109557291570498401349907707977566896869987457752733900353540311963895278482517879107488686736722899351759951215435003159618687884273258930336638688172887821551868757627883340517209990299441679533991752977607333806142240729354540971809267216933673759733825520228311122458950374213734050234602930727379970610386339391661519101419397284773543796860951786437652231202698621602430022450601737601671747697411193427572439913637125402804565312839117543912708560843589311650047601672774668705368396274368006458204533469769167930184943301808891163131708913344120845383127172904381208863728162195668362392963445838023241041919764005950781284244118832101453695193658049361204742025881220026880012735745233070419965096649121257424169823815853873264102102071181801227808370242388805300143371899133290681106975124791486413259034336148696179163697852477009335201461190421437320182200531531214596785625870559689219696860793414445462486746993701902038931759655701543728777081050987540549149583721647014123541067330216902529593719617437958543198813019956501668405517691809194652760194701954732507309140164629516804019952529620361980955460726547853688876258220088379012515411422066020664690330332938555095880008083396767723641845518095181946842291993949689508045167916097915637743096856101970209334771140404453527739640520872096348215803285633679901028743707953649696632693667893919450910928750319504908345558467402955612275689730282858523141908043172863804258470308130806924815300587249235469965717243123520359342780252525909983797229449637357251862700885534515854292359165259822564741033024890810148684447852053743928017548673531908561989747153082562451435624044376165113170827996203649383584861743326543820545160413383153806750227821774032857542660344015741561744576360770817928471265059967972040657923598935298613890372255499558714684778235467723395048624553924821270824988163064672604345724766945260049606340417009178760486559170830499012152474837851758013013133196949818207845964254575904362851474293038919799706427090463148225050758908667038935089257402817502835769249304962764446832384283600870695445357155690883741917855402049725950041764528388837009454881432624726519625012922398243502822948495700111485111027076916035710114654046363688485604381848897170548361941159327287646034285970933979419276767144709376728402975872078653324834219928249973194371522718059860186658557267789093765147775422603351221671276914873649546480364421526951889675794529700484870371456333808462675559551132859255542340264765426603809340148132545128470732601418602403113153766541306269311062370838037018338106490319300597478874865846531394109269298289855656059720908040849359558988343884953503421590409957924220452053723488168188704241399132506554557141005830977150750949108104673215459588766564019422994793660254777278878339605289912570573603020814992158233252956134643597262848085639141411303243027126941266481138480863219955353637712629136773702771805347789366044158803381563185974305291614461195413209870889444039014598097573146047372094227588618873659141342915840675249101905248977616827760622127347593006747097566033259650437789871720641140798703078338707265541730332375021094755386641677120936574740460615663859296052031664627226549629795708378933943137898859119360891436052503167130951449583326256505163411644232489738219566942413311531922819919797344209925299400831056092414461099599167045717209935019666596914225226780439932361466053938380970370213161972614566881529071655583088551522068959022739437832293337349331638531830952257139392240452677767764527808404029735850573489193476402507694602322510164675105534836089695707773339571375264546188815180203446937709373225691672429699898244008860275838379707635308395233987284059352194005636282056532674536827090874498359547366227108627931621725822146708341980865843931872962690671561708592982267747537149477479819088351060678867624233855364622383898332723104449777033528421210354026719205035053793046741274019461491397877403128813165019063031514617343025631080792423933936585757313189712926010318859128576812685220807257052150676175529297525473057038761138218779580102177718741426773490908898681731814274412184621022465934232760547827683900067748181845443942573303770105964794830202729258535682809183673016320433661932801906341877021632766738516467315446804676732728700331609691739013419042960117193835655015872226965103159167955782298798472317328966019852765406009582431669880091755088592480530931784910073892665260131262571583101491319781929298025608946216687341478833556782924638915125373797095510545789307528886137040097243240782867399835061194168624247895422329976044742519719863716305296960282805377759124470371571266055717005432807148613275929750449461649740025610613599791037974631171777579858371315423741626952644277657680651599501041563659050345269199957569779050949344388243695730469544069856147225656394019661270208315924160729171287295878696753179722708089513348519097788611648054707240033144950772435584307275133642756836548077804974777920868497364035932336175574527201710769420714286372219510538644511859887779151096965347561392209354153977631050594761212091359374320897533193641784092412857766229944962349118240814571671312146776209265594483613684231656430424263126281613537176621545640476242931995327500629816140425739677734346930483663575428042182846712207579680068566165556980975917623266586229951445825126611077149982932105905211812900685048423508772060987903310812596373356440709219975402257817725873142896169051905643921323089023090787349606065344138858588789811114563310127781579096310278722106729796952447856026527151430369658841248097659930390507220589149759414646459174772756162057529534163574542646590281498793368188796054536734075345439678314201607315190305738908733931380600653202259115523720066135950696998902243388785024809670980533599927822147677557227975606580120072526312947375842257596808489295250271071884489999174551993728687205144017042645164969984519817258055280576350309332331573921348295040004462419595311386332509839273807824205863466956308568095683590505313232367062421309095178036295615522755250738178667739139637005512225330839892533330613580320058999051056994141994080624242984603992618722860518092805378617817026808410814221345609349944561395099621347374605758722544711492104059009724800395455357028750922110798635311161041457092282780538516599634236081480969779580040850831065929425351925033956418142478298585088494379780250807474253921563283059792639636335463121339108331740971098610672945844282347612341088031292721723109524242515384706364861626302395331552536550647047608594655554856863545260462182325406941153860133392428595832988858255293156341660166110011558282565383039583355433651208066117496884313799565920059766476591105543708771385047932206002638585272182987440680423934210007757157906403306662168036829849270269502541367073923057717213062938914421914606935836830193819882362040385389381066034110252336706527377105902656588410438455838665146269307358360765158838187291603904121970089188859354629328262358274770465482537750875582477683515783515434285040786692946883078323377689973255430211516119977299042094909524668915108794957646982375099525656769615656906517280436076406741651894193076005107338948990264948713277146283602293927280764602052820466062182722840573790111703700222023293253883623925228292809858595090254931029885357080741399046848266216413100775224079029257366041163494427135899872346055294559584142874743576344449091668638810540509569103167359617940472773585088556528804585957786706422451490328199401272388777745302562885571464609733394844339261608904122253128090243569841803302830660431232403271068045869030776115207575890738330518009794356060490189758729283963334009827841658922617336343308192115389654305780936173131404861688933843013200137654258364856888539246674313922030721634317124624650871688470931425459827370441029176030764035802985795653585761034795082241818348290942907552515662654746244490669456817480414758312807972313462666059235477143526917100994327871568292893540566144192834215343343064619290368004002284970521104052699060065063556502367046390240246904846334424797477929910697917760915701884369503702814201089019483054082142468075939744529346618605078541089717606086518992147477367581474420222985246798706690067268200386336358615294165415442950041692207022793390525814510288367896372453037999833952465180531648419345701101098511373617641746775374634106249157680665333080877866796523605377127995546213824046744106769924235011868137739854600966031598913647035177152783306796332508365034176207958187724090260265093589337708743807391040647611735340727948467877320476916935150350003152124222487776344789739721487994858418531740798506366647279104693907044170062181363581483210716436165851304523108869171539822520742506617072499755281382488120651248591992112987171674833177938914362751070721429869506851239031275146581613403198064693512144155045192297066867443727820402044322863455449946245790965671449562852338928463667930857495150930730607907689936693406676083437356511691871344463227580422571435469482205115702543061788737197537147549577556671633149408943481974500309924142035994121156625959245004783728823387932525570805592138615786998118737713626010559018738325258535229323056190109464003861515366286091135381800982332574484780849011302787000921938823338097668492704644362108084853525809754778949154139263497377710610842589374565149558122532396149596581600797633624094814747843251969877978494946957359854334126142334240145564081166341170235154735726454276688024437814561253354458622867242661628581676473013845354442892631538743996547444535288682792073215587811974056490172361216088206491870277258179611276803965861697398668446340253443192510277691814827688255082484898123330886133371550706404039425066810952110645901953549974807201005282622520009158776904524258294364889065580697119371732711110437993069463234527749965961624053620137993669225756770616628782171088710718398177703384351632795357133130286023418724284645730139117304147692306800670730532226472004396464341260247883174460778157427019395331480500108523999702710876049464266230309859840493880419948013069187819144995683423006456951511411383887279293902892663503066688372082708570128640039734400410242362688627695679823048849386248205318987752479389151506973484969883249078151607471854074582077321655085959899977649361307186980420329923000417732738669777827013975110856545415785356031142013251760342421565276592113257470088453496038033792512724482851055158721815913874107517217766034723895125317118558243401270197963054395067259346588765816868847239965291399883943901644968317188621247122458463501905788024008835717362672078588033813343996293372904719407656661322158945616293930820734574591624769519302767687833615253120421663971056709393877620022205487005575098696016684741516552176073697703907838384598617185181717988328348990969541490837204401236326157132979205001580455792153904649604486289782105046235655890820800877203373945495046711452798528822804946061601172881990598467628375902986756293476524900384324003872900004090508456152689736385040467703994567656077583755192478264678205619712569587906828875794448881667459993073103501397954393215249971883629225559466474064370261671019271266045232519746226786873670234741554939807855067652303406561877702659089854021288834947204269457087461714212804671736510680335056269622151180251456958529911095607461286700933331507648581393472835017114006384487743225549382083963638306619933302668393983783778572241214070202920940667466510246959681888916927603594026023661119097954665960096332005160799260861430795112241605994366956842835509871283701261899920616821514169776617172090971257357611916001708629946659882339865154569799123951047398741647834787285339946371879382742924471839753938798998558297030420676608255744955822229714001817109108831264848150483069702597833090201505010425488204891706778531627218715840041523170293100150883032623981550847698984361963098432340775617110448736220298897501178555738292306030828061543872959987172453102830416738445878023981491151063080545940115382121006971791820450576419153482057372066917559560684657778253080576187002375231863092823708013892190172848230793679990629493691858897979688923243688245080228406188823885482310532966042247635514386900782279472511489383328230130705316648214281173803169801201400840802844554247799039747096152411370914668013425800683826824261963958404230546449047650930509849242863801350152443729106534579129858919412819062530826742232557800720163269845882695838332612703196883067001621568180407566426487634047926198397077847822056534760853938006406755698125420283247964417159809314056107851805325998972810480965850541623998149600418158027542906913170148956968804073475570485358740310887341020171105506414161612050124902602548857621783067866139687593385959092455286350169848431185581056374714969862419201301399095505464608687276280724362204590646474077703190743313482586159443161773771354683843145471818106676542455313446384946771179451005794096020317330924594971141540829254015552517484858872381235158735157637413297245275473934666919835062267954611815103161842041623878622869261276957563670076835308957106448256098881641190466350406129198298956031357427080551015967142358588519882978591678389825222213917427271617947987957733422499595088626992483968570462755054213641887430033853677124154348326124489858662415127849203090742646543254847044196202695839939234939523085786705353941443052718428594161042443677887255161212786320460083929004821139712900257600671674391752365607544544209809419366757737437904532776933942006503149452425936100365853210931519448123473160933677445557704501810161764938363507760971142346174186561844834224480130964596436739638383188155343184354745342762808046029401462507547026624745462530372006464243813320913457315528239178673945391296746626810015906913626770243003104728884362682767914055162773059723714171059214471767069578681533359480925822313645543014160902931657902326126516809452716587879032405624525787341693451970938411724082082414830612657667148323294772506817904496261938762260671204634650173715348646171434308349659224178431611165472103505447454211287739980543287158544519880080107079612314224825594685769772673340100737038712851583183428601819813304276323420897119973042473901599179621167811666673865967079101636246297242823550963807738762925263920006386216481689732488024238726458260055377591470427173616297144263867541886243019010232891508427339007931185304571451348849612632252236695863318244811912533550104060506678068204956934173674351982431369427500604497055676166229233372229880768713523900764403110705706277803875721198303479265688488377197670784712274157494036974233429452851961417729699806966292603701643849005906547269895283850354962393444775088412898187982273222980901673333285815033484548841257995971186504717208537579539910002577777854358967959628337121205217926200308889396910683216054678760531215947181670986881221154548545744319875253305816246217241247321949436944666894386178786492558898464343425745362937962183347814081852892963454494718170734262585647197012344937079287108506805615586759714304309372232960075318392614777323573897576048050401911156519883768597370240807879446766214347628504013639706762352704269393979319791966431396200551867229711942578061387481923112407861921953143326703246926404436192121776043451799643206488032127526349764284947961579521201990974071424844853704479321503913126765622671341067192898989690849385598957579969390376839089191929822709750934295360424521935957483532393594476392935258732897986596366906337669838483217903312057402578851853104719362499278797783976339095486246681465648797249061510766330498178194008737464362696689508047541614683193620663020787701368702467585233807412621671002788974453595492518649124689504761060946257812111007678201585973682650904065037678298649902823021814066045709665314568595764469080091376835691869983344648350928185398199687497878710066096784747831242063030410031082550200936964272657684951509378223438564385428671738978902322728313032337462747878255901459904938930128205346986040083419033283591029212216756174353139098838054132862194673652916691810893348137711716771810658495304379978138151072538203171803951071300803394982104675665504278785482974867421623921332121207085926996354491676664734162015607058376577673454498409127949804185437249746324586898570500033183542382079870418330571431634049073965824140690399418585790262414751830591679995739605587105876706309538781795797279112515712580269119629180589101121604659599062346744383891988116690763932803052297292421419970098518745599959504356117417583192550865652914464736387543199663867325658860001091974428734339695174331779924195708750173327583815747132601058301541133391473814961317225367354475372161294618285365229018656612788772758362156148753410329137520247689115934288441440613423484212479686361739842159819689630202030369973836149633146789939000009907311106672132400181473117247203302387891652451334259435386366576703006102152512992738995949895800717511526070632882158162911627423257500859 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment